00001
00002
00003 #ifndef StJets_h
00004 #define StJets_h
00005
00006 #include <vector>
00007 using std::vector;
00008
00009 #include "TObject.h"
00010 #include "TClonesArray.h"
00011
00012 #include "TrackToJetIndex.h"
00013 #include "TowerToJetIndex.h"
00014
00015 class StJet;
00016
00024 class StJets : public TObject
00025 {
00026 public:
00027
00028 StJets();
00029 virtual ~StJets();
00030
00031 void Clear(bool clearTracks = false);
00032 void Clear(Option_t* opt);
00033
00035 void setBemcCorrupt(bool v) { mCorrupt = v; }
00036 bool bemcCorrupt() const { return mCorrupt; }
00037
00039 int nJets() const { return mJets->GetEntriesFast(); }
00040
00042 TClonesArray* jets() { return mJets; }
00043
00044 void addJet(StJet& jet);
00045
00047 TClonesArray* tracks() { return mTrackToJetIndices; }
00048 TClonesArray* towers() { return mTowerToJetIndices; }
00049
00050 void addTrackToIndex(TrackToJetIndex& t2j);
00051 void addTowerToIndex(TowerToJetIndex& t2j);
00052
00054 TObjArray tracks(int jetIndex) const;
00055 TObjArray towers(int jetIndex) const;
00056 vector<TLorentzVector*> particles(int jetIndex) const;
00057
00059 int eventId () const { return mEventId ; }
00060 int eventNumber() const { return mEventNumber; }
00061 int runId () const { return mRunId ; }
00062 int runNumber () const { return mRunNumber ; }
00063
00064 void seteventId (int v) { mEventId = v; }
00065 void seteventNumber(int v) { mEventNumber = v; }
00066 void setrunId (int v) { mRunId = v; }
00067 void setrunNumber (int v) { mRunNumber = v; }
00068
00070
00071
00073 int nDylanPoints() const { return mDylanPoints; }
00074 void setDylanPoints(int v) { mDylanPoints = v; }
00075
00077 double sumEmcE() const { return mSumEmcE; }
00078 void setSumEmcE(double v) { mSumEmcE = v; }
00079
00081 double e (int jetIndex) const;
00082 double et (int jetIndex) const;
00083 double p (int jetIndex) const;
00084 double pt (int jetIndex) const;
00085 double phi (int jetIndex) const;
00086 double eta (int jetIndex) const;
00087 int nCell (int jetIndex) const;
00088 int charge(int jetIndex) const;
00089
00090 private:
00091 int mDylanPoints;
00092 double mSumEmcE;
00093 int mEventId;
00094 int mEventNumber;
00095 int mRunId;
00096 int mRunNumber;
00097 bool mCorrupt;
00098
00099 bool inBounds(int);
00100 StJet* jet(int);
00101
00102 TClonesArray* mJets;
00103 TClonesArray* mTrackToJetIndices;
00104 TClonesArray* mTowerToJetIndices;
00105
00106 ClassDef(StJets,2);
00107 };
00108
00109
00110 inline void StJets::Clear(Option_t* opt)
00111 {
00112 TObject::Clear(opt);
00113 mEventId = mEventNumber = mRunId = mRunNumber = 0;
00114 mCorrupt = false;
00115 }
00116
00117 #endif // StJets_h