52 mask = !((u > 2 *
v) && (
v <
n));
54 mask = ((u >=
n) && (
v >=
n) && ((u +
v) > (3 *
n - 2)));
62 mask = ((u >=
n) && (u >
v) && ((2 * u -
v) > 2 *
n));
68 mask = !((u < n) && (v > u) && (
v > (2 * u - 1)));
70 mask = ((u > 2 *
v) && (
v <
n));
76 mask = !((
v >= u) && ((2 *
v - u) > (2 *
n - 2)));
84 mask = !((u >=
n) && (
v >=
n) && ((u +
v) > (3 *
n - 2)));
86 mask = ((u < n) && (v > u) && (
v > (2 * u - 1)));
92 mask = !((u >=
n) && (u >
v) && ((2 * u -
v) > 2 *
n));
94 mask = ((
v >= u) && ((2 *
v - u) > (2 *
n - 2)));
102 edm::LogVerbatim(
"HGCalGeom") <<
"Corners: " << ncor <<
":" << fcor <<
" N " <<
n <<
" u " << u <<
" v " <<
v 113 int n3 = (
n + 1) / 3;
127 good = ((
v + u) < (3 *
n - 1));
131 int v2 = (
v + 1) / 2;
132 good = ((u - v2) <
n);
136 int u2 = (u + 1) / 2;
155 good = (
v < (3 * n2));
159 good = (u < (3 * n2));
163 good = ((u -
v) <= n2);
175 good = ((
v - u) < n2);
184 good = (
v < (5 * n4));
188 good = (u < (5 * n4));
192 good = ((u -
v) <= n4);
196 good = (
v >= (3 * n4));
200 good = (u >= (3 * n4));
204 good = ((
v - u) < n4);
242 good = ((u +
v) < (2 *
n));
250 good = ((2 *
v - u) >=
n);
254 good = ((u +
v) >= (2 *
n));
285 good = ((
v + u) >= (3 *
n - 1));
289 int v2 = ((
v + 1) / 2);
290 good = ((u - v2) >=
n);
294 int u2 = ((u + 1) / 2);
304 good = ((u +
v) < (4 * n3));
308 good = ((2 * u -
v) < n2);
312 int u2 = ((u + 1) / 2);
317 good = ((u +
v) >= (5 * n2));
321 good = ((2 * u -
v) > (3 * n2));
325 int u2 = ((
n == 8) ? ((u + 1) / 2) : (u / 2));
335 good = ((2 *
v - u) <= (3 * n2));
339 good = ((u +
v) < (5 * n2));
343 good = ((2 * u -
v) >= (3 * n2));
347 good = ((2 *
v - u) >= n3);
351 good = ((u +
v) > (4 * n3));
355 good = ((2 * u -
v) >= n2);
364 good = (
v <= (3 * n4));
368 good = (u < (3 * n4));
372 good = ((
v - u) >= n4);
376 good = (
v >= (5 * n4));
380 good = (u >= (5 * n4));
384 good = ((u -
v) >= n4);
392 edm::LogVerbatim(
"HGCalGeom") <<
"u|v " << u <<
":" <<
v <<
" N " <<
n <<
" type " <<
type <<
" rot " << rotn
411 newrotn = rot1[rotn];
420 newrotn = rot2[rotn];
428 newrotn = rot3[rotn];
450 static constexpr
int corners = 6;
451 static constexpr
int base = 10;
452 double rin2 = rin * rin;
453 double rout2 = rout * rout;
466 double xc[corners], yc[corners];
467 for (
int k = 0;
k < corners; ++
k) {
468 xc[
k] = xpos + dx0[
k];
469 yc[
k] = ypos + dy0[
k];
470 double rpos2 = (xc[
k] * xc[
k] + yc[
k] * yc[
k]);
471 if (rpos2 <= rout2 && rpos2 >= rin2) {
473 iok = iok *
base + 1;
479 edm::LogVerbatim(
"HGCalGeom") <<
"I/p " << xpos <<
":" << ypos <<
":" << delX <<
":" << delY <<
":" << rin <<
":" 480 << rout <<
":" << wType <<
":" <<
mode <<
" Corners " << ncor <<
" iok " << iok;
482 static constexpr
int ipat5[corners] = {101111, 110111, 111011, 111101, 111110, 11111};
483 static constexpr
int ipat4[corners] = {100111, 110011, 111001, 111100, 11110, 1111};
484 static constexpr
int ipat3[corners] = {100011, 110001, 111000, 11100, 1110, 111};
485 static constexpr
int ipat2[corners] = {11, 100001, 110000, 11000, 1100, 110};
597 rotn =
static_cast<int>(
std::find(ipat5, ipat5 + 6, iok) - ipat5);
600 rotn =
static_cast<int>(
std::find(ipat4, ipat4 + 6, iok) - ipat4);
602 double rpos12 = ((xpos + dx1[rotn]) * (xpos + dx1[rotn]) + (ypos + dy1[rotn]) * (ypos + dy1[rotn]));
604 if (rpos12 <= rout2 && rpos12 >= rin2) {
605 rpos22 = ((xpos + dx2[rotn]) * (xpos + dx2[rotn]) + (ypos + dy2[rotn]) * (ypos + dy2[rotn]));
606 if (rpos22 <= rout2 && rpos22 >= rin2)
613 rpos12 = ((xpos + dx3[rotn]) * (xpos + dx3[rotn]) + (ypos + dy3[rotn]) * (ypos + dy3[rotn]));
614 if (rpos12 <= rout2 && rpos12 >= rin2) {
615 rpos22 = ((xpos + dx4[rotn]) * (xpos + dx4[rotn]) + (ypos + dy4[rotn]) * (ypos + dy4[rotn]));
616 if (rpos22 <= rout2 && rpos22 >= rin2)
624 rotn =
static_cast<int>(
std::find(ipat3, ipat3 + 6, iok) - ipat3);
626 double rpos12 = ((xpos + dx7[rotn]) * (xpos + dx7[rotn]) + (ypos + dy7[rotn]) * (ypos + dy7[rotn]));
628 if (rpos12 <= rout2 && rpos12 >= rin2) {
629 rpos22 = ((xpos + dx8[rotn]) * (xpos + dx8[rotn]) + (ypos + dy8[rotn]) * (ypos + dy8[rotn]));
630 if (rpos22 <= rout2 && rpos22 >= rin2)
637 rpos12 = ((xpos + dx1[rotn]) * (xpos + dx1[rotn]) + (ypos + dy1[rotn]) * (ypos + dy1[rotn]));
638 if (rpos12 <= rout2 && rpos12 >= rin2) {
639 rpos22 = ((xpos + dx5[rotn]) * (xpos + dx5[rotn]) + (ypos + dy5[rotn]) * (ypos + dy5[rotn]));
640 if (rpos22 <= rout2 && rpos22 >= rin2)
648 rpos12 = ((xpos + dx3[rotn]) * (xpos + dx3[rotn]) + (ypos + dy3[rotn]) * (ypos + dy3[rotn]));
649 if (rpos12 <= rout2 && rpos12 >= rin2) {
650 rpos22 = ((xpos + dx6[rotn]) * (xpos + dx6[rotn]) + (ypos + dy6[rotn]) * (ypos + dy6[rotn]));
651 if (rpos22 <= rout2 && rpos22 >= rin2)
659 rotn =
static_cast<int>(
std::find(ipat2, ipat2 + 6, iok) - ipat2);
661 double rpos12 = ((xpos + dx7[rotn]) * (xpos + dx7[rotn]) + (ypos + dy7[rotn]) * (ypos + dy7[rotn]));
663 if (rpos12 <= rout2 && rpos12 >= rin2) {
664 rpos22 = ((xpos + dx9[rotn]) * (xpos + dx9[rotn]) + (ypos + dy9[rotn]) * (ypos + dy9[rotn]));
665 if (rpos22 <= rout2 && rpos22 >= rin2)
678 edm::LogVerbatim(
"HGCalGeom") <<
"I/p " << xpos <<
":" << ypos <<
":" << delX <<
":" << delY <<
":" << rin <<
":" 679 << rout <<
":" << wType <<
":" <<
mode <<
" o/p " << iok <<
":" << ncor <<
":" <<
type 685 double xpos,
double ypos,
double delX,
double delY,
double rin,
double rout,
int part,
int rotn,
bool debug) {
691 double rin2 = rin * rin;
692 double rout2 = rout * rout;
696 static constexpr
int base = 10;
697 static constexpr
int base2 = 100;
750 static constexpr
int nc0[corners] = {450, 150, 201, 312, 423, 534};
752 for (
int k1 = 0; k1 < 3; ++k1) {
754 double xc1 = xpos + dx0[
k];
755 double yc1 = ypos + dy0[
k];
756 rpos2 = (xc1 * xc1 + yc1 * yc1);
757 if ((rpos2 > rout2) || (rpos2 < rin2)) {
767 static constexpr
int nc10[corners] = {450, 150, 201, 312, 423, 534};
768 static constexpr
int nc11[corners] = {700, 902, 1104, 106, 308, 510};
770 for (
int k1 = 0; k1 < 3; ++k1) {
772 double xc1 = xpos + dx0[
k];
773 double yc1 = ypos + dy0[
k];
774 rpos2 = (xc1 * xc1 + yc1 * yc1);
775 if ((rpos2 > rout2) || (rpos2 < rin2)) {
783 for (
int k1 = 0; k1 < 2; ++k1) {
785 double xc1 = xpos + dx2[
k];
786 double yc1 = ypos + dy2[
k];
787 rpos2 = (xc1 * xc1 + yc1 * yc1);
788 if ((rpos2 > rout2) || (rpos2 < rin2)) {
798 static constexpr
int nc20[corners] = {450, 150, 201, 312, 423, 534};
799 static constexpr
int nc21[corners] = {30, 14, 25, 30, 41, 52};
801 for (
int k1 = 0; k1 < 3; ++k1) {
803 double xc1 = xpos + dx0[
k];
804 double yc1 = ypos + dy0[
k];
805 rpos2 = (xc1 * xc1 + yc1 * yc1);
806 if ((rpos2 > rout2) || (rpos2 < rin2)) {
814 for (
int k1 = 0; k1 < 2; ++k1) {
816 double xc1 = xpos + dx1[
k];
817 double yc1 = ypos + dy1[
k];
818 rpos2 = (xc1 * xc1 + yc1 * yc1);
819 if ((rpos2 > rout2) || (rpos2 < rin2)) {
829 static constexpr
int nc3[corners] = {3450, 1450, 2501, 3012, 4123, 5234};
831 for (
int k1 = 0; k1 < 4; ++k1) {
833 double xc1 = xpos + dx0[
k];
834 double yc1 = ypos + dy0[
k];
835 rpos2 = (xc1 * xc1 + yc1 * yc1);
836 if ((rpos2 > rout2) || (rpos2 < rin2)) {
846 static constexpr
int nc40[corners] = {3450, 1450, 2501, 3012, 4123, 5234};
847 static constexpr
int nc41[corners] = {500, 702, 904, 1106, 108, 310};
849 for (
int k1 = 0; k1 < 4; ++k1) {
851 double xc1 = xpos + dx0[
k];
852 double yc1 = ypos + dy0[
k];
853 rpos2 = (xc1 * xc1 + yc1 * yc1);
854 if ((rpos2 > rout2) || (rpos2 < rin2)) {
862 for (
int k1 = 0; k1 < 2; ++k1) {
864 double xc1 = xpos + dx2[
k];
865 double yc1 = ypos + dy2[
k];
866 rpos2 = (xc1 * xc1 + yc1 * yc1);
867 if ((rpos2 > rout2) || (rpos2 < rin2)) {
877 static constexpr
int nc50[corners] = {3450, 1450, 2501, 3012, 4123, 5234};
878 static constexpr
int nc51[corners] = {20, 13, 24, 35, 40, 51};
880 for (
int k1 = 0; k1 < 4; ++k1) {
882 double xc1 = xpos + dx0[
k];
883 double yc1 = ypos + dy0[
k];
884 rpos2 = (xc1 * xc1 + yc1 * yc1);
885 if ((rpos2 > rout2) || (rpos2 < rin2)) {
893 for (
int k1 = 0; k1 < 2; ++k1) {
895 double xc1 = xpos + dx1[
k];
896 double yc1 = ypos + dy1[
k];
897 rpos2 = (xc1 * xc1 + yc1 * yc1);
898 if ((rpos2 > rout2) || (rpos2 < rin2)) {
908 static constexpr
int nc6[corners] = {23450, 13450, 24501, 35012, 40123, 51234};
910 for (
int k1 = 0; k1 < 5; ++k1) {
912 double xc1 = xpos + dx0[
k];
913 double yc1 = ypos + dy0[
k];
914 rpos2 = (xc1 * xc1 + yc1 * yc1);
915 if ((rpos2 > rout2) || (rpos2 < rin2)) {
924 static constexpr
int nc60[corners] = {450, 150, 201, 312, 423, 534};
925 static constexpr
int nc61[corners] = {601, 803, 1005, 7, 209, 411};
927 for (
int k1 = 0; k1 < 3; ++k1) {
929 double xc1 = xpos + dx0[
k];
930 double yc1 = ypos + dy0[
k];
931 rpos2 = (xc1 * xc1 + yc1 * yc1);
932 if ((rpos2 > rout2) || (rpos2 < rin2)) {
940 for (
int k1 = 0; k1 < 2; ++k1) {
942 double xc1 = xpos + dx2[
k];
943 double yc1 = ypos + dy2[
k];
944 rpos2 = (xc1 * xc1 + yc1 * yc1);
945 if ((rpos2 > rout2) || (rpos2 < rin2)) {
955 static constexpr
int nc70[corners] = {45, 50, 1, 12, 23, 34};
956 static constexpr
int nc71[corners] = {611, 801, 1003, 5, 207, 409};
958 for (
int k1 = 0; k1 < 2; ++k1) {
960 double xc1 = xpos + dx0[
k];
961 double yc1 = ypos + dy0[
k];
962 rpos2 = (xc1 * xc1 + yc1 * yc1);
963 if ((rpos2 > rout2) || (rpos2 < rin2)) {
971 for (
int k1 = 0; k1 < 2; ++k1) {
973 double xc1 = xpos + dx2[
k];
974 double yc1 = ypos + dy2[
k];
975 rpos2 = (xc1 * xc1 + yc1 * yc1);
976 if ((rpos2 > rout2) || (rpos2 < rin2)) {
986 for (
int k = 0;
k < corners; ++
k) {
987 double xc1 = xpos + dx0[
k];
988 double yc1 = ypos + dy0[
k];
989 rpos2 = (xc1 * xc1 + yc1 * yc1);
990 if ((rpos2 > rout2) || (rpos2 < rin2)) {
1001 <<
":" << xpos <<
":" << ypos <<
":" << delX <<
":" << delY <<
":" << rin <<
":" 1002 << rout <<
":" <<
part <<
":" << rotn <<
" Results " <<
ok <<
":" << ncf <<
" R " 1003 << rin2 <<
":" << rout2 <<
":" << rpos2;
1008 int part,
int ori,
int zside,
double delX,
double delY,
double xpos,
double ypos) {
1010 std::vector<std::pair<double, double> >
xy;
1051 int np[7] = {0, 1, 2, 3, 4, 5, 0};
1052 for (
int k = 0;
k < 7; ++
k)
1053 xy.push_back(std::make_pair((xpos +
dx[
np[
k]]), (ypos +
dy[
np[
k]])));
1055 int np[6][6] = {{0, 2, 3, 4, 5, 0},
1060 {5, 1, 2, 3, 4, 5}};
1061 for (
int k = 0;
k < 6; ++
k) {
1070 {0, 3, 4, 5, 0}, {1, 4, 5, 0, 1}, {2, 5, 0, 1, 2}, {3, 0, 1, 2, 3}, {4, 1, 2, 3, 4}, {5, 2, 3, 4, 5}};
1071 for (
int k = 0;
k < 5; ++
k) {
1079 int np[6][4] = {{0, 4, 5, 0}, {1, 5, 0, 1}, {2, 0, 1, 2}, {3, 1, 2, 3}, {4, 2, 3, 4}, {5, 3, 4, 5}};
1080 for (
int k = 0;
k < 4; ++
k) {
1088 int np[6][7] = {{6, 8, 3, 4, 5, 0, 6},
1089 {7, 9, 4, 5, 0, 1, 7},
1090 {8, 10, 5, 0, 1, 2, 8},
1091 {9, 11, 0, 1, 2, 3, 9},
1092 {10, 6, 1, 2, 3, 4, 10},
1093 {11, 7, 2, 3, 4, 5, 11}};
1094 for (
int k = 0;
k < 7; ++
k) {
1102 int np[6][6] = {{6, 9, 4, 5, 0, 6},
1103 {7, 10, 5, 0, 1, 7},
1104 {8, 11, 0, 1, 2, 8},
1106 {10, 7, 2, 3, 4, 10},
1107 {11, 8, 3, 4, 5, 11}};
1108 for (
int k = 0;
k < 6; ++
k) {
1116 int np[6][7] = {{12, 18, 3, 4, 5, 0, 12},
1117 {13, 19, 4, 5, 0, 1, 13},
1118 {14, 20, 5, 0, 1, 2, 14},
1119 {15, 21, 0, 1, 2, 3, 15},
1120 {16, 22, 1, 2, 3, 4, 16},
1121 {17, 23, 2, 3, 4, 5, 17}};
1122 for (
int k = 0;
k < 7; ++
k) {
1130 int np[6][6] = {{12, 19, 4, 5, 0, 12},
1131 {13, 20, 5, 0, 1, 13},
1132 {14, 21, 0, 1, 2, 14},
1133 {15, 22, 1, 2, 3, 15},
1134 {16, 23, 2, 3, 4, 16},
1135 {17, 18, 3, 4, 5, 17}};
1136 for (
int k = 0;
k < 6; ++
k) {
1144 int np[6][6] = {{22, 15, 4, 5, 0, 22},
1145 {23, 16, 5, 0, 1, 23},
1146 {18, 17, 0, 1, 2, 18},
1147 {19, 12, 1, 2, 3, 19},
1148 {20, 13, 2, 3, 4, 20},
1149 {21, 14, 3, 4, 5, 21}};
1150 for (
int k = 0;
k < 6; ++
k) {
1158 int np[6][5] = {{21, 15, 4, 5, 21},
1163 {20, 14, 3, 4, 20}};
1164 for (
int k = 0;
k < 5; ++
k) {
1174 << xpos <<
":" << ypos <<
" O/p having " <<
xy.size() <<
" points:";
1175 std::ostringstream st1;
1176 for (
unsigned int i = 0;
i <
xy.size(); ++
i)
1184 int part,
int place,
double delX,
double delY,
double xpos,
double ypos) {
1185 std::vector<std::pair<double, double> >
xy;
1226 int np[7] = {0, 1, 2, 3, 4, 5, 0};
1227 for (
int k = 0;
k < 7; ++
k)
1228 xy.push_back(std::make_pair((xpos +
dx[
np[
k]]), (ypos +
dy[
np[
k]])));
1230 int np[12][5] = {{0, 1, 4, 5, 0},
1242 for (
int k = 0;
k < 5; ++
k) {
1243 xy.push_back(std::make_pair((xpos +
dx[
np[place][
k]]), (ypos +
dy[
np[place][
k]])));
1249 int np[12][5] = {{1, 2, 3, 4, 1},
1261 for (
int k = 0;
k < 5; ++
k) {
1262 xy.push_back(std::make_pair((xpos +
dx[
np[place][
k]]), (ypos +
dy[
np[place][
k]])));
1268 int np[12][6] = {{0, 1, 2, 8, 11, 0},
1270 {2, 3, 4, 10, 7, 2},
1271 {3, 4, 5, 11, 8, 3},
1273 {5, 0, 1, 7, 10, 5},
1275 {5, 11, 8, 3, 4, 5},
1276 {4, 10, 7, 2, 3, 4},
1278 {2, 8, 11, 0, 1, 2},
1279 {1, 7, 10, 5, 0, 1}};
1280 for (
int k = 0;
k < 6; ++
k) {
1281 xy.push_back(std::make_pair((xpos +
dx[
np[place][
k]]), (ypos +
dy[
np[place][
k]])));
1287 int np[12][6] = {{5, 11, 8, 3, 4, 5},
1289 {1, 7, 10, 5, 0, 1},
1290 {2, 8, 11, 0, 1, 2},
1292 {4, 10, 7, 2, 3, 4},
1294 {0, 1, 2, 8, 11, 0},
1295 {5, 0, 1, 7, 10, 5},
1297 {3, 4, 5, 11, 8, 3},
1298 {2, 3, 4, 10, 7, 2}};
1299 for (
int k = 0;
k < 6; ++
k) {
1300 xy.push_back(std::make_pair((xpos +
dx[
np[place][
k]]), (ypos +
dy[
np[place][
k]])));
1306 int np[12][6] = {{0, 1, 2, 3, 5, 0},
1317 {1, 2, 4, 5, 0, 1}};
1318 for (
int k = 0;
k < 6; ++
k) {
1319 xy.push_back(std::make_pair((xpos +
dx[
np[place][
k]]), (ypos +
dy[
np[place][
k]])));
1325 int np[12][4] = {{5, 3, 4, 5},
1337 for (
int k = 0;
k < 4; ++
k) {
1338 xy.push_back(std::make_pair((xpos +
dx[
np[place][
k]]), (ypos +
dy[
np[place][
k]])));
1344 int np[12][5] = {{0, 22, 16, 5, 0},
1356 for (
int k = 0;
k < 5; ++
k) {
1357 xy.push_back(std::make_pair((xpos +
dx[
np[place][
k]]), (ypos +
dy[
np[place][
k]])));
1363 int np[12][7] = {{1, 2, 3, 4, 16, 22, 1},
1364 {2, 3, 4, 5, 17, 23, 2},
1365 {3, 4, 5, 0, 12, 18, 3},
1366 {4, 5, 0, 1, 13, 19, 4},
1367 {5, 0, 1, 2, 14, 20, 5},
1368 {0, 1, 2, 3, 15, 21, 0},
1369 {5, 17, 23, 2, 3, 4, 5},
1370 {4, 16, 22, 1, 2, 3, 4},
1371 {3, 15, 21, 0, 1, 2, 3},
1372 {2, 14, 20, 5, 0, 1, 2},
1373 {1, 13, 19, 4, 5, 0, 1},
1374 {0, 12, 18, 3, 4, 5, 0}};
1375 for (
int k = 0;
k < 7; ++
k) {
1376 xy.push_back(std::make_pair((xpos +
dx[
np[place][
k]]), (ypos +
dy[
np[place][
k]])));
1382 int np[12][6] = {{0, 1, 2, 14, 21, 0},
1383 {1, 2, 3, 15, 22, 1},
1384 {2, 3, 4, 16, 23, 2},
1385 {3, 4, 5, 17, 18, 3},
1386 {4, 5, 0, 12, 19, 4},
1387 {5, 0, 1, 13, 20, 5},
1388 {0, 12, 19, 4, 5, 0},
1389 {5, 17, 18, 3, 4, 5},
1390 {4, 16, 23, 2, 3, 4},
1391 {3, 18, 22, 1, 2, 3},
1392 {2, 14, 21, 0, 1, 2},
1393 {1, 13, 20, 5, 0, 1}};
1394 for (
int k = 0;
k < 6; ++
k) {
1395 xy.push_back(std::make_pair((xpos +
dx[
np[place][
k]]), (ypos +
dy[
np[place][
k]])));
1401 int np[12][6] = {{5, 17, 18, 3, 4, 5},
1402 {0, 12, 19, 4, 5, 0},
1403 {1, 13, 20, 5, 0, 1},
1404 {2, 14, 21, 0, 1, 2},
1405 {3, 15, 22, 1, 2, 3},
1406 {4, 16, 23, 2, 3, 4},
1407 {1, 2, 3, 15, 22, 1},
1408 {0, 1, 2, 14, 21, 0},
1409 {5, 0, 1, 13, 20, 5},
1410 {4, 5, 0, 12, 19, 4},
1411 {3, 4, 5, 17, 18, 3},
1412 {2, 3, 4, 16, 23, 2}};
1413 for (
int k = 0;
k < 6; ++
k) {
1414 xy.push_back(std::make_pair((xpos +
dx[
np[place][
k]]), (ypos +
dy[
np[place][
k]])));
1420 int np[12][6] = {{0, 1, 2, 18, 17, 0},
1421 {1, 2, 3, 19, 12, 1},
1422 {2, 3, 4, 20, 13, 2},
1423 {3, 4, 5, 21, 14, 3},
1424 {4, 5, 0, 22, 15, 4},
1425 {5, 0, 1, 23, 16, 5},
1426 {0, 22, 15, 4, 5, 0},
1427 {5, 21, 14, 3, 4, 5},
1428 {4, 20, 13, 2, 3, 4},
1429 {3, 19, 12, 1, 2, 3},
1430 {2, 18, 17, 0, 1, 2},
1431 {1, 23, 16, 5, 0, 1}};
1432 for (
int k = 0;
k < 6; ++
k) {
1433 xy.push_back(std::make_pair((xpos +
dx[
np[place][
k]]), (ypos +
dy[
np[place][
k]])));
1440 edm::LogVerbatim(
"HGCalGeom") <<
"I/p: " <<
part <<
":" << place <<
":" << delX <<
":" << delY <<
":" << xpos <<
":" 1441 << ypos <<
" O/p having " <<
xy.size() <<
" points:";
1442 std::ostringstream st1;
1443 for (
unsigned int i = 0;
i <
xy.size(); ++
i)
Log< level::Info, true > LogVerbatim
static constexpr int32_t WaferHalf2
static constexpr int32_t WaferFive2
static constexpr int32_t WaferSizeMax
static constexpr int32_t WaferLDThree
static std::vector< std::pair< double, double > > waferXY(int part, int orient, int zside, double delX, double delY, double xpos, double ypos)
static bool goodCell(int u, int v, int N, int type, int rotn)
static constexpr int32_t WaferOut
static constexpr int32_t WaferThree
static constexpr double c50
static constexpr int32_t WaferHDFive
static constexpr double c88
static int getRotation(int zside, int type, int rotn)
static constexpr double c27
static constexpr double c10
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
static constexpr int32_t WaferSemi2
static constexpr int32_t WaferHDLeft
static bool goodTypeMode(double xpos, double ypos, double delX, double delY, double rin, double rout, int part, int rotn, bool debug=false)
U second(std::pair< T, U > const &p)
static constexpr int32_t WaferFull
static constexpr int32_t WaferHalf
static constexpr int32_t WaferLDBottom
static constexpr int32_t WaferCorner1
static constexpr int32_t WaferCorner5
static constexpr int32_t WaferLDRight
static constexpr int32_t WaferCorner4
static constexpr int32_t WaferCornerMax
static constexpr int32_t WaferCorner2
static constexpr int32_t WaferLDFive
static constexpr int32_t WaferCorner0
static constexpr int32_t WaferLDLeft
static constexpr double c00
static constexpr int32_t WaferHDBottom
static constexpr int32_t WaferCorner3
static constexpr int32_t WaferHDRight
static constexpr int32_t WaferChopTwoM
auto const good
min quality of good
static std::pair< int, int > getTypeMode(const double &xpos, const double &ypos, const double &delX, const double &delY, const double &rin, const double &rout, const int &waferType, const int &mode, bool debug=false)
static constexpr double c77
static constexpr double c61
static constexpr int k_OffsetRotation
static constexpr int32_t WaferLDTop
static constexpr double c75
static constexpr double c22
static constexpr int32_t WaferHDTop
static constexpr int32_t WaferFive
static constexpr int32_t WaferSemi
static constexpr int32_t WaferChopTwo
static bool maskCell(int u, int v, int N, int ncor, int fcor, int corners)