00001 #ifndef STAR_StPmtSignal
00002 #define STAR_StPmtSignal
00003
00004
00005
00006 #include "TNamed.h"
00007 #include "TRandom3.h"
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 class StPmtSignal : public TNamed
00021 {
00022 private:
00024 static const int mNumDynodes = 11;
00025
00036 float mPmtGain;
00037
00040 float mCathodeNoise;
00041
00045 float mDynodeNoise;
00046
00048 float mTotalGain;
00049
00051 float mPedestalMean;
00052
00054 float mPedestalRMS;
00055
00056
00058 float mNodeVoltage[mNumDynodes];
00059
00061 float mSecondaryCoeff[mNumDynodes];
00062
00064 float mDynodeGain[mNumDynodes + 1];
00065
00067 float mG1[mNumDynodes + 1];
00068
00070 float mDNW[mNumDynodes + 1];
00071
00073 TRandom3 mRandom;
00074
00075 public:
00076 StPmtSignal(float pmtGain=1.5e+6, float cathodeNoise=0.0, float dynodeNoise=0.0);
00077 ~StPmtSignal() { }
00078
00082 enum simulatorVersion { kFastSimulator, kFullSimulator };
00083
00085 void setTotalGain(float val) { mTotalGain = val; }
00086
00088 void setPedestalMean(float val) { mPedestalMean = val; }
00089
00091 void setPedestalRMS(float val) { mPedestalRMS = val; }
00092
00094 int getAdc(int nPhotoElectrons, simulatorVersion version);
00095
00096 ClassDef(StPmtSignal, 2)
00097 };
00098
00099 #endif
00100
00101
00102
00103
00104
00105
00106
00107