addnoise_findprim_frugalped_snanas.fcl
Go to the documentation of this file.
1 # addnoise_findprim_frugalped_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 }
21 END_PROLOG
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_frugalped_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 #source is now a root file
36 source: {
37  module_type: RootInput
38  maxEvents: -1 # Number of events to create
39 }
40 
41 # Define and configure some modules to do work on each event.
42 # First modules are defined; they are scheduled later.
43 # Modules are grouped by type.
44 physics: {
45  producers: {
46  simwire: {
47  module_type: "SimWireDUNE"
48  SimChannelLabel: "largeant"
49  NoiseOn: true
50  PedestalOn: true
51  DistortOn: false
52  SuppressOn: false
53  KeepEmptyChannels: true
54  AdcSimulator: "adcsim_ideal"
55  UseRawDigitInput: true
56  RawDigitInputLabel: "daq"
57  }
58 
59  # You can add any number of trigger primitive finders here. Make
60  # sure each one has a distinct name, and has a corresponding
61  # daqsimana analyzer (otherwise you won't get a corresponding
62  # TTree in the output file. Also make sure to add it to the "simulate" list below
63  trigprim800: @local::trigprimpass1frugal
64  trigprim1000: @local::trigprimpass1frugal
65  trigprim1200: @local::trigprimpass1frugal
66  trigprim1400: @local::trigprimpass1frugal
67  trigprim1600: @local::trigprimpass1frugal
68  trigprim1800: @local::trigprimpass1frugal
69  trigprim2000: @local::trigprimpass1frugal
70  trigprim2400: @local::trigprimpass1frugal
71 
72  rns: { module_type: "RandomNumberSaver" }
73  }
74 
75  analyzers:
76  {
77  # Create an SNAna for each trigger primitive finders. Make
78  # sure to add each one to the "ana" list below
79  snanatrigprim800: @local::trigprim_snana
80  snanatrigprim1000: @local::trigprim_snana
81  snanatrigprim1200: @local::trigprim_snana
82  snanatrigprim1400: @local::trigprim_snana
83  snanatrigprim1600: @local::trigprim_snana
84  snanatrigprim1800: @local::trigprim_snana
85  snanatrigprim2000: @local::trigprim_snana
86  snanatrigprim2400: @local::trigprim_snana
87  waveformstotree: {
88  module_type: "WaveformsToTree"
89  InputTag: "simwire"
90  MaxChannels: 50
91  }
92  }
93 
94  simulate: [ rns, simwire, trigprim800, trigprim1000, trigprim1200, trigprim1400, trigprim1600, trigprim1800, trigprim2000, trigprim2400 ]
95  ana: [ snanatrigprim800, snanatrigprim1000, snanatrigprim1200, snanatrigprim1400, snanatrigprim1600, snanatrigprim1800, snanatrigprim2000, snanatrigprim2400, waveformstotree ]
96 
97  trigger_paths: [simulate]
98  end_paths: [ ana ]
99 
100 }
101 
102 # Modify the settings of each of the trigger primitive finders. If you
103 # want to use a different trigger primitive finder class, set
104 # "physics.producers.<itemname>.finder.tool_type: MyNewTriggerPrimitiveFinderTool"
105 physics.producers.trigprim800.finder.Threshold: 800
106 physics.producers.trigprim1000.finder.Threshold: 1000
107 physics.producers.trigprim1200.finder.Threshold: 1200
108 physics.producers.trigprim1400.finder.Threshold: 1400
109 physics.producers.trigprim1600.finder.Threshold: 1600
110 physics.producers.trigprim1800.finder.Threshold: 1800
111 physics.producers.trigprim2000.finder.Threshold: 2000
112 physics.producers.trigprim2400.finder.Threshold: 2400
113 
114 # Set the HitLabel to make sure each DaqAnaSim reads hits from its
115 # corresponding TriggerPrimitiveFinder
116 physics.analyzers.snanatrigprim800.HitLabel: "trigprim800"
117 physics.analyzers.snanatrigprim1000.HitLabel: "trigprim1000"
118 physics.analyzers.snanatrigprim1200.HitLabel: "trigprim1200"
119 physics.analyzers.snanatrigprim1400.HitLabel: "trigprim1400"
120 physics.analyzers.snanatrigprim1600.HitLabel: "trigprim1600"
121 physics.analyzers.snanatrigprim1800.HitLabel: "trigprim1800"
122 physics.analyzers.snanatrigprim2000.HitLabel: "trigprim2000"
123 physics.analyzers.snanatrigprim2400.HitLabel: "trigprim2400"
124 
125 # =====================================================================
126 # You probably won't need to change anything below here
127 
128 # Shut up the backtracker
129 services.message.destinations.LogStandardOut.categories.BackTracker.limit: 0
130 services.message.destinations.LogStandardError.categories.BackTracker.limit: 0
131 
132 # DetSim services. These are used by SimWire to add noise and
133 # pedestals to the incoming (noise-free) waveforms
134 services.SimChannelExtractService: @local::scxgeneric
135 services.ChannelNoiseService: @local::chnoiseold
136 services.PedestalAdditionService: @local::padprovided
137 services.AdcDistortService: @local::stuckbits
138 services.AdcSuppressService: @local::zsnone
139 services.AdcCompressService: @local::cmpreplace
140 services.DetPedestalService: @local::dune_fixedpeds
141