]> git.uio.no Git - u/mrichter/AliRoot.git/blame - RAW/AliITSRawStreamSSD.cxx
add resilience in case opening of raw DB fails (retry up to 10 times).
[u/mrichter/AliRoot.git] / RAW / AliITSRawStreamSSD.cxx
CommitLineData
c391f9d9 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///////////////////////////////////////////////////////////////////////////////
17//
18// This is a class for reading ITS SSD raw data files and providing
19// information about digits
20//
21///////////////////////////////////////////////////////////////////////////////
22
23#include "AliITSRawStreamSSD.h"
42d20574 24#include "AliRawReader.h"
c391f9d9 25
26ClassImp(AliITSRawStreamSSD)
27
28
42d20574 29const Int_t AliITSRawStreamSSD::fgkDDLsNumber;
30const Int_t AliITSRawStreamSSD::fgkModulesPerDDL;
31const Int_t AliITSRawStreamSSD::fgkDDLModuleMap[fgkDDLsNumber][fgkModulesPerDDL] = {
c391f9d9 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
7941072e 211AliITSRawStreamSSD::AliITSRawStreamSSD(AliRawReader* rawReader) :
212 AliITSRawStream(rawReader)
c391f9d9 213{
214// create an object to read ITS SSD raw digits
215
7941072e 216 fRawReader->Select(3);
c391f9d9 217}
218
219
220Bool_t AliITSRawStreamSSD::Next()
221{
222// read the next raw digit
223// returns kFALSE if there is no digit left
224
225 fPrevModuleID = fModuleID;
7941072e 226 if (!fRawReader->ReadNextInt(fData)) return kFALSE;
c391f9d9 227
228 UInt_t relModuleID = (fData >> 21) & 0x000007FF;
42d20574 229 fModuleID = fgkDDLModuleMap[fRawReader->GetDDLID()][relModuleID];
c391f9d9 230 fCoord1 = (fData >> 20) & 0x00000001;
231 fCoord2 = (fData >> 10) & 0x000003FF;
232 fSignal = (fData & 0x000003FF) + 1;
233
234 return kTRUE;
235}