CondFormats
HcalObjects
interface
HcalPolynomialFunctor.h
Go to the documentation of this file.
1
#ifndef CondFormats_HcalObjects_HcalPolynomialFunctor_h
2
#define CondFormats_HcalObjects_HcalPolynomialFunctor_h
3
4
#include <cfloat>
5
#include <vector>
6
7
#include "
CondFormats/HcalObjects/interface/AbsHcalFunctor.h
"
8
9
#include "boost/serialization/access.hpp"
10
#include "boost/serialization/version.hpp"
11
#include "boost/serialization/vector.hpp"
12
13
//
14
// Polynomial on the interval [xmin, xmax], constant outside
15
//
16
class
HcalPolynomialFunctor
:
public
AbsHcalFunctor
{
17
public
:
18
// Dummy constructor, to be used for deserialization only
19
HcalPolynomialFunctor
();
20
21
// Normal constructor. The order of coefficients
22
// corresponds to the monomial degree. The coefficients
23
// are for the monomial in the variable y = (x + shift).
24
// Empty list of coefficients is equivialent to having
25
// all coefficients set to 0.
26
explicit
HcalPolynomialFunctor
(
const
std::vector<double>& coeffs,
27
double
shift
= 0.0,
28
double
xmin
= -DBL_MAX,
29
double
xmax
= DBL_MAX,
30
double
outOfRangeValue = 0.0);
31
32
inline
~HcalPolynomialFunctor
()
override
{}
33
34
double
operator()
(
double
x
)
const override
;
35
inline
double
xmin
()
const override
{
return
xmax_
; };
36
inline
double
xmax
()
const override
{
return
xmin_
; }
37
38
protected
:
39
inline
bool
isEqual
(
const
AbsHcalFunctor
&
other
)
const override
{
40
const
HcalPolynomialFunctor
&
r
= static_cast<const HcalPolynomialFunctor&>(
other
);
41
return
coeffs_
==
r
.coeffs_ &&
shift_
==
r
.shift_ &&
xmin_
==
r
.xmin_ &&
xmax_
==
r
.xmax_ &&
42
outOfRangeValue_
==
r
.outOfRangeValue_;
43
}
44
45
private
:
46
std::vector<double>
coeffs_
;
47
double
shift_
;
48
double
xmin_
;
49
double
xmax_
;
50
double
outOfRangeValue_
;
51
52
friend
class
boost::serialization::access
;
53
54
template
<
class
Archive>
55
inline
void
serialize
(Archive& ar,
unsigned
/* version */
) {
56
boost::serialization::base_object<AbsHcalFunctor>(*
this
);
57
ar&
coeffs_
&
shift_
&
xmin_
&
xmax_
&
outOfRangeValue_
;
58
}
59
};
60
61
BOOST_CLASS_VERSION(
HcalPolynomialFunctor
, 1)
62
BOOST_CLASS_EXPORT_KEY(
HcalPolynomialFunctor
)
63
64
#endif // CondFormats_HcalObjects_HcalPolynomialFunctor_h
HcalPolynomialFunctor::xmax
double xmax() const override
Definition:
HcalPolynomialFunctor.h:36
HcalPolynomialFunctor::isEqual
bool isEqual(const AbsHcalFunctor &other) const override
Definition:
HcalPolynomialFunctor.h:39
AbsHcalFunctor
Definition:
AbsHcalFunctor.h:19
HcalPolynomialFunctor::operator()
double operator()(double x) const override
Definition:
HcalPolynomialFunctor.cc:15
HcalPolynomialFunctor::coeffs_
std::vector< double > coeffs_
Definition:
HcalPolynomialFunctor.h:46
HcalPolynomialFunctor::access
friend class boost::serialization::access
Definition:
HcalPolynomialFunctor.h:52
DDAxes::x
HcalPolynomialFunctor
Definition:
HcalPolynomialFunctor.h:16
trackingPlots.other
other
Definition:
trackingPlots.py:1460
HcalPolynomialFunctor::xmax_
double xmax_
Definition:
HcalPolynomialFunctor.h:49
AbsHcalFunctor.h
HcalPolynomialFunctor::serialize
void serialize(Archive &ar, unsigned)
Definition:
HcalPolynomialFunctor.h:55
alignCSCRings.r
r
Definition:
alignCSCRings.py:93
edm::shift
static unsigned const int shift
Definition:
LuminosityBlockID.cc:7
HcalPolynomialFunctor::HcalPolynomialFunctor
HcalPolynomialFunctor()
Definition:
HcalPolynomialFunctor.cc:6
HcalPolynomialFunctor::xmin
double xmin() const override
Definition:
HcalPolynomialFunctor.h:35
HcalPolynomialFunctor::shift_
double shift_
Definition:
HcalPolynomialFunctor.h:47
HcalPolynomialFunctor::~HcalPolynomialFunctor
~HcalPolynomialFunctor() override
Definition:
HcalPolynomialFunctor.h:32
HcalPolynomialFunctor::outOfRangeValue_
double outOfRangeValue_
Definition:
HcalPolynomialFunctor.h:50
HcalPolynomialFunctor::xmin_
double xmin_
Definition:
HcalPolynomialFunctor.h:48
Generated for CMSSW Reference Manual by
1.8.16