The present commit corresponds to an important change in the way the
[u/mrichter/AliRoot.git] / PWG1 / AliComparisonEff.h
CommitLineData
09b20ad1 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
11class TFile;
12class AliMCInfo;
13class AliESDRecInfo;
14class AliESDEvent;
15class AliESD;
16class AliESDfriend;
17class AliRecInfoCuts;
18class AliMCInfoCuts;
19class TH1I;
20class TH3F;
21class TH3;
22class TProfile;
23class TProfile2D;
24class TGraph2D;
25class TGraph;
26class TGeoManager;
3baa4bfd 27class TString;
09b20ad1 28class TStatToolkit;
f7a1cc68 29class AliMagF;
09b20ad1 30class AliESDVertex;
31
32#include "TNamed.h"
3baa4bfd 33#include "AliComparisonObject.h"
09b20ad1 34
3baa4bfd 35class AliComparisonEff : public AliComparisonObject {
09b20ad1 36public :
37 AliComparisonEff();
38 ~AliComparisonEff();
3baa4bfd 39
40 // Init data members
41 virtual void Init();
42
43 // Execute analysis
44 virtual void Exec(AliMCInfo* infoMC, AliESDRecInfo *infoRC);
45
46 // Merge output objects (needed by PROOF)
47 virtual Long64_t Merge(TCollection* list);
48
49 // Analyse output histograms
50 virtual void Analyse();
51
52 // Get analysis folder
53 virtual TFolder* GetAnalysisFolder() {return fAnalysisFolder;}
54
55 // Create folder for analysed histograms
56 TFolder *CreateFolder(TString folder = "folderEff",TString title = "Analysed Efficiency histograms");
57
b4126c69 58 // Export objects to folder
59 TFolder *ExportToFolder(TObjArray * array=0);
60
3baa4bfd 61 // Process events
09b20ad1 62 void Process(AliMCInfo* infoMC, AliESDRecInfo *infoRC);
3baa4bfd 63
09b20ad1 64 // Selection cuts
65 void SetAliRecInfoCuts(AliRecInfoCuts* cuts=0) {fCutsRC = cuts;}
66 void SetAliMCInfoCuts(AliMCInfoCuts* cuts=0) {fCutsMC = cuts;}
67
3baa4bfd 68 // Getters
09b20ad1 69 AliRecInfoCuts* GetAliRecInfoCuts() const {return fCutsRC;}
70 AliMCInfoCuts* GetAliMCInfoCuts() const {return fCutsMC;}
71
3baa4bfd 72
09b20ad1 73
74private:
75
76 // Control histograms
77 TH1F *fMCPt;
78 TH1F *fMCRecPt;
79 TH1F *fMCRecPrimPt;
80 TH1F *fMCRecSecPt;
81
82 TProfile* fEffTPCPt; //->TPC efficiency as function of Pt (tan+-1)
83 TProfile* fEffTPCPtMC; //->MC -TPC efficiency as function of Pt (tan+-1)
84 TProfile* fEffTPCPtF; //->efficiency for findable tracks
85
86 TProfile* fEffTPCPt_P; //->TPC efficiency as function of Pt (tan+-1) - Protons
87 TProfile* fEffTPCPtMC_P; //->MC -TPC efficiency as function of Pt (tan+-1) - Protons
88 TProfile* fEffTPCPtF_P; //->efficiency for findable tracks - Protons
89
90 TProfile* fEffTPCPt_Pi; //->TPC efficiency as function of Pt (tan+-1) - Pions
91 TProfile* fEffTPCPtMC_Pi; //->MC -TPC efficiency as function of Pt (tan+-1) - Pions
92 TProfile* fEffTPCPtF_Pi; //->efficiency for findable tracks - Pions
93
94 TProfile* fEffTPCPt_K; //->TPC efficiency as function of Pt (tan+-1) - Kaons
95 TProfile* fEffTPCPtMC_K; //->MC -TPC efficiency as function of Pt (tan+-1) - Kaons
96 TProfile* fEffTPCPtF_K; //->efficiency for findable tracks - Kaons
97
98 //
99 TProfile* fEffTPCTan; //->TPC efficiency as function of Tan (pt>0.15
100 TProfile* fEffTPCTanMC; //->MC -TPC efficiency as function of Tan (pt>0.15)
101 TProfile* fEffTPCTanF; //->efficiency for findable tracks Tan (pt>0.15)
102 //
103 TProfile2D* fEffTPCPtTan; //->TPC efficiency as function of Pt and tan
104 TProfile2D* fEffTPCPtTanMC; //->MC -TPC efficiency as function of Pt and tan
105 TProfile2D* fEffTPCPtTanF; //->TPC efficiency as function of Pt and tan
106
107 // idx - 0 (isPrim), idx - 1 (isPrim && infoRC->GetStatus(1)==3)
108 // idx - 2 (infoRC->GetStatus(1)==3), idx - 3 (infoRC->GetStatus(1)==3 && !isPrim )
109 //
110
111 TH2F* fTPCPtDCASigmaIdeal[4]; //->TPC efficiency vs Pt vs DCA/Sigma (tan+-1)
112 TH2F* fTPCPtDCASigmaFull[4]; //->TPC efficiency vs Pt vs DCA/Sigma (tan+-1, full systematics)
113 TH2F* fTPCPtDCASigmaDay0[4]; //->TPC efficiency vs Pt vs DCA/Sigma (tan+-1, goofie systematics)
114
115 TH2F* fTPCPtDCAXY[4]; //->TPC efficiency as Pt vs DCA_XY (tan+-1)
116 TH2F* fTPCPtDCAZ[4]; //->TPC efficiency as Pt vs DCA_Z (tan+-1)
117
118 // Pid = 0 - electrons, 1 - muons, 2 - kaons, 3 - pions, 4 - protons
119 TH3F* fTPCPtDCASigmaIdealPid[4]; //->TPC efficiency vs Pt vs DCA/Sigma (tan+-1)
120 TH3F* fTPCPtDCASigmaFullPid[4]; //->TPC efficiency vs Pt vs DCA/Sigma (tan+-1, full systematics)
121 TH3F* fTPCPtDCASigmaDay0Pid[4]; //->TPC efficiency vs Pt vs DCA/Sigma (tan+-1, goofie systematics)
3baa4bfd 122 TH3F* fTPCPtDCAXYPid[4]; //->TPC efficiency vs Pt vs DCA_XY (tan+-1)
123 TH3F* fTPCPtDCAZPid[4]; //->TPC efficiency vs Pt vs DCA_Z (tan+-1)
09b20ad1 124
125 // Global cuts objects
126 AliRecInfoCuts* fCutsRC; // selection cuts for reconstructed tracks
127 AliMCInfoCuts* fCutsMC; // selection cuts for MC tracks
128
129 // Magnet (needed for DCA calculations)
130 AliESDVertex* fVertex; //!
131
3baa4bfd 132 // analysis folder
133 TFolder *fAnalysisFolder; // folder for analysed histograms
134
09b20ad1 135 AliComparisonEff(const AliComparisonEff&); // not implemented
136 AliComparisonEff& operator=(const AliComparisonEff&); // not implemented
137
138 ClassDef(AliComparisonEff,1);
139};
140
141#endif