2 # File: magic_raw_to_triggeremu_icarus_Run1_data.fcl
3 # Purpose: Writes a trigger emulation tree out of a ICARUS raw data file.
4 # Authors: Gianluca Petrillo (petrillo@slac.stanford.edu),
8 # Runs the regular Stage0, Stage1 and then the rest that it takes.
10 # Enabling art/ROOT output will write files on which the emulation can be run on
11 # again. This is to enable that output:
13 # physics.end_paths: [ @sequence::physics.end_paths, streams ]
18 # ==============================================================================
19 # trigger emulation settings, chapter 1: The Untouchables
20 # ==============================================================================
24 ### fix settings (so that will not be overridden later);
25 ### these are defined in `triggeremu_data_config_icarus.fcl`
28 # do not emulate any fixed level threshold (only `pmtthr`)
29 triggeremu_data_config_icarus.settings.PMTADCthresholds @
protect_ignore: []
34 # ==============================================================================
35 # === configuration inclusion
36 # ==============================================================================
51 # ==============================================================================
52 # trigger emulation settings, chapter 2: The Great Override
53 # ==============================================================================
59 BeamGateProducer:
"daqTrigger"
60 TriggerProducer:
"daqTrigger"
67 GateStartOffset:
"-15 us"
68 GateEndOffset:
"+5 us"
70 T0Producer: @nil # must
override
71 T0selProducer: @nil # must
override
86 } # t0TreeStore_icarus
91 # ==============================================================================
93 # ==============================================================================
96 IICARUSChannelMap: @local::icarus_channelmappinggservice
97 @table::icarus_wirecalibration_minimum_services
101 @table::icarus_stage0_producers
104 @table::icarus_stage0_filters
121 # "remove" unused modules
126 # ==============================================================================
128 # ==============================================================================
132 SpaceChargeService: @local::icarus_spacecharge
141 @table::icarus_stage1_filters
144 # from `stage1_multiTPC_nofilter_icarus_gauss.fcl` (v09_55_01)
156 , @sequence::icarus_filter_cluster3DCryoW
157 , @sequence::icarus_reco_pandoraGausCryoW
166 # ==============================================================================
167 # trigger emulation part
168 # ==============================================================================
172 @table::triggeremu_data_config_icarus.services #
from triggeremu_data_config_icarus.fcl
175 TFileService: {
fileName:
"timedtracks_store_triggeremu.root" }
179 # customization of message destinations from trigger emulation (if needed)
180 # services.message.destinations: {
181 # @table::services.message.destinations
182 # @table::triggeremu_data_config_icarus.messagedestinations
186 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
193 T0Producer: pandoraGausCryoE
194 T0selProducer: t0selectorE
200 T0Producer: pandoraGausCryoW
201 T0selProducer: t0selectorW
204 @table::triggeremu_data_config_icarus.producers #
from triggeremu_data_config_icarus.fcl
209 # we only discriminate against the native PMT thresholds, no fixed one is used;
210 # the fixed threshold discriminator requires thresholds to be present,
211 # so it can't be run in dummy mode; removing it from the existing path sequence
212 # is error-prone in FHiCL, so we rather turn it into a different (dummy) module:
216 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
222 TrackTimeTags: [ pandoraGausCryoW ]
227 TrackTimeTags: [ pandoraGausCryoE ]
233 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
237 @table::t0TreeStore_icarus
239 PFPproducer:
"pandoraGausCryoW"
240 T0Producer:
"pandoraGausCryoW"
241 T0selProducer:
"t0selectorW"
242 TrackProducer:
"pandoraTrackGausCryoW"
243 TrackFitterProducer:
"pandoraTrackGausCryoW"
245 FlashProducer:
"opflashCryoW"
247 {
Name:
"M1" TriggerTag:
"simTiledORM1W" },
248 {
Name:
"S3" TriggerTag:
"simTiledORS3W" },
249 {
Name:
"S5" TriggerTag:
"simTiledORS5W" },
250 {
Name:
"S8" TriggerTag:
"simTiledORS8W" },
251 {
Name:
"S10" TriggerTag:
"simTiledORS10W" },
252 {
Name:
"S15" TriggerTag:
"simTiledORS15W" },
253 {
Name:
"M1s" TriggerTag:
"simSlidingORM1W" },
254 {
Name:
"S3s" TriggerTag:
"simSlidingORS3W" },
255 {
Name:
"S5s" TriggerTag:
"simSlidingORS5W" },
256 {
Name:
"S8s" TriggerTag:
"simSlidingORS8W" },
257 {
Name:
"S10s" TriggerTag:
"simSlidingORS10W" },
258 {
Name:
"S15s" TriggerTag:
"simSlidingORS15W" }
260 LogCategory:
"TimeTrackTreeStorageCryoW"
262 # do not process the events which did not complete the West processing path
269 @table::t0TreeStore_icarus
271 PFPproducer:
"pandoraGausCryoE"
272 T0Producer:
"pandoraGausCryoE"
273 T0selProducer:
"t0selectorE"
274 TrackProducer:
"pandoraTrackGausCryoE"
275 TrackFitterProducer:
"pandoraTrackGausCryoE"
277 FlashProducer:
"opflashCryoE"
279 {
Name:
"M1" TriggerTag:
"simTiledORM1E" },
280 {
Name:
"S3" TriggerTag:
"simTiledORS3E" },
281 {
Name:
"S5" TriggerTag:
"simTiledORS5E" },
282 {
Name:
"S8" TriggerTag:
"simTiledORS8E" },
283 {
Name:
"S10" TriggerTag:
"simTiledORS10E" },
284 {
Name:
"S15" TriggerTag:
"simTiledORS15E" },
285 {
Name:
"M1s" TriggerTag:
"simSlidingORM1E" },
286 {
Name:
"S3s" TriggerTag:
"simSlidingORS3E" },
287 {
Name:
"S5s" TriggerTag:
"simSlidingORS5E" },
288 {
Name:
"S8s" TriggerTag:
"simSlidingORS8E" },
289 {
Name:
"S10s" TriggerTag:
"simSlidingORS10E" },
290 {
Name:
"S15s" TriggerTag:
"simSlidingORS15E" }
292 LogCategory:
"TimeTrackTreeStorageCryoE"
294 # do not process the events which did not complete the East processing path
305 , @sequence::triggeremu_data_config_icarus.producerpathW
311 , @sequence::triggeremu_data_config_icarus.producerpathE
319 physics.emutreesE: [ t0TreeStoreE ]
320 physics.emutreesW: [ t0TreeStoreW ]
324 # ==============================================================================
326 # ==============================================================================
330 # ------------------------------------------------------------------------------
331 services.message: @local::icarus_message_services_interactive
334 # ------------------------------------------------------------------------------
335 physics.streams: [
"rootoutput" ]
337 physics.trigger_paths: [ processpathE, processpathW ] # only
one cryostat
338 # physics.trigger_paths: [ processpathE ]
340 physics.end_paths: [
"emutrees",
"streams" ]
341 # physics.end_paths: [ "emutreesE", "streams" ] # only one cryostat
342 # physics.end_paths: [ "emutrees" ] # no art/ROOT output
345 # ------------------------------------------------------------------------------
348 @table::icarus_rootoutput
350 fileProperties: { maxInputFiles: 1 }
353 # these data products are enough to rerun this job (until hits are needed):
358 ,
"keep sbn::PMTconfiguration_*_*_*"
359 ,
"keep *_daqTrigger_*_*"
360 ,
"keep *_pmtthr_*_*"
361 ,
"keep *_opflashCryo*_*_*"
364 ,
"keep *_pandoraGausCryo*_*_*",
"drop *recob::SpacePoint*_pandoraGausCryo*_*_*"
365 ,
"keep *_pandoraTrackGausCryo*_*_*"
366 ,
"keep *_pandoraKalmanTrackGausCryo*_*_*"
367 ,
"keep *_cluster3DCryo*_*_*",
"drop *recob::SpacePoint*_cluster3DCryo*_*_*"
368 ,
"keep *_caloskimCalorimetryCryo*_*_*"
369 ,
"keep *_fmatchCryo*_*_*"
372 ,
"keep *_lvdsgates*_*_*"
373 ,
"keep *_t0selector*_*_*"
374 ,
"keep *_gatesFromTracks*_*_*"
376 ,
"keep *_simTiled*_*_*",
"keep *_simSliding*_*_*"
383 # ==============================================================================
385 # ==============================================================================
387 # FIXME for development and DEBUG only:
388 # services.message: @local::icarus_message_services_interactive_debug
BEGIN_PROLOG opflashCryoE TPCHitFilterCryoW icarus_filter_cluster3DCryoE
BEGIN_PROLOG triggeremu_data_config_icarus settings PMTADCthresholds sequence::icarus_stage0_multiTPC_TPC physics sequence::icarus_stage0_EastHits_TPC physics sequence::icarus_stage0_WestHits_TPC physics producers purityana0 caloskimCalorimetryCryoE physics caloskimCalorimetryCryoW physics sequence::physics pathW services
process_name local::throughgoing_selection SelectEvents
Module which does nothing.
BEGIN_PROLOG opflashCryoW opflashCryoW triggerfilterBNB triggerfilterNuMI triggerfilterOffbeamBNB triggerfilterOffbeamNuMI triggerfilterUnknown roifinder roifinder2d gaushitTPCEE icarus_stage0_WestHits_TPC
BEGIN_PROLOG opflashCryoW opflashCryoW triggerfilterBNB triggerfilterNuMI triggerfilterOffbeamBNB triggerfilterOffbeamNuMI triggerfilterUnknown roifinder roifinder2d icarus_stage0_EastHits_TPC
process_name drop raw::OpDetWaveforms_DataApr2016RecoStage1_saturation_ * physics
process_name gaushitTPC3 gaushitTPC3 filters
BEGIN_PROLOG triggeremu_data_config_icarus settings PMTADCthresholds daqTPCROI
BEGIN_PROLOG opflashCryoE TPCHitFilterCryoW TPCHitFilterCryoE sequence::icarus_filter_cluster3DCryoE SBNShowerGausCryoW icarus_reco_pandoraGausCryoE
process_name caloskimCalorimetryCryoE
process_name caloskimCalorimetryCryoW
BEGIN_PROLOG gatesFromTracks_icarus
BEGIN_PROLOG vertical distance to the surface Name
BEGIN_PROLOG BeamGateDuration protect_ignore
BEGIN_PROLOG triggeremu_data_config_icarus settings PMTADCthresholds sequence::icarus_stage0_multiTPC_TPC physics sequence::icarus_stage0_EastHits_TPC physics sequence::icarus_stage0_WestHits_TPC physics producers purityana0 fmatchCryoE
BEGIN_PROLOG opflashCryoE TPCHitFilterCryoW TPCHitFilterCryoE sequence::icarus_filter_cluster3DCryoE SBNShowerGausCryoW SBNShowerGausCryoE sequence::icarus_reco_pandoraGausCryoW sequence::icarus_reco_pandoraGausCryoE sequence::icarus_reco_pandoraGausCryoW fmatchCryoW icarus_crthit
BEGIN_PROLOG timetracktreestorage_base
then echo Cowardly refusing to create a new FHiCL file with the same name as the original one('${SourceName}')." >&2 exit 1 fi echo "'$
outputs out1 outputCommands
BEGIN_PROLOG opflashCryoW opflashCryoW triggerfilterBNB triggerfilterNuMI triggerfilterOffbeamBNB triggerfilterOffbeamNuMI triggerfilterUnknown roifinder roifinder2d gaushitTPCEE gaushitTPCWE purityana1 opflashCryoW flashfilterBNB flashfilterNuMI sequence::icarus_purity_monitor sequence::icarus_purity_monitor icarus_stage0_crt
process_name drop *_gatesFromTracks *_ *_ drop simTiled *_ *_ *_ drop simSliding *_ *_ *_ *physics analyzers t0TreeStoreE CaloProducer
BEGIN_PROLOG opflashCryoW opflashCryoW triggerfilterBNB triggerfilterNuMI triggerfilterOffbeamBNB triggerfilterOffbeamNuMI triggerfilterUnknown icarus_stage0_multiTPC_TPC
BEGIN_PROLOG triggeremu_data_config_icarus settings PMTADCthresholds sequence::icarus_stage0_multiTPC_TPC physics sequence::icarus_stage0_EastHits_TPC physics sequence::icarus_stage0_WestHits_TPC physics producers purityana0 module_type
BEGIN_PROLOG triggeremu_data_config_icarus settings PMTADCthresholds sequence::icarus_stage0_multiTPC_TPC physics sequence::icarus_stage0_EastHits_TPC physics opflashCryoW
services TFileService fileName
BEGIN_PROLOG triggeremu_data_config_icarus settings PMTADCthresholds sequence::icarus_stage0_multiTPC_TPC physics sequence::icarus_stage0_EastHits_TPC physics sequence::icarus_stage0_WestHits_TPC physics producers purityana0 caloskimCalorimetryCryoE physics fmatchCryoW
BEGIN_PROLOG triggeremu_data_config_icarus settings PMTADCthresholds sequence::icarus_stage0_multiTPC_TPC physics opflashCryoE
BEGIN_PROLOG icarus_stage1_producers
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsWindowPair END_PROLOG trigslidewindowOR6m output outputs
BEGIN_PROLOG opflashCryoW opflashCryoW triggerfilterBNB triggerfilterNuMI triggerfilterOffbeamBNB triggerfilterOffbeamNuMI triggerfilterUnknown roifinder roifinder2d gaushitTPCEE gaushitTPCWE purityana1 icarus_stage0_PMT
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG process_name