overloaded write method
[u/mrichter/AliRoot.git] / PWG2 / FLOW / AliFlowAnalysisWithLYZEventPlane.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
3 /* $Id$ */
4
5 #ifndef AliFlowAnalysisWithLYZEventPlane_H
6 #define AliFlowAnalysisWithLYZEventPlane_H
7
8 class AliFlowVector;
9 class AliFlowTrackSimple;
10 class AliFlowEventSimple;
11 class AliFlowCommonHist;
12 class AliFlowCommonHistResults;
13 class AliFlowLYZEventPlane;
14
15 class TString;
16 class TFile;
17 class TProfile;
18 class TH1F;
19 class TH1D;
20 class TList;
21 class Riostream;
22
23 // AliFlowAnalysisWithLYZEventPlane:
24 // Class to do flow analysis with the event plane from the LYZ method
25 // author: N. van der Kolk (kolk@nikhef.nl)
26
27
28 class AliFlowAnalysisWithLYZEventPlane {
29
30  public:
31
32   AliFlowAnalysisWithLYZEventPlane();                 //default constructor
33   virtual ~AliFlowAnalysisWithLYZEventPlane();        //destructor
34   
35   virtual void   Init();
36   virtual void   Make(AliFlowEventSimple* fEvent, AliFlowLYZEventPlane* fLYZEP);
37   virtual void   Finish();
38   void           WriteHistograms(TString* outputFileName);
39   void           WriteHistograms(TString outputFileName);
40
41   void      SetEventNumber(Int_t n)      { this->fEventNumber = n; }
42   Int_t     GetEventNumber() const       { return this->fEventNumber; }
43   void      SetQ2sum(Double_t d)         { this->fQ2sum = d; }
44   Double_t  GetQ2sum()                   { return this->fQ2sum; }
45
46   //output
47   TList*             GetHistList() const     {return this->fHistList; }
48   AliFlowCommonHist* GetCommonHists() const  { return this->fCommonHists; }
49   void               SetCommonHists(AliFlowCommonHist* aCommonHist)  
50      { this->fCommonHists = aCommonHist; }
51   AliFlowCommonHistResults* GetCommonHistsRes() const  
52      { return this->fCommonHistsRes; }
53   void               SetCommonHistsRes(AliFlowCommonHistResults* aCommonHistResult) 
54      { this->fCommonHistsRes = aCommonHistResult; }
55
56   // !!!!! make getters and setters for all histograms
57   TProfile*  GetSecondReDtheta() {return this->fSecondReDtheta; } 
58   void       SetSecondReDtheta(TProfile* aSecondReDtheta) 
59     {this->fSecondReDtheta = aSecondReDtheta; }
60   TProfile*  GetSecondImDtheta() {return this->fSecondImDtheta; }
61   void       SetSecondImDtheta(TProfile* aSecondImDtheta)
62     {this->fSecondImDtheta = aSecondImDtheta; }
63   TProfile*  GetFirstr0theta()   {return this->fFirstr0theta; }
64   void       SetFirstr0theta(TProfile* aFirstr0theta)
65     {this->fFirstr0theta = aFirstr0theta; }
66   TProfile*  GetHistProFlow()    {return this->fHistProFlow;}
67   void       SetHistProFlow(TProfile* aHistProFlow)
68     {this->fHistProFlow =aHistProFlow; }        
69   TProfile*  GetHistProFlow2()   {return this->fHistProFlow2;} 
70   void       SetHistProFlow2(TProfile* aHistProFlow2)
71     {this->fHistProFlow2 = aHistProFlow2; }      
72   TProfile*  GetHistProWr()      {return this->fHistProWr; }
73   void       SetHistProWr(TProfile* aHistProWr)
74     {this->fHistProWr = aHistProWr; }
75   TProfile*  GetHistProWrCorr()  {return this->fHistProWrCorr; }
76   void       SetHistProWrCorr(TProfile* aHistProWrCorr)
77     {this->fHistProWrCorr = aHistProWrCorr; }
78   TH1F*      GetHistQsumforChi() {return this->fHistQsumforChi; }
79   void       SetHistQsumforChi(TH1F* aHistQsumforChi) 
80     {this->fHistQsumforChi = aHistQsumforChi; }
81   TH1F*      GetHistDeltaPhi()   {return this->fHistDeltaPhi; }  
82   void       SetHistDeltaPhi(TH1F* aHistDeltaPhi)
83     {this->fHistDeltaPhi = aHistDeltaPhi; }
84   TH1F*      GetHistDeltaPhi2()  {return this->fHistDeltaPhi2; } 
85   void       SetHistDeltaPhi2(TH1F* aHistDeltaPhi2)
86     {this->fHistDeltaPhi2 = aHistDeltaPhi2; }
87   TH1F*      GetHistDeltaPhihere() {return this->fHistDeltaPhihere; }
88   void       SetHistDeltaPhihere(TH1F* aHistDeltaPhihere)
89     {this->fHistDeltaPhihere = aHistDeltaPhihere; }
90   TH1F*      GetHistPhiEP()      {return this->fHistPhiEP; }   
91   void       SetHistPhiEP(TH1F* aHistPhiEP)
92     {this->fHistPhiEP = aHistPhiEP; }  
93   TH1F*      GetHistPhiEPhere()  {return this->fHistPhiEPhere; }
94   void       SetHistPhiEPhere(TH1F* aHistPhiEPhere)
95     {this->fHistPhiEPhere = aHistPhiEPhere; }       
96   TH1F*      GetHistPhiLYZ()     {return this->fHistPhiLYZ; }  
97   void       SetHistPhiLYZ(TH1F* aHistPhiLYZ)
98     {this->fHistPhiLYZ = aHistPhiLYZ; }       
99   TH1F*      GetHistPhiLYZ2()    {return this->fHistPhiLYZ2;}               
100   void       SetHistPhiLYZ2(TH1F* aHistPhiLYZ2)
101     {this->fHistPhiLYZ2 = aHistPhiLYZ2; }
102
103   //input
104   void       SetSecondRunList(TList* list) { this->fSecondRunList = list; }
105   TList*     GetSecondRunList()            { return this->fSecondRunList; }
106
107  private:
108
109   AliFlowAnalysisWithLYZEventPlane(const AliFlowAnalysisWithLYZEventPlane& aAnalysis);             // copy constructor
110   AliFlowAnalysisWithLYZEventPlane& operator=(const AliFlowAnalysisWithLYZEventPlane& aAnalysis);  // assignment operator
111
112   //histograms
113   TList*     fHistList;                       //list ro hold all histograms
114   TList*     fSecondRunList;                  //list from Second LYZ run output
115   //input
116   TProfile*  fSecondReDtheta;                 // input profile
117   TProfile*  fSecondImDtheta;                 // input profile
118   TProfile*  fFirstr0theta;                   // input profile
119   //output
120   TProfile*  fHistProFlow;                    //
121   TProfile*  fHistProFlow2;                   //
122   TProfile*  fHistProWr;                      //
123   TProfile*  fHistProWrCorr;                  //
124   TH1F*      fHistQsumforChi;                 //
125   TH1F*      fHistDeltaPhi;                   //
126   TH1F*      fHistDeltaPhi2;                  //
127   TH1F*      fHistDeltaPhihere;               //
128   TH1F*      fHistPhiEP;                      //
129   TH1F*      fHistPhiEPhere;                  //
130   TH1F*      fHistPhiLYZ;                     //
131   TH1F*      fHistPhiLYZ2;                    //
132   
133   AliFlowCommonHist* fCommonHists;            //
134   AliFlowCommonHistResults* fCommonHistsRes;  //
135
136   Int_t     fEventNumber;                     // event counter
137
138   TVector2  *fQsum;                           // flow vector sum
139   Double_t  fQ2sum;                           // flow vector sum squared
140      
141
142   ClassDef(AliFlowAnalysisWithLYZEventPlane, 1);          // lyz analysis 
143 };
144
145  #endif
146