1 ////////////////////////////////////////////////////////////////////////////////
3 /// AliFemtoModelCorrFctn - the base class for correlation function which ///
4 /// uses the model framework and weight generation ///
6 ////////////////////////////////////////////////////////////////////////////////
8 ClassImp(AliFemtoModelCorrFctn, 1)
11 #include "AliFemtoModelGausLCMSFreezeOutGenerator.h"
12 #include "AliFemtoModelHiddenInfo.h"
13 #include "AliFemtoModelCorrFctn.h"
15 //_______________________
16 AliFemtoModelCorrFctn::AliFemtoModelCorrFctn():
22 fNumeratorTrue = new TH1D("ModelNumTrue","ModelNumTrue",50,0.0,0.5);
23 fNumeratorFake = new TH1D("ModelNumFake","ModelNumFake",50,0.0,0.5);
24 fDenominator = new TH1D("ModelDen","ModelDen",50,0.0,0.5);
26 fNumeratorTrue->Sumw2();
27 fNumeratorFake->Sumw2();
28 fDenominator->Sumw2();
30 //_______________________
31 AliFemtoModelCorrFctn::AliFemtoModelCorrFctn(const char *title, Int_t aNbins, Double_t aQinvLo, Double_t aQinvHi):
38 sprintf(buf, "NumTrue%s", title);
39 fNumeratorTrue = new TH1D(buf,buf,aNbins,aQinvLo,aQinvHi);
40 sprintf(buf, "NumFake%s", title);
41 fNumeratorFake = new TH1D(buf,buf,aNbins,aQinvLo,aQinvHi);
42 sprintf(buf, "Den%s", title);
43 fDenominator = new TH1D(buf,buf,aNbins,aQinvLo,aQinvHi);
45 fNumeratorTrue->Sumw2();
46 fNumeratorFake->Sumw2();
47 fDenominator->Sumw2();
49 //_______________________
50 AliFemtoModelCorrFctn::AliFemtoModelCorrFctn(const AliFemtoModelCorrFctn& aCorrFctn) :
56 if (aCorrFctn.fNumeratorTrue)
57 fNumeratorTrue = new TH1D(*(aCorrFctn.fNumeratorTrue));
58 if (aCorrFctn.fNumeratorFake)
59 fNumeratorFake = new TH1D(*(aCorrFctn.fNumeratorFake));
60 if (aCorrFctn.fDenominator)
61 fDenominator = new TH1D(*(aCorrFctn.fDenominator));
62 fManager = aCorrFctn.fManager;
64 //_______________________
65 AliFemtoModelCorrFctn::~AliFemtoModelCorrFctn()
67 if (fNumeratorTrue) delete fNumeratorTrue;
68 if (fNumeratorFake) delete fNumeratorFake;
69 if (fDenominator) delete fDenominator;
71 //_______________________
72 AliFemtoModelCorrFctn& AliFemtoModelCorrFctn::operator=(const AliFemtoModelCorrFctn& aCorrFctn)
74 if (this == &aCorrFctn)
77 if (aCorrFctn.fNumeratorTrue)
78 fNumeratorTrue = new TH1D(*(aCorrFctn.fNumeratorTrue));
81 if (aCorrFctn.fNumeratorFake)
82 fNumeratorFake = new TH1D(*(aCorrFctn.fNumeratorFake));
85 if (aCorrFctn.fDenominator)
86 fDenominator = new TH1D(*(aCorrFctn.fDenominator));
89 fManager = aCorrFctn.fManager;
93 //_______________________
94 void AliFemtoModelCorrFctn::ConnectToManager(AliFemtoModelManager *aManager)
99 //_______________________
100 AliFemtoString AliFemtoModelCorrFctn::Report()
102 AliFemtoString tStr = "AliFemtoModelCorrFctn report";
107 //_______________________
108 void AliFemtoModelCorrFctn::AddRealPair(AliFemtoPair* aPair)
110 Double_t weight = fManager->GetWeight(aPair);
111 fNumeratorTrue->Fill(aPair->qInv(), weight);
113 //_______________________
114 void AliFemtoModelCorrFctn::AddMixedPair(AliFemtoPair* aPair)
116 Double_t weight = fManager->GetWeight(aPair);
117 fNumeratorFake->Fill(aPair->qInv(), weight);
118 fDenominator->Fill(aPair->qInv(), 1.0);
120 //_______________________
121 void AliFemtoModelCorrFctn::EventBegin(const AliFemtoEvent* aEvent)
125 //_______________________
126 void AliFemtoModelCorrFctn::EventEnd(const AliFemtoEvent* aEvent)
130 //_______________________
131 void AliFemtoModelCorrFctn::Finish()
135 //_______________________
136 void AliFemtoModelCorrFctn::Write()
138 fNumeratorTrue->Write();
139 fNumeratorFake->Write();
140 fDenominator->Write();
142 //_______________________
143 AliFemtoModelCorrFctn* AliFemtoModelCorrFctn::Clone()
145 AliFemtoModelCorrFctn *tCopy = new AliFemtoModelCorrFctn(*this);