1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
#include "DataFormats/GeometryVector/interface/PhiInterval.h"
#include "DataFormats/GeometryVector/interface/EtaInterval.h"
#include "DataFormats/GeometryVector/interface/GlobalPoint.h"
#include "DataFormats/Math/interface/PtEtaPhiMass.h"
#include <cassert>
int main() {
assert(!checkPhiInRange(-0.9f, 1.f, -1.f));
assert(!checkPhiInRange(0.9f, 1.f, -1.f));
assert(checkPhiInRange(-1.1f, 1.f, -1.f));
assert(checkPhiInRange(1.1f, 1.f, -1.f));
assert(checkPhiInRange(-0.9f, -1.f, 1.f));
assert(checkPhiInRange(0.9f, -1.f, 1.f));
assert(!checkPhiInRange(-1.1f, -1.f, 1.f));
assert(!checkPhiInRange(1.1f, -1.f, 1.f));
assert(checkPhiInRange(-2.9f, -3.f, 3.f));
assert(checkPhiInRange(2.9f, -3.f, 3.f));
assert(!checkPhiInRange(-3.1f, -3.f, 3.f));
assert(!checkPhiInRange(3.1f, -3.f, 3.f));
assert(!checkPhiInRange(-2.9f, 3.f, -3.f));
assert(!checkPhiInRange(2.9f, 3.f, -3.f));
assert(checkPhiInRange(-3.1f, 3.f, -3.f));
assert(checkPhiInRange(3.1f, 3.f, -3.f));
for (float x = -10; x < 10; x += 1.)
for (float y = -10; y < 10; y += 1.)
for (float z = -10; z < 10; z += 1.) {
if (x == 0 && y == 0)
continue;
GlobalPoint p(x, y, z);
// eta
for (float eta = -4; eta < 3.5; eta += 0.2)
for (float deta = 0.1; deta < 2.; deta += 0.2) {
EtaInterval ei(eta, eta + deta);
auto in = ei.inside(p.basicVector());
auto e = etaFromXYZ(x, y, z);
auto in2 = (e > eta) & (e < eta + deta);
assert(in == in2);
}
//phi
for (float phi = -6.001; phi < 6.5; phi += 0.2)
for (float dphi = -3.1; dphi < 3.15; dphi += 0.2) {
PhiInterval pi(phi, phi + dphi);
auto in = pi.inside(p.basicVector());
auto ph = p.barePhi();
auto in2 = checkPhiInRange(ph, phi, phi + dphi);
assert(in == in2);
}
{
PhiInterval pi(3.f, -3.f);
auto in = pi.inside(p.basicVector());
auto ph = p.barePhi();
auto it = ph > 3.f || ph < -3.f;
assert(in == it);
auto in2 = checkPhiInRange(ph, 3.f, -3.f);
assert(in2 == it);
}
{
PhiInterval pi(3.f, 4.f);
auto in = pi.inside(p.basicVector());
auto ph = p.barePhi();
auto it = ph > 3.f || ph < 4 - 2 * M_PI;
;
assert(in == it);
auto in2 = checkPhiInRange(ph, 3.f, 4.f);
assert(in2 == it);
}
{
PhiInterval pi(-1.f, 1.f);
auto in = pi.inside(p.basicVector());
auto ph = p.barePhi();
auto it = std::abs(ph) < 1;
assert(in == it);
auto in2 = checkPhiInRange(ph, -1.f, 1.f);
assert(in2 == it);
}
}
return 0;
}
|