00001
00002
00003
00004
00005
00006
00007 #include "TClonesArray.h"
00008 #include "TVector3.h"
00009 #include "TLorentzVector.h"
00010 #include "StJetEventTypes.h"
00011
00012 ClassImp(StJetEvent);
00013
00014 StJetEvent::StJetEvent()
00015 : mRunId(0)
00016 , mEventId(0)
00017 , mVertices(new TClonesArray("StJetVertex",10))
00018 , mJets(new TClonesArray("StJetCandidate",10))
00019 , mTracks(new TClonesArray("StJetTrack",50))
00020 , mTowers(new TClonesArray("StJetTower",50))
00021 , mParticles(new TClonesArray("StJetParticle",50))
00022 {
00023 }
00024
00025 StJetEvent::~StJetEvent()
00026 {
00027 mVertices->Delete(); delete mVertices; mVertices = 0;
00028 mJets->Delete(); delete mJets; mJets = 0;
00029 mTracks->Delete(); delete mTracks; mTracks = 0;
00030 mTowers->Delete(); delete mTowers; mTowers = 0;
00031 mParticles->Delete(); delete mParticles; mParticles = 0;
00032 }
00033
00034 void StJetEvent::Clear(Option_t* option)
00035 {
00036 mVertices->Clear(option);
00037 mJets->Clear(option);
00038 mTracks->Clear(option);
00039 mTowers->Clear(option);
00040 mParticles->Clear(option);
00041 }
00042
00043 int StJetEvent::numberOfVertices () const { return mVertices->GetEntriesFast(); }
00044 int StJetEvent::numberOfJets () const { return mJets->GetEntriesFast(); }
00045 int StJetEvent::numberOfTracks () const { return mTracks->GetEntriesFast(); }
00046 int StJetEvent::numberOfTowers () const { return mTowers->GetEntriesFast(); }
00047 int StJetEvent::numberOfParticles() const { return mParticles->GetEntriesFast(); }
00048
00049 StJetVertex* StJetEvent::vertex (int i) const { return (StJetVertex*)mVertices->At(i); }
00050 StJetCandidate* StJetEvent::jet (int i) const { return (StJetCandidate*)mJets->At(i); }
00051 StJetTrack* StJetEvent::track (int i) const { return (StJetTrack*)mTracks->At(i); }
00052 StJetTower* StJetEvent::tower (int i) const { return (StJetTower*)mTowers->At(i); }
00053 StJetParticle* StJetEvent::particle(int i) const { return (StJetParticle*)mParticles->At(i); }
00054
00055 StJetVertex* StJetEvent::newVertex() { return new ((*mVertices)[mVertices->GetEntriesFast()]) StJetVertex; }
00056 StJetCandidate* StJetEvent::newJet(const TVector3& vertex, const TLorentzVector& fourMomentum) { return new ((*mJets)[mJets->GetEntriesFast()]) StJetCandidate(vertex,fourMomentum); }
00057 StJetTrack* StJetEvent::newTrack() { return new ((*mTracks)[mTracks->GetEntriesFast()]) StJetTrack; }
00058 StJetTower* StJetEvent::newTower() { return new ((*mTowers)[mTowers->GetEntriesFast()]) StJetTower; }
00059 StJetParticle* StJetEvent::newParticle() { return new ((*mParticles)[mParticles->GetEntriesFast()]) StJetParticle; }