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

#ifndef ALIANALYSISTASKMCEVENTPLANE_H
#define ALIANALYSISTASKMCEVENTPLANE_H

// AliAnalysisTaskMCEventPlane:
// analysis task for 
// Monte Carlo Event Plane
// Author: 
//        Naomi van der Kolk (kolk@nikhef.nl)

class AliFlowEventSimple;
class AliFlowAnalysisWithMCEventPlane;
class TList;

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

class AliAnalysisTaskMCEventPlane : public AliAnalysisTaskSE {
 public:

  AliAnalysisTaskMCEventPlane();
  AliAnalysisTaskMCEventPlane(const char *name);
  virtual ~AliAnalysisTaskMCEventPlane();
  
  virtual void   UserCreateOutputObjects();
  virtual void   UserExec(Option_t *option);
  virtual void   Terminate(Option_t *);
  
  void SetHarmonic(Int_t const harmonic) {this->fHarmonic = harmonic;};
  Int_t GetHarmonic() const {return this->fHarmonic;};
  
  // Objects needed for mixed harmonics study:
  void SetEvaluateMixedHarmonics(Bool_t const emh) {this->fEvaluateMixedHarmonics = emh;};
  Bool_t GetEvalauteMixedHarmonics() const {return this->fEvaluateMixedHarmonics;};
  void SetNinCorrelator(Int_t const n) {this->fNinCorrelator = n;};
  Int_t GetNinCorrelator() const {return this->fNinCorrelator;};     
  void SetMinCorrelator(Int_t const m) {this->fMinCorrelator = m;};
  Int_t GetMinCorrelator() const {return this->fMinCorrelator;};     
  void SetXinPairAngle(Double_t const xipa) {this->fXinPairAngle = xipa;};
  Double_t GetXinPairAngle() const {return this->fXinPairAngle;};       
  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;};     

 private:
 
  AliAnalysisTaskMCEventPlane(const AliAnalysisTaskMCEventPlane& aAnalysis);
  AliAnalysisTaskMCEventPlane& operator=(const AliAnalysisTaskMCEventPlane& aAnalysis);
  
  AliFlowEventSimple*               fEvent;      //input event
  AliFlowAnalysisWithMCEventPlane*  fMc;         // MC EP analysis object
  TList*                            fListHistos; // collection of output
  Int_t                             fHarmonic;   // harmonic 
  // Objects needed for mixed harmonics study:
  Bool_t fEvaluateMixedHarmonics; // evaluate and store objects relevant for mixed harmonics
  Int_t fnBinsMult; // number of multiplicity bins for mixed harmonics analysis versus multiplicity  
  Double_t fMinMult; // minimal multiplicity for mixed harmonics analysis versus multiplicity  
  Double_t fMaxMult; // maximal multiplicity for mixed harmonics analysis versus multiplicity    
  Int_t fNinCorrelator; // n in <cos[m*phi_{pair}-n*RP]> and <sin[m*phi_{pair}-n*RP]>, where phi_{pair} = x*phi1+(1-x)*phi2
  Int_t fMinCorrelator; // m in <cos[m*phi_{pair}-n*RP]> and <sin[m*phi_{pair}-n*RP]>, where phi_{pair} = x*phi1+(1-x)*phi2   
  Double_t fXinPairAngle; // x in definition phi_{pair} = x*phi1+(1-x)*phi2

  ClassDef(AliAnalysisTaskMCEventPlane, 1); // AliAnalysisTaskMCEventPlane class object
};

#endif

 AliAnalysisTaskMCEventPlane.h:1
 AliAnalysisTaskMCEventPlane.h:2
 AliAnalysisTaskMCEventPlane.h:3
 AliAnalysisTaskMCEventPlane.h:4
 AliAnalysisTaskMCEventPlane.h:5
 AliAnalysisTaskMCEventPlane.h:6
 AliAnalysisTaskMCEventPlane.h:7
 AliAnalysisTaskMCEventPlane.h:8
 AliAnalysisTaskMCEventPlane.h:9
 AliAnalysisTaskMCEventPlane.h:10
 AliAnalysisTaskMCEventPlane.h:11
 AliAnalysisTaskMCEventPlane.h:12
 AliAnalysisTaskMCEventPlane.h:13
 AliAnalysisTaskMCEventPlane.h:14
 AliAnalysisTaskMCEventPlane.h:15
 AliAnalysisTaskMCEventPlane.h:16
 AliAnalysisTaskMCEventPlane.h:17
 AliAnalysisTaskMCEventPlane.h:18
 AliAnalysisTaskMCEventPlane.h:19
 AliAnalysisTaskMCEventPlane.h:20
 AliAnalysisTaskMCEventPlane.h:21
 AliAnalysisTaskMCEventPlane.h:22
 AliAnalysisTaskMCEventPlane.h:23
 AliAnalysisTaskMCEventPlane.h:24
 AliAnalysisTaskMCEventPlane.h:25
 AliAnalysisTaskMCEventPlane.h:26
 AliAnalysisTaskMCEventPlane.h:27
 AliAnalysisTaskMCEventPlane.h:28
 AliAnalysisTaskMCEventPlane.h:29
 AliAnalysisTaskMCEventPlane.h:30
 AliAnalysisTaskMCEventPlane.h:31
 AliAnalysisTaskMCEventPlane.h:32
 AliAnalysisTaskMCEventPlane.h:33
 AliAnalysisTaskMCEventPlane.h:34
 AliAnalysisTaskMCEventPlane.h:35
 AliAnalysisTaskMCEventPlane.h:36
 AliAnalysisTaskMCEventPlane.h:37
 AliAnalysisTaskMCEventPlane.h:38
 AliAnalysisTaskMCEventPlane.h:39
 AliAnalysisTaskMCEventPlane.h:40
 AliAnalysisTaskMCEventPlane.h:41
 AliAnalysisTaskMCEventPlane.h:42
 AliAnalysisTaskMCEventPlane.h:43
 AliAnalysisTaskMCEventPlane.h:44
 AliAnalysisTaskMCEventPlane.h:45
 AliAnalysisTaskMCEventPlane.h:46
 AliAnalysisTaskMCEventPlane.h:47
 AliAnalysisTaskMCEventPlane.h:48
 AliAnalysisTaskMCEventPlane.h:49
 AliAnalysisTaskMCEventPlane.h:50
 AliAnalysisTaskMCEventPlane.h:51
 AliAnalysisTaskMCEventPlane.h:52
 AliAnalysisTaskMCEventPlane.h:53
 AliAnalysisTaskMCEventPlane.h:54
 AliAnalysisTaskMCEventPlane.h:55
 AliAnalysisTaskMCEventPlane.h:56
 AliAnalysisTaskMCEventPlane.h:57
 AliAnalysisTaskMCEventPlane.h:58
 AliAnalysisTaskMCEventPlane.h:59
 AliAnalysisTaskMCEventPlane.h:60
 AliAnalysisTaskMCEventPlane.h:61
 AliAnalysisTaskMCEventPlane.h:62
 AliAnalysisTaskMCEventPlane.h:63
 AliAnalysisTaskMCEventPlane.h:64
 AliAnalysisTaskMCEventPlane.h:65
 AliAnalysisTaskMCEventPlane.h:66
 AliAnalysisTaskMCEventPlane.h:67
 AliAnalysisTaskMCEventPlane.h:68
 AliAnalysisTaskMCEventPlane.h:69
 AliAnalysisTaskMCEventPlane.h:70
 AliAnalysisTaskMCEventPlane.h:71
 AliAnalysisTaskMCEventPlane.h:72
 AliAnalysisTaskMCEventPlane.h:73