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