00001 #ifndef __StMuPrimaryVertex_hh__
00002 #define __StMuPrimaryVertex_hh__
00003
00004
00005
00006
00007
00008
00009
00010 #include "TObject.h"
00011 #include "StThreeVectorF.hh"
00012 #include "StEnumerations.h"
00013
00014 class StPrimaryVertex;
00015
00016 class StMuPrimaryVertex : public TObject {
00017
00018 public:
00019 StMuPrimaryVertex(): mFlag(0), mPosition(-999,-999,-999), mPosError(-999,-999,-999), mVertexFinderId(undefinedVertexFinder),
00020 mRanking(999),mNTracksUsed(0), mNCTBMatch(0), mNBEMCMatch(0), mNEEMCMatch(0), mNCrossCentralMembrane(0),
00021 mSumTrackPt(-999),mMeanDip(-999), mChiSquared(9999), mNTracks(0), mRefMultNeg(0), mRefMultPos(0), mRefMultFtpcWest(0),
00022 mRefMultFtpcEast(0), mIdTruth(0), mQuality(0), mIdParent(0) {}
00023 StMuPrimaryVertex(const StPrimaryVertex*& vertex);
00024 ~StMuPrimaryVertex() {;}
00025 Int_t flag() const {return mFlag; }
00026 StThreeVectorF position() const { return mPosition; }
00027 StThreeVectorF posError() const { return mPosError; }
00028 StVertexFinderId vertexFinderId() const { return mVertexFinderId; }
00029 Float_t ranking() const { return mRanking; }
00030 UShort_t nTracksUsed() const { return mNTracksUsed; }
00031 UShort_t nBTOFMatch() const { return mNBTOFMatch; }
00032 UShort_t nCTBMatch() const { return mNCTBMatch; }
00033 UShort_t nBEMCMatch() const { return mNBEMCMatch; }
00034 UShort_t nEEMCMatch() const { return mNEEMCMatch; }
00035 UShort_t nPostXtracks() const { return mNPostXTracks;}
00036 UShort_t nPromptTracks() const { return mNTracksWithPromptHit;}
00037 UShort_t nBTOFNotMatch() const { return mNBTOFNotMatch; }
00038 UShort_t nCTBNotMatch() const { return mNCTBNotMatch; }
00039 UShort_t nBEMCNotMatch() const { return mNBEMCNotMatch; }
00040 UShort_t nEEMCNotMatch() const { return mNEEMCNotMatch; }
00041 UShort_t nCrossCentralMembrane() const { return mNCrossCentralMembrane; }
00042
00043 Float_t sumTrackPt() const { return mSumTrackPt; }
00044 Float_t meanDip() const { return mMeanDip; }
00045 Float_t chiSquared() const { return mChiSquared; }
00046 UShort_t noTracks() const {return mNTracks;}
00047 UShort_t refMultPos() const { return mRefMultPos; }
00048 UShort_t refMultNeg() const { return mRefMultNeg; }
00049 UShort_t refMult() const { return refMultPos() + refMultNeg(); }
00050 UShort_t refMultFtpcEast() const { return mRefMultFtpcEast; }
00051 UShort_t refMultFtpcWest() const { return mRefMultFtpcWest; }
00052 UShort_t refMultFtpc() const { return refMultFtpcEast() + refMultFtpcWest(); }
00053 void setPosition(const StThreeVectorF &pos) { mPosition = pos; }
00054 void setPosError(const StThreeVectorF &pos_err) { mPosError = pos_err; }
00055 Int_t idTruth() const { return mIdTruth;}
00056 Int_t qaTruth() const { return mQuality; }
00057 Int_t idParent() const { return mIdParent;}
00058 void setFlag(Int_t val) { mFlag = val; }
00059 void setIdTruth(Int_t idtru,Int_t qatru=0) {mIdTruth = (UShort_t) idtru; mQuality = (UShort_t) qatru;}
00060 void setIdParent(Int_t id) {mIdParent = id;}
00061 Bool_t isBeamConstrained() const {return TESTBIT(mFlag,kBEAMConstrVtxId);}
00062 virtual void Print(Option_t *option="") const;
00063
00064 ClassDef(StMuPrimaryVertex,7)
00065
00066 private:
00067 Int_t mFlag;
00068 StThreeVectorF mPosition;
00069 StThreeVectorF mPosError;
00070 StVertexFinderId mVertexFinderId;
00071 Float_t mRanking;
00072 UShort_t mNTracksUsed;
00073 UShort_t mNBTOFMatch;
00074 UShort_t mNCTBMatch;
00075 UShort_t mNBEMCMatch;
00076 UShort_t mNEEMCMatch;
00077 UShort_t mNBTOFNotMatch;
00078 UShort_t mNCTBNotMatch;
00079 UShort_t mNBEMCNotMatch;
00080 UShort_t mNEEMCNotMatch;
00081 UShort_t mNCrossCentralMembrane;
00082 UShort_t mNTracksWithPromptHit;
00083 UShort_t mNPostXTracks;
00084 Float_t mSumTrackPt;
00085 Float_t mMeanDip;
00086 Float_t mChiSquared;
00087 UShort_t mNTracks;
00088
00089 UShort_t mRefMultNeg;
00090 UShort_t mRefMultPos;
00091 UShort_t mRefMultFtpcWest;
00092 UShort_t mRefMultFtpcEast;
00093
00094 UShort_t mIdTruth;
00095 UShort_t mQuality;
00096 Int_t mIdParent;
00097 };
00098 ostream& operator<<(ostream& os, const StMuPrimaryVertex& v);
00099 #endif
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141