]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FLOW/AliFlowTasks/AliAnalysisTaskFlowEventforRP.h
preliminary version of event plane estimate for AOD (fix for double angle will come...
[u/mrichter/AliRoot.git] / PWG2 / FLOW / AliFlowTasks / AliAnalysisTaskFlowEventforRP.h
1 /////////////////////////////////////////////////////
2 // AliAnalysisTaskFlowEventfoRP:
3 // analysis task to fill the flow event 
4 // and calculate the ReactionPlane for the AODheader
5 //////////////////////////////////////////////////////
6
7 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
8 * See cxx source for full Copyright notice */
9 /* $Id: $ */
10
11 #ifndef AliAnalysisTaskFlowEventforRP_H
12 #define AliAnalysisTaskFlowEventforRP_H
13
14 class AliESDEvent;
15 class AliAODEvent;
16 class AliCFManager;
17 class AliFlowEventSimpleMaker;
18 class TList;
19 class TRandom3;
20
21 #include "TString.h"
22 #include "AliAnalysisTaskSE.h"
23
24 class AliAnalysisTaskFlowEventforRP : public AliAnalysisTaskSE {
25  public:
26   AliAnalysisTaskFlowEventforRP();
27   AliAnalysisTaskFlowEventforRP(const char *name,Bool_t QAon);
28   AliAnalysisTaskFlowEventforRP(const char *name,Bool_t QAon,UInt_t);
29   virtual ~AliAnalysisTaskFlowEventforRP();
30   
31   //virtual void   ConnectInputData(Option_t *);
32   virtual void   UserCreateOutputObjects();
33   virtual void   UserExec(Option_t *option);
34   virtual void   Terminate(Option_t *);
35
36   void SetAnalysisType(TString type) { this->fAnalysisType = type; }
37   TString GetAnalysisType() const    { return this->fAnalysisType; }
38
39   void    SetMinMult(Int_t multmin)    {this->fMinMult = multmin; }
40   Int_t   GetMinMult() const           {return this->fMinMult; }
41   void    SetMaxMult(Int_t multmax)    {this->fMaxMult = multmax; }
42   Int_t   GetMaxMult() const           {return this->fMaxMult; }
43   
44
45   void          SetCFManager1(AliCFManager* cfmgr) {this->fCFManager1 = cfmgr; } 
46   AliCFManager* GetCFManager1()           {return this->fCFManager1; }
47   void          SetCFManager2(AliCFManager* cfmgr) {this->fCFManager2 = cfmgr; } 
48   AliCFManager* GetCFManager2()           {return this->fCFManager2; }
49   void          SetQAList1(TList* list)   {this->fQAInt = list; }
50   TList*        GetQAList1()              {return this->fQAInt; }
51   void          SetQAList2(TList* list)   {this->fQADiff = list; }
52   TList*        GetQAList2()              {return this->fQADiff; }
53   void          SetQAOn(Bool_t kt)        {this->fQA = kt; }
54   Bool_t        GetQAOn()                 {return this->fQA; }
55   //setters for adding by hand flow values (afterburner)
56   void SetMCReactionPlaneAngle(Double_t fPhiRP)  { this->fMCReactionPlaneAngle = fPhiRP; }
57   void SetNoOfLoops(Int_t noofl) {this->fNoOfLoops = noofl;}
58   Int_t GetNoOfLoops() const {return this->fNoOfLoops;} 
59   void SetEllipticFlowValue(Double_t elfv) {this->fEllipticFlowValue = elfv;}
60   Double_t GetEllipticFlowValue() const {return this->fEllipticFlowValue;} 
61   void SetSigmaEllipticFlowValue(Double_t sigelfv) {this->fSigmaEllipticFlowValue = sigelfv;}
62   Double_t GetSigmaEllipticFlowValue() const {return this->fSigmaEllipticFlowValue;} 
63   void SetMultiplicityOfEvent(Int_t multevnt) {this->fMultiplicityOfEvent = multevnt;}
64   Int_t GetMultiplicityOfEvent() const {return this->fMultiplicityOfEvent;} 
65   void SetSigmaMultiplicityOfEvent(Int_t sigmultevnt) {this->fSigmaMultiplicityOfEvent = sigmultevnt;}
66   Int_t GetSigmaMultiplicityOfEvent() const {return this->fSigmaMultiplicityOfEvent;} 
67   //end setters afterburner
68
69  private:
70
71   AliAnalysisTaskFlowEventforRP(const AliAnalysisTaskFlowEventforRP& aAnalysisTask);
72   AliAnalysisTaskFlowEventforRP& operator=(const AliAnalysisTaskFlowEventforRP& aAnalysisTask); 
73
74   //  TFile*        fOutputFile;              // temporary output file for testing
75   //AliESDEvent*  fESD;                     // ESD object
76   //AliAODEvent*  fAOD;                     // AOD object
77   AliFlowEventSimpleMaker* fEventMaker;   // FlowEventSimple maker object
78   TString       fAnalysisType;            // can be MC, ESD or AOD
79   AliCFManager* fCFManager1;              // correction framework manager
80   AliCFManager* fCFManager2;              // correction framework manager
81   TList*        fQAInt;                   // QA histogram list
82   TList*        fQADiff;                  // QA histogram list
83   Int_t         fMinMult;                 // Minimum multiplicity from tracks selected using CORRFW
84   Int_t         fMaxMult;                 // Maximum multiplicity from tracks selected using CORRFW 
85   Bool_t fQA;                             // flag to set the filling of the QA hostograms
86   // values afterburner
87   Double_t  fMCReactionPlaneAngle;   // the angle of the reaction plane from the MC truth
88   Int_t     fCount;   // counter for the number of events processed
89   Int_t     fNoOfLoops; // number of times to use the same particle (nonflow) 
90   Double_t  fEllipticFlowValue; // Add Flow. Must be in range [0,1].
91   Double_t  fSigmaEllipticFlowValue; // Sigma Flow (Gaussian). Must be in range [0,1].
92   Int_t     fMultiplicityOfEvent; // Set maximal multiplicity.
93   Int_t     fSigmaMultiplicityOfEvent; // Sigma multiplicity (Gaussian).
94     
95   TRandom3* fMyTRandom3; // our TRandom3 generator
96   // end afterburner
97   
98   ClassDef(AliAnalysisTaskFlowEventforRP, 1); // example of analysis
99 };
100
101 #endif
102