@@ -329,12 +329,6 @@ void runMassFitter(const std::string& configFileName)
329329 TH1 * hSecondSigmaToFix = getHistToFix (fixSecondSigma , fixSecondSigmaManual , secondSigmaFile , "SecSigma" );
330330 TH1 * hFracDoubleGausToFix = getHistToFix (fixFracDoubleGaus , fixFracDoubleGausManual , fracDoubleGausFile , "FracDoubleGaus" );
331331
332- // fit histograms
333-
334- std ::vector < TH1 * > hMassForFit (nSliceVarBins );
335- std ::vector < TH1 * > hMassForRefl (nSliceVarBins );
336- std ::vector < TH1 * > hMassForSgn (nSliceVarBins );
337-
338332 int canvasSize [2 ] = {1920 , 1080 };
339333 if (nSliceVarBins == 1 ) {
340334 canvasSize [0 ] = 500 ;
@@ -367,22 +361,22 @@ void runMassFitter(const std::string& configFileName)
367361 for (int iSliceVar = 0 ; iSliceVar < nSliceVarBins ; iSliceVar ++ ) {
368362 const int iCanvas = std ::floor (static_cast < float > (iSliceVar ) / nCanvasesMax );
369363
370- hMassForFit [ iSliceVar ] = hMass [iSliceVar ]-> Rebin (nRebin [iSliceVar ]);
364+ hMass [iSliceVar ]-> Rebin (nRebin [iSliceVar ]);
371365 TString const ptTitle =
372366 Form ("%0.2f < " + sliceVarName + " < %0.2f " + sliceVarUnit , sliceVarMin [iSliceVar ], sliceVarMax [iSliceVar ]);
373- hMassForFit [iSliceVar ]-> SetTitle (Form ("%s;%s;Counts per %0.1f MeV/#it{c}^{2}" ,
374- ptTitle .Data (), massAxisTitle .c_str (),
375- hMassForFit [iSliceVar ]-> GetBinWidth (1 ) * 1000 ));
376- hMassForFit [iSliceVar ]-> SetName (Form ("MassForFit%d" , iSliceVar ));
367+ hMass [iSliceVar ]-> SetTitle (Form ("%s;%s;Counts per %0.1f MeV/#it{c}^{2}" ,
368+ ptTitle .Data (), massAxisTitle .c_str (),
369+ hMass [iSliceVar ]-> GetBinWidth (1 ) * 1000 ));
370+ hMass [iSliceVar ]-> SetName (Form ("MassForFit%d" , iSliceVar ));
377371
378372 if (enableRefl ) {
379- hMassForRefl [ iSliceVar ] = hMassRefl [iSliceVar ]-> Rebin (nRebin [iSliceVar ]);
380- hMassForSgn [ iSliceVar ] = hMassSgn [iSliceVar ]-> Rebin (nRebin [iSliceVar ]);
373+ hMassRefl [iSliceVar ]-> Rebin (nRebin [iSliceVar ]);
374+ hMassSgn [iSliceVar ]-> Rebin (nRebin [iSliceVar ]);
381375 }
382376
383377 double reflOverSgn = 0 ;
384378
385- HFInvMassFitter * massFitter = new HFInvMassFitter (hMassForFit [iSliceVar ], massMin [iSliceVar ], massMax [iSliceVar ], bkgFunc [iSliceVar ], sgnFunc [iSliceVar ]);
379+ HFInvMassFitter * massFitter = new HFInvMassFitter (hMass [iSliceVar ], massMin [iSliceVar ], massMax [iSliceVar ], bkgFunc [iSliceVar ], sgnFunc [iSliceVar ]);
386380 massFitter -> setDrawBgPrefit (drawBgPrefit );
387381 massFitter -> setHighlightPeakRegion (highlightPeakRegion );
388382 massFitter -> setInitialGaussianMean (massPDG );
@@ -413,8 +407,8 @@ void runMassFitter(const std::string& configFileName)
413407 setFixedValue (fixFracDoubleGaus , fixFracDoubleGausManual , hFracDoubleGausToFix , std ::bind (& HFInvMassFitter ::setFixFrac2Gaus , massFitter , std ::placeholders ::_1 ), "FRAC DOUBLE GAUS" );
414408
415409 if (!isMc && enableRefl ) {
416- reflOverSgn = hMassForSgn [iSliceVar ]-> Integral (hMassForSgn [iSliceVar ]-> FindBin (massMin [iSliceVar ] * 1.0001 ), hMassForSgn [iSliceVar ]-> FindBin (massMax [iSliceVar ] * 0.999 ));
417- reflOverSgn = hMassForRefl [iSliceVar ]-> Integral (hMassForRefl [iSliceVar ]-> FindBin (massMin [iSliceVar ] * 1.0001 ), hMassForRefl [iSliceVar ]-> FindBin (massMax [iSliceVar ] * 0.999 )) / reflOverSgn ;
410+ reflOverSgn = hMassSgn [iSliceVar ]-> Integral (hMassSgn [iSliceVar ]-> FindBin (massMin [iSliceVar ] * 1.0001 ), hMassSgn [iSliceVar ]-> FindBin (massMax [iSliceVar ] * 0.999 ));
411+ reflOverSgn = hMassRefl [iSliceVar ]-> Integral (hMassRefl [iSliceVar ]-> FindBin (massMin [iSliceVar ] * 1.0001 ), hMassRefl [iSliceVar ]-> FindBin (massMax [iSliceVar ] * 0.999 )) / reflOverSgn ;
418412 massFitter -> setFixReflOverSgn (reflOverSgn );
419413 massFitter -> setTemplateReflections (hMassRefl [iSliceVar ]);
420414 }
0 commit comments