00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef ST_TPC_DB_ELECTRONICS_HH
00030 #define ST_TPC_DB_ELECTRONICS_HH
00031
00032
00033
00034 #include "StTpcElectronics.hh"
00035 class StTpcDb;
00036 class StTpcDbElectronics : public StTpcElectronics {
00037 public:
00038 ~StTpcDbElectronics() {}
00039
00040 static StTpcElectronics* instance();
00041 static StTpcElectronics* instance(StTpcDb*);
00042
00043
00044 double nominalGain() const;
00045 double channelGain(int,int,int) const;
00046 double channelGain(StTpcPadCoordinate&) const;
00047 double samplingFrequency() const;
00048 double tZero() const;
00049 double tZero(int,int,int) const;
00050 double tZero(StTpcPadCoordinate&) const;
00051 double shapingTime() const;
00052 double tau() const;
00053
00054
00055 double adcConversion() const;
00056 double adcConversionCharge() const;
00057 int numberOfTimeBins() const;
00058 int averagePedestal() const;
00059 int pedestal(int,int,int,int) const;
00060 int pedestal(StTpcPadCoordinate&) const;
00061
00062
00063 void print(ostream& = cout) const;
00064
00065 private:
00066 StTpcDbElectronics();
00067 StTpcDbElectronics(StTpcDb*);
00068
00069 private:
00070 static StTpcElectronics* mInstance;
00071 StTpcDb* gTpcDbPtr;
00072
00073 double mNominalGain;
00074 double mSamplingFrequency;
00075 double mTZero;
00076 double mShapingTime;
00077 double mTau;
00078
00079 double mAdcConversion;
00080 double mAdcConversionCharge;
00081 int mNumberOfTimeBins;
00082 int mAveragePedestal;
00083 };
00084
00085 inline double StTpcDbElectronics::nominalGain() const {return mNominalGain;}
00086 inline double StTpcDbElectronics::samplingFrequency() const {return mSamplingFrequency;}
00087 inline double StTpcDbElectronics::shapingTime() const {return mShapingTime;}
00088 inline double StTpcDbElectronics::tZero() const {return mTZero;}
00089 inline double StTpcDbElectronics::tau() const {return mTau;}
00090 inline double StTpcDbElectronics::adcConversion() const {return mAdcConversion;}
00091 inline double StTpcDbElectronics::adcConversionCharge() const {return mAdcConversionCharge;}
00092 inline int StTpcDbElectronics::numberOfTimeBins() const {return mNumberOfTimeBins;}
00093 inline int StTpcDbElectronics::averagePedestal() const {return mAveragePedestal;}
00094 #endif