PandaRoot
PndSdsTimeWalkCorrSimple.h
Go to the documentation of this file.
1 /*
2  * PndSdsTimeWalkCorrSimple.h
3  *
4  * Created on: Aug 26, 2010
5  * Author: esch
6  *
7  * This class calculates the TimeWalkCorrection from TOT time
8  * using a triangular model of the signal
9  * (see PndSdsTotChargeConversion)
10  * _____________________________________________
11  * t_r*m-Q_thr-t_tot*m | / t_r*m-Q_thr-t_tot*m \ 2 |
12  * Q(tot) = - --------------------- + \ || ------------------- | + t_r*Q_thr*m
13  * 2 \| \ 2 /
14  * Q_thr
15  * t_tw(Q) = -------- * t_r
16  * Q(tot)
17  *
18  *
19  * Params from Parameter Database:
20  * ------------------------------
21  * t_r = rising time of the signal
22  * Q_thr = threshold charge
23  * m = constatnt current to unload the capacitor
24  *
25  */
26 
27 #ifndef PNDSDSTIMEWALKCORRSIMPLE_H_
28 #define PNDSDSTIMEWALKCORRSIMPLE_H_
29 
30 #include "PndSdsTimeWalkCorr.h"
31 #include <iostream>
32 #include <cmath>
33 
35  public:
37 
38  PndSdsTimeWalkCorrSimple(Double_t risingtime, Double_t constcurrent, Double_t thr, Double_t frequency, Int_t verblevel);
39 
40  virtual ~PndSdsTimeWalkCorrSimple();
41 
42  virtual Double_t CorrectionTimeWalk(Double_t tot);
43  virtual Double_t GetCharge() { return fCharge; };
44 
45  private:
46  Double_t fRisingTime; // ns
47  Double_t fConstantCurrent; // e/ns
48  Double_t fTimeOverThreshold; // ns
49  Double_t fThreshold; // e
50  Double_t fFrequency; // MHz
51  Int_t fVerboseLevel;
52  Double_t fCharge; // e
53  Double_t fTimeWalk; // ns
54  Double_t CalculateCharge(Double_t);
55  Double_t CalculateTimeWalk(Double_t);
56 
57  ClassDef(PndSdsTimeWalkCorrSimple, 1);
58 };
59 
60 #endif /* PNDSDSTIMEWALKCORRSIMPLE_H_ */
virtual Double_t CorrectionTimeWalk(Double_t tot)
virtual ~PndSdsTimeWalkCorrSimple()