00001 #ifndef STRAREEVENT_HH
00002 #define STRAREEVENT_HH
00003 #include "TObject.h"
00004 #include "TClonesArray.h"
00005
00006 class StEvent;
00007 class StPrimaryTrack;
00008 class StGlobalTrack;
00009 class StL3Trigger;
00010
00011 class StRareEvent : public TObject {
00012
00013 public:
00014 StRareEvent();
00015
00016 ~StRareEvent();
00017
00018 void fillRareEvent(StEvent* event);
00019 void fillL3Info(StL3Trigger *l3Event);
00020 void clear(Option_t *option="");
00021
00022 int eventNumber() const;
00023 int runNumber() const;
00024 int triggerWord() const;
00025 float vertexZ() const;
00026 int numberOfTracks() const;
00027 int numberOfGoodPrimaryTracks() const;
00028 float magneticField() const;
00029 void addTrack(StPrimaryTrack* track);
00030 void addL3Track(StGlobalTrack* l3track);
00031 float l3vertexZ() const;
00032 int numberOfL3Tracks() const;
00033 short l3Unbiased() const;
00034 int numberOfProccesedEvents() const;
00035 int numberOfAcceptedEvents() const;
00036 int numberOfBuildEvents() const;
00037 float triggerData(int i) const;
00038 int l3Flag() const;
00039 TClonesArray* getTracks() const;
00040 TClonesArray* getL3Tracks() const;
00041
00042 private:
00043 TClonesArray* fRareTracks;
00044 static TClonesArray* fgRareTracks;
00045 int fNRareTrack;
00046 int fEventNumber;
00047 int fRunNumber;
00048 int fTriggerWord;
00049 float fVertexZ;
00050 int fnumberOfGoodPrimaryTracks;
00051 float fmagneticField;
00052
00053
00054 TClonesArray* fL3RareTracks;
00055 static TClonesArray* fgL3RareTracks;
00056 int fNL3RareTrack;
00057 float fL3VertexZ;
00058 short fL3Unbiased;
00059 int fNProcessed;
00060 int fNAccept;
00061 int fNBuild;
00062 float fTriggerData[10];
00063 int fL3Flag;
00064
00065 ClassDef(StRareEvent,3)
00066 };
00067
00068
00069 inline int StRareEvent::eventNumber() const {return fEventNumber;}
00070 inline int StRareEvent::runNumber() const {return fRunNumber;}
00071 inline int StRareEvent::triggerWord() const {return fTriggerWord;}
00072 inline int StRareEvent::numberOfGoodPrimaryTracks() const {return fnumberOfGoodPrimaryTracks;}
00073 inline int StRareEvent::numberOfTracks() const {return fNRareTrack;}
00074 inline float StRareEvent::vertexZ() const {return fVertexZ;}
00075 inline float StRareEvent::magneticField() const {return fmagneticField;}
00076 inline TClonesArray* StRareEvent::getTracks() const {return fRareTracks;}
00077
00078
00079
00080 inline int StRareEvent::numberOfL3Tracks() const {return fNL3RareTrack;}
00081 inline short StRareEvent::l3Unbiased() const {return fL3Unbiased;}
00082 inline int StRareEvent::numberOfProccesedEvents() const {return fNProcessed;}
00083 inline int StRareEvent::numberOfAcceptedEvents() const {return fNAccept;}
00084 inline int StRareEvent::numberOfBuildEvents() const {return fNBuild;}
00085 inline float StRareEvent::l3vertexZ() const {return fL3VertexZ;}
00086 inline TClonesArray* StRareEvent::getL3Tracks() const {return fL3RareTracks;}
00087 inline float StRareEvent::triggerData(int i) const {
00088 if (i>=0 && i<=9) return fTriggerData[i];
00089 else return -9999;
00090 }
00091 inline int StRareEvent::l3Flag() const {return fL3Flag;}
00092
00093 #endif