10 class AliL3TrackArray;
11 class AliL3SpacePointData;
18 class AliL3FileHandler;
22 //#include <TNtuple.h>
32 Double_t fpx,fpy,fpz; //momentum
33 Double_t fx,fy,fz; //pos at entrance
35 Int_t fsector; //sector number
37 typedef struct AliGoodTrack AliGoodTrack;
44 typedef struct AliS AliS;
48 AliL3TrackArray *fTracks; //!
49 AliL3SpacePointData *fClusters[36][6]; //!
50 AliL3FileHandler *fClustersFile[36][6]; //!
51 Char_t fPath[1024]; //path
52 Int_t fMinSlice; //min slice
53 Int_t fMaxSlice; //max slice
54 UInt_t fNcl[36][6]; //cluster numbers
55 Int_t fRowid[36][176]; //row ids
56 Int_t fMinPointsOnTrack; //minimum points on track to be considered.
57 Int_t fMinHitsFromParticle; //minimums hits a particle has to create
58 AliGoodTrack *fGoodTracks; //!
59 Float_t fMaxFalseClusters; //maximum number of false assigned clusters
61 Int_t fNFastPoints; //fast access to points
64 Int_t fGoodFound; //good found
65 Int_t fGoodGen; //good generated found
66 Double_t fMinGoodPt; //min pt
67 Double_t fMaxGoodPt; //max pt
72 TH1F *fNGoodTracksPt;//!
73 TH1F *fNFoundTracksPt;//!
74 TH1F *fNFakeTracksPt;//!
76 TH1F *fFakeTrackEffPt;//!
77 TH1F *fNGoodTracksEta;//!
78 TH1F *fNFoundTracksEta;//!
79 TH1F *fNFakeTracksEta;//!
80 TH1F *fTrackEffEta;//!
81 TH1F *fFakeTrackEffEta;//!
82 TNtuple *fNtupleRes;//!
83 Bool_t fStandardComparison; // take standard macro
88 AliL3Evaluate(Char_t *path,Int_t min_clusters,Int_t minhits,Double_t minpt=0.1,Double_t maxpt=4.,Int_t *slice=0);
89 virtual ~AliL3Evaluate();
91 void LoadData(Int_t event=-1,Bool_t sp=kFALSE);
92 void CreateHistos(Int_t nbin=20,Float_t xlow=0,Float_t xup=4);
93 void Write2File(Char_t *outputfile);
95 void FillEffHistosNAIVE();
99 void GetGoodParticles(Char_t *particlefile,Int_t event=-1,Int_t *padrowrange=0);
100 void GetFastClusterIDs(Char_t *path);
101 void GetCFeff(Char_t *path,Char_t *outfile,Int_t nevent=0,Bool_t sp=kFALSE);
102 Int_t GetMCTrackLabel(AliL3Track *track);
103 Float_t GetTrackPID(AliL3Track *track);
104 void CalculateResiduals();
105 void EvaluatePoints(Char_t *rootfile,Char_t *exactfile,Char_t *tofile,Int_t nevent=1,Bool_t offline=kFALSE,Bool_t sp=kFALSE);
106 Float_t GetCrossingAngle(TParticle *part,Int_t slice,Int_t padrow,Float_t *xyz);
107 Int_t FindPrimaries(Int_t nparticles);
108 void SetMinPoints(Int_t f) {fMinPointsOnTrack = f;}
109 void SetMinGoodPt(Double_t f) {fMinGoodPt = f;}
110 void SetMaxFalseClusters(Float_t f) {fMaxFalseClusters = f;}
111 void SetStandardComparison(Bool_t b) {fStandardComparison = b;}
112 TNtuple *GetNtuple();
113 Int_t GetNGoodTracks() const {return fGoodGen;}
114 Int_t GetNFoundTracks() const {return fGoodFound;}
115 TH1F *GetTrackEffPt() {return fTrackEffPt;}
116 TH1F *GetTrackEffEta() {return fTrackEffEta;}
117 TH1F *GetFakeEffEta() {return fFakeTrackEffEta;}
118 TH1F *GetFakeEffPt() {return fFakeTrackEffPt;}
119 TH1F *GetPtRes() {return fPtRes;}
120 AliL3TrackArray *GetTracks() {return fTracks;}
122 ClassDef(AliL3Evaluate,1) //Tracking evaluation class