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::fgkDDLsNumber;
30 const Int_t AliITSRawStreamSSD::fgkModulesPerDDL;
31 const Int_t AliITSRawStreamSSD::fgkDDLModuleMap[fgkDDLsNumber][fgkModulesPerDDL] = {
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},
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},
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},
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},
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},
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},
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},
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},
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},
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},
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},
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},
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},
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},
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},
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}
211 AliITSRawStreamSSD::AliITSRawStreamSSD(AliRawReader* rawReader) :
212 AliITSRawStream(rawReader)
214 // create an object to read ITS SSD raw digits
216 fRawReader->Select(3);
220 Bool_t AliITSRawStreamSSD::Next()
222 // read the next raw digit
223 // returns kFALSE if there is no digit left
225 fPrevModuleID = fModuleID;
226 if (!fRawReader->ReadNextInt(fData)) return kFALSE;
228 UInt_t relModuleID = (fData >> 21) & 0x000007FF;
229 fModuleID = fgkDDLModuleMap[fRawReader->GetDDLID()][relModuleID];
230 fCoord1 = (fData >> 20) & 0x00000001;
231 fCoord2 = (fData >> 10) & 0x000003FF;
232 fSignal = (fData & 0x000003FF) + 1;