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

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

#ifndef ALIANALYSISTASKMIXEDHARMONICS_H
#define ALIANALYSISTASKMIXEDHARMONICS_H


#include "AliAnalysisTaskSE.h"

class TString;
class TList;
class AliFlowEventSimple;
class AliFlowAnalysisWithMixedHarmonics;

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

class AliAnalysisTaskMixedHarmonics : public AliAnalysisTaskSE{
 public:
  AliAnalysisTaskMixedHarmonics();
  AliAnalysisTaskMixedHarmonics(const char *name, Bool_t useParticleWeights=kFALSE);
  virtual ~AliAnalysisTaskMixedHarmonics(){}; 
  
  virtual void   UserCreateOutputObjects();
  virtual void   UserExec(Option_t *option);
  virtual void   Terminate(Option_t *);
  
  // common:
  void SetHarmonic(Int_t const h) {this->fHarmonic = h;};
  Int_t GetHarmonic() const {return this->fHarmonic;}; 
  void SetNoOfMultipicityBins(Int_t const nomb) {this->fNoOfMultipicityBins = nomb;};
  Int_t GetNoOfMultipicityBins() const {return this->fNoOfMultipicityBins;};   
  void SetMultipicityBinWidth(Double_t const mbw) {this->fMultipicityBinWidth = mbw;};
  Double_t GetMultipicityBinWidth() const {return this->fMultipicityBinWidth;};   
  void SetMinMultiplicity(Double_t const mm) {this->fMinMultiplicity = mm;};
  Double_t GetMinMultiplicity() const {return this->fMinMultiplicity;}; 
  void SetOppositeChargesPOI(Bool_t const ocp) {this->fOppositeChargesPOI = ocp;};
  Bool_t GetOppositeChargesPOI() const {return this->fOppositeChargesPOI;}; 
  void SetEvaluateDifferential3pCorrelator(Bool_t const ed3pc) {this->fEvaluateDifferential3pCorrelator = ed3pc;};
  Bool_t GetEvaluateDifferential3pCorrelator() const {return this->fEvaluateDifferential3pCorrelator;};       
  void SetCorrectForDetectorEffects(Bool_t const cfde) {this->fCorrectForDetectorEffects = cfde;};
  Bool_t GetCorrectForDetectorEffects() const {return this->fCorrectForDetectorEffects;}; 
  void SetPrintOnTheScreen(Bool_t const pots) {this->fPrintOnTheScreen = pots;};
  Bool_t GetPrintOnTheScreen() const {return this->fPrintOnTheScreen;};  
  void SetCalculateVsM(Bool_t const cvm) {this->fCalculateVsM = cvm;};
  Bool_t GetCalculateVsM() const {return this->fCalculateVsM;};  
  void SetShowBinLabelsVsM(Bool_t const sblvm) {this->fShowBinLabelsVsM = sblvm;};
  Bool_t GetShowBinLabelsVsM() const {return this->fShowBinLabelsVsM;};     
  // particle weights:
  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;};
 
 private:
  AliAnalysisTaskMixedHarmonics(const AliAnalysisTaskMixedHarmonics& aatmh);
  AliAnalysisTaskMixedHarmonics& operator=(const AliAnalysisTaskMixedHarmonics& aatmh);
  
  AliFlowEventSimple *fEvent; // the input event
  AliFlowAnalysisWithMixedHarmonics *fMH; // mixed harmonics object
  TList *fListHistos; // collection of output 
  // common:  
  Int_t fHarmonic; // integer n in cos[n(phi1+phi2-2phi3)]
  Int_t fNoOfMultipicityBins; // number of multiplicity bins
  Double_t fMultipicityBinWidth; // width of multiplicity bin
  Double_t fMinMultiplicity; // minimal multiplicity
  Bool_t fOppositeChargesPOI; // two POIs, psi1 and psi2, in correlator <<cos[psi1+psi2-2phi3)]>> will be taken with opposite charges 
  Bool_t fEvaluateDifferential3pCorrelator; // evaluate <<cos[psi1+psi2-2phi3)]>>, where psi1 and psi2 are two POIs      
  Bool_t fCorrectForDetectorEffects; // correct 3-p correlator for detector effects  
  Bool_t fPrintOnTheScreen; // print or not the final results on the screen
  Bool_t fCalculateVsM; // calculate correlators vs multiplicity
  Bool_t fShowBinLabelsVsM; // in histograms holding results vs multiplicity show bin labels in the format M_lowEdge \leq M < M_upperEdge  
  // particle weights:
  Bool_t fUseParticleWeights; // use any particle weights
  Bool_t fUsePhiWeights; // use phi weights
  Bool_t fUsePtWeights; // use pt weights
  Bool_t fUseEtaWeights; // use eta weights  
  TList *fWeightsList; // list with weights
  
  ClassDef(AliAnalysisTaskMixedHarmonics, 1); 
};

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

#endif











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