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