switched PFitter to smart pointers.
This commit is contained in:
parent
7e17af0256
commit
1a72d67be9
@ -280,9 +280,6 @@ PFitter::PFitter(PMsrHandler *runInfo, PRunListCollection *runListCollection, Bo
|
||||
fCmdLines = *runInfo->GetMsrCommands();
|
||||
|
||||
// init class variables
|
||||
fFitterFcn = nullptr;
|
||||
fFcnMin = nullptr;
|
||||
|
||||
fScanAll = true;
|
||||
fScanParameter[0] = 0;
|
||||
fScanParameter[1] = 0;
|
||||
@ -317,11 +314,7 @@ PFitter::PFitter(PMsrHandler *runInfo, PRunListCollection *runListCollection, Bo
|
||||
GetPhaseParams();
|
||||
|
||||
// create fit function object
|
||||
fFitterFcn = new PFitterFcn(runListCollection, fUseChi2);
|
||||
if (!fFitterFcn) {
|
||||
fIsValid = false;
|
||||
return;
|
||||
}
|
||||
fFitterFcn = std::make_unique<PFitterFcn>(runListCollection, fUseChi2);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
@ -337,16 +330,6 @@ PFitter::~PFitter()
|
||||
fScanData.clear();
|
||||
|
||||
fElapsedTime.clear();
|
||||
|
||||
if (fFcnMin) {
|
||||
delete fFcnMin;
|
||||
fFcnMin = nullptr;
|
||||
}
|
||||
|
||||
if (fFitterFcn) {
|
||||
delete fFitterFcn;
|
||||
fFitterFcn = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
@ -1802,11 +1785,7 @@ Bool_t PFitter::ExecuteMigrad()
|
||||
}
|
||||
|
||||
// keep FunctionMinimum object
|
||||
if (fFcnMin) { // fFcnMin exist hence clean up first
|
||||
delete fFcnMin;
|
||||
fFcnMin = nullptr;
|
||||
}
|
||||
fFcnMin = new ROOT::Minuit2::FunctionMinimum(min);
|
||||
fFcnMin.reset(new ROOT::Minuit2::FunctionMinimum(min));
|
||||
|
||||
// keep user parameters
|
||||
if (fFcnMin)
|
||||
@ -1883,11 +1862,7 @@ Bool_t PFitter::ExecuteMinimize()
|
||||
}
|
||||
|
||||
// keep FunctionMinimum object
|
||||
if (fFcnMin) { // fFcnMin exist hence clean up first
|
||||
delete fFcnMin;
|
||||
fFcnMin = nullptr;
|
||||
}
|
||||
fFcnMin = new ROOT::Minuit2::FunctionMinimum(min);
|
||||
fFcnMin.reset(new ROOT::Minuit2::FunctionMinimum(min));
|
||||
|
||||
// keep user parameters
|
||||
if (fFcnMin)
|
||||
@ -2596,11 +2571,7 @@ Bool_t PFitter::ExecuteSimplex()
|
||||
}
|
||||
|
||||
// keep FunctionMinimum object
|
||||
if (fFcnMin) { // fFcnMin exist hence clean up first
|
||||
delete fFcnMin;
|
||||
fFcnMin = nullptr;
|
||||
}
|
||||
fFcnMin = new ROOT::Minuit2::FunctionMinimum(min);
|
||||
fFcnMin.reset(new ROOT::Minuit2::FunctionMinimum(min));
|
||||
|
||||
// keep user parameters
|
||||
if (fFcnMin)
|
||||
|
@ -30,6 +30,8 @@
|
||||
#ifndef _PFITTER_H_
|
||||
#define _PFITTER_H_
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include "Minuit2/MnUserParameters.h"
|
||||
#include "Minuit2/FunctionMinimum.h"
|
||||
|
||||
@ -135,10 +137,10 @@ class PFitter
|
||||
PMsrLines fCmdLines; ///< all the Minuit commands from the msr-file
|
||||
PIntPairVector fCmdList; ///< command list, first=cmd, second=cmd line index
|
||||
|
||||
PFitterFcn *fFitterFcn; ///< pointer to the fitter function object
|
||||
std::unique_ptr<PFitterFcn> fFitterFcn; ///< pointer to the fitter function object
|
||||
|
||||
ROOT::Minuit2::MnUserParameters fMnUserParams; ///< minuit2 input parameter list
|
||||
ROOT::Minuit2::FunctionMinimum *fFcnMin; ///< function minimum object
|
||||
std::unique_ptr<ROOT::Minuit2::FunctionMinimum> fFcnMin; ///< function minimum object
|
||||
|
||||
// minuit2 scan/contours command relate variables (see MnScan/MnContours in the minuit2 user manual)
|
||||
Bool_t fScanAll; ///< flag. false: single parameter scan, true: not implemented yet (see MnScan/MnContours in the minuit2 user manual)
|
||||
|
Loading…
x
Reference in New Issue
Block a user