All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CRTDetSimParams.h
Go to the documentation of this file.
1 /**
2  * \brief Class for SBND CRT detector simulation parameters
3  *
4  * \details This class contains all the parameters for the CRT detector simulation.
5  * Note that physics parameters do not have default values,
6  * and all parameters need to be initialized via fhicl.
7  *
8  * \author Andy Mastbaum
9  * \author Marco Del Tutto
10  */
11 
12 #ifndef SBND_CRTDETSIMPARAMS_H
13 #define SBND_CRTDETSIMPARAMS_H
14 
15 #include "fhiclcpp/types/Table.h"
16 #include "fhiclcpp/types/OptionalTable.h"
17 #include "fhiclcpp/types/Sequence.h"
18 #include "fhiclcpp/types/OptionalSequence.h"
19 
20 namespace sbnd
21 {
22 namespace crt
23 {
25  {
26 
27  fhicl::Atom<double> GlobalT0Offset {
28  fhicl::Name("GlobalT0Offset"),
29  fhicl::Comment("The global time offset to use for the CRT times"),
30  };
31  fhicl::Atom<bool> UseG4RefTimeOffset {
32  fhicl::Name("UseG4RefTimeOffset"),
33  fhicl::Comment("Wheater or not to use the G4RefTime as GlobalT0Offset"),
34  };
35  fhicl::Atom<double> TDelayNorm {
36  fhicl::Name("TDelayNorm"),
37  fhicl::Comment("Time delay fit: Gaussian normalization"),
38  };
39  fhicl::Atom<double> TDelayShift {
40  fhicl::Name("TDelayShift"),
41  fhicl::Comment("Time delay fit: Gaussian x shift"),
42  };
43  fhicl::Atom<double> TDelaySigma {
44  fhicl::Name("TDelaySigma"),
45  fhicl::Comment("Time delay fit: Gaussian width"),
46  };
47  fhicl::Atom<double> TDelayOffset {
48  fhicl::Name("TDelayOffset"),
49  fhicl::Comment("Time delay fit: Gaussian baseline offset"),
50  };
51  fhicl::Atom<double> TDelayRMSGausNorm {
52  fhicl::Name("TDelayRMSGausNorm"),
53  fhicl::Comment("Time delay RMS fit: Gaussian normalization"),
54  };
55  fhicl::Atom<double> TDelayRMSGausShift {
56  fhicl::Name("TDelayRMSGausShift"),
57  fhicl::Comment("Time delay RMS fit: Gaussian x shift"),
58  };
59  fhicl::Atom<double> TDelayRMSGausSigma {
60  fhicl::Name("TDelayRMSGausSigma"),
61  fhicl::Comment("Time delay fit: Gaussian width"),
62  };
63  fhicl::Atom<double> TDelayRMSExpNorm {
64  fhicl::Name("TDelayRMSExpNorm"),
65  fhicl::Comment("Time delay RMS fit: Exponential normalization"),
66  };
67  fhicl::Atom<double> TDelayRMSExpShift {
68  fhicl::Name("TDelayRMSExpShift"),
69  fhicl::Comment("Time delay RMS fit: Exponential x shift"),
70  };
71  fhicl::Atom<double> TDelayRMSExpScale {
72  fhicl::Name("TDelayRMSExpScale"),
73  fhicl::Comment("Time delay RMS fit: Exponential scale"),
74  };
75  fhicl::Atom<uint32_t> TriggerDelay {
76  fhicl::Name("TriggerDelay"),
77  fhicl::Comment("Time between signal starts and waveform goes above threshold"),
78  };
79  fhicl::Atom<bool> EqualizeSiPMTimes {
80  fhicl::Name("EqualizeSiPMTimes"),
81  fhicl::Comment("Makes the time simulation to the two SiPMs on a strip identical"),
82  false
83  };
84  fhicl::Atom<double> ClockSpeedCRT {
85  fhicl::Name("ClockSpeedCRT"),
86  fhicl::Comment("Clock speed for the CRT system [MHz]"),
87  };
88  fhicl::Atom<double> NpeScaleNorm {
89  fhicl::Name("NpeScaleNorm"),
90  fhicl::Comment("Npe vs. distance: 1/r^2 scale"),
91  };
92  fhicl::Atom<double> NpeScaleShift {
93  fhicl::Name("NpeScaleShift"),
94  fhicl::Comment("Npe vs. distance: 1/r^2 x shift"),
95  };
96  fhicl::Atom<double> Q0 {
97  fhicl::Name("Q0"),
98  fhicl::Comment("Average energy deposited for mips, for charge scaling [GeV]"),
99  };
100  fhicl::Atom<double> QPed {
101  fhicl::Name("QPed"),
102  fhicl::Comment("ADC offset for the single-peak peak mean [ADC]"),
103  };
104  fhicl::Atom<double> QSlope {
105  fhicl::Name("QSlope"),
106  fhicl::Comment("Slope in mean ADC / Npe [ADC]"),
107  };
108  fhicl::Atom<double> QRMS {
109  fhicl::Name("QRMS"),
110  fhicl::Comment("ADC single-pe spectrum width [ADC]"),
111  };
112  fhicl::Atom<double> QThreshold {
113  fhicl::Name("QThreshold"),
114  fhicl::Comment("ADC charge threshold [ADC]"),
115  };
116  fhicl::Atom<double> TResInterpolator {
117  fhicl::Name("TResInterpolator"),
118  fhicl::Comment("Interpolator time resolution [ns]"),
119  };
120  fhicl::Atom<double> PropDelay {
121  fhicl::Name("PropDelay"),
122  fhicl::Comment("Delay in pulse arrival time [ns/m]"),
123  };
124  fhicl::Atom<double> PropDelayError {
125  fhicl::Name("PropDelayError"),
126  fhicl::Comment("Delay in pulse arrival time, uncertainty [ns/m]"),
127  };
128  fhicl::Atom<double> StripCoincidenceWindow {
129  fhicl::Name("StripCoincidenceWindow"),
130  fhicl::Comment("Time window for two-fiber coincidence [ns]"),
131  };
132  fhicl::Atom<double> TaggerPlaneCoincidenceWindow {
133  fhicl::Name("TaggerPlaneCoincidenceWindow"),
134  fhicl::Comment("Time window for two-plane coincidence [ticks]"),
135  };
136  fhicl::Atom<double> AbsLenEff {
137  fhicl::Name("AbsLenEff"),
138  fhicl::Comment("Effective abs. length for transverse Npe scaling [cm]"),
139  };
140  fhicl::Atom<bool> UseEdep {
141  fhicl::Name("UseEdep"),
142  fhicl::Comment("Use the true G4 energy deposited, assume mip if false"),
143  };
144  fhicl::Atom<double> SipmTimeResponse {
145  fhicl::Name("SipmTimeResponse"),
146  fhicl::Comment("Minimum time to resolve separate energy deposits [ns]"),
147  };
148  fhicl::Atom<uint32_t> AdcSaturation {
149  fhicl::Name("AdcSaturation"),
150  fhicl::Comment("Saturation limit per SiPM in ADC counts"),
151  };
152  fhicl::Atom<double> DeadTime {
153  fhicl::Name("DeadTime"),
154  fhicl::Comment("FEB dead time after a trigger [ns]"),
155  };
156  fhicl::Sequence<double> WaveformX {
157  fhicl::Name("WaveformX"),
158  fhicl::Comment("SiPM waveform sampled, X")
159  };
160  fhicl::Sequence<double> WaveformY {
161  fhicl::Name("WaveformY"),
162  fhicl::Comment("SiPM waveform sampled, Y")
163  };
164  fhicl::Atom<bool> DoWaveformEmulation {
165  fhicl::Name("DoWaveformEmulation"),
166  fhicl::Comment("Weather or not to perform waveform simulation"),
167  };
168  fhicl::Atom<bool> DebugTrigger {
169  fhicl::Name("DebugTrigger"),
170  fhicl::Comment("If true, prints out additional debug messages for trigger debugging"),
171  false
172  };
173  };
174 }
175 }
176 
177 #endif
fhicl::Atom< double > PropDelay
fhicl::Atom< double > TDelayRMSGausShift
fhicl::Atom< double > NpeScaleNorm
fhicl::Atom< double > QThreshold
fhicl::Atom< double > SipmTimeResponse
fhicl::Atom< double > TDelayRMSExpShift
fhicl::Sequence< double > WaveformY
fhicl::Atom< bool > DoWaveformEmulation
fhicl::Atom< uint32_t > AdcSaturation
fhicl::Atom< double > QRMS
fhicl::Atom< double > Q0
fhicl::Atom< double > QSlope
fhicl::Atom< double > TResInterpolator
fhicl::Atom< uint32_t > TriggerDelay
fhicl::Atom< double > TDelayShift
fhicl::Atom< double > TDelaySigma
fhicl::Sequence< double > WaveformX
fhicl::Atom< double > TDelayOffset
fhicl::Atom< bool > EqualizeSiPMTimes
fhicl::Atom< double > PropDelayError
fhicl::Atom< double > AbsLenEff
fhicl::Atom< double > TDelayRMSExpNorm
BEGIN_PROLOG vertical distance to the surface Name
fhicl::Atom< double > TDelayRMSGausNorm
fhicl::Atom< bool > DebugTrigger
fhicl::Atom< double > QPed
fhicl::Atom< double > TDelayRMSGausSigma
fhicl::Atom< bool > UseEdep
fhicl::Atom< double > StripCoincidenceWindow
fhicl::Atom< double > TaggerPlaneCoincidenceWindow
fhicl::Atom< double > DeadTime
fhicl::Atom< double > GlobalT0Offset
fhicl::Atom< double > ClockSpeedCRT
fhicl::Atom< double > TDelayNorm
stream1 can override from command line with o or output services user sbnd
fhicl::Atom< double > NpeScaleShift
fhicl::Atom< double > TDelayRMSExpScale
process_name crt
fhicl::Atom< bool > UseG4RefTimeOffset