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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
#include "Geometry/CaloTopology/interface/EcalPreshowerTopology.h"
#include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h"
#include <stdexcept>
ESDetId EcalPreshowerTopology::incrementIy(const ESDetId& id) const {
ESDetId nextPoint(0);
if (id == nextPoint)
return nextPoint;
//Strips orientend along x direction for plane 2
if (id.plane() == 2) {
if (id.strip() < 32) {
//Incrementing just strip number
if (ESDetId::validDetId(id.strip() + 1, id.six(), id.siy(), id.plane(), id.zside()))
nextPoint = ESDetId(id.strip() + 1, id.six(), id.siy(), id.plane(), id.zside());
} else {
//Changing wafer
if (ESDetId::validDetId(1, id.six(), id.siy() + 1, id.plane(), id.zside()))
nextPoint = ESDetId(1, id.six(), id.siy() + 1, id.plane(), id.zside());
}
}
//Strips orientend along y direction for plane 1
else if (id.plane() == 1) {
//Changing wafer
if (ESDetId::validDetId(id.strip(), id.six(), id.siy() + 1, id.plane(), id.zside()))
nextPoint = ESDetId(id.strip(), id.six(), id.siy() + 1, id.plane(), id.zside());
}
return nextPoint;
}
ESDetId EcalPreshowerTopology::decrementIy(const ESDetId& id) const {
ESDetId nextPoint(0);
if (id == nextPoint)
return nextPoint;
//Strips orientend along x direction for plane 2
if (id.plane() == 2) {
if (id.strip() > 1) {
//Decrementing just strip number
if (ESDetId::validDetId(id.strip() - 1, id.six(), id.siy(), id.plane(), id.zside()))
nextPoint = ESDetId(id.strip() - 1, id.six(), id.siy(), id.plane(), id.zside());
} else {
//Changing wafer
if (ESDetId::validDetId(32, id.six(), id.siy() - 1, id.plane(), id.zside()))
nextPoint = ESDetId(32, id.six(), id.siy() - 1, id.plane(), id.zside());
}
}
//Strips orientend along y direction for plane 1
else if (id.plane() == 1) {
//Changing wafer
if (ESDetId::validDetId(id.strip(), id.six(), id.siy() - 1, id.plane(), id.zside()))
nextPoint = ESDetId(id.strip(), id.six(), id.siy() - 1, id.plane(), id.zside());
}
return nextPoint;
}
ESDetId EcalPreshowerTopology::incrementIx(const ESDetId& id) const {
ESDetId nextPoint(0);
if (id == nextPoint)
return nextPoint;
//Strips orientend along x direction for plane 2
if (id.plane() == 2) {
//Changing wafer
if (ESDetId::validDetId(id.strip(), id.six() + 1, id.siy(), id.plane(), id.zside()))
nextPoint = ESDetId(id.strip(), id.six() + 1, id.siy(), id.plane(), id.zside());
}
//Strips orientend along y direction for plane 1
else if (id.plane() == 1) {
if (id.strip() < 32) {
//Incrementing just strip number
if (ESDetId::validDetId(id.strip() + 1, id.six(), id.siy(), id.plane(), id.zside()))
nextPoint = ESDetId(id.strip() + 1, id.six(), id.siy(), id.plane(), id.zside());
} else {
//Changing wafer
if (ESDetId::validDetId(1, id.six() + 1, id.siy(), id.plane(), id.zside()))
nextPoint = ESDetId(1, id.six() + 1, id.siy(), id.plane(), id.zside());
}
}
return nextPoint;
}
ESDetId EcalPreshowerTopology::decrementIx(const ESDetId& id) const {
ESDetId nextPoint(0);
if (id == nextPoint)
return nextPoint;
//Strips orientend along x direction for plane 2
if (id.plane() == 2) {
//Changing wafer
if (ESDetId::validDetId(id.strip(), id.six() - 1, id.siy(), id.plane(), id.zside()))
nextPoint = ESDetId(id.strip(), id.six() - 1, id.siy(), id.plane(), id.zside());
}
//Strips orientend along y direction for plane 1
else if (id.plane() == 1) {
if (id.strip() > 1) {
//Decrementing just strip number
if (ESDetId::validDetId(id.strip() - 1, id.six(), id.siy(), id.plane(), id.zside()))
nextPoint = ESDetId(id.strip() - 1, id.six(), id.siy(), id.plane(), id.zside());
} else {
//Changing wafer
if (ESDetId::validDetId(32, id.six() - 1, id.siy(), id.plane(), id.zside()))
nextPoint = ESDetId(32, id.six() - 1, id.siy(), id.plane(), id.zside());
}
}
return nextPoint;
}
ESDetId EcalPreshowerTopology::incrementIz(const ESDetId& id) const {
ESDetId nextPoint(0);
if (id == nextPoint)
return nextPoint;
if (ESDetId::validDetId(id.strip(), id.six(), id.siy(), id.plane() + 1, id.zside()))
nextPoint = ESDetId(id.strip(), id.six(), id.siy(), id.plane() + 1, id.zside());
return nextPoint;
}
ESDetId EcalPreshowerTopology::decrementIz(const ESDetId& id) const {
ESDetId nextPoint(0);
if (id == nextPoint)
return nextPoint;
if (ESDetId::validDetId(id.strip(), id.six(), id.siy(), id.plane() - 1, id.zside()))
nextPoint = ESDetId(id.strip(), id.six(), id.siy(), id.plane() - 1, id.zside());
return nextPoint;
}
|