1 /***************************************************************************
3 * $Id: AliFemtoQinvCorrFctnEMCIC.cxx $
5 * Author: Nicolas Bock, Ohio State University, bock@mps.ohio-state.edu
6 ***************************************************************************
8 * Description: Calculates of the Qinv Correlation Function, and also
9 * produces histograms to calculate EMCICs
11 ***************************************************************************
13 **************************************************************************/
16 #include "AliFemtoQinvCorrFctnEMCIC.h"
17 //#include "AliFemtoHisto.h"
22 ClassImp(AliFemtoQinvCorrFctnEMCIC)
25 //____________________________
26 AliFemtoQinvCorrFctnEMCIC::AliFemtoQinvCorrFctnEMCIC(char* title, const int& nbins, const float& QinvLo, const float& QinvHi):
27 AliFemtoQinvCorrFctn(title, nbins, QinvLo, QinvHi),
40 // set up emcic histograms
41 /*char tTitESum[100] = "ESumReal";
42 strncat(tTitESum,title, 100);
43 fESumReal = new TH1D(tTitESum,title,nbins,QinvLo,QinvHi);
44 char tTitEMult[100] = "EMultReal";
45 strncat(tTitEMult,title, 100);
46 fEMultReal = new TH1D(tTitEMult,title,nbins,QinvLo,QinvHi);
47 char tTitPt[100] = "PtMultReal";
48 strncat(tTitPt,title, 100);
49 fPtMultReal = new TH1D(tTitPt,title,nbins,QinvLo,QinvHi);
50 char tTitPz[100] = "PzMultReal";
51 strncat(tTitPz,title, 100);
52 fPzMultReal = new TH1D(tTitPz,title,nbins,QinvLo,QinvHi);*/
54 char tTitESum2[101] = "ESumMix";
55 strncat(tTitESum2,title, 100);
56 fESumMix = new TH1D(tTitESum2,title,nbins,QinvLo,QinvHi);
57 char tTitEMult2[101] = "EMultMix";
58 strncat(tTitEMult2,title, 100);
59 fEMultMix = new TH1D(tTitEMult2,title,nbins,QinvLo,QinvHi);
60 char tTitPt2[101] = "PtMultMix";
61 strncat(tTitPt2,title, 100);
62 fPtMultMix = new TH1D(tTitPt2,title,nbins,QinvLo,QinvHi);
63 char tTitPz2[101] = "PzMultMix";
64 strncat(tTitPz2,title, 100);
65 fPzMultMix = new TH1D(tTitPz2,title,nbins,QinvLo,QinvHi);
69 // to enable error bar calculation...
71 /* fESumReal->Sumw2();
74 fPzMultReal->Sumw2();*/
81 //____________________________
82 AliFemtoQinvCorrFctnEMCIC::AliFemtoQinvCorrFctnEMCIC(const AliFemtoQinvCorrFctnEMCIC& aCorrFctn) :
83 AliFemtoQinvCorrFctn(aCorrFctn),
95 /*fESumReal= new TH1D(*aCorrFctn.fESumReal);
96 fEMultReal= new TH1D(*aCorrFctn.fEMultReal);
97 fPtMultReal= new TH1D(*aCorrFctn.fPtMultReal);
98 fPzMultReal= new TH1D(*aCorrFctn.fPzMultReal);*/
99 fESumMix= new TH1D(*aCorrFctn.fESumMix);
100 fEMultMix= new TH1D(*aCorrFctn.fEMultMix);
101 fPtMultMix= new TH1D(*aCorrFctn.fPtMultMix);
102 fPzMultMix= new TH1D(*aCorrFctn.fPzMultMix);
105 //____________________________
106 AliFemtoQinvCorrFctnEMCIC::~AliFemtoQinvCorrFctnEMCIC(){
112 delete fPzMultReal;*/
119 //_________________________
120 AliFemtoQinvCorrFctnEMCIC& AliFemtoQinvCorrFctnEMCIC::operator=(const AliFemtoQinvCorrFctnEMCIC& aCorrFctn)
122 // assignment operator
123 if (this == &aCorrFctn)
126 /*if (fESumReal) delete fESumReal;
127 fESumReal= new TH1D(*aCorrFctn.fESumReal);
128 if (fEMultReal) delete fEMultReal;
129 fEMultReal= new TH1D(*aCorrFctn.fEMultReal);
130 if (fPtMultReal) delete fPtMultReal;
131 fPtMultReal= new TH1D(*aCorrFctn.fPtMultReal);
132 if (fPzMultReal) delete fPzMultReal;
133 fPzMultReal= new TH1D(*aCorrFctn.fPzMultReal);
134 if (fESumMix) delete fESumMix;*/
136 fESumMix= new TH1D(*aCorrFctn.fESumMix);
137 if (fEMultMix) delete fEMultMix;
138 fEMultMix= new TH1D(*aCorrFctn.fEMultMix);
139 if (fPtMultMix) delete fPtMultMix;
140 fPtMultMix= new TH1D(*aCorrFctn.fPtMultMix);
141 if (fPzMultMix) delete fPzMultMix;
142 fPzMultMix= new TH1D(*aCorrFctn.fPzMultMix);
147 //____________________________
148 void AliFemtoQinvCorrFctnEMCIC::AddRealPair(AliFemtoPair* pair){
152 if (!fPairCut->Pass(pair)) return;
153 AliFemtoQinvCorrFctn::AddRealPair(pair);
156 //double tQinv = fabs(pair->QInv()); // note - qInv() will be negative for identical pairs...
158 // The EMCICs are calculated here for real pairs
159 /*AliFemtoLorentzVector tMom1 = pair->Track1()->FourMomentum();
160 AliFemtoLorentzVector tMom2 = pair->Track2()->FourMomentum();
161 double tE1 = tMom1.e();
162 double tE2 = tMom2.e();
163 double tPz1 = tMom1.pz();
164 double tPz2 = tMom2.pz();
168 tPt1.Set(tMom1.px(),tMom1.py());
169 tPt2.Set(tMom2.px(),tMom2.py());
170 double tPt1DotPt2 = tPt1*tPt2;
172 fESumReal->Fill(tQinv,tE1+tE2);
173 fEMultReal->Fill(tQinv,tE1*tE2);
174 fPzMultReal->Fill(tQinv,tPz1*tPz2);
175 fPtMultReal->Fill(tQinv,tPt1DotPt2);*/
178 //____________________________
179 void AliFemtoQinvCorrFctnEMCIC::AddMixedPair(AliFemtoPair* pair){
180 // add mixed (background) pair
182 if (!fPairCut->Pass(pair)) return;
183 AliFemtoQinvCorrFctn::AddMixedPair(pair);
184 double tQinv = fabs(pair->QInv()); // note - qInv() will be negative for identical pairs...
187 // The EMCICs are calculated here for mixed pairs
188 AliFemtoLorentzVector tMom1 = pair->Track1()->FourMomentum();
189 AliFemtoLorentzVector tMom2 = pair->Track2()->FourMomentum();
190 double tE1 = tMom1.e();
191 double tE2 = tMom2.e();
192 double tPz1 = tMom1.pz();
193 double tPz2 = tMom2.pz();
197 tPt1.Set(tMom1.px(),tMom1.py());
198 tPt2.Set(tMom2.px(),tMom2.py());
199 double tPt1DotPt2 = tPt1*tPt2;
201 fESumMix->Fill(tQinv,tE1+tE2);
202 fEMultMix->Fill(tQinv,tE1*tE2);
203 fPzMultMix->Fill(tQinv,tPz1*tPz2);
204 fPtMultMix->Fill(tQinv,tPt1DotPt2);
209 //____________________________
210 void AliFemtoQinvCorrFctnEMCIC::Write(){
211 // Write out neccessary objects
212 AliFemtoQinvCorrFctn::Write(); //Write num and den
213 /*fESumReal->Write();
215 fPtMultReal->Write();
216 fPzMultReal->Write(); */
223 //______________________________
224 TList* AliFemtoQinvCorrFctnEMCIC::GetOutputList()
226 // Prepare the list of objects to be written to the output
228 tOutputList = (TList*)AliFemtoQinvCorrFctn::GetOutputList();
229 cout << "Getting list from Qinv CF emicic" << endl;
230 /*tOutputList->Add(fESumReal);
231 tOutputList->Add(fEMultReal);
232 tOutputList->Add(fPtMultReal);
233 tOutputList->Add(fPzMultReal); */
234 tOutputList->Add(fESumMix);
235 tOutputList->Add(fEMultMix);
236 tOutputList->Add(fPtMultMix);
237 tOutputList->Add(fPzMultMix);