addnoise_findprim_snanas.fcl
Go to the documentation of this file.
1 # addnoise_findprim_daqsimanas.fcl
2 
3 # Read in (presumably noise-free) waveforms, add noise and pedestals,
4 # then find trigger primitives on the (now noisy) waveforms, and save
5 # the trigger primitives (as "Hits") to an output TTree.
6 
7 # Any number of trigger primitive finders can be run: useful for
8 # running the same finder with multiple parameter settings, for
9 # example. The output of each trigger primitive finder should be
10 # connected to a DaqSimAna analyzer
11 
12 #include "SNAna.fcl"
13 #include "trigprim.fcl"
14 BEGIN_PROLOG
15 trigprim_snana: {
16  @table::standard_snana
17  SaveNeighbourADCs: false
18  SaveTruth: false
19 }
20 END_PROLOG
21 #include "opticaldetectormodules_dune.fcl"
22 #include "standard_detsim_dune10kt_1x2x6.fcl"
23 
24 
25 process_name: PrimSim
26 
27 services: @local::dunefd_simulation_services
28 services.TFileService: { fileName: "SNAna_plus_trigprim_multithreshold.root" }
29 services.TimeTracker: {}
30 services.MemoryTracker: { } # default is one
31 services.RandomNumberGenerator: {} #ART native random number generator
32 // services.FileCatalogMetadata: @local::art_file_catalog_mc
33 services.NuRandomService: @local::per_event_NuRandomService # seedservice.fcl
34 services.message: @local::dune_message_services_prod
35 services.Geometry: @local::dune10kt_1x2x6_geo
36 #source is now a root file
37 source: {
38  module_type: RootInput
39  maxEvents: -1 # Number of events to create
40 }
41 
42 # Define and configure some modules to do work on each event.
43 # First modules are defined; they are scheduled later.
44 # Modules are grouped by type.
45 physics: {
46  producers: {
47  simwire: {
48  module_type: "SimWireDUNE"
49  SimChannelLabel: "largeant"
50  NoiseOn: true
51  PedestalOn: true
52  DistortOn: false
53  SuppressOn: false
54  KeepEmptyChannels: true
55  AdcSimulator: "adcsim_ideal"
56  UseRawDigitInput: true
57  RawDigitInputLabel: "daq"
58  }
59 
60  ophit: @local::dune35t_ophit
61 
62  # You can add any number of trigger primitive finders here. Make
63  # sure each one has a distinct name, and has a corresponding
64  # daqsimana analyzer otherwise you won't get a corresponding
65  # TTree in the output file. Also make sure to add it to the "simulate" list below
66  trigprim12: @local::trigprimpass1
67  trigprim13: @local::trigprimpass1
68  trigprim14: @local::trigprimpass1
69  trigprim15: @local::trigprimpass1
70  trigprim16: @local::trigprimpass1
71 
72  trigprim30sig: @local::trigprimpass2
73  trigprim40sig: @local::trigprimpass2
74  trigprim45sig: @local::trigprimpass2
75  trigprim50sig: @local::trigprimpass2
76  trigprim55sig: @local::trigprimpass2
77  trigprim60sig: @local::trigprimpass2
78 
79  rns: { module_type: "RandomNumberSaver" }
80  }
81 
82  analyzers: {
83  # Create an SNAna for each trigger primitive finders. Make
84  # sure to add each one to the "ana" list below
85  snanatrigprim12: @local::trigprim_snana
86  snanatrigprim13: @local::trigprim_snana
87  snanatrigprim14: @local::trigprim_snana
88  snanatrigprim15: @local::trigprim_snana
89  snanatrigprim16: @local::trigprim_snana
90 
91  snanatrigprim30sig: @local::trigprim_snana
92  snanatrigprim40sig: @local::trigprim_snana
93  snanatrigprim45sig: @local::trigprim_snana
94  snanatrigprim50sig: @local::trigprim_snana
95  snanatrigprim55sig: @local::trigprim_snana
96  snanatrigprim60sig: @local::trigprim_snana
97  }
98 
99  simulate: [rns, simwire, ophit,
100  trigprim12, trigprim13, trigprim14, trigprim15, trigprim16,
101  trigprim30sig, trigprim40sig, trigprim45sig, trigprim50sig, trigprim55sig, trigprim60sig]
102  ana : [snanatrigprim12, snanatrigprim13, snanatrigprim14, snanatrigprim15, snanatrigprim16,
103  snanatrigprim30sig, snanatrigprim40sig, snanatrigprim45sig, snanatrigprim50sig, snanatrigprim55sig, snanatrigprim60sig]
104 
105  trigger_paths: [ simulate ]
106  end_paths: [ ana ]
107 
108 }
109 
110 # Modify the settings of each of the trigger primitive finders. If you
111 # want to use a different trigger primitive finder class, set
112 # "physics.producers.<itemname>.finder.tool_type: MyNewTriggerPrimitiveFinderTool"
113 physics.producers.trigprim12.finder.Threshold: 1200
114 physics.producers.trigprim13.finder.Threshold: 1300
115 physics.producers.trigprim14.finder.Threshold: 1400
116 physics.producers.trigprim15.finder.Threshold: 1500
117 physics.producers.trigprim16.finder.Threshold: 1600
118 physics.producers.trigprim30sig.finder.ThresholdInSigma: 300
119 physics.producers.trigprim40sig.finder.ThresholdInSigma: 400
120 physics.producers.trigprim45sig.finder.ThresholdInSigma: 450
121 physics.producers.trigprim50sig.finder.ThresholdInSigma: 500
122 physics.producers.trigprim55sig.finder.ThresholdInSigma: 550
123 physics.producers.trigprim60sig.finder.ThresholdInSigma: 600
124 
125 
126 # Set the HitLabel to make sure each DaqAnaSim reads hits from its
127 # corresponding TriggerPrimitiveFinder
128 physics.analyzers.snanatrigprim12.HitLabel: "trigprim12"
129 physics.analyzers.snanatrigprim13.HitLabel: "trigprim13"
130 physics.analyzers.snanatrigprim14.HitLabel: "trigprim14"
131 physics.analyzers.snanatrigprim15.HitLabel: "trigprim15"
132 physics.analyzers.snanatrigprim16.HitLabel: "trigprim16"
133 physics.analyzers.snanatrigprim30sig.HitLabel: "trigprim30sig"
134 physics.analyzers.snanatrigprim40sig.HitLabel: "trigprim40sig"
135 physics.analyzers.snanatrigprim45sig.HitLabel: "trigprim45sig"
136 physics.analyzers.snanatrigprim50sig.HitLabel: "trigprim50sig"
137 physics.analyzers.snanatrigprim55sig.HitLabel: "trigprim55sig"
138 physics.analyzers.snanatrigprim60sig.HitLabel: "trigprim60sig"
139 
140 # Only save IDEs in one of the output trees, since they're always the same and will only take up space otherwise
141 # physics.analyzers.snanatrigprim800.SaveIDEs: true
142 
143 # =====================================================================
144 # You probably won't need to change anything below here
145 
146 # Shut up the backtracker
147 services.message.destinations.LogStandardOut.categories.BackTracker.limit: 0
148 services.message.destinations.LogStandardError.categories.BackTracker.limit: 0
149 
150 # Display all the INFO message for SNAna_module
151 services.message.destinations.LogStandardOut.categories.SNAna_module.limit:-1
152 
153 # If you want to have the mf::LogDebug() messages, uncomment the following:
154 # services.message.destinations.LogStandardOut.threshold:"DEBUG"
155 # services.message.destinations.LogStandardOut.categories.SNAna_module.limit:-1
156 # services.message.destinations.LogStandardOut.categories.default.limit:0
157 
158 
159 # DetSim services. These are used by SimWire to add noise and
160 # pedestals to the incoming (noise-free) waveforms
161 services.SimChannelExtractService: @local::scxgeneric
162 services.ChannelNoiseService: @local::chnoiseold
163 services.PedestalAdditionService: @local::padprovided
164 services.AdcDistortService: @local::stuckbits
165 services.AdcSuppressService: @local::zsnone
166 services.AdcCompressService: @local::cmpreplace
167 services.DetPedestalService: @local::dune_fixedpeds
168 
169 #Optical detector configuration
170 physics.producers.ophit.InputModule: "opdigi"