CondFormats
HcalObjects
interface
ScalingExponential.h
Go to the documentation of this file.
1
#ifndef CondFormats_HcalObjects_ScalingExponential_h_
2
#define CondFormats_HcalObjects_ScalingExponential_h_
3
4
#include <cmath>
5
6
#include "boost/serialization/access.hpp"
7
#include "boost/serialization/version.hpp"
8
#include <cstdint>
9
10
class
ScalingExponential
{
11
public
:
12
inline
ScalingExponential
() :
p0_
(0.0),
p1_
(0.0),
linear_
(0) {}
13
14
inline
ScalingExponential
(
const
double
p0,
const
double
p1
,
const
bool
isLinear =
false
)
15
:
p0_
(p0),
p1_
(
p1
),
linear_
(isLinear) {}
16
17
inline
double
operator()
(
const
double
x
)
const
{
18
const
double
scale
=
linear_
?
p0_
*
x
+
p1_
:
p0_
* (1.0 -
exp
(-
x
/
p1_
));
19
return
scale
*
x
;
20
}
21
22
inline
bool
operator==
(
const
ScalingExponential
&
r
)
const
{
23
return
p0_
==
r
.p0_ &&
p1_
==
r
.p1_ &&
linear_
==
r
.linear_;
24
}
25
26
inline
bool
operator!=
(
const
ScalingExponential
&
r
)
const
{
return
!(*
this
==
r
); }
27
28
private
:
29
double
p0_
;
30
double
p1_
;
31
uint8_t
linear_
;
32
33
friend
class
boost::serialization::access
;
34
35
template
<
class
Archive>
36
inline
void
serialize
(Archive& ar,
unsigned
/* version */
) {
37
ar&
p0_
&
p1_
&
linear_
;
38
}
39
};
40
41
BOOST_CLASS_VERSION(
ScalingExponential
, 1)
42
43
#endif // CondFormats_HcalObjects_ScalingExponential_h_
L1EGammaCrystalsEmulatorProducer_cfi.scale
scale
Definition:
L1EGammaCrystalsEmulatorProducer_cfi.py:10
ScalingExponential::ScalingExponential
ScalingExponential()
Definition:
ScalingExponential.h:12
ScalingExponential::ScalingExponential
ScalingExponential(const double p0, const double p1, const bool isLinear=false)
Definition:
ScalingExponential.h:14
ScalingExponential::access
friend class boost::serialization::access
Definition:
ScalingExponential.h:33
DDAxes::x
ScalingExponential::serialize
void serialize(Archive &ar, unsigned)
Definition:
ScalingExponential.h:36
ScalingExponential::p0_
double p0_
Definition:
ScalingExponential.h:29
ScalingExponential::linear_
uint8_t linear_
Definition:
ScalingExponential.h:31
ScalingExponential
Definition:
ScalingExponential.h:10
ScalingExponential::operator()
double operator()(const double x) const
Definition:
ScalingExponential.h:17
ScalingExponential::p1_
double p1_
Definition:
ScalingExponential.h:30
p1
double p1[4]
Definition:
TauolaWrapper.h:89
alignCSCRings.r
r
Definition:
alignCSCRings.py:93
ScalingExponential::operator==
bool operator==(const ScalingExponential &r) const
Definition:
ScalingExponential.h:22
ScalingExponential::operator!=
bool operator!=(const ScalingExponential &r) const
Definition:
ScalingExponential.h:26
JetChargeProducer_cfi.exp
exp
Definition:
JetChargeProducer_cfi.py:6
Generated for CMSSW Reference Manual by
1.8.16