ROOT logo
////////////////////////////////////////////////////////////////////////////////
///                                                                          ///
/// AliFemtoModelCorrFctn - the base class for correlation function which    ///
/// uses the model framework and weight generation                           ///
///                                                                          ///
////////////////////////////////////////////////////////////////////////////////
#ifndef ALIFEMTOMODELCORRFCTN_H
#define ALIFEMTOMODELCORRFCTN_H

#include "AliFemtoCorrFctn.h"
class AliFemtoPair;
class AliFemtoModelManager;
class TH1D;
class TH2D;

class AliFemtoModelCorrFctn: public AliFemtoCorrFctn {

public:
  AliFemtoModelCorrFctn();
  AliFemtoModelCorrFctn(const char *title, Int_t aNbins, Double_t aQinvLo, Double_t aQinvHi);
  AliFemtoModelCorrFctn(const AliFemtoModelCorrFctn& aCorrFctn);
  virtual ~AliFemtoModelCorrFctn();

  AliFemtoModelCorrFctn& operator=(const AliFemtoModelCorrFctn& aCorrFctn);

  virtual void ConnectToManager(AliFemtoModelManager *aManager);

  virtual AliFemtoString Report();

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

  virtual void EventBegin(const AliFemtoEvent* aEvent);
  virtual void EventEnd(const AliFemtoEvent* aEvent);
  virtual void Finish();

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

  virtual AliFemtoModelCorrFctn* Clone();

  Double_t GetQinvTrue(AliFemtoPair*);

protected:
  AliFemtoModelManager *fManager; // Link back to the manager to get the weights

  TH1D *fNumeratorTrue; // Numerator made with pairs from the same event
  TH1D *fNumeratorFake; // Numerator made with pairs from different events (mixed pairs)
  TH1D *fDenominator;   // Denominator made with mixed pairs

  TH1D *fNumeratorTrueIdeal; // Numerator made with pairs (true qinv) from the same event
  TH1D *fNumeratorFakeIdeal; // Numerator made with pairs (true qinv) from different events (mixed pairs)
  TH1D *fDenominatorIdeal;   // Denominator made with mixed pairs (true qinv)

  TH2D *fQgenQrec; // Qinv true (generated) vs. Qinv reconstructed


private:

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

#endif
 AliFemtoModelCorrFctn.h:1
 AliFemtoModelCorrFctn.h:2
 AliFemtoModelCorrFctn.h:3
 AliFemtoModelCorrFctn.h:4
 AliFemtoModelCorrFctn.h:5
 AliFemtoModelCorrFctn.h:6
 AliFemtoModelCorrFctn.h:7
 AliFemtoModelCorrFctn.h:8
 AliFemtoModelCorrFctn.h:9
 AliFemtoModelCorrFctn.h:10
 AliFemtoModelCorrFctn.h:11
 AliFemtoModelCorrFctn.h:12
 AliFemtoModelCorrFctn.h:13
 AliFemtoModelCorrFctn.h:14
 AliFemtoModelCorrFctn.h:15
 AliFemtoModelCorrFctn.h:16
 AliFemtoModelCorrFctn.h:17
 AliFemtoModelCorrFctn.h:18
 AliFemtoModelCorrFctn.h:19
 AliFemtoModelCorrFctn.h:20
 AliFemtoModelCorrFctn.h:21
 AliFemtoModelCorrFctn.h:22
 AliFemtoModelCorrFctn.h:23
 AliFemtoModelCorrFctn.h:24
 AliFemtoModelCorrFctn.h:25
 AliFemtoModelCorrFctn.h:26
 AliFemtoModelCorrFctn.h:27
 AliFemtoModelCorrFctn.h:28
 AliFemtoModelCorrFctn.h:29
 AliFemtoModelCorrFctn.h:30
 AliFemtoModelCorrFctn.h:31
 AliFemtoModelCorrFctn.h:32
 AliFemtoModelCorrFctn.h:33
 AliFemtoModelCorrFctn.h:34
 AliFemtoModelCorrFctn.h:35
 AliFemtoModelCorrFctn.h:36
 AliFemtoModelCorrFctn.h:37
 AliFemtoModelCorrFctn.h:38
 AliFemtoModelCorrFctn.h:39
 AliFemtoModelCorrFctn.h:40
 AliFemtoModelCorrFctn.h:41
 AliFemtoModelCorrFctn.h:42
 AliFemtoModelCorrFctn.h:43
 AliFemtoModelCorrFctn.h:44
 AliFemtoModelCorrFctn.h:45
 AliFemtoModelCorrFctn.h:46
 AliFemtoModelCorrFctn.h:47
 AliFemtoModelCorrFctn.h:48
 AliFemtoModelCorrFctn.h:49
 AliFemtoModelCorrFctn.h:50
 AliFemtoModelCorrFctn.h:51
 AliFemtoModelCorrFctn.h:52
 AliFemtoModelCorrFctn.h:53
 AliFemtoModelCorrFctn.h:54
 AliFemtoModelCorrFctn.h:55
 AliFemtoModelCorrFctn.h:56
 AliFemtoModelCorrFctn.h:57
 AliFemtoModelCorrFctn.h:58
 AliFemtoModelCorrFctn.h:59
 AliFemtoModelCorrFctn.h:60
 AliFemtoModelCorrFctn.h:61
 AliFemtoModelCorrFctn.h:62
 AliFemtoModelCorrFctn.h:63
 AliFemtoModelCorrFctn.h:64
 AliFemtoModelCorrFctn.h:65