3 #include <ecl/modules/eclBackgroundStudy/ECLCrystalData.h>
6 #include <framework/logging/Logger.h>
10 #define PI 3.14159265358979323846
11 #define DEGTORAD 1.74532925199432955e-02
17 3, 3, 4, 4, 4, 6, 6, 6, 6, 6, 6, 9, 9,
18 9, 9, 9, 9, 9 , 9, 9, 9, 9, 9 , 9, 9, 9, 9, 9 , 9, 9, 9, 9, 9,
19 9, 9, 9, 9, 9 , 9, 9, 9, 9, 9 , 9, 9, 9, 9, 9 , 9, 9, 9, 9, 9,
21 9, 9, 6, 6, 6, 6, 6, 4, 4, 4
24 int const ECLCrystalData::sumPrevious[24] = {0, 3, 6, 10, 14, 18, 24, 30, 36, 42, 48, 54, 63, 72, 81, 90, 96, 102, 108, 114, 120, 124, 128, 132};
27 float const ECLCrystalData::CrystalMassEndcap[132] = {4.99, 5.01, 4.99, 5.82, 5.94, 5.83, 4.75, 4.76, 4.77, 4.74, 5.14, 5.16, 5.16,
28 5.14, 5.76, 5.8, 5.79, 5.78, 4.14, 4.28, 4.15, 4.16, 4.28, 4.14, 4.32, 4.34,
29 4.34, 4.34, 4.34, 4.32, 4.85, 4.87, 4.87, 4.87, 4.87, 4.85, 4.99, 5.02, 5.02,
30 5.02, 5.02, 4.99, 5.37, 5.39, 5.39, 5.39, 5.39, 5.37, 5.89, 5.92, 5.92, 5.92,
31 5.92, 5.9, 4.03, 4.12, 4.05, 4.05, 4.12, 4.05, 4.05, 4.12, 4.03, 4.16, 4.18,
32 4.18, 4.18, 4.18, 4.18, 4.18, 4.18, 4.16, 4.47, 4.49, 4.49, 4.49, 4.49, 4.49,
33 4.49, 4.49, 4.47, 4.26, 4.34, 4.28, 4.28, 4.34, 4.28, 4.28, 4.34, 4.26, 5.88,
34 5.91, 5.91, 5.91, 5.91, 5.88, 5.46, 5.48, 5.48, 5.48, 5.48, 5.46, 5.02, 5.04,
35 5.04, 5.04, 5.04, 5.02, 4.63, 4.65, 4.65, 4.65, 4.65, 4.63, 4.4, 4.53, 4.42,
36 4.42, 4.53, 4.4, 5.74, 5.77, 5.76, 5.74, 5.09, 5.11, 5.11, 5.09, 4.56, 4.58,
42 4.786, 4.807, 4.828, 4.848, 4.868, 4.887, 4.906, 4.923, 4.940,
43 4.955, 4.969, 4.981, 4.992, 5.001, 5.008, 5.013, 5.016, 5.017,
44 5.016, 4.455, 4.455, 5.016, 5.017, 5.016, 5.013, 5.008, 5.001,
45 4.992, 4.981, 4.969, 4.955, 4.940, 4.923, 4.906, 4.887, 4.868,
51 double const ECLCrystalData::theta[69] = {13.9486666667, 15.4862, 17.110575, 18.757625, 20.255425, 21.8637333333,
52 23.4259666667, 24.96125, 26.4777833333, 27.9407, 29.36275, 30.8382555556,
53 32.2618444444, 33.667039, 35.062886, 36.509337, 38.007345, 39.557769,
54 41.161373, 42.818633, 44.530027, 46.295838, 48.115876, 49.990235, 51.91882,
55 53.900865, 55.935415, 58.021324, 60.157158, 62.3412, 64.571442, 66.8455,
56 69.160698, 71.513983, 73.902011, 76.321253, 78.767888, 81.237718, 83.726351,
57 86.229301, 88.741891, 90, 90, 91.258109, 93.770699, 96.273649, 98.762282,
58 101.232112, 103.678747, 106.097989, 108.486017, 110.839302, 113.154501,
59 115.428558, 117.658801, 119.842842, 121.978676, 124.064585, 126.099135,
60 128.2902222222, 130.4424444444, 132.6918333333, 134.9551666667, 137.3811666667,
61 139.9081666667, 142.5951666667, 145.374, 148.0185, 150.8355
67 217.25, 217.25, 217.25,
68 218.72, 218.72, 218.72,
69 220.29, 220.29, 220.29, 220.29,
70 222.00, 222.00, 222.00, 222.00,
71 223.96, 223.96, 223.96, 223.96,
72 226.01, 226.01, 226.01, 226.01, 226.01, 226.01,
73 228.21, 228.21, 228.21, 228.21, 228.21, 228.21,
74 230.67, 230.67, 230.67, 230.67, 230.67, 230.67,
75 233.20, 233.20, 233.20, 233.20, 233.20, 233.20,
76 235.89, 235.89, 235.89, 235.89, 235.89, 235.89,
77 238.89, 238.89, 238.89, 238.89, 238.89, 238.89,
78 241.94, 241.94, 241.94, 241.94, 241.94, 241.94, 241.94, 241.94, 241.94,
79 245.16, 245.16, 245.16, 245.16, 245.16, 245.16, 245.16, 245.16, 245.16,
81 172.06, 172.06, 172.06, 172.06, 172.06, 172.06, 172.06, 172.06, 172.06,
82 165.69, 165.69, 165.69, 165.69, 165.69, 165.69, 165.69, 165.69, 165.69,
83 159.78, 159.78, 159.78, 159.78, 159.78, 159.78,
84 154.36, 154.36, 154.36, 154.36, 154.36, 154.36,
85 149.37, 149.37, 149.37, 149.37, 149.37, 149.37,
86 144.82, 144.82, 144.82, 144.82, 144.82, 144.82,
87 140.67, 140.67, 140.67, 140.67, 140.67, 140.67,
88 136.89, 136.89, 136.89, 136.89,
89 133.49, 133.49, 133.49, 133.49,
90 133.49, 133.49, 133.49, 133.49
95 double const ECLCrystalData::BarrelZ[46] = {210.15, 200.14, 190.44, 181.05, 171.95, 163.03, 154.45, 146.10, 137.98, 129.99, 122.27, 114.72, 107.34, 100.05, 92.96, 86.00, 79.15, 72.36, 65.72, 59.16, 52.69, 46.22, 39.87, 33.56, 27.29, 21.01, 14.81, 8.62, 2.78, -2.78, -14.81, -21.01, -27.29, -33.56, -39.87, -46.22, -52.69, -59.16, -65.72, -72.36, -79.15, -86.00, -92.95, -100.05, -107 - 28};
195 B2ERROR(
"ERROR: invalid theta_ID=" <<
m_theta_ID);
201 return m_theta_ID < 13 || m_theta_ID > 58 ;
246 int forwRing[13] = {0, 3, 6, 10, 14, 18, 24, 30, 36, 42, 48, 54, 63 };
247 return forwRing[ThetaId] * 16 + PhiId;
249 }
else if (ThetaId > 58) {
250 int backRing[10] = {0, 9, 18, 24, 30, 36, 42, 48, 52, 56} ;
251 return 7776 + backRing[ThetaId - 59] * 16 + PhiId;
253 }
else if (ThetaId > 12 && ThetaId < 59) {
254 return 1152 + 144 * (ThetaId - 13) + PhiId;
257 B2ERROR(
"ERROR (ECLCrystalData): CellID int ThetaId " << ThetaId <<
" int PhiId " << PhiId <<
". Out of range.");
265 B2ERROR(
"ECL ECLGeometryPar Mapping " << cid <<
". Out of range.");
267 }
else if (cid < 3 * 16) {
272 }
else if (cid < 6 * 16) {
277 }
else if (cid < 10 * 16) {
282 }
else if (cid < 14 * 16) {
287 }
else if (cid < 18 * 16) {
292 }
else if (cid < 24 * 16) {
297 }
else if (cid < 30 * 16) {
302 }
else if (cid < 36 * 16) {
307 }
else if (cid < 42 * 16) {
312 }
else if (cid < 48 * 16) {
317 }
else if (cid < 54 * 16) {
322 }
else if (cid < 63 * 16) {
327 }
else if (cid < 72 * 16) {
332 }
else if (cid < 7776) {
337 }
else if (cid < 7776 + 9 * 16) {
342 }
else if (cid < 7776 + 18 * 16) {
347 }
else if (cid < 7776 + 24 * 16) {
352 }
else if (cid < 7776 + 30 * 16) {
357 }
else if (cid < 7776 + 36 * 16) {
362 }
else if (cid < 7776 + 42 * 16) {
367 }
else if (cid < 7776 + 48 * 16) {
372 }
else if (cid < 7776 + 52 * 16) {
377 }
else if (cid < 7776 + 56 * 16) {
382 }
else if (cid < 7776 + 60 * 16) {
388 B2ERROR(
"ECL ECLCrystalData Mapping " << cid <<
". Out of range.");