2 # File: prodcorsika_proton_intime_icarus_numi.fcl
3 # Purpose: Generation of cosmic rays in time with NuMI spill.
4 # Author: Gianluca Petrillo (petrillo@slac.stanford.edu)
5 # Date: February 2, 2021
7 # This job configuration is part of a workflow specific for simulation of cosmic
8 # rays constrained in a time window matching a neutrino beam spill.
10 # This job generates cosmic rays for ICARUS detector, ensuring that at least one
11 # of them is in coincidence with the NuMI beam gate.
12 # The job includes the generation of cosmic rays with only proton component
13 # (as opposed to a Constant Mass Composition model, CMC).
15 # The workflow for in-time cosmic ray simulation is made of two specific steps:
16 # * generation (`prodcorsika_proton_intime_icarus_numi.fcl`)
17 # * propagation through the detector (`intime_g4_icarus.fcl`);
18 # alternatively, a standard G4 process can be used, taking care of discarding
19 # the G4 output (`larg4intime`) from this job
21 # Following these two stages, the resulting output can then be processed as a
22 # regular G4 job output, usually via a digitization stage (DetSim).
23 # Note that this workflow does not generate any neutrino interaction.
25 # The flow of the job is quite complex, and this job configuration is simply
26 # overriding relevant parameters from the BNB-focussing configuration
27 # `prodcorsika_proton_intime_icarus_bnb.fcl` by Gray Putnam
28 # (grayputnam@uchicago.edu). Gray has done an excellent job of documentation
29 # within that configuration file, and reading of that documentation is strongly
31 # Here the beam window has been extended to 10 microseconds, and that's pretty
34 # In a nutshell: this stage (generation) is a standard cosmic ray generation
35 # (protons only in this case), followed by the selection of generated particles
36 # that might cause scintillation during the beam gate (a tuned [ Tmin, Tmax ]),
37 # and by the GEANT4 simulation of those particles; finally, events that haven't
38 # deposited in TPC at least a minimum of energy are filtered out and not saved.
43 # This is a generation job: no input is required.
44 # Empty event input file can still be specified (e.g. by using a `-s` argument
45 # to `lar` executable) which by reusing the events with a fixed timestamp may
46 # facilitate the reproducibility of the jobs.
51 # This job includes filters: the number of generated events may not
52 # (and almost surely *will not*) match the requested number.
53 # A test run (`icrauscode` `v09_14_00`) has shown:
55 # absolute efficiency BNB NuMI
57 # particle in time 8% 37%
58 # min. photons/energy 6% 28%
59 # time/event 2.4" 2.4"
61 # An _art_ ROOT file is produced, with the following content highlight:
62 # * generator: the complete cosmic ray particle list
63 # * GenInTimeSorter: generated particles split in `intime` and `outtime`
64 # * larg4intime: LArG4 processing on `GenInTimeSorter:intime` particles only
70 # This job configuration was written based on `icaruscode` `v09_14_00`.
71 # Changes in the underlying job configuration,
72 # `prodcorsika_proton_intime_icarus_bnb.fcl`, affect this one as well.
79 # ##############################################################################
80 # generation: events with particles produced within a time range
81 # with at least this energy are preserved
84 # kinetic energy cut for in-time candidate particles
85 # physics.filters.GenInTimeSorter.MinKE: 0.1
87 # time reference is generation time 0 (matching the beam gate start in ICARUS)
88 physics.filters.GenInTimeSorter.MaxT: 9600 # [ns] 9.5 us (NuMI
beam) + 0.1 us (buffer)
92 # ##############################################################################
93 # time filter: events with at least this much scintillation energy detected
94 # within configured time are preserved
97 # scintillation photon time:
98 physics.filters.timefilter.TimeWindows: [ [ -202, 9798 ] ] # ns
100 # energy from scintillation:
101 # physics.filters.timefilter.MinTotalEnergy: 0.0002425 # [MeV] = 25 photons x9.7 eV
104 # ##############################################################################
105 # other customisation
108 outputs.out1.fileName:
"prodcorsika_proton_intime_icarus_numi_%tc.root"
process_name drop raw::OpDetWaveforms_DataApr2016RecoStage1_saturation_ * physics
process_name gaushitTPC3 gaushitTPC3 filters
process_name GenInTimeSorter
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsWindowPair END_PROLOG trigslidewindowOR6m output outputs