]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/src/AliL3Evaluate.h
A new improved cluster finder
[u/mrichter/AliRoot.git] / HLT / src / AliL3Evaluate.h
CommitLineData
108615fc 1#ifndef ALIL3_Evaluate
2#define ALIL3_Evaluate
3
4#include <TObject.h>
5#include <TH1.h>
6#include <TTree.h>
1f79afc0 7#include <TNtuple.h>
108615fc 8#include "AliSimDigits.h"
9
10class AliL3Track;
11class TClonesArray;
12class TFile;
13class AliL3TrackArray;
14class AliL3SpacePointData;
15class TH1F;
16class AliL3Transform;
17class AliTPCParam;
18class TTree;
19class AliSimDigits;
20class TObjArray;
78127e35 21class TParticle;
108615fc 22
23class AliL3Evaluate : public TObject {
24
25 private:
26
27 TFile *fMCFile;
28 TFile *fMCclusterfile; //If you run the fast simulator.
23908b9b 29 TObjArray *fParticles;
108615fc 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];
ae97a0b9 39 Int_t fRowid[36][176];
108615fc 40 Int_t fMinPointsOnTrack; //Minimum points on track to be considered.
41 Bool_t fIsSlow;
23908b9b 42 Bool_t fNoOverlap;
108615fc 43 Int_t fNFastPoints;
c0217812 44 UInt_t *fMcIndex;//!
45 Int_t *fMcId;//!
23908b9b 46 Int_t fGoodFound;
47 Int_t fGoodGen;
48
108615fc 49 //Histograms
1f79afc0 50 TNtuple *fNtuppel;
108615fc 51 TH1F *fPtRes;
52 TH1F *fNGoodTracksPt;
53 TH1F *fNFoundTracksPt;
54 TH1F *fNFakeTracksPt;
55 TH1F *fTrackEffPt;
56 TH1F *fFakeTrackEffPt;
57 TH1F *fNGoodTracksEta;
58 TH1F *fNFoundTracksEta;
59 TH1F *fNFakeTracksEta;
60 TH1F *fTrackEffEta;
61 TH1F *fFakeTrackEffEta;
62
63 void FillEffHistos(TObjArray *good_particles,Int_t *particle_id);
bc2f4f0e 64 void CalcEffHistos();
108615fc 65 void AssignIDs();
66 Bool_t SetDigitsTree();
67 Bool_t SetMCParticleArray();
68 TObjArray *DefineGoodTracks(Int_t slice,Int_t *padrow,Int_t good_number,Int_t *particle_id);
c0217812 69 Int_t GetMCTrackLabel(AliL3Track *track);
70 Int_t **GetClusterIDs(AliL3Track *track);
71 void GetFastClusterIDs(Char_t *path);
1f79afc0 72 //void Setup(Char_t *trackfile,Char_t *path);
bc2f4f0e 73
108615fc 74 public:
75 AliL3Evaluate();
76 AliL3Evaluate(Char_t *mcfile,Int_t *slice);
1f79afc0 77 AliL3Evaluate(Int_t *slice);
108615fc 78
79 virtual ~AliL3Evaluate();
80
c0217812 81 void SetupFast(Char_t *trackfile,Char_t *mcClusterfile,Char_t *path=".");
82 void SetupSlow(Char_t *trackfile,Char_t *path=".");
1f79afc0 83 void Setup(Char_t *trackfile,Char_t *path);
108615fc 84 void CreateHistos(Int_t nbin=20,Int_t xlow=0,Int_t xup=4);
85 void EvaluatePatch(Int_t slice,Int_t patch,Int_t min_points,Int_t good_number);
86 void EvaluateSlice(Int_t slice,Int_t min_points,Int_t good_number);
bc2f4f0e 87 void EvaluateGlobal(Int_t min_points,Int_t good_number);
108615fc 88 void Write2File(Char_t *outputfile);
89
90 TH1F *GetTrackEffPt() {return fTrackEffPt;}
91 TH1F *GetTrackEffEta() {return fTrackEffEta;}
92 TH1F *GetPtRes() {return fPtRes;}
93
94 void SetMinPoints(Int_t f) {fMinPointsOnTrack = f;}
23908b9b 95 void DoSingleTracks() {fNoOverlap = kTRUE;}
96 Int_t GetNGoodTracks() {return fGoodGen;}
97 Int_t GetNFoundTracks() {return fGoodFound;}
1f79afc0 98
99 TNtuple *CalculateResiduals();
78127e35 100 TNtuple *EvaluatePoints();
101 Bool_t GetParticleCrossingPoint(TParticle *part,Int_t slice,Int_t padrow,Float_t *xyz);
102 TNtuple *EvaluateGEANT();
103
108615fc 104 ClassDef(AliL3Evaluate,1)
105};
106
107#endif