00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef ST_JET_VERTEX_H
00011 #define ST_JET_VERTEX_H
00012
00013 class TLorentzVector;
00014 class StJetCandidate;
00015
00016 #include "TObject.h"
00017 #include "TVector3.h"
00018 #include "TRefArray.h"
00019
00020 class StJetVertex : public TObject {
00021 public:
00022 StJetVertex()
00023 : mPosition(-999,-999,-999)
00024 , mPosError(-999,-999,-999)
00025 , mVertexFinderId(0)
00026 , mRanking(-999)
00027 , mNTracksUsed(0)
00028 , mNBTOFMatch(0)
00029 , mNCTBMatch(0)
00030 , mNBEMCMatch(0)
00031 , mNEEMCMatch(0)
00032 , mNCrossCentralMembrane(0)
00033 , mSumTrackPt(-999)
00034 , mMeanDip(-999)
00035 , mChiSquared(9999)
00036 , mRefMultPos(0)
00037 , mRefMultNeg(0)
00038 , mRefMultFtpcWest(0)
00039 , mRefMultFtpcEast(0)
00040 {
00041 }
00042
00043 const TVector3& position() const { return mPosition; }
00044 const TVector3& posError() const { return mPosError; }
00045 int vertexFinderId() const { return mVertexFinderId; }
00046 float ranking() const { return mRanking; }
00047 int nTracksUsed() const { return mNTracksUsed; }
00048 int nBTOFMatch() const { return mNBTOFMatch; }
00049 int nCTBMatch() const { return mNCTBMatch; }
00050 int nBEMCMatch() const { return mNBEMCMatch; }
00051 int nEEMCMatch() const { return mNEEMCMatch; }
00052 int nCrossCentralMembrane() const { return mNCrossCentralMembrane; }
00053 float sumTrackPt() const { return mSumTrackPt; }
00054 float meanDip() const { return mMeanDip; }
00055 float chiSquared() const { return mChiSquared; }
00056 int refMultPos() const { return mRefMultPos; }
00057 int refMultNeg() const { return mRefMultNeg; }
00058 int refMult() const { return refMultPos() + refMultNeg(); }
00059 int refMultFtpcEast() const { return mRefMultFtpcEast; }
00060 int refMultFtpcWest() const { return mRefMultFtpcWest; }
00061 int refMultFtpc() const { return refMultFtpcWest() + refMultFtpcEast(); }
00062
00063 const TRefArray& jets() const { return mJets; }
00064 int numberOfJets() const { return mJets.GetEntriesFast(); }
00065 StJetCandidate* jet(int i) const { return (StJetCandidate*)mJets.At(i); }
00066 StJetCandidate* addJet(StJetCandidate* jet) { mJets.Add((TObject*)jet); return (StJetCandidate*)mJets.Last(); }
00067
00068 friend class StjeJetEventTreeWriter;
00069 friend class StJetMaker2009;
00070
00071 private:
00072 TVector3 mPosition;
00073 TVector3 mPosError;
00074 int mVertexFinderId;
00075 float mRanking;
00076 int mNTracksUsed;
00077 int mNBTOFMatch;
00078 int mNCTBMatch;
00079 int mNBEMCMatch;
00080 int mNEEMCMatch;
00081 int mNCrossCentralMembrane;
00082 float mSumTrackPt;
00083 float mMeanDip;
00084 float mChiSquared;
00085 int mRefMultPos;
00086 int mRefMultNeg;
00087 int mRefMultFtpcWest;
00088 int mRefMultFtpcEast;
00089 TRefArray mJets;
00090
00091 ClassDef(StJetVertex,1);
00092 };
00093
00094 #endif // ST_JET_VERTEX_H