]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG1/AliComparisonEff.h
Adding abstract class for comparison components
[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;
29class AliMagFMaps;
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
58 // Process events
09b20ad1 59 void Process(AliMCInfo* infoMC, AliESDRecInfo *infoRC);
3baa4bfd 60
09b20ad1 61 // Selection cuts
62 void SetAliRecInfoCuts(AliRecInfoCuts* cuts=0) {fCutsRC = cuts;}
63 void SetAliMCInfoCuts(AliMCInfoCuts* cuts=0) {fCutsMC = cuts;}
64
3baa4bfd 65 // Getters
09b20ad1 66 AliRecInfoCuts* GetAliRecInfoCuts() const {return fCutsRC;}
67 AliMCInfoCuts* GetAliMCInfoCuts() const {return fCutsMC;}
68
3baa4bfd 69
09b20ad1 70
71private:
72
73 // Control histograms
74 TH1F *fMCPt;
75 TH1F *fMCRecPt;
76 TH1F *fMCRecPrimPt;
77 TH1F *fMCRecSecPt;
78
79 TProfile* fEffTPCPt; //->TPC efficiency as function of Pt (tan+-1)
80 TProfile* fEffTPCPtMC; //->MC -TPC efficiency as function of Pt (tan+-1)
81 TProfile* fEffTPCPtF; //->efficiency for findable tracks
82
83 TProfile* fEffTPCPt_P; //->TPC efficiency as function of Pt (tan+-1) - Protons
84 TProfile* fEffTPCPtMC_P; //->MC -TPC efficiency as function of Pt (tan+-1) - Protons
85 TProfile* fEffTPCPtF_P; //->efficiency for findable tracks - Protons
86
87 TProfile* fEffTPCPt_Pi; //->TPC efficiency as function of Pt (tan+-1) - Pions
88 TProfile* fEffTPCPtMC_Pi; //->MC -TPC efficiency as function of Pt (tan+-1) - Pions
89 TProfile* fEffTPCPtF_Pi; //->efficiency for findable tracks - Pions
90
91 TProfile* fEffTPCPt_K; //->TPC efficiency as function of Pt (tan+-1) - Kaons
92 TProfile* fEffTPCPtMC_K; //->MC -TPC efficiency as function of Pt (tan+-1) - Kaons
93 TProfile* fEffTPCPtF_K; //->efficiency for findable tracks - Kaons
94
95 //
96 TProfile* fEffTPCTan; //->TPC efficiency as function of Tan (pt>0.15
97 TProfile* fEffTPCTanMC; //->MC -TPC efficiency as function of Tan (pt>0.15)
98 TProfile* fEffTPCTanF; //->efficiency for findable tracks Tan (pt>0.15)
99 //
100 TProfile2D* fEffTPCPtTan; //->TPC efficiency as function of Pt and tan
101 TProfile2D* fEffTPCPtTanMC; //->MC -TPC efficiency as function of Pt and tan
102 TProfile2D* fEffTPCPtTanF; //->TPC efficiency as function of Pt and tan
103
104 // idx - 0 (isPrim), idx - 1 (isPrim && infoRC->GetStatus(1)==3)
105 // idx - 2 (infoRC->GetStatus(1)==3), idx - 3 (infoRC->GetStatus(1)==3 && !isPrim )
106 //
107
108 TH2F* fTPCPtDCASigmaIdeal[4]; //->TPC efficiency vs Pt vs DCA/Sigma (tan+-1)
109 TH2F* fTPCPtDCASigmaFull[4]; //->TPC efficiency vs Pt vs DCA/Sigma (tan+-1, full systematics)
110 TH2F* fTPCPtDCASigmaDay0[4]; //->TPC efficiency vs Pt vs DCA/Sigma (tan+-1, goofie systematics)
111
112 TH2F* fTPCPtDCAXY[4]; //->TPC efficiency as Pt vs DCA_XY (tan+-1)
113 TH2F* fTPCPtDCAZ[4]; //->TPC efficiency as Pt vs DCA_Z (tan+-1)
114
115 // Pid = 0 - electrons, 1 - muons, 2 - kaons, 3 - pions, 4 - protons
116 TH3F* fTPCPtDCASigmaIdealPid[4]; //->TPC efficiency vs Pt vs DCA/Sigma (tan+-1)
117 TH3F* fTPCPtDCASigmaFullPid[4]; //->TPC efficiency vs Pt vs DCA/Sigma (tan+-1, full systematics)
118 TH3F* fTPCPtDCASigmaDay0Pid[4]; //->TPC efficiency vs Pt vs DCA/Sigma (tan+-1, goofie systematics)
3baa4bfd 119 TH3F* fTPCPtDCAXYPid[4]; //->TPC efficiency vs Pt vs DCA_XY (tan+-1)
120 TH3F* fTPCPtDCAZPid[4]; //->TPC efficiency vs Pt vs DCA_Z (tan+-1)
09b20ad1 121
122 // Global cuts objects
123 AliRecInfoCuts* fCutsRC; // selection cuts for reconstructed tracks
124 AliMCInfoCuts* fCutsMC; // selection cuts for MC tracks
125
126 // Magnet (needed for DCA calculations)
127 AliESDVertex* fVertex; //!
128
3baa4bfd 129 // analysis folder
130 TFolder *fAnalysisFolder; // folder for analysed histograms
131
09b20ad1 132 AliComparisonEff(const AliComparisonEff&); // not implemented
133 AliComparisonEff& operator=(const AliComparisonEff&); // not implemented
134
135 ClassDef(AliComparisonEff,1);
136};
137
138#endif