/home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/daq/include/RAT/PMTPulse.hh Source File

Ratpac-two: /home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/daq/include/RAT/PMTPulse.hh Source File
Ratpac-two
PMTPulse.hh
1 #ifndef __RAT_PMTPulse__
2 #define __RAT_PMTPulse__
3 
4 #include <vector>
5 
6 namespace RAT {
7 
8 class PMTPulse {
9  public:
10  PMTPulse(std::string pulseType, std::string pulseShape);
11  virtual ~PMTPulse(){};
12 
13  virtual void SetPulseCharge(double _fPulseCharge) { fPulseCharge = _fPulseCharge; };
14  virtual void SetPulseStartTime(double _fStartTime) { fStartTime = _fStartTime; };
15  virtual void SetPulseOffset(double _fPulseOffset) { fPulseOffset = _fPulseOffset; };
16  virtual void SetPulseTimeOffset(double _fPulseTimeOffset) { fPulseTimeOffset = _fPulseTimeOffset; };
17  virtual void SetPulseMin(double _fPulseMin) { fPulseMin = _fPulseMin; };
18  virtual void SetPulsePolarity(bool _fPulsePolarity) { fPulsePolaritySign = _fPulsePolarity ? -1 : 1; };
19 
20  virtual void SetLogNPulseMean(double _fLogNPulseMean) { fLogNPulseMean = _fLogNPulseMean; };
21  virtual void SetLogNPulseWidth(double _fLogNPulseWidth) { fLogNPulseWidth = _fLogNPulseWidth; };
22 
23  virtual void SetGausPulseWidth(double _fGausPulseWidth) { fGausPulseWidth = _fGausPulseWidth; };
24 
25  virtual void SetPulseShapeTimes(std::vector<double> _fPulseTimes) { fPulseTimes = _fPulseTimes; };
26  virtual void SetPulseShapeValues(std::vector<double> _fPulseValues) { fPulseValues = _fPulseValues; };
27 
28  virtual double GetDataDrivenPulseVal(double time);
29 
30  virtual double GetPulseHeight(double time);
31  virtual double GetPulseStartTimeNoOffset() { return fStartTime; };
32  virtual double GetPulseStartTimeWithOffset() { return fStartTime + fPulseTimeOffset; };
33 
34  private:
35  std::string fPulseType;
36  std::string fPulseShape;
37 
38  double fPulseCharge;
39  double fStartTime;
40  double fPulseTimeOffset;
41  double fPulseOffset;
42  double fPulseMin;
43 
44  int fPulsePolaritySign;
45 
46  double fLogNPulseMean;
47  double fLogNPulseWidth;
48 
49  double fGausPulseWidth;
50 
51  std::vector<double> fPulseTimes;
52  std::vector<double> fPulseValues;
53 };
54 
55 } // namespace RAT
56 
57 #endif
Definition: PMTPulse.hh:8
Definition: CCCrossSecMessenger.hh:29