00001
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef StMtdRawHit_hh
00021 #define StMtdRawHit_hh
00022
00023 #include <Stiostream.h>
00024 #include "StObject.h"
00025 #include <cstdlib>
00026
00027 class StMtdRawHit : public StObject {
00028 public:
00029 StMtdRawHit();
00030
00031 StMtdRawHit(char, unsigned char, unsigned char, unsigned int);
00032 ~StMtdRawHit();
00033
00034 int operator==(const StMtdRawHit&) const;
00035 int operator!=(const StMtdRawHit&) const;
00036
00037 bool leadingEdge() const;
00038 bool trailingEdge() const;
00039 int fiberId() const;
00040 int flag() const;
00041 int backleg() const;
00042 int channel() const;
00043 unsigned int tdc() const;
00044
00045 void setFlag(char);
00046 void setBackleg(unsigned char);
00047 void setChannel(unsigned char);
00048 void setTdc(unsigned int);
00049
00050 protected:
00051 Char_t mFlag;
00052 UChar_t mBackLeg;
00053 UChar_t mChannel;
00054 UInt_t mTdc;
00055
00056 ClassDef(StMtdRawHit,1)
00057 };
00058
00059 ostream& operator<<(ostream&, const StMtdRawHit&);
00060 inline void StMtdRawHit::setFlag(char iflag) { mFlag = iflag;}
00061 inline void StMtdRawHit::setBackleg(unsigned char ibackleg) { mBackLeg = ibackleg;}
00062 inline void StMtdRawHit::setChannel(unsigned char ichannel){ mChannel = ichannel;}
00063 inline void StMtdRawHit::setTdc(unsigned int rawTdc){ mTdc = rawTdc;}
00064 inline bool StMtdRawHit::leadingEdge() const { return (mFlag>0);}
00065 inline bool StMtdRawHit::trailingEdge() const{ return (mFlag<0);}
00066 inline int StMtdRawHit::fiberId() const { return abs(static_cast<int>(mFlag)) - 1;}
00067 inline int StMtdRawHit::flag() const {return mFlag;}
00068 inline int StMtdRawHit::backleg() const {return mBackLeg;}
00069 inline int StMtdRawHit::channel() const{return mChannel;}
00070 inline unsigned int StMtdRawHit::tdc() const { return mTdc;}
00071
00072 #endif