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