]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FLOW/AliFlowTasks/AliAnalysisTaskNestedLoops.h
rulechecker
[u/mrichter/AliRoot.git] / PWG2 / FLOW / AliFlowTasks / AliAnalysisTaskNestedLoops.h
1 /* 
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. 
3  * See cxx source for full Copyright notice 
4  * $Id$ 
5  */
6
7 /**********************************
8  * analysis task for nested loops * 
9  *                                * 
10  * authors: Naomi van der Kolk    *
11  *           (kolk@nikhef.nl)     *  
12  *          Raimond Snellings     *
13  *           (snelling@nikhef.nl) * 
14  *          Ante Bilandzic        *
15  *           (anteb@nikhef.nl)    * 
16  * *******************************/
17
18 #ifndef ALIANALYSISTASKNESTEDLOOPS_H
19 #define ALIANALYSISTASKNESTEDLOOPS_H
20
21 #include "TString.h"
22 #include "AliAnalysisTaskSE.h"
23
24 class TString;
25 class TList;
26 class AliFlowEventSimple;
27 class AliFlowAnalysisWithNestedLoops;
28
29 //================================================================================================================
30
31 class AliAnalysisTaskNestedLoops : public AliAnalysisTaskSE{
32  public:
33   AliAnalysisTaskNestedLoops();
34   AliAnalysisTaskNestedLoops(const char *name, Bool_t useParticleWeights=kFALSE);
35   virtual ~AliAnalysisTaskNestedLoops(){}; 
36   
37   virtual void UserCreateOutputObjects();
38   virtual void UserExec(Option_t *option);
39   virtual void Terminate(Option_t *);
40   
41   // Setters and getters:
42   // 0.) Common:
43   void SetHarmonic(Int_t const h) {this->fHarmonic = h;};
44   Int_t GetHarmonic() const {return this->fHarmonic;}; 
45   void SetOppositeChargesPOI(Bool_t const ocp) {this->fOppositeChargesPOI = ocp;};
46   Bool_t GetOppositeChargesPOI() const {return this->fOppositeChargesPOI;}; 
47   void SetEvaluateDifferential3pCorrelator(Bool_t const ed3pc) {this->fEvaluateDifferential3pCorrelator = ed3pc;};
48   Bool_t GetEvaluateDifferential3pCorrelator() const {return this->fEvaluateDifferential3pCorrelator;};       
49   // 1.) Particle weights:
50   void SetUsePhiWeights(Bool_t const uPhiW) {this->fUsePhiWeights = uPhiW;};
51   Bool_t GetUsePhiWeights() const {return this->fUsePhiWeights;};
52   void SetUsePtWeights(Bool_t const uPtW) {this->fUsePtWeights = uPtW;};
53   Bool_t GetUsePtWeights() const {return this->fUsePtWeights;};
54   void SetUseEtaWeights(Bool_t const uEtaW) {this->fUseEtaWeights = uEtaW;};
55   Bool_t GetUseEtaWeights() const {return this->fUseEtaWeights;};
56   // 2.) Nested loops for relative angle distribution (RAD): 
57   void SetEvaluateNestedLoopsForRAD(Bool_t const enlfRAD) {this->fEvaluateNestedLoopsForRAD = enlfRAD;};
58   Bool_t GetEvaluateNestedLoopsForRAD() const {return this->fEvaluateNestedLoopsForRAD;};
59   // 3.) Debugging and cross-checking Q-cumulants:
60   void SetEvaluateNestedLoopsForQC(Bool_t const enlfQC) {this->fEvaluateNestedLoopsForQC = enlfQC;};
61   Bool_t GetEvaluateNestedLoopsForQC() const {return this->fEvaluateNestedLoopsForQC;};
62   // 4.) Debugging and cross-checking mixed harmonics:
63   void SetEvaluateNestedLoopsForMH(Bool_t const enlfMH) {this->fEvaluateNestedLoopsForMH = enlfMH;};
64   Bool_t GetEvaluateNestedLoopsForMH() const {return this->fEvaluateNestedLoopsForMH;};
65  
66  private:
67   AliAnalysisTaskNestedLoops(const AliAnalysisTaskNestedLoops& aatmh);
68   AliAnalysisTaskNestedLoops& operator=(const AliAnalysisTaskNestedLoops& aatmh);
69   
70   AliFlowEventSimple *fEvent; // the input event
71   AliFlowAnalysisWithNestedLoops *fNL; // nested loops object
72   TList *fListHistos; // collection of output 
73   Int_t fHarmonic; // integer n in correlators  
74   Bool_t fOppositeChargesPOI; // two POIs, psi1 and psi2, in correlator <<cos[psi1+psi2-2phi3)]>> will be taken with opposite charges 
75   Bool_t fEvaluateDifferential3pCorrelator; // evaluate <<cos[psi1+psi2-2phi3)]>>, where psi1 and psi2 are two POIs      
76   // Particle weights:
77   Bool_t fUseParticleWeights; // use any particle weights
78   Bool_t fUsePhiWeights; // use phi weights
79   Bool_t fUsePtWeights; // use pt weights
80   Bool_t fUseEtaWeights; // use eta weights  
81   TList *fWeightsList; // list with weights
82   // Nested loops for relative angle distribution (RAD):
83   Bool_t fEvaluateNestedLoopsForRAD; // evaluate nested loops for relative angle distribution (RAD)
84   // Debugging and cross-checking Q-cumulants:
85   Bool_t fEvaluateNestedLoopsForQC; // evaluate nested loops for Q-cumulants
86   // Debugging and cross-checking mixed harmonics:
87   Bool_t fEvaluateNestedLoopsForMH; // evaluate nested loops for mixed harmonics
88   
89   ClassDef(AliAnalysisTaskNestedLoops, 1); 
90 };
91
92 //================================================================================================================
93
94 #endif
95
96
97
98
99
100
101
102
103
104
105