#ifndef ALIFEMTOCORRFCTNDETADPHICORRECTIONS_H
#define ALIFEMTOCORRFCTNDETADPHICORRECTIONS_H
#include "TH1D.h"
#include "TH2D.h"
#include "TH1F.h"
#include "TH2F.h"
#include "TH3F.h"
#include "THn.h"
#include "THnSparse.h"
#include "TFile.h"
#include "AliFemtoCorrFctn.h"
class AliFemtoCorrFctnDEtaDPhiCorrections : public AliFemtoCorrFctn {
public:
enum CorrectionType {kNone=0, kPt=1, kEta=2};
enum ParticleType {kNoCorrection=0, kPion=1, kKaon=2, kProton=3, kAll=4, kPionMinus=5, kKaonMinus=6, kProtonMinus=7};
typedef enum CorrectionType ReadCorrectionType;
AliFemtoCorrFctnDEtaDPhiCorrections(char* title, const int& aPhiBins, const int& aEtaBins);
AliFemtoCorrFctnDEtaDPhiCorrections(const AliFemtoCorrFctnDEtaDPhiCorrections& aCorrFctn);
virtual ~AliFemtoCorrFctnDEtaDPhiCorrections();
AliFemtoCorrFctnDEtaDPhiCorrections& operator=(const AliFemtoCorrFctnDEtaDPhiCorrections& aCorrFctn);
virtual AliFemtoString Report();
virtual void AddRealPair(AliFemtoPair* aPair);
virtual void AddMixedPair(AliFemtoPair* aPair);
virtual void Finish();
void SetDoFullAnalysis(Bool_t do2d);
double CalculateCorrectionWeight(double pT1, double pT2);
double CalculateCorrectionWeight(double pT1);
double CalculateCorrectionWeight(double pT1, double pT2, double eta1, double eta2, double phi1, double phi2, double zvert1, double zvert2);
void LoadCorrectionTabFromROOTFile1D(const char *file, ParticleType partType1, ParticleType partType2);
void LoadCorrectionTabFromROOTFile(const char *file, ParticleType partType1, ParticleType partType2, bool doPtCorr, bool doEtaCorr, bool doPhiCorr, bool doZVertCorr);
void LoadCorrectionTabFromFile(const char *pTtab, const char *corrTab);
void SetCorrectionTab(ParticleType partType);
void WriteHistos();
virtual TList* GetOutputList();
private:
TH2D *fDPhiDEtaNumerator;
TH2D *fDPhiDEtaDenominator;
TH1D *fDPhiNumerator;
TH1D *fDPhiDenominator;
TH1D *fDCosNumerator;
TH1D *fDCosDenominator;
Bool_t fDoFullAnalysis;
TH1D *fPhi;
TH1D *fEta;
TH1D *fPtSumDist;
TH2D *fYtYtNumerator;
TH2D *fYtYtDenominator;
bool fIfCorrection;
THnSparseF *fPtCorrectionsNum;
THnSparseF *fPtCorrectionsDen;
THnSparseF *fEtaCorrectionsNum;
THnSparseF *fEtaCorrectionsDen;
double* fCorrFactorTab;
double* fpTab;
ParticleType fPartType;
double fphiL;
double fphiT;
TFile *ifileCorrTab;
bool fdoPtCorr;
bool fdoEtaCorr;
bool fdoPhiCorr;
bool fdoZVertCorr;
int fpartType1;
int fpartType2;
THnT<float>* fhntReco1;
THnT<float>* fhntReco2;
TH1F *fh1Reco1;
TH1F *fh1Reco2;
TH2F *fh2Reco1;
TH2F *fh2Reco2;
TH3F *fh3Reco1;
TH3F *fh3Reco2;
TH1D *fhCont1;
TH1D *fhCont2;
bool fCorr1D;
#ifdef __ROOT__
ClassDef(AliFemtoCorrFctnDEtaDPhiCorrections, 1)
#endif
};
#endif
AliFemtoCorrFctnDEtaDPhiCorrections.h:1 AliFemtoCorrFctnDEtaDPhiCorrections.h:2 AliFemtoCorrFctnDEtaDPhiCorrections.h:3 AliFemtoCorrFctnDEtaDPhiCorrections.h:4 AliFemtoCorrFctnDEtaDPhiCorrections.h:5 AliFemtoCorrFctnDEtaDPhiCorrections.h:6 AliFemtoCorrFctnDEtaDPhiCorrections.h:7 AliFemtoCorrFctnDEtaDPhiCorrections.h:8 AliFemtoCorrFctnDEtaDPhiCorrections.h:9 AliFemtoCorrFctnDEtaDPhiCorrections.h:10 AliFemtoCorrFctnDEtaDPhiCorrections.h:11 AliFemtoCorrFctnDEtaDPhiCorrections.h:12 AliFemtoCorrFctnDEtaDPhiCorrections.h:13 AliFemtoCorrFctnDEtaDPhiCorrections.h:14 AliFemtoCorrFctnDEtaDPhiCorrections.h:15 AliFemtoCorrFctnDEtaDPhiCorrections.h:16 AliFemtoCorrFctnDEtaDPhiCorrections.h:17 AliFemtoCorrFctnDEtaDPhiCorrections.h:18 AliFemtoCorrFctnDEtaDPhiCorrections.h:19 AliFemtoCorrFctnDEtaDPhiCorrections.h:20 AliFemtoCorrFctnDEtaDPhiCorrections.h:21 AliFemtoCorrFctnDEtaDPhiCorrections.h:22 AliFemtoCorrFctnDEtaDPhiCorrections.h:23 AliFemtoCorrFctnDEtaDPhiCorrections.h:24 AliFemtoCorrFctnDEtaDPhiCorrections.h:25 AliFemtoCorrFctnDEtaDPhiCorrections.h:26 AliFemtoCorrFctnDEtaDPhiCorrections.h:27 AliFemtoCorrFctnDEtaDPhiCorrections.h:28 AliFemtoCorrFctnDEtaDPhiCorrections.h:29 AliFemtoCorrFctnDEtaDPhiCorrections.h:30 AliFemtoCorrFctnDEtaDPhiCorrections.h:31 AliFemtoCorrFctnDEtaDPhiCorrections.h:32 AliFemtoCorrFctnDEtaDPhiCorrections.h:33 AliFemtoCorrFctnDEtaDPhiCorrections.h:34 AliFemtoCorrFctnDEtaDPhiCorrections.h:35 AliFemtoCorrFctnDEtaDPhiCorrections.h:36 AliFemtoCorrFctnDEtaDPhiCorrections.h:37 AliFemtoCorrFctnDEtaDPhiCorrections.h:38 AliFemtoCorrFctnDEtaDPhiCorrections.h:39 AliFemtoCorrFctnDEtaDPhiCorrections.h:40 AliFemtoCorrFctnDEtaDPhiCorrections.h:41 AliFemtoCorrFctnDEtaDPhiCorrections.h:42 AliFemtoCorrFctnDEtaDPhiCorrections.h:43 AliFemtoCorrFctnDEtaDPhiCorrections.h:44 AliFemtoCorrFctnDEtaDPhiCorrections.h:45 AliFemtoCorrFctnDEtaDPhiCorrections.h:46 AliFemtoCorrFctnDEtaDPhiCorrections.h:47 AliFemtoCorrFctnDEtaDPhiCorrections.h:48 AliFemtoCorrFctnDEtaDPhiCorrections.h:49 AliFemtoCorrFctnDEtaDPhiCorrections.h:50 AliFemtoCorrFctnDEtaDPhiCorrections.h:51 AliFemtoCorrFctnDEtaDPhiCorrections.h:52 AliFemtoCorrFctnDEtaDPhiCorrections.h:53 AliFemtoCorrFctnDEtaDPhiCorrections.h:54 AliFemtoCorrFctnDEtaDPhiCorrections.h:55 AliFemtoCorrFctnDEtaDPhiCorrections.h:56 AliFemtoCorrFctnDEtaDPhiCorrections.h:57 AliFemtoCorrFctnDEtaDPhiCorrections.h:58 AliFemtoCorrFctnDEtaDPhiCorrections.h:59 AliFemtoCorrFctnDEtaDPhiCorrections.h:60 AliFemtoCorrFctnDEtaDPhiCorrections.h:61 AliFemtoCorrFctnDEtaDPhiCorrections.h:62 AliFemtoCorrFctnDEtaDPhiCorrections.h:63 AliFemtoCorrFctnDEtaDPhiCorrections.h:64 AliFemtoCorrFctnDEtaDPhiCorrections.h:65 AliFemtoCorrFctnDEtaDPhiCorrections.h:66 AliFemtoCorrFctnDEtaDPhiCorrections.h:67 AliFemtoCorrFctnDEtaDPhiCorrections.h:68 AliFemtoCorrFctnDEtaDPhiCorrections.h:69 AliFemtoCorrFctnDEtaDPhiCorrections.h:70 AliFemtoCorrFctnDEtaDPhiCorrections.h:71 AliFemtoCorrFctnDEtaDPhiCorrections.h:72 AliFemtoCorrFctnDEtaDPhiCorrections.h:73 AliFemtoCorrFctnDEtaDPhiCorrections.h:74 AliFemtoCorrFctnDEtaDPhiCorrections.h:75 AliFemtoCorrFctnDEtaDPhiCorrections.h:76 AliFemtoCorrFctnDEtaDPhiCorrections.h:77 AliFemtoCorrFctnDEtaDPhiCorrections.h:78 AliFemtoCorrFctnDEtaDPhiCorrections.h:79 AliFemtoCorrFctnDEtaDPhiCorrections.h:80 AliFemtoCorrFctnDEtaDPhiCorrections.h:81 AliFemtoCorrFctnDEtaDPhiCorrections.h:82 AliFemtoCorrFctnDEtaDPhiCorrections.h:83 AliFemtoCorrFctnDEtaDPhiCorrections.h:84 AliFemtoCorrFctnDEtaDPhiCorrections.h:85 AliFemtoCorrFctnDEtaDPhiCorrections.h:86 AliFemtoCorrFctnDEtaDPhiCorrections.h:87 AliFemtoCorrFctnDEtaDPhiCorrections.h:88 AliFemtoCorrFctnDEtaDPhiCorrections.h:89 AliFemtoCorrFctnDEtaDPhiCorrections.h:90 AliFemtoCorrFctnDEtaDPhiCorrections.h:91 AliFemtoCorrFctnDEtaDPhiCorrections.h:92 AliFemtoCorrFctnDEtaDPhiCorrections.h:93 AliFemtoCorrFctnDEtaDPhiCorrections.h:94 AliFemtoCorrFctnDEtaDPhiCorrections.h:95 AliFemtoCorrFctnDEtaDPhiCorrections.h:96 AliFemtoCorrFctnDEtaDPhiCorrections.h:97 AliFemtoCorrFctnDEtaDPhiCorrections.h:98 AliFemtoCorrFctnDEtaDPhiCorrections.h:99 AliFemtoCorrFctnDEtaDPhiCorrections.h:100 AliFemtoCorrFctnDEtaDPhiCorrections.h:101 AliFemtoCorrFctnDEtaDPhiCorrections.h:102 AliFemtoCorrFctnDEtaDPhiCorrections.h:103 AliFemtoCorrFctnDEtaDPhiCorrections.h:104 AliFemtoCorrFctnDEtaDPhiCorrections.h:105 AliFemtoCorrFctnDEtaDPhiCorrections.h:106 AliFemtoCorrFctnDEtaDPhiCorrections.h:107 AliFemtoCorrFctnDEtaDPhiCorrections.h:108 AliFemtoCorrFctnDEtaDPhiCorrections.h:109 AliFemtoCorrFctnDEtaDPhiCorrections.h:110 AliFemtoCorrFctnDEtaDPhiCorrections.h:111 AliFemtoCorrFctnDEtaDPhiCorrections.h:112 AliFemtoCorrFctnDEtaDPhiCorrections.h:113 AliFemtoCorrFctnDEtaDPhiCorrections.h:114