BackEndSiPM.h
Go to the documentation of this file.
1 #ifndef _mdet_BackEndSiPM_h
2 #define _mdet_BackEndSiPM_h
3 
4 #include <mdet/MComponentGroup.h>
5 #include <mdet/MDetectorComponent.h>
6 //
7 #include <utl/Validated.h>
8 //
9 #include <complex>
10 #include <memory>
11 
12 namespace det {
13  struct ParentCreator;
14  struct ComponentUpdater;
15 }
16 
17 namespace mdet {
18 
19  class Module;
37  class BackEndSiPM :
38  public MDetectorComponent<BackEndSiPM>::Type {
39  public:
40 
41  static const char* const kComponentName;
42 
43  static const char* const kComponentId;
47  const Module& GetModule() const {
48  return fModule;
49  }
50 
51  enum TransferStep {
59  };
60 
61  std::complex<double> ComputeTransfer(double freq, TransferStep step) const;
62 
63  double ApplySaturation (double value, TransferStep step) const;
64 
65  short GetNumberOfChannelsToGroup() const;
66 
67  double GetLowGainAmplifierOffset() const;
68 
69  double GetHighGainAmplifierOffset() const;
70 
71  private:
72 
73 
74  std::complex<double> ComputeTransferLowGainAmplifier(double freq) const;
75 
76  std::complex<double> ComputeTransferHighGainAmplifier(double freq) const;
77 
78  std::complex<double> ComputeTransferFirstAdder(double freq) const;
79 
80  std::complex<double> ComputeTransferSecondAdder(double freq) const;
81 
82  std::complex<double> ComputeTransferADC(double freq) const;
83 
84  std::complex<double> ComputeTransferSimplifiedLG(double freq) const;
85 
86  std::complex<double> ComputeTransferSimplifiedHG(double freq) const;
87 
88  double ApplySaturationLowGainAmplifier(double v) const;
89 
90  double ApplySaturationHighGainAmplifier(double v) const;
91 
92  double ApplySaturationFirstAdder(double v) const;
93 
94  double ApplySaturationSecondAdder(double v) const;
95 
96  double ApplySaturationADC(double v) const;
97 
98 
104  const char* Get1stAdderFunctionReal() const{
105  return "(x*TMath::TwoPi()*10^6*[0]*pow(10,27)*([3]*pow(10,27)*x*TMath::TwoPi()*10^6-[1]*pow(10,10)*(x*TMath::TwoPi()*10^6)^3))/"
106  "(((x*TMath::TwoPi()*10^6)^4-[2]*pow(10,19)*(x*TMath::TwoPi()*10^6)^2+[4]*pow(10,32))^2+"
107  "([3]*pow(10,27)*x*TMath::TwoPi()*10^6-[1]*pow(10,10)*(x*TMath::TwoPi()*10^6)^3)^2)";
108  }
109 
110  const char* Get1stAdderFunctionIm() const{
111  return "(x*TMath::TwoPi()*10^6*[0]*pow(10,27)*((x*TMath::TwoPi()*10^6)^4-[2]*pow(10,19)*(x*TMath::TwoPi()*10^6)^2+[4]*pow(10,32)))/"
112  "(((x*TMath::TwoPi()*10^6)^4-[2]*pow(10,19)*(x*TMath::TwoPi()*10^6)^2+[4]*pow(10,32))^2+"
113  "([3]*pow(10,27)*x*TMath::TwoPi()*10^6-[1]*pow(10,10)*(x*TMath::TwoPi()*10^6)^3)^2)";
114  }
115 
116  double GetFirstAdderPar1() const;
117  double GetFirstAdderPar2() const;
118  double GetFirstAdderPar3() const;
119  double GetFirstAdderPar4() const;
120  double GetFirstAdderPar5() const;
121 
122  double GetFirstAdderSaturationUp() const;
123  double GetFirstAdderSaturationDown() const;
124  double GetFirstAdderOffset() const;
125 
126  const char* Get2ndAdderFunctionReal() const{
127  return "(x*TMath::TwoPi()*10^6*[0]*pow(10,27)*([3]*pow(10,27)*x*TMath::TwoPi()*10^6-[1]*pow(10,9)*(x*TMath::TwoPi()*10^6)^3))/"
128  "(((x*TMath::TwoPi()*10^6)^4-[2]*pow(10,19)*(x*TMath::TwoPi()*10^6)^2+[4]*pow(10,31))^2+"
129  "([3]*pow(10,27)*x*TMath::TwoPi()*10^6-[1]*pow(10,9)*(x*TMath::TwoPi()*10^6)^3)^2)";
130  }
131 
132  const char* Get2ndAdderFunctionIm() const{
133  return "(x*TMath::TwoPi()*10^6*[0]*pow(10,27)*((x*TMath::TwoPi()*10^6)^4-[2]*pow(10,19)*(x*TMath::TwoPi()*10^6)^2+[4]*pow(10,31)))/"
134  "(((x*TMath::TwoPi()*10^6)^4-[2]*pow(10,19)*(x*TMath::TwoPi()*10^6)^2+[4]*pow(10,31))^2+"
135  "([3]*pow(10,27)*x*TMath::TwoPi()*10^6-[1]*pow(10,9)*(x*TMath::TwoPi()*10^6)^3)^2)";
136  }
137 
138  double GetSecondAdderPar1() const;
139  double GetSecondAdderPar2() const;
140  double GetSecondAdderPar3() const;
141  double GetSecondAdderPar4() const;
142  double GetSecondAdderPar5() const;
143 
144  double GetSecondAdderSaturationUp() const;
145  double GetSecondAdderSaturationDown() const;
146  double GetSecondAdderOffset() const;
147 
152  const char* GetAmplifierLGFunctionReal() const{
153  return "-1*[9]*(-(x*TMath::TwoPi()*10^6)^2*[0]*pow(10,54)*(-[2]*pow(10,10)*(x*TMath::TwoPi()*10^6)^6+[4]*pow(10,36)*"
154  "(x*TMath::TwoPi()*10^6)^4-[6]*pow(10,54)*(x*TMath::TwoPi()*10^6)^2+[8]*pow(10,64))+(x*TMath::TwoPi()*10^6)*[1]*pow(10,59)*"
155  "([3]*pow(10,25)*(x*TMath::TwoPi()*10^6)^5-[5]*pow(10,45)*(x*TMath::TwoPi()*10^6)^3+(x*TMath::TwoPi()*10^6)*"
156  "[7]*pow(10,59)))/((-[2]*pow(10,10)*(x*TMath::TwoPi()*10^6)^6+[4]*pow(10,36)*(x*TMath::TwoPi()*10^6)^4-[6]*pow(10,54)*"
157  "(x*TMath::TwoPi()*10^6)^2+[8])^2+([3]*pow(10,25)*(x*TMath::TwoPi()*10^6)^5-[5]*pow(10,45)*(x*TMath::TwoPi()*10^6)^3+"
158  "(x*TMath::TwoPi()*10^6)*[7]*pow(10,59))^2)";
159 
160  }
161 
162  const char* GetAmplifierLGFunctionIm() const{
163  return "-1*[9]*((x*TMath::TwoPi()*10^6)*[1]*pow(10,59)*(-[2]*pow(10,10)*(x*TMath::TwoPi()*10^6)^6+[4]*"
164  "pow(10,36)*(x*TMath::TwoPi()*10^6)^4-[6]*pow(10,54)*(x*TMath::TwoPi()*10^6)^2+[8]*pow(10,64))+"
165  "(x*TMath::TwoPi()*10^6)^2*[0]*pow(10,54)*([3]*pow(10,25)*(x*TMath::TwoPi()*10^6)^5-[5]*pow(10,45)*"
166  "(x*TMath::TwoPi()*10^6)^3+(x*TMath::TwoPi()*10^6)*[7]*pow(10,59)))/((-[2]*pow(10,10)*(x*TMath::TwoPi()*10^6)^6+"
167  "[4]*pow(10,36)*(x*TMath::TwoPi()*10^6)^4-[6]*pow(10,54)*(x*TMath::TwoPi()*10^6)^2+[8])^2+([3]*pow(10,25)*"
168  "(x*TMath::TwoPi()*10^6)^5-[5]*pow(10,45)*(x*TMath::TwoPi()*10^6)^3+(x*TMath::TwoPi()*10^6)*[7]*pow(10,59))^2)";
169 
170  }
171 
172  double GetLowGainAmplifierAdjustFactor() const; //2.263
173  double GetLowGainAmplifierPar1() const;
174  double GetLowGainAmplifierPar2() const;
175  double GetLowGainAmplifierPar3() const;
176  double GetLowGainAmplifierPar4() const;
177  double GetLowGainAmplifierPar5() const;
178  double GetLowGainAmplifierPar6() const;
179  double GetLowGainAmplifierPar7() const;
180  double GetLowGainAmplifierPar8() const;
181  double GetLowGainAmplifierPar9() const;
182 
183  double GetLowGainAmplifierSaturationUp() const;
184  double GetLowGainAmplifierSaturationDown() const;
186 
187  const char* GetAmplifierHGFunctionReal() const{
188  return "-1*[9]*(-(x*TMath::TwoPi()*10^6)^2*[0]*pow(10,53)*(-[2]*pow(10,10)*(x*TMath::TwoPi()*10^6)^6+"
189  "(x*TMath::TwoPi()*10^6)^4*[4]*pow(10,35)-[6]*pow(10,53)*(x*TMath::TwoPi()*10^6)^2+[8]*pow(10,63))+"
190  "(x*TMath::TwoPi()*10^6)*[1]*pow(10,59)*([3]*pow(10,24)*(x*TMath::TwoPi()*10^6)^5-[5]*pow(10,44)*"
191  "(x*TMath::TwoPi()*10^6)^3+(x*TMath::TwoPi()*10^6)*[7]*pow(10,58)))/((-[2]*pow(10,10)*(x*TMath::TwoPi()*10^6)^6+"
192  "(x*TMath::TwoPi()*10^6)^4*[4]*pow(10,35)-[6]*pow(10,53)*(x*TMath::TwoPi()*10^6)^2+[8]*pow(10,63))^2+([3]*pow(10,24)*"
193  "(x*TMath::TwoPi()*10^6)^5-[5]*pow(10,44)*(x*TMath::TwoPi()*10^6)^3+(x*TMath::TwoPi()*10^6)*[7]*pow(10,58))^2)";
194 
195  }
196 
197  const char* GetAmplifierHGFunctionIm() const{
198  return "-1*[9]*(((x*TMath::TwoPi()*10^6)*[1]*pow(10,59)*(-[2]*pow(10,10)*(x*TMath::TwoPi()*10^6)^6+"
199  "(x*TMath::TwoPi()*10^6)^4*[4]*pow(10,35)-[6]*pow(10,53)*(x*TMath::TwoPi()*10^6)^2+[8]*pow(10,63))+"
200  "(x*TMath::TwoPi()*10^6)^2*[0]*pow(10,53)*([3]*pow(10,24)*(x*TMath::TwoPi()*10^6)^5-[5]*pow(10,44)*"
201  "(x*TMath::TwoPi()*10^6)^3+(x*TMath::TwoPi()*10^6)*[7]*pow(10,58)))/((-[2]*pow(10,10)*(x*TMath::TwoPi()*10^6)^6+"
202  "(x*TMath::TwoPi()*10^6)^4*[4]*pow(10,35)-[6]*pow(10,53)*(x*TMath::TwoPi()*10^6)^2+[8]*pow(10,63))^2+([3]*pow(10,24)*"
203  "(x*TMath::TwoPi()*10^6)^5-[5]*pow(10,44)*(x*TMath::TwoPi()*10^6)^3+(x*TMath::TwoPi()*10^6)*[7]*pow(10,58))^2))";
204 
205  }
206 
207  double GetHighGainAmplifierAdjustFactor() const; //1.9*2.263
208  double GetHighGainAmplifierPar1() const;
209  double GetHighGainAmplifierPar2() const;
210  double GetHighGainAmplifierPar3() const;
211  double GetHighGainAmplifierPar4() const;
212  double GetHighGainAmplifierPar5() const;
213  double GetHighGainAmplifierPar6() const;
214  double GetHighGainAmplifierPar7() const;
215  double GetHighGainAmplifierPar8() const;
216  double GetHighGainAmplifierPar9() const;
217 
218  double GetHighGainAmplifierSaturationUp() const;
219  double GetHighGainAmplifierSaturationDown() const;
221 
222 
223 
228  const char* GetADCFunctionReal() const{
229  return "(-[0]*(x*TMath::TwoPi()*10^6)^2*([5]-[3]*(x*TMath::TwoPi()*10^6)^2)+[1]*(x*TMath::TwoPi()*10^6)*"
230  "((x*TMath::TwoPi()*10^6)*[4]-[2]*(x*TMath::TwoPi()*10^6)^3))/(([5]-[3]*(x*TMath::TwoPi()*10^6)^2)^2+"
231  "((x*TMath::TwoPi()*10^6)*[4]-[2]*(x*TMath::TwoPi()*10^6)^3)^2)";
232  }
233 
234  const char* GetADCFunctionIm() const{
235  return "([0]*(x*TMath::TwoPi()*10^6)^2*((x*TMath::TwoPi()*10^6)*[4]-[2]*(x*TMath::TwoPi()*10^6)^3)+"
236  "[1]*(x*TMath::TwoPi()*10^6)*([5]-[3]*(x*TMath::TwoPi()*10^6)^2))/(([5]-[3]*(x*TMath::TwoPi()*10^6)^2)^2+"
237  "((x*TMath::TwoPi()*10^6)*[4]-[2]*(x*TMath::TwoPi()*10^6)^3)^2)";
238  }
239 
240  double GetADCPar1() const;
241  double GetADCPar2() const;
242  double GetADCPar3() const;
243  double GetADCPar4() const;
244  double GetADCPar5() const;
245  double GetADCPar6() const;
246 
247  double GetADCSaturationUp() const;
248  double GetADCSaturationDown() const;
249  double GetADCOffset() const;
250 
255  double GetSimplifiedGainLG() const;
256  double GetSimplifiedGainHG() const;
257  double GetSimplifiedTime() const;
258 
259  friend class Module;
260 
269  template<class A1, class A2, class A3, class A4>
270  friend class det::ComponentGroup;
271 
287  BackEndSiPM(int cId, const det::VManager::IndexMap& parentMap, const Module& parent);
295  friend struct det::ParentCreator;
301  template<class T>
302  friend void boost::checked_delete(T*) BOOST_NOEXCEPT;
304  friend struct det::ComponentUpdater;
305 
306  //16
307  mutable utl::Validated<double> fFirstAdderPar1;
308  mutable utl::Validated<double> fFirstAdderPar2;
309  mutable utl::Validated<double> fFirstAdderPar3;
310  mutable utl::Validated<double> fFirstAdderPar4;
311  mutable utl::Validated<double> fFirstAdderPar5;
312  mutable utl::Validated<double> fFirstAdderSaturationUp;
313  mutable utl::Validated<double> fFirstAdderSaturationDown;
314  mutable utl::Validated<double> fFirstAdderOffset;
315 
316  mutable utl::Validated<double> fSecondAdderPar1;
317  mutable utl::Validated<double> fSecondAdderPar2;
318  mutable utl::Validated<double> fSecondAdderPar3;
319  mutable utl::Validated<double> fSecondAdderPar4;
320  mutable utl::Validated<double> fSecondAdderPar5;
321  mutable utl::Validated<double> fSecondAdderSaturationUp;
322  mutable utl::Validated<double> fSecondAdderSaturationDown;
323  mutable utl::Validated<double> fSecondAdderOffset;
324 
325  //26
326  mutable utl::Validated<double> fLowGainAmplifierPar1;
327  mutable utl::Validated<double> fLowGainAmplifierPar2;
328  mutable utl::Validated<double> fLowGainAmplifierPar3;
329  mutable utl::Validated<double> fLowGainAmplifierPar4;
330  mutable utl::Validated<double> fLowGainAmplifierPar5;
331  mutable utl::Validated<double> fLowGainAmplifierPar6;
332  mutable utl::Validated<double> fLowGainAmplifierPar7;
333  mutable utl::Validated<double> fLowGainAmplifierPar8;
334  mutable utl::Validated<double> fLowGainAmplifierPar9;
335 
336  mutable utl::Validated<double> fLowGainAmplifierAdjustmentFactor;
337  mutable utl::Validated<double> fLowGainAmplifierSaturationUp;
338  mutable utl::Validated<double> fLowGainAmplifierSaturationDown;
339  mutable utl::Validated<double> fLowGainAmplifierOffset;
340 
341  mutable utl::Validated<double> fHighGainAmplifierPar1;
342  mutable utl::Validated<double> fHighGainAmplifierPar2;
343  mutable utl::Validated<double> fHighGainAmplifierPar3;
344  mutable utl::Validated<double> fHighGainAmplifierPar4;
345  mutable utl::Validated<double> fHighGainAmplifierPar5;
346  mutable utl::Validated<double> fHighGainAmplifierPar6;
347  mutable utl::Validated<double> fHighGainAmplifierPar7;
348  mutable utl::Validated<double> fHighGainAmplifierPar8;
349  mutable utl::Validated<double> fHighGainAmplifierPar9;
350  mutable utl::Validated<double> fHighGainAmplifierAdjustmentFactor;
351  mutable utl::Validated<double> fHighGainAmplifierSaturationUp;
352  mutable utl::Validated<double> fHighGainAmplifierSaturationDown;
353  mutable utl::Validated<double> fHighGainAmplifierOffset;
354 
355  //9
356  mutable utl::Validated<double> fADCPar1;
357  mutable utl::Validated<double> fADCPar2;
358  mutable utl::Validated<double> fADCPar3;
359  mutable utl::Validated<double> fADCPar4;
360  mutable utl::Validated<double> fADCPar5;
361  mutable utl::Validated<double> fADCPar6;
362  mutable utl::Validated<double> fADCSaturationUp;
363  mutable utl::Validated<double> fADCSaturationDown;
364  mutable utl::Validated<double> fADCOffset;
365 
366  mutable utl::Validated<double> fNumberOfChannelsToGroup;
367 
368  mutable utl::Validated<double> fSimplifiedGainLG;
369  mutable utl::Validated<double> fSimplifiedGainHG;
370  mutable utl::Validated<double> fSimplifiedTime;
371 
373 
374  };
375 
376 }
377 
378 #endif // _mdet_BackEndSiPM_h
379 
double GetLowGainAmplifierPar9() const
Definition: BackEndSiPM.cc:251
const Module & GetModule() const
The shared electronic frontend of this backend.
Definition: BackEndSiPM.h:47
const char * GetADCFunctionIm() const
Definition: BackEndSiPM.h:234
double GetHighGainAmplifierPar4() const
Definition: BackEndSiPM.cc:304
utl::Validated< double > fADCSaturationUp
Definition: BackEndSiPM.h:362
utl::Validated< double > fSecondAdderOffset
Definition: BackEndSiPM.h:323
pointer with built-in initialization, deletion, deep copying
Definition: ShadowPtr.h:163
double GetADCPar3() const
Definition: BackEndSiPM.cc:381
double GetADCPar2() const
Definition: BackEndSiPM.cc:375
double GetSecondAdderOffset() const
Definition: BackEndSiPM.cc:192
double GetSimplifiedGainLG() const
Simplified transfer functions (low-passs active filter)
Definition: BackEndSiPM.cc:432
const char * Get2ndAdderFunctionReal() const
Definition: BackEndSiPM.h:126
utl::Validated< double > fADCPar2
Definition: BackEndSiPM.h:357
utl::Validated< double > fFirstAdderPar4
Definition: BackEndSiPM.h:310
const char * Get2ndAdderFunctionIm() const
Definition: BackEndSiPM.h:132
double GetSecondAdderPar3() const
Definition: BackEndSiPM.cc:162
utl::Validated< double > fFirstAdderSaturationUp
Definition: BackEndSiPM.h:312
double GetLowGainAmplifierPar5() const
Definition: BackEndSiPM.cc:227
utl::Validated< double > fADCPar3
Definition: BackEndSiPM.h:358
double GetHighGainAmplifierPar1() const
Definition: BackEndSiPM.cc:286
double GetHighGainAmplifierAdjustFactor() const
utl::Validated< double > fADCPar1
Definition: BackEndSiPM.h:356
utl::Validated< double > fLowGainAmplifierPar6
Definition: BackEndSiPM.h:331
double GetHighGainAmplifierOffset() const
Definition: BackEndSiPM.cc:352
double GetFirstAdderPar4() const
Definition: BackEndSiPM.cc:115
double GetLowGainAmplifierPar7() const
Definition: BackEndSiPM.cc:239
utl::Validated< double > fSecondAdderSaturationDown
Definition: BackEndSiPM.h:322
friend void boost::checked_delete(T *) BOOST_NOEXCEPT
Friendship for destruction.
utl::Validated< double > fLowGainAmplifierPar8
Definition: BackEndSiPM.h:333
int freq
Definition: dump1090.h:244
const char * GetAmplifierHGFunctionIm() const
Definition: BackEndSiPM.h:197
double ApplySaturation(double value, TransferStep step) const
Definition: BackEndSiPM.cc:485
double GetADCPar5() const
Definition: BackEndSiPM.cc:393
Defines within it the common (templated) type for muon detector hierarchy components.
utl::Validated< double > fLowGainAmplifierSaturationDown
Definition: BackEndSiPM.h:338
double GetHighGainAmplifierPar2() const
Definition: BackEndSiPM.cc:292
utl::Validated< double > fSecondAdderPar5
Definition: BackEndSiPM.h:320
double GetHighGainAmplifierSaturationUp() const
Definition: BackEndSiPM.cc:340
double GetLowGainAmplifierPar2() const
Definition: BackEndSiPM.cc:209
double GetHighGainAmplifierPar5() const
Definition: BackEndSiPM.cc:310
const char * GetAmplifierHGFunctionReal() const
Definition: BackEndSiPM.h:187
std::complex< double > ComputeTransfer(double freq, TransferStep step) const
Definition: BackEndSiPM.cc:455
double GetFirstAdderPar3() const
Definition: BackEndSiPM.cc:109
double GetADCSaturationDown() const
Definition: BackEndSiPM.cc:411
~BackEndSiPM()
Destructor (!).
Definition: BackEndSiPM.h:291
static const char *const kComponentName
Definition: BackEndSiPM.h:41
double GetLowGainAmplifierSaturationDown() const
Definition: BackEndSiPM.cc:263
double GetFirstAdderSaturationDown() const
Definition: BackEndSiPM.cc:133
double ApplySaturationSecondAdder(double v) const
Definition: BackEndSiPM.cc:724
const Module & fModule
Definition: BackEndSiPM.h:372
double GetADCPar6() const
Definition: BackEndSiPM.cc:399
utl::Validated< double > fHighGainAmplifierOffset
Definition: BackEndSiPM.h:353
static const char *const kComponentId
Definition: BackEndSiPM.h:43
const char * GetADCFunctionReal() const
ADC transfer function.
Definition: BackEndSiPM.h:228
utl::Validated< double > fHighGainAmplifierSaturationUp
Definition: BackEndSiPM.h:351
double GetLowGainAmplifierPar4() const
Definition: BackEndSiPM.cc:221
const char * Get1stAdderFunctionReal() const
First and second adder transfer function:
Definition: BackEndSiPM.h:104
double GetLowGainAmplifierOffset() const
Definition: BackEndSiPM.cc:269
utl::Validated< double > fLowGainAmplifierPar7
Definition: BackEndSiPM.h:332
double GetHighGainAmplifierPar6() const
Definition: BackEndSiPM.cc:316
double GetHighGainAmplifierPar3() const
Definition: BackEndSiPM.cc:298
double GetHighGainAmplifierPar8() const
Definition: BackEndSiPM.cc:328
utl::Validated< double > fNumberOfChannelsToGroup
Definition: BackEndSiPM.h:366
utl::Validated< double > fHighGainAmplifierPar8
Definition: BackEndSiPM.h:348
short GetNumberOfChannelsToGroup() const
Definition: BackEndSiPM.cc:423
utl::Validated< double > fHighGainAmplifierPar9
Definition: BackEndSiPM.h:349
double GetFirstAdderOffset() const
Definition: BackEndSiPM.cc:139
utl::Validated< double > fLowGainAmplifierSaturationUp
Definition: BackEndSiPM.h:337
utl::Validated< double > fADCPar5
Definition: BackEndSiPM.h:360
utl::Validated< double > fSimplifiedGainLG
Definition: BackEndSiPM.h:368
utl::Validated< double > fHighGainAmplifierPar5
Definition: BackEndSiPM.h:345
const char * GetAmplifierLGFunctionIm() const
Definition: BackEndSiPM.h:162
double GetLowGainAmplifierPar3() const
Definition: BackEndSiPM.cc:215
utl::Validated< double > fFirstAdderPar2
Definition: BackEndSiPM.h:308
Array of Scintillator.
utl::Validated< double > fADCOffset
Definition: BackEndSiPM.h:364
utl::Validated< double > fHighGainAmplifierSaturationDown
Definition: BackEndSiPM.h:352
double GetLowGainAmplifierAdjustmentFactor() const
Definition: BackEndSiPM.cc:275
utl::Validated< double > fLowGainAmplifierPar9
Definition: BackEndSiPM.h:334
double GetSecondAdderSaturationDown() const
Definition: BackEndSiPM.cc:186
utl::Validated< double > fSecondAdderPar2
Definition: BackEndSiPM.h:317
double GetLowGainAmplifierPar6() const
Definition: BackEndSiPM.cc:233
utl::Validated< double > fSecondAdderSaturationUp
Definition: BackEndSiPM.h:321
utl::Validated< double > fSimplifiedGainHG
Definition: BackEndSiPM.h:369
double GetADCOffset() const
Definition: BackEndSiPM.cc:417
std::complex< double > ComputeTransferLowGainAmplifier(double freq) const
Definition: BackEndSiPM.cc:568
utl::Validated< double > fHighGainAmplifierPar7
Definition: BackEndSiPM.h:347
std::complex< double > ComputeTransferSimplifiedLG(double freq) const
Definition: BackEndSiPM.cc:676
utl::Validated< double > fFirstAdderOffset
Definition: BackEndSiPM.h:314
utl::Validated< double > fLowGainAmplifierAdjustmentFactor
Definition: BackEndSiPM.h:336
utl::Validated< double > fADCPar4
Definition: BackEndSiPM.h:359
double GetLowGainAmplifierAdjustFactor() const
std::string const
Returns the message that identifies this component.
utl::Validated< double > fSecondAdderPar3
Definition: BackEndSiPM.h:318
utl::Validated< double > fFirstAdderSaturationDown
Definition: BackEndSiPM.h:313
Base class for group of detector components.
double GetLowGainAmplifierPar1() const
Definition: BackEndSiPM.cc:203
double GetLowGainAmplifierPar8() const
Definition: BackEndSiPM.cc:245
std::complex< double > ComputeTransferFirstAdder(double freq) const
Definition: BackEndSiPM.cc:514
utl::Validated< double > fLowGainAmplifierOffset
Definition: BackEndSiPM.h:339
double GetSecondAdderPar4() const
Definition: BackEndSiPM.cc:168
double GetSimplifiedGainHG() const
Definition: BackEndSiPM.cc:438
utl::Validated< double > fHighGainAmplifierPar2
Definition: BackEndSiPM.h:342
std::map< std::string, std::string > IndexMap
Definition: VManager.h:133
utl::Validated< double > fHighGainAmplifierPar4
Definition: BackEndSiPM.h:344
double GetFirstAdderPar5() const
Definition: BackEndSiPM.cc:121
utl::Validated< double > fHighGainAmplifierAdjustmentFactor
Definition: BackEndSiPM.h:350
double GetHighGainAmplifierPar7() const
Definition: BackEndSiPM.cc:322
std::complex< double > ComputeTransferHighGainAmplifier(double freq) const
Definition: BackEndSiPM.cc:606
Eletronic BackEndSiPM.
Definition: BackEndSiPM.h:37
double GetADCPar4() const
Definition: BackEndSiPM.cc:387
double GetFirstAdderSaturationUp() const
Definition: BackEndSiPM.cc:127
utl::Validated< double > fLowGainAmplifierPar5
Definition: BackEndSiPM.h:330
std::complex< double > ComputeTransferSecondAdder(double freq) const
Definition: BackEndSiPM.cc:541
utl::Validated< double > fLowGainAmplifierPar3
Definition: BackEndSiPM.h:328
utl::Validated< double > fHighGainAmplifierPar1
Definition: BackEndSiPM.h:341
double ApplySaturationADC(double v) const
Definition: BackEndSiPM.cc:766
double GetHighGainAmplifierPar9() const
Definition: BackEndSiPM.cc:334
double ApplySaturationLowGainAmplifier(double v) const
Definition: BackEndSiPM.cc:738
const char * Get1stAdderFunctionIm() const
Definition: BackEndSiPM.h:110
std::complex< double > ComputeTransferADC(double freq) const
Definition: BackEndSiPM.cc:644
double GetSecondAdderPar1() const
Definition: BackEndSiPM.cc:150
utl::Validated< double > fADCPar6
Definition: BackEndSiPM.h:361
utl::Validated< double > fADCSaturationDown
Definition: BackEndSiPM.h:363
double GetSecondAdderPar5() const
Definition: BackEndSiPM.cc:174
utl::Validated< double > fSimplifiedTime
Definition: BackEndSiPM.h:370
double GetSecondAdderSaturationUp() const
Definition: BackEndSiPM.cc:180
utl::Validated< double > fLowGainAmplifierPar4
Definition: BackEndSiPM.h:329
double GetSecondAdderPar2() const
Definition: BackEndSiPM.cc:156
Type
The type of file that we are acutally opening.
Definition: IoCodes.h:33
std::complex< double > ComputeTransferSimplifiedHG(double freq) const
Definition: BackEndSiPM.cc:690
double GetLowGainAmplifierSaturationUp() const
Definition: BackEndSiPM.cc:257
double GetADCSaturationUp() const
Definition: BackEndSiPM.cc:405
double GetFirstAdderPar2() const
Definition: BackEndSiPM.cc:103
utl::Validated< double > fHighGainAmplifierPar6
Definition: BackEndSiPM.h:346
utl::Validated< double > fFirstAdderPar5
Definition: BackEndSiPM.h:311
double ApplySaturationHighGainAmplifier(double v) const
Definition: BackEndSiPM.cc:752
double GetHighGainAmplifierAdjustmentFactor() const
Definition: BackEndSiPM.cc:358
utl::Validated< double > fLowGainAmplifierPar2
Definition: BackEndSiPM.h:327
double GetADCPar1() const
Definition: BackEndSiPM.cc:369
double GetHighGainAmplifierSaturationDown() const
Definition: BackEndSiPM.cc:346
double GetFirstAdderPar1() const
Definition: BackEndSiPM.cc:97
BackEndSiPM(int cId, const det::VManager::IndexMap &parentMap, const Module &parent)
Constructs the electronic BackEndSiPM.
Definition: BackEndSiPM.cc:30
utl::Validated< double > fFirstAdderPar3
Definition: BackEndSiPM.h:309
utl::Validated< double > fSecondAdderPar1
Definition: BackEndSiPM.h:316
utl::Validated< double > fSecondAdderPar4
Definition: BackEndSiPM.h:319
utl::Validated< double > fFirstAdderPar1
Definition: BackEndSiPM.h:307
double ApplySaturationFirstAdder(double v) const
Definition: BackEndSiPM.cc:710
utl::Validated< double > fLowGainAmplifierPar1
Definition: BackEndSiPM.h:326
The child the information from the parent upon construction.
const char * GetAmplifierLGFunctionReal() const
High gain and low gain Amplifier transfer function.
Definition: BackEndSiPM.h:152
utl::Validated< double > fHighGainAmplifierPar3
Definition: BackEndSiPM.h:343
double GetSimplifiedTime() const
Definition: BackEndSiPM.cc:444

, generated on Tue Sep 26 2023.