]>
Commit | Line | Data |
---|---|---|
acb9d358 | 1 | #ifndef ALIPERFORMANCEPTCALIBMC_H |
2 | #define ALIPERFORMANCEPTCALIBMC_H | |
3 | ||
4 | class TString; | |
5 | class TNamed; | |
6 | class TCanvas; | |
7 | class TH1F; | |
8 | class TH2F; | |
9 | class TList; | |
10 | ||
11 | class AliESDVertex; | |
12 | class AliESDtrack; | |
13 | class AliMCEvent; | |
14 | class AliStack; | |
15 | class AliTrackReference; | |
16 | class AliESDEvent; | |
17 | class AliESDfriend; | |
18 | class AliESDfriendTrack; | |
19 | class AliMCEvent; | |
20 | class AliMCParticle; | |
21 | class AliMCInfoCuts; | |
22 | class AliRecInfoCuts; | |
23 | class AliESDtrackCuts; | |
24 | ||
25 | #include "AliPerformanceObject.h" | |
26 | ||
27 | class 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 | ||
91 | protected: | |
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 |