From 810c952cb40e06b047c3f430153dce564faab860 Mon Sep 17 00:00:00 2001
From: Wolf Behrenhoff <wolf@behrenhoff.de>
Date: Wed, 31 Jan 2018 14:55:19 +0100
Subject: [PATCH] Use std::make_shared instead of shared_ptr(new T(...))

---
 math/mathcore/src/Fitter.cxx               |  4 ++--
 roofit/roostats/src/BayesianCalculator.cxx | 12 ++++++------
 roofit/roostats/src/LikelihoodInterval.cxx |  4 ++--
 3 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/math/mathcore/src/Fitter.cxx b/math/mathcore/src/Fitter.cxx
index 8ff2c35d5e3..29d2ac827bb 100644
--- a/math/mathcore/src/Fitter.cxx
+++ b/math/mathcore/src/Fitter.cxx
@@ -318,7 +318,7 @@ bool Fitter::EvalFCN() {
       return false;
    }
    // create a Fit result from the fit configuration
-   fResult = std::shared_ptr<ROOT::Fit::FitResult>(new ROOT::Fit::FitResult(fConfig) );
+   fResult = std::make_shared<ROOT::Fit::FitResult>(fConfig);
    // evaluate one time the FCN
    double fcnval = (*fObjFunction)(fResult->GetParams() );
    // update fit result
@@ -811,7 +811,7 @@ bool Fitter::DoMinimization(const ROOT::Math::IMultiGenFunction * chi2func) {
    // unsigned int ncalls =  ObjFuncTrait<ObjFunc>::NCalls(*fcn);
    // int fitType =  ObjFuncTrait<ObjFunc>::Type(objFunc);
 
-   if (!fResult) fResult =  std::shared_ptr<FitResult> ( new FitResult() );
+   if (!fResult) fResult = std::make_shared<FitResult>();
    fResult->FillResult(fMinimizer,fConfig, fFunc, ret, fDataSize, fBinFit, chi2func );
 
    // when possible get ncalls from FCN and set in fit result
diff --git a/roofit/roostats/src/BayesianCalculator.cxx b/roofit/roostats/src/BayesianCalculator.cxx
index e3149a0db10..56651aa4067 100644
--- a/roofit/roostats/src/BayesianCalculator.cxx
+++ b/roofit/roostats/src/BayesianCalculator.cxx
@@ -168,7 +168,7 @@ public:
 
    PosteriorCdfFunction(RooAbsReal & nll,  RooArgList & bindParams, RooAbsReal * prior = 0, const char * integType = 0, double nllMinimum = 0) :
       fFunctor(nll, bindParams, RooArgList() ),              // functor
-      fPriorFunc(std::shared_ptr<RooFunctor>((RooFunctor*)0)),
+      fPriorFunc(nullptr),
       fLikelihood(fFunctor, 0, nllMinimum),         // integral of exp(-nll) function
       fIntegrator(ROOT::Math::IntegratorMultiDim::GetType(integType) ),  // integrator
       fXmin(bindParams.getSize() ),               // vector of parameters (min values)
@@ -178,7 +178,7 @@ public:
    {
 
       if (prior) {
-         fPriorFunc = std::shared_ptr<RooFunctor>(new RooFunctor(*prior, bindParams, RooArgList() ));
+         fPriorFunc = std::make_shared<RooFunctor>(*prior, bindParams, RooArgList());
          fLikelihood.SetPrior(fPriorFunc.get() );
       }
 
@@ -354,7 +354,7 @@ public:
    PosteriorFunction(RooAbsReal & nll, RooRealVar & poi, RooArgList & nuisParams, RooAbsReal * prior = 0, const char * integType = 0, double
                      norm = 1.0,  double nllOffset = 0, int niter = 0) :
       fFunctor(nll, nuisParams, RooArgList() ),
-      fPriorFunc(std::shared_ptr<RooFunctor>((RooFunctor*)0)),
+      fPriorFunc(nullptr),
       fLikelihood(fFunctor, 0, nllOffset),
       fPoi(&poi),
       fXmin(nuisParams.getSize() ),
@@ -364,7 +364,7 @@ public:
    {
 
       if (prior) {
-         fPriorFunc = std::shared_ptr<RooFunctor>(new RooFunctor(*prior, nuisParams, RooArgList() ));
+         fPriorFunc = std::make_shared<RooFunctor>(*prior, nuisParams, RooArgList());
          fLikelihood.SetPrior(fPriorFunc.get() );
       }
 
@@ -470,7 +470,7 @@ public:
    PosteriorFunctionFromToyMC(RooAbsReal & nll, RooAbsPdf & pdf, RooRealVar & poi, RooArgList & nuisParams, RooAbsReal * prior = 0, double
                               nllOffset = 0, int niter = 0, bool redoToys = true ) :
       fFunctor(nll, nuisParams, RooArgList() ),
-      fPriorFunc(std::shared_ptr<RooFunctor>((RooFunctor*)0)),
+      fPriorFunc(nullptr),
       fLikelihood(fFunctor, 0, nllOffset),
       fPdf(&pdf),
       fPoi(&poi),
@@ -483,7 +483,7 @@ public:
       if (niter == 0) fNumIterations = 100; // default value
 
       if (prior) {
-         fPriorFunc = std::shared_ptr<RooFunctor>(new RooFunctor(*prior, nuisParams, RooArgList() ));
+         fPriorFunc = std::make_shared<RooFunctor>(*prior, nuisParams, RooArgList());
          fLikelihood.SetPrior(fPriorFunc.get() );
       }
 
diff --git a/roofit/roostats/src/LikelihoodInterval.cxx b/roofit/roostats/src/LikelihoodInterval.cxx
index f0b2b83067b..2a86bc096c8 100644
--- a/roofit/roostats/src/LikelihoodInterval.cxx
+++ b/roofit/roostats/src/LikelihoodInterval.cxx
@@ -258,7 +258,7 @@ bool LikelihoodInterval::CreateMinimizer() {
       ccoutI(InputArguments) << "LikelihoodInterval: using nll offset - set all RooAbsReal to hide the offset  " << std::endl;
       RooAbsReal::setHideOffset(kFALSE); // need to keep this false
    }
-   fFunctor = std::shared_ptr<RooFunctor>(new RooFunctor(nll, RooArgSet(), params ));
+   fFunctor = std::make_shared<RooFunctor>(nll, RooArgSet(), params);
 
    std::string minimType =  ROOT::Math::MinimizerOptions::DefaultMinimizerType();
    std::transform(minimType.begin(), minimType.end(), minimType.begin(), (int(*)(int)) tolower );
@@ -275,7 +275,7 @@ bool LikelihoodInterval::CreateMinimizer() {
 
    if (!fMinimizer.get()) return false;
 
-   fMinFunc = std::shared_ptr<ROOT::Math::IMultiGenFunction>( new ROOT::Math::WrappedMultiFunction<RooFunctor &> (*fFunctor, fFunctor->nPar() ) );
+   fMinFunc = std::make_shared<ROOT::Math::WrappedMultiFunction<RooFunctor &>>(*fFunctor, fFunctor->nPar());
    fMinimizer->SetFunction(*fMinFunc);
 
    // set minimizer parameters
-- 
GitLab