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

Ratpac-two: /home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/daq/include/RAT/PMTWaveformGenerator.hh Source File
Ratpac-two
PMTWaveformGenerator.hh
1 #ifndef __RAT_PMTWaveformGenerator__
2 #define __RAT_PMTWaveformGenerator__
3 
4 #include <TObject.h>
5 
6 #include <RAT/DS/MCPMT.hh>
7 #include <RAT/PMTWaveform.hh>
8 #include <vector>
9 
10 namespace RAT {
11 
13  public:
14  PMTWaveformGenerator(std::string modelName);
15  virtual ~PMTWaveformGenerator();
16 
17  virtual PMTWaveform GenerateWaveforms(DS::MCPMT* mcpmt, double triggerTime);
18 
19  // pick width of waveform from PDF
20  double PickGaussianWidth();
21 
22  std::string fModelName;
23 
24  DBLinkPtr lpulse;
25  std::string fPMTPulseType;
26  std::string fPMTPulseShape;
27 
28  // Universal pulse parameters
29  double fPMTPulseMin;
30  double fPMTPulseOffset;
31  double fTerminationOhms;
32  bool fPMTPulsePolarity; // negative is true, positive is false
33 
34  // Shape parameters
35  // For lognormal pulse model
36  double fLogNPulseWidth;
37  double fLogNPulseMean;
38 
39  // For gaussian pulse model PDF
40  std::vector<double> fGausPulseWidth;
41  std::vector<double> fGausPulseWidthProb;
42  std::vector<double> fGausPulseWidthProbCumu;
43 
44  // Explicit shape for data-driven pulses
45  std::vector<double> fPMTPulseShapeTimes;
46  std::vector<double> fPMTPulseShapeValues;
47 };
48 
49 } // namespace RAT
50 
51 #endif
Definition: MCPMT.hh:21
Definition: PMTWaveformGenerator.hh:12
Definition: PMTWaveform.hh:14
Definition: CCCrossSecMessenger.hh:29