1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
7 #ifndef AliFlowAnalysisWithLeeYangZeros_H
8 #define AliFlowAnalysisWithLeeYangZeros_H
10 #include "AliFlowVector.h" //needed as include
12 class AliFlowTrackSimple;
13 class AliFlowEventSimple;
14 class AliFlowLYZHist1;
15 class AliFlowLYZHist2;
16 class AliFlowCommonHist;
17 class AliFlowCommonHistResults;
30 // Description: Maker to analyze Flow by the LeeYangZeros method
31 // One needs to do two runs over the data;
32 // First to calculate the integrated flow
33 // and in the second to calculate the differential flow
35 class AliFlowAnalysisWithLeeYangZeros {
39 AliFlowAnalysisWithLeeYangZeros(); //default constructor
40 virtual ~AliFlowAnalysisWithLeeYangZeros(); //destructor
42 Bool_t Init(); //defines variables and histograms
43 Bool_t Make(AliFlowEventSimple* fEvent); //calculates variables and fills histograms
44 Bool_t Finish(); //saves histograms
46 Double_t GetQtheta(TVector2 fQ, Double_t fTheta);
48 void SetFirstRun(Bool_t kt) { this->fFirstRun = kt ; }
49 Bool_t GetFirstRun() const { return this->fFirstRun ; }
50 void SetUseSum(Bool_t kt) { this->fUseSum = kt ; }
51 Bool_t GetUseSum() const { return this->fUseSum ; }
52 void SetDoubleLoop(Bool_t kt) { this->fDoubleLoop = kt ; }
53 Bool_t GetDoubleLoop() const { return this->fDoubleLoop ; }
54 void SetDebug(Bool_t kt) { this->fDebug = kt ; }
55 Bool_t GetDebug() const { return this->fDebug ; }
59 void SetHistFileName(TString name) { this->fHistFileName = name ; } // Sets output file name
60 TString GetHistFileName() const { return this->fHistFileName ; } // Gets output file name
61 TFile* GetHistFile() const { return this->fHistFile ; } // Gets output file
63 // input for second run
64 void SetFirstRunFileName(TString name) { this->firstRunFileName = name ; } // Sets input file name
65 TString GetFirstRunFileName() const { return this->firstRunFileName ; } // Gets output file name
66 void SetFirstRunFile(TFile* file) { this->firstRunFile = file ; } // Sets first run file
70 AliFlowAnalysisWithLeeYangZeros(const AliFlowAnalysisWithLeeYangZeros& aAnalysis);
71 AliFlowAnalysisWithLeeYangZeros& operator=(const AliFlowAnalysisWithLeeYangZeros& aAnalysis);
73 Bool_t MakeControlHistograms(AliFlowEventSimple* fEvent);
74 Bool_t FillFromFlowEvent(AliFlowEventSimple* fEvent);
75 Bool_t SecondFillFromFlowEvent(AliFlowEventSimple* fEvent);
77 TComplex GetGrtheta(AliFlowEventSimple* fEvent, Double_t fR, Double_t fTheta);
78 TComplex GetDiffFlow(AliFlowEventSimple* fEvent, Double_t fR, Int_t theta);
79 Double_t GetR0(TH1D* fHistGtheta);
84 AliFlowVector fQ; // flow vector
85 TVector2 fQsum; // flow vector sum
86 Double_t fQ2sum; // flow vector sum squared
87 Double_t fQtheta; // flow vector projected on ref. angle theta
91 Int_t fEventNumber; // event counter
92 Int_t fMult; // multiplicity
93 Int_t fNbins; // number of bins
94 Double_t fTheta; // ref. angle theta
96 AliFlowEventSimple* fEvent ; //!
97 AliFlowTrackSimple* fTrack ; //!
99 Bool_t fFirstRun ; //! flag for lyz analysis: true=first run over data, false=second run
100 Bool_t fUseSum ; //! flag for lyz analysis: true=use sum gen.function, false=use product gen.function
101 Bool_t fDoubleLoop ; //! flag for studying non flow effects
102 Bool_t fDebug ; //! flag for lyz analysis: more print statements
104 TString fHistFileName; //!
105 TFile* fHistFile; //!
106 TFile* fSummaryFile; //!
107 TString firstRunFileName; //!
108 TFile* firstRunFile; //!
111 TProfile* fHistProVtheta; //!
112 TProfile* fHistProVeta; //!
113 TProfile* fHistProVPt; //!
114 TProfile* fHistProR0theta; //!
115 TProfile* fHistProReDenom; //!
116 TProfile* fHistProImDenom; //!
117 TProfile* fHistProReDtheta; //!
118 TProfile* fHistProImDtheta; //!
121 //class AliFlowLYZHist1 defines the histograms: fHistProGtheta, fHistProReGtheta, fHistProImGtheta
122 AliFlowLYZHist1* fHist1[5]; //!
124 //class AliFlowLYZHist1 defines the histograms: fHistProReNumer, fHistProImNumer, fHistProReNumerPt,
125 //fHistProImNumerPt, fHistProReNumer2D, fHistProImNumer2D.
126 AliFlowLYZHist2* fHist2[5]; //!
128 AliFlowCommonHist* fCommonHists; //!
129 AliFlowCommonHistResults* fCommonHistsRes; //!
132 ClassDef(AliFlowAnalysisWithLeeYangZeros,0) // macro for rootcint