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

// AliFlowAnalysisWithLYZEventPlane:
// Class to do flow analysis with the event plane
// from the LYZ method
// author: N. van der Kolk (kolk@nikhef.nl)

/* $Id$ */

#ifndef ALIFLOWANALYSISWITHLYZEVENTPLANE_H
#define ALIFLOWANALYSISWITHLYZEVENTPLANE_H

class AliFlowEventSimple;
class AliFlowCommonHist;
class AliFlowCommonHistResults;
class AliFlowLYZEventPlane;

class TString;
class TProfile;
class TH1F;
class TList;

class AliFlowAnalysisWithLYZEventPlane {

 public:

  AliFlowAnalysisWithLYZEventPlane();                 //default constructor
  virtual ~AliFlowAnalysisWithLYZEventPlane();        //destructor
  
  virtual void   Init();
  virtual void   Make(AliFlowEventSimple* fEvent, AliFlowLYZEventPlane* fLYZEP);
  virtual void   GetOutputHistograms(TList *outputListHistos); //get pointers to all output histograms (called before Finish()) 
  virtual void   Finish();
  void           WriteHistograms(TString* outputFileName);
  void           WriteHistograms(TString outputFileName);
  void           WriteHistograms(TDirectoryFile *outputFileName);

  void      SetEventNumber(Int_t n)      { this->fEventNumber = n; }
  Int_t     GetEventNumber() const       { return this->fEventNumber; }
  void      SetQ2sum(Double_t d)         { this->fQ2sum = d; }
  Double_t  GetQ2sum() const             { return this->fQ2sum; }

  //output
  TList* GetHistList() const     {return this->fHistList; }
  AliFlowCommonHist* GetCommonHists() const  { return this->fCommonHists; }
  void SetCommonHists(AliFlowCommonHist* const aCommonHist)  
         { this->fCommonHists = aCommonHist; }
  AliFlowCommonHistResults* GetCommonHistsRes() const  
                              { return this->fCommonHistsRes; }
  void SetCommonHistsRes(AliFlowCommonHistResults* const aCommonHistResult) 
         { this->fCommonHistsRes = aCommonHistResult; }

  // !!!!! make getters and setters for all histograms
  TProfile*  GetSecondReDtheta() const {return this->fSecondReDtheta; } 
  void       SetSecondReDtheta(TProfile* const aSecondReDtheta) 
               { this->fSecondReDtheta = aSecondReDtheta; }
  TProfile*  GetSecondImDtheta() const {return this->fSecondImDtheta; }
  void       SetSecondImDtheta(TProfile* const aSecondImDtheta)
               { this->fSecondImDtheta = aSecondImDtheta; }
  TProfile*  GetFirstr0theta() const   {return this->fFirstr0theta; }
  void       SetFirstr0theta(TProfile* const aFirstr0theta)
               { this->fFirstr0theta = aFirstr0theta; }
  
  TProfile*  GetHistProVetaRP() const   {return this->fHistProVetaRP;}
  void       SetHistProVetaRP(TProfile* const aHistProVetaRP)
               { this->fHistProVetaRP =aHistProVetaRP; }
  TProfile*  GetHistProVetaPOI() const  {return this->fHistProVetaPOI;} 
  void       SetHistProVetaPOI(TProfile* const aHistProVetaPOI)
               { this->fHistProVetaPOI = aHistProVetaPOI; } 
  TProfile*  GetHistProVPtRP() const    {return this->fHistProVPtRP;}
  void       SetHistProVPtRP(TProfile* const aHistProVPtRP)
               { this->fHistProVPtRP =aHistProVPtRP; } 
  TProfile*  GetHistProVPtPOI() const   {return this->fHistProVPtPOI;} 
  void       SetHistProVPtPOI(TProfile* const aHistProVPtPOI)
               { this->fHistProVPtPOI = aHistProVPtPOI; }      
  TProfile*  GetHistProWr() const       {return this->fHistProWr; }
  void       SetHistProWr(TProfile* const aHistProWr)
               { this->fHistProWr = aHistProWr; }
  TProfile*  GetHistProWrCorr() const {return this->fHistProWrCorr; }
  void       SetHistProWrCorr(TProfile* const aHistProWrCorr)
               { this->fHistProWrCorr = aHistProWrCorr; }
  TH1F*      GetHistQsumforChi() const {return this->fHistQsumforChi; }
  void       SetHistQsumforChi(TH1F* const aHistQsumforChi) 
               { this->fHistQsumforChi = aHistQsumforChi; }
  TH1F*      GetHistDeltaPhi()  const {return this->fHistDeltaPhi; }  
  void       SetHistDeltaPhi(TH1F* const aHistDeltaPhi)
               { this->fHistDeltaPhi = aHistDeltaPhi; }
  TH1F*      GetHistDeltaPhi2() const {return this->fHistDeltaPhi2; } 
  void       SetHistDeltaPhi2(TH1F* const aHistDeltaPhi2)
               { this->fHistDeltaPhi2 = aHistDeltaPhi2; }
  TH1F*      GetHistDeltaPhihere() const {return this->fHistDeltaPhihere; }
  void       SetHistDeltaPhihere(TH1F* const aHistDeltaPhihere)
               { this->fHistDeltaPhihere = aHistDeltaPhihere; }
  TH1F*      GetHistPhiEP() const     {return this->fHistPhiEP; }   
  void       SetHistPhiEP(TH1F* const aHistPhiEP)
               { this->fHistPhiEP = aHistPhiEP; }  
  TH1F*      GetHistPhiEPhere() const {return this->fHistPhiEPhere; }
  void       SetHistPhiEPhere(TH1F* const aHistPhiEPhere)
               { this->fHistPhiEPhere = aHistPhiEPhere; }       
  TH1F*      GetHistPhiLYZ()  const   {return this->fHistPhiLYZ; }  
  void       SetHistPhiLYZ(TH1F* const aHistPhiLYZ)
               { this->fHistPhiLYZ = aHistPhiLYZ; }       
  TH1F*      GetHistPhiLYZ2() const   {return this->fHistPhiLYZ2;}               
  void       SetHistPhiLYZ2(TH1F* const aHistPhiLYZ2)
               { this->fHistPhiLYZ2 = aHistPhiLYZ2; }

  //input
  void       SetSecondRunList(TList* const list) { this->fSecondRunList = list; }
  TList*     GetSecondRunList()  const           { return this->fSecondRunList; }

 private:

  AliFlowAnalysisWithLYZEventPlane(const AliFlowAnalysisWithLYZEventPlane& aAnalysis);             // copy constructor
  AliFlowAnalysisWithLYZEventPlane& operator=(const AliFlowAnalysisWithLYZEventPlane& aAnalysis);  // assignment operator

  //histograms
  TList*     fHistList;                       //list ro hold all histograms
  TList*     fSecondRunList;                  //list from Second LYZ run output
  
  //input
  TProfile*  fSecondReDtheta;                 // input profile
  TProfile*  fSecondImDtheta;                 // input profile
  TProfile*  fFirstr0theta;                   // input profile
  
  //output
  TProfile*  fHistProVetaRP;                  // output
  TProfile*  fHistProVetaPOI;                 // output
  TProfile*  fHistProVPtRP;                   // output
  TProfile*  fHistProVPtPOI;                  // output
  TProfile*  fHistProWr;                      // output
  TProfile*  fHistProWrCorr;                  // output
  TH1F*      fHistQsumforChi;                 // output
  TH1F*      fHistDeltaPhi;                   // output
  TH1F*      fHistDeltaPhi2;                  // output
  TH1F*      fHistDeltaPhihere;               // output
  TH1F*      fHistPhiEP;                      // output
  TH1F*      fHistPhiEPhere;                  // output
  TH1F*      fHistPhiLYZ;                     // output
  TH1F*      fHistPhiLYZ2;                    // output
  
  AliFlowCommonHist* fCommonHists;            // output
  AliFlowCommonHistResults* fCommonHistsRes;  // output

  Int_t     fEventNumber;                     // event counter

  TVector2  *fQsum;                           // flow vector sum
  Double_t  fQ2sum;                           // flow vector sum squared
     

  ClassDef(AliFlowAnalysisWithLYZEventPlane,0);          // lyz analysis 
};

 #endif

 AliFlowAnalysisWithLYZEventPlane.h:1
 AliFlowAnalysisWithLYZEventPlane.h:2
 AliFlowAnalysisWithLYZEventPlane.h:3
 AliFlowAnalysisWithLYZEventPlane.h:4
 AliFlowAnalysisWithLYZEventPlane.h:5
 AliFlowAnalysisWithLYZEventPlane.h:6
 AliFlowAnalysisWithLYZEventPlane.h:7
 AliFlowAnalysisWithLYZEventPlane.h:8
 AliFlowAnalysisWithLYZEventPlane.h:9
 AliFlowAnalysisWithLYZEventPlane.h:10
 AliFlowAnalysisWithLYZEventPlane.h:11
 AliFlowAnalysisWithLYZEventPlane.h:12
 AliFlowAnalysisWithLYZEventPlane.h:13
 AliFlowAnalysisWithLYZEventPlane.h:14
 AliFlowAnalysisWithLYZEventPlane.h:15
 AliFlowAnalysisWithLYZEventPlane.h:16
 AliFlowAnalysisWithLYZEventPlane.h:17
 AliFlowAnalysisWithLYZEventPlane.h:18
 AliFlowAnalysisWithLYZEventPlane.h:19
 AliFlowAnalysisWithLYZEventPlane.h:20
 AliFlowAnalysisWithLYZEventPlane.h:21
 AliFlowAnalysisWithLYZEventPlane.h:22
 AliFlowAnalysisWithLYZEventPlane.h:23
 AliFlowAnalysisWithLYZEventPlane.h:24
 AliFlowAnalysisWithLYZEventPlane.h:25
 AliFlowAnalysisWithLYZEventPlane.h:26
 AliFlowAnalysisWithLYZEventPlane.h:27
 AliFlowAnalysisWithLYZEventPlane.h:28
 AliFlowAnalysisWithLYZEventPlane.h:29
 AliFlowAnalysisWithLYZEventPlane.h:30
 AliFlowAnalysisWithLYZEventPlane.h:31
 AliFlowAnalysisWithLYZEventPlane.h:32
 AliFlowAnalysisWithLYZEventPlane.h:33
 AliFlowAnalysisWithLYZEventPlane.h:34
 AliFlowAnalysisWithLYZEventPlane.h:35
 AliFlowAnalysisWithLYZEventPlane.h:36
 AliFlowAnalysisWithLYZEventPlane.h:37
 AliFlowAnalysisWithLYZEventPlane.h:38
 AliFlowAnalysisWithLYZEventPlane.h:39
 AliFlowAnalysisWithLYZEventPlane.h:40
 AliFlowAnalysisWithLYZEventPlane.h:41
 AliFlowAnalysisWithLYZEventPlane.h:42
 AliFlowAnalysisWithLYZEventPlane.h:43
 AliFlowAnalysisWithLYZEventPlane.h:44
 AliFlowAnalysisWithLYZEventPlane.h:45
 AliFlowAnalysisWithLYZEventPlane.h:46
 AliFlowAnalysisWithLYZEventPlane.h:47
 AliFlowAnalysisWithLYZEventPlane.h:48
 AliFlowAnalysisWithLYZEventPlane.h:49
 AliFlowAnalysisWithLYZEventPlane.h:50
 AliFlowAnalysisWithLYZEventPlane.h:51
 AliFlowAnalysisWithLYZEventPlane.h:52
 AliFlowAnalysisWithLYZEventPlane.h:53
 AliFlowAnalysisWithLYZEventPlane.h:54
 AliFlowAnalysisWithLYZEventPlane.h:55
 AliFlowAnalysisWithLYZEventPlane.h:56
 AliFlowAnalysisWithLYZEventPlane.h:57
 AliFlowAnalysisWithLYZEventPlane.h:58
 AliFlowAnalysisWithLYZEventPlane.h:59
 AliFlowAnalysisWithLYZEventPlane.h:60
 AliFlowAnalysisWithLYZEventPlane.h:61
 AliFlowAnalysisWithLYZEventPlane.h:62
 AliFlowAnalysisWithLYZEventPlane.h:63
 AliFlowAnalysisWithLYZEventPlane.h:64
 AliFlowAnalysisWithLYZEventPlane.h:65
 AliFlowAnalysisWithLYZEventPlane.h:66
 AliFlowAnalysisWithLYZEventPlane.h:67
 AliFlowAnalysisWithLYZEventPlane.h:68
 AliFlowAnalysisWithLYZEventPlane.h:69
 AliFlowAnalysisWithLYZEventPlane.h:70
 AliFlowAnalysisWithLYZEventPlane.h:71
 AliFlowAnalysisWithLYZEventPlane.h:72
 AliFlowAnalysisWithLYZEventPlane.h:73
 AliFlowAnalysisWithLYZEventPlane.h:74
 AliFlowAnalysisWithLYZEventPlane.h:75
 AliFlowAnalysisWithLYZEventPlane.h:76
 AliFlowAnalysisWithLYZEventPlane.h:77
 AliFlowAnalysisWithLYZEventPlane.h:78
 AliFlowAnalysisWithLYZEventPlane.h:79
 AliFlowAnalysisWithLYZEventPlane.h:80
 AliFlowAnalysisWithLYZEventPlane.h:81
 AliFlowAnalysisWithLYZEventPlane.h:82
 AliFlowAnalysisWithLYZEventPlane.h:83
 AliFlowAnalysisWithLYZEventPlane.h:84
 AliFlowAnalysisWithLYZEventPlane.h:85
 AliFlowAnalysisWithLYZEventPlane.h:86
 AliFlowAnalysisWithLYZEventPlane.h:87
 AliFlowAnalysisWithLYZEventPlane.h:88
 AliFlowAnalysisWithLYZEventPlane.h:89
 AliFlowAnalysisWithLYZEventPlane.h:90
 AliFlowAnalysisWithLYZEventPlane.h:91
 AliFlowAnalysisWithLYZEventPlane.h:92
 AliFlowAnalysisWithLYZEventPlane.h:93
 AliFlowAnalysisWithLYZEventPlane.h:94
 AliFlowAnalysisWithLYZEventPlane.h:95
 AliFlowAnalysisWithLYZEventPlane.h:96
 AliFlowAnalysisWithLYZEventPlane.h:97
 AliFlowAnalysisWithLYZEventPlane.h:98
 AliFlowAnalysisWithLYZEventPlane.h:99
 AliFlowAnalysisWithLYZEventPlane.h:100
 AliFlowAnalysisWithLYZEventPlane.h:101
 AliFlowAnalysisWithLYZEventPlane.h:102
 AliFlowAnalysisWithLYZEventPlane.h:103
 AliFlowAnalysisWithLYZEventPlane.h:104
 AliFlowAnalysisWithLYZEventPlane.h:105
 AliFlowAnalysisWithLYZEventPlane.h:106
 AliFlowAnalysisWithLYZEventPlane.h:107
 AliFlowAnalysisWithLYZEventPlane.h:108
 AliFlowAnalysisWithLYZEventPlane.h:109
 AliFlowAnalysisWithLYZEventPlane.h:110
 AliFlowAnalysisWithLYZEventPlane.h:111
 AliFlowAnalysisWithLYZEventPlane.h:112
 AliFlowAnalysisWithLYZEventPlane.h:113
 AliFlowAnalysisWithLYZEventPlane.h:114
 AliFlowAnalysisWithLYZEventPlane.h:115
 AliFlowAnalysisWithLYZEventPlane.h:116
 AliFlowAnalysisWithLYZEventPlane.h:117
 AliFlowAnalysisWithLYZEventPlane.h:118
 AliFlowAnalysisWithLYZEventPlane.h:119
 AliFlowAnalysisWithLYZEventPlane.h:120
 AliFlowAnalysisWithLYZEventPlane.h:121
 AliFlowAnalysisWithLYZEventPlane.h:122
 AliFlowAnalysisWithLYZEventPlane.h:123
 AliFlowAnalysisWithLYZEventPlane.h:124
 AliFlowAnalysisWithLYZEventPlane.h:125
 AliFlowAnalysisWithLYZEventPlane.h:126
 AliFlowAnalysisWithLYZEventPlane.h:127
 AliFlowAnalysisWithLYZEventPlane.h:128
 AliFlowAnalysisWithLYZEventPlane.h:129
 AliFlowAnalysisWithLYZEventPlane.h:130
 AliFlowAnalysisWithLYZEventPlane.h:131
 AliFlowAnalysisWithLYZEventPlane.h:132
 AliFlowAnalysisWithLYZEventPlane.h:133
 AliFlowAnalysisWithLYZEventPlane.h:134
 AliFlowAnalysisWithLYZEventPlane.h:135
 AliFlowAnalysisWithLYZEventPlane.h:136
 AliFlowAnalysisWithLYZEventPlane.h:137
 AliFlowAnalysisWithLYZEventPlane.h:138
 AliFlowAnalysisWithLYZEventPlane.h:139
 AliFlowAnalysisWithLYZEventPlane.h:140
 AliFlowAnalysisWithLYZEventPlane.h:141
 AliFlowAnalysisWithLYZEventPlane.h:142
 AliFlowAnalysisWithLYZEventPlane.h:143
 AliFlowAnalysisWithLYZEventPlane.h:144
 AliFlowAnalysisWithLYZEventPlane.h:145
 AliFlowAnalysisWithLYZEventPlane.h:146
 AliFlowAnalysisWithLYZEventPlane.h:147
 AliFlowAnalysisWithLYZEventPlane.h:148
 AliFlowAnalysisWithLYZEventPlane.h:149
 AliFlowAnalysisWithLYZEventPlane.h:150
 AliFlowAnalysisWithLYZEventPlane.h:151
 AliFlowAnalysisWithLYZEventPlane.h:152
 AliFlowAnalysisWithLYZEventPlane.h:153
 AliFlowAnalysisWithLYZEventPlane.h:154
 AliFlowAnalysisWithLYZEventPlane.h:155