MuonAnalysis
MomentumScaleCalibration
interface
SigmaPtDiff.h
Go to the documentation of this file.
1
#ifndef SigmaPtDiff_h
2
#define SigmaPtDiff_h
3
4
#include <vector>
5
#include <cmath>
6
7
class
SigmaPt
{
8
public
:
9
SigmaPt
(
const
std::vector<double>& parameters_,
const
std::vector<double>& errors_) {
10
setParErr
(parameters_, errors_);
11
}
12
13
SigmaPt
(){};
14
15
void
setParErr
(
const
std::vector<double>&
parameters
,
const
std::vector<double>&
errors
) {
16
b_0
=
parameters
[0];
17
b_1
=
parameters
[5];
18
b_2
=
parameters
[1];
19
b_3
=
parameters
[7];
20
b_4
=
parameters
[8];
21
sb_0
=
errors
[0];
22
sb_1
=
errors
[5];
23
sb_2
=
errors
[1];
24
sb_3
=
errors
[7];
25
sb_4
=
errors
[8];
26
c
=
b_2
+
b_3
* (
b_0
-
b_4
) * (
b_0
-
b_4
) -
b_1
*
b_0
*
b_0
;
27
}
28
29
double
operator()
(
const
double
&
eta
) {
30
if
(fabs(
eta
) <=
b_0
) {
31
return
(
c
+
b_1
*
eta
*
eta
);
32
}
33
return
(
b_2
+
b_3
* (fabs(
eta
) -
b_4
) * (fabs(
eta
) -
b_4
));
34
}
35
double
sigma
(
const
double
&
eta
) {
36
if
(fabs(
eta
) <=
b_0
) {
37
return
sqrt
((
eta
*
eta
-
b_0
*
b_0
) * (
eta
*
eta
-
b_0
*
b_0
) *
sb_1
*
sb_1
+
sb_2
*
sb_2
+
38
pow
(
b_0
-
b_4
, 4) *
sb_3
*
sb_3
+
pow
(-2 *
b_3
*
pow
(
b_0
-
b_4
, 2), 2) *
sb_4
*
sb_4
+
39
pow
(2 *
b_3
* (
b_0
-
b_4
) - 2 *
b_1
*
b_0
, 2) *
sb_0
*
sb_0
);
40
}
41
return
sqrt
(
sb_2
*
sb_2
+
pow
(fabs(
eta
) -
b_4
, 4) *
sb_3
*
sb_3
+
42
pow
(-2 *
b_3
*
pow
(fabs(
eta
) -
b_4
, 2), 2) *
sb_4
*
sb_4
);
43
}
44
45
protected
:
46
double
b_0
;
47
double
b_1
;
48
double
b_2
;
49
double
b_3
;
50
double
b_4
;
51
double
c
;
52
53
double
sb_0
;
54
double
sb_1
;
55
double
sb_2
;
56
double
sb_3
;
57
double
sb_4
;
58
};
59
61
class
SigmaPtDiff
{
62
public
:
63
SigmaPtDiff
() {
64
std::vector<double>
parameters
;
65
std::vector<double>
errors
;
66
parameters
.push_back(1.66);
67
parameters
.push_back(0.021);
68
parameters
.push_back(0.);
69
parameters
.push_back(0.);
70
parameters
.push_back(0.);
71
parameters
.push_back(0.0058);
72
parameters
.push_back(0.);
73
parameters
.push_back(0.03);
74
parameters
.push_back(1.8);
75
parameters
.push_back(0.);
76
parameters
.push_back(0.);
77
parameters
.push_back(0.);
78
parameters
.push_back(0.);
79
parameters
.push_back(0.);
80
parameters
.push_back(0.);
81
errors
.push_back(0.09);
82
errors
.push_back(0.002);
83
errors
.push_back(0.);
84
errors
.push_back(0.);
85
errors
.push_back(0.);
86
errors
.push_back(0.0009);
87
errors
.push_back(0.);
88
errors
.push_back(0.03);
89
errors
.push_back(0.3);
90
errors
.push_back(0.);
91
errors
.push_back(0.);
92
errors
.push_back(0.);
93
errors
.push_back(0.);
94
errors
.push_back(0.);
95
errors
.push_back(0.);
96
97
sigmaPt
.
setParErr
(
parameters
,
errors
);
98
}
99
double
etaByPoints
(
const
double
&
eta
) {
100
if
(
eta
<= -2.2)
101
return
0.0233989;
102
else
if
(
eta
<= -2.0)
103
return
0.0197057;
104
else
if
(
eta
<= -1.8)
105
return
0.014693;
106
else
if
(
eta
<= -1.6)
107
return
0.0146727;
108
else
if
(
eta
<= -1.4)
109
return
0.0141323;
110
else
if
(
eta
<= -1.2)
111
return
0.0159712;
112
else
if
(
eta
<= -1.0)
113
return
0.0117224;
114
else
if
(
eta
<= -0.8)
115
return
0.010726;
116
else
if
(
eta
<= -0.6)
117
return
0.0104777;
118
else
if
(
eta
<= -0.4)
119
return
0.00814458;
120
else
if
(
eta
<= -0.2)
121
return
0.00632501;
122
else
if
(
eta
<= 0.0)
123
return
0.00644172;
124
else
if
(
eta
<= 0.2)
125
return
0.00772645;
126
else
if
(
eta
<= 0.4)
127
return
0.010103;
128
else
if
(
eta
<= 0.6)
129
return
0.0099275;
130
else
if
(
eta
<= 0.8)
131
return
0.0100309;
132
else
if
(
eta
<= 1.0)
133
return
0.0125116;
134
else
if
(
eta
<= 1.2)
135
return
0.0147211;
136
else
if
(
eta
<= 1.4)
137
return
0.0151623;
138
else
if
(
eta
<= 1.6)
139
return
0.015259;
140
else
if
(
eta
<= 1.8)
141
return
0.014499;
142
else
if
(
eta
<= 2.0)
143
return
0.0165215;
144
else
if
(
eta
<= 2.2)
145
return
0.0212348;
146
return
0.0227285;
147
}
148
// double squaredDiff(const double & eta, SigmaPt & sigmaPt)
149
double
squaredDiff
(
const
double
&
eta
) {
150
double
sigmaPtPlus =
sigmaPt
(
eta
) +
sigmaPt
.
sigma
(
eta
);
151
double
sigmaPtMinus =
sigmaPt
(
eta
) -
sigmaPt
.
sigma
(
eta
);
152
if
(fabs(sigmaPtPlus * sigmaPtPlus -
etaByPoints
(
eta
) *
etaByPoints
(
eta
)) >
153
fabs(sigmaPtMinus * sigmaPtMinus -
etaByPoints
(
eta
) *
etaByPoints
(
eta
))) {
154
return
(fabs(sigmaPtPlus * sigmaPtPlus -
etaByPoints
(
eta
) *
etaByPoints
(
eta
)));
155
}
156
return
(fabs(sigmaPtMinus * sigmaPtMinus -
etaByPoints
(
eta
) *
etaByPoints
(
eta
)));
157
}
158
SigmaPt
sigmaPt
;
159
};
160
161
#endif
SigmaPt
Definition:
SigmaPtDiff.h:7
SigmaPt::sb_3
double sb_3
Definition:
SigmaPtDiff.h:56
SigmaPt::SigmaPt
SigmaPt(const std::vector< double > ¶meters_, const std::vector< double > &errors_)
Definition:
SigmaPtDiff.h:9
SigmaPtDiff::etaByPoints
double etaByPoints(const double &eta)
Definition:
SigmaPtDiff.h:99
MessageLogger_cfi.errors
errors
Definition:
MessageLogger_cfi.py:18
SigmaPt::SigmaPt
SigmaPt()
Definition:
SigmaPtDiff.h:13
SigmaPt::b_4
double b_4
Definition:
SigmaPtDiff.h:50
parameters
parameters
Definition:
BeamSpot_PayloadInspector.cc:14
SigmaPt::sigma
double sigma(const double &eta)
Definition:
SigmaPtDiff.h:35
SigmaPt::b_1
double b_1
Definition:
SigmaPtDiff.h:47
SigmaPt::operator()
double operator()(const double &eta)
Definition:
SigmaPtDiff.h:29
SigmaPt::sb_0
double sb_0
Definition:
SigmaPtDiff.h:53
errors
Definition:
errors.py:1
PVValHelper::eta
Definition:
PVValidationHelpers.h:69
mathSSE::sqrt
T sqrt(T t)
Definition:
SSEVec.h:19
SigmaPt::b_0
double b_0
Definition:
SigmaPtDiff.h:46
SigmaPtDiff
Returns ( sigmaPt/Pt(data)^2 - sigmaPt/Pt(MC)^2 )
Definition:
SigmaPtDiff.h:61
SigmaPt::sb_2
double sb_2
Definition:
SigmaPtDiff.h:55
SigmaPt::sb_4
double sb_4
Definition:
SigmaPtDiff.h:57
SigmaPt::setParErr
void setParErr(const std::vector< double > ¶meters, const std::vector< double > &errors)
Definition:
SigmaPtDiff.h:15
SigmaPtDiff::squaredDiff
double squaredDiff(const double &eta)
Definition:
SigmaPtDiff.h:149
SigmaPt::c
double c
Definition:
SigmaPtDiff.h:51
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition:
Power.h:30
SigmaPtDiff::SigmaPtDiff
SigmaPtDiff()
Definition:
SigmaPtDiff.h:63
SigmaPt::sb_1
double sb_1
Definition:
SigmaPtDiff.h:54
SigmaPt::b_2
double b_2
Definition:
SigmaPtDiff.h:48
SigmaPt::b_3
double b_3
Definition:
SigmaPtDiff.h:49
SigmaPtDiff::sigmaPt
SigmaPt sigmaPt
Definition:
SigmaPtDiff.h:158
Generated for CMSSW Reference Manual by
1.8.16