ROOT logo
#ifndef ALIEVENTPLANERESOLUTIONHANDLER_H
#define ALIEVENTPLANERESOLUTIONHANDLER_H


/* $Id$ */

///////////////////////////////////////////////////////////////////
//                                                               //
// Class to compute event plane resolution starting from root    //
// file with event plane correlation histos                      //
// Origin: F.Prino, Torino, prino@to.infn.it                     //
//                                                               //
///////////////////////////////////////////////////////////////////

#include "TObject.h"

class TFile;
class TH1F;

class AliEventPlaneResolutionHandler : public TObject{
 public:
  AliEventPlaneResolutionHandler();
  AliEventPlaneResolutionHandler(TString filename);
  virtual ~AliEventPlaneResolutionHandler(){};

  void SetCentralityRange(Double_t minC, Double_t maxC){
    fMinCent=minC;
    fMaxCent=maxC;
  }
  void SetUseNoWeights(){fWeight=0;}
  void SetUseNcollWeights(){fWeight=1;}
  void SetUseLowPtDYieldWeights(){fWeight=2;}
  void SetUseMidPtDYieldWeights(){fWeight=3;}
  void SetUseHighPtDYieldWeights(){fWeight=4;}
  void SetEventPlane(Int_t ep){fEventPlane=ep;}
  void SetTPCFullEtaEventPlane(){fEventPlane=kTPCFullEta;}
  void SetTPCPositiveEtaEventPlane(){fEventPlane=kTPCPosEta;}
  void SetVZEROFullEventPlane(){fEventPlane=kVZERO;}
  void SetVZEROAEventPlane(){fEventPlane=kVZEROA;}
  void SetVZEROCEventPlane(){fEventPlane=kVZEROC;}

  void SetResolutionOption(Int_t res){fResolOption=res;}
  void SetResolutionFromTwoRandomSubevents(){fResolOption=kTwoRandSub;}
  void SetResolutionFromTwoChargeSubevents(){fResolOption=kTwoChargeSub;}
  void SetResolutionFromTwoEtaSubevents(){fResolOption=kTwoEtaSub;}
  void SetResolutionFromThreeSubevents(){fResolOption=kThreeSub;}
  void SetResolutionFromThreeSubeventsTPCGap(){fResolOption=kThreeSubTPCGap;}

  Double_t GetEventPlaneResolution(){
    return GetEventPlaneResolution(fMinCent,fMaxCent);
  }
  Double_t GetEventPlaneResolution(Double_t minCent, Double_t maxCent);

  TH1F* GetSubEvABCorrelHisto() const{
    return fHistoAB;
  }
  TH1F* GetSubEvBCCorrelHisto() const{
    return fHistoBC;
  }
  TH1F* GetSubEvACCorrelHisto() const{
    return fHistoAC;
  }


  enum EEventPlane {kTPCFullEta, kTPCPosEta,kVZERO,kVZEROA,kVZEROC};
  enum EResolOption {kTwoRandSub,kTwoChargeSub,kTwoEtaSub,kThreeSub,kThreeSubTPCGap};

 private:
  Bool_t SetHistoNames();
  void InitializeWeights();
  AliEventPlaneResolutionHandler(const AliEventPlaneResolutionHandler &source);
  AliEventPlaneResolutionHandler& operator=(const AliEventPlaneResolutionHandler& source); 
 


  Int_t    fEventPlane;      // event plane determination (see enum)
  Int_t    fResolOption;     // option to get the resolution (see enum)
  Double_t fMinCent;         // minimum centrality
  Double_t fMaxCent;         // maximum centrality
  TString  fCorrHistoName1;  // name of 1st histogram
  TString  fCorrHistoName2;  // name of 2nd histogram
  TString  fCorrHistoName3;  // name of 3rd histogram
  Int_t    fNsubevents;      // number of subevents to be used
  Bool_t   fExtrapToFull;    // flag for extrapolating to full event
  Int_t    fWeight; // flag use/not use Ncoll to weight centrality sub-ranges
  Double_t fNcoll[20];       // values of Ncoll in the subranges
  Double_t fYield24[20];     // values of D0 yield 2<pt<4 in the subranges
  Double_t fYield46[20];     // values of D0 yield 4<pt<6 in the subranges
  Double_t fYield612[20];    // values of D0 yield 6<pt<12 in the subranges
  TH1F*    fHistoAB;         // histo of subevents A-B   
  TH1F*    fHistoBC;         // histo of subevents B-C   
  TH1F*    fHistoAC;         // histo of subevents A-C   
  TString  fRootFileName;    // file with histos of correlations

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