StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StPmtSignal.h
1 #ifndef STAR_StPmtSignal
2 #define STAR_StPmtSignal
3 
4 // $Id: StPmtSignal.h,v 1.3 2007/09/11 21:49:15 kocolosk Exp $
5 
6 #include "TNamed.h"
7 #include "TRandom3.h"
8 
9 /*****************************************************************************
10  * @class StPmtSignal
11  * @author V.Rykov -> A.Pavlinov -> A.Suaide -> A.Kocoloski
12  *
13  * Simulation of the digitized PMT signals with a given number of
14  * photoelectrons emerging from a photocathode, taking into account statistics
15  * of secondary electrons and noise. Use this class by instantiating an
16  * object, setting the total gain (ADC counts / photoElectron emitted from
17  * cathode) and pedestal properties, and then calling getAdc for a given # of
18  * photoelectrons.
19  *****************************************************************************/
20 class StPmtSignal : public TNamed
21 {
22 private:
24  static const int mNumDynodes = 11;
25 
36  float mPmtGain;
37 
40  float mCathodeNoise;
41 
45  float mDynodeNoise;
46 
48  float mTotalGain;
49 
51  float mPedestalMean;
52 
54  float mPedestalRMS;
55 
56 
58  float mNodeVoltage[mNumDynodes];
59 
61  float mSecondaryCoeff[mNumDynodes];
62 
64  float mDynodeGain[mNumDynodes + 1];
65 
67  float mG1[mNumDynodes + 1];
68 
70  float mDNW[mNumDynodes + 1];
71 
73  TRandom3 mRandom;
74 
75 public:
76  StPmtSignal(float pmtGain=1.5e+6, float cathodeNoise=0.0, float dynodeNoise=0.0);
77  ~StPmtSignal() { /* Nothing */ }
78 
82  enum simulatorVersion { kFastSimulator, kFullSimulator };
83 
85  void setTotalGain(float val) { mTotalGain = val; }
86 
88  void setPedestalMean(float val) { mPedestalMean = val; }
89 
91  void setPedestalRMS(float val) { mPedestalRMS = val; }
92 
94  int getAdc(int nPhotoElectrons, simulatorVersion version);
95 
96  ClassDef(StPmtSignal, 2)
97 };
98 
99 #endif
100 
101 /*****************************************************************************
102  * $Log: StPmtSignal.h,v $
103  * Revision 1.3 2007/09/11 21:49:15 kocolosk
104  * complete overhaul of the BEMC simulator
105  * http://www.star.bnl.gov/HyperNews-star/get/emc2/2486.html
106  *
107  *****************************************************************************/
void setTotalGain(float val)
set the gain of the full PMT chain in ADC counts / photoelectron emitted from cathode ...
Definition: StPmtSignal.h:85
void setPedestalRMS(float val)
set the width of the pedestal in ADC counts
Definition: StPmtSignal.h:91
void setPedestalMean(float val)
set the pedestal in ADC counts
Definition: StPmtSignal.h:88
int getAdc(int nPhotoElectrons, simulatorVersion version)
return ADC counts for a given # of incident photoelectrons
Definition: StPmtSignal.cxx:53