]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/src/AliL3Evaluate.h
Minor changes
[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 class AliL3Track;
11 class TClonesArray;
12 class TFile;
13 class AliL3TrackArray;
14 class AliL3SpacePointData;
15 class TH1F;
16 class AliL3Transform;
17 class AliTPCParam;
18 class TTree;
19 class AliSimDigits;
20 class TObjArray;
21 class TParticle;
22
23 class AliL3Evaluate : public TObject {
24
25  private:
26
27   TFile *fMCFile;
28   TFile *fMCclusterfile;  //If you run the fast simulator.
29   TClonesArray *fParticles;
30   AliL3TrackArray *fTracks; //!
31   AliTPCParam *fParam;
32   AliL3SpacePointData *fClusters[36][5]; //!
33   AliL3Transform *fTransform; //!
34   AliSimDigits *fDigits;
35   TTree *fDigitsTree;
36   Int_t fMinSlice;
37   Int_t fMaxSlice;
38   UInt_t fNcl[36][5];
39   Int_t fRowid[36][174];
40   Int_t fMinPointsOnTrack;  //Minimum points on track to be considered.
41   Bool_t fIsSlow;
42   Int_t fNFastPoints;
43   UInt_t *fMcIndex;//!
44   Int_t *fMcId;//!
45   
46   //Histograms
47   TNtuple *fNtuppel;
48   TH1F *fPtRes;
49   TH1F *fNGoodTracksPt;
50   TH1F *fNFoundTracksPt;
51   TH1F *fNFakeTracksPt;
52   TH1F *fTrackEffPt;
53   TH1F *fFakeTrackEffPt;
54   TH1F *fNGoodTracksEta;
55   TH1F *fNFoundTracksEta;
56   TH1F *fNFakeTracksEta;
57   TH1F *fTrackEffEta;
58   TH1F *fFakeTrackEffEta;
59   
60   void FillEffHistos(TObjArray *good_particles,Int_t *particle_id);
61   void CalcEffHistos();
62   void AssignIDs();
63   Bool_t SetDigitsTree();
64   Bool_t SetMCParticleArray();
65   TObjArray *DefineGoodTracks(Int_t slice,Int_t *padrow,Int_t good_number,Int_t *particle_id);
66   Int_t GetMCTrackLabel(AliL3Track *track);
67   Int_t **GetClusterIDs(AliL3Track *track);
68   void GetFastClusterIDs(Char_t *path);
69   //void Setup(Char_t *trackfile,Char_t *path);
70
71  public:
72   AliL3Evaluate();
73   AliL3Evaluate(Char_t *mcfile,Int_t *slice);
74   AliL3Evaluate(Int_t *slice);
75
76   virtual ~AliL3Evaluate();
77
78   void SetupFast(Char_t *trackfile,Char_t *mcClusterfile,Char_t *path=".");
79   void SetupSlow(Char_t *trackfile,Char_t *path=".");
80   void Setup(Char_t *trackfile,Char_t *path);
81   void CreateHistos(Int_t nbin=20,Int_t xlow=0,Int_t xup=4);
82   void EvaluatePatch(Int_t slice,Int_t patch,Int_t min_points,Int_t good_number);
83   void EvaluateSlice(Int_t slice,Int_t min_points,Int_t good_number);
84   void EvaluateGlobal(Int_t min_points,Int_t good_number);
85   void Write2File(Char_t *outputfile);
86     
87   TH1F *GetTrackEffPt() {return fTrackEffPt;}
88   TH1F *GetTrackEffEta() {return fTrackEffEta;}
89   TH1F *GetPtRes() {return fPtRes;}
90
91   void SetMinPoints(Int_t f) {fMinPointsOnTrack = f;}
92   
93   TNtuple *CalculateResiduals();
94   TNtuple *EvaluatePoints();
95   Bool_t GetParticleCrossingPoint(TParticle *part,Int_t slice,Int_t padrow,Float_t *xyz);
96   TNtuple *EvaluateGEANT();
97
98   ClassDef(AliL3Evaluate,1) 
99 };
100
101 #endif