]>
Commit | Line | Data |
---|---|---|
acb9d358 | 1 | #ifndef ALIPERFORMANCEPTCALIB_H |
2 | #define ALIPERFORMANCEPTCALIB_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 | ||
24 | #include "AliPerformanceObject.h" | |
25 | ||
26 | class 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 | ||
86 | protected: | |
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 |