From 03579642bd2aa2d5a420dd1dce306f1b586539b5 Mon Sep 17 00:00:00 2001 From: ehrlich-uva Date: Wed, 11 Mar 2026 21:30:16 -0500 Subject: [PATCH 1/2] added EventNtuples to CRV Pass1 script --- CRV/CrvCalibration_extracted.fcl | 1 - CRV/CrvPass1_extracted.fcl | 33 +++++++++++++++++++++----------- CRV/CrvPedestal_extracted.fcl | 1 - 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/CRV/CrvCalibration_extracted.fcl b/CRV/CrvCalibration_extracted.fcl index b4abbc5..70c8fc8 100644 --- a/CRV/CrvCalibration_extracted.fcl +++ b/CRV/CrvCalibration_extracted.fcl @@ -23,7 +23,6 @@ physics: { { module_type : CrvDigisFromArtdaqFragmentsFEBII diagLevel : 0 - useSubsystem0 : false produceZS : false } CrvRecoPulses: @local::CrvRecoPulses diff --git a/CRV/CrvPass1_extracted.fcl b/CRV/CrvPass1_extracted.fcl index c47c52e..de6dcd3 100644 --- a/CRV/CrvPass1_extracted.fcl +++ b/CRV/CrvPass1_extracted.fcl @@ -6,6 +6,7 @@ #include "Offline/fcl/standardProducers.fcl" #include "Offline/fcl/standardServices.fcl" #include "Offline/CRVResponse/fcl/prolog.fcl" +#include "EventNtuple/fcl/prolog.fcl" process_name : CrvPass1 @@ -33,14 +34,16 @@ physics : } CrvRecoPulses: @local::CrvRecoPulses CrvCoincidenceClusterFinder: @local::CrvCoincidenceClusterFinder + @table::EventNtuple.producers } analyzers : { CrvDQMcollector: @local::CrvDQMcollector + @table::EventNtuple.analyzers } - t1 : [ CrvDigi, CrvRecoPulses, CrvCoincidenceClusterFinder ] - e1 : [ CrvDQMcollector, outfileReco, outfileNZS ] + t1 : [ CrvDigi, CrvRecoPulses, CrvCoincidenceClusterFinder, @sequence::EventNtuple.PathNoMC ] + e1 : [ CrvDQMcollector, outfileReco, @sequence::EventNtuple.EndPathNoMC ] trigger_paths : [t1] end_paths : [e1] @@ -57,15 +60,6 @@ outputs: "drop artdaq::*_*_*_*" , "drop mu2e::CrvDigis_*_NZS_*" ] } - outfileNZS : - { - module_type : RootOutput - fileName : "crvDigiNZSExtracted.art" - outputCommands : [ "drop *_*_*_*" , - "keep mu2e::DAQerrors_*_*_*" , - "keep mu2e::CrvDAQerrors_*_*_*" , - "keep mu2e::CrvDigis_*_NZS_*" ] - } } physics.producers.CrvCoincidenceClusterFinder.verboseLevel: 0 @@ -115,6 +109,23 @@ physics.producers.CrvCoincidenceClusterFinder.sectorConfig: } ] +#include "Production/JobConfig/common/epilog.fcl" +physics.analyzers.EventNtuple.FillMCInfo : false +physics.analyzers.EventNtuple.FillCRVDigis : true +physics.analyzers.EventNtuple.FillCRVPulses : false +physics.analyzers.EventNtuple.branches : [ ] # no track branches +physics.analyzers.EventNtuple.FillCaloClusters : false # no calorimeter +physics.analyzers.EventNtuple.FillCaloHits : false # no calorimeter +physics.analyzers.EventNtuple.FillCaloClustersMC : false # no calorimeter +physics.analyzers.EventNtuple.FillCaloSimInfos : false # no calorimeter +physics.analyzers.EventNtuple.RecoCountTag : "" +physics.analyzers.EventNtuple.PBTTag : "" +physics.analyzers.EventNtuple.hasCRV : false #false prevents skipping events without CRV content in the ntuple +physics.analyzers.EventNtuple.FillTriggerInfo : false +physics.analyzers.EventNtuple.CrvDigisTag : "CrvDigi" +physics.analyzers.EventNtuple.CrvCoincidencesTag: "CrvCoincidenceClusterFinder" +physics.analyzers.EventNtuple.CrvRecoPulsesTag: "CrvRecoPulses" + services.TFileService.fileName : "crvRecoExtracted.root" services.GeometryService.inputFile: "Offline/Mu2eG4/geom/geom_common_extracted.txt" services.ProditionsService.crvStatus.useDb: true diff --git a/CRV/CrvPedestal_extracted.fcl b/CRV/CrvPedestal_extracted.fcl index 7400186..73ea5a4 100644 --- a/CRV/CrvPedestal_extracted.fcl +++ b/CRV/CrvPedestal_extracted.fcl @@ -26,7 +26,6 @@ physics: { { module_type : CrvDigisFromArtdaqFragmentsFEBII diagLevel : 0 - useSubsystem0 : false produceZS : false } } From 8e046a1c75e4137e76837ddf2854f7779720a0c5 Mon Sep 17 00:00:00 2001 From: ehrlich-uva Date: Thu, 12 Mar 2026 10:52:11 -0500 Subject: [PATCH 2/2] move production of EventNtuples into separate fcl --- CRV/CrvPass1_extracted.fcl | 26 +---- CRV/CrvPass1_extracted_combined.fcl | 138 ++++++++++++++++++++++++ CRV/CrvPass1_extracted_eventntuples.fcl | 66 ++++++++++++ 3 files changed, 207 insertions(+), 23 deletions(-) create mode 100644 CRV/CrvPass1_extracted_combined.fcl create mode 100644 CRV/CrvPass1_extracted_eventntuples.fcl diff --git a/CRV/CrvPass1_extracted.fcl b/CRV/CrvPass1_extracted.fcl index de6dcd3..cac6fe7 100644 --- a/CRV/CrvPass1_extracted.fcl +++ b/CRV/CrvPass1_extracted.fcl @@ -6,7 +6,6 @@ #include "Offline/fcl/standardProducers.fcl" #include "Offline/fcl/standardServices.fcl" #include "Offline/CRVResponse/fcl/prolog.fcl" -#include "EventNtuple/fcl/prolog.fcl" process_name : CrvPass1 @@ -34,16 +33,14 @@ physics : } CrvRecoPulses: @local::CrvRecoPulses CrvCoincidenceClusterFinder: @local::CrvCoincidenceClusterFinder - @table::EventNtuple.producers } analyzers : { CrvDQMcollector: @local::CrvDQMcollector - @table::EventNtuple.analyzers } - t1 : [ CrvDigi, CrvRecoPulses, CrvCoincidenceClusterFinder, @sequence::EventNtuple.PathNoMC ] - e1 : [ CrvDQMcollector, outfileReco, @sequence::EventNtuple.EndPathNoMC ] + t1 : [ CrvDigi, CrvRecoPulses, CrvCoincidenceClusterFinder ] + e1 : [ CrvDQMcollector, outfileReco ] trigger_paths : [t1] end_paths : [e1] @@ -109,24 +106,7 @@ physics.producers.CrvCoincidenceClusterFinder.sectorConfig: } ] -#include "Production/JobConfig/common/epilog.fcl" -physics.analyzers.EventNtuple.FillMCInfo : false -physics.analyzers.EventNtuple.FillCRVDigis : true -physics.analyzers.EventNtuple.FillCRVPulses : false -physics.analyzers.EventNtuple.branches : [ ] # no track branches -physics.analyzers.EventNtuple.FillCaloClusters : false # no calorimeter -physics.analyzers.EventNtuple.FillCaloHits : false # no calorimeter -physics.analyzers.EventNtuple.FillCaloClustersMC : false # no calorimeter -physics.analyzers.EventNtuple.FillCaloSimInfos : false # no calorimeter -physics.analyzers.EventNtuple.RecoCountTag : "" -physics.analyzers.EventNtuple.PBTTag : "" -physics.analyzers.EventNtuple.hasCRV : false #false prevents skipping events without CRV content in the ntuple -physics.analyzers.EventNtuple.FillTriggerInfo : false -physics.analyzers.EventNtuple.CrvDigisTag : "CrvDigi" -physics.analyzers.EventNtuple.CrvCoincidencesTag: "CrvCoincidenceClusterFinder" -physics.analyzers.EventNtuple.CrvRecoPulsesTag: "CrvRecoPulses" - -services.TFileService.fileName : "crvRecoExtracted.root" +services.TFileService.fileName : "crvRecoExtracted_DQM.root" services.GeometryService.inputFile: "Offline/Mu2eG4/geom/geom_common_extracted.txt" services.ProditionsService.crvStatus.useDb: true services.ProditionsService.crvCalib.useDb: true diff --git a/CRV/CrvPass1_extracted_combined.fcl b/CRV/CrvPass1_extracted_combined.fcl new file mode 100644 index 0000000..de6dcd3 --- /dev/null +++ b/CRV/CrvPass1_extracted_combined.fcl @@ -0,0 +1,138 @@ +#pass1 for data from CRV modules at Wideband + +#contact: R. Ehrlich + +#include "mu2e-trig-config/core/trigProducers.fcl" +#include "Offline/fcl/standardProducers.fcl" +#include "Offline/fcl/standardServices.fcl" +#include "Offline/CRVResponse/fcl/prolog.fcl" +#include "EventNtuple/fcl/prolog.fcl" + +process_name : CrvPass1 + +services : +{ + @table::Services.Core + @table::Services.Reco +} + +source : +{ + module_type : RootInput + fileNames : @nil + maxEvents : -1 +} + +physics : +{ + producers : + { + CrvDigi : + { + module_type : CrvDigisFromArtdaqFragmentsFEBII + diagLevel : 0 + } + CrvRecoPulses: @local::CrvRecoPulses + CrvCoincidenceClusterFinder: @local::CrvCoincidenceClusterFinder + @table::EventNtuple.producers + } + analyzers : + { + CrvDQMcollector: @local::CrvDQMcollector + @table::EventNtuple.analyzers + } + + t1 : [ CrvDigi, CrvRecoPulses, CrvCoincidenceClusterFinder, @sequence::EventNtuple.PathNoMC ] + e1 : [ CrvDQMcollector, outfileReco, @sequence::EventNtuple.EndPathNoMC ] + + trigger_paths : [t1] + end_paths : [e1] + +} + +outputs: +{ + outfileReco : + { + module_type : RootOutput + fileName : "crvRecoExtracted.art" + outputCommands : [ "keep *_*_*_*" , + "drop artdaq::*_*_*_*" , + "drop mu2e::CrvDigis_*_NZS_*" ] + } +} + +physics.producers.CrvCoincidenceClusterFinder.verboseLevel: 0 +physics.producers.CrvCoincidenceClusterFinder.sectorConfig: + [ + { + CRVSector : "EX" + PEthreshold : 8 + maxTimeDifferenceAdjacentPulses : 10 + maxTimeDifference : 10 + minOverlapTimeAdjacentPulses : 30 + minOverlapTime : 30 + minSlope :-6 + maxSlope : 6 + maxSlopeDifference : 3 + coincidenceLayers : 3 + minClusterPEs : 0 + initialClusterMaxDistance : 250 + }, + { + CRVSector : "T1" + PEthreshold : 8 + maxTimeDifferenceAdjacentPulses : 10 + maxTimeDifference : 10 + minOverlapTimeAdjacentPulses : 30 + minOverlapTime : 30 + minSlope :-6 + maxSlope : 6 + maxSlopeDifference : 3 + coincidenceLayers : 4 + minClusterPEs : 0 + initialClusterMaxDistance : 250 + }, + { + CRVSector : "T2" + PEthreshold : 8 + maxTimeDifferenceAdjacentPulses : 10 + maxTimeDifference : 10 + minOverlapTimeAdjacentPulses : 30 + minOverlapTime : 30 + minSlope :-6 + maxSlope : 6 + maxSlopeDifference : 3 + coincidenceLayers : 4 + minClusterPEs : 0 + initialClusterMaxDistance : 250 + } + ] + +#include "Production/JobConfig/common/epilog.fcl" +physics.analyzers.EventNtuple.FillMCInfo : false +physics.analyzers.EventNtuple.FillCRVDigis : true +physics.analyzers.EventNtuple.FillCRVPulses : false +physics.analyzers.EventNtuple.branches : [ ] # no track branches +physics.analyzers.EventNtuple.FillCaloClusters : false # no calorimeter +physics.analyzers.EventNtuple.FillCaloHits : false # no calorimeter +physics.analyzers.EventNtuple.FillCaloClustersMC : false # no calorimeter +physics.analyzers.EventNtuple.FillCaloSimInfos : false # no calorimeter +physics.analyzers.EventNtuple.RecoCountTag : "" +physics.analyzers.EventNtuple.PBTTag : "" +physics.analyzers.EventNtuple.hasCRV : false #false prevents skipping events without CRV content in the ntuple +physics.analyzers.EventNtuple.FillTriggerInfo : false +physics.analyzers.EventNtuple.CrvDigisTag : "CrvDigi" +physics.analyzers.EventNtuple.CrvCoincidencesTag: "CrvCoincidenceClusterFinder" +physics.analyzers.EventNtuple.CrvRecoPulsesTag: "CrvRecoPulses" + +services.TFileService.fileName : "crvRecoExtracted.root" +services.GeometryService.inputFile: "Offline/Mu2eG4/geom/geom_common_extracted.txt" +services.ProditionsService.crvStatus.useDb: true +services.ProditionsService.crvCalib.useDb: true +#current status and calibration until we can use the database +services.DbService.textFile : ["Offline/CRVConditions/data/status_extracted_20260221.txt","Offline/CRVConditions/data/calib_extracted_20260221.txt"] +services.DbService.verbose : 0 +services.TimeTracker.printSummary: true +services.scheduler.wantSummary: true +services.message.destinations.log.outputStatistics : true diff --git a/CRV/CrvPass1_extracted_eventntuples.fcl b/CRV/CrvPass1_extracted_eventntuples.fcl new file mode 100644 index 0000000..fbedce3 --- /dev/null +++ b/CRV/CrvPass1_extracted_eventntuples.fcl @@ -0,0 +1,66 @@ +#pass1 for data from CRV modules at Wideband + +#contact: R. Ehrlich + +#include "mu2e-trig-config/core/trigProducers.fcl" +#include "Offline/fcl/standardProducers.fcl" +#include "Offline/fcl/standardServices.fcl" +#include "Offline/CRVResponse/fcl/prolog.fcl" +#include "EventNtuple/fcl/prolog.fcl" + +process_name : CrvPass1EventNtuples + +services : +{ + @table::Services.Core + @table::Services.Reco +} + +source : +{ + module_type : RootInput + fileNames : @nil + maxEvents : -1 +} + +physics : +{ + producers : + { + @table::EventNtuple.producers + } + analyzers : + { + @table::EventNtuple.analyzers + } + + t1 : [ @sequence::EventNtuple.PathNoMC ] + e1 : [ @sequence::EventNtuple.EndPathNoMC ] + + trigger_paths : [t1] + end_paths : [e1] + +} + +#include "Production/JobConfig/common/epilog.fcl" +physics.analyzers.EventNtuple.FillMCInfo : false +physics.analyzers.EventNtuple.FillCRVDigis : true +physics.analyzers.EventNtuple.FillCRVPulses : false +physics.analyzers.EventNtuple.branches : [ ] # no track branches +physics.analyzers.EventNtuple.FillCaloClusters : false # no calorimeter +physics.analyzers.EventNtuple.FillCaloHits : false # no calorimeter +physics.analyzers.EventNtuple.FillCaloClustersMC : false # no calorimeter +physics.analyzers.EventNtuple.FillCaloSimInfos : false # no calorimeter +physics.analyzers.EventNtuple.RecoCountTag : "" +physics.analyzers.EventNtuple.PBTTag : "" +physics.analyzers.EventNtuple.hasCRV : false #false prevents skipping events without CRV content in the ntuple +physics.analyzers.EventNtuple.FillTriggerInfo : false +physics.analyzers.EventNtuple.CrvDigisTag : "CrvDigi" +physics.analyzers.EventNtuple.CrvCoincidencesTag: "CrvCoincidenceClusterFinder" +physics.analyzers.EventNtuple.CrvRecoPulsesTag: "CrvRecoPulses" + +services.TFileService.fileName : "crvRecoExtracted_EventNtuples.root" +services.GeometryService.inputFile: "Offline/Mu2eG4/geom/geom_common_extracted.txt" +services.TimeTracker.printSummary: true +services.scheduler.wantSummary: true +services.message.destinations.log.outputStatistics : true