]>
Commit | Line | Data |
---|---|---|
ce7adfe9 | 1 | #ifndef ALIEPSELECTIONTASK_H |
2 | #define ALIEPSELECTIONTASK_H | |
3 | ||
4 | /* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | //***************************************************** | |
8 | // Class AliEPSelectionTask | |
9 | // author: Alberica Toia, Johanna Gramling | |
10 | //***************************************************** | |
11 | ||
12 | #include "AliAnalysisTaskSE.h" | |
13 | ||
14 | class TFile; | |
15 | class TH1F; | |
16 | class TH2F; | |
17 | class TList; | |
18 | class TString; | |
19 | class TVector2; | |
20 | class TObjArray; | |
21 | ||
22 | class AliESDEvent; | |
23 | class AliESDtrackCuts; | |
24 | class AliESDtrack; | |
25 | class AliEventplane; | |
90267ca6 | 26 | class AliOADBContainer; |
ce7adfe9 | 27 | |
28 | class AliEPSelectionTask : public AliAnalysisTaskSE { | |
29 | ||
30 | public: | |
31 | ||
32 | AliEPSelectionTask(); | |
33 | AliEPSelectionTask(const char *name); | |
34 | virtual ~AliEPSelectionTask(); | |
35 | ||
36 | // Implementation of interface methods | |
37 | virtual void UserCreateOutputObjects(); | |
38 | virtual void UserExec(Option_t *option); | |
39 | virtual void Terminate(Option_t *option); | |
40 | ||
41 | TVector2 GetQ(AliEventplane* EP, TObjArray* event); | |
42 | void GetQsub(TVector2& Qsub1, TVector2& Qsub2, TObjArray* event); | |
43 | Double_t GetWeight(AliESDtrack* track); | |
44 | Double_t GetPhiWeight(AliESDtrack* track); | |
45 | ||
46 | virtual void SetDebugLevel(Int_t level) {fDebug = level;} | |
47 | void SetInput(const char* input) {fAnalysisInput = input;} | |
48 | void SetUseMCRP() {fUseMCRP = kTRUE;} | |
49 | void SetUsePhiWeight() {fUsePhiWeight = kTRUE;} | |
50 | void SetUsePtWeight() {fUsePtWeight = kTRUE;} | |
51 | void SetSaveTrackContribution() {fSaveTrackContribution = kTRUE;} | |
90267ca6 | 52 | void SetTrackType(TString tracktype); |
53 | void SetPhiDist(); | |
54 | void SetPersonalESDtrackCuts(AliESDtrackCuts* trackcuts); | |
71916547 | 55 | void SetPersonalPhiDistribution(const char* filename, char* listname); |
ce7adfe9 | 56 | |
57 | private: | |
58 | ||
59 | AliEPSelectionTask(const AliEPSelectionTask& ep); | |
60 | AliEPSelectionTask& operator= (const AliEPSelectionTask& ep); | |
61 | ||
ce7adfe9 | 62 | TString fAnalysisInput; // "ESD", "AOD" |
90267ca6 | 63 | TString fTrackType; // "GLOBAL", "TPC" |
ce7adfe9 | 64 | Bool_t fUseMCRP; // i.e. usable for Therminator, when MC RP is provided |
65 | Bool_t fUsePhiWeight; // use of phi weights | |
66 | Bool_t fUsePtWeight; // use of pT weights | |
67 | Bool_t fSaveTrackContribution; // storage of contribution of each track to Q-Vector | |
90267ca6 | 68 | Bool_t fuserphidist; // bool, if personal phi distribution should be used |
69 | Bool_t fusercuts; // bool, if personal cuts should be used | |
70 | Int_t frunNumber; // runnumber | |
ce7adfe9 | 71 | |
08c34a44 | 72 | AliESDtrackCuts* fESDtrackCuts; //! track cuts |
ce7adfe9 | 73 | |
08c34a44 | 74 | TObjArray* ftracklist; //! list of accepted tracks for Q-Vector |
90267ca6 | 75 | AliOADBContainer* fEPContainer; //! OADB Container |
ce7adfe9 | 76 | TH1F* fPhiDist; // Phi distribution used to calculate phi weights |
77 | ||
08c34a44 | 78 | TVector2* fQVector; //! Q-Vector of the event |
79 | Double_t* fQContributionX; //! array of the tracks' contributions to X component of Q-Vector - index = track ID | |
80 | Double_t* fQContributionY; //! array of the tracks' contributions to Y component of Q-Vector - index = track ID | |
81 | Double_t fEventplaneQ; //! Event plane angle from Q-Vector | |
82 | TVector2* fQsub1; //! Q-Vector of sub-event 1 | |
83 | TVector2* fQsub2; //! Q-Vector of sub-event 2 | |
84 | Double_t fQsubRes; //! Difference of EP angles of subevents | |
ce7adfe9 | 85 | |
71916547 | 86 | TList* fOutputList; // Output histograms |
08c34a44 | 87 | TH1F* fHOutEventplaneQ; //! control histogram: Event Plane angle |
88 | TH1F* fHOutPhi; //! control histogram: original phi distribution | |
89 | TH1F* fHOutPhiCorr; //! control histogram: corrected phi distribution | |
90 | TH2F* fHOutsub1sub2; //! control histogram: correlation of EP from subevents | |
91 | TH2F* fHOutNTEPRes; //! control histogram: Difference of EP angles of subevents vs Nch | |
92 | TH2F* fHOutPTPsi; //! control histogram: Difference of EP angle and emission angle of track vs track pT | |
93 | TH2F* fHOutDiff; //! control histogram: Difference of MC RP and EP - only filled if fUseMCRP is true! | |
94 | TH2F* fHOutleadPTPsi; //! control histogram: emission angle of leading pT track vs EP angle | |
ce7adfe9 | 95 | |
90267ca6 | 96 | ClassDef(AliEPSelectionTask,3); |
ce7adfe9 | 97 | }; |
98 | ||
99 | #endif | |
100 |