00001 #ifndef __EMCTOWERCONTENTV1M_H__
00002 #define __EMCTOWERCONTENTV1M_H__
00003
00004 #ifndef __EMCTOWERCONTENT_H__
00005 #include "emcTowerContent.h"
00006 #endif
00007
00012 class emcTowerContentv1M : public emcTowerContent
00013 {
00014
00015 public:
00016
00017 emcTowerContentv1M();
00018 emcTowerContentv1M(const emcTowerContentv1M&);
00019 emcTowerContentv1M& operator=(const emcTowerContentv1M&);
00020
00021 virtual ~emcTowerContentv1M();
00022
00023 emcTowerContentv1M* clone() const { return new emcTowerContentv1M(*this); }
00024 emcTowerContentv1M* create() const { return new emcTowerContentv1M; }
00025
00026 int ADC(void) const { return fADC; }
00027
00028 int AMUPre(void) const { return fAMUPre; }
00029
00030 int AMUPost(void) const { return fAMUPost; }
00031
00032 int AMUTAC(void) const { return fAMUTAC; }
00033
00034 int BeamClock(void) const { return fBeamClock; }
00035
00036 int Channel(void) const { return fChannel; }
00037
00038 int DataError(void) const { return fDataError; }
00039
00040 float Energy(void) const { return fEnergy; }
00041
00042 unsigned int ErrorNeighbours(void) const { return fErrorNeighbours; }
00043
00044 int FEM(void) const { return fFEM; }
00045
00046 bool hasCalib(void) const { return fHasCalib; }
00047 bool hasDC(void) const { return fHasDC; }
00048 bool hasGain(void) const { return fHasGain; }
00049 bool hasMerSimStatus(void) const { return true; }
00050 bool hasRaw(void) const { return fHasRaw; }
00051
00052 bool canHaveCalib() const { return true; }
00053 bool canHaveDC() const { return true; }
00054 bool canHaveGain() const { return true; }
00055 bool canHaveRaw() const { return true; }
00056 bool canHaveMerSimStatus() const { return true; }
00057
00058 int HG(void) const { return fHG; }
00059 int HGPost(void) const { return fHGPost; }
00060 int HGPre(void) const { return fHGPre; }
00061
00062 float Gain(void) const { return fGain; }
00063
00064 void identify(std::ostream& os=std::cout) const;
00065
00066 int isValid() const;
00067
00068 bool isSimulated(void) const { return fIsSimulated; }
00069
00070 bool isMerged(void) const { return fIsMerged; }
00071
00072 bool isZero(void) const;
00073
00074 int LG(void) const { return fLG; }
00075 int LGPost(void) const { return fLGPost; }
00076 int LGPre(void) const { return fLGPre; }
00077
00078 void print(std::ostream& out=std::cout, int level=0) const;
00079
00080 void Reset();
00081
00082 void SetADCTDC(int adc, int tdc, int hg=0, int lg=0);
00083
00084 void SetCalibrated(float energy, float tof);
00085
00086 void SetDataError(int dataerror);
00087
00088 void SetGain(float gain);
00089
00090 void SetID(int fem, int channel);
00091
00092 void SetNeighbours(unsigned int error, unsigned int warning);
00093
00094 void SetMerSimStatus(bool ismerged, bool issimulated);
00095
00096 void SetRaw(int hgpost, int hgpre,
00097 int lgpost, int lgpre,
00098 int tac,
00099 int amupre=0,
00100 int amupost=0,
00101 int amutac=0,
00102 int beamclock=0);
00103
00104 void SetSimFrac(float simfrac);
00105
00106 void SetToF(float tof);
00107
00108 float SimFrac() const { return fSimFrac; }
00109
00110 int TAC(void) const { return fTAC; }
00111 int TDC(void) const { return fTDC; }
00112 float ToF(void) const { return fTOF; }
00113 float UncorrectedToF(void) const { return fUncorrectedTOF; }
00114
00115 int TowerID(void) const { return fTowerID; }
00116
00117 unsigned int WarnNeighbours(void) const { return fWarnNeighbours; }
00118
00119 void Zero(void);
00120
00121 private:
00122 void copyTo(emcTowerContentv1M& dest) const;
00123
00124 private:
00125
00126 bool fHasCalib;
00127 bool fHasDC;
00128 bool fHasGain;
00129 bool fHasRaw;
00130 bool fIsMerged;
00131 bool fIsSimulated;
00132 int fFEM;
00133 int fChannel;
00134 int fDataError;
00135 unsigned int fErrorNeighbours;
00136 unsigned int fWarnNeighbours;
00137 int fHGPost;
00138 int fHGPre;
00139 int fLGPost;
00140 int fLGPre;
00141 int fTAC;
00142 int fTDC;
00143 int fADC;
00144 int fHG;
00145 int fLG;
00146 int fTowerID;
00147 int fBeamClock;
00148 short fAMUPre;
00149 short fAMUPost;
00150 short fAMUTAC;
00151 float fEnergy;
00152 float fTOF;
00153 float fGain;
00154 float fSimFrac;
00155 float fUncorrectedTOF;
00156
00158 static float fEnergyThreshold;
00159
00160 ClassDef(emcTowerContentv1M,1)
00161 };
00162
00163 #endif