]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG1/TPC/AliPerformancePtCalibMC.h
new performance classes (Simone Schuchmann)
[u/mrichter/AliRoot.git] / PWG1 / TPC / AliPerformancePtCalibMC.h
CommitLineData
acb9d358 1#ifndef ALIPERFORMANCEPTCALIBMC_H
2#define ALIPERFORMANCEPTCALIBMC_H
3
4class TString;
5class TNamed;
6class TCanvas;
7class TH1F;
8class TH2F;
9class TList;
10
11class AliESDVertex;
12class AliESDtrack;
13class AliMCEvent;
14class AliStack;
15class AliTrackReference;
16class AliESDEvent;
17class AliESDfriend;
18class AliESDfriendTrack;
19class AliMCEvent;
20class AliMCParticle;
21class AliMCInfoCuts;
22class AliRecInfoCuts;
23class AliESDtrackCuts;
24
25#include "AliPerformanceObject.h"
26
27class AliPerformancePtCalibMC : public AliPerformanceObject {
28 public:
29 AliPerformancePtCalibMC();
30 AliPerformancePtCalibMC(const char *name, const char *title);
31 virtual ~AliPerformancePtCalibMC() ;
32
33 // Init data members
34 virtual void Init();
35
36 // Execute analysis
37 virtual void Exec(AliMCEvent* const mcEvent, AliESDEvent *const esdEvent, AliESDfriend *const esdFriend, const Bool_t bUseMC, const Bool_t bUseESDfriend);
38
39 // Merge output objects (needed by PROOF)
40 virtual Long64_t Merge(TCollection* const list);
41
42 // Analyse output histograms
43 virtual void Analyse();
44
45 // Get analysis folder
46 virtual TFolder* GetAnalysisFolder() const {return fAnalysisFolder;}
47
48 Bool_t AddTPCcuts(AliESDtrack *ESDTrack);
49 Bool_t AddITScuts(AliESDtrack *ESDTrack);
50 Bool_t AddDCAcuts(AliESDtrack *ESDTrack);
51
52 void SetReadTPCTracksOff(){fOptTPC = kFALSE;}// function can be used in the macro to set the variables
53 void SetTPCRefitOn() {fRefitTPC = kTRUE;} // function can be used in the macro to set the variables
54 void SetITSRefitOn() {fRefitITS = kTRUE;} // function can be used in the macro to set the variables
55 void SetESDcutsOff() {fESDcuts = kFALSE;}// function can be used in the macro to set the variables
56 void SetDCAcutsOff() {fDCAcut = kFALSE;}// function can be used in the macro to set the variables
57
58 //void SetPtShift(Double_t shiftVal ){if(!(shiftVal==0)) {fShift=kTRUE; fDeltaInvP = shiftVal;} };
59 void SetPtShift(Double_t shiftVal); //shift in 1/pt
60
61 void SetESDcutValues(Double_t * esdCutValues){// functions can be used in the macro to set the variables
62 fMinPt = esdCutValues[0];
63 fMaxPt = esdCutValues[1];
64 fMinNClustersTPC = esdCutValues[2];
65 fMaxChi2PerClusterTPC = esdCutValues[3];
66 fMaxDCAtoVertexXY = esdCutValues[4];
67 fMaxDCAtoVertexZ = esdCutValues[5];
68 }
69
70 void SetProjBinsPhi(const Double_t *pBins,Int_t sizep);
71 void SetProjBinsTheta(const Double_t *tBins, Int_t sizet);
72 void SetMakeFitOption(const Bool_t setGausFit, const Double_t exclusionR,const Double_t fitR );
73 void SetAnaMCOff() {fAnaMC = kFALSE;}
74 TList *GetHistoList() {return fList;}
75
76
77 // Create folder for analysed histograms
78 TFolder *CreateFolder(TString folder = "folderPtCalib",TString title = "Analysed PtCalib histograms");
79
80 // Export objects to folder
81 TFolder *ExportToFolder(TObjArray * array=0);
82
83 // Selection cuts
84 void SetAliRecInfoCuts(AliRecInfoCuts* const cuts=0) {fCutsRC = cuts;}
85 void SetAliMCInfoCuts(AliMCInfoCuts* const cuts=0) {fCutsMC = cuts;}
86
87
88 AliRecInfoCuts* GetAliRecInfoCuts() const {return fCutsRC;}
89 AliMCInfoCuts* GetAliMCInfoCuts() const {return fCutsMC;}
90
91protected:
92
93 Double_t fThetaBins[100];
94 Double_t fPhiBins[100];
95
96 Int_t fNThetaBins;
97 Int_t fNPhiBins ;
98 Double_t fRange;
99 Double_t fExclRange ;
100 Bool_t fFitGaus ;
101 Bool_t fAnaMC;
102
103
104 private:
105 Bool_t fShift;
106 Double_t fDeltaInvP;
107 //options for cuts
108 Bool_t fOptTPC;
109 Bool_t fESDcuts;
110 Bool_t fRefitTPC;
111 Bool_t fRefitITS;
112 Bool_t fDCAcut;
113
114 Double_t fMinPt;
115 Double_t fMaxPt;
116 Double_t fMinNClustersTPC;
117 Double_t fMaxChi2PerClusterTPC;
118 Double_t fMaxDCAtoVertexXY;
119 Double_t fMaxDCAtoVertexZ;
120
121 AliRecInfoCuts* fCutsRC; // selection cuts for reconstructed tracks
122 AliMCInfoCuts* fCutsMC; // selection cuts for MC tracks
123
124
125 TList *fList;
126 TH2F *fHistInvPtTheta;
127 TH2F *fHistInvPtPhi;
128 TH2F *fHistPtTheta;
129 TH2F *fHistPtPhi;
130
131 TH1F *fHistPtShift0;
132 TH1F *fHistPrimaryVertexPosX;
133 TH1F *fHistPrimaryVertexPosY;
134 TH1F *fHistPrimaryVertexPosZ;
135 TH1F *fHistTrackMultiplicity;
136 TH1F *fHistTrackMultiplicityCuts;
137
138 TH2F *fHistTPCMomentaPosP;
139 TH2F *fHistTPCMomentaNegP;
140 TH2F *fHistTPCMomentaPosPt;
141 TH2F *fHistTPCMomentaNegPt;
142
143 TH2F *fHistInvPtThetaMC;
144 TH2F *fHistInvPtPhiMC;
145 TH2F *fHistPtThetaMC;
146 TH2F *fHistPtPhiMC;
147 TH2F *fHistInvPtMCESD;
148 TH2F *fHistInvPtMCTPC;
149 TH2F *fHistPtMCESD;
150 TH2F *fHistPtMCTPC;
151 TH2F *fHistMomresMCESD;
152 TH2F *fHistMomresMCTPC;
153 TH2F *fHistTPCMomentaPosInvPtMC;
154 TH2F *fHistTPCMomentaNegInvPtMC;
155 TH2F *fHistTPCMomentaPosPtMC;
156 TH2F *fHistTPCMomentaNegPtMC;
157
158 TH1F *fHistESDMomentaPosInvPtMC;
159 TH1F *fHistESDMomentaNegInvPtMC;
160 TH1F *fHistESDMomentaPosPtMC;
161 TH1F *fHistESDMomentaNegPtMC;
162 TH1F *fHistUserPtShift;
163
164 AliESDtrackCuts* fESDTrackCuts;
165
166 // analysis folder
167 TFolder *fAnalysisFolder; // folder for analysed histograms
168
169 AliPerformancePtCalibMC(const AliPerformancePtCalibMC&); // not implemented
170 AliPerformancePtCalibMC& operator=(const AliPerformancePtCalibMC&); // not implemented
171
172 ClassDef(AliPerformancePtCalibMC, 1);
173};
174
175#endif