ROOT logo
////////////////////////////////////////////////////////////////////////////////
///                                                                          ///
/// AliFemtoModelBPLCMSCorrFctn - the class for correlation function which   ///
/// uses the model framework and weight generation and calculated the 3D     ///
/// correlation function in the Bertsh-Pratt LCMS system                     ///
/// Authors: Adam Kisiel, kisiel@mps.ohio-state.edu                          ///
///                                                                          ///
////////////////////////////////////////////////////////////////////////////////
#ifndef ALIFEMTOMODELBPLCMSCORRFCTNKK_H
#define ALIFEMTOMODELBPLCMSCORRFCTNKK_H

#include "AliFemtoCorrFctn.h"
#include "AliFemtoModelCorrFctn.h"
#include "AliFemtoPairCut.h"
#include "TH3D.h"

class AliFemtoModelBPLCMSCorrFctnKK : public AliFemtoModelCorrFctn {
 public:
  AliFemtoModelBPLCMSCorrFctnKK()  :
    AliFemtoModelCorrFctn(),
    fNumerator3DTrue(0),
    fNumerator3DFake(0),
    fDenominator3D(0),
    fQinvHisto(0),
    fPairCut(0),
    fUseRPSelection(0),
    fNumerator3DTrueIdeal(0),
    fNumerator3DFakeIdeal(0),
    fDenominator3DIdeal(0){}
  AliFemtoModelBPLCMSCorrFctnKK(char* title, const int& nbins, const float& QLo, const float& QHi);
  AliFemtoModelBPLCMSCorrFctnKK(const AliFemtoModelBPLCMSCorrFctnKK& aCorrFctn);
  virtual ~AliFemtoModelBPLCMSCorrFctnKK();

  AliFemtoModelBPLCMSCorrFctnKK& operator=(const AliFemtoModelBPLCMSCorrFctnKK& aCorrFctn);

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

  virtual void Finish();

  virtual void Write();
  virtual TList* GetOutputList();

  void SetSpecificPairCut(AliFemtoPairCut* aCut);
  void SetUseRPSelection(unsigned short aRPSel);

  //ml
  Double_t GetQinvTrue(AliFemtoPair*);
  Double_t GetQoutTrue(AliFemtoPair*);
  Double_t GetQsideTrue(AliFemtoPair*);
  Double_t GetQlongTrue(AliFemtoPair*);


  virtual AliFemtoModelCorrFctn* Clone();

protected:
  TH3D* fNumerator3DTrue;            // 3D Numerator with pairs from same event only
  TH3D* fNumerator3DFake;            // 3D Numerator with pairs from mixed events
  TH3D* fDenominator3D;              // 3D Denominator with the weight of 1.0

  TH3D* fQinvHisto;                  // Averag qinv histogram


  //ml

  AliFemtoPairCut* fPairCut;    //! this is a PairCut specific to THIS CorrFctn, not the Analysis
  unsigned short fUseRPSelection;  // The pair cut uses RP selection

  TH3D *fNumerator3DTrueIdeal; // Numerator made with pairs (true qosl) from the same event
  TH3D *fNumerator3DFakeIdeal; // Numerator made with pairs (true qosl) from different events (mixed pairs)
  TH3D *fDenominator3DIdeal;   // Denominator made with mixed pairs (true qosl)




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

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