ROOT logo
/* 
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. 
 * See cxx source for full Copyright notice 
 * $Id$ 
 */

/**************************************
 * analysis task for cumulant method  * 
 *                                    * 
 * authors: Naomi van der Kolk        *
 *           (kolk@nikhef.nl)         *  
 *          Raimond Snellings         *
 *           (snelling@nikhef.nl)     * 
 *          Ante Bilandzic            *
 *           (anteb@nikhef.nl)        * 
 * ***********************************/

#ifndef ALIANALYSISTASKCUMULANTS_H
#define ALIANALYSISTASKCUMULANTS_H

#include "TString.h"
#include "AliAnalysisTaskSE.h"

class TList;
class AliFlowEventSimple;
class AliFlowAnalysisWithCumulants;

//================================================================================================================

class AliAnalysisTaskCumulants : public AliAnalysisTaskSE{
 public:
  AliAnalysisTaskCumulants();
  AliAnalysisTaskCumulants(const char *name, Bool_t useWeights=kFALSE);
  virtual ~AliAnalysisTaskCumulants(){}; 
  virtual void UserCreateOutputObjects();
  virtual void UserExec(Option_t *option);
  virtual void Terminate(Option_t *);
  // setters and getters:
  void SetHarmonic(Int_t const harmonic) {this->fHarmonic = harmonic;};
  Int_t GetHarmonic() const {return this->fHarmonic;};   
  void SetMultiple(Int_t const multiple) {this->fMultiple = multiple;};
  Int_t GetMultiple() const {return this->fMultiple;};    
  void SetCalculateVsMultiplicity(Bool_t const ecvm) {this->fCalculateVsMultiplicity = ecvm;};
  Bool_t GetCalculateVsMultiplicity() const {return this->fCalculateVsMultiplicity;};  
  void SetnBinsMult(Int_t const nbm) {this->fnBinsMult = nbm;};
  Int_t GetnBinsMult() const {return this->fnBinsMult;};  
  void SetMinMult(Double_t const minm) {this->fMinMult = minm;};
  Double_t GetMinMult() const {return this->fMinMult;};
  void SetMaxMult(Double_t const maxm) {this->fMaxMult = maxm;};
  Double_t GetMaxMult() const {return this->fMaxMult;};
  void SetUsePhiWeights(Bool_t const uPhiW) {this->fUsePhiWeights = uPhiW;};
  Bool_t GetUsePhiWeights() const {return this->fUsePhiWeights;};
  void SetUsePtWeights(Bool_t const uPtW) {this->fUsePtWeights = uPtW;};
  Bool_t GetUsePtWeights() const {return this->fUsePtWeights;};
  void SetUseEtaWeights(Bool_t const uEtaW) {this->fUseEtaWeights = uEtaW;};
  Bool_t GetUseEtaWeights() const {return this->fUseEtaWeights;}; 
  void SetTuneParameters(Bool_t const tp) {this->fTuneParameters = tp;};
  Bool_t GetTuneParameters() const {return this->fTuneParameters;};  
  void SetTuningR0(Double_t const tr0, Int_t const r) {this->fTuningR0[r] = tr0;};
  Double_t GetTuningR0(Int_t const r) const {return this->fTuningR0[r];};

 private:
  AliAnalysisTaskCumulants(const AliAnalysisTaskCumulants& aatc);
  AliAnalysisTaskCumulants& operator=(const AliAnalysisTaskCumulants& aatc);
  AliFlowEventSimple *fEvent;         // the input event
  AliFlowAnalysisWithCumulants *fGFC; // Generating Function Cumulant object
  TList *fListHistos;                 // collection of output 
  // common:
  Int_t fHarmonic;                    // harmonic  
  Int_t fMultiple;                    // the multiple m in p=m*n, where n is harmonic (relevant for differential flow)   
  // cumulants vs multiplicity:
  Bool_t fCalculateVsMultiplicity;    // perform flow analysis independently for each multiplicity bin 
  Int_t fnBinsMult;                   // number of multiplicity bins for flow analysis versus multiplicity  
  Double_t fMinMult;                  // minimal multiplicity for flow analysis versus multiplicity  
  Double_t fMaxMult;                  // maximal multiplicity for flow analysis versus multiplicity    
  // particle weights:  
  Bool_t fUseWeights;                 // use any weights
  Bool_t fUsePhiWeights;              // use phi weights
  Bool_t fUsePtWeights;               // use pt weights
  Bool_t fUseEtaWeights;              // use eta weights  
  TList *fWeightsList;                // list with weights
  // tuning:
  Bool_t fTuneParameters;             // tune r0 and cut series at different order
  Double_t fTuningR0[10];             // different r0 values (at maximum 10 different values allowed)
           
  ClassDef(AliAnalysisTaskCumulants, 1); 
};

//================================================================================================================

#endif











 AliAnalysisTaskCumulants.h:1
 AliAnalysisTaskCumulants.h:2
 AliAnalysisTaskCumulants.h:3
 AliAnalysisTaskCumulants.h:4
 AliAnalysisTaskCumulants.h:5
 AliAnalysisTaskCumulants.h:6
 AliAnalysisTaskCumulants.h:7
 AliAnalysisTaskCumulants.h:8
 AliAnalysisTaskCumulants.h:9
 AliAnalysisTaskCumulants.h:10
 AliAnalysisTaskCumulants.h:11
 AliAnalysisTaskCumulants.h:12
 AliAnalysisTaskCumulants.h:13
 AliAnalysisTaskCumulants.h:14
 AliAnalysisTaskCumulants.h:15
 AliAnalysisTaskCumulants.h:16
 AliAnalysisTaskCumulants.h:17
 AliAnalysisTaskCumulants.h:18
 AliAnalysisTaskCumulants.h:19
 AliAnalysisTaskCumulants.h:20
 AliAnalysisTaskCumulants.h:21
 AliAnalysisTaskCumulants.h:22
 AliAnalysisTaskCumulants.h:23
 AliAnalysisTaskCumulants.h:24
 AliAnalysisTaskCumulants.h:25
 AliAnalysisTaskCumulants.h:26
 AliAnalysisTaskCumulants.h:27
 AliAnalysisTaskCumulants.h:28
 AliAnalysisTaskCumulants.h:29
 AliAnalysisTaskCumulants.h:30
 AliAnalysisTaskCumulants.h:31
 AliAnalysisTaskCumulants.h:32
 AliAnalysisTaskCumulants.h:33
 AliAnalysisTaskCumulants.h:34
 AliAnalysisTaskCumulants.h:35
 AliAnalysisTaskCumulants.h:36
 AliAnalysisTaskCumulants.h:37
 AliAnalysisTaskCumulants.h:38
 AliAnalysisTaskCumulants.h:39
 AliAnalysisTaskCumulants.h:40
 AliAnalysisTaskCumulants.h:41
 AliAnalysisTaskCumulants.h:42
 AliAnalysisTaskCumulants.h:43
 AliAnalysisTaskCumulants.h:44
 AliAnalysisTaskCumulants.h:45
 AliAnalysisTaskCumulants.h:46
 AliAnalysisTaskCumulants.h:47
 AliAnalysisTaskCumulants.h:48
 AliAnalysisTaskCumulants.h:49
 AliAnalysisTaskCumulants.h:50
 AliAnalysisTaskCumulants.h:51
 AliAnalysisTaskCumulants.h:52
 AliAnalysisTaskCumulants.h:53
 AliAnalysisTaskCumulants.h:54
 AliAnalysisTaskCumulants.h:55
 AliAnalysisTaskCumulants.h:56
 AliAnalysisTaskCumulants.h:57
 AliAnalysisTaskCumulants.h:58
 AliAnalysisTaskCumulants.h:59
 AliAnalysisTaskCumulants.h:60
 AliAnalysisTaskCumulants.h:61
 AliAnalysisTaskCumulants.h:62
 AliAnalysisTaskCumulants.h:63
 AliAnalysisTaskCumulants.h:64
 AliAnalysisTaskCumulants.h:65
 AliAnalysisTaskCumulants.h:66
 AliAnalysisTaskCumulants.h:67
 AliAnalysisTaskCumulants.h:68
 AliAnalysisTaskCumulants.h:69
 AliAnalysisTaskCumulants.h:70
 AliAnalysisTaskCumulants.h:71
 AliAnalysisTaskCumulants.h:72
 AliAnalysisTaskCumulants.h:73
 AliAnalysisTaskCumulants.h:74
 AliAnalysisTaskCumulants.h:75
 AliAnalysisTaskCumulants.h:76
 AliAnalysisTaskCumulants.h:77
 AliAnalysisTaskCumulants.h:78
 AliAnalysisTaskCumulants.h:79
 AliAnalysisTaskCumulants.h:80
 AliAnalysisTaskCumulants.h:81
 AliAnalysisTaskCumulants.h:82
 AliAnalysisTaskCumulants.h:83
 AliAnalysisTaskCumulants.h:84
 AliAnalysisTaskCumulants.h:85
 AliAnalysisTaskCumulants.h:86
 AliAnalysisTaskCumulants.h:87
 AliAnalysisTaskCumulants.h:88
 AliAnalysisTaskCumulants.h:89
 AliAnalysisTaskCumulants.h:90
 AliAnalysisTaskCumulants.h:91
 AliAnalysisTaskCumulants.h:92
 AliAnalysisTaskCumulants.h:93
 AliAnalysisTaskCumulants.h:94
 AliAnalysisTaskCumulants.h:95
 AliAnalysisTaskCumulants.h:96
 AliAnalysisTaskCumulants.h:97
 AliAnalysisTaskCumulants.h:98
 AliAnalysisTaskCumulants.h:99
 AliAnalysisTaskCumulants.h:100
 AliAnalysisTaskCumulants.h:101
 AliAnalysisTaskCumulants.h:102