]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG1/TPC/AliPerformancePtCalib.h
new performance classes (Simone Schuchmann)
[u/mrichter/AliRoot.git] / PWG1 / TPC / AliPerformancePtCalib.h
CommitLineData
acb9d358 1#ifndef ALIPERFORMANCEPTCALIB_H
2#define ALIPERFORMANCEPTCALIB_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;
23
24#include "AliPerformanceObject.h"
25
26class AliPerformancePtCalib : public AliPerformanceObject {
27 public:
28 AliPerformancePtCalib();
29 AliPerformancePtCalib(Char_t* name, Char_t* title);
30 virtual ~AliPerformancePtCalib();
31
32 // Init data members
33 virtual void Init();
34
35 // Execute analysis
36 virtual void Exec(AliMCEvent* const mcEvent, AliESDEvent *const esdEvent, AliESDfriend *const esdFriend, const Bool_t bUseMC, const Bool_t bUseESDfriend);
37
38 // Merge output objects (needed by PROOF)
39 virtual Long64_t Merge(TCollection* const list);
40
41 // Analyse output histograms
42 virtual void Analyse();
43
44 // Get analysis folder
45 virtual TFolder* GetAnalysisFolder() const {return fAnalysisFolder;}
46
47 Bool_t AddTPCcuts(AliESDtrack *ESDTrack);
48 Bool_t AddITScuts(AliESDtrack *ESDTrack);
49 Bool_t AddDCAcuts(AliESDtrack *ESDTrack);
50
51 void SetReadTPCTracksOff(){fOptTPC = kFALSE;}// function can be used in the macro to set the variables
52 void SetTPCRefit() {fRefitTPC = kTRUE;} // function can be used in the macro to set the variables
53 void SetITSRefit() {fRefitITS = kTRUE;} // function can be used in the macro to set the variables
54 void SetESDcutsOff() {fESDcuts = kFALSE;}// function can be used in the macro to set the variables
55 void SetDCAcutsOff() {fDCAcut = kFALSE;}// function can be used in the macro to set the variables
56
57 //void SetPtShift(Double_t shiftVal ) { if(!(shiftVal==0)) {fShift=kTRUE; fDeltaInvP = shiftVal;} }
58 void SetPtShift(Double_t shiftVal);
59
60 void SetESDcutValues(Double_t * esdCutValues){// functions can be used in the macro to set the variables
61 fMinPt = esdCutValues[0];
62 fMaxPt = esdCutValues[1];
63 fMinNClustersTPC = esdCutValues[2];
64 fMaxChi2PerClusterTPC = esdCutValues[3];
65 fMaxDCAtoVertexXY = esdCutValues[4];
66 fMaxDCAtoVertexZ = esdCutValues[5];
67 }
68 void SetProjBinsPhi(const Double_t *pBins,Int_t sizep);
69 void SetProjBinsTheta(const Double_t *tBins, Int_t sizet);
70 void SetMakeFitOption(const Bool_t setGausFit, const Double_t exclusionR,const Double_t fitR );
71 TList *GetHistoList() {return fList;}
72
73 // Create folder for analysed histograms
74 TFolder *CreateFolder(TString folder = "folderPtCalib",TString title = "Analysed PtCalib histograms");
75
76 // Export objects to folder
77 TFolder *ExportToFolder(TObjArray * array=0);
78
79 // Selection cuts
80 void SetAliRecInfoCuts(AliRecInfoCuts* const cuts=0) {fCutsRC = cuts;}
81 void SetAliMCInfoCuts(AliMCInfoCuts* const cuts=0) {fCutsMC = cuts;}
82
83 AliRecInfoCuts* GetAliRecInfoCuts() const {return fCutsRC;}
84 AliMCInfoCuts* GetAliMCInfoCuts() const {return fCutsMC;}
85
86protected:
87
88 Double_t fThetaBins[100];
89 Double_t fPhiBins[100];
90
91 Int_t fNThetaBins;
92 Int_t fNPhiBins ;
93 Double_t fRange;
94 Double_t fExclRange ;
95 Bool_t fFitGaus ;
96
97 private:
98
99 Bool_t fShift;
100 Double_t fDeltaInvP;
101 //options for cuts
102 Bool_t fOptTPC;
103 Bool_t fESDcuts;
104 Bool_t fRefitTPC;
105 Bool_t fRefitITS;
106 Bool_t fDCAcut;
107
108 Double_t fMinPt;
109 Double_t fMaxPt;
110 Double_t fMinNClustersTPC;
111 Double_t fMaxChi2PerClusterTPC;
112 Double_t fMaxDCAtoVertexXY;
113 Double_t fMaxDCAtoVertexZ;
114
115 AliRecInfoCuts* fCutsRC; // selection cuts for reconstructed tracks
116 AliMCInfoCuts* fCutsMC; // selection cuts for MC tracks
117
118 TList *fList;
119 TH2F *fHistInvPtTheta;
120 TH2F *fHistInvPtPhi;
121 TH2F *fHistPtTheta;
122 TH2F *fHistPtPhi;
123
124 TH1F *fHistPtShift0;
125 TH1F *fHistPrimaryVertexPosX;
126 TH1F *fHistPrimaryVertexPosY;
127 TH1F *fHistPrimaryVertexPosZ;
128 TH1F *fHistTrackMultiplicity;
129 TH1F *fHistTrackMultiplicityCuts;
130
131 TH2F *fHistTPCMomentaPosP;
132 TH2F *fHistTPCMomentaNegP;
133 TH2F *fHistTPCMomentaPosPt;
134 TH2F *fHistTPCMomentaNegPt;
135 TH1F *fHistUserPtShift;
136
137 AliESDtrackCuts* fESDTrackCuts;
138
139 // analysis folder
140 TFolder *fAnalysisFolder; // folder for analysed histograms
141
142 AliPerformancePtCalib(const AliPerformancePtCalib&); // not implemented
143 AliPerformancePtCalib& operator=(const AliPerformancePtCalib&); // not implemented
144
145 ClassDef(AliPerformancePtCalib, 1);
146};
147
148#endif