00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include "StFmsHit.h"
00018
00019 ClassImp(StFmsHit)
00020
00021 StFmsHit::StFmsHit() {
00022 mDetectorId = 0;
00023 mChannel = 0;
00024 mQTCrtSlotCh = 0;
00025 mAdc = 0;
00026 mTdc = 0;
00027 mEnergy = 0;
00028 }
00029
00030 StFmsHit::StFmsHit(unsigned short det, unsigned short ch,
00031 unsigned short qtcrate, unsigned short qtslot,
00032 unsigned short qtch, unsigned short adc,
00033 unsigned short tdc, float e)
00034 {
00035 setFmsHit(det, ch, qtcrate, qtslot, qtch, adc, tdc, e);
00036 }
00037
00038 StFmsHit::~StFmsHit() {}
00039
00040 unsigned short
00041 StFmsHit::detectorId() const {return mDetectorId;}
00042
00043 unsigned short
00044 StFmsHit::channel() const {return mChannel;}
00045
00046 unsigned short
00047 StFmsHit::adc() const {return mAdc;}
00048
00049 unsigned short
00050 StFmsHit::tdc() const {return mTdc;}
00051
00052 float
00053 StFmsHit::energy() const {return mEnergy;}
00054
00055 unsigned short
00056 StFmsHit::qtCrate() const {return (mQTCrtSlotCh>>12) & 0x0f;}
00057
00058 unsigned short
00059 StFmsHit::qtSlot() const {return (mQTCrtSlotCh>>8 ) & 0x0f;}
00060
00061 unsigned short
00062 StFmsHit::qtChannel() const {return (mQTCrtSlotCh ) & 0xff;}
00063
00064 void
00065 StFmsHit::encodeQTCrtSlotCh(unsigned short qtcrate, unsigned short qtslot,
00066 unsigned short qtch)
00067 {
00068 mQTCrtSlotCh = (qtcrate<<12) + (qtslot<<8) + qtch;
00069 }
00070
00071 void StFmsHit::setQtCrate(unsigned short val) { mQTCrtSlotCh |= (val<<12); }
00072 void StFmsHit::setQtSlot(unsigned short val) { mQTCrtSlotCh |= (val<<8); }
00073 void StFmsHit::setQtChannel(unsigned short val) { mQTCrtSlotCh |= val; }
00074 void StFmsHit::setDetectorId(unsigned short val) { mDetectorId = val; }
00075 void StFmsHit::setChannel(unsigned short val) { mChannel = val; }
00076 void StFmsHit::setAdc(unsigned short val) { mAdc = val; }
00077 void StFmsHit::setTdc(unsigned short val) { mTdc = val; }
00078 void StFmsHit::setEnergy(float val) { mEnergy = val; }
00079 void StFmsHit::setFmsHit(unsigned short det, unsigned short ch,
00080 unsigned short qtcrate, unsigned short qtslot,
00081 unsigned short qtch, unsigned short adc,
00082 unsigned short tdc, Float_t e){
00083 mDetectorId = det;
00084 mChannel = ch;
00085 mAdc = adc;
00086 mTdc = tdc;
00087 mEnergy = e;
00088 encodeQTCrtSlotCh(qtcrate, qtslot, qtch);
00089 }
00090
00091 void StFmsHit::print(Option_t *option) const {cout<< *this <<endl;}
00092
00093 ostream& operator<<(ostream& os, const StFmsHit& v)
00094 {
00095 return os <<"StFmsHit: mDetectorId\t"<<v.detectorId()
00096 <<"\tmChannel\t" <<v.channel()
00097 <<"\tQTCrate\t" <<v.qtCrate()
00098 <<"\tQTSlot\t" <<v.qtSlot()
00099 <<"\tQTCh\t" <<v.qtChannel()
00100 <<"\tmAdc\t" <<v.adc()
00101 <<"\tmTdc\t" <<v.tdc()
00102 <<"\tmEnergy\t" <<v.energy();
00103 }