]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/AliComparisonEff.h
Updates in GRP Preprocessor (Ernesto)
[u/mrichter/AliRoot.git] / PWG1 / AliComparisonEff.h
1 #ifndef ALICOMPARISONEFF_H
2 #define ALICOMPARISONEFF_H
3
4 //------------------------------------------------------------------------------
5 // Class to keep information from comparison of 
6 // reconstructed and MC particle tracks (TPC efficiency).   
7 // 
8 // Author: J.Otwinowski 04/02/2008 
9 //------------------------------------------------------------------------------
10
11 class TFile;
12 class AliMCInfo;
13 class AliESDRecInfo;
14 class AliESDEvent; 
15 class AliESD;
16 class AliESDfriend;
17 class AliRecInfoCuts;
18 class AliMCInfoCuts;
19 class TH1I;
20 class TH3F;
21 class TH3;
22 class TProfile;
23 class TProfile2D;
24 class TGraph2D;
25 class TGraph; 
26 class TGeoManager; 
27 class TStatToolkit; 
28 class AliMagFMaps;
29 class AliESDVertex;
30
31 #include "TNamed.h"
32
33 class AliComparisonEff : public TNamed {
34 public :
35   AliComparisonEff(); 
36   ~AliComparisonEff();
37   void InitHisto();
38   void InitCuts();
39   void Exec(AliMCInfo* infoMC, AliESDRecInfo *infoRC);
40   void Process(AliMCInfo* infoMC, AliESDRecInfo *infoRC);
41   
42   // Selection cuts
43   void SetAliRecInfoCuts(AliRecInfoCuts* cuts=0) {fCutsRC = cuts;}
44   void SetAliMCInfoCuts(AliMCInfoCuts* cuts=0) {fCutsMC = cuts;} 
45   
46   AliRecInfoCuts*  GetAliRecInfoCuts() const {return fCutsRC;} 
47   AliMCInfoCuts*   GetAliMCInfoCuts()  const {return fCutsMC;}
48
49   // Merge output objects (needed by PROOF) 
50   virtual Long64_t Merge(TCollection* list);
51
52   // Analyse output histograms 
53   void Analyse();
54
55 private:
56
57   // Control histograms
58   TH1F *fMCPt;
59   TH1F *fMCRecPt;
60   TH1F *fMCRecPrimPt;
61   TH1F *fMCRecSecPt;
62   
63   TProfile* fEffTPCPt;      //->TPC efficiency as function of Pt (tan+-1)
64   TProfile* fEffTPCPtMC;    //->MC -TPC efficiency as function of Pt (tan+-1)
65   TProfile* fEffTPCPtF;     //->efficiency for findable tracks
66
67   TProfile* fEffTPCPt_P;    //->TPC efficiency as function of Pt (tan+-1) - Protons
68   TProfile* fEffTPCPtMC_P;  //->MC -TPC efficiency as function of Pt (tan+-1) - Protons
69   TProfile* fEffTPCPtF_P;   //->efficiency for findable tracks - Protons
70
71   TProfile* fEffTPCPt_Pi;   //->TPC efficiency as function of Pt (tan+-1) - Pions
72   TProfile* fEffTPCPtMC_Pi; //->MC -TPC efficiency as function of Pt (tan+-1) - Pions
73   TProfile* fEffTPCPtF_Pi;  //->efficiency for findable tracks - Pions
74
75   TProfile* fEffTPCPt_K;    //->TPC efficiency as function of Pt (tan+-1) - Kaons
76   TProfile* fEffTPCPtMC_K;  //->MC -TPC efficiency as function of Pt (tan+-1) - Kaons
77   TProfile* fEffTPCPtF_K;   //->efficiency for findable tracks - Kaons
78
79   //
80   TProfile* fEffTPCTan;     //->TPC efficiency as function of Tan (pt>0.15
81   TProfile* fEffTPCTanMC;   //->MC -TPC efficiency as function of Tan (pt>0.15)
82   TProfile* fEffTPCTanF;    //->efficiency for findable tracks Tan (pt>0.15)
83   //
84   TProfile2D* fEffTPCPtTan;    //->TPC efficiency as function of Pt and tan
85   TProfile2D* fEffTPCPtTanMC;  //->MC -TPC efficiency as function of Pt and tan
86   TProfile2D* fEffTPCPtTanF;   //->TPC efficiency as function of Pt and tan
87
88   // idx - 0 (isPrim), idx - 1 (isPrim && infoRC->GetStatus(1)==3)
89   // idx - 2 (infoRC->GetStatus(1)==3),  idx - 3 (infoRC->GetStatus(1)==3 && !isPrim )
90   //
91   
92   TH2F* fTPCPtDCASigmaIdeal[4]; //->TPC efficiency vs Pt vs DCA/Sigma (tan+-1)
93   TH2F* fTPCPtDCASigmaFull[4];  //->TPC efficiency vs Pt vs DCA/Sigma (tan+-1, full systematics)
94   TH2F* fTPCPtDCASigmaDay0[4];  //->TPC efficiency vs Pt vs DCA/Sigma (tan+-1, goofie systematics)
95
96   TH2F* fTPCPtDCAXY[4];     //->TPC efficiency as Pt vs DCA_XY (tan+-1)
97   TH2F* fTPCPtDCAZ[4];      //->TPC efficiency as Pt vs DCA_Z (tan+-1)
98
99   // Pid = 0 - electrons,  1 - muons, 2 - kaons, 3 - pions, 4 - protons   
100   TH3F* fTPCPtDCASigmaIdealPid[4]; //->TPC efficiency vs Pt vs DCA/Sigma (tan+-1)
101   TH3F* fTPCPtDCASigmaFullPid[4];  //->TPC efficiency vs Pt vs DCA/Sigma (tan+-1, full systematics)
102   TH3F* fTPCPtDCASigmaDay0Pid[4];  //->TPC efficiency vs Pt vs DCA/Sigma (tan+-1, goofie systematics)
103
104   TH3F* fTPCPtDCAXYPid[4];     //->TPC efficiency as Pt vs DCA_XY (tan+-1)
105   TH3F* fTPCPtDCAZPid[4];      //->TPC efficiency as Pt vs DCA_Z (tan+-1)
106
107   // Global cuts objects
108   AliRecInfoCuts* fCutsRC;     // selection cuts for reconstructed tracks
109   AliMCInfoCuts*  fCutsMC;     // selection cuts for MC tracks
110
111   // Magnet (needed for DCA calculations) 
112   AliESDVertex* fVertex;  //! 
113   
114   AliComparisonEff(const AliComparisonEff&); // not implemented
115   AliComparisonEff& operator=(const AliComparisonEff&); // not implemented
116
117   ClassDef(AliComparisonEff,1);
118 };
119
120 #endif