]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/src/AliL3Evaluate.h
Wrong CVS merging corrected
[u/mrichter/AliRoot.git] / HLT / src / AliL3Evaluate.h
1 // @(#) $Id$
2
3 #ifndef ALIL3_Evaluate
4 #define ALIL3_Evaluate
5
6
7 class TClonesArray;
8
9 #include <TObject.h>
10 #include <TH1.h>
11 #include <TTree.h>
12 #include <TNtuple.h>
13 #include "AliSimDigits.h"
14
15
16 struct GoodTrack 
17 {
18   Int_t label;
19   Double_t eta;
20   Int_t code;
21   Double_t px,py,pz;
22   Double_t x,y,z;
23   Int_t nhits;
24   Int_t sector;
25 };
26 typedef struct GoodTrack GoodTrack;
27
28
29 class AliL3Track;
30 class TClonesArray;
31 class TFile;
32 class AliL3TrackArray;
33 class AliL3SpacePointData;
34 class TH1F;
35 class AliTPCParam;
36 class TTree;
37 class AliSimDigits;
38 class TObjArray;
39 class TParticle;
40
41 class AliL3Evaluate {
42
43  private:
44
45   AliL3TrackArray *fTracks; //!
46   AliTPCParam *fParam;
47   AliL3SpacePointData *fClusters[36][6]; //!
48   TTree *fDigitsTree;
49   AliSimDigits *fDigits;
50   Char_t fPath[1024];
51   Int_t fMinSlice;
52   Int_t fMaxSlice;
53   UInt_t fNcl[36][6];
54   Int_t fRowid[36][176];
55   Int_t fMinPointsOnTrack;  //Minimum points on track to be considered.
56   Int_t fMinHitsFromParticle;
57   GoodTrack *fGoodTracks; //!
58   Float_t fMaxFalseClusters;
59   
60   Int_t fNFastPoints;
61   UInt_t *fMcIndex;//!
62   Int_t *fMcId;//!
63   Int_t fGoodFound;
64   Int_t fGoodGen;
65   Double_t fMinGoodPt;
66   Double_t fMaxGoodPt;
67   
68   //Histograms
69   TNtuple *fNtuppel;
70   TH1F *fPtRes;
71   TH1F *fNGoodTracksPt;
72   TH1F *fNFoundTracksPt;
73   TH1F *fNFakeTracksPt;
74   TH1F *fTrackEffPt;
75   TH1F *fFakeTrackEffPt;
76   TH1F *fNGoodTracksEta;
77   TH1F *fNFoundTracksEta;
78   TH1F *fNFakeTracksEta;
79   TH1F *fTrackEffEta;
80   TH1F *fFakeTrackEffEta;
81   TNtuple *fNtupleRes;
82   Bool_t fStandardComparison;
83   
84  public:
85   AliL3Evaluate();
86   AliL3Evaluate(Char_t *path,Int_t min_clusters,Int_t minhits,Double_t minpt=0.1,Double_t maxpt=4.,Int_t *slice=0);
87   virtual ~AliL3Evaluate();
88   
89   void LoadData(Int_t event=-1,Bool_t sp=kFALSE);
90   void CreateHistos(Int_t nbin=20,Float_t xlow=0,Float_t xup=4);
91   void Write2File(Char_t *outputfile);
92   void FillEffHistos();
93   void FillEffHistosNAIVE();
94   void CalcEffHistos();
95   void AssignPIDs();
96   void AssignIDs();
97   void GetGoodParticles(Char_t *particle_file,Int_t event=-1,Int_t *padrowrange=0);
98   void GetFastClusterIDs(Char_t *path);
99   void GetCFeff(Char_t *path,Char_t *outfile,Int_t nevent=0,Bool_t sp=kFALSE);
100   Int_t GetMCTrackLabel(AliL3Track *track);
101   Float_t GetTrackPID(AliL3Track *track);
102   void CalculateResiduals();
103   void EvaluatePoints(Char_t *rootfile,Char_t *exactfile,Char_t *tofile,Int_t nevent=1,Bool_t offline=kFALSE,Bool_t sp=kFALSE);
104   Float_t GetCrossingAngle(TParticle *part,Int_t slice,Int_t padrow,Float_t *xyz);
105   Int_t FindPrimaries(Int_t nparticles);
106   void SetMinPoints(Int_t f) {fMinPointsOnTrack = f;}
107   void SetMinGoodPt(Double_t f) {fMinGoodPt = f;}
108   void SetMaxFalseClusters(Float_t f) {fMaxFalseClusters = f;}
109   void SetStandardComparison(Bool_t b) {fStandardComparison = b;}  
110   TNtuple *GetNtuple();
111   Int_t GetNGoodTracks() {return fGoodGen;}
112   Int_t GetNFoundTracks() {return fGoodFound;}
113   TH1F *GetTrackEffPt() {return fTrackEffPt;}
114   TH1F *GetTrackEffEta() {return fTrackEffEta;}
115   TH1F *GetFakeEffEta() {return fFakeTrackEffEta;}
116   TH1F *GetFakeEffPt() {return fFakeTrackEffPt;}
117   TH1F *GetPtRes() {return fPtRes;}
118   AliL3TrackArray *GetTracks() {return fTracks;}
119   
120   ClassDef(AliL3Evaluate,1) //Tracking evaluation class
121 };
122
123 #endif