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
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065 #ifndef StRichPidTraits_hh
00066 #define StRichPidTraits_hh
00067
00068 #include <Stiostream.h>
00069 #include "StTrackPidTraits.h"
00070 #include "StParticleDefinition.hh"
00071 #include "StContainers.h"
00072 #include "StRichPid.h"
00073 #include "StRichSpectra.h"
00074 #include "StParticleTypes.hh"
00075
00076
00077 class StRichPidTraits : public StTrackPidTraits {
00078 public:
00079 StRichPidTraits();
00080 ~StRichPidTraits();
00081
00082 StRichPidTraits(const StRichPidTraits&);
00083 StRichPidTraits& operator=(const StRichPidTraits&);
00084
00085 void addPid(StRichPid* );
00086
00087 const StSPtrVecRichPid& getAllPids() const;
00088 StSPtrVecRichPid& getAllPids();
00089
00090 StRichPid* getPid(StParticleDefinition* t);
00091 const StRichPid* getPid(StParticleDefinition* t) const;
00092
00093 StRichSpectra* getRichSpectra();
00094 const StRichSpectra* getRichSpectra() const;
00095
00096 void setRichSpectra(StRichSpectra*);
00097
00098 void setProductionVersion(int);
00099 void setId(int);
00100 void setProbability(float);
00101 void setAssociatedMip(StRichHit*);
00102 void setMipResidual(const StThreeVectorF&);
00103 void setRefitResidual(const StThreeVectorF&);
00104 void setSignedDca2d(float);
00105 void setSignedDca3d(float);
00106
00107 int productionVersion() const;
00108 int id() const;
00109 float probability() const;
00110
00111 const StRichHit* associatedMip() const;
00112 const StThreeVectorF& mipResidual() const;
00113 const StThreeVectorF& refitResidual() const;
00114 float signedDca2d() const;
00115 float signedDca3d() const;
00116
00117 private:
00118 StSPtrVecRichPid mThePids;
00119 Int_t mProductionVersion;
00120 Int_t mId;
00121 Float_t mProbability;
00122 #ifdef __CINT__
00123 StObjLink mAssociatedMip;
00124 #else
00125 StLink<StRichHit> mAssociatedMip;
00126 #endif //__CINT__
00127 StThreeVectorF mMipResidual;
00128 StThreeVectorF mRefitResidual;
00129 Float_t mSigned3dDca;
00130 Float_t mSigned2dDca;
00131 StRichSpectra* mRichSpectra;
00132
00133 ClassDef(StRichPidTraits,3)
00134 };
00135
00136
00137
00138 inline StSPtrVecRichPid& StRichPidTraits::getAllPids() { return mThePids;}
00139 inline const StSPtrVecRichPid& StRichPidTraits::getAllPids() const { return mThePids;}
00140 inline void StRichPidTraits::addPid(StRichPid* t) {mThePids.push_back(t);}
00141 inline void StRichPidTraits::setProductionVersion(int id) {mProductionVersion = id;}
00142 inline void StRichPidTraits::setId(int id) {mId = id;}
00143 inline void StRichPidTraits::setProbability(float p) {mProbability = p;}
00144 inline void StRichPidTraits::setAssociatedMip(StRichHit* hit) {mAssociatedMip = hit;}
00145 inline void StRichPidTraits::setMipResidual(const StThreeVectorF& res) {mMipResidual = res;}
00146 inline void StRichPidTraits::setRefitResidual(const StThreeVectorF& res) {mRefitResidual = res;}
00147 inline void StRichPidTraits::setSignedDca2d(float v) {mSigned2dDca = v;}
00148 inline void StRichPidTraits::setSignedDca3d(float v) {mSigned3dDca = v;}
00149 inline int StRichPidTraits::productionVersion() const { return mProductionVersion;}
00150 inline int StRichPidTraits::id() const {return mId;}
00151 inline float StRichPidTraits::probability() const {return mProbability;}
00152 inline const StRichHit* StRichPidTraits::associatedMip() const { return mAssociatedMip;}
00153 inline const StThreeVectorF& StRichPidTraits::mipResidual() const {return mMipResidual;}
00154 inline const StThreeVectorF& StRichPidTraits::refitResidual() const { return mRefitResidual;}
00155 inline float StRichPidTraits::signedDca2d() const { return mSigned2dDca;}
00156 inline float StRichPidTraits::signedDca3d() const { return mSigned3dDca;}
00157 inline StRichSpectra* StRichPidTraits::getRichSpectra() {return mRichSpectra;}
00158 inline const StRichSpectra* StRichPidTraits::getRichSpectra() const {return mRichSpectra;}
00159 inline void StRichPidTraits::setRichSpectra(StRichSpectra* sp) {mRichSpectra = sp;}
00160
00161
00162 ostream& operator<<(ostream& os, const StRichPidTraits& t);
00163 #endif