PWGCFfemtoscopyUser converted to native cmake
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / AliFemtoUser / AliFemtoCorrFctnDEtaDPhiCorrections.h
CommitLineData
70c54bac 1////////////////////////////////////////////////////////////////////////////////
2// //
3// AliFemtoCorrFctnDEtaDPhiCorrections - A correlation function that analyzes //
4// two particle correlations with respect to the azimuthal angle (phi) //
5// and pseudorapidity (eta) difference //
6// //
7// Authors: Adam Kisiel Adam.Kisiel@cern.ch //
8// //
9////////////////////////////////////////////////////////////////////////////////
10
11#ifndef ALIFEMTOCORRFCTNDETADPHICORRECTIONS_H
12#define ALIFEMTOCORRFCTNDETADPHICORRECTIONS_H
13
14#include "TH1D.h"
15#include "TH2D.h"
eef80284 16#include "TH1F.h"
17#include "TH2F.h"
18#include "TH3F.h"
19#include "THn.h"
70c54bac 20#include "THnSparse.h"
21#include "TFile.h"
22#include "AliFemtoCorrFctn.h"
23
24class AliFemtoCorrFctnDEtaDPhiCorrections : public AliFemtoCorrFctn {
25public:
26 enum CorrectionType {kNone=0, kPt=1, kEta=2};
0ca38d56 27 enum ParticleType {kNoCorrection=0, kPion=1, kKaon=2, kProton=3, kAll=4, kPionMinus=5, kKaonMinus=6, kProtonMinus=7};
70c54bac 28 typedef enum CorrectionType ReadCorrectionType;
29
30 AliFemtoCorrFctnDEtaDPhiCorrections(char* title, const int& aPhiBins, const int& aEtaBins);
31 AliFemtoCorrFctnDEtaDPhiCorrections(const AliFemtoCorrFctnDEtaDPhiCorrections& aCorrFctn);
32 virtual ~AliFemtoCorrFctnDEtaDPhiCorrections();
33
34 AliFemtoCorrFctnDEtaDPhiCorrections& operator=(const AliFemtoCorrFctnDEtaDPhiCorrections& aCorrFctn);
35
36 virtual AliFemtoString Report();
37 virtual void AddRealPair(AliFemtoPair* aPair);
38 virtual void AddMixedPair(AliFemtoPair* aPair);
39
40 virtual void Finish();
41fa2a11 41 void SetDoFullAnalysis(Bool_t do2d);
70c54bac 42 double CalculateCorrectionWeight(double pT1, double pT2);
0ca38d56 43 double CalculateCorrectionWeight(double pT1);
eef80284 44 double CalculateCorrectionWeight(double pT1, double pT2, double eta1, double eta2, double phi1, double phi2, double zvert1, double zvert2);
45 void LoadCorrectionTabFromROOTFile1D(const char *file, ParticleType partType1, ParticleType partType2);
46 void LoadCorrectionTabFromROOTFile(const char *file, ParticleType partType1, ParticleType partType2, bool doPtCorr, bool doEtaCorr, bool doPhiCorr, bool doZVertCorr);
2bcd668c 47 // void LoadCorrectionTabFromFile(const char *pTtab, const char *corrTab); // Not implemented
2ddcfd01 48 void SetCorrectionTab(ParticleType partType);
70c54bac 49
50 void WriteHistos();
51 virtual TList* GetOutputList();
52private:
53
54 TH2D *fDPhiDEtaNumerator; // Numerator of dEta dPhi function
55 TH2D *fDPhiDEtaDenominator; // Denominator of dEta dPhi function
56
57 TH1D *fDPhiNumerator; // Numerator of dPhi correlation
58 TH1D *fDPhiDenominator; // Denominator of dPhi correlation
59
60 TH1D *fDCosNumerator; // Numerator of colinearity correlation
61 TH1D *fDCosDenominator; // Denominator of colinearity correlation
62
41fa2a11 63 Bool_t fDoFullAnalysis; // set to 1 to do 2D Pt analysis
70c54bac 64
65 TH1D *fPhi;
66 TH1D *fEta;
b569c586 67 TH1D *fPtSumDist;
70c54bac 68
69 TH2D *fYtYtNumerator;
70 TH2D *fYtYtDenominator;
71
70c54bac 72 bool fIfCorrection;
73 THnSparseF *fPtCorrectionsNum;
74 THnSparseF *fPtCorrectionsDen;
75
76 THnSparseF *fEtaCorrectionsNum;
77 THnSparseF *fEtaCorrectionsDen;
78
79 double* fCorrFactorTab;
80 double* fpTab;
81 ParticleType fPartType; // particle type for calculations of correction factor
82
83 double fphiL;
84 double fphiT;
85
eef80284 86 TFile *ifileCorrTab;
87 bool fdoPtCorr;
88 bool fdoEtaCorr;
89 bool fdoPhiCorr;
90 bool fdoZVertCorr;
91 int fpartType1;
92 int fpartType2;
93
94 THnT<float>* fhntReco1;
95 THnT<float>* fhntReco2;
96 TH1F *fh1Reco1;
97 TH1F *fh1Reco2;
98 TH2F *fh2Reco1;
99 TH2F *fh2Reco2;
100 TH3F *fh3Reco1;
101 TH3F *fh3Reco2;
102 TH1D *fhCont1;
103 TH1D *fhCont2;
2ddcfd01 104
a0179664 105 bool fCorr1D;
106
70c54bac 107#ifdef __ROOT__
108 ClassDef(AliFemtoCorrFctnDEtaDPhiCorrections, 1)
109#endif
110};
111
112
113#endif
114