]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - ITS/AliITSRawStreamSSD.cxx
Coding convention: RN17 rule violation -> suppression
[u/mrichter/AliRoot.git] / ITS / AliITSRawStreamSSD.cxx
... / ...
CommitLineData
1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16/* $Id$ */
17
18///////////////////////////////////////////////////////////////////////////////
19///
20/// This class provides access to ITS SSD digits in raw data.
21// Revised by Enrico Fragiacomo
22// Last update: 2007/09/06
23///
24///////////////////////////////////////////////////////////////////////////////
25
26#include "AliITSRawStreamSSD.h"
27#include "AliRawReader.h"
28#include "AliLog.h"
29
30ClassImp(AliITSRawStreamSSD)
31
32
33 const Int_t AliITSRawStreamSSD::fgkDDLModuleMap[kDDLsNumber][kModulesPerDDL] = {
34
35 //DDL[32][]=
36 { 1214,1215,1224,1225,1222,1223,1220,1221,1218,1219,1216,1217,
37 1192,1193,1202,1203,1200,1201,1198,1199,1196,1197,1194,1195,
38 1170,1171,1180,1181,1178,1179,1176,1177,1174,1175,1172,1173,
39 1148,1149,1158,1159,1156,1157,1154,1155,1152,1153,1150,1151,
40 2121,2122,2119,2120,2117,2118,2115,2116,2113,2114,2111,2112,
41 2096,2097,2094,2095,2092,2093,2090,2091,2088,2089,2086,2087,
42 2071,2072,2069,2070,2067,2068,2065,2066,2063,2064,2061,2062,
43 2046,2047,2044,2045,2042,2043,2040,2041,2038,2039,2036,2037,
44 2021,2022,2019,2020,2017,2018,2015,2016,2013,2014,2011,2012},
45
46 //DDL[33][]=
47 {1126,1127,1136,1137,1134,1135,1132,1133,1130,1131,1128,1129,
48 1104,1105,1114,1115,1112,1113,1110,1111,1108,1109,1106,1107,
49 1082,1083,1092,1093,1090,1091,1088,1089,1086,1087,1084,1085,
50 1060,1061,1070,1071,1068,1069,1066,1067,1064,1065,1062,1063,
51 1038,1039,1048,1049,1046,1047,1044,1045,1042,1043,1040,1041,
52 1996,1997,1994,1995,1992,1993,1990,1991,1988,1989,1986,1987,
53 1971,1972,1969,1970,1967,1968,1965,1966,1963,1964,1961,1962,
54 1946,1947,1944,1945,1942,1943,1940,1941,1938,1939,1936,1937,
55 1921,1922,1919,1920,1917,1918,1915,1916,1913,1914,1911,1912},
56
57 //DDL[34][]=
58 {1016,1017,1026,1027,1024,1025,1022,1023,1020,1021,1018,1019,
59 994, 995,1004,1005,1002,1003,1000,1001, 998, 999, 996, 997,
60 972, 973, 982, 983, 980, 981, 978, 979, 976, 977, 974, 975,
61 950, 951, 960, 961, 958, 959, 956, 957, 954, 955, 952, 953,
62 1896,1897,1894,1895,1892,1893,1890,1891,1888,1889,1886,1887,
63 1871,1872,1869,1870,1867,1868,1865,1866,1863,1864,1861,1862,
64 1846,1847,1844,1845,1842,1843,1840,1841,1838,1839,1836,1837,
65 1821,1822,1819,1820,1817,1818,1815,1816,1813,1814,1811,1812,
66 1796,1797,1794,1795,1792,1793,1790,1791,1788,1789,1786,1787},
67
68 //DDL[35][]=
69 { 928, 929, 938, 939, 936, 937, 934, 935, 932, 933, 930, 931,
70 906, 907, 916, 917, 914, 915, 912, 913, 910, 911, 908, 909,
71 884, 885, 894, 895, 892, 893, 890, 891, 888, 889, 886, 887,
72 862, 863, 872, 873, 870, 871, 868, 869, 866, 867, 864, 865,
73 1771,1772,1769,1770,1767,1768,1765,1766,1763,1764,1761,1762,
74 1746,1747,1744,1745,1742,1743,1740,1741,1738,1739,1736,1737,
75 1721,1722,1719,1720,1717,1718,1715,1716,1713,1714,1711,1712,
76 1696,1697,1694,1695,1692,1693,1690,1691,1688,1689,1686,1687,
77 1671,1672,1669,1670,1667,1668,1665,1666,1663,1664,1661,1662},
78
79 //DDL[36][]=
80 { 840, 841, 850, 851, 848, 849, 846, 847, 844, 845, 842, 843,
81 818, 819, 828, 829, 826, 827, 824, 825, 822, 823, 820, 821,
82 796, 797, 806, 807, 804, 805, 802, 803, 800, 801, 798, 799,
83 774, 775, 784, 785, 782, 783, 780, 781, 778, 779, 776, 777,
84 1646,1647,1644,1645,1642,1643,1640,1641,1638,1639,1636,1637,
85 1621,1622,1619,1620,1617,1618,1615,1616,1613,1614,1611,1612,
86 1596,1597,1594,1595,1592,1593,1590,1591,1588,1589,1586,1587,
87 1571,1572,1569,1570,1567,1568,1565,1566,1563,1564,1561,1562,
88 1546,1547,1544,1545,1542,1543,1540,1541,1538,1539,1536,1537},
89
90 //DDL[37][]=
91 { 752, 753, 762, 763, 760, 761, 758, 759, 756, 757, 754, 755,
92 730, 731, 740, 741, 738, 739, 736, 737, 734, 735, 732, 733,
93 708, 709, 718, 719, 716, 717, 714, 715, 712, 713, 710, 711,
94 686, 687, 696, 697, 694, 695, 692, 693, 690, 691, 688, 689,
95 664, 665, 674, 675, 672, 673, 670, 671, 668, 669, 666, 667,
96 1521,1522,1519,1520,1517,1518,1515,1516,1513,1514,1511,1512,
97 1496,1497,1494,1495,1492,1493,1490,1491,1488,1489,1486,1487,
98 1471,1472,1469,1470,1467,1468,1465,1466,1463,1464,1461,1462,
99 1446,1447,1444,1445,1442,1443,1440,1441,1438,1439,1436,1437},
100
101 //DDL[38][]=
102 { 642, 643, 652, 653, 650, 651, 648, 649, 646, 647, 644, 645,
103 620, 621, 630, 631, 628, 629, 626, 627, 624, 625, 622, 623,
104 598, 599, 608, 609, 606, 607, 604, 605, 602, 603, 600, 601,
105 576, 577, 586, 587, 584, 585, 582, 583, 580, 581, 578, 579,
106 1421,1422,1419,1420,1417,1418,1415,1416,1413,1414,1411,1412,
107 1396,1397,1394,1395,1392,1393,1390,1391,1388,1389,1386,1387,
108 1369,1371,1365,1367,1361,1363,1357,1359,1353,1355,1349,1351,
109 1346,1347,1344,1345,1342,1343,1340,1341,1338,1339,1336,1337,
110 1321,1322,1319,1320,1317,1318,1315,1316,1313,1314,1311,1312},
111
112 //DDL[39][]=
113 { 554, 555, 564, 565, 562, 563, 560, 561, 558, 559, 556, 557,
114 532, 533, 542, 543, 540, 541, 538, 539, 536, 537, 534, 535,
115 510, 511, 520, 521, 518, 519, 516, 517, 514, 515, 512, 513,
116 1236,1237,1246,1247,1244,1245,1242,1243,1240,1241,1238,1239,
117 1296,1297,1294,1295,1292,1293,1290,1291,1288,1289,1286,1287,
118 1271,1272,1269,1270,1267,1268,1265,1266,1263,1264,1261,1262,
119 2196,2197,2194,2195,2192,2193,2190,2191,2188,2189,2186,2187,
120 2171,2172,2169,2170,2167,2168,2165,2166,2163,2164,2161,2162,
121 2146,2147,2144,2145,2142,2143,2140,2141,2138,2139,2136,2137},
122
123 //DDL[40][]=
124 {2060,2110,1205,1204,1206,1207,1209,1208,1211,1210,1213,1212,
125 -1,2085,1183,1182,1184,1185,1187,1186,1189,1188,1191,1190,
126 -1,2010,1161,1160,1162,1163,1165,1164,1167,1166,1169,1168,
127 -1,2035,1139,1138,1140,1141,1143,1142,1145,1144,1147,1146,
128 2099,2098,2101,2100,2103,2102,2105,2104,2107,2106,2109,2108,
129 2074,2073,2076,2075,2078,2077,2080,2079,2082,2081,2084,2083,
130 2049,2048,2051,2050,2053,2052,2055,2054,2057,2056,2059,2058,
131 2024,2023,2026,2025,2028,2027,2030,2029,2032,2031,2034,2033,
132 1999,1998,2001,2000,2003,2002,2005,2004,2007,2006,2009,2008},
133
134 //DDL[41][]=
135 { -1,1960,1117,1116,1118,1119,1121,1120,1123,1122,1125,1124,
136 -1,1985,1095,1094,1096,1097,1099,1098,1101,1100,1103,1102,
137 -1,1910,1073,1072,1074,1075,1077,1076,1079,1078,1081,1080,
138 1935, -1,1051,1050,1052,1053,1055,1054,1057,1056,1059,1058,
139 -1, -1,1029,1028,1030,1031,1033,1032,1035,1034,1037,1036,
140 1974,1973,1976,1975,1978,1977,1980,1979,1982,1981,1984,1983,
141 1949,1948,1951,1950,1953,1952,1955,1954,1957,1956,1959,1958,
142 1924,1923,1926,1925,1928,1927,1930,1929,1932,1931,1934,1933,
143 1899,1898,1901,1900,1903,1902,1905,1904,1907,1906,1909,1908},
144
145 //DDL[42][]=
146 {1835,1885,1007,1006,1008,1009,1011,1010,1013,1012,1015,1014,
147 -1,1860, 985, 984, 986, 987, 989, 988, 991, 990, 993, 992,
148 -1,1785, 963, 962, 964, 965, 967, 966, 969, 968, 971, 970,
149 -1,1810, 941, 940, 942, 943, 945, 944, 947, 946, 949, 948,
150 1874,1873,1876,1875,1878,1877,1880,1879,1882,1881,1884,1883,
151 1849,1848,1851,1850,1853,1852,1855,1854,1857,1856,1859,1858,
152 1824,1823,1826,1825,1828,1827,1830,1829,1832,1831,1834,1833,
153 1799,1798,1801,1800,1803,1802,1805,1804,1807,1806,1809,1808,
154 1774,1773,1776,1775,1778,1777,1780,1779,1782,1781,1784,1783},
155
156 //DDL[43][]=
157 { -1,1735, 919, 918, 920, 921, 923, 922, 925, 924, 927, 926,
158 -1,1760, 897, 896, 898, 899, 901, 900, 903, 902, 905, 904,
159 -1,1685, 875, 874, 876, 877, 879, 878, 881, 880, 883, 882,
160 1710,1660, 853, 852, 854, 855, 857, 856, 859, 858, 861, 860,
161 1749,1748,1751,1750,1753,1752,1755,1754,1757,1756,1759,1758,
162 1724,1723,1726,1725,1728,1727,1730,1729,1732,1731,1734,1733,
163 1699,1698,1701,1700,1703,1702,1705,1704,1707,1706,1709,1708,
164 1674,1673,1676,1675,1678,1677,1680,1679,1682,1681,1684,1683,
165 1649,1648,1651,1650,1653,1652,1655,1654,1657,1656,1659,1658},
166
167 //DDL[44][]=
168 {1585,1635, 831, 830, 832, 833, 835, 834, 837, 836, 839, 838,
169 -1,1610, 809, 808, 810, 811, 813, 812, 815, 814, 817, 816,
170 -1,1535, 787, 786, 788, 789, 791, 790, 793, 792, 795, 794,
171 -1,1560, 765, 764, 766, 767, 769, 768, 771, 770, 773, 772,
172 1624,1623,1626,1625,1628,1627,1630,1629,1632,1631,1634,1633,
173 1599,1598,1601,1600,1603,1602,1605,1604,1607,1606,1609,1608,
174 1574,1573,1576,1575,1578,1577,1580,1579,1582,1581,1584,1583,
175 1549,1548,1551,1550,1553,1552,1555,1554,1557,1556,1559,1558,
176 1524,1523,1526,1525,1528,1527,1530,1529,1532,1531,1534,1533},
177
178 //DDL[45][]=
179 { -1,1485, 743, 742, 744, 745, 747, 746, 749, 748, 751, 750,
180 -1,1510, 721, 720, 722, 723, 725, 724, 727, 726, 729, 728,
181 -1,1435, 699, 698, 700, 701, 703, 702, 705, 704, 707, 706,
182 1460, -1, 677, 676, 678, 679, 681, 680, 683, 682, 685, 684,
183 -1, -1, 655, 654, 656, 657, 659, 658, 661, 660, 663, 662,
184 1499,1498,1501,1500,1503,1502,1505,1504,1507,1506,1509,1508,
185 1474,1473,1476,1475,1478,1477,1480,1479,1482,1481,1484,1483,
186 1449,1448,1451,1450,1453,1452,1455,1454,1457,1456,1459,1458,
187 1424,1423,1426,1425,1428,1427,1430,1429,1432,1431,1434,1433},
188
189 //DDL[46][]=
190 { -1,1410, 633, 632, 634, 635, 637, 636, 639, 638, 641, 640,
191 -1,1385, 611, 610, 612, 613, 615, 614, 617, 616, 619, 618,
192 -1,1310, 589, 588, 590, 591, 593, 592, 595, 594, 597, 596,
193 -1,1335, 567, 566, 568, 569, 571, 570, 573, 572, 575, 574,
194 1399,1398,1401,1400,1403,1402,1405,1404,1407,1406,1409,1408,
195 1374,1373,1376,1375,1378,1377,1380,1379,1382,1381,1384,1383,
196 1350,1348,1354,1352,1358,1356,1362,1360,1366,1364,1370,1368,
197 1324,1323,1326,1325,1328,1327,1330,1329,1332,1331,1334,1333,
198 1299,1298,1301,1300,1303,1302,1305,1304,1307,1306,1309,1308},
199
200 //DDL[47][]=
201 { -1,1260, 545, 544, 546, 547, 549, 548, 551, 550, 553, 552,
202 -1,1285, 523, 522, 524, 525, 527, 526, 529, 528, 531, 530,
203 -1,2160, 501, 500, 502, 503, 505, 504, 507, 506, 509, 508,
204 2185,2135,1227,1226,1228,1229,1231,1230,1233,1232,1235,1234,
205 1274,1273,1276,1275,1278,1277,1280,1279,1282,1281,1284,1283,
206 1249,1248,1251,1250,1253,1252,1255,1254,1257,1256,1259,1258,
207 2174,2173,2176,2175,2178,2177,2180,2179,2182,2181,2184,2183,
208 2149,2148,2151,2150,2153,2152,2155,2154,2157,2156,2159,2158,
209 2124,2123,2126,2125,2128,2127,2130,2129,2132,2131,2134,2133}
210
211 };
212
213
214AliITSRawStreamSSD::AliITSRawStreamSSD(AliRawReader* rawReader) :
215 AliITSRawStream(rawReader),
216 fddl(0),
217 fad(0),
218 fadc(0),
219 fData(0)
220{
221 // create an object to read ITS SSD raw digits
222
223 fRawReader->Select("ITSSSD");
224}
225
226
227Bool_t AliITSRawStreamSSD::Next()
228{
229 // read the next raw digit
230 // returns kFALSE if there is no digit left
231
232 fPrevModuleID = fModuleID;
233 if (!fRawReader->ReadNextInt(fData)) return kFALSE;
234
235 // new coding following IGF Memo - M.Rossewij - 22-06-2004
236 fSignal = (fData & 0x00000FFF); // signal coded in the first 12 bits
237 fSignal = (fSignal > 2048) ? fSignal - 4096 : fSignal;
238
239 UInt_t slot = (fData >> 28) & 0x0000000F; // slot range 1 - 9
240 UInt_t adc = (fData >> 24) & 0x0000000F; // adc range 0 - 5 AND 8 - 13;
241 UInt_t relModuleID = (slot-1) * 12; // 0 - 96
242 relModuleID += (adc<6) ? adc : (adc-2); // adds 0 - 5 AND 6 - 11
243 // relModuleID range 0 - 108
244 if(relModuleID > kModulesPerDDL){
245 fRawReader->AddMajorErrorLog(kWrongModuleIdErr,Form("Module ID = %d > %d (max)",relModuleID,kModulesPerDDL));
246 AliWarning(Form("Module ID = %d > %d (max)",relModuleID,kModulesPerDDL));
247 return kFALSE;
248 }
249 fModuleID = fgkDDLModuleMap[fRawReader->GetDDLID()][relModuleID];
250
251 fCoord2 = (fData >> 12) & 0x000007FF;
252 fCoord1 = (fCoord2 < 768) ? 0 : 1; // strip 0 - 767 are Pside, strip 768 - 1535 are Nside
253 fCoord2 = (fCoord1 == 0) ? fCoord2 : (1535 - fCoord2);
254
255 fadc=adc;
256 fad=slot;
257 fddl=fRawReader->GetDDLID();
258
259 return kTRUE;
260}