prodcosmics_corsika_protodunedp_combined_geng4detsim.fcl
Go to the documentation of this file.
1 #include "services_dune.fcl"
2 #include "largeantmodules_dune.fcl"
3 #include "detsimmodules_dune.fcl"
4 #include "photpropservices_dune.fcl"
5 #include "CORSIKAGendp.fcl"
6 #include "tools_dune.fcl"
7 
8 
9 process_name: CosmicsDP
10 
11 services: @local::protodunedphase_simulation_services_legacy
12 
13 #Load the service that manages root files for histograms.
14 services.TFileService: { fileName: "cosmics_corsika_rotation_hist.root" }
15 services.TimeTracker: {}
16 services.RandomNumberGenerator: {} #ART native random number generator
17 services.FileCatalogMetadata: @local::art_file_catalog_mc
18 services.NuRandomService: @local::random_NuRandomService # seedservice.fcl
19 services.Geometry: @local::protodunedphase_geo
20 services.DetectorPropertiesService: @local::protodunedphase_detproperties
21 
22 #we activate light simulation
23 services.LArG4Parameters.UseCustomPhysics: true
24 services.LArG4Parameters.EnabledPhysics: [ "Em",
25  "FastOptical",
26  "SynchrotronAndGN",
27  "Ion",
28  "Hadron",
29  "Decay",
30  "HadronElastic",
31  "Stopping"]
32 
33 
34 #Start each new event with an empty event.
35 source:
36 {
37  module_type: EmptyEvent
38  timestampPlugin: { plugin_type: "GeneratedEventTimestamp" }
39  maxEvents: 100 # Number of events to create
40  firstRun: 1 # Run number to use for this file
41  firstEvent: 1 # number of first event in the file
42 }
43 
44 # Define and configure some modules to do work on each event.
45 # First modules are defined; they are scheduled later.
46 # Modules are grouped by type.
47 physics:
48 {
49 
50  producers:
51  {
52  rns: { module_type: "RandomNumberSaver" }
53  generator: @local::standard_CORSIKAGendp_CMC
54  largeant: @local::dunefd_largeant
55  daq: @local::dune_detsim
56  }
57 
58  #define the producer and filter modules for this path, order matters,
59  #filters reject all following items. see lines starting physics.producers below
60  simulate: [ rns,
61  generator,
62  largeant,
63  daq
64  ]
65 
66  #define the output stream, there could be more than one if using filters
67  stream1: [ out1 ]
68 
69  #trigger_paths is a keyword and contains the paths that modify the art::event,
70  #ie filters and producers
71  trigger_paths: [simulate]
72 
73  #end_paths is a keyword and contains the paths that do not modify the art::Event,
74  #ie analyzers and output streams. these all run simultaneously
75  end_paths: [stream1]
76 }
77 
78 #block to define where the output goes. if you defined a filter in the physics
79 #block and put it in the trigger_paths then you need to put a
80 SelectEvents: {SelectEvents: [XXX]}
81 #entry in the output stream you want those to go to, where XXX is the label of the filter module(s)
82 outputs:
83 {
84  out1:
85  {
86  module_type: RootOutput
87  fileName: "cosmics_protodunedp.root" #default file name, can override from command line with -o or --output
88  dataTier: "cosmic-detsim"
89  compressionLevel: 1
90  }
91 }
92 
93 #specific to cosmic sim
94 physics.producers.generator.DoRotation: true
95 physics.producers.generator.SampleTime: 8e-3
96 physics.producers.generator.TimeOffset: -4e-3 #4.0 ms readout should start at -0.875 ms to match data
97 physics.producers.generator.BufferBox: [ -300.0, 300.0, -300.0, 300.0, -300.0, 300.0 ] #in cm
98 physics.producers.generator.ShowerAreaExtension: 2000
99 physics.producers.generator.RandomXZShift: 2000 #amount to randomly shift shower start point in x & z [cm] (default is 1000)
100 physics.producers.generator.ProjectToHeight: 856 #height to which particles are projected in cm
101 physics.producers.generator.ShowerInputFiles: [
102  "/cvmfs/dune.osgstorage.org/pnfs/fnal.gov/usr/dune/persistent/stash/Cosmics/CERN/CORSIKA/standard/p_showers_*",
103  "/cvmfs/dune.osgstorage.org/pnfs/fnal.gov/usr/dune/persistent/stash/Cosmics/CERN/CORSIKA/standard/He_showers_*",
104  "/cvmfs/dune.osgstorage.org/pnfs/fnal.gov/usr/dune/persistent/stash/Cosmics/CERN/CORSIKA/standard//N_showers_*",
105  "/cvmfs/dune.osgstorage.org/pnfs/fnal.gov/usr/dune/persistent/stash/Cosmics/CERN/CORSIKA/standard//Mg_showers_*",
106  "/cvmfs/dune.osgstorage.org/pnfs/fnal.gov/usr/dune/persistent/stash/Cosmics/CERN/CORSIKA/standard//Fe_showers_*"
107  ] #list of sqlite dbs with corsika showers
108 
109 
110 
111 services.DetectorPropertiesService.Electronlifetime: 3000.0 #in us
112 
113 services.LArG4Parameters.MinNumberOfElCluster: 20
114 
115 services.PhotonVisibilityService: @local::protodunedp_photonvisibilityservice
116 services.PhotonVisibilityService.Interpolate: true
117 
118 # DetSim flags.
119 physics.producers.daq.NoiseOn: true
120 physics.producers.daq.PedestalOn: true
121 physics.producers.daq.DistortOn: false
122 physics.producers.daq.SuppressOn: false #false when noise on!
123 physics.producers.daq.KeepEmptyChannels: true
124 
125 # DetSim services.
126 services.ChannelNoiseService: @local::chnoiseold
127 services.PedestalAdditionService: @local::padprovided
128 
129 services.DetPedestalService: @local::dunedp_fixedpeds
130 services.DetPedestalService.FixedDetPedestal.PedMeanErrY: 0
131 services.DetPedestalService.FixedDetPedestal.PedMeanErrZ: 0
132 services.DetPedestalService.FixedDetPedestal.PedMeanY: 60
133 services.DetPedestalService.FixedDetPedestal.PedMeanZ: 60
134 services.DetPedestalService.FixedDetPedestal.PedRmsErrY: 0
135 services.DetPedestalService.FixedDetPedestal.PedRmsErrZ: 0
136 services.DetPedestalService.FixedDetPedestal.PedRmsY: 0
137 services.DetPedestalService.FixedDetPedestal.PedRmsZ: 0
138 
139 services.AdcDistortService: @local::stuckbits
140 services.AdcSuppressService: @local::zsonline
141 services.AdcCompressService: @local::cmpreplace
142 
143 
144 #===================New noise module ===========================================
145 #Configure realistic noise service for DP detectors based on the 311 data
146 #NB: Hardcoded unrotated geometry:
147 
148 services.ChannelNoiseService:{
149 service_provider: DPhaseRealisticNoiseService
150 NoiseModel: "$MRB_SOURCE/dunetpc/dune/DetSim/NoiseModels/729-0_fft_mirror.root" #path to the noise model root file
151 RandomizeX: 15. #0.002
152 RandomizeY: 15. #0.002
153 Smooth: 1000
154 SetFirst0: false
155 SetBaseline: false #if true sum baseline to real noise model
156 NoiseArrayPoints: 1000
157 OldNoiseIndex: false #From ExponentialChannelNoiseService. Keep false
158 }