00001
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
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044 #ifndef StRichPid_hh
00045 #define StRichPid_hh
00046
00047 #include "StObject.h"
00048 #include "StContainers.h"
00049
00050 #include "StRichHit.h"
00051
00052 #include "StParticleDefinition.hh"
00053 #include "StThreeVectorD.hh"
00054 #include "StEnumerations.h"
00055
00056
00057 class StRichPid : public StObject {
00058 public:
00059 StRichPid();
00060 ~StRichPid();
00061 StRichPid(StParticleDefinition* particle, StThreeVectorD resid,
00062 float totAzim, float totArea,
00063 unsigned short totHits, float trunAzim,
00064 float trunArea, unsigned short trunHits);
00065
00066
00067
00068
00069 int operator==(const StRichPid&) const;
00070
00071 const StPtrVecRichHit& getAssociatedRichHits() const;
00072 StPtrVecRichHit& getAssociatedRichHits();
00073 void addHit(StRichHit*);
00074
00075 const StSPtrVecRichPhotonInfo& getPhotonInfo();
00076 StRichPhotonInfo* getPhotonInfo(int);
00077 void addPhotonInfo(StRichPhotonInfo*);
00078
00079 void setRingType(StParticleDefinition* particle);
00080 void setMipResidual(StThreeVectorD t);
00081
00082
00083 void setTotalAzimuth(float);
00084 void setTotalArea(float);
00085 void setTotalHits(unsigned short);
00086 void setTotalDensity(float);
00087
00088 float getTotalAzimuth() const;
00089 float getTotalArea() const;
00090 unsigned short getTotalHits() const;
00091 float getTotalDensity() const;
00092
00093
00094 void setTruncatedAzimuth(float);
00095 void setTruncatedArea(float);
00096 void setTruncatedHits(unsigned short);
00097 void setTruncatedDensity(float);
00098
00099 float getTruncatedAzimuth() const;
00100 float getTruncatedArea() const;
00101 unsigned short getTruncatedHits() const;
00102 float getTruncatedDensity() const;
00103
00104 float getConstantAreaCut() const;
00105 void setConstantAreaCut(float);
00106
00107 StParticleDefinition* getRingType() const;
00108 int getParticleNumber() const;
00109
00110
00111 StThreeVectorD getMipResidual() const;
00112
00113
00114 bool isSet(StRichPidFlag) const;
00115 void setBit(StRichPidFlag);
00116 void unSetBit(StRichPidFlag);
00117
00118 private:
00119 StParticleDefinition* mParticleType;
00120 Int_t mParticleNumber;
00121
00122 StPtrVecRichHit mAssociatedHits;
00123 StSPtrVecRichPhotonInfo mPhotonInfo;
00124
00125 StThreeVectorD mMipResidual;
00126
00127 Float_t mTotalAzimuth;
00128 Float_t mTotalArea;
00129 UShort_t mTotalHits;
00130 Float_t mTotalDensity;
00131
00132 Float_t mTruncatedAzimuth;
00133 Float_t mTruncatedArea;
00134 UShort_t mTruncatedHits;
00135 Float_t mTruncatedDensity;
00136
00137 Float_t mConstantAreaCut;
00138
00139 UInt_t mFlags;
00140
00141 ClassDef(StRichPid,1)
00142 };
00143
00144
00145
00146 inline void StRichPid::setMipResidual(StThreeVectorD t) { mMipResidual=t;}
00147
00148 inline void StRichPid::setTotalAzimuth(float t) { mTotalAzimuth=t;}
00149 inline void StRichPid::setTotalArea(float t) { mTotalArea=t;}
00150 inline void StRichPid::setTotalHits(unsigned short t) { mTotalHits=t;}
00151 inline void StRichPid::setTotalDensity(float t) {mTotalDensity=t;}
00152
00153 inline void StRichPid::setTruncatedAzimuth(float t) { mTruncatedAzimuth=t;}
00154 inline void StRichPid::setTruncatedArea(float t) { mTruncatedArea=t;}
00155 inline void StRichPid::setTruncatedHits(unsigned short t) { mTruncatedHits=t;}
00156 inline void StRichPid::setTruncatedDensity(float t) {mTruncatedDensity=t;}
00157
00158
00159
00160 inline const StPtrVecRichHit& StRichPid::getAssociatedRichHits() const {return mAssociatedHits;}
00161 inline StPtrVecRichHit& StRichPid::getAssociatedRichHits() {return mAssociatedHits;}
00162 inline void StRichPid::addHit(StRichHit* hit) { mAssociatedHits.push_back(hit); }
00163
00164
00165
00166 inline StParticleDefinition* StRichPid::getRingType() const { return mParticleType;}
00167 inline int StRichPid::getParticleNumber() const {return mParticleNumber;}
00168 inline float StRichPid::getTotalAzimuth() const { return mTotalAzimuth;}
00169 inline float StRichPid::getTotalArea() const { return mTotalArea;}
00170 inline unsigned short StRichPid::getTotalHits() const { return mTotalHits;}
00171 inline float StRichPid::getTotalDensity() const { return mTotalDensity;}
00172
00173 inline float StRichPid::getTruncatedAzimuth() const { return mTruncatedAzimuth;}
00174 inline float StRichPid::getTruncatedArea() const { return mTruncatedArea;}
00175 inline unsigned short StRichPid::getTruncatedHits() const { return mTruncatedHits;}
00176 inline float StRichPid::getTruncatedDensity() const { return mTruncatedDensity;}
00177
00178 inline float StRichPid::getConstantAreaCut() const {return mConstantAreaCut;}
00179 inline void StRichPid::setConstantAreaCut(float c) { mConstantAreaCut = c;}
00180
00181
00182
00183 inline StThreeVectorD StRichPid::getMipResidual() const { return mMipResidual;}
00184
00185
00186
00187 inline bool StRichPid::isSet(StRichPidFlag f) const { return (mFlags & f);}
00188 inline void StRichPid::setBit(StRichPidFlag f) { (mFlags |= f);}
00189 inline void StRichPid::unSetBit(StRichPidFlag f) { (mFlags &= ~(f));}
00190
00191
00192
00193 #endif