#ifndef ROOT_Event
#define ROOT_Event
#include "TObject.h"
#include "TClonesArray.h"
#include "TRefArray.h"
#include "TRef.h"
#include "TH1.h"
#include "TMath.h"
class TDirectory;
class Track : public TObject {
private:
Float_t fPx;
Float_t fPy;
Float_t fPz;
Float_t fRandom;
Float_t fMass2;
Float_t fBx;
Float_t fBy;
Float_t fMeanCharge;
Float_t fXfirst;
Float_t fXlast;
Float_t fYfirst;
Float_t fYlast;
Float_t fZfirst;
Float_t fZlast;
Double32_t fCharge;
Double32_t fVertex[3];
Int_t fNpoint;
Short_t fValid;
Int_t fNsp;
Double32_t* fPointValue;
TBits fTriggerBits;
public:
Track() { fPointValue = 0; }
Track(const Track& orig);
Track(Float_t random);
virtual ~Track() {Clear();}
void Clear(Option_t *option="");
Float_t GetPx() const { return fPx; }
Float_t GetPy() const { return fPy; }
Float_t GetPz() const { return fPz; }
Float_t GetPt() const { return TMath::Sqrt(fPx*fPx + fPy*fPy); }
Float_t GetRandom() const { return fRandom; }
Float_t GetBx() const { return fBx; }
Float_t GetBy() const { return fBy; }
Float_t GetMass2() const { return fMass2; }
Float_t GetMeanCharge() const { return fMeanCharge; }
Float_t GetXfirst() const { return fXfirst; }
Float_t GetXlast() const { return fXlast; }
Float_t GetYfirst() const { return fYfirst; }
Float_t GetYlast() const { return fYlast; }
Float_t GetZfirst() const { return fZfirst; }
Float_t GetZlast() const { return fZlast; }
Double32_t GetCharge() const { return fCharge; }
Double32_t GetVertex(Int_t i=0) {return (i<3)?fVertex[i]:0;}
Int_t GetNpoint() const { return fNpoint; }
TBits& GetTriggerBits() { return fTriggerBits; }
Short_t GetValid() const { return fValid; }
virtual void SetValid(Int_t valid=1) { fValid = valid; }
Int_t GetN() const { return fNsp; }
Double32_t GetPointValue(Int_t i=0) const { return (i<fNsp)?fPointValue[i]:0; }
ClassDef(Track,2)
};
class EventHeader {
private:
Int_t fEvtNum;
Int_t fRun;
Int_t fDate;
public:
EventHeader() : fEvtNum(0), fRun(0), fDate(0) { }
virtual ~EventHeader() { }
void Set(Int_t i, Int_t r, Int_t d) { fEvtNum = i; fRun = r; fDate = d; }
Int_t GetEvtNum() const { return fEvtNum; }
Int_t GetRun() const { return fRun; }
Int_t GetDate() const { return fDate; }
ClassDef(EventHeader,1)
};
class Event : public TObject {
private:
char fType[20];
char *fEventName;
Int_t fNtrack;
Int_t fNseg;
Int_t fNvertex;
UInt_t fFlag;
Double32_t fTemperature;
Int_t fMeasures[10];
Double32_t fMatrix[4][4];
Double32_t *fClosestDistance;
EventHeader fEvtHdr;
TClonesArray *fTracks;
TRefArray *fHighPt;
TRefArray *fMuons;
TRef fLastTrack;
TRef fWebHistogram;
TH1F *fH;
TBits fTriggerBits;
Bool_t fIsValid;
static TClonesArray *fgTracks;
static TH1F *fgHist;
public:
Event();
virtual ~Event();
void Build(Int_t ev, Int_t arg5=600, Float_t ptmin=1);
void Clear(Option_t *option ="");
Bool_t IsValid() const { return fIsValid; }
static void Reset(Option_t *option ="");
void ResetHistogramPointer() {fH=0;}
void SetNseg(Int_t n) { fNseg = n; }
void SetNtrack(Int_t n) { fNtrack = n; }
void SetNvertex(Int_t n) { fNvertex = n; SetRandomVertex(); }
void SetFlag(UInt_t f) { fFlag = f; }
void SetTemperature(Double32_t t) { fTemperature = t; }
void SetType(char *type) {strcpy(fType,type);}
void SetHeader(Int_t i, Int_t run, Int_t date, Float_t random);
Track *AddTrack(Float_t random, Float_t ptmin=1);
void SetMeasure(UChar_t which, Int_t what);
void SetMatrix(UChar_t x, UChar_t y, Double32_t what) { if (x<3&&y<3) fMatrix[x][y]=what;}
void SetRandomVertex();
Float_t GetClosestDistance(Int_t i) {return fClosestDistance[i];}
char *GetType() {return fType;}
Int_t GetNtrack() const { return fNtrack; }
Int_t GetNseg() const { return fNseg; }
Int_t GetNvertex() const { return fNvertex; }
UInt_t GetFlag() const { return fFlag; }
Double32_t GetTemperature() const { return fTemperature; }
EventHeader *GetHeader() { return &fEvtHdr; }
TClonesArray *GetTracks() const {return fTracks;}
TRefArray *GetHighPt() const {return fHighPt;}
TRefArray *GetMuons() const {return fMuons;}
Track *GetLastTrack() const {return (Track*)fLastTrack.GetObject();}
TH1F *GetHistogram() const {return fH;}
TH1 *GetWebHistogram() const {return (TH1*)fWebHistogram.GetObject();}
Int_t GetMeasure(UChar_t which) { return (which<10)?fMeasures[which]:0; }
Double32_t GetMatrix(UChar_t x, UChar_t y) { return (x<4&&y<4)?fMatrix[x][y]:0; }
TBits& GetTriggerBits() { return fTriggerBits; }
ClassDef(Event,1)
};
class HistogramManager {
private:
TH1F *fNtrack;
TH1F *fNseg;
TH1F *fTemperature;
TH1F *fPx;
TH1F *fPy;
TH1F *fPz;
TH1F *fRandom;
TH1F *fMass2;
TH1F *fBx;
TH1F *fBy;
TH1F *fMeanCharge;
TH1F *fXfirst;
TH1F *fXlast;
TH1F *fYfirst;
TH1F *fYlast;
TH1F *fZfirst;
TH1F *fZlast;
TH1F *fCharge;
TH1F *fNpoint;
TH1F *fValid;
public:
HistogramManager(TDirectory *dir);
virtual ~HistogramManager();
void Hfill(Event *event);
ClassDef(HistogramManager,1)
};
#endif
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.