overloaded write method
[u/mrichter/AliRoot.git] / PWG2 / FLOW / AliFlowAnalysisWithMCEventPlane.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice                               */
3
4 /* $Id$ */
5
6
7 #ifndef ALIFLOWANALYSISWITHMCEVENTPLANE_H
8 #define ALIFLOWANALYSISWITHMCEVENTPLANE_H
9
10 #include "TVector2.h"          //called explicitly
11 #include "AliFlowVector.h"
12 #include "TString.h"
13
14 class AliFlowTrackSimple;
15 class AliFlowEventSimple;
16 class AliFlowCommonHist;
17 class AliFlowCommonHistResults;
18
19 class TH1F;
20 class TH1D;
21 class TProfile;
22 class TProfile2D;
23 class TObjArray;
24 class TFile;
25 class TList;
26 class TComplex;
27 class Riostream;
28
29
30 // Description: Maker to analyze Flow from the generated MC reaction plane.
31 //              This class is used to get the real value of the flow 
32 //              to compare the other methods to when analysing simulated events.
33
34  
35 class AliFlowAnalysisWithMCEventPlane {
36
37  public:
38  
39    AliFlowAnalysisWithMCEventPlane();            //default constructor
40    virtual  ~AliFlowAnalysisWithMCEventPlane();  //destructor
41  
42    void      WriteHistograms(TString* outputFileName);
43    void      WriteHistograms(TString outputFileName);
44    void      Init();                             //defines variables and histograms
45    void      Make(AliFlowEventSimple* anEvent, Double_t aRP);   //calculates variables and fills histograms
46    void      Finish();                           //saves histograms
47    
48    void      SetDebug(Bool_t kt)          { this->fDebug = kt ; }
49    Bool_t    GetDebug() const             { return this->fDebug ; }
50
51    void      SetEventNumber(Int_t n)      { this->fEventNumber = n; }
52    Int_t     GetEventNumber() const       { return this->fEventNumber; }
53
54    // Output 
55    TList*    GetHistList() const          { return this->fHistList ; }  
56    AliFlowCommonHist* GetCommonHists() const  { return this->fCommonHists; }
57    void               SetCommonHists(AliFlowCommonHist* aCommonHist)  
58      { this->fCommonHists = aCommonHist; }
59    AliFlowCommonHistResults*  GetCommonHistsRes() const  
60      { return this->fCommonHistsRes; }
61    void      SetCommonHistsRes(AliFlowCommonHistResults* aCommonHistResult) 
62      { this->fCommonHistsRes = aCommonHistResult; }
63    
64    //histograms
65    TProfile* GetHistProFlow()             {return this->fHistProFlow; }  
66    void      SetHistProFlow(TProfile* aHistProFlow)   
67      {this->fHistProFlow = aHistProFlow; }
68    TH1F*     GetHistRP()                  {return this->fHistRP; } 
69    void      SetHistRP(TH1F* aHistRP)     {this->fHistRP = aHistRP; }
70    
71    TProfile* GetHistProIntFlowRP()                            {return this->fHistProIntFlowRP; } 
72    void      SetHistProIntFlowRP(TProfile* aHistProIntFlowRP) {this->fHistProIntFlowRP = aHistProIntFlowRP; }
73    
74    TProfile* GetHistProDiffFlowPtRP()                               {return this->fHistProDiffFlowPtRP; } 
75    void      SetHistProDiffFlowPtRP(TProfile* aHistProDiffFlowPtRP) {this->fHistProDiffFlowPtRP = aHistProDiffFlowPtRP; } 
76    
77    TProfile* GetHistProDiffFlowEtaRP()                                {return this->fHistProDiffFlowEtaRP; } 
78    void      SetHistProDiffFlowEtaRP(TProfile* aHistProDiffFlowEtaRP) {this->fHistProDiffFlowEtaRP = aHistProDiffFlowEtaRP; } 
79    
80    TProfile* GetHistProDiffFlowPtPOI()                               {return this->fHistProDiffFlowPtPOI; } 
81    void      SetHistProDiffFlowPtPOI(TProfile* aHistProDiffFlowPtPOI) {this->fHistProDiffFlowPtPOI = aHistProDiffFlowPtPOI; } 
82    
83    TProfile* GetHistProDiffFlowEtaPOI()                                {return this->fHistProDiffFlowEtaPOI; } 
84    void      SetHistProDiffFlowEtaPOI(TProfile* aHistProDiffFlowEtaPOI) {this->fHistProDiffFlowEtaPOI = aHistProDiffFlowEtaPOI; }    
85
86  private:
87  
88    AliFlowAnalysisWithMCEventPlane(const AliFlowAnalysisWithMCEventPlane& aAnalysis);             //copy constructor
89    AliFlowAnalysisWithMCEventPlane& operator=(const AliFlowAnalysisWithMCEventPlane& aAnalysis);  //assignment operator 
90
91       
92 #ifndef __CINT__
93    TVector2*    fQsum;              // flow vector sum
94    Double_t     fQ2sum;             // flow vector sum squared
95 #endif /*__CINT__*/
96
97    Int_t        fEventNumber;       // event counter
98    Bool_t       fDebug ;            //! flag for lyz analysis: more print statements
99
100    TList*       fHistList;          //list to hold all output histograms  
101     
102    AliFlowCommonHist* fCommonHists;              //
103    AliFlowCommonHistResults* fCommonHistsRes;    //
104
105    TProfile*    fHistProFlow;       //
106    TH1F*        fHistRP;            //
107    
108    TProfile*    fHistProIntFlowRP;     //profile used to calculate the integrated flow of RP particles
109    TProfile*    fHistProDiffFlowPtRP;  //profile used to calculate the differential flow (Pt) of RP particles 
110    TProfile*    fHistProDiffFlowEtaRP; //profile used to calculate the differential flow (Eta) of RP particles 
111    
112    TProfile*    fHistProDiffFlowPtPOI;  //profile used to calculate the differential flow (Pt) of POI particles 
113    TProfile*    fHistProDiffFlowEtaPOI; //profile used to calculate the differential flow (Eta) of POI particles    
114    
115    ClassDef(AliFlowAnalysisWithMCEventPlane,1)  // macro for rootcint
116      };
117  
118      
119 #endif
120
121