3838#include < iostream>
3939
4040DhCorrelationFitter::DhCorrelationFitter () : // default constructor
41+ fHist(nullptr ),
42+ fFit(nullptr ),
43+ fGausNS(nullptr ),
44+ fGausAS(nullptr ),
45+ fPed(nullptr ),
46+ fBaseTransvReg(nullptr ),
4147 fIsReflected(kFALSE ),
42- fTypeOfFitFunc(kConstwoGaus ),
43- fFixBase(0 ),
44- fFixMean(0 ),
45- fMinCandPt(0 .),
46- fMaxCandPt(99 .),
47- fMinAssoPt(0 .),
48- fMaxAssoPt(99 .),
49- fNpars(0 ),
50- fExtParsVals(nullptr ),
51- fExtParsLowBounds(nullptr ),
52- fExtParsUppBounds(nullptr ),
5348 fUseExternalPars(kFALSE ),
5449 fShiftBaselineUp(kFALSE ),
5550 fShiftBaselineDown(kFALSE ),
5651 fIsTotal(kTRUE ),
52+ fTypeOfFitFunc(kConstwoGaus ),
53+ fFixBase(0 ),
54+ fFixMean(0 ),
55+ fNpars(0 ),
5756 fNbasleinePoints(0 ),
5857 fBinsBaseline(nullptr ),
59- fHist(nullptr ),
6058 fMinCorr(0 ),
6159 fMaxCorr(0 ),
60+ fMinCandPt(0 .),
61+ fMaxCandPt(99 .),
62+ fMinAssoPt(0 .),
63+ fMaxAssoPt(99 .),
6264 fBaseline(0 .),
6365 fErrBaseline(0 .),
64- fFit(nullptr ),
65- fGausNS(nullptr ),
66- fGausAS(nullptr ),
67- fPed(nullptr ),
68- fBaseTransvReg(nullptr ),
69- fv2AssocPart(0 .),
70- fv2Dmeson(0 .),
7166 fNSyieldBinCount(0 .),
7267 fErrNSyieldBinCount(0 .),
7368 fASyieldBinCount(0 .),
74- fErrASyieldBinCount(0 .)
69+ fErrASyieldBinCount(0 .),
70+ fv2AssocPart(0 .),
71+ fv2Dmeson(0 .),
72+ fExtParsVals(nullptr ),
73+ fExtParsLowBounds(nullptr ),
74+ fExtParsUppBounds(nullptr )
7575{
7676}
7777
7878DhCorrelationFitter::DhCorrelationFitter (TH1F* histoToFit, Double_t min, Double_t max) : // standard constructor
79+ fHist(histoToFit),
80+ fFit(nullptr ),
81+ fGausNS(nullptr ),
82+ fGausAS(nullptr ),
83+ fPed(nullptr ),
84+ fBaseTransvReg(nullptr ),
7985 fIsReflected(kFALSE ),
80- fTypeOfFitFunc(kConstwoGaus ),
81- fFixBase(0 ),
82- fFixMean(0 ),
83- fMinCandPt(0 .),
84- fMaxCandPt(99 .),
85- fMinAssoPt(0 .),
86- fMaxAssoPt(99 .),
87- fNpars(0 ),
88- fExtParsVals(nullptr ),
89- fExtParsLowBounds(nullptr ),
90- fExtParsUppBounds(nullptr ),
9186 fUseExternalPars(kFALSE ),
9287 fShiftBaselineUp(kFALSE ),
9388 fShiftBaselineDown(kFALSE ),
9489 fIsTotal(kTRUE ),
90+ fTypeOfFitFunc(kConstwoGaus ),
91+ fFixBase(0 ),
92+ fFixMean(0 ),
93+ fNpars(0 ),
9594 fNbasleinePoints(0 ),
9695 fBinsBaseline(nullptr ),
97- fHist(histoToFit),
9896 fMinCorr(min),
9997 fMaxCorr(max),
98+ fMinCandPt(0 .),
99+ fMaxCandPt(99 .),
100+ fMinAssoPt(0 .),
101+ fMaxAssoPt(99 .),
100102 fBaseline(0 .),
101103 fErrBaseline(0 .),
102- fFit(nullptr ),
103- fGausNS(nullptr ),
104- fGausAS(nullptr ),
105- fPed(nullptr ),
106- fBaseTransvReg(nullptr ),
107- fv2AssocPart(0 .),
108- fv2Dmeson(0 .),
109104 fNSyieldBinCount(0 .),
110105 fErrNSyieldBinCount(0 .),
111106 fASyieldBinCount(0 .),
112- fErrASyieldBinCount(0 .)
107+ fErrASyieldBinCount(0 .),
108+ fv2AssocPart(0 .),
109+ fv2Dmeson(0 .),
110+ fExtParsVals(nullptr ),
111+ fExtParsLowBounds(nullptr ),
112+ fExtParsUppBounds(nullptr )
113113{
114114}
115115
@@ -626,6 +626,7 @@ Double_t DhCorrelationFitter::findBaseline()
626626 }
627627 Double_t errAv = 0 ., av = 0 .;
628628 TMath::Sort (fHist ->GetNbinsX (), hval, ind, kFALSE ); // KFALSE -> increasing order
629+ delete[] hval;
629630 // Average of abs(fFixBase) lower points
630631 for (Int_t k = 0 ; k < npointsAv; k++) {
631632 if (fHist ->GetBinError (ind[k] + 1 ) == 0 .) // in case of null entries which induce a crash. Could bias the basline in upward direction!
@@ -637,6 +638,7 @@ Double_t DhCorrelationFitter::findBaseline()
637638 av += fHist ->GetBinContent (ind[k] + 1 ) / (fHist ->GetBinError (ind[k] + 1 ) * fHist ->GetBinError (ind[k] + 1 ));
638639 errAv += 1 . / (fHist ->GetBinError (ind[k] + 1 ) * fHist ->GetBinError (ind[k] + 1 ));
639640 }
641+ delete[] ind;
640642 av /= errAv;
641643 errAv = TMath::Sqrt (1 . / errAv);
642644 printf (" [RESULT] Average fBaseline: %.3f +- %.3f" , av, errAv);
@@ -806,7 +808,7 @@ Double_t DhCorrelationFitter::calculateBaseline(TH1F*& histo, Bool_t totalRange)
806808 // total range = 2*Pi
807809 // half range = Pi , for histogram reflected under symmetric assumption
808810
809- Double_t baseline, errBaseline ;
811+ Double_t baseline;
810812 Int_t const nBinsPhi = histo->GetNbinsX ();
811813 Int_t const binPhiHalf = nBinsPhi / 2 ;
812814 Int_t const binPhiHalfMinus1 = nBinsPhi / 2 - 1 ;
@@ -960,11 +962,11 @@ void DhCorrelationFitter::setSingleTermsForDrawing(Bool_t draw)
960962 pvStatTests1->SetFillStyle (0 );
961963 pvStatTests1->SetTextSize (0.045 );
962964 pvStatTests1->SetBorderSize (0 );
963- TText *t0, *t1, *t2, *t3;
964- t0 = pvStatTests1->AddText (0 ., 1.00 , Form (" #chi^{2}/ndf = %.1f/%d " , fFit ->GetChisquare (), fFit ->GetNDF ()));
965- t1 = pvStatTests1->AddText (0 ., 0.80 , Form (" Ped = %.3f#pm%.3f " , fBaseline , fErrBaseline ));
966- t2 = pvStatTests1->AddText (0 ., 0.65 , Form (" AS Y = %.3f#pm%.3f " , fFit ->GetParameter (" AS Y" ), fFit ->GetParError (fFit ->GetParNumber (" AS Y" ))));
967- t3 = pvStatTests1->AddText (0 ., 0.50 , Form (" AS #sigma = %.3f#pm%.3f " , fFit ->GetParameter (" AS #sigma" ), fFit ->GetParError (fFit ->GetParNumber (" AS #sigma" ))));
965+ // TText *t0, *t1, *t2, *t3;
966+ // t0 = pvStatTests1->AddText(0., 1.00, Form("#chi^{2}/ndf = %.1f/%d ", fFit->GetChisquare(), fFit->GetNDF()));
967+ // t1 = pvStatTests1->AddText(0., 0.80, Form("Ped = %.3f#pm%.3f ", fBaseline, fErrBaseline));
968+ // t2 = pvStatTests1->AddText(0., 0.65, Form("AS Y = %.3f#pm%.3f ", fFit->GetParameter("AS Y"), fFit->GetParError(fFit->GetParNumber("AS Y"))));
969+ // t3 = pvStatTests1->AddText(0., 0.50, Form("AS #sigma = %.3f#pm%.3f ", fFit->GetParameter("AS #sigma"), fFit->GetParError(fFit->GetParNumber("AS #sigma"))));
968970
969971 if (draw) {
970972 fFit ->Draw (" same" );
@@ -1000,14 +1002,14 @@ void DhCorrelationFitter::setSingleTermsForDrawing(Bool_t draw)
10001002 pvStatTests1->SetFillStyle (0 );
10011003 pvStatTests1->SetTextSize (0.045 );
10021004 pvStatTests1->SetBorderSize (0 );
1003- TText *t0, *t1, *t2, *t3, *t4, *t5, *t6;
1004- t0 = pvStatTests1->AddText (0 ., 1.00 , Form (" #chi^{2}/ndf = %.1f/%d " , fFit ->GetChisquare (), fFit ->GetNDF ()));
1005- t1 = pvStatTests1->AddText (0 ., 0.80 , Form (" Ped = %.3f#pm%.3f " , fBaseline , fErrBaseline ));
1006- t2 = pvStatTests1->AddText (0 ., 0.65 , Form (" NS Y = %.3f#pm%.3f " , fFit ->GetParameter (" NS Y" ), fFit ->GetParError (fFit ->GetParNumber (" NS Y" ))));
1007- t3 = pvStatTests1->AddText (0 ., 0.50 , Form (" NS #sigma = %.3f#pm%.3f " , fFit ->GetParameter (" NS #sigma" ), fFit ->GetParError (fFit ->GetParNumber (" NS #sigma" ))));
1008- t4 = pvStatTests1->AddText (0 ., 0.35 , Form (" AS Y = %.3f#pm%.3f " , fFit ->GetParameter (" AS Y" ), fFit ->GetParError (fFit ->GetParNumber (" AS Y" ))));
1009- t5 = pvStatTests1->AddText (0 ., 0.20 , Form (" AS #sigma = %.3f#pm%.3f " , fFit ->GetParameter (" AS #sigma" ), fFit ->GetParError (fFit ->GetParNumber (" AS #sigma" ))));
1010- t6 = pvStatTests1->AddText (0 ., 0.05 , Form (" #beta = %.3f#pm%.3f " , fFit ->GetParameter (" NS shape par" ), fFit ->GetParError (fFit ->GetParNumber (" NS shape par" ))));
1005+ // TText *t0, *t1, *t2, *t3, *t4, *t5, *t6;
1006+ // t0 = pvStatTests1->AddText(0., 1.00, Form("#chi^{2}/ndf = %.1f/%d ", fFit->GetChisquare(), fFit->GetNDF()));
1007+ // t1 = pvStatTests1->AddText(0., 0.80, Form("Ped = %.3f#pm%.3f ", fBaseline, fErrBaseline));
1008+ // t2 = pvStatTests1->AddText(0., 0.65, Form("NS Y = %.3f#pm%.3f ", fFit->GetParameter("NS Y"), fFit->GetParError(fFit->GetParNumber("NS Y"))));
1009+ // t3 = pvStatTests1->AddText(0., 0.50, Form("NS #sigma = %.3f#pm%.3f ", fFit->GetParameter("NS #sigma"), fFit->GetParError(fFit->GetParNumber("NS #sigma"))));
1010+ // t4 = pvStatTests1->AddText(0., 0.35, Form("AS Y = %.3f#pm%.3f ", fFit->GetParameter("AS Y"), fFit->GetParError(fFit->GetParNumber("AS Y"))));
1011+ // t5 = pvStatTests1->AddText(0., 0.20, Form("AS #sigma = %.3f#pm%.3f ", fFit->GetParameter("AS #sigma"), fFit->GetParError(fFit->GetParNumber("AS #sigma"))));
1012+ // t6 = pvStatTests1->AddText(0., 0.05, Form("#beta = %.3f#pm%.3f ", fFit->GetParameter("NS shape par"), fFit->GetParError(fFit->GetParNumber("NS shape par"))));
10111013
10121014 if (draw) {
10131015 fFit ->Draw (" same" );
@@ -1050,21 +1052,21 @@ void DhCorrelationFitter::setSingleTermsForDrawing(Bool_t draw)
10501052 pvStatTests1->SetFillStyle (0 );
10511053 pvStatTests1->SetTextSize (0.045 );
10521054 pvStatTests1->SetBorderSize (0 );
1053- TText *t0, *t1, *t2, *t3, *t4, *t5, *t6, *t7, *t8;
1054- t0 = pvStatTests1->AddText (0 ., 1.00 , Form (" #chi^{2}/ndf = %.1f/%d " , fFit ->GetChisquare (), fFit ->GetNDF ()));
1055- t2 = pvStatTests1->AddText (0 ., 0.80 , Form (" NS Y = %.3f#pm%.3f " , fFit ->GetParameter (" NS Y" ), fFit ->GetParError (fFit ->GetParNumber (" NS Y" ))));
1056- t3 = pvStatTests1->AddText (0 ., 0.65 , Form (" NS #sigma = %.3f#pm%.3f " , fFit ->GetParameter (" NS #sigma" ), fFit ->GetParError (fFit ->GetParNumber (" NS #sigma" ))));
1057- t4 = pvStatTests1->AddText (0 ., 0.50 , Form (" AS Y = %.3f#pm%.3f " , fFit ->GetParameter (" AS Y" ), fFit ->GetParError (fFit ->GetParNumber (" AS Y" ))));
1058- t5 = pvStatTests1->AddText (0 ., 0.35 , Form (" AS #sigma = %.3f#pm%.3f " , fFit ->GetParameter (" AS #sigma" ), fFit ->GetParError (fFit ->GetParNumber (" AS #sigma" ))));
1055+ // TText *t0, *t1, *t2, *t3, *t4, *t5, *t6, *t7, *t8;
1056+ // t0 = pvStatTests1->AddText(0., 1.00, Form("#chi^{2}/ndf = %.1f/%d ", fFit->GetChisquare(), fFit->GetNDF()));
1057+ // t2 = pvStatTests1->AddText(0., 0.80, Form("NS Y = %.3f#pm%.3f ", fFit->GetParameter("NS Y"), fFit->GetParError(fFit->GetParNumber("NS Y"))));
1058+ // t3 = pvStatTests1->AddText(0., 0.65, Form("NS #sigma = %.3f#pm%.3f ", fFit->GetParameter("NS #sigma"), fFit->GetParError(fFit->GetParNumber("NS #sigma"))));
1059+ // t4 = pvStatTests1->AddText(0., 0.50, Form("AS Y = %.3f#pm%.3f ", fFit->GetParameter("AS Y"), fFit->GetParError(fFit->GetParNumber("AS Y"))));
1060+ // t5 = pvStatTests1->AddText(0., 0.35, Form("AS #sigma = %.3f#pm%.3f ", fFit->GetParameter("AS #sigma"), fFit->GetParError(fFit->GetParNumber("AS #sigma"))));
10591061 // t6 = pvStatTests1 -> AddText(0., 0.20, Form("#beta = %.3f#pm%.3f ", fFit -> GetParameter("NS shape par"), fFit -> GetParError(fFit->GetParNumber("NS shape par"))));
10601062
10611063 auto * pvStatTests2 = new TPaveText (0.51 , 0.28 , 0.85 , 0.60 , " NDC" );
10621064 pvStatTests2->SetFillStyle (0 );
10631065 pvStatTests2->SetTextSize (0.045 );
10641066 pvStatTests2->SetBorderSize (0 );
1065- t1 = pvStatTests2->AddText (0 ., 1.00 , Form (" Ped = %.3f#pm%.3f " , fFit ->GetParameter (" ped" ), fErrBaseline /* fFit -> GetParError(fFit->GetParNumber("ped")*/ ));
1066- t7 = pvStatTests2->AddText (0 ., 0.65 , Form (" v_{2}^{hadron} = %.3f#pm%.3f " , fFit ->GetParameter (" v_{2} hadron" ), fFit ->GetParError (fFit ->GetParNumber (" v_{2} hadron" ))));
1067- t8 = pvStatTests2->AddText (0 ., 0.35 , Form (" v_{2}^{D} = %.3f#pm%.3f " , fFit ->GetParameter (" v_{2} D meson" ), fFit ->GetParError (fFit ->GetParNumber (" v_{2} D meson" ))));
1067+ // t1 = pvStatTests2->AddText(0., 1.00, Form("Ped = %.3f#pm%.3f ", fFit->GetParameter("ped"), fErrBaseline /*fFit -> GetParError(fFit->GetParNumber("ped")*/));
1068+ // t7 = pvStatTests2->AddText(0., 0.65, Form("v_{2}^{hadron} = %.3f#pm%.3f ", fFit->GetParameter("v_{2} hadron"), fFit->GetParError(fFit->GetParNumber("v_{2} hadron"))));
1069+ // t8 = pvStatTests2->AddText(0., 0.35, Form("v_{2}^{D} = %.3f#pm%.3f ", fFit->GetParameter("v_{2} D meson"), fFit->GetParError(fFit->GetParNumber("v_{2} D meson"))));
10681070
10691071 if (draw) {
10701072 fFit ->Draw (" same" );
@@ -1102,13 +1104,13 @@ void DhCorrelationFitter::setSingleTermsForDrawing(Bool_t draw)
11021104 pvStatTests1->SetFillStyle (0 );
11031105 pvStatTests1->SetTextSize (0.045 );
11041106 pvStatTests1->SetBorderSize (0 );
1105- TText *t0, *t1, *t2, *t3, *t4, *t5, *t6;
1106- t0 = pvStatTests1->AddText (0 ., 1.00 , Form (" #chi^{2}/ndf = %.1f/%d " , fFit ->GetChisquare (), fFit ->GetNDF ()));
1107- t1 = pvStatTests1->AddText (0 ., 0.80 , Form (" Ped = %.3f#pm%.3f " , fBaseline , fErrBaseline ));
1108- t2 = pvStatTests1->AddText (0 ., 0.65 , Form (" NS Y = %.3f#pm%.3f " , fFit ->GetParameter (" NS Y" ), fFit ->GetParError (fFit ->GetParNumber (" NS Y" ))));
1109- t3 = pvStatTests1->AddText (0 ., 0.50 , Form (" NS #sigma = %.3f#pm%.3f " , fFit ->GetParameter (" NS #sigma" ), fFit ->GetParError (fFit ->GetParNumber (" NS #sigma" ))));
1110- t4 = pvStatTests1->AddText (0 ., 0.35 , Form (" AS Y = %.3f#pm%.3f " , fFit ->GetParameter (" AS Y" ), fFit ->GetParError (fFit ->GetParNumber (" AS Y" ))));
1111- t5 = pvStatTests1->AddText (0 ., 0.20 , Form (" AS #sigma = %.3f#pm%.3f " , fFit ->GetParameter (" AS #sigma" ), fFit ->GetParError (fFit ->GetParNumber (" AS #sigma" ))));
1107+ // TText *t0, *t1, *t2, *t3, *t4, *t5, *t6;
1108+ // t0 = pvStatTests1->AddText(0., 1.00, Form("#chi^{2}/ndf = %.1f/%d ", fFit->GetChisquare(), fFit->GetNDF()));
1109+ // t1 = pvStatTests1->AddText(0., 0.80, Form("Ped = %.3f#pm%.3f ", fBaseline, fErrBaseline));
1110+ // t2 = pvStatTests1->AddText(0., 0.65, Form("NS Y = %.3f#pm%.3f ", fFit->GetParameter("NS Y"), fFit->GetParError(fFit->GetParNumber("NS Y"))));
1111+ // t3 = pvStatTests1->AddText(0., 0.50, Form("NS #sigma = %.3f#pm%.3f ", fFit->GetParameter("NS #sigma"), fFit->GetParError(fFit->GetParNumber("NS #sigma"))));
1112+ // t4 = pvStatTests1->AddText(0., 0.35, Form("AS Y = %.3f#pm%.3f ", fFit->GetParameter("AS Y"), fFit->GetParError(fFit->GetParNumber("AS Y"))));
1113+ // t5 = pvStatTests1->AddText(0., 0.20, Form("AS #sigma = %.3f#pm%.3f ", fFit->GetParameter("AS #sigma"), fFit->GetParError(fFit->GetParNumber("AS #sigma"))));
11121114
11131115 if (draw) {
11141116 fFit ->Draw (" same" );
@@ -1118,4 +1120,5 @@ void DhCorrelationFitter::setSingleTermsForDrawing(Bool_t draw)
11181120 pvStatTests1->Draw (" same" );
11191121 }
11201122 }
1123+ delete[] par;
11211124}
0 commit comments