Initial check-in of the model classes
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemto / Model / AliFemtoModelCorrFctn.h
1 ////////////////////////////////////////////////////////////////////////////////
2 ///                                                                          ///
3 /// AliFemtoModelCorrFctn - the base class for correlation function which    ///
4 /// uses the model framework and weight generation                           ///
5 ///                                                                          ///
6 ////////////////////////////////////////////////////////////////////////////////
7 #ifndef AliFemtoModelCorrFctn_hh
8 #define AliFemtoModelCorrFctn_hh
9
10 #include "Base/AliFemtoCorrFctn.h"
11 #include "Infrastructure/AliFemtoPair.h"
12 #include "AliFemtoModelManager.h"
13
14 class AliFemtoModelCorrFctn: public AliFemtoCorrFctn {
15
16 public:
17   AliFemtoModelCorrFctn();
18   AliFemtoModelCorrFctn(const char *title, Int_t aNbins, Double_t aQinvLo, Double_t aQinvHi);
19   AliFemtoModelCorrFctn(const AliFemtoModelCorrFctn& aCorrFctn);
20   virtual ~AliFemtoModelCorrFctn();
21
22   AliFemtoModelCorrFctn& operator=(const AliFemtoModelCorrFctn& aCorrFctn);
23
24   virtual void ConnectToManager(AliFemtoModelManager *aManager);
25
26   virtual AliFemtoString Report();
27
28   virtual void AddRealPair(AliFemtoPair* aPair);
29   virtual void AddMixedPair(AliFemtoPair* aPir);
30
31   virtual void EventBegin(const AliFemtoEvent* aEvent);
32   virtual void EventEnd(const AliFemtoEvent* aEvent);
33   virtual void Finish();
34
35   virtual void Write();
36
37   virtual AliFemtoModelCorrFctn* Clone();
38
39   AliFemtoBaseAnalysis* HbtAnalysis(){return fyAnalysis;};
40   void SetAnalysis(AliFemtoBaseAnalysis* aAnalysis);
41
42 protected:
43   AliFemtoModelManager *fManager; // Link back to the managet to get the weights
44   
45   TH1D *fNumeratorTrue; // Numerator made with pairs from the same event
46   TH1D *fNumeratorFake; // Numerator made with pairs from different events (mixed pairs)
47   TH1D *fDenominator;   // Denominator made with mixed pairs
48
49 private:
50
51 #ifdef __ROOT__
52   ClassDef(AliFemtoModelCorrFctn, 1)
53 #endif
54 };
55
56 #endif