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