Coverity defect corrected.
[u/mrichter/AliRoot.git] / ANALYSIS / AliEPSelectionTask.h
CommitLineData
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
14class TFile;
15class TH1F;
16class TH2F;
17class TList;
18class TString;
19class TVector2;
20class TObjArray;
21
22class AliESDEvent;
23class AliESDtrackCuts;
24class AliESDtrack;
25class AliEventplane;
26
27class AliEPSelectionTask : public AliAnalysisTaskSE {
28
29 public:
30
31 AliEPSelectionTask();
32 AliEPSelectionTask(const char *name);
33 virtual ~AliEPSelectionTask();
34
35 // Implementation of interface methods
36 virtual void UserCreateOutputObjects();
37 virtual void UserExec(Option_t *option);
38 virtual void Terminate(Option_t *option);
39
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);
44
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 SetESDtrackCuts(TString status);
52 void SetPhiDistribution(char* filename, char* listname);
53
54 private:
55
56 AliEPSelectionTask(const AliEPSelectionTask& ep);
57 AliEPSelectionTask& operator= (const AliEPSelectionTask& ep);
58
59 Int_t fDebug; // Debug flag
60 TString fAnalysisInput; // "ESD", "AOD"
61 TString fStatus; // "GLOBAL", "TPC"
62 Bool_t fUseMCRP; // i.e. usable for Therminator, when MC RP is provided
63 Bool_t fUsePhiWeight; // use of phi weights
64 Bool_t fUsePtWeight; // use of pT weights
65 Bool_t fSaveTrackContribution; // storage of contribution of each track to Q-Vector
66
67 AliESDtrackCuts* fESDtrackCuts;
68
69 TObjArray* ftracklist; // list of accepted tracks for Q-Vector
70 TH1F* fPhiDist; // Phi distribution used to calculate phi weights
71
72 TVector2* fQVector; // Q-Vector of the event
73 Double_t* fQContributionX; // array of the tracks' contributions to X component of Q-Vector - index = track ID
74 Double_t* fQContributionY; // array of the tracks' contributions to Y component of Q-Vector - index = track ID
75 Double_t fEventplaneQ; // Event plane angle from Q-Vector
76 TVector2* fQsub1; // Q-Vector of sub-event 1
77 TVector2* fQsub2; // Q-Vector of sub-event 2
78 Double_t fQsubRes; // Difference of EP angles of subevents
79
80 TList* fOutputList;
81 TH1F* fHOutEventplaneQ; // control histogram: Event Plane angle
82 TH1F* fHOutPhi; // control histogram: original phi distribution
83 TH1F* fHOutPhiCorr; // control histogram: corrected phi distribution
84 TH2F* fHOutsub1sub2; // control histogram: correlation of EP from subevents
85 TH2F* fHOutNTEPRes; // control histogram: Difference of EP angles of subevents vs Nch
86 TH2F* fHOutPTPsi; // control histogram: Difference of EP angle and emission angle of track vs track pT
87 TH2F* fHOutDiff; // control histogram: Difference of MC RP and EP - only filled if fUseMCRP is true!
88 TH2F* fHOutleadPTPsi; // control histogram: emission angle of leading pT track vs EP angle
89
90 ClassDef(AliEPSelectionTask,2);
91};
92
93#endif
94