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

/* $Id:$ */

#ifndef ALIFLOWCOMMONHIST_H
#define ALIFLOWCOMMONHIST_H

// AliFlowCommonHist:
// Description: Class to organise common histograms for Flow Analysis
// authors: N.K A.B R.S

             
class AliFlowEventSimple;
class AliFlowTrackSimple;
class TH1F;
class TH2F;
class TH1D;
class TProfile;
class TCollection;
class TList;
class TBrowser;

class AliFlowCommonHist: public TNamed {

 public:

  AliFlowCommonHist();
  AliFlowCommonHist(const char *name,const char *title = "AliFlowCommonHist",Bool_t bookOnlyBasic = kFALSE);
  virtual ~AliFlowCommonHist();
  AliFlowCommonHist(const AliFlowCommonHist& aSetOfHists);

  Bool_t  IsFolder() const {return kTRUE;};
  void Browse(TBrowser *b);
  //merge function
  virtual Double_t  Merge(TCollection *aList);  
  //method to print stats
  void Print(Option_t* option = "") const;
 
  //fill method
  Bool_t FillControlHistograms(AliFlowEventSimple* anEvent,TList *weightsList=NULL, Bool_t usePhiWeights=kFALSE, Bool_t usePtWeights=kFALSE, Bool_t useEtaWeights=kFALSE);
  
  //getters
  Double_t GetEntriesInPtBinRP(Int_t iBin);   //gets entries from fHistPtRP
  Double_t GetEntriesInPtBinPOI(Int_t iBin);  //gets entries from fHistPtPOI
  Double_t GetEntriesInEtaBinRP(Int_t iBin);  //gets entries from fHistEtaRP
  Double_t GetEntriesInEtaBinPOI(Int_t iBin); //gets entries from fHistEtaPOI
  Double_t GetMeanPt(Int_t iBin);             //gets the mean pt for this bin from fHistProMeanPtperBin   

  TH1F*     GetHistMultRP()          {return fHistMultRP; } ;  
  TH1F*     GetHistMultPOI()         {return fHistMultPOI; } ; 
  TH2F*     GetHistMultPOIvsRP()     {return fHistMultPOIvsRP; } ;
  TH1F*     GetHistPtRP()            {return fHistPtRP; } ;  
  TH1F*     GetHistPtPOI()           {return fHistPtPOI; } ;
  TH1F*     GetHistPtSub0()          {return fHistPtSub0; } ;
  TH1F*     GetHistPtSub1()          {return fHistPtSub1; } ;
  TH1F*     GetHistPhiRP()           {return fHistPhiRP; } ;  
  TH1F*     GetHistPhiPOI()          {return fHistPhiPOI; } ;  
  TH1F*     GetHistPhiSub0()         {return fHistPhiSub0; } ; 
  TH1F*     GetHistPhiSub1()         {return fHistPhiSub1; } ; 
  TH1F*     GetHistEtaRP()           {return fHistEtaRP; } ;  
  TH1F*     GetHistEtaPOI()          {return fHistEtaPOI;  } ;  
  TH1F*     GetHistEtaSub0()         {return fHistEtaSub0;  } ; 
  TH1F*     GetHistEtaSub1()         {return fHistEtaSub1;  } ; 
  TH2F*     GetHistPhiEtaRP()        {return fHistPhiEtaRP;  } ; 
  TH2F*     GetHistPhiEtaPOI()       {return fHistPhiEtaPOI;  } ; 
  TProfile* GetHistProMeanPtperBin() {return fHistProMeanPtperBin; } ;
  TH2F*     GetHistWeightvsPhi()     {return fHistWeightvsPhi; } ;
  TH1F*     GetHistQ()               {return fHistQ; } ;  
  TH1F*     GetHistAngleQ()          {return fHistAngleQ; }
  TH1F*     GetHistAngleQSub0()      {return fHistAngleQSub0; }
  TH1F*     GetHistAngleQSub1()      {return fHistAngleQSub1; }
  TProfile* GetHarmonic()            {return fHarmonic; } ; 
  TProfile* GetRefMultVsNoOfRPs()    {return fRefMultVsNoOfRPs; } ;
  TH1F*     GetHistRefMult()         {return fHistRefMult; } ; 
  TH2F*     GetHistMassPOI()         {return fHistMassPOI; }
  TList*    GetHistList()            {return fHistList;} ;  

   
 private:

  AliFlowCommonHist& operator=(const AliFlowCommonHist& aSetOfHists);

  //define histograms here
  //control histograms
  Bool_t    fBookOnlyBasic;       // book and fill only control histos needed for all methods
  TH1F*     fHistMultRP;          // multiplicity for RP selection
  TH1F*     fHistMultPOI;         // multiplicity for POI selection
  TH2F*     fHistMultPOIvsRP;     // multiplicity for POI versus RP
  TH1F*     fHistPtRP;            // pt distribution for RP selection
  TH1F*     fHistPtPOI;           // pt distribution for POI selection
  TH1F*     fHistPtSub0;          // pt distribution for subevent 0
  TH1F*     fHistPtSub1;          // pt distribution for subevent 1
  TH1F*     fHistPhiRP;           // phi distribution for RP selection
  TH1F*     fHistPhiPOI;          // phi distribution for POI selection
  TH1F*     fHistPhiSub0;         // phi distribution for subevent 0
  TH1F*     fHistPhiSub1;         // phi distribution for subevent 1
  TH1F*     fHistEtaRP;           // eta distribution for RP selection
  TH1F*     fHistEtaPOI;          // eta distribution for POI selection
  TH1F*     fHistEtaSub0;         // eta distribution for subevent 0
  TH1F*     fHistEtaSub1;         // eta distribution for subevent 1
  TH2F*     fHistPhiEtaRP;        // eta vs phi for RP selection
  TH2F*     fHistPhiEtaPOI;       // eta vs phi for POI selection
  TProfile* fHistProMeanPtperBin; // mean pt for each pt bin (for POI selection)
  TH2F*     fHistWeightvsPhi;     // particle weight vs particle phi
  TH1F*     fHistQ;               // Qvector distribution
  TH1F*     fHistAngleQ;          // distribution of angle of Q vector
  TH1F*     fHistAngleQSub0;      // distribution of angle of subevent 0 Q vector
  TH1F*     fHistAngleQSub1;      // distribution of angle of subevent 1 Q vector
  TProfile* fHarmonic;            // harmonic 
  TProfile* fRefMultVsNoOfRPs;    // <reference multiplicity> versus # of RPs
  TH1F*     fHistRefMult;         // reference multiplicity distribution
  TH2F*     fHistMassPOI;         // mass distribution for POI selection
  
  TList*    fHistList;            // list to hold all histograms  

  ClassDef(AliFlowCommonHist,4)   // macro for rootcint
};
#endif

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