]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FLOW/AliFlowCommon/AliFlowAnalysisWithMCEventPlane.h
d29d0276952149e8ed0853377137284a348a7fa7
[u/mrichter/AliRoot.git] / PWG2 / FLOW / AliFlowCommon / 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);            //calculates variables and fills histograms
46    void      GetOutputHistograms(TList *outputListHistos); //get pointers to all output histograms (called before Finish()) 
47    void      Finish();                                     //saves histograms
48    
49    void      SetDebug(Bool_t kt)          { this->fDebug = kt ; }
50    Bool_t    GetDebug() const             { return this->fDebug ; }
51
52    void      SetEventNumber(Int_t n)      { this->fEventNumber = n; }
53    Int_t     GetEventNumber() const       { return this->fEventNumber; }
54
55    // Output 
56    TList*    GetHistList() const          { return this->fHistList ; }  
57    AliFlowCommonHist* GetCommonHists() const  { return this->fCommonHists; }
58    void      SetCommonHists(AliFlowCommonHist* aCommonHist)  
59      { this->fCommonHists = aCommonHist; }
60    AliFlowCommonHistResults*  GetCommonHistsRes() const { return this->fCommonHistsRes; }
61    void      SetCommonHistsRes(AliFlowCommonHistResults* aCommonHistResult) 
62      { this->fCommonHistsRes = aCommonHistResult; }
63    
64    //histograms
65    TH1F*     GetHistRP()                  {return this->fHistRP; } 
66    void      SetHistRP(TH1F* aHistRP)     {this->fHistRP = aHistRP; }
67    
68    TProfile* GetHistProIntFlow()          {return this->fHistProIntFlow; } 
69    void      SetHistProIntFlow(TProfile* aHistProIntFlow) 
70      {this->fHistProIntFlow = aHistProIntFlow; }
71      
72    TProfile2D* GetHistProDiffFlowPtEtaRP()     {return this->fHistProDiffFlowPtEtaRP; } 
73    void      SetHistProDiffFlowPtEtaRP(TProfile2D* aHistProDiffFlowPtEtaRP) 
74      {this->fHistProDiffFlowPtEtaRP = aHistProDiffFlowPtEtaRP; }   
75    
76    TProfile* GetHistProDiffFlowPtRP()     {return this->fHistProDiffFlowPtRP; } 
77    void      SetHistProDiffFlowPtRP(TProfile* aHistProDiffFlowPtRP) 
78      {this->fHistProDiffFlowPtRP = aHistProDiffFlowPtRP; } 
79    
80    TProfile* GetHistProDiffFlowEtaRP()    {return this->fHistProDiffFlowEtaRP; } 
81    void      SetHistProDiffFlowEtaRP(TProfile* aHistProDiffFlowEtaRP) 
82      {this->fHistProDiffFlowEtaRP = aHistProDiffFlowEtaRP; } 
83      
84    TProfile2D* GetHistProDiffFlowPtEtaPOI()     {return this->fHistProDiffFlowPtEtaPOI; } 
85    void      SetHistProDiffFlowPtEtaPOI(TProfile2D* aHistProDiffFlowPtEtaPOI) 
86      {this->fHistProDiffFlowPtEtaPOI = aHistProDiffFlowPtEtaPOI; }   
87    
88    TProfile* GetHistProDiffFlowPtPOI()    {return this->fHistProDiffFlowPtPOI; } 
89    void      SetHistProDiffFlowPtPOI(TProfile* aHistProDiffFlowPtPOI) 
90      {this->fHistProDiffFlowPtPOI = aHistProDiffFlowPtPOI; } 
91    
92    TProfile* GetHistProDiffFlowEtaPOI()   {return this->fHistProDiffFlowEtaPOI; } 
93    void      SetHistProDiffFlowEtaPOI(TProfile* aHistProDiffFlowEtaPOI) 
94      {this->fHistProDiffFlowEtaPOI = aHistProDiffFlowEtaPOI; } 
95      
96    TH1D* GetHistSpreadOfFlow()   {return this->fHistSpreadOfFlow; } 
97    void      SetHistSpreadOfFlow(TH1D* aHistSpreadOfFlow) 
98      {this->fHistSpreadOfFlow = aHistSpreadOfFlow; }    
99    
100  private:
101  
102    AliFlowAnalysisWithMCEventPlane(const AliFlowAnalysisWithMCEventPlane& aAnalysis);             //copy constructor
103    AliFlowAnalysisWithMCEventPlane& operator=(const AliFlowAnalysisWithMCEventPlane& aAnalysis);  //assignment operator 
104
105       
106 #ifndef __CINT__
107    TVector2*    fQsum;              // flow vector sum
108    Double_t     fQ2sum;             // flow vector sum squared
109 #endif /*__CINT__*/
110
111    Int_t        fEventNumber;       // event counter
112    Bool_t       fDebug ;            //! flag for lyz analysis: more print statements
113
114    TList*       fHistList;          //list to hold all output histograms  
115     
116    AliFlowCommonHist* fCommonHists;              //
117    AliFlowCommonHistResults* fCommonHistsRes;    //
118    
119    TH1F*        fHistRP;                  // reaction plane
120    TProfile*    fHistProIntFlow;          // profile used to calculate the integrated flow of RP particles
121    TProfile2D*  fHistProDiffFlowPtEtaRP;  // profile used to calculate the differential flow (Pt,Eta) of RP particles
122    TProfile*    fHistProDiffFlowPtRP;     // profile used to calculate the differential flow (Pt) of RP particles 
123    TProfile*    fHistProDiffFlowEtaRP;    // profile used to calculate the differential flow (Eta) of RP particles 
124    TProfile2D*  fHistProDiffFlowPtEtaPOI; // profile used to calculate the differential flow (Pt,Eta) of POI particles
125    TProfile*    fHistProDiffFlowPtPOI;    // profile used to calculate the differential flow (Pt) of POI particles 
126    TProfile*    fHistProDiffFlowEtaPOI;   // profile used to calculate the differential flow (Eta) of POI particles
127    TH1D*        fHistSpreadOfFlow;        // histogram filled with NONAME integrated flow calculated e-b-e    
128    
129    ClassDef(AliFlowAnalysisWithMCEventPlane,1)  // Analyse particle distribution versus MC reaction plane
130      };
131
132      
133 #endif
134
135