Skip to content

Commit 0e76d69

Browse files
committed
DhCorrelationFitter.cxx: Fix member order, dead code, memory leaks
1 parent d9f1e59 commit 0e76d69

File tree

1 file changed

+73
-70
lines changed

1 file changed

+73
-70
lines changed

PWGHF/HFC/Macros/DhCorrelationFitter.cxx

Lines changed: 73 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -38,78 +38,78 @@
3838
#include <iostream>
3939

4040
DhCorrelationFitter::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

7878
DhCorrelationFitter::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

Comments
 (0)