ROOT logo
////////////////////////////////////////////////////////////////////////////////
//                                                                            //
// AliFemtoCorrFctnDEtaDPhi - A correlation function that analyzes            //
// two particle correlations with respect to the azimuthal angle (phi)        //
// and pseudorapidity (eta) difference                                        //
//                                                                            //
// Authors: Adam Kisiel Adam.Kisiel@cern.ch                                   //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////

#ifndef ALIFEMTOCORRFCTNDETADPHI_H
#define ALIFEMTOCORRFCTNDETADPHI_H

#include "TH1D.h"
#include "TH2D.h"
#include "THnSparse.h"
#include "AliFemtoCorrFctn.h"

class AliFemtoCorrFctnDEtaDPhi : public AliFemtoCorrFctn {
public:
  enum CorrectionType {kNone=0, kPt=1, kEta=2};
  typedef enum CorrectionType ReadCorrectionType;

  AliFemtoCorrFctnDEtaDPhi(char* title, const int& aPhiBins, const int& aEtaBins);
  AliFemtoCorrFctnDEtaDPhi(const AliFemtoCorrFctnDEtaDPhi& aCorrFctn);
  virtual ~AliFemtoCorrFctnDEtaDPhi();

  AliFemtoCorrFctnDEtaDPhi& operator=(const AliFemtoCorrFctnDEtaDPhi& aCorrFctn);

  virtual AliFemtoString Report();
  virtual void AddRealPair(AliFemtoPair* aPair);
  virtual void AddMixedPair(AliFemtoPair* aPair);

  virtual void Finish();
  void SetDoPtAnalysis(int do2d);
  void SetDo4DCorrectionHist(CorrectionType doCorr);

  void WriteHistos();
  virtual TList* GetOutputList();
private:
  
  TH2D *fDPhiDEtaNumerator;          // Numerator of dEta dPhi function
  TH2D *fDPhiDEtaDenominator;        // Denominator of dEta dPhi function

  TH1D *fDPhiNumerator;              // Numerator of dPhi correlation
  TH1D *fDPhiDenominator;            // Denominator of dPhi correlation

  TH1D *fDCosNumerator;              // Numerator of colinearity correlation
  TH1D *fDCosDenominator;            // Denominator of colinearity correlation

  int   fDoPtAnalysis;               // set to 1 to do 2D Pt analysis

  TH2D *fDPhiPtNumerator;            // Numerator of dPhi correlation vs. Pt min
  TH2D *fDPhiPtDenominator;          // Denominator of dPhi correlation vs. Pt min

  TH2D *fDCosPtNumerator;            // Numerator of colinearity correlation vs. Pt min
  TH2D *fDCosPtDenominator;          // Denominator of colinearity correlation vs. Pt min

  TH1D *fPhi;
  TH1D *fEta;
  TH1D *fPtSumDist;

  TH2D *fYtYtNumerator;
  TH2D *fYtYtDenominator; 

  CorrectionType fIfCorrectionHist;
  THnSparseF *fPtCorrectionsNum;
  THnSparseF *fPtCorrectionsDen;

  THnSparseF *fEtaCorrectionsNum;
  THnSparseF *fEtaCorrectionsDen;

  double fphiL;
  double fphiT;

#ifdef __ROOT__
  ClassDef(AliFemtoCorrFctnDEtaDPhi, 1)
#endif
};


#endif

 AliFemtoCorrFctnDEtaDPhi.h:1
 AliFemtoCorrFctnDEtaDPhi.h:2
 AliFemtoCorrFctnDEtaDPhi.h:3
 AliFemtoCorrFctnDEtaDPhi.h:4
 AliFemtoCorrFctnDEtaDPhi.h:5
 AliFemtoCorrFctnDEtaDPhi.h:6
 AliFemtoCorrFctnDEtaDPhi.h:7
 AliFemtoCorrFctnDEtaDPhi.h:8
 AliFemtoCorrFctnDEtaDPhi.h:9
 AliFemtoCorrFctnDEtaDPhi.h:10
 AliFemtoCorrFctnDEtaDPhi.h:11
 AliFemtoCorrFctnDEtaDPhi.h:12
 AliFemtoCorrFctnDEtaDPhi.h:13
 AliFemtoCorrFctnDEtaDPhi.h:14
 AliFemtoCorrFctnDEtaDPhi.h:15
 AliFemtoCorrFctnDEtaDPhi.h:16
 AliFemtoCorrFctnDEtaDPhi.h:17
 AliFemtoCorrFctnDEtaDPhi.h:18
 AliFemtoCorrFctnDEtaDPhi.h:19
 AliFemtoCorrFctnDEtaDPhi.h:20
 AliFemtoCorrFctnDEtaDPhi.h:21
 AliFemtoCorrFctnDEtaDPhi.h:22
 AliFemtoCorrFctnDEtaDPhi.h:23
 AliFemtoCorrFctnDEtaDPhi.h:24
 AliFemtoCorrFctnDEtaDPhi.h:25
 AliFemtoCorrFctnDEtaDPhi.h:26
 AliFemtoCorrFctnDEtaDPhi.h:27
 AliFemtoCorrFctnDEtaDPhi.h:28
 AliFemtoCorrFctnDEtaDPhi.h:29
 AliFemtoCorrFctnDEtaDPhi.h:30
 AliFemtoCorrFctnDEtaDPhi.h:31
 AliFemtoCorrFctnDEtaDPhi.h:32
 AliFemtoCorrFctnDEtaDPhi.h:33
 AliFemtoCorrFctnDEtaDPhi.h:34
 AliFemtoCorrFctnDEtaDPhi.h:35
 AliFemtoCorrFctnDEtaDPhi.h:36
 AliFemtoCorrFctnDEtaDPhi.h:37
 AliFemtoCorrFctnDEtaDPhi.h:38
 AliFemtoCorrFctnDEtaDPhi.h:39
 AliFemtoCorrFctnDEtaDPhi.h:40
 AliFemtoCorrFctnDEtaDPhi.h:41
 AliFemtoCorrFctnDEtaDPhi.h:42
 AliFemtoCorrFctnDEtaDPhi.h:43
 AliFemtoCorrFctnDEtaDPhi.h:44
 AliFemtoCorrFctnDEtaDPhi.h:45
 AliFemtoCorrFctnDEtaDPhi.h:46
 AliFemtoCorrFctnDEtaDPhi.h:47
 AliFemtoCorrFctnDEtaDPhi.h:48
 AliFemtoCorrFctnDEtaDPhi.h:49
 AliFemtoCorrFctnDEtaDPhi.h:50
 AliFemtoCorrFctnDEtaDPhi.h:51
 AliFemtoCorrFctnDEtaDPhi.h:52
 AliFemtoCorrFctnDEtaDPhi.h:53
 AliFemtoCorrFctnDEtaDPhi.h:54
 AliFemtoCorrFctnDEtaDPhi.h:55
 AliFemtoCorrFctnDEtaDPhi.h:56
 AliFemtoCorrFctnDEtaDPhi.h:57
 AliFemtoCorrFctnDEtaDPhi.h:58
 AliFemtoCorrFctnDEtaDPhi.h:59
 AliFemtoCorrFctnDEtaDPhi.h:60
 AliFemtoCorrFctnDEtaDPhi.h:61
 AliFemtoCorrFctnDEtaDPhi.h:62
 AliFemtoCorrFctnDEtaDPhi.h:63
 AliFemtoCorrFctnDEtaDPhi.h:64
 AliFemtoCorrFctnDEtaDPhi.h:65
 AliFemtoCorrFctnDEtaDPhi.h:66
 AliFemtoCorrFctnDEtaDPhi.h:67
 AliFemtoCorrFctnDEtaDPhi.h:68
 AliFemtoCorrFctnDEtaDPhi.h:69
 AliFemtoCorrFctnDEtaDPhi.h:70
 AliFemtoCorrFctnDEtaDPhi.h:71
 AliFemtoCorrFctnDEtaDPhi.h:72
 AliFemtoCorrFctnDEtaDPhi.h:73
 AliFemtoCorrFctnDEtaDPhi.h:74
 AliFemtoCorrFctnDEtaDPhi.h:75
 AliFemtoCorrFctnDEtaDPhi.h:76
 AliFemtoCorrFctnDEtaDPhi.h:77
 AliFemtoCorrFctnDEtaDPhi.h:78
 AliFemtoCorrFctnDEtaDPhi.h:79
 AliFemtoCorrFctnDEtaDPhi.h:80
 AliFemtoCorrFctnDEtaDPhi.h:81
 AliFemtoCorrFctnDEtaDPhi.h:82
 AliFemtoCorrFctnDEtaDPhi.h:83