1 #ifndef ALIPERFORMANCEPTCALIBMC_H
2 #define ALIPERFORMANCEPTCALIBMC_H
15 class AliTrackReference;
18 class AliESDfriendTrack;
23 class AliESDtrackCuts;
25 #include "AliPerformanceObject.h"
27 class AliPerformancePtCalibMC : public AliPerformanceObject {
29 AliPerformancePtCalibMC();
30 AliPerformancePtCalibMC(const char *name, const char *title);
31 virtual ~AliPerformancePtCalibMC() ;
37 virtual void Exec(AliMCEvent* const mcEvent, AliESDEvent *const esdEvent, AliESDfriend *const esdFriend, const Bool_t bUseMC, const Bool_t bUseESDfriend);
39 // Merge output objects (needed by PROOF)
40 virtual Long64_t Merge(TCollection* const list);
42 // Analyse output histograms
43 virtual void Analyse();
45 // Get analysis folder
46 virtual TFolder* GetAnalysisFolder() const {return fAnalysisFolder;}
48 Bool_t AddTPCcuts(AliESDtrack *ESDTrack);
49 Bool_t AddITScuts(AliESDtrack *ESDTrack);
50 Bool_t AddDCAcuts(AliESDtrack *ESDTrack);
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
58 //void SetPtShift(Double_t shiftVal ){if(!(shiftVal==0)) {fShift=kTRUE; fDeltaInvP = shiftVal;} };
59 void SetPtShift(Double_t shiftVal); //shift in 1/pt
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];
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;}
77 // Create folder for analysed histograms
78 TFolder *CreateFolder(TString folder = "folderPtCalib",TString title = "Analysed PtCalib histograms");
80 // Export objects to folder
81 TFolder *ExportToFolder(TObjArray * array=0);
84 void SetAliRecInfoCuts(AliRecInfoCuts* const cuts=0) {fCutsRC = cuts;}
85 void SetAliMCInfoCuts(AliMCInfoCuts* const cuts=0) {fCutsMC = cuts;}
88 AliRecInfoCuts* GetAliRecInfoCuts() const {return fCutsRC;}
89 AliMCInfoCuts* GetAliMCInfoCuts() const {return fCutsMC;}
93 Double_t fThetaBins[100];
94 Double_t fPhiBins[100];
116 Double_t fMinNClustersTPC;
117 Double_t fMaxChi2PerClusterTPC;
118 Double_t fMaxDCAtoVertexXY;
119 Double_t fMaxDCAtoVertexZ;
121 AliRecInfoCuts* fCutsRC; // selection cuts for reconstructed tracks
122 AliMCInfoCuts* fCutsMC; // selection cuts for MC tracks
126 TH2F *fHistInvPtTheta;
132 TH1F *fHistPrimaryVertexPosX;
133 TH1F *fHistPrimaryVertexPosY;
134 TH1F *fHistPrimaryVertexPosZ;
135 TH1F *fHistTrackMultiplicity;
136 TH1F *fHistTrackMultiplicityCuts;
138 TH2F *fHistTPCMomentaPosP;
139 TH2F *fHistTPCMomentaNegP;
140 TH2F *fHistTPCMomentaPosPt;
141 TH2F *fHistTPCMomentaNegPt;
143 TH2F *fHistInvPtThetaMC;
144 TH2F *fHistInvPtPhiMC;
145 TH2F *fHistPtThetaMC;
147 TH2F *fHistInvPtMCESD;
148 TH2F *fHistInvPtMCTPC;
151 TH2F *fHistMomresMCESD;
152 TH2F *fHistMomresMCTPC;
153 TH2F *fHistTPCMomentaPosInvPtMC;
154 TH2F *fHistTPCMomentaNegInvPtMC;
155 TH2F *fHistTPCMomentaPosPtMC;
156 TH2F *fHistTPCMomentaNegPtMC;
158 TH1F *fHistESDMomentaPosInvPtMC;
159 TH1F *fHistESDMomentaNegInvPtMC;
160 TH1F *fHistESDMomentaPosPtMC;
161 TH1F *fHistESDMomentaNegPtMC;
162 TH1F *fHistUserPtShift;
164 AliESDtrackCuts* fESDTrackCuts;
167 TFolder *fAnalysisFolder; // folder for analysed histograms
169 AliPerformancePtCalibMC(const AliPerformancePtCalibMC&); // not implemented
170 AliPerformancePtCalibMC& operator=(const AliPerformancePtCalibMC&); // not implemented
172 ClassDef(AliPerformancePtCalibMC, 1);