2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved.
3 * See cxx source for full Copyright notice
7 /**********************************
8 * analysis task for nested loops *
10 * authors: Naomi van der Kolk *
13 * (snelling@nikhef.nl) *
16 * *******************************/
18 #ifndef ALIANALYSISTASKNESTEDLOOPS_H
19 #define ALIANALYSISTASKNESTEDLOOPS_H
22 #include "AliAnalysisTaskSE.h"
25 class AliFlowEventSimple;
26 class AliFlowAnalysisWithNestedLoops;
28 //================================================================================================================
30 class AliAnalysisTaskNestedLoops : public AliAnalysisTaskSE{
32 AliAnalysisTaskNestedLoops();
33 AliAnalysisTaskNestedLoops(const char *name, Bool_t useParticleWeights=kFALSE);
34 virtual ~AliAnalysisTaskNestedLoops(){};
36 virtual void UserCreateOutputObjects();
37 virtual void UserExec(Option_t *option);
38 virtual void Terminate(Option_t *);
40 // Setters and getters:
42 void SetHarmonic(Int_t const h) {this->fHarmonic = h;};
43 Int_t GetHarmonic() const {return this->fHarmonic;};
44 void SetOppositeChargesPOI(Bool_t const ocp) {this->fOppositeChargesPOI = ocp;};
45 Bool_t GetOppositeChargesPOI() const {return this->fOppositeChargesPOI;};
46 void SetEvaluateDifferential3pCorrelator(Bool_t const ed3pc) {this->fEvaluateDifferential3pCorrelator = ed3pc;};
47 Bool_t GetEvaluateDifferential3pCorrelator() const {return this->fEvaluateDifferential3pCorrelator;};
48 // 1.) Particle weights:
49 void SetUsePhiWeights(Bool_t const uPhiW) {this->fUsePhiWeights = uPhiW;};
50 Bool_t GetUsePhiWeights() const {return this->fUsePhiWeights;};
51 void SetUsePtWeights(Bool_t const uPtW) {this->fUsePtWeights = uPtW;};
52 Bool_t GetUsePtWeights() const {return this->fUsePtWeights;};
53 void SetUseEtaWeights(Bool_t const uEtaW) {this->fUseEtaWeights = uEtaW;};
54 Bool_t GetUseEtaWeights() const {return this->fUseEtaWeights;};
55 // 2.) Nested loops for relative angle distribution (RAD):
56 void SetEvaluateNestedLoopsForRAD(Bool_t const enlfRAD) {this->fEvaluateNestedLoopsForRAD = enlfRAD;};
57 Bool_t GetEvaluateNestedLoopsForRAD() const {return this->fEvaluateNestedLoopsForRAD;};
58 // 3.) Debugging and cross-checking Q-cumulants:
59 void SetEvaluateNestedLoopsForQC(Bool_t const enlfQC) {this->fEvaluateNestedLoopsForQC = enlfQC;};
60 Bool_t GetEvaluateNestedLoopsForQC() const {return this->fEvaluateNestedLoopsForQC;};
61 // 4.) Debugging and cross-checking mixed harmonics:
62 void SetEvaluateNestedLoopsForMH(Bool_t const enlfMH) {this->fEvaluateNestedLoopsForMH = enlfMH;};
63 Bool_t GetEvaluateNestedLoopsForMH() const {return this->fEvaluateNestedLoopsForMH;};
66 AliAnalysisTaskNestedLoops(const AliAnalysisTaskNestedLoops& aatmh);
67 AliAnalysisTaskNestedLoops& operator=(const AliAnalysisTaskNestedLoops& aatmh);
69 AliFlowEventSimple *fEvent; // the input event
70 AliFlowAnalysisWithNestedLoops *fNL; // nested loops object
71 TList *fListHistos; // collection of output
72 Int_t fHarmonic; // integer n in correlators
73 Bool_t fOppositeChargesPOI; // two POIs, psi1 and psi2, in correlator <<cos[psi1+psi2-2phi3)]>> will be taken with opposite charges
74 Bool_t fEvaluateDifferential3pCorrelator; // evaluate <<cos[psi1+psi2-2phi3)]>>, where psi1 and psi2 are two POIs
76 Bool_t fUseParticleWeights; // use any particle weights
77 Bool_t fUsePhiWeights; // use phi weights
78 Bool_t fUsePtWeights; // use pt weights
79 Bool_t fUseEtaWeights; // use eta weights
80 TList *fWeightsList; // list with weights
81 // Nested loops for relative angle distribution (RAD):
82 Bool_t fEvaluateNestedLoopsForRAD; // evaluate nested loops for relative angle distribution (RAD)
83 // Debugging and cross-checking Q-cumulants:
84 Bool_t fEvaluateNestedLoopsForQC; // evaluate nested loops for Q-cumulants
85 // Debugging and cross-checking mixed harmonics:
86 Bool_t fEvaluateNestedLoopsForMH; // evaluate nested loops for mixed harmonics
88 ClassDef(AliAnalysisTaskNestedLoops, 1);
91 //================================================================================================================