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