14 #include <vxd/dataobjects/VxdID.h>
26 const unsigned short maxLayer = 5;
27 const unsigned short minLayer = 2;
28 const unsigned short nLayer = maxLayer - minLayer + 1;
29 const unsigned short nLadder_L3 = 7;
30 const unsigned short nLadder_L4 = 10;
31 const unsigned short nLadder_L5 = 12;
32 const unsigned short nLadder_L6 = 16;
33 const unsigned short nLadder[nLayer] =
34 {nLadder_L3, nLadder_L4, nLadder_L5, nLadder_L6};
35 const unsigned short nSensor_L3 = 2;
36 const unsigned short nSensor_L4 = 3;
37 const unsigned short nSensor_L5 = 4;
38 const unsigned short nSensor_L6 = 5;
39 const unsigned short nSensor[nLayer] =
40 {nSensor_L3, nSensor_L4, nSensor_L5, nSensor_L6};
42 const unsigned short nPN = 2;
43 const unsigned short maxStrip = 768;
45 const unsigned short maxSample = 6;
47 const unsigned short NApvPerHybrid = 6;
49 const unsigned short nSensorID =
50 (
unsigned short)(nSensor_L3 * nLadder_L3 +
51 nSensor_L4 * nLadder_L4 +
52 nSensor_L5 * nLadder_L5 +
53 nSensor_L6* nLadder_L6) * nPN;
56 short getSVDSensorID(
const unsigned short layer,
57 const unsigned short ladder,
58 const unsigned short sensor,
59 const unsigned short pn)
62 if (layer < minLayer || maxLayer < layer || 2 <= pn) {
66 short sensor_id_base = 0;
69 if (nLadder[0] <= ladder || nSensor[0] <= sensor)
return -2;
70 return nPN * nSensor[0] * ladder + nPN * sensor + pn;
73 sensor_id_base += nPN * nSensor[0] * nLadder[0];
75 if (nLadder[1] <= ladder || nSensor[1] <= sensor)
return -3;
76 return sensor_id_base + nPN * nSensor[1] * ladder + nPN * sensor + pn;
79 sensor_id_base += nPN * nSensor[1] * nLadder[1];
81 if (nLadder[2] <= ladder || nSensor[2] <= sensor)
return -4;
82 return sensor_id_base + nPN * nSensor[2] * ladder + nPN * sensor + pn;
85 sensor_id_base += nPN * nSensor[2] * nLadder[2];
87 if (nLadder[3] <= ladder || nSensor[3] <= sensor)
return -5;
88 return sensor_id_base + nPN * nSensor[3] * ladder + nPN * sensor + pn;
94 short getSVDSensorID(VxdID
id,
bool is_u)
96 unsigned short layer =
id.getLayerNumber() - 1;
97 unsigned short ladder =
id.getLadderNumber();
99 unsigned short sensor = 0;
102 unsigned short pn = (is_u) ? 0 : 1;
106 return getSVDSensorID(layer, ladder, sensor, pn);