Skip to content

Commit 1c44103

Browse files
committed
Added fixed mean to runMassFitter
1 parent 298fb53 commit 1c44103

File tree

1 file changed

+30
-16
lines changed

1 file changed

+30
-16
lines changed

PWGHF/D2H/Macros/runMassFitter.C

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ int runMassFitter(TString configFileName)
9494
vector<double> massMax;
9595
vector<double> fixSigmaManual;
9696
vector<double> fixSecondSigmaManual;
97+
vector<double> fixMeanManual;
9798
vector<int> nRebin;
9899
vector<int> bkgFuncConfig;
99100
vector<int> sgnFuncConfig;
@@ -132,6 +133,9 @@ int runMassFitter(TString configFileName)
132133
const Value& fixSecondSigmaManualValue = config["FixSecondSigmaManual"];
133134
readArray(fixSecondSigmaManualValue, fixSecondSigmaManual);
134135

136+
const Value& fixMeanManualValue = config["FixMeanManual"];
137+
readArray(fixMeanManualValue, fixMeanManual);
138+
135139
const Value& ptMinValue = config["PtMin"];
136140
readArray(ptMinValue, ptMin);
137141

@@ -396,16 +400,18 @@ int runMassFitter(TString configFileName)
396400

397401
TH1D* hMeanToFix = NULL;
398402
if (fixMean) {
399-
auto inputFileMean = TFile::Open(meanFile.data());
400-
if (!inputFileMean) {
401-
return -3;
402-
}
403-
hMeanToFix = static_cast<TH1D*>(inputFileMean->Get("hRawYieldsMean"));
404-
hMeanToFix->SetDirectory(0);
405-
if (static_cast<unsigned int>(hMeanToFix->GetNbinsX()) != nPtBins) {
406-
cout << "WARNING: Different number of bins for this analysis and histo for fix mean" << endl;
403+
if (fixMeanManual.empty()) {
404+
auto inputFileMean = TFile::Open(meanFile.data());
405+
if (!inputFileMean) {
406+
return -3;
407+
}
408+
hMeanToFix = static_cast<TH1D*>(inputFileMean->Get("hRawYieldsMean"));
409+
hMeanToFix->SetDirectory(0);
410+
if (static_cast<unsigned int>(hMeanToFix->GetNbinsX()) != nPtBins) {
411+
cout << "WARNING: Different number of bins for this analysis and histo for fix mean" << endl;
412+
}
413+
inputFileMean->Close();
407414
}
408-
inputFileMean->Close();
409415
}
410416

411417
TH1D* hSecondSigmaToFix = NULL;
@@ -550,7 +556,19 @@ int runMassFitter(TString configFileName)
550556
massFitter->setUseLikelihoodFit();
551557
}
552558
if (fixMean) {
553-
massFitter->setFixGaussianMean(hMeanToFix->GetBinContent(iPt + 1));
559+
if (fixMeanManual.empty()) {
560+
massFitter->setFixGaussianMean(hMeanToFix->GetBinContent(iPt + 1));
561+
cout << "*****************************"
562+
<< "\n"
563+
<< "FIXED MEAN: " << hMeanToFix->GetBinContent(iPt + 1) << "\n"
564+
<< "*****************************" << endl;
565+
} else {
566+
massFitter->setFixGaussianMean(fixMeanManual[iPt]);
567+
cout << "*****************************"
568+
<< "\n"
569+
<< "FIXED MEAN: " << fixMeanManual[iPt] << "\n"
570+
<< "*****************************" << endl;
571+
}
554572
}
555573
if (fixSigma) {
556574
if (fixSigmaManual.empty()) {
@@ -559,14 +577,12 @@ int runMassFitter(TString configFileName)
559577
<< "\n"
560578
<< "FIXED SIGMA: " << hSigmaToFix->GetBinContent(iPt + 1) << "\n"
561579
<< "*****************************" << endl;
562-
} else if (!fixSigmaManual.empty()) {
580+
} else {
563581
massFitter->setFixGaussianSigma(fixSigmaManual[iPt]);
564582
cout << "*****************************"
565583
<< "\n"
566584
<< "FIXED SIGMA: " << fixSigmaManual[iPt] << "\n"
567585
<< "*****************************" << endl;
568-
} else {
569-
cout << "WARNING: impossible to fix sigma! Wrong fix sigma file or value!" << endl;
570586
}
571587
}
572588
if (fixSecondSigma) {
@@ -576,14 +592,12 @@ int runMassFitter(TString configFileName)
576592
<< "\n"
577593
<< "FIXED SIGMA: " << hSecondSigmaToFix->GetBinContent(iPt + 1) << "\n"
578594
<< "*****************************" << endl;
579-
} else if (!fixSecondSigmaManual.empty()) {
595+
} else {
580596
massFitter->setFixSecondGaussianSigma(fixSecondSigmaManual[iPt]);
581597
cout << "*****************************"
582598
<< "\n"
583599
<< "FIXED SIGMA: " << fixSecondSigmaManual[iPt] << "\n"
584600
<< "*****************************" << endl;
585-
} else {
586-
cout << "WARNING: impossible to fix sigma! Wrong fix sigma file or value!" << endl;
587601
}
588602
}
589603

0 commit comments

Comments
 (0)