Skip to content

Commit 4e7c227

Browse files
authored
Merge pull request #45965 from iarspider/iarspider-patch-20240910-rootmaster
Update classes inheriting from ROOT::Minuit2::FCNBase to account for changes in ROOTmaster
2 parents 47b9972 + 4b5e99d commit 4e7c227

File tree

7 files changed

+62
-1
lines changed

7 files changed

+62
-1
lines changed

OnlineDB/CSCCondDB/interface/CSCThrTurnOnFcn.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111

1212
#include "Minuit2/FCNBase.h"
1313
#include <vector>
14+
#include <RVersion.h>
15+
#if ROOT_VERSION_CODE >= ROOT_VERSION(6, 33, 1)
16+
#include <span>
17+
#endif
1418

1519
class CSCThrTurnOnFcn : public ROOT::Minuit2::FCNBase {
1620
private:
@@ -39,7 +43,11 @@ class CSCThrTurnOnFcn : public ROOT::Minuit2::FCNBase {
3943
void setNorm(float n) { norm = n; };
4044

4145
/// Provide the chi-squared function for the given data
46+
#if ROOT_VERSION_CODE >= ROOT_VERSION(6, 33, 1)
47+
double operator()(std::span<const double>) const override;
48+
#else
4249
double operator()(const std::vector<double>&) const override;
50+
#endif
4351

4452
///@@ What?
4553
double Up() const override { return 1.; }

OnlineDB/CSCCondDB/src/CSCFitAFEBThr.cc

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,12 @@ bool CSCFitAFEBThr::ThresholdNoise(const std::vector<float>& inputx,
130130
// <<" "<<ery[i]<<std::endl;
131131

132132
/// Fit as 1D, <=500 iterations, edm=10**-5 (->0.1)
133+
#if ROOT_VERSION_CODE >= ROOT_VERSION(6, 33, 1)
134+
FunctionMinimum fmin =
135+
theFitter->Minimize(*theOBJfun, std::span<double>(parinit), std::span<double>(erparinit), 1, 500, 0.1);
136+
#else
133137
FunctionMinimum fmin = theFitter->Minimize(*theOBJfun, parinit, erparinit, 1, 500, 0.1);
134-
138+
#endif
135139
status = fmin.IsValid();
136140

137141
if (status) {

OnlineDB/CSCCondDB/src/CSCThrTurnOnFcn.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@
55
#include <vector>
66
#include "TMath.h"
77

8+
#if ROOT_VERSION_CODE >= ROOT_VERSION(6, 33, 1)
9+
double CSCThrTurnOnFcn::operator()(std::span<const double> par) const {
10+
#else
811
double CSCThrTurnOnFcn::operator()(const std::vector<double>& par) const {
12+
#endif
913
double x, y, er, fn;
1014
double N = norm;
1115
double chi2 = 0.;

RecoVertex/BeamSpotProducer/interface/BSpdfsFcn.h

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ ________________________________________________________________**/
1818

1919
#include <iostream>
2020
#include <string>
21+
#include <RVersion.h>
22+
#if ROOT_VERSION_CODE >= ROOT_VERSION(6, 32, 4)
23+
#include <span>
24+
#endif
2125

2226
class BSpdfsFcn : public ROOT::Minuit2::FCNBase {
2327
public:
@@ -26,14 +30,25 @@ class BSpdfsFcn : public ROOT::Minuit2::FCNBase {
2630
// define pdfs to use
2731
void SetPDFs(std::string usepdfs) { fusepdfs = usepdfs; }
2832

33+
#if ROOT_VERSION_CODE >= ROOT_VERSION(6, 33, 1)
34+
double operator()(std::span<const double>) const override;
35+
#else
2936
double operator()(const std::vector<double>&) const override;
37+
#endif
3038
double Up() const override { return 1.; }
3139

3240
private:
41+
#if ROOT_VERSION_CODE >= ROOT_VERSION(6, 33, 1)
42+
double PDFGauss_d(double z, double d, double sigmad, double phi, std::span<const double> parms) const;
43+
double PDFGauss_d_resolution(double z, double d, double phi, double pt, std::span<const double> parms) const;
44+
45+
double PDFGauss_z(double z, double sigmaz, std::span<const double> parms) const;
46+
#else
3347
double PDFGauss_d(double z, double d, double sigmad, double phi, const std::vector<double>& parms) const;
3448
double PDFGauss_d_resolution(double z, double d, double phi, double pt, const std::vector<double>& parms) const;
3549

3650
double PDFGauss_z(double z, double sigmaz, const std::vector<double>& parms) const;
51+
#endif
3752

3853
std::string fusepdfs;
3954
std::vector<BSTrkParameters> fBSvector;

RecoVertex/BeamSpotProducer/interface/FcnBeamSpotFitPV.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
#include "Minuit2/FCNBase.h"
1919

2020
#include <vector>
21+
#include <span>
22+
#include <RVersion.h>
2123

2224
class FcnBeamSpotFitPV : public ROOT::Minuit2::FCNBase {
2325
public:
@@ -29,7 +31,11 @@ class FcnBeamSpotFitPV : public ROOT::Minuit2::FCNBase {
2931
// deltaFcn for definition of the uncertainty
3032
double Up() const override { return errorDef_; }
3133
// -2lnL value based on vector of parameters
34+
#if ROOT_VERSION_CODE >= ROOT_VERSION(6, 32, 4)
35+
double operator()(std::span<const double>) const override;
36+
#else
3237
double operator()(const std::vector<double>&) const override;
38+
#endif
3339
// vertex count used for the fit (after selection)
3440
unsigned int nrOfVerticesUsed() const;
3541

RecoVertex/BeamSpotProducer/src/BSpdfsFcn.cc

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,16 @@ ________________________________________________________________**/
1515

1616
#include <cmath>
1717
#include <vector>
18+
#if ROOT_VERSION_CODE >= ROOT_VERSION(6, 33, 1)
19+
#include <span>
20+
#endif
1821

1922
//______________________________________________________________________
23+
#if ROOT_VERSION_CODE >= ROOT_VERSION(6, 32, 4)
24+
double BSpdfsFcn::PDFGauss_d(double z, double d, double sigmad, double phi, std::span<const double> parms) const {
25+
#else
2026
double BSpdfsFcn::PDFGauss_d(double z, double d, double sigmad, double phi, const std::vector<double>& parms) const {
27+
#endif
2128
//---------------------------------------------------------------------------
2229
// PDF for d0 distribution. This PDF is a simple gaussian in the
2330
// beam reference frame.
@@ -35,8 +42,12 @@ double BSpdfsFcn::PDFGauss_d(double z, double d, double sigmad, double phi, cons
3542
}
3643

3744
//______________________________________________________________________
45+
#if ROOT_VERSION_CODE >= ROOT_VERSION(6, 32, 4)
46+
double BSpdfsFcn::PDFGauss_d_resolution(double z, double d, double phi, double pt, std::span<const double> parms) const {
47+
#else
3848
double BSpdfsFcn::PDFGauss_d_resolution(
3949
double z, double d, double phi, double pt, const std::vector<double>& parms) const {
50+
#endif
4051
//---------------------------------------------------------------------------
4152
// PDF for d0 distribution. This PDF is a simple gaussian in the
4253
// beam reference frame. The IP resolution is parametrize by a linear
@@ -57,7 +68,12 @@ double BSpdfsFcn::PDFGauss_d_resolution(
5768
}
5869

5970
//______________________________________________________________________
71+
#if ROOT_VERSION_CODE >= ROOT_VERSION(6, 32, 4)
72+
double BSpdfsFcn::PDFGauss_z(double z, double sigmaz, std::span<const double> parms) const {
73+
#else
6074
double BSpdfsFcn::PDFGauss_z(double z, double sigmaz, const std::vector<double>& parms) const {
75+
#endif
76+
6177
//---------------------------------------------------------------------------
6278
// PDF for z-vertex distribution. This distribution
6379
// is parametrized by a simple normalized gaussian distribution.
@@ -73,7 +89,11 @@ double BSpdfsFcn::PDFGauss_z(double z, double sigmaz, const std::vector<double>&
7389
}
7490

7591
//______________________________________________________________________
92+
#if ROOT_VERSION_CODE >= ROOT_VERSION(6, 32, 4)
93+
double BSpdfsFcn::operator()(const std::span<const double> params) const {
94+
#else
7695
double BSpdfsFcn::operator()(const std::vector<double>& params) const {
96+
#endif
7797
double f = 0.0;
7898

7999
//std::cout << "fusepdfs=" << fusepdfs << " params.size="<<params.size() << std::endl;

RecoVertex/BeamSpotProducer/src/FcnBeamSpotFitPV.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,11 @@ unsigned int FcnBeamSpotFitPV::nrOfVerticesUsed() const {
5151
return nVtx;
5252
}
5353

54+
#if ROOT_VERSION_CODE >= ROOT_VERSION(6, 33, 1)
55+
double FcnBeamSpotFitPV::operator()(std::span<const double> pars) const {
56+
#else
5457
double FcnBeamSpotFitPV::operator()(const std::vector<double>& pars) const {
58+
#endif
5559
//
5660
// fit parameters
5761
//

0 commit comments

Comments
 (0)