]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/FEMTOSCOPY/AliFemtoUser/AliFemtoModelCorrFctnTrueQ.cxx
Migration of PWG2/FEMTOSCOPY to PWGCF/FEMTOSCOPY
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / AliFemtoUser / AliFemtoModelCorrFctnTrueQ.cxx
1 ////////////////////////////////////////////////////////////////////////////////
2 ///                                                                          ///
3 /// AliFemtoModelCorrFctnTrueQ - the class for correlation function which   ///
4 /// uses the model framework and weight generation and saves the generated   ///
5 /// emission source                                                          ///
6 /// Authors: Adam Kisiel, kisiel@mps.ohio-state.edu                          ///
7 ///                                                                          ///
8 ////////////////////////////////////////////////////////////////////////////////
9 #ifdef __ROOT__
10   ClassImp(AliFemtoModelCorrFctnTrueQ, 1)
11 #endif
12
13 #include "AliFemtoModelGausLCMSFreezeOutGenerator.h"
14 #include "AliFemtoModelHiddenInfo.h"
15 #include "AliFemtoModelCorrFctnTrueQ.h"
16     
17 //_______________________
18 AliFemtoModelCorrFctnTrueQ::AliFemtoModelCorrFctnTrueQ(): 
19   AliFemtoModelCorrFctn(),
20   fTrueNum(0),
21   fTrueDen(0)
22 {
23   // default constructor
24   char buf[100];
25   char title[100] = "CFTrueQ";
26   snprintf(buf , 100,  "%sNum", title);
27   fTrueNum = new TH1D(buf,buf,100,0.0,0.4);
28   snprintf(buf , 100,  "%sDen", title);
29   fTrueDen = new TH1D(buf,buf,100,0.0,0.4);
30
31   fTrueNum->Sumw2();
32   fTrueDen->Sumw2();
33 }
34 //_______________________
35 AliFemtoModelCorrFctnTrueQ::AliFemtoModelCorrFctnTrueQ(const char *title, Int_t aNbins, Double_t aQinvLo, Double_t aQinvHi):
36   AliFemtoModelCorrFctn(title, aNbins, aQinvLo, aQinvHi),
37   fTrueNum(0),
38   fTrueDen(0)
39 {
40   // basic constructor
41   char buf[100];
42   snprintf(buf , 100,  "%sTrueQNum", title);
43   fTrueNum = new TH1D(buf,buf,aNbins,aQinvLo,aQinvHi);
44   snprintf(buf , 100,  "%sTrueQDen", title);
45   fTrueDen = new TH1D(buf,buf,aNbins,aQinvLo,aQinvHi);
46
47   fTrueNum->Sumw2();
48   fTrueDen->Sumw2();
49 }
50 //_______________________
51 AliFemtoModelCorrFctnTrueQ::AliFemtoModelCorrFctnTrueQ(const AliFemtoModelCorrFctnTrueQ& aCorrFctn):
52   AliFemtoModelCorrFctn(aCorrFctn),
53   fTrueNum(0),
54   fTrueDen(0)
55 {
56   // copy constructor
57   fTrueNum = new TH1D(*aCorrFctn.fTrueNum);
58   fTrueDen = new TH1D(*aCorrFctn.fTrueDen);
59 }
60 //_______________________
61 AliFemtoModelCorrFctnTrueQ::~AliFemtoModelCorrFctnTrueQ()
62 {
63   // destructor
64   if (fTrueNum) delete fTrueNum;
65   if (fTrueDen) delete fTrueDen;
66   if (fNumeratorTrue) delete fNumeratorTrue;
67   if (fNumeratorFake) delete fNumeratorFake;
68   if (fDenominator) delete fDenominator;
69 }
70
71 //_______________________
72 AliFemtoModelCorrFctnTrueQ& AliFemtoModelCorrFctnTrueQ::operator=(const AliFemtoModelCorrFctnTrueQ& aCorrFctn)
73 {
74   // assignment operator
75   if (this == &aCorrFctn) 
76     return *this;
77   if (aCorrFctn.fTrueNum)
78     fTrueNum = new TH1D (*aCorrFctn.fTrueNum);
79   else fTrueNum = 0;
80   if (aCorrFctn.fTrueDen)
81     fTrueDen = new TH1D(*aCorrFctn.fTrueDen);
82   else fTrueDen = 0;
83
84   return *this;
85 }
86 //_______________________
87 AliFemtoString AliFemtoModelCorrFctnTrueQ::Report()
88 {
89   // construct report
90   AliFemtoString tStr = "AliFemtoModelCorrFctnTrueQ report";
91
92   return tStr;
93 }
94
95 //_______________________
96 void AliFemtoModelCorrFctnTrueQ::AddRealPair(AliFemtoPair* aPair)
97 {
98   // add real (effect) pair
99   AliFemtoModelCorrFctn::AddRealPair(aPair);
100   fTrueNum->Fill(fManager->GetWeightGenerator()->GetKStar()*2);
101 }
102 //_______________________
103 void AliFemtoModelCorrFctnTrueQ::AddMixedPair(AliFemtoPair* aPair)
104 {
105   // add mixed (background) pair
106   AliFemtoModelCorrFctn::AddMixedPair(aPair);
107   // save the generated positions
108   fTrueDen->Fill(fManager->GetWeightGenerator()->GetKStar()*2);
109 }
110 //_______________________
111 void AliFemtoModelCorrFctnTrueQ::Write()
112 {
113   // write out all the histograms
114   fTrueNum->Write();
115   fTrueDen->Write();
116   
117   AliFemtoModelCorrFctn::Write();
118 }
119 //_______________________
120 TList* AliFemtoModelCorrFctnTrueQ::GetOutputList()
121 {
122   // Prepare the list of objects to be written to the output
123   TList *tOutputList = AliFemtoModelCorrFctn::GetOutputList();
124
125   tOutputList->Add(fTrueNum); 
126   tOutputList->Add(fTrueDen);  
127
128   return tOutputList;
129 }
130 //_______________________
131 AliFemtoModelCorrFctn* AliFemtoModelCorrFctnTrueQ::Clone()
132 {
133   // Clone the correlation function
134   AliFemtoModelCorrFctnTrueQ *tCopy = new AliFemtoModelCorrFctnTrueQ(*this);
135   
136   return tCopy;
137 }
138