StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ThNonId3DCF.cxx
1 /***************************************************************************
2  *
3  *
4  *
5  * Author: Laurent Conin, Fabrice Retiere, Subatech, France
6  ***************************************************************************
7  *
8  * Description : Calculate the theoretical QInv correlation function
9  *
10  ***************************************************************************
11  *
12  *
13  *
14  ***************************************************************************/
15 
16 #include "StHbtMaker/ThCorrFctn/ThNonId3DCF.h"
17 
18 #ifdef __ROOT__
19 ClassImp(ThNonId3DCF)
20 #endif
21 
22 ThNonId3DCF::ThNonId3DCF(char* title, const int& nbins, const float& QinvLo, const float& QinvHi)
23  : StHbtThCorrFctn(), mBtMin(0.0), mBtMax(1.0), mUtMin(0.0), mUtMax(1.0)
24 {
25  // set up numerator
26  char TitNumOutP[100] = "NumOutP";
27  strcat(TitNumOutP,title);
28  mNumOutP = new StHbt1DHisto(TitNumOutP,title,nbins,QinvLo,QinvHi);
29  // set up denominator
30  char TitDenOutP[100] = "DenOutP";
31  strcat(TitDenOutP,title);
32  mDenOutP = new StHbt1DHisto(TitDenOutP,title,nbins,QinvLo,QinvHi);
33  // set up ratio
34  char TitRatOutP[100] = "RatOutP";
35  strcat(TitRatOutP,title);
36  mRatOutP = new StHbt1DHisto(TitRatOutP,title,nbins,QinvLo,QinvHi);
37  // set up numerator
38  char TitNumOutN[100] = "NumOutN";
39  strcat(TitNumOutN,title);
40  mNumOutN = new StHbt1DHisto(TitNumOutN,title,nbins,QinvLo,QinvHi);
41  // set up denominator
42  char TitDenOutN[100] = "DenOutN";
43  strcat(TitDenOutN,title);
44  mDenOutN = new StHbt1DHisto(TitDenOutN,title,nbins,QinvLo,QinvHi);
45  // set up ratio
46  char TitRatOutN[100] = "RatOutN";
47  strcat(TitRatOutN,title);
48  mRatOutN = new StHbt1DHisto(TitRatOutN,title,nbins,QinvLo,QinvHi);
49  // set up ratio
50  char TitRatOut[100] = "RatOut";
51  strcat(TitRatOut,title);
52  mRatOut = new StHbt1DHisto(TitRatOut,title,nbins,QinvLo,QinvHi);
53  // set up
54  char TitRatOutNOverP[100] = "RatOutNOverP";
55  strcat(TitRatOutNOverP,title);
56  mRatOutNOverP = new StHbt1DHisto(TitRatOutNOverP,title,nbins,QinvLo,QinvHi);
57 
58  // set up numerator
59  char TitNumSideP[100] = "NumSideP";
60  strcat(TitNumSideP,title);
61  mNumSideP = new StHbt1DHisto(TitNumSideP,title,nbins,QinvLo,QinvHi);
62  // set up denominator
63  char TitDenSideP[100] = "DenSideP";
64  strcat(TitDenSideP,title);
65  mDenSideP = new StHbt1DHisto(TitDenSideP,title,nbins,QinvLo,QinvHi);
66  // set up ratio
67  char TitRatSideP[100] = "RatSideP";
68  strcat(TitRatSideP,title);
69  mRatSideP = new StHbt1DHisto(TitRatSideP,title,nbins,QinvLo,QinvHi);
70  // set up numerator
71  char TitNumSideN[100] = "NumSideN";
72  strcat(TitNumSideN,title);
73  mNumSideN = new StHbt1DHisto(TitNumSideN,title,nbins,QinvLo,QinvHi);
74  // set up denominator
75  char TitDenSideN[100] = "DenSideN";
76  strcat(TitDenSideN,title);
77  mDenSideN = new StHbt1DHisto(TitDenSideN,title,nbins,QinvLo,QinvHi);
78  // set up ratio
79  char TitRatSideN[100] = "RatSideN";
80  strcat(TitRatSideN,title);
81  mRatSideN = new StHbt1DHisto(TitRatSideN,title,nbins,QinvLo,QinvHi);
82  // set up ratio
83  char TitRatSide[100] = "RatSide";
84  strcat(TitRatSide,title);
85  mRatSide = new StHbt1DHisto(TitRatSide,title,nbins,QinvLo,QinvHi);
86  // set up
87  char TitRatSideNOverP[100] = "RatSideNOverP";
88  strcat(TitRatSideNOverP,title);
89  mRatSideNOverP = new StHbt1DHisto(TitRatSideNOverP,
90  title,nbins,QinvLo,QinvHi);
91 
92  // set up numerator
93  char TitNumLongP[100] = "NumLongP";
94  strcat(TitNumLongP,title);
95  mNumLongP = new StHbt1DHisto(TitNumLongP,title,nbins,QinvLo,QinvHi);
96  // set up denominator
97  char TitDenLongP[100] = "DenLongP";
98  strcat(TitDenLongP,title);
99  mDenLongP = new StHbt1DHisto(TitDenLongP,title,nbins,QinvLo,QinvHi);
100  // set up ratio
101  char TitRatLongP[100] = "RatLongP";
102  strcat(TitRatLongP,title);
103  mRatLongP = new StHbt1DHisto(TitRatLongP,title,nbins,QinvLo,QinvHi);
104  // set up numerator
105  char TitNumLongN[100] = "NumLongN";
106  strcat(TitNumLongN,title);
107  mNumLongN = new StHbt1DHisto(TitNumLongN,title,nbins,QinvLo,QinvHi);
108  // set up denominator
109  char TitDenLongN[100] = "DenLongN";
110  strcat(TitDenLongN,title);
111  mDenLongN = new StHbt1DHisto(TitDenLongN,title,nbins,QinvLo,QinvHi);
112  // set up ratio
113  char TitRatLongN[100] = "RatLongN";
114  strcat(TitRatLongN,title);
115  mRatLongN = new StHbt1DHisto(TitRatLongN,title,nbins,QinvLo,QinvHi);
116  // set up ratio
117  char TitRatLong[100] = "RatLong";
118  strcat(TitRatLong,title);
119  mRatLong = new StHbt1DHisto(TitRatLong,title,nbins,QinvLo,QinvHi);
120  // set up
121  char TitRatLongNOverP[100] = "RatLongNOverP";
122  strcat(TitRatLongNOverP,title);
123  mRatLongNOverP = new StHbt1DHisto(TitRatLongNOverP,title,nbins,QinvLo,QinvHi);
124 
125  char tOP[100] = "ProfOutP";
126  strcat(tOP,title);
127  mProfOutP = new TProfile(tOP, tOP, nbins, QinvLo, QinvHi);
128  char tON[100] = "ProfOutN";
129  strcat(tON,title);
130  mProfOutN = new TProfile(tON, tON, nbins, QinvLo, QinvHi);
131  char tSP[100] = "ProfSideP";
132  strcat(tSP,title);
133  mProfSideP = new TProfile(tSP, tSP, nbins, QinvLo, QinvHi);
134  char tSN[100] = "ProfSideN";
135  strcat(tSN,title);
136  mProfSideN = new TProfile(tSN, tSN, nbins, QinvLo, QinvHi);
137  char tLP[100] = "ProfLongP";
138  strcat(tLP,title);
139  mProfLongP = new TProfile(tLP, tLP, nbins, QinvLo, QinvHi);
140  char tLN[100] = "ProfLongN";
141  strcat(tLN,title);
142  mProfLongN = new TProfile(tLN, tLN, nbins, QinvLo, QinvHi);
143 
144  char tDOP[100] = "ProfDenOutP";
145  strcat(tDOP,title);
146  mProfDenOutP = new TProfile(tDOP, tDOP, nbins, QinvLo, QinvHi);
147  char tDON[100] = "ProfDenOutN";
148  strcat(tDON,title);
149  mProfDenOutN = new TProfile(tDON, tDON, nbins, QinvLo, QinvHi);
150  char tDSP[100] = "ProfDenSideP";
151  strcat(tDSP,title);
152  mProfDenSideP = new TProfile(tDSP, tDSP, nbins, QinvLo, QinvHi);
153  char tDSN[100] = "ProfDenSideN";
154  strcat(tDSN,title);
155  mProfDenSideN = new TProfile(tDSN, tDSN, nbins, QinvLo, QinvHi);
156  char tDLP[100] = "ProfDenLongP";
157  strcat(tDLP,title);
158  mProfDenLongP = new TProfile(tDLP, tDLP, nbins, QinvLo, QinvHi);
159  char tDLN[100] = "ProfDenLongN";
160  strcat(tDLN,title);
161  mProfDenLongN = new TProfile(tDLN, tDLN, nbins, QinvLo, QinvHi);
162 
163  // to enable error bar calculation...
164  mNumOutP->Sumw2();
165  mDenOutP->Sumw2();
166  mRatOutP->Sumw2();
167  mNumOutN->Sumw2();
168  mDenOutN->Sumw2();
169  mRatOutN->Sumw2();
170  mRatOut->Sumw2();
171  mRatOutNOverP->Sumw2();
172 
173  mNumSideP->Sumw2();
174  mDenSideP->Sumw2();
175  mRatSideP->Sumw2();
176  mNumSideN->Sumw2();
177  mDenSideN->Sumw2();
178  mRatSideN->Sumw2();
179  mRatSide->Sumw2();
180  mRatSideNOverP->Sumw2();
181 
182  mNumLongP->Sumw2();
183  mDenLongP->Sumw2();
184  mRatLongP->Sumw2();
185  mNumLongN->Sumw2();
186  mDenLongN->Sumw2();
187  mRatLongN->Sumw2();
188  mRatLong->Sumw2();
189  mRatLongNOverP->Sumw2();
190 
191  float klim = 1.2 * QinvHi;
192  mHOutKSame = new StHbt2DHisto("HOutKSame","HOutKSame",
193  100,-klim,klim,nbins,QinvLo,QinvHi);
194  mHOutKDiff = new StHbt2DHisto("HOutKDiff","HOutKDiff",
195  100,-klim,klim,nbins,QinvLo,QinvHi);
196  mHSideKSame = new StHbt2DHisto("HSideKSame","HSideKSame",
197  100,-klim,klim,nbins,QinvLo,QinvHi);
198  mHSideKDiff = new StHbt2DHisto("HSideKDiff","HSideKDiff",
199  100,-klim,klim,nbins,QinvLo,QinvHi);
200  mHLongKSame = new StHbt2DHisto("HLongKSame","HLongKSame",
201  100,-klim,klim,nbins,QinvLo,QinvHi);
202  mHLongKDiff = new StHbt2DHisto("HLongKDiff","HLongKDiff",
203  100,-klim,klim,nbins,QinvLo,QinvHi);
204 
205 };
206 
207 ThNonId3DCF::ThNonId3DCF(const ThNonId3DCF& ThCf) : StHbtThCorrFctn(ThCf)
208 {
209  mNumOutP = new StHbt1DHisto(*ThCf.mNumOutP);
210  mDenOutP = new StHbt1DHisto(*ThCf.mDenOutP);
211  mRatOutP = new StHbt1DHisto(*ThCf.mRatOutP);
212  mNumOutN = new StHbt1DHisto(*ThCf.mNumOutN);
213  mDenOutN = new StHbt1DHisto(*ThCf.mDenOutN);
214  mRatOutN = new StHbt1DHisto(*ThCf.mRatOutN);
215  mRatOut = new StHbt1DHisto(*ThCf.mRatOut);
216  mRatOutNOverP = new StHbt1DHisto(*ThCf.mRatOutNOverP);
217 
218  mNumSideP = new StHbt1DHisto(*ThCf.mNumSideP);
219  mDenSideP = new StHbt1DHisto(*ThCf.mDenSideP);
220  mRatSideP = new StHbt1DHisto(*ThCf.mRatSideP);
221  mNumSideN = new StHbt1DHisto(*ThCf.mNumSideN);
222  mDenSideN = new StHbt1DHisto(*ThCf.mDenSideN);
223  mRatSideN = new StHbt1DHisto(*ThCf.mRatSideN);
224  mRatSide = new StHbt1DHisto(*ThCf.mRatSide);
225  mRatSideNOverP = new StHbt1DHisto(*ThCf.mRatSideNOverP);
226 
227  mNumLongP = new StHbt1DHisto(*ThCf.mNumLongP);
228  mDenLongP = new StHbt1DHisto(*ThCf.mDenLongP);
229  mRatLongP = new StHbt1DHisto(*ThCf.mRatLongP);
230  mNumLongN = new StHbt1DHisto(*ThCf.mNumLongN);
231  mDenLongN = new StHbt1DHisto(*ThCf.mDenLongN);
232  mRatLongN = new StHbt1DHisto(*ThCf.mRatLongN);
233  mRatLong = new StHbt1DHisto(*ThCf.mRatLong);
234  mRatLongNOverP = new StHbt1DHisto(*ThCf.mRatLongNOverP);
235 
236  mHOutKSame = new StHbt2DHisto(*ThCf.mHOutKSame);
237  mHOutKDiff = new StHbt2DHisto(*ThCf.mHOutKDiff);
238  mHSideKSame = new StHbt2DHisto(*ThCf.mHSideKSame);
239  mHSideKDiff = new StHbt2DHisto(*ThCf.mHSideKDiff);
240  mHLongKSame = new StHbt2DHisto(*ThCf.mHLongKSame);
241  mHLongKDiff = new StHbt2DHisto(*ThCf.mHLongKDiff);
242 
243  mProfOutP = new TProfile(*ThCf.mProfOutP);
244  mProfOutN = new TProfile(*ThCf.mProfOutN);
245  mProfSideP = new TProfile(*ThCf.mProfSideP);
246  mProfSideN = new TProfile(*ThCf.mProfSideN);
247  mProfLongP = new TProfile(*ThCf.mProfLongP);
248  mProfLongN = new TProfile(*ThCf.mProfLongN);
249 
250  mProfDenOutP = new TProfile(*ThCf.mProfDenOutP);
251  mProfDenOutN = new TProfile(*ThCf.mProfDenOutN);
252  mProfDenSideP = new TProfile(*ThCf.mProfDenSideP);
253  mProfDenSideN = new TProfile(*ThCf.mProfDenSideN);
254  mProfDenLongP = new TProfile(*ThCf.mProfDenLongP);
255  mProfDenLongN = new TProfile(*ThCf.mProfDenLongN);
256 }
257 
258 ThNonId3DCF::~ThNonId3DCF(){
259  delete mNumOutP;
260  delete mDenOutP;
261  delete mRatOutP;
262  delete mNumOutN;
263  delete mDenOutN;
264  delete mRatOutN;
265  delete mRatOut;
266  delete mRatOutNOverP;
267 
268  delete mNumSideP;
269  delete mDenSideP;
270  delete mRatSideP;
271  delete mNumSideN;
272  delete mDenSideN;
273  delete mRatSideN;
274  delete mRatSide;
275  delete mRatSideNOverP;
276 
277  delete mNumLongP;
278  delete mDenLongP;
279  delete mRatLongP;
280  delete mNumLongN;
281  delete mDenLongN;
282  delete mRatLongN;
283  delete mRatLong;
284  delete mRatLongNOverP;
285 
286  delete mHOutKSame;
287  delete mHOutKDiff;
288  delete mHSideKSame;
289  delete mHSideKDiff;
290  delete mHLongKSame;
291  delete mHLongKDiff;
292 
293  delete mProfOutP;
294  delete mProfOutN;
295  delete mProfSideP;
296  delete mProfSideN;
297  delete mProfLongP;
298  delete mProfLongN;
299 
300  delete mProfDenOutP;
301  delete mProfDenOutN;
302  delete mProfDenSideP;
303  delete mProfDenSideN;
304  delete mProfDenLongP;
305  delete mProfDenLongN;
306 
307 }
308 
309 
310 //____________________________
311 void ThNonId3DCF::AddNum(StHbtThPair* aThPair){
312  double tKStar = fabs(aThPair->GetMeasPair()->KStar());
313  double tKOut = aThPair->GetMeasPair()->dKOut();
314  double tKSide = aThPair->GetMeasPair()->dKSide();
315  double tKLong = aThPair->GetMeasPair()->dKLong();
316  double weight = aThPair->GetWeightNum();
317 
318  if ((aThPair->Betat() < mBtMax) && (aThPair->Betat() > mBtMin) &&
319  (aThPair->Ut() < mUtMax) && (aThPair->Ut() > mUtMin))
320  {
321  if(tKOut>0.){
322  mNumOutP->Fill(tKStar, weight);
323  mProfOutP->Fill(tKStar, weight);
324  }
325  else{
326  mNumOutN->Fill(tKStar, weight);
327  mProfOutN->Fill(tKStar, weight);
328  }
329  if(tKSide>0.){
330  mNumSideP->Fill(tKStar, weight);
331  mProfSideP->Fill(tKStar, weight);
332  }
333  else{
334  mNumSideN->Fill(tKStar, weight);
335  mProfSideN->Fill(tKStar, weight);
336  }
337  if(tKLong>0.){
338  mNumLongP->Fill(tKStar, weight);
339  mProfLongP->Fill(tKStar, weight);
340  }
341  else{
342  mNumLongN->Fill(tKStar, weight);
343  mProfLongN->Fill(tKStar, weight);
344  }
345 
346  mHOutKSame->Fill(tKOut, tKStar, weight);
347  mHSideKSame->Fill(tKSide, tKStar, weight);
348  mHLongKSame->Fill(tKLong, tKStar, weight);
349  }
350 }
351 
352 void ThNonId3DCF::AddDen(StHbtThPair* aThPair){
353  double tKStar = fabs(aThPair->GetMeasPair()->KStar());
354  double tKOut = aThPair->GetMeasPair()->dKOut();
355  double tKSide = aThPair->GetMeasPair()->dKSide();
356  double tKLong = aThPair->GetMeasPair()->dKLong();
357  double weight = aThPair->GetWeightDen();
358 
359  if ((aThPair->Betat() < mBtMax) && (aThPair->Betat() > mBtMin) &&
360  (aThPair->Ut() < mUtMax) && (aThPair->Ut() > mUtMin))
361  {
362  if(tKOut>0.){
363  mDenOutP->Fill(tKStar, weight);
364  mProfDenOutP->Fill(tKStar, weight);
365  }
366  else{
367  mDenOutN->Fill(tKStar, weight);
368  mProfDenOutN->Fill(tKStar, weight);
369  }
370  if(tKSide>0.){
371  mDenSideP->Fill(tKStar, weight);
372  mProfDenSideP->Fill(tKStar, weight);
373  }
374  else{
375  mDenSideN->Fill(tKStar, weight);
376  mProfDenSideN->Fill(tKStar, weight);
377  }
378  if(tKLong>0.){
379  mDenLongP->Fill(tKStar, weight);
380  mProfDenLongP->Fill(tKStar, weight);
381  }
382  else{
383  mDenLongN->Fill(tKStar, weight);
384  mProfDenLongN->Fill(tKStar, weight);
385  }
386 
387  mHOutKDiff->Fill(tKOut, tKStar, weight);
388  mHSideKDiff->Fill(tKSide, tKStar, weight);
389  mHLongKDiff->Fill(tKLong, tKStar, weight);
390  }
391 }
392 
393 void ThNonId3DCF::Finish(){
394 
395  double tScale;
396  int tLastNormBin = mNumOutP->GetNbinsX();
397  int tFirstNormBin = tLastNormBin/2+1;
398 
399 // >>> Out
400  // Make cvk dependant correlation function
401  mRatOutP->Divide(mNumOutP,mDenOutP,1.0,1.0);
402  tScale = mRatOutP->Integral(tFirstNormBin,tLastNormBin);
403  tScale/= (tLastNormBin-tFirstNormBin+1);
404  mRatOutP->Scale(1./tScale);
405  mRatOutN->Divide(mNumOutN,mDenOutN,1.0,1.0);
406  tScale = mRatOutN->Integral(tFirstNormBin,tLastNormBin);
407  tScale/= (tLastNormBin-tFirstNormBin+1);
408  mRatOutN->Scale(1./tScale);
409  mRatOutNOverP->Divide(mRatOutN,mRatOutP,1.0,1.0);
410  // Regular correlation function
411  TH1D tHNumOut(*mNumOutP);
412  tHNumOut.SetName("tHNumOut");
413  tHNumOut.Add(mNumOutN);
414  TH1D tHDenOut(*mDenOutP);
415  tHDenOut.SetName("tHDenOut");
416  tHDenOut.Add(mDenOutN);
417  mRatOut->Divide(&tHNumOut,&tHDenOut);
418  tScale = mRatOut->Integral(tFirstNormBin,tLastNormBin);
419  tScale/= (tLastNormBin-tFirstNormBin+1);
420  mRatOut->Scale(1./tScale);
421 
422 // >>> Side
423  // Make cvk dependant correlation function
424  mRatSideP->Divide(mNumSideP,mDenSideP,1.0,1.0);
425  tScale = mRatSideP->Integral(tFirstNormBin,tLastNormBin);
426  tScale/= (tLastNormBin-tFirstNormBin+1);
427  mRatSideP->Scale(1./tScale);
428  mRatSideN->Divide(mNumSideN,mDenSideN,1.0,1.0);
429  tScale = mRatSideN->Integral(tFirstNormBin,tLastNormBin);
430  tScale/= (tLastNormBin-tFirstNormBin+1);
431  mRatSideN->Scale(1./tScale);
432  mRatSideNOverP->Divide(mRatSideN,mRatSideP,1.0,1.0);
433  // Regular correlation function
434  TH1D tHNumSide(*mNumSideP);
435  tHNumSide.SetName("tHNumSide");
436  tHNumSide.Add(mNumSideN);
437  TH1D tHDenSide(*mDenSideP);
438  tHDenSide.SetName("tHDenSide");
439  tHDenSide.Add(mDenSideN);
440  mRatSide->Divide(&tHNumSide,&tHDenSide);
441  tScale = mRatSide->Integral(tFirstNormBin,tLastNormBin);
442  tScale/= (tLastNormBin-tFirstNormBin+1);
443  mRatSide->Scale(1./tScale);
444 
445 // >>> Long
446  // Make cvk dependant correlation function
447  mRatLongP->Divide(mNumLongP,mDenLongP,1.0,1.0);
448  tScale = mRatLongP->Integral(tFirstNormBin,tLastNormBin);
449  tScale/= (tLastNormBin-tFirstNormBin+1);
450  mRatLongP->Scale(1./tScale);
451  mRatLongN->Divide(mNumLongN,mDenLongN,1.0,1.0);
452  tScale = mRatLongN->Integral(tFirstNormBin,tLastNormBin);
453  tScale/= (tLastNormBin-tFirstNormBin+1);
454  mRatLongN->Scale(1./tScale);
455  mRatLongNOverP->Divide(mRatLongN,mRatLongP,1.0,1.0);
456  // Regular correlation function
457  TH1D tHNumLong(*mNumLongP);
458  tHNumLong.SetName("tHNumLong");
459  tHNumLong.Add(mNumLongN);
460  TH1D tHDenLong(*mDenLongP);
461  tHDenLong.SetName("tHDenLong");
462  tHDenLong.Add(mDenLongN);
463  mRatLong->Divide(&tHNumLong,&tHDenLong);
464  tScale = mRatLong->Integral(tFirstNormBin,tLastNormBin);
465  tScale/= (tLastNormBin-tFirstNormBin+1);
466  mRatLong->Scale(1./tScale);
467 
468 }
469 
470 inline void ThNonId3DCF::Write() {
471  mNumOutP->Write();
472  mDenOutP->Write();
473  mRatOutP->Write();
474  mNumOutN->Write();
475  mDenOutN->Write();
476  mRatOutN->Write();
477  mRatOut->Write();
478  mRatOutNOverP->Write();
479 
480  mNumSideP->Write();
481  mDenSideP->Write();
482  mRatSideP->Write();
483  mNumSideN->Write();
484  mDenSideN->Write();
485  mRatSideN->Write();
486  mRatSide->Write();
487  mRatSideNOverP->Write();
488 
489  mNumLongP->Write();
490  mDenLongP->Write();
491  mRatLongP->Write();
492  mNumLongN->Write();
493  mDenLongN->Write();
494  mRatLongN->Write();
495  mRatLong->Write();
496  mRatLongNOverP->Write();
497 
498  mHOutKSame->Write();
499  mHOutKDiff->Write();
500  mHSideKSame->Write();
501  mHSideKDiff->Write();
502  mHLongKSame->Write();
503  mHLongKDiff->Write();
504 
505  mProfOutP->Write();
506  mProfOutN->Write();
507  mProfSideP->Write();
508  mProfSideN->Write();
509  mProfLongP->Write();
510  mProfLongN->Write();
511 
512  mProfDenOutP->Write();
513  mProfDenOutN->Write();
514  mProfDenSideP->Write();
515  mProfDenSideN->Write();
516  mProfDenLongP->Write();
517  mProfDenLongN->Write();
518 
519 };
520 
521 StHbtString ThNonId3DCF::Report(){
522  string stemp = "Qinv Correlation Function Report:\n";
523  char ctemp[100];
524  sprintf(ctemp,"Number of entries in numerator:\t%E\n",mNumOutP->GetEntries());
525  stemp += ctemp;
526  sprintf(ctemp,"Number of entries in denominator:\t%E\n",mDenOutP->GetEntries());
527  stemp += ctemp;
528  sprintf(ctemp,"Number of entries in ratio:\t%E\n",mRatOutP->GetEntries());
529  stemp += ctemp;
530  StHbtString returnThis = stemp;
531  return returnThis;
532 }
533 
534 inline StHbtThCorrFctn* ThNonId3DCF::ThClone() const {return new ThNonId3DCF(*this);}
535 inline void ThNonId3DCF::SetBtRange(double aBtMin, double aBtMax)
536 {
537  mBtMin = aBtMin;
538  mBtMax = aBtMax;
539 }
540 inline void ThNonId3DCF::SetUtRange(double aUtMin, double aUtMax)
541 {
542  mUtMin = aUtMin;
543  mUtMax = aUtMax;
544 }