<loglevel value="-1"/>
<loglimit value="1000"/>
<control value="true"/>
- <threads_layout value="balanced"/>
+ <threads_layout value="maximal"/>
+ <!--threads_layout value="balanced"/-->
</Run>
<HttpServer name="http" port="8091"/>
<Module name="Input*TdcCal">
<InputPort name="Input*" queue="30"/>
- <FineMin value="31"/>
- <FineMax value="515"/>
- <NumChannels value="33"/>
- <EdgeMask value="2"/> <!-- 1: only leading edge 2:leading/trailing individual 3:statistics from leading used 4:statistics merged -->
- <HistFilling value="4"/>
- <CalibrFile value="local"/>
- <!--DisableCalibrationFor value="0"/-->
- <Auto value="100000"/>
+ <!--FineMin value="31"/-->
+ <!--FineMax value="515"/-->
+ <!--NumChannels value="33"/-->
+ <!--EdgeMask value="2"/--> <!-- 1: only leading edge 2:leading/trailing individual 3:statistics from leading used 4:statistics merged -->
+ <!--HistFilling value="4"/-->
+ <!--CalibrFile value="local"/-->
+ <!--DisableCalibrationFor value="0"/-->
+ <!--Auto value="100000"/-->
<!-- TRB value="0x8010"/-->
<!-- HUB value="0x9000"/-->
- <!-- TDC value="[0x8a00,0x8a01,0x8a02,0x8a03]"/-->
- <Dummy value="true"/>
+ <!-- TDC value="[0x156d]"/-->
+ <Dummy value="false"/>
</Module>
<NumInputs value="1"/>
<NumOutputs value="1"/>
- <InputPort name="Input0" url="hadaq://10.0.0.1:50000" urlopt1=""/>
+ <InputPort name="Input0" url="hadaq://10.0.0.1:50010" urlopt1=""/>
<!-- <InputPort name="Input1" url="hadaq://host:50113" urlopt1=""/>
<InputPort name="Input2" url="hadaq://host:50084" urlopt1=""/>
<InputPort name="Input3" url="hadaq://host:50158" urlopt1=""/>
<!-- <InputPort name="Input3" url="hadaq://host:10104" urlopt1="trb=0x8030&tdc=[0x3030,0x3031,0x3032,0x3033]&dummy"/> -->
<!-- <InputPort name="Input4" url="hadaq://host:10105" urlopt1="trb=0x8040&tdc=[0x3040,0x3041,0x3042,0x3043]&dummy"/> -->
- <InputPort name="Input*" queue="30" urlopt="udpbuf=2000000&mtu=64512&flush=2.0&observer=false&debug&resort"/>
+ <InputPort name="Input*" queue="300" urlopt="udpbuf=2000000&mtu=64512&flush=2.0&observer=false&debug&resort"/>
<ExtraDebug value="false"/>
<!-- this is stream server for online monitoring, normally always on -->
-<!-- <OutputPort name="Output0" url="mbs://Stream:6789?iter=hadaq_iter&subid=0x1f"/> -->
+ <!--OutputPort name="Output0" url="mbs://Stream:6789?iter=hadaq_iter&subid=0x1f" queue="100"/-->
<!-- this is example of HLD file storage - local and RFIO -->
<OutputPort name="Output0" url="hld:///data/test.hld?maxsize=2000"/>
--- /dev/null
+<?xml version="1.0"?>
+
+<!--
+This is example file how HADAQ event building should be configured in DABC.
+Event building process implemented in Combiner module of hadaq::CombinerModule class.
+Module can have several inputs, each with separate port number for receiving data
+from TRB boards. For every input one could configure only UDP port number - host name is ignored.
+First output of combiner module reserved for the connection to the MBS transmitter module.
+Second output can be use to store data in hld files.
+To enable HLD file storage one should specify NumOutputs for Combiner module
+and provide hld file name for Output1 port
+
+ <NumOutputs value="2"/>
+ <OutputPort name="Output1" url="hld://dabc.hld?maxsize=2000"/>
+
+File name fill be extended according to HADAQ naming convetion.
+
+Optionally one can enable MBS transmitter module, which converts HLD to LMD format.
+To enable transmitter, one should specify auto="true" in configuration which says DABC
+to automatically create module when starting application.
+First output of the module reserved for stream server, second output can be used to
+store data in lmd files.
+
+By default, HTTP server is enabled. Do disable it, remove <HttpServer> section or
+put <HttpServer name="http" auto="false">. One could change http port number.
+When dabc runs, in any browser address like
+http://your_dabc_host_name:8090 can be opened. At the moment http server provides:
+ - ratemeters from EventBuilder and Transmitter
+ - log fields
+ - commands to start/stop hld and lmd files from browser
+
+It is also possible to attach go4 analysis to that server, that also histograms
+from online analysis will appear. For that one should specify
+"-dabc your_dabc_host_name" argument when starting analysis. Like:
+ [shell] go4analysis -stream dabc_node -dabc dabc_node
+When launching analysis from the gui, extra arguments "-dabc your_dabc_host_name"
+should be specified.
+
+There is well-known problem with using VNC viewer and mbs stream server.
+Both by default are using port 6002. One could change port number for stream server.
+Just set other number in configuration of output port of transmitter module, for instance
+ <OutputPort name="Output0" url="mbs://Stream:6789"/>
+In this case one should specify that port number when starting go4 analysis like:
+ [shell] go4analysis -stream dabc_node:6789 -dabc dabc_node:4444
+When starting analysis from the go4 gui, one should specify stream server with port number too.
+
+-->
+
+<dabc version="2">
+ <Context host="localhost" name="EventBuilder">
+ <Run>
+ <lib value="libDabcMbs.so"/>
+ <lib value="libDabcHadaq.so"/>
+ <lib value="libDabcHttp.so"/>
+ <lib value="libDabcStream.so"/>
+ <logfile value="hadaqevtbuild.log"/>
+ <loglevel value="-1"/>
+ <loglimit value="1000"/>
+ <control value="true"/>
+ <threads_layout value="balanced"/>
+ </Run>
+
+ <HttpServer name="http" port="8091"/>
+
+ <!-- If uncommented, all internal manager structures will be published in the web server -->
+ <!-- Publisher name="publ" manager="true"/ -->
+
+ <!-- If uncommented, profiling will be enabled for all threads -->
+ <!-- Thread name="*" publ="true" prof="true"/ -->
+
+ <MemoryPool name="Pool">
+ <BufferSize value="200000"/>
+ <NumBuffers value="1000"/>
+ </MemoryPool>
+
+ <!-- these are default parameters for TDC calibration modules -->
+ <Module name="Input*TdcCal">
+ <InputPort name="Input*" queue="30"/>
+
+ <FineMin value="31"/>
+ <FineMax value="515"/>
+ <NumChannels value="33"/>
+ <EdgeMask value="2"/> <!-- 1: only leading edge 2:leading/trailing individual 3:statistics from leading used 4:statistics merged -->
+ <HistFilling value="4"/>
+ <CalibrFile value="local"/>
+ <!--DisableCalibrationFor value="0"/-->
+ <!-- <Auto value="100000"/>-->
+
+ <!-- TRB value="0x8010"/-->
+ <!-- HUB value="0x9000"/-->
+ <!-- TDC value="[0x8a00,0x8a01,0x8a02,0x8a03]"/-->
+ <Dummy value="true"/>
+ </Module>
+
+
+ <Module name="Combiner" class="hadaq::CombinerModule">
+ <!-- these parameters will force to create inputs/outputs of module -->
+ <NumInputs value="1"/>
+ <NumOutputs value="1"/>
+
+ <InputPort name="Input0" url="hadaq://10.0.0.1:50000" urlopt1=""/>
+<!-- <InputPort name="Input1" url="hadaq://host:50113" urlopt1=""/>
+ <InputPort name="Input2" url="hadaq://host:50084" urlopt1=""/>
+ <InputPort name="Input3" url="hadaq://host:50158" urlopt1=""/>
+
+ <InputPort name="Input4" url="hadaq://host:10104" urlopt1="trb=0x8030&tdc=[0x3030,0x3031,0x3032,0x3033]&dummy"/>
+ <InputPort name="Input5" url="hadaq://host:10105" urlopt1="trb=0x8040&tdc=[0x3040,0x3041,0x3042,0x3043]&dummy"/>
+-->
+ <!-- <InputPort name="Input0" url="hadaq://host:50021" urlopt1="trb=0x8000&hub=0x8100&tdc=[0xC000,0xC001,0xC003]&dummy"/> -->
+ <!-- <InputPort name="Input1" url="hadaq://host:50094" urlopt1="trb=0x8003&tdc=[0xC00C,0xC00D,0xC00E,0xC00F]&dummy"/> -->
+ <!-- <InputPort name="Input2" url="hadaq://host:50096" urlopt1="trb=0x8002&tdc=[0xC008,0xC009,0xC00A,0xC00B]&dummy"/> -->
+ <!-- <InputPort name="Input3" url="hadaq://host:10104" urlopt1="trb=0x8030&tdc=[0x3030,0x3031,0x3032,0x3033]&dummy"/> -->
+ <!-- <InputPort name="Input4" url="hadaq://host:10105" urlopt1="trb=0x8040&tdc=[0x3040,0x3041,0x3042,0x3043]&dummy"/> -->
+
+ <InputPort name="Input*" queue="30" urlopt="udpbuf=2000000&mtu=64512&flush=2.0&observer=false&debug&resort"/>
+
+ <ExtraDebug value="false"/>
+
+ <!-- this is stream server for online monitoring, normally always on -->
+ <OutputPort name="Output0" url="mbs://Stream:6789?iter=hadaq_iter&subid=0x1f"/>
+
+ <!-- this is example of HLD file storage - local and RFIO -->
+ <OutputPort name="Output1" url="hld:///data/test.hld?maxsize=2000"/>
+ <!--OutputPort name="Output1" url="hld:///linev/path/dabc.hld?maxsize=1900&rfio"/-->
+
+ <DoShmControl value="false"/>
+ <FlushTimeout value="2.0"/>
+
+ <!-- take event sequence number from vulom/roc sync message at cts -->
+ <UseSyncSequenceNumber value="false"/>
+ <SyncSubeventId value="0x8000"/>
+ <SyncTriggerMask value="0x01"/>
+ <PrintSync value="false"/>
+ <FlushBySync value="false"/>
+
+ <!--TriggerNumRange: defines when trigger sequence number wraps. only 16 bit for HADES EBs, 24 bit for trb3! -->
+ <TriggerNumRange value="0x10000"/>
+
+ <!--AccountLostEventDiff: if true, missing trigger sequence number are added as lost events to stats. Disabled for multiple event builder mode! -->
+ <AccountLostEventDiff value="true"/>
+
+ <!-- rate meters configuration -->
+ <HadaqData width="4" prec="2" low="0" up="10" debug="1"/>
+ <HadaqEvents width="5" prec="1" low="0" up="1000" debug="1"/>
+ <HadaqDroppedData width="5" prec="3" low="0" up="1" debug="1"/>
+ <HadaqLostEvents width="4" prec="2" low="0" up="100" debug="1"/>
+ </Module>
+
+ <!-- Uncomment to see terminal output like old event builder -->
+ <Module name="Term" class="hadaq::TerminalModule" period="0.3" clear="false"/>
+
+ </Context>
+
+</dabc>
# Address # S/N # FPGA
-0x1201 0551 1
-0x1202 0541 1
-0x1203 0571 1
-0x1204 0561 1
-0x1205 0541 1
-0x1206 0591 1
-0x1207 1601 1
-0x1208 1631 1
-0x1209 1591 1
-#0x1210
-#0x1211
-#0x1212
+0x1201 001 1
+0x1202 002 1
+0x1203 003 1
+0x1204 004 1
+0x1205 005 1
+0x1206 006 1
+0x1207 007 1
+0x1208 008 1
+0x1209 009 1
+
+0x1210 010 1
+0x1211 011 1
+0x1212 012 1
+0x1213 013 1
+0x1214 014 1
+0x1215 015 1
+0x1216 016 1
+0x1217 017 1
+0x1218 018 1
+0x1219 019 1
+0x1220 020 1
+0x1221 021 1
+0x1222 022 1
+0x1223 023 1
+0x1224 024 1
+0x1225 025 1
+0x1226 026 1
+0x1227 027 1
+0x1228 028 1
+0x1229 029 1
+0x1230 030 1
+0x1231 031 1
+0x1232 032 1
+0x1233 033 1
+0x1234 034 1
+0x1235 035 1
+0x1236 036 1
+0x1237 037 1
+0x1238 038 1
+0x1239 039 1
+0x1240 040 1
+0x1241 041 1
+
+0x1232 50 1
+0x1233 51 1
+0x1234 52 1
+0x1235 53 1
+0x1236 54 1
+0x1237 55 1
+0x1238 56 1
+0x1239 57 1
+0x123a 58 1
+0x123b 59 1
+0x123c 60 1
+0x123d 61 1
+0x123e 62 1
+0x123f 63 1
+0x1240 64 1
+0x1241 65 1
+0x1242 66 1
+0x1243 67 1
+0x1244 68 1
+0x1245 69 1
+0x1246 70 1
+0x1247 71 1
+0x1248 72 1
+0x1249 73 1
+0x124a 74 1
+0x124b 75 1
+0x124c 76 1
+0x124d 77 1
+0x124e 78 1
+0x124f 79 1
+0x1250 80 1
+0x1251 81 1
+0x1252 82 1
+0x1253 83 1
+0x1254 84 1
+0x1255 85 1
+0x1256 86 1
+0x1257 87 1
+0x1258 88 1
+0x1259 89 1
+0x125a 90 1
+0x125b 91 1
+0x125c 92 1
+0x125d 93 1
+0x125e 94 1
+0x125f 95 1
+0x1260 96 1
+0x1261 97 1
+0x1262 98 1
+0x1263 99 1
+0x1264 100 1
+0x1265 101 1
+0x1266 102 1
+0x1267 103 1
+0x1268 104 1
+0x1269 105 1
+0x126a 106 1
+0x126b 107 1
+0x126c 108 1
+0x126d 109 1
+0x126e 110 1
+0x126f 111 1
+0x1270 112 1
+0x1271 113 1
+0x1272 114 1
+0x1273 115 1
+0x1274 116 1
+0x1275 117 1
+0x1276 118 1
+0x1277 119 1
+0x1278 120 1
+0x1279 121 1
+0x127a 122 1
+0x127b 123 1
+0x127c 124 1
+0x127d 125 1
+0x127e 126 1
+0x127f 127 1
+0x1280 128 1
+0x1281 129 1
+0x1282 130 1
+0x1283 131 1
+0x1284 132 1
+0x1285 133 1
+0x1286 134 1
+0x1287 135 1
+0x1288 136 1
+0x1289 137 1
+0x128a 138 1
+0x128b 139 1
+0x128c 140 1
+0x128d 141 1
+0x128e 142 1
+0x128f 143 1
+0x1290 144 1
+0x1291 145 1
+0x1292 146 1
+0x1293 147 1
+0x1294 148 1
+0x1295 149 1
+0x1296 150 1
+0x1297 151 1
+0x1298 152 1
+0x1299 153 1
+0x129a 154 1
+0x129b 155 1
+0x129c 156 1
+0x129d 157 1
+0x129e 158 1
+0x129f 159 1
+0x12a0 160 1
+0x12a1 161 1
+0x12a2 162 1
+0x12a3 163 1
+0x12a4 164 1
+0x12a5 165 1
+0x12a6 166 1
+0x12a7 167 1
+0x12a8 168 1
+0x12a9 169 1
+0x12aa 170 1
+0x12ab 171 1
+0x12ac 172 1
+0x12ad 173 1
+0x12ae 174 1
+0x12af 175 1
+0x12b0 176 1
+0x12b1 177 1
+0x12b2 178 1
+0x12b3 179 1
+0x12b4 180 1
+0x12b5 181 1
+0x12b6 182 1
+0x12b7 183 1
+0x12b8 184 1
+0x12b9 185 1
+0x12ba 186 1
+0x12bb 187 1
+0x12bc 188 1
+0x12bd 189 1
+0x12be 190 1
+0x12bf 191 1
+0x12c0 192 1
+0x12c1 193 1
+0x12c2 194 1
+0x12c3 195 1
+0x12c4 196 1
+0x12c5 197 1
+0x12c6 198 1
+0x12c7 199 1
+0x12c8 200 1
+0x12c9 201 1
+0x12ca 202 1
+0x12cb 203 1
+0x12cc 204 1
+0x12cd 205 1
+0x12ce 206 1
+0x12cf 207 1
+0x12d0 208 1
+0x12d1 209 1
+0x12d2 210 1
+0x12d3 211 1
+0x12d4 212 1
+0x12d5 213 1
+0x12d6 214 1
+0x12d7 215 1
+0x12d8 216 1
+0x12d9 217 1
+0x12da 218 1
+0x12db 219 1
+0x12dc 220 1
+0x12dd 221 1
+0x12de 222 1
+0x12df 223 1
+0x12e0 224 1
+0x12e1 225 1
+0x12e2 226 1
+0x12e3 227 1
+0x12e4 228 1
+0x12e5 229 1
+0x12e6 230 1
+0x12e7 231 1
+0x12e8 232 1
+0x12e9 233 1
+0x12ea 234 1
+0x12eb 235 1
+0x12ec 236 1
+0x12ed 237 1
+0x12ee 238 1
+0x12ef 239 1
+0x12f0 240 1
+0x12f1 241 1
+0x12f2 242 1
+0x12f3 243 1
+0x12f4 244 1
+0x12f5 245 1
+0x12f6 246 1
+0x12f7 247 1
+0x12f8 248 1
+0x12f9 249 1
+0x12fa 250 1
+0x12fb 251 1
+0x12fc 252 1
+0x12fd 253 1
+0x12fe 254 1
+0x12ff 255 1
+0x1300 256 1
+0x1301 257 1
+0x1302 258 1
+0x1303 259 1
+0x1304 260 1
+0x1305 261 1
+0x1306 262 1
+0x1307 263 1
+0x1308 264 1
+0x1309 265 1
+0x130a 266 1
+0x130b 267 1
+0x130c 268 1
+0x130d 269 1
+0x130e 270 1
+0x130f 271 1
+0x1310 272 1
+0x1311 273 1
+0x1312 274 1
+0x1313 275 1
+0x1314 276 1
+0x1315 277 1
+0x1316 278 1
+0x1317 279 1
+0x1318 280 1
+0x1319 281 1
+0x131a 282 1
+0x131b 283 1
+0x131c 284 1
+0x131d 285 1
+0x131e 286 1
+0x131f 287 1
+0x1320 288 1
+0x1321 289 1
+0x1322 290 1
+0x1323 291 1
+0x1324 292 1
+0x1325 293 1
+0x1326 294 1
+0x1327 295 1
+0x1328 296 1
+0x1329 297 1
+0x132a 298 1
+0x132b 299 1
+0x132c 300 1
+0x132d 301 1
+0x132e 302 1
+0x132f 303 1
+0x1330 304 1
+0x1331 305 1
+0x1332 306 1
+0x1333 307 1
+0x1334 308 1
+0x1335 309 1
+0x1336 310 1
+0x1337 311 1
+0x1338 312 1
+0x1339 313 1
+0x133a 314 1
+0x133b 315 1
+0x133c 316 1
+0x133d 317 1
+0x133e 318 1
+0x133f 319 1
+0x1340 320 1
+0x1341 321 1
+0x1342 322 1
+0x1343 323 1
+0x1344 324 1
+0x1345 325 1
+0x1346 326 1
+0x1347 327 1
+0x1348 328 1
+0x1349 329 1
+0x134a 330 1
+0x134b 331 1
+0x134c 332 1
+0x134d 333 1
+0x134e 334 1
+0x134f 335 1
+0x1350 336 1
+0x1351 337 1
+0x1352 338 1
+0x1353 339 1
+0x1354 340 1
+0x1355 341 1
+0x1356 342 1
+0x1357 343 1
+0x1358 344 1
+0x1359 345 1
+0x135a 346 1
+0x135b 347 1
+0x135c 348 1
+0x135d 349 1
+0x135e 350 1
+0x135f 351 1
+0x1360 352 1
+0x1361 353 1
+0x1362 354 1
+0x1363 355 1
+0x1364 356 1
+0x1365 357 1
+0x1366 358 1
+0x1367 359 1
+0x1368 360 1
+0x1369 361 1
+0x136a 362 1
+0x136b 363 1
+0x136c 364 1
+0x136d 365 1
+0x136e 366 1
+0x136f 367 1
+0x1370 368 1
+0x1371 369 1
+0x1372 370 1
+0x1373 371 1
+0x1374 372 1
+0x1375 373 1
+0x1376 374 1
+0x1377 375 1
+0x1378 376 1
+0x1379 377 1
+0x137a 378 1
+0x137b 379 1
+0x137c 380 1
+0x137d 381 1
+0x137e 382 1
+0x137f 383 1
+0x1380 384 1
+0x1381 385 1
+0x1382 386 1
+0x1383 387 1
+0x1384 388 1
+0x1385 389 1
+0x1386 390 1
+0x1387 391 1
+0x1388 392 1
+0x1389 393 1
+0x138a 394 1
+0x138b 395 1
+0x138c 396 1
+0x138d 397 1
+0x138e 398 1
+0x138f 399 1
+0x1390 400 1
+0x1391 401 1
+0x1392 402 1
+0x1393 403 1
+0x1394 404 1
+0x1395 405 1
+0x1396 406 1
+0x1397 407 1
+0x1398 408 1
+0x1399 409 1
+0x139a 410 1
+0x139b 411 1
+0x139c 412 1
+0x139d 413 1
+0x139e 414 1
+0x139f 415 1
+0x13a0 416 1
+0x13a1 417 1
+0x13a2 418 1
+0x13a3 419 1
+0x13a4 420 1
+0x13a5 421 1
+0x13a6 422 1
+0x13a7 423 1
+0x13a8 424 1
+0x13a9 425 1
+0x13aa 426 1
+0x13ab 427 1
+0x13ac 428 1
+0x13ad 429 1
+0x13ae 430 1
+0x13af 431 1
+0x13b0 432 1
+0x13b1 433 1
+0x13b2 434 1
+0x13b3 435 1
+0x13b4 436 1
+0x13b5 437 1
+0x13b6 438 1
+0x13b7 439 1
+0x13b8 440 1
+0x13b9 441 1
+0x13ba 442 1
+0x13bb 443 1
+0x13bc 444 1
+0x13bd 445 1
+0x13be 446 1
+0x13bf 447 1
+0x13c0 448 1
+0x13c1 449 1
+0x13c2 450 1
+0x13c3 451 1
+0x13c4 452 1
+0x13c5 453 1
+0x13c6 454 1
+0x13c7 455 1
+0x13c8 456 1
+0x13c9 457 1
+0x13ca 458 1
+0x13cb 459 1
+0x13cc 460 1
+0x13cd 461 1
+0x13ce 462 1
+0x13cf 463 1
+0x13d0 464 1
+0x13d1 465 1
+0x13d2 466 1
+0x13d3 467 1
+0x13d4 468 1
+0x13d5 469 1
+0x13d6 470 1
+0x13d7 471 1
+0x13d8 472 1
+0x13d9 473 1
+0x13da 474 1
+0x13db 475 1
+0x13dc 476 1
+0x13dd 477 1
+0x13de 478 1
+0x13df 479 1
+0x13e0 480 1
+0x13e1 481 1
+0x13e2 482 1
+0x13e3 483 1
+0x13e4 484 1
+0x13e5 485 1
+0x13e6 486 1
+0x13e7 487 1
+0x13e8 488 1
+0x13e9 489 1
+0x13ea 490 1
+0x13eb 491 1
+0x13ec 492 1
+0x13ed 493 1
+0x13ee 494 1
+0x13ef 495 1
+0x13f0 496 1
+0x13f1 497 1
+0x13f2 498 1
+0x13f3 499 1
+0x13f4 500 1
+0x13f5 501 1
+0x13f6 502 1
+0x13f7 503 1
+0x13f8 504 1
+0x13f9 505 1
+0x13fa 506 1
+0x13fb 507 1
+0x13fc 508 1
+0x13fd 509 1
+0x13fe 510 1
+0x13ff 511 1
+0x1400 512 1
+0x1401 513 1
+0x1402 514 1
+0x1403 515 1
+0x1404 516 1
+0x1405 517 1
+0x1406 518 1
+0x1407 519 1
+0x1408 520 1
+0x1409 521 1
+0x140a 522 1
+0x140b 523 1
+0x140c 524 1
+0x140d 525 1
+0x140e 526 1
+0x140f 527 1
+0x1410 528 1
+0x1411 529 1
+0x1412 530 1
+0x1413 531 1
+0x1414 532 1
+0x1415 533 1
+0x1416 534 1
+0x1417 535 1
+0x1418 536 1
+0x1419 537 1
+0x141a 538 1
+0x141b 539 1
+0x141c 540 1
+0x141d 541 1
+0x141e 542 1
+0x141f 543 1
+0x1420 544 1
+0x1421 545 1
+0x1422 546 1
+0x1423 547 1
+0x1424 548 1
+0x1425 549 1
+0x1426 550 1
+0x1427 551 1
+0x1428 552 1
+0x1429 553 1
+0x142a 554 1
+0x142b 555 1
+0x142c 556 1
+0x142d 557 1
+0x142e 558 1
+0x142f 559 1
+0x1430 560 1
+0x1431 561 1
+0x1432 562 1
+0x1433 563 1
+0x1434 564 1
+0x1435 565 1
+0x1436 566 1
+0x1437 567 1
+0x1438 568 1
+0x1439 569 1
+0x143a 570 1
+0x143b 571 1
+0x143c 572 1
+0x143d 573 1
+0x143e 574 1
+0x143f 575 1
+0x1440 576 1
+0x1441 577 1
+0x1442 578 1
+0x1443 579 1
+0x1444 580 1
+0x1445 581 1
+0x1446 582 1
+0x1447 583 1
+0x1448 584 1
+0x1449 585 1
+0x144a 586 1
+0x144b 587 1
+0x144c 588 1
+0x144d 589 1
+0x144e 590 1
+0x144f 591 1
+0x1450 592 1
+0x1451 593 1
+0x1452 594 1
+0x1453 595 1
+0x1454 596 1
+0x1455 597 1
+0x1456 598 1
+0x1457 599 1
+0x1458 600 1
+0x1459 601 1
+0x145a 602 1
+0x145b 603 1
+0x145c 604 1
+0x145d 605 1
+0x145e 606 1
+0x145f 607 1
+0x1460 608 1
+0x1461 609 1
+0x1462 610 1
+0x1463 611 1
+0x1464 612 1
+0x1465 613 1
+0x1466 614 1
+0x1467 615 1
+0x1468 616 1
+0x1469 617 1
+0x146a 618 1
+0x146b 619 1
+0x146c 620 1
+0x146d 621 1
+0x146e 622 1
+0x146f 623 1
+0x1470 624 1
+0x1471 625 1
+0x1472 626 1
+0x1473 627 1
+0x1474 628 1
+0x1475 629 1
+0x1476 630 1
+0x1477 631 1
+0x1478 632 1
+0x1479 633 1
+0x147a 634 1
+0x147b 635 1
+0x147c 636 1
+0x147d 637 1
+0x147e 638 1
+0x147f 639 1
+0x1480 640 1
+0x1481 641 1
+0x1482 642 1
+0x1483 643 1
+0x1484 644 1
+0x1485 645 1
+0x1486 646 1
+0x1487 647 1
+0x1488 648 1
+0x1489 649 1
+0x148a 650 1
+0x148b 651 1
+0x148c 652 1
+0x148d 653 1
+0x148e 654 1
+0x148f 655 1
+0x1490 656 1
+0x1491 657 1
+0x1492 658 1
+0x1493 659 1
+0x1494 660 1
+0x1495 661 1
+0x1496 662 1
+0x1497 663 1
+0x1498 664 1
+0x1499 665 1
+0x149a 666 1
+0x149b 667 1
+0x149c 668 1
+0x149d 669 1
+0x149e 670 1
+0x149f 671 1
+0x14a0 672 1
+0x14a1 673 1
+0x14a2 674 1
+0x14a3 675 1
+0x14a4 676 1
+0x14a5 677 1
+0x14a6 678 1
+0x14a7 679 1
+0x14a8 680 1
+0x14a9 681 1
+0x14aa 682 1
+0x14ab 683 1
+0x14ac 684 1
+0x14ad 685 1
+0x14ae 686 1
+0x14af 687 1
+0x14b0 688 1
+0x14b1 689 1
+0x14b2 690 1
+0x14b3 691 1
+0x14b4 692 1
+0x14b5 693 1
+0x14b6 694 1
+0x14b7 695 1
+0x14b8 696 1
+0x14b9 697 1
+0x14ba 698 1
+0x14bb 699 1
+0x14bc 700 1
+0x14bd 701 1
+0x14be 702 1
+0x14bf 703 1
+0x14c0 704 1
+0x14c1 705 1
+0x14c2 706 1
+0x14c3 707 1
+0x14c4 708 1
+0x14c5 709 1
+0x14c6 710 1
+0x14c7 711 1
+0x14c8 712 1
+0x14c9 713 1
+0x14ca 714 1
+0x14cb 715 1
+0x14cc 716 1
+0x14cd 717 1
+0x14ce 718 1
+0x14cf 719 1
+0x14d0 720 1
+0x14d1 721 1
+0x14d2 722 1
+0x14d3 723 1
+0x14d4 724 1
+0x14d5 725 1
+0x14d6 726 1
+0x14d7 727 1
+0x14d8 728 1
+0x14d9 729 1
+0x14da 730 1
+0x14db 731 1
+0x14dc 732 1
+0x14dd 733 1
+0x14de 734 1
+0x14df 735 1
+0x14e0 736 1
+0x14e1 737 1
+0x14e2 738 1
+0x14e3 739 1
+0x14e4 740 1
+0x14e5 741 1
+0x14e6 742 1
+0x14e7 743 1
+0x14e8 744 1
+0x14e9 745 1
+0x14ea 746 1
+0x14eb 747 1
+0x14ec 748 1
+0x14ed 749 1
+0x14ee 750 1
+0x14ef 751 1
+0x14f0 752 1
+0x14f1 753 1
+0x14f2 754 1
+0x14f3 755 1
+0x14f4 756 1
+0x14f5 757 1
+0x14f6 758 1
+0x14f7 759 1
+0x14f8 760 1
+0x14f9 761 1
+0x14fa 762 1
+0x14fb 763 1
+0x14fc 764 1
+0x14fd 765 1
+0x14fe 766 1
+0x14ff 767 1
+0x1500 768 1
+0x1501 769 1
+0x1502 770 1
+0x1503 771 1
+0x1504 772 1
+0x1505 773 1
+0x1506 774 1
+0x1507 775 1
+0x1508 776 1
+0x1509 777 1
+0x150a 778 1
+0x150b 779 1
+0x150c 780 1
+0x150d 781 1
+0x150e 782 1
+0x150f 783 1
+0x1510 784 1
+0x1511 785 1
+0x1512 786 1
+0x1513 787 1
+0x1514 788 1
+0x1515 789 1
+0x1516 790 1
+0x1517 791 1
+0x1518 792 1
+0x1519 793 1
+0x151a 794 1
+0x151b 795 1
+0x151c 796 1
+0x151d 797 1
+0x151e 798 1
+0x151f 799 1
+0x1520 800 1
+0x1521 801 1
+0x1522 802 1
+0x1523 803 1
+0x1524 804 1
+0x1525 805 1
+0x1526 806 1
+0x1527 807 1
+0x1528 808 1
+0x1529 809 1
+0x152a 810 1
+0x152b 811 1
+0x152c 812 1
+0x152d 813 1
+0x152e 814 1
+0x152f 815 1
+0x1530 816 1
+0x1531 817 1
+0x1532 818 1
+0x1533 819 1
+0x1534 820 1
+0x1535 821 1
+0x1536 822 1
+0x1537 823 1
+0x1538 824 1
+0x1539 825 1
+0x153a 826 1
+0x153b 827 1
+0x153c 828 1
+0x153d 829 1
+0x153e 830 1
+0x153f 831 1
+0x1540 832 1
+0x1541 833 1
+0x1542 834 1
+0x1543 835 1
+0x1544 836 1
+0x1545 837 1
+0x1546 838 1
+0x1547 839 1
+0x1548 840 1
+0x1549 841 1
+0x154a 842 1
+0x154b 843 1
+0x154c 844 1
+0x154d 845 1
+0x154e 846 1
+0x154f 847 1
+0x1550 848 1
+0x1551 849 1
+0x1552 850 1
+0x1553 851 1
+0x1554 852 1
+0x1555 853 1
+0x1556 854 1
+0x1557 855 1
+0x1558 856 1
+0x1559 857 1
+0x155a 858 1
+0x155b 859 1
+0x155c 860 1
+0x155d 861 1
+0x155e 862 1
+0x155f 863 1
+0x1560 864 1
+0x1561 865 1
+0x1562 866 1
+0x1563 867 1
+0x1564 868 1
+0x1565 869 1
+0x1566 870 1
+0x1567 871 1
+0x1568 872 1
+0x1569 873 1
+0x156a 874 1
+0x156b 875 1
+0x156c 876 1
+0x156d 877 1
+0x156e 878 1
+0x156f 879 1
+0x1570 880 1
+0x1571 881 1
+0x1572 882 1
+0x1573 883 1
+0x1574 884 1
+0x1575 885 1
+0x1576 886 1
+0x1577 887 1
+0x1578 888 1
+0x1579 889 1
+0x157a 890 1
+0x157b 891 1
+0x157c 892 1
+0x157d 893 1
+0x157e 894 1
+0x157f 895 1
+0x1580 896 1
+0x1581 897 1
+0x1582 898 1
+0x1583 899 1
+0x1584 900 1
+0x1585 901 1
+0x1586 902 1
+0x1587 903 1
+0x1588 904 1
+0x1589 905 1
+0x158a 906 1
+0x158b 907 1
+0x158c 908 1
+0x158d 909 1
+0x158e 910 1
+0x158f 911 1
+0x1590 912 1
+0x1591 913 1
+0x1592 914 1
+0x1593 915 1
+0x1594 916 1
+0x1595 917 1
+0x1596 918 1
+0x1597 919 1
+0x1598 920 1
+0x1599 921 1
+0x159a 922 1
+0x159b 923 1
+0x159c 924 1
+0x159d 925 1
+0x159e 926 1
+0x159f 927 1
+0x15a0 928 1
+0x15a1 929 1
+0x15a2 930 1
+0x15a3 931 1
+0x15a4 932 1
+0x15a5 933 1
+0x15a6 934 1
+0x15a7 935 1
+0x15a8 936 1
+0x15a9 937 1
+0x15aa 938 1
+0x15ab 939 1
+0x15ac 940 1
+0x15ad 941 1
+0x15ae 942 1
+0x15af 943 1
+0x15b0 944 1
+0x15b1 945 1
+0x15b2 946 1
+0x15b3 947 1
+0x15b4 948 1
+0x15b5 949 1
+0x15b6 950 1
+0x15b7 951 1
+0x15b8 952 1
+0x15b9 953 1
+0x15ba 954 1
+0x15bb 955 1
+0x15bc 956 1
+0x15bd 957 1
+0x15be 958 1
+0x15bf 959 1
+0x15c0 960 1
+0x15c1 961 1
+0x15c2 962 1
+0x15c3 963 1
+0x15c4 964 1
+0x15c5 965 1
+0x15c6 966 1
+0x15c7 967 1
+0x15c8 968 1
+0x15c9 969 1
+0x15ca 970 1
+0x15cb 971 1
+0x15cc 972 1
+0x15cd 973 1
+0x15ce 974 1
+0x15cf 975 1
+0x15d0 976 1
+0x15d1 977 1
+0x15d2 978 1
+0x15d3 979 1
+0x15d4 980 1
+0x15d5 981 1
+0x15d6 982 1
+0x15d7 983 1
+0x15d8 984 1
+0x15d9 985 1
+0x15da 986 1
+0x15db 987 1
+0x15dc 988 1
+0x15dd 989 1
+0x15de 990 1
+0x15df 991 1
+0x15e0 992 1
+0x15e1 993 1
+0x15e2 994 1
+0x15e3 995 1
+0x15e4 996 1
+0x15e5 997 1
+0x15e6 998 1
+0x15e7 999 1
+0x15e8 1000 1
+0x15e9 1001 1
+0x15ea 1002 1
+0x15eb 1003 1
+0x15ec 1004 1
+0x15ed 1005 1
+0x15ee 1006 1
+0x15ef 1007 1
+0x15f0 1008 1
+0x15f1 1009 1
+0x15f2 1010 1
+0x15f3 1011 1
+0x15f4 1012 1
+0x15f5 1013 1
+0x15f6 1014 1
+0x15f7 1015 1
+0x15f8 1016 1
+0x15f9 1017 1
+0x15fa 1018 1
+0x15fb 1019 1
+0x15fc 1020 1
+0x15fd 1021 1
+0x15fe 1022 1
+0x15ff 1023 1
+0x1600 1024 1
+0x1601 1025 1
+0x1602 1026 1
+0x1603 1027 1
+0x1604 1028 1
+0x1605 1029 1
+0x1606 1030 1
+0x1607 1031 1
+0x1608 1032 1
+0x1609 1033 1
+0x160a 1034 1
+0x160b 1035 1
+0x160c 1036 1
+0x160d 1037 1
+0x160e 1038 1
+0x160f 1039 1
+0x1610 1040 1
+0x1611 1041 1
+0x1612 1042 1
+0x1613 1043 1
+0x1614 1044 1
+0x1615 1045 1
+0x1616 1046 1
+0x1617 1047 1
+0x1618 1048 1
+0x1619 1049 1
+0x161a 1050 1
+0x161b 1051 1
+0x161c 1052 1
+0x161d 1053 1
+0x161e 1054 1
+0x161f 1055 1
+0x1620 1056 1
+0x1621 1057 1
+0x1622 1058 1
+0x1623 1059 1
+0x1624 1060 1
+0x1625 1061 1
+0x1626 1062 1
+0x1627 1063 1
+0x1628 1064 1
+0x1629 1065 1
+0x162a 1066 1
+0x162b 1067 1
+0x162c 1068 1
+0x162d 1069 1
+0x162e 1070 1
+0x162f 1071 1
+0x1630 1072 1
+0x1631 1073 1
+0x1632 1074 1
+0x1633 1075 1
+0x1634 1076 1
+0x1635 1077 1
+0x1636 1078 1
+0x1637 1079 1
+0x1638 1080 1
+0x1639 1081 1
+0x163a 1082 1
+0x163b 1083 1
+0x163c 1084 1
+0x163d 1085 1
+0x163e 1086 1
+0x163f 1087 1
+0x1640 1088 1
+0x1641 1089 1
+0x1642 1090 1
+0x1643 1091 1
+0x1644 1092 1
+0x1645 1093 1
+0x1646 1094 1
+0x1647 1095 1
+0x1648 1096 1
+0x1649 1097 1
+0x164a 1098 1
+0x164b 1099 1
+0x164c 1100 1
+0x164d 1101 1
+0x164e 1102 1
+0x164f 1103 1
+0x1650 1104 1
+0x1651 1105 1
+0x1652 1106 1
+0x1653 1107 1
+0x1654 1108 1
+0x1655 1109 1
+0x1656 1110 1
+0x1657 1111 1
+0x1658 1112 1
+0x1659 1113 1
+0x165a 1114 1
+0x165b 1115 1
+0x165c 1116 1
+0x165d 1117 1
+0x165e 1118 1
+0x165f 1119 1
+0x1660 1120 1
+0x1661 1121 1
+0x1662 1122 1
+0x1663 1123 1
+0x1664 1124 1
+0x1665 1125 1
+0x1666 1126 1
+0x1667 1127 1
+0x1668 1128 1
+0x1669 1129 1
+0x166a 1130 1
+0x166b 1131 1
+0x166c 1132 1
+0x166d 1133 1
+0x166e 1134 1
+0x166f 1135 1
+0x1670 1136 1
+0x1671 1137 1
+0x1672 1138 1
+0x1673 1139 1
+0x1674 1140 1
+0x1675 1141 1
+0x1676 1142 1
+0x1677 1143 1
+0x1678 1144 1
+0x1679 1145 1
+0x167a 1146 1
+0x167b 1147 1
+0x167c 1148 1
+0x167d 1149 1
+0x167e 1150 1
+0x167f 1151 1
+0x1680 1152 1
+0x1681 1153 1
+0x1682 1154 1
+0x1683 1155 1
+0x1684 1156 1
+0x1685 1157 1
+0x1686 1158 1
+0x1687 1159 1
+0x1688 1160 1
+0x1689 1161 1
+0x168a 1162 1
+0x168b 1163 1
+0x168c 1164 1
+0x168d 1165 1
+0x168e 1166 1
+0x168f 1167 1
+0x1690 1168 1
+0x1691 1169 1
+0x1692 1170 1
+0x1693 1171 1
+0x1694 1172 1
+0x1695 1173 1
+0x1696 1174 1
+0x1697 1175 1
+0x1698 1176 1
+0x1699 1177 1
+0x169a 1178 1
+0x169b 1179 1
+0x169c 1180 1
+0x169d 1181 1
+0x169e 1182 1
+0x169f 1183 1
+0x16a0 1184 1
+0x16a1 1185 1
+0x16a2 1186 1
+0x16a3 1187 1
+0x16a4 1188 1
+0x16a5 1189 1
+0x16a6 1190 1
+0x16a7 1191 1
+0x16a8 1192 1
+0x16a9 1193 1
+0x16aa 1194 1
+0x16ab 1195 1
+0x16ac 1196 1
+0x16ad 1197 1
+0x16ae 1198 1
+0x16af 1199 1
-
# concentrator/combiner
-0x8300 0010 0
-0x8300 0020 0
+
+0x8200 010 0
+0x8224 024 0
--- /dev/null
+# concentrator/combiner
+
+#0x8610 010 1
+0x2001 331 1
+0x2002 332 1
+0x2003 333 1
+
--- /dev/null
+# concentrator/combiner
+
+#0x8610 010 1
+0xc000 010 1
+
--- /dev/null
+# concentrator/combiner
+
+0x3000 009 1
+0x3001 010 1
+
--- /dev/null
+#!/usr/bin/perl
+
+use warnings;
+use strict;
+use lib "../../perllibs";
+use Dmon;
+use Data::Dumper;
+use HADES::TrbNet;
+use Time::HiRes qq|usleep|;
+
+trb_init_ports() or die trb_strerror();
+
+my $board = hex($ARGV[0]);
+
+#0 for TRB3sc, 1 for DiRich, 2 for Concentrator, 3 for PowerVoltages, 4 for PowerCurrents
+my $mode = $ARGV[1] || 0;
+my $t = [['mV (3.3)','mV (2.5)','mV (1.2)','mV (6)'],
+ ['mV (3.3)','mV (2.5)','mV (1.1)',''],
+ ['mV (3.3)','mV (2.5)','mV (1.2)','mA (@1.2)'],
+ ['mV (3.3)','mV (2.5)','mV (1.2)','mV (1.1)'],
+ ['mA (@1.1)','mA (@1.2)','mA (@2.5)','mA (@3.3)']];
+my $channel = [7,7,7,6,5]; #SPI interface number
+
+#1:4V, 2:2V, 3:1V
+my $resolution = [[2,1,2,1], [2,2,2,1], [2,2,2,4], [2,2,2,2], [3,3,2,2]];
+my $multiplier= [[1,1,0.5,2],[1,1,0.5,0],[1,1,0.5,3.125],[1,1,0.5,0.5], [2.5,1.25,1,0.5]];
+my $modedesc = [ 'Trb3sc', 'DiRich', 'Concentrator', 'Power-Voltages','Power-Currents'];
+
+print "\nRunning in mode ".$modedesc->[$mode]."\n\n";
+
+
+#2 MHz SPI
+system("trbcmd w $board 0xd41a 0x19");
+
+my $cmd; my $s;
+
+$cmd = 0xc1830000 + ($resolution->[$mode][0] << 25);
+$s = Dmon::PadiwaSendCmd($cmd,$board,$channel->[$mode]);
+print Dumper $s;
+printf("0x%08x\t 0x%x\t %i %s\n",$s->{$board},($s->{$board}>>19&0xfff),($s->{$board}>>19&0xfff)*$multiplier->[$mode][0],$t->[$mode][0]);
+
+usleep(5000);
+$cmd = 0xd1830000 + ($resolution->[$mode][1] << 25);
+$s = Dmon::PadiwaSendCmd($cmd,$board,$channel->[$mode]);
+print Dumper $s;
+printf("0x%08x\t 0x%x\t %i %s\n",$s->{$board},($s->{$board}>>19&0xfff),($s->{$board}>>19&0xfff)*$multiplier->[$mode][0],$t->[$mode][0]);
+
+usleep(5000);
+$cmd = 0xe1830000 + ($resolution->[$mode][2] << 25);
+$s = Dmon::PadiwaSendCmd($cmd,$board,$channel->[$mode]);
+print Dumper $s;
+printf("0x%08x\t 0x%x\t %i %s\n",$s->{$board},($s->{$board}>>19&0xfff),($s->{$board}>>19&0xfff)*$multiplier->[$mode][1],$t->[$mode][1]);
+
+usleep(1000);
+$cmd = 0xf1830000 + ($resolution->[$mode][3] << 25);
+$s = Dmon::PadiwaSendCmd($cmd,$board,$channel->[$mode]);
+print Dumper $s;
+printf("0x%08x\t 0x%x\t %i %s\n",$s->{$board},($s->{$board}>>19&0xfff),($s->{$board}>>19&0xfff)*$multiplier->[$mode][2],$t->[$mode][2]);
+
+usleep(5000);
+$cmd = 0xf3930000;
+$s = Dmon::PadiwaSendCmd($cmd,$board,$channel->[$mode]);
+print Dumper $s;
+printf("0x%08x\t 0x%x\t %i %s\n",$s->{$board},($s->{$board}>>19&0xfff),($s->{$board}>>19&0xfff)*$multiplier->[$mode][3],$t->[$mode][3]);
+
+#back to normal SPI speed
+system("trbcmd w $board 0xd41a 7");
+print "\n";
base::ProcMgr::instance()->SetHistFilling(4);
// configure bubbles
- //hadaq::TdcProcessor::SetBubbleMode(0, 18);
-
- // hadaq::TdcProcessor::SetDefaults(1024);
- hadaq::TdcProcessor::SetTriggerDWindow(-10,80);
-
- // this limits used for liner calibrations when nothing else is available
- hadaq::TdcMessage::SetFineLimits(31, 491);
+ //hadaq::TdcProcessor::SetBubbleMode(3, 18);
+ hadaq::TdcProcessor::SetDefaults(1024, 100);
+ hadaq::TdcProcessor::SetUseDTrigForRef(true);
+ // this limits used for linear calibrations when nothing else is available
+ hadaq::TdcMessage::SetFineLimits(0, 1000);
// default channel numbers and edges mask
hadaq::TrbProcessor::SetDefaults(33, 3);
-
+ hadaq::TdcProcessor::SetTriggerDWindow(-10,80);
// [min..max] range for TDC ids
- hadaq::TrbProcessor::SetTDCRange(0xf3d0, 0xf3da);
+ hadaq::TrbProcessor::SetTDCRange(0x1200, 0xc002);//0x15FF);
// [min..max] range for HUB ids
- hadaq::TrbProcessor::SetHUBRange(0xf3db, 0xf3df);
+ hadaq::TrbProcessor::SetHUBRange(0x8000, 0x8fff);
// when first argument true - TRB/TDC will be created on-the-fly
// second parameter is function name, called after elements are created
const char* calname = getenv("CALNAME");
if ((calname==0) || (*calname==0)) calname = "test_";
const char* calmode = getenv("CALMODE");
- int cnt = (calmode && *calmode) ? atoi(calmode) : 100000;
- //cnt=50000;
+ int cnt = (calmode && *calmode) ? atoi(calmode) : 10000;
+ //cnt=100000;
const char* caltrig = getenv("CALTRIG");
- unsigned trig = (caltrig && *caltrig) ? atoi(caltrig) : 0x1;
+ unsigned trig = (caltrig && *caltrig) ? atoi(caltrig) : 0xd;
const char* uset = getenv("USETEMP");
unsigned use_temp = 0; // 0x80000000;
if ((uset!=0) && (*uset!=0) && (strcmp(uset,"1")==0)) use_temp = 0x80000000;
- printf("TDC CALIBRATION MODE %d\n", cnt);
+ printf("TDC CALIBRATION MODE %d, cal trigger: %x\n", cnt, trig);
//printf("HLD configure calibration calfile:%s cnt:%d trig:%X temp:%X\n", calname, cnt, trig, use_temp);
// (1 << 0xD) - special 0XD trigger with internal pulser, used also for TOT calibration
// 0x3FFF - all kinds of trigger types will be used for calibration (excluding 0xE and 0xF)
// 0x80000000 in mask enables usage of temperature correction
- hld->ConfigureCalibration(calname, cnt, (1 << trig) | use_temp | 0x3FFF);
+ hld->ConfigureCalibration(calname, cnt, (1 << trig) | use_temp);
+// hld->ConfigureCalibration("", 0, 0);
// only accept trigger type 0x1 when storing file
// new hadaq::HldFilter(0x1);
// 1 - std::vector<hadaq::TdcMessageExt> - includes original TDC message
// 2 - std::vector<hadaq::MessageFloat> - compact form, without channel 0, stamp as float (relative to ch0)
// 3 - std::vector<hadaq::MessageDouble> - compact form, with channel 0, absolute time stamp as double
- base::ProcMgr::instance()->SetStoreKind(2);
+ base::ProcMgr::instance()->SetStoreKind(0);
// when configured as output in DABC, one specifies:
printf("Configure %s!\n", tdc->GetName());
- // tdc->SetUseLastHit(true);
+ tdc->SetUseLastHit(true);
- // tdc->SetStoreEnabled();
- for (unsigned nch=2;nch<tdc->NumChannels();nch++)
- tdc->SetRefChannel(nch, nch-1, 0xffff, 20000, -100., 100.);
+ //tdc->SetStoreEnabled();
+ for (unsigned nch=2; nch<tdc->NumChannels(); nch++) {
+ tdc->SetRefChannel(nch, nch-1, 0xffff, 10000, -90., 90.);
+ }
- //tdc->SetRefChannel(6, 3, 0xffff, 20000, -100., 100.);
+ // for (unsigned j=10; j<33; j++) {
+ // tdc->SetRefChannel(j, 1, 0xffff, 10000, -40., 40.);
+ //}
- //tdc->SetRefChannel(1, tdc->NumChannels() -1 , 0xffff, 20000, -100., 100.);
+ //tdc->SetRefChannel(6, 0, 0xffff, 10000, -100.,100.);
+ //tdc->SetRefChannel(0, 0, 0x1202, 10000, -20., 20.);
+ //tdc->SetRefChannel(4, 2, 0xffff, 10000, -20., 20.);
+ //tdc->SetRefChannel(1, tdc->NumChannels() -1 , 0xffff, 20000, -10., 10.);
+ // tdc->SetRefChannel(6, 2 , 0xffff, 20000, -10., 10.);
+ //tdc->SetRefChannel(4, 2 , 0xffff, 20000, -10., 10.);
+ //tdc->SetRefChannel(7, 6 , 0xffff, 20000, -10., 10.);
+
}
}
--- /dev/null
+// this is example for
+
+
+void first()
+{
+ //base::ProcMgr::instance()->SetRawAnalysis(true);
+ base::ProcMgr::instance()->SetTriggeredAnalysis(true);
+
+ // all new instances get this value
+ base::ProcMgr::instance()->SetHistFilling(4);
+
+ // configure bubbles
+ //hadaq::TdcProcessor::SetBubbleMode(3, 18);
+
+ // this limits used for linear calibrations when nothing else is available
+ hadaq::TdcMessage::SetFineLimits(0, 1000);
+
+ // default channel numbers and edges mask
+ hadaq::TrbProcessor::SetDefaults(33, 3);
+ hadaq::TdcProcessor::SetDefaults(1024, 100);//NumFineCnts , ToTRange
+// hadaq::TdcProcessor::SetToTRange(20.0, 30.0, 80.0);//NumFineCnts , ToTRange
+ hadaq::TdcProcessor::SetTriggerDWindow(-10,80);
+ // [min..max] range for TDC ids
+ hadaq::TrbProcessor::SetTDCRange(0x1200, 0x16FF);
+
+ // [min..max] range for HUB ids
+ hadaq::TrbProcessor::SetHUBRange(0x8000, 0x8fff);
+
+ // when first argument true - TRB/TDC will be created on-the-fly
+ // second parameter is function name, called after elements are created
+ hadaq::HldProcessor* hld = new hadaq::HldProcessor(true, "after_create");
+
+ const char* calname = getenv("CALNAME");
+ if ((calname==0) || (*calname==0)) calname = "test_";
+ const char* calmode = getenv("CALMODE");
+ int cnt = (calmode && *calmode) ? atoi(calmode) : 0;
+ //cnt=100000;
+ const char* caltrig = getenv("CALTRIG");
+ unsigned trig = (caltrig && *caltrig) ? atoi(caltrig) : 0xd;
+ const char* uset = getenv("USETEMP");
+ unsigned use_temp = 0; // 0x80000000;
+ if ((uset!=0) && (*uset!=0) && (strcmp(uset,"1")==0)) use_temp = 0x80000000;
+
+ printf("TDC CALIBRATION MODE %d, cal trigger: %x\n", cnt, trig);
+
+ //printf("HLD configure calibration calfile:%s cnt:%d trig:%X temp:%X\n", calname, cnt, trig, use_temp);
+
+ // first parameter if filename prefix for calibration files
+ // and calibration mode (empty string - no file I/O)
+ // second parameter is hits count for autocalibration
+ // 0 - only load calibration
+ // -1 - accumulate data and store calibrations only at the end
+ // >0 - automatic calibration after N hits in each active channel
+ // third parameter is trigger type mask used for calibration
+ // (1 << 0xD) - special 0XD trigger with internal pulser, used also for TOT calibration
+ // 0x3FFF - all kinds of trigger types will be used for calibration (excluding 0xE and 0xF)
+ // 0x80000000 in mask enables usage of temperature correction
+ hld->ConfigureCalibration(calname, cnt, (1 << trig) | use_temp);
+ //hld->ConfigureCalibration(calname, 100000, 1);
+
+ // only accept trigger type 0x1 when storing file
+ // new hadaq::HldFilter(0x1);
+
+ // create ROOT file store
+ //base::ProcMgr::instance()->CreateStore("td.root");
+
+ // 0 - disable store
+ // 1 - std::vector<hadaq::TdcMessageExt> - includes original TDC message
+ // 2 - std::vector<hadaq::MessageFloat> - compact form, without channel 0, stamp as float (relative to ch0)
+ // 3 - std::vector<hadaq::MessageDouble> - compact form, with channel 0, absolute time stamp as double
+ base::ProcMgr::instance()->SetStoreKind(0);
+
+
+ // when configured as output in DABC, one specifies:
+ // <OutputPort name="Output2" url="stream://file.root?maxsize=5000&kind=3"/>
+
+
+}
+
+// extern "C" required by DABC to find function from compiled code
+
+extern "C" void after_create(hadaq::HldProcessor* hld)
+{
+ printf("Called after all sub-components are created\n");
+
+ if (hld==0) return;
+
+ for (unsigned k=0;k<hld->NumberOfTRB();k++) {
+ hadaq::TrbProcessor* trb = hld->GetTRB(k);
+ if (trb==0) continue;
+ printf("Configure %s!\n", trb->GetName());
+ trb->SetPrintErrors(100);
+ }
+
+ for (unsigned k=0;k<hld->NumberOfTDC();k++) {
+ hadaq::TdcProcessor* tdc = hld->GetTDC(k);
+ if (tdc==0) continue;
+
+ printf("Configure %s!\n", tdc->GetName());
+
+ tdc->SetUseLastHit(true);
+
+ //tdc->SetStoreEnabled();
+ for (unsigned nch=2; nch<tdc->NumChannels(); nch++) {
+ tdc->SetRefChannel(nch, nch-1, 0xffff, 10000, -90., 90.);
+ }
+
+ // for (unsigned j=10; j<33; j++) {
+ // tdc->SetRefChannel(j, 1, 0xffff, 10000, -40., 40.);
+ //}
+
+ //tdc->SetRefChannel(6, 0, 0xffff, 10000, -100.,100.);
+ //tdc->SetRefChannel(0, 0, 0x1202, 10000, -20., 20.);
+ //tdc->SetRefChannel(4, 2, 0xffff, 10000, -20., 20.);
+ //tdc->SetRefChannel(1, tdc->NumChannels() -1 , 0xffff, 20000, -10., 10.);
+
+ // tdc->SetRefChannel(6, 2 , 0xffff, 20000, -10., 10.);
+ //tdc->SetRefChannel(4, 2 , 0xffff, 20000, -10., 10.);
+ //tdc->SetRefChannel(7, 6 , 0xffff, 20000, -10., 10.);
+
+
+ }
+}
+
+
--- /dev/null
+hadaq@fb07-u101076:~/trbsoft/daqtools/users/giessen_lab/go4> hldprint localhost:6789 -num 3 -raw
+Try to open localhost:6789
+*** Event #0x13caf19 fullid=0x2001 runid=0x14701a0d typ 1 size 312 ***
+ *** Subevent size 276+4 decoding 0x020011 id 0xc001 trig 0x9aa26dff typ 1 swapped align 4 ***
+ [ 0] 00348224 [ 1] 00041663 [ 2] 20009600 [ 3] 60b4bb12 [ 4] 80107c59 [ 5] 01ff0000 [ 6] 000412f8 [ 7] 20009600
+ [ 8] 60b4bb12 [ 9] 8010fc59 [10] 01ff0000 [11] 001a13f9 [12] 20009601 [13] 60b4bb12 [14] 80101c5a [15] 60b4bb0b
+ [16] 81341002 [17] 810ba8c5 [18] 813390ca [19] 810cd98d [20] 81347192 [21] 810b0a55 [22] 8134925a [23] 60b4bb12
+ [24] 81096c25 [25] 8132e42a [26] 60b4bb0b [27] 8229d002 [28] 8218f8c5 [29] 8228f0ca [30] 8214e98d [31] 8228f192
+ [32] 820f1a55 [33] 8229f25a [34] 60b4bb12 [35] 820dbc25 [36] 8228742a [37] 01ff0000 [38] 0004156d [39] 20009600
+ [40] 60b4bb12 [41] 80132c5a [42] 01ff0000 [43] 00041691 [44] 20009600 [45] 60b4bb12 [46] 80128c58 [47] 01ff0000
+ [48] 000412ee [49] 20009600 [50] 60b4bb12 [51] 80145c58 [52] 01ff0000 [53] 0009c001 [54] 00000070 [55] 20009500
+ [56] 60b4e6e4 [57] 800fff17 [58] 60b4e6db [59] 807d00fd [60] 60b4e6e4 [61] 804e2f06 [62] 01ff0000 [63] 00015555
+ [64] 00000001
+*** Event #0x13caf1a fullid=0x2001 runid=0x14701a0d typ 1 size 312 ***
+ *** Subevent size 276+4 decoding 0x020011 id 0xc001 trig 0x9aa26e80 typ 1 swapped align 4 ***
+ [ 0] 00348224 [ 1] 00041663 [ 2] 20009600 [ 3] 60b4bb1c [ 4] 802a2a7b [ 5] 01800000 [ 6] 000412f8 [ 7] 20009600
+ [ 8] 60b4bb1c [ 9] 802aba7b [10] 01800000 [11] 001a13f9 [12] 20009601 [13] 60b4bb1c [14] 802a5a7c [15] 60b4bb14
+ [16] 8111eee5 [17] 8138c6ea [18] 81106fad [19] 813927b2 [20] 60b4bb15 [21] 81134875 [22] 8139407a [23] 60b4bb1c
+ [24] 81114a45 [25] 8138424a [26] 60b4bb14 [27] 821a5ee5 [28] 822f06ea [29] 821affad [30] 822f67b2 [31] 60b4bb15
+ [32] 82199875 [33] 822e807a [34] 60b4bb1c [35] 8218da45 [36] 822dc24a [37] 01800000 [38] 0004156d [39] 20009600
+ [40] 60b4bb1c [41] 802c4a7c [42] 01800000 [43] 00041691 [44] 20009600 [45] 60b4bb1c [46] 802c3a7a [47] 01800000
+ [48] 000412ee [49] 20009600 [50] 60b4bb1c [51] 802d8a7a [52] 01800000 [53] 0009c001 [54] 00000070 [55] 20009500
+ [56] 60b4e6ee [57] 80102d39 [58] 60b4e6e4 [59] 8068071d [60] 60b4e6ee [61] 80787d27 [62] 01800000 [63] 00015555
+ [64] 00000001
+*** Event #0x13caf1b fullid=0x2001 runid=0x14701a0d typ 1 size 312 ***
+ *** Subevent size 276+4 decoding 0x020011 id 0xc001 trig 0x9aa271b0 typ 1 swapped align 4 ***
+ [ 0] 00348224 [ 1] 00041663 [ 2] 20009600 [ 3] 60b4bb39 [ 4] 80379cda [ 5] 01b00000 [ 6] 000412f8 [ 7] 20009600
+ [ 8] 60b4bb39 [ 9] 80385cda [10] 01b00000 [11] 001a13f9 [12] 20009601 [13] 60b4bb39 [14] 80379cdb [15] 60b4bb32
+ [16] 810ba081 [17] 812e5945 [18] 8109e149 [19] 8123da0d [20] 810c5211 [21] 81234ad5 [22] 810b42d9 [23] 60b4bb39
+ [24] 81245ca5 [25] 810b44a9 [26] 60b4bb32 [27] 82016081 [28] 822e8945 [29] 82000149 [30] 822cfa0d [31] 82018211
+ [32] 822c9ad5 [33] 8200a2d9 [34] 60b4bb39 [35] 822bfca5 [36] 8200c4a9 [37] 01b00000 [38] 0004156d [39] 20009600
+ [40] 60b4bb39 [41] 803a8cdb [42] 01b00000 [43] 00041691 [44] 20009600 [45] 60b4bb39 [46] 803a1cd9 [47] 01b00000
+ [48] 000412ee [49] 20009600 [50] 60b4bb39 [51] 803bdcd9 [52] 01b00000 [53] 0009c001 [54] 00000070 [55] 20009500
+ [56] 60b4e70b [57] 800fff99 [58] 60b4e702 [59] 806b817e [60] 60b4e70b [61] 807d0f88 [62] 01b00000 [63] 00015555
+ [64] 00000001
+
--- /dev/null
+00:00:01:18:00:03:00:62:00:00:01:0c:00:02:00:11:00:00:c0:01:3f:11:cc:71:00:32:82:24:00:04:16:63:20:00:96:00:66:fa:89:04:80:16:6b:97:01:71:00:00:00:04:12:f8:20:00:96:00:66:fa:89:04:80:17:0b:97:01:71:00:00:00:18:13:f9:20:00:96:01:66:fa:89:04:80:16:3b:98:66:fa:88:fd:81:2f:c8:03:81:15:50:07:81:2e:b8:cb:81:15:f0:cf:81:31:a9:93:81:14:f1:97:66:fa:89:04:81:30:eb:63:81:12:83:67:66:fa:88:fd:82:30:08:03:82:0b:90:07:82:2f:68:cb:82:0b:d0:cf:82:38:b9:93:82:0b:51:97:66:fa:89:04:82:2f:ab:63:82:08:b3:67:01:71:00:00:00:04:15:6d:20:00:96:00:66:fa:89:04:80:19:4b:98:01:71:00:00:00:04:16:91:20:00:96:00:66:fa:89:04:80:18:5b:96:01:71:00:00:00:04:12:ee:20:00:96:00:66:fa:89:04:80:19:cb:96:01:71:00:00:00:09:c0:01:00:00:00:70:20:00:95:00:66:fa:bc:f3:80:10:68:3b:66:fa:bc:e9:80:59:72:20:66:fa:bc:f3:80:6c:08:2a:01:71:00:00:00:01:55:55:00:00:00:01:aa:aa:aa:aa:00:00:01:18:00:03:00:62:00:00:01:0c:00:02:00:11:00:00:c0:01:3f:11:cc:71:00:32:82:24:00:04:16:63
--- /dev/null
+// Automatically generated startup script
+// Do not change it!
+
+go4->SetMainWindowState(4,"000000ff00000000fd00000002000000000000015c0000032dfc0200000001fb0000001600420072006f00770073006500720044006f0063006b01000000550000032d0000007900ffffff0000000300000780000000d3fc0100000001fc00000000000007800000046b00fffffffa000000000200000003fb00000016004c006f00670049006e0066006f0044006f0063006b0100000000ffffffff0000005200fffffffb0000001a004d006200730056006900650077006500720044006f0063006b0100000000ffffffff0000006400fffffffb0000001e0044004100420043004d006f006e00690074006f00720044006f0063006b0000000279000000ce00000000000000000000061e0000032d00000004000000040000000800000008fc0000000800000002000000050000001600460069006c00650054006f006f006c0042006100720100000000ffffffff0000000000000000000000160047006f00340054006f006f006c00730042006100720100000106ffffffff00000000000000000000001e0041006e0061006c00790073006900730054006f006f006c004200610072010000024affffffff00000000000000000000001a0044006900760069006400650050006100640044006f0063006b0000000395000000e40000000000000000000000240048006900730044007200610077004f007000740069006f006e00730044006f0063006b010000036f000004110000000000000000000000020000000000000002000000030000002400420072006f0077007300650072004f007000740069006f006e00730044006f0063006b01000000000000010200000000000000000000001e0044007200610077004f007000740069006f006e00730044006f0063006b0100000102ffffffff000000000000000000000020005300630061006c0065004f007000740069006f006e00730044006f0063006b01000003b9000003e400000000000000000000000200000001000000180047006f0034005300740079006c00650044006f0063006b0000000000000004b100000000000000000000000200000000000000030000000000000003000000010000001e0043006f006d006d0061006e0064004c0069006e00650044006f0063006b0000000000000004b1000000000000000000000003000000010000001c00540072006500650056006900650077006500720044006f0063006b0000000000000004b10000000000000000");
+go4->SetMainWindowGeometry(4,"01d9d0cb0001000000000000000000000000077f000004960000000000000000fffffffefffffffe000000000200");
+
+go4->LaunchAnalysis("trb3_test", ".", "libGo4UserAnalysis", "localhost", Go4_sh, Go4_qt, Go4_lib);
+go4->WaitAnalysis(300);
+
+// configuration of analysis
+go4->AnalysisAutoSave("Go4AutoSave.root", 500, 5, kTRUE, kFALSE);
+go4->AnalysisConfigName("Go4AnalysisPrefs.root");
+
+// step Analysis
+go4->ConfigStep("Analysis", kTRUE, kTRUE, kFALSE);
+go4->StepMbsStreamSource("Analysis", "localhost:6789", 1);
+go4->StepFileStore("Analysis", "NoOutputDefined", kTRUE, 32000, 99, 5, 10000);
+
+go4->SubmitAnalysisConfig(20);
+
+go4->SetAnalysisConfigMode(-1);
+go4->SetAnalysisTerminalMode(0);
+
+go4->StartAnalysis();
+
+// in some analysis one requires to wait several seconds before new histograms appears
+// go4->Wait(1);
+go4->RefreshNamesList();
+
+TGo4Picture *pic1 = new TGo4Picture("pic1", "temporary object to setup viewpanel");
+pic1->SetCrosshair(false);
+pic1->SetRangeX(0.5, 99.5);
+pic1->SetRangeY(0, 916936);
+pic1->SetLineAtt(1, 1, 1, -1);
+pic1->SetFillAtt(10, 1001, -1);
+pic1->SetHisStats(true);
+pic1->SetStatsAttr(0.58, 0.335, 0.98, 0.935, 1000111111, "6.4g", 0, "5.4g");
+pic1->SetHisTitle(true);
+pic1->SetTitleAttr(0.15, 0.931657, 0.85, 0.995);
+pic1->SetTitleTime(true);
+pic1->SetTitleDate(true);
+pic1->SetTitleItem(true);
+pic1->SetAutoScale(true);
+pic1->SetXYRatioOne(false);
+pic1->SetPadAtt(0, 2, 0, 0, 30, 30, 0, 0);
+pic1->SetXAxisAttTime(0, "%H:%M:%S%F1995-01-01 00:00:00s0", -1);
+pic1->AddObjName("Analysis/Histograms/A/A_NumHits", "HIST");
+pic1->SetLineAtt(602, 1, 1, 0);
+pic1->SetFillAtt(0, 1001, 0);
+pic1->SetMarkerAtt(1, 1, 1, 0);
+pic1->SetAxisAtt(0, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic1->SetAxisAtt(1, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+pic1->SetAxisAtt(2, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+go4->StartViewPanel(784, 407, 782, 406, Go4_normal, pic1);
+delete pic1;
+
+TGo4Picture *pic2 = new TGo4Picture("pic2", "temporary object to setup viewpanel");
+pic2->SetCrosshair(false);
+pic2->SetRangeX(34.14, 37.316);
+pic2->SetRangeY(0, 23862.3);
+pic2->SetLineAtt(1, 1, 1, -1);
+pic2->SetFillAtt(10, 1001, -1);
+pic2->SetHisStats(true);
+pic2->SetStatsAttr(0.58, 0.335, 0.98, 0.935, 1000111111, "6.4g", 0, "5.4g");
+pic2->SetHisTitle(true);
+pic2->SetTitleAttr(0.15, 0.931657, 0.85, 0.995);
+pic2->SetTitleTime(true);
+pic2->SetTitleDate(true);
+pic2->SetTitleItem(true);
+pic2->SetAutoScale(true);
+pic2->SetXYRatioOne(false);
+pic2->SetPadAtt(0, 2, 0, 0, 30, 30, 0, 0);
+pic2->SetXAxisAttTime(0, "%H:%M:%S%F1995-01-01 00:00:00s0", -1);
+pic2->AddObjName("Analysis/Histograms/A/A_ToT1", "HIST");
+pic2->SetLineAtt(602, 1, 1, 0);
+pic2->SetFillAtt(0, 1001, 0);
+pic2->SetMarkerAtt(1, 1, 1, 0);
+pic2->SetAxisAtt(0, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic2->SetAxisAtt(1, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+pic2->SetAxisAtt(2, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+go4->StartViewPanel(0, 407, 784, 406, Go4_normal, pic2);
+delete pic2;
+
+TGo4Picture *pic3 = new TGo4Picture("pic3", "temporary object to setup viewpanel");
+pic3->SetCrosshair(false);
+pic3->SetRangeX(-2.575, -1.415);
+pic3->SetRangeY(0, 21221.5);
+pic3->SetLineAtt(1, 1, 1, -1);
+pic3->SetFillAtt(10, 1001, -1);
+pic3->SetHisStats(true);
+pic3->SetStatsAttr(0.58, 0.335, 0.98, 0.935, 1000111111, "6.4g", 0, "5.4g");
+pic3->SetHisTitle(true);
+pic3->SetTitleAttr(0.15, 0.931657, 0.85, 0.995);
+pic3->SetTitleTime(true);
+pic3->SetTitleDate(true);
+pic3->SetTitleItem(true);
+pic3->SetAutoScale(true);
+pic3->SetXYRatioOne(false);
+pic3->SetPadAtt(0, 2, 0, 0, 30, 30, 0, 0);
+pic3->SetXAxisAttTime(0, "%H:%M:%S%F1995-01-01 00:00:00s0", -1);
+pic3->AddObjName("Analysis/Histograms/A/A_LED_diff1", "HIST");
+pic3->SetLineAtt(602, 1, 1, 0);
+pic3->SetFillAtt(0, 1001, 0);
+pic3->SetMarkerAtt(1, 1, 1, 0);
+pic3->SetAxisAtt(0, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic3->SetAxisAtt(1, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+pic3->SetAxisAtt(2, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+go4->StartViewPanel(784, 0, 782, 407, Go4_normal, pic3);
+delete pic3;
+
+TGo4Picture *pic4 = new TGo4Picture("pic4", "temporary object to setup viewpanel");
+pic4->SetCrosshair(false);
+pic4->SetRangeX(34.504, 37.112);
+pic4->SetRangeY(-2.572, -0.916);
+pic4->SetRangeZ(0, 4028.85);
+pic4->SetLineAtt(1, 1, 1, -1);
+pic4->SetFillAtt(10, 1001, -1);
+pic4->SetHisStats(true);
+pic4->SetStatsAttr(0.687419, 0.475921, 0.989624, 0.915014, 1000111111, "6.4g", 0, "5.4g");
+pic4->SetHisTitle(true);
+pic4->SetTitleAttr(0.15, 0.931657, 0.85, 0.995);
+pic4->SetTitleTime(true);
+pic4->SetTitleDate(true);
+pic4->SetTitleItem(true);
+pic4->SetAutoScale(true);
+pic4->SetXYRatioOne(false);
+pic4->SetPadAtt(0, 2, 0, 0, 30, 30, 0, 0);
+pic4->SetXAxisAttTime(0, "%H:%M:%S%F1995-01-01 00:00:00s0", -1);
+pic4->AddObjName("Analysis/Histograms/A/A_ToT_vs_LED", "COL");
+pic4->SetLineAtt(602, 1, 1, 0);
+pic4->SetFillAtt(0, 1001, 0);
+pic4->SetMarkerAtt(1, 1, 1, 0);
+pic4->SetAxisAtt(0, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic4->SetAxisAtt(1, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic4->SetAxisAtt(2, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+go4->StartViewPanel(0, 0, 784, 407, Go4_normal, pic4);
+delete pic4;
+
+go4->StartMonitoring(2);
--- /dev/null
+// Automatically generated startup script
+// Do not change it!
+
+go4->SetMainWindowState(4,"000000ff00000000fd00000002000000000000015c00000355fc0200000001fb0000001600420072006f00770073006500720044006f0063006b010000006d000003550000007800ffffff00000003000008be000000d3fc0100000001fc00000000000008be0000046c00fffffffa000000000200000003fb00000016004c006f00670049006e0066006f0044006f0063006b0100000000ffffffff0000005100fffffffb0000001a004d006200730056006900650077006500720044006f0063006b0100000000ffffffff0000006300fffffffb0000001e0044004100420043004d006f006e00690074006f00720044006f0063006b0000000279000000ce00000000000000000000075c0000035500000004000000040000000800000008fc0000000800000002000000050000001600460069006c00650054006f006f006c0042006100720100000000ffffffff0000000000000000000000160047006f00340054006f006f006c00730042006100720100000106ffffffff00000000000000000000001e0041006e0061006c00790073006900730054006f006f006c004200610072010000024affffffff00000000000000000000001a0044006900760069006400650050006100640044006f0063006b0000000395000000e40000000000000000000000240048006900730044007200610077004f007000740069006f006e00730044006f0063006b010000036f000004110000000000000000000000020000000000000002000000030000002400420072006f0077007300650072004f007000740069006f006e00730044006f0063006b01000000000000010200000000000000000000001e0044007200610077004f007000740069006f006e00730044006f0063006b0100000102ffffffff000000000000000000000020005300630061006c0065004f007000740069006f006e00730044006f0063006b01000003da000003e400000000000000000000000200000001000000180047006f0034005300740079006c00650044006f0063006b0000000000000004b1000000000000000000000002000000010000002c0041006e0061006c00790073006900730043006f006d006d0061006e00640054006f006f006c0042006100720100000000ffffffff0000000000000000000000030000000000000003000000010000001e0043006f006d006d0061006e0064004c0069006e00650044006f0063006b0000000000000004b1000000000000000000000003000000010000001c00540072006500650056006900650077006500720044006f0063006b0000000000000004b10000000000000000");
+go4->SetMainWindowGeometry(4,"01d9d0cb000100000000000300000000000008c6000004d90000000600000019000008c3000004d6000000000000");
+go4->LoadLibrary("/usr/lib64/qt4/plugins/iconengines/libqsvgicon.so");
+go4->LoadLibrary("/usr/lib64/qt4/plugins/imageformats/libqgif.so");
+go4->LoadLibrary("/usr/lib64/qt4/plugins/imageformats/libqico.so");
+go4->LoadLibrary("/usr/lib64/qt4/plugins/imageformats/libqjpeg.so");
+go4->LoadLibrary("/usr/lib64/qt4/plugins/imageformats/libqmng.so");
+go4->LoadLibrary("/usr/lib64/libmng.so.2");
+go4->LoadLibrary("/usr/lib64/liblcms2.so.2");
+go4->LoadLibrary("/usr/lib64/qt4/plugins/imageformats/libqsvg.so");
+go4->LoadLibrary("/usr/lib64/qt4/plugins/imageformats/libqtga.so");
+go4->LoadLibrary("/usr/lib64/qt4/plugins/imageformats/libqtiff.so");
+go4->LoadLibrary("/usr/lib64/kde4/plugins/imageformats/kimg_dds.so");
+go4->LoadLibrary("/usr/lib64/kde4/plugins/imageformats/kimg_eps.so");
+go4->LoadLibrary("/usr/lib64/kde4/plugins/imageformats/kimg_exr.so");
+go4->LoadLibrary("/usr/lib64/libIlmImf-2_2.so.23");
+go4->LoadLibrary("/usr/lib64/libIex-2_2.so.23");
+go4->LoadLibrary("/usr/lib64/libHalf.so.23");
+go4->LoadLibrary("/usr/lib64/libIlmThread-2_2.so.23");
+go4->LoadLibrary("/usr/lib64/kde4/plugins/imageformats/kimg_jp2.so");
+go4->LoadLibrary("/usr/lib64/libjasper.so.4");
+go4->LoadLibrary("/usr/lib64/kde4/plugins/imageformats/kimg_pcx.so");
+go4->LoadLibrary("/usr/lib64/kde4/plugins/imageformats/kimg_pic.so");
+go4->LoadLibrary("/usr/lib64/kde4/plugins/imageformats/kimg_psd.so");
+go4->LoadLibrary("/usr/lib64/kde4/plugins/imageformats/kimg_ras.so");
+go4->LoadLibrary("/usr/lib64/kde4/plugins/imageformats/kimg_rgb.so");
+go4->LoadLibrary("/usr/lib64/kde4/plugins/imageformats/kimg_tga.so");
+go4->LoadLibrary("/usr/lib64/kde4/plugins/imageformats/kimg_webp.so");
+go4->LoadLibrary("/usr/lib64/libwebp.so.7");
+go4->LoadLibrary("/usr/lib64/kde4/plugins/imageformats/kimg_xcf.so");
+go4->LoadLibrary("/usr/lib64/kde4/plugins/imageformats/kimg_xview.so");
+
+go4->LaunchAnalysis("MyAnalysis", ".", "", "localhost", Go4_sh, Go4_qt, Go4_lib);
+go4->WaitAnalysis(300);
+
+// configuration of analysis
+go4->AnalysisAutoSave("Go4AutoSave.root", 500, 5, kTRUE, kFALSE);
+go4->AnalysisConfigName("Go4AnalysisPrefs.root");
+
+// step Analysis
+go4->ConfigStep("Analysis", kTRUE, kTRUE, kFALSE);
+go4->StepMbsStreamSource("Analysis", "localhost:6789", 1);
+go4->StepFileStore("Analysis", "NoOutputDefined", kTRUE, 32000, 99, 5, 10000);
+
+go4->SubmitAnalysisConfig(20);
+
+go4->SetAnalysisConfigMode(-1);
+go4->SetAnalysisTerminalMode(1);
+
+go4->StartAnalysis();
+
+// in some analysis one requires to wait several seconds before new histograms appears
+// go4->Wait(1);
+go4->RefreshNamesList();
+
+TGo4Picture *pic1 = new TGo4Picture("pic1", "temporary object to setup viewpanel");
+pic1->SetCrosshair(false);
+pic1->SetRangeX(-1.575, -0.099);
+pic1->SetRangeY(0, 72793.4);
+pic1->SetLineAtt(1, 1, 1, -1);
+pic1->SetFillAtt(10, 1001, -1);
+pic1->SetHisStats(true);
+pic1->SetStatsAttr(0.68, 0.095, 0.98, 0.935, 1001111111, "6.4g", 0, "5.4g");
+pic1->SetHisTitle(true);
+pic1->SetTitleAttr(0.15, 0.933951, 0.85, 0.995);
+pic1->SetTitleTime(true);
+pic1->SetTitleDate(true);
+pic1->SetTitleItem(true);
+pic1->SetAutoScale(true);
+pic1->SetApplyToAll(false);
+pic1->SetAutoZoom(false);
+pic1->SetXYRatioOne(false);
+pic1->SetPadAtt(0, 2, 0, 0, 30, 30, 0, 0);
+pic1->SetXAxisAttTime(0, "%H:%M:%S%F1995-01-01 00:00:00s0", -1);
+pic1->AddObjName("Analysis/Histograms/TDC_13E3/Ch5/TDC_13E3_Ch5_RisingRef", "HIST");
+pic1->SetLineAtt(602, 1, 1, 0);
+pic1->SetFillAtt(0, 1001, 0);
+pic1->SetMarkerAtt(1, 1, 1, 0);
+pic1->SetAxisAtt(0, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic1->SetAxisAtt(1, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 0, 0.035, kFALSE, "+", 0, 0);
+pic1->SetAxisAtt(2, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+go4->StartViewPanel(30, 0, 1850, 682, Go4_normal, pic1);
+delete pic1;
+
+TGo4Picture *pic2 = new TGo4Picture("pic2", "temporary object to setup viewpanel");
+pic2->SetCrosshair(false);
+pic2->SetRangeX(0.5, 599.5);
+pic2->SetRangeY(0, 8797.95);
+pic2->SetLineAtt(1, 1, 1, -1);
+pic2->SetFillAtt(10, 1001, -1);
+pic2->SetHisStats(true);
+pic2->SetStatsAttr(0.68, 0.095, 0.98, 0.935, 1001111111, "6.4g", 0, "5.4g");
+pic2->SetHisTitle(true);
+pic2->SetAutoScale(true);
+pic2->SetApplyToAll(false);
+pic2->SetAutoZoom(false);
+pic2->SetXYRatioOne(false);
+pic2->SetPadAtt(0, 2, 0, 0, 30, 30, 0, 0);
+pic2->SetXAxisAttTime(0, "%H:%M:%S%F1995-01-01 00:00:00s0", -1);
+pic2->AddObjName("Analysis/Histograms/TDC_13E3/Ch5/TDC_13E3_Ch5_RisingFine", "HIST");
+pic2->SetLineAtt(602, 1, 1, 0);
+pic2->SetFillAtt(0, 1001, 0);
+pic2->SetMarkerAtt(1, 1, 1, 0);
+pic2->SetAxisAtt(0, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic2->SetAxisAtt(1, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 0, 0.035, kFALSE, "+", 0, 0);
+pic2->SetAxisAtt(2, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+go4->StartViewPanel(0, 30, 1850, 682, Go4_normal, pic2);
+delete pic2;
+
+TGo4Picture *pic3 = new TGo4Picture("pic3", "temporary object to setup viewpanel");
+pic3->SetCrosshair(false);
+pic3->SetRangeX(31.795, 49.085);
+pic3->SetRangeY(0, 70079.1);
+pic3->SetLineAtt(1, 1, 1, -1);
+pic3->SetFillAtt(10, 1001, -1);
+pic3->SetHisStats(true);
+pic3->SetStatsAttr(0.68, 0.095, 0.98, 0.935, 1001111111, "6.4g", 0, "5.4g");
+pic3->SetHisTitle(true);
+pic3->SetTitleAttr(0.15, 0.933951, 0.85, 0.995);
+pic3->SetTitleTime(true);
+pic3->SetTitleDate(true);
+pic3->SetTitleItem(true);
+pic3->SetAutoScale(true);
+pic3->SetApplyToAll(false);
+pic3->SetAutoZoom(false);
+pic3->SetXYRatioOne(false);
+pic3->SetPadAtt(0, 2, 0, 0, 30, 30, 0, 0);
+pic3->SetXAxisAttTime(0, "%H:%M:%S%F1995-01-01 00:00:00s0", -1);
+pic3->AddObjName("Analysis/Histograms/TDC_13E3/Ch5/TDC_13E3_Ch5_Tot", "HIST");
+pic3->SetLineAtt(602, 1, 1, 0);
+pic3->SetFillAtt(0, 1001, 0);
+pic3->SetMarkerAtt(1, 1, 1, 0);
+pic3->SetAxisAtt(0, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic3->SetAxisAtt(1, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 0, 0.035, kFALSE, "+", 0, 0);
+pic3->SetAxisAtt(2, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+go4->StartViewPanel(0, 90, 1850, 682, Go4_normal, pic3);
+delete pic3;
+
+go4->StartMonitoring(2);
--- /dev/null
+#include <vector>\r
+#include <iostream>\r
+#include <fstream>\r
+#include "TGo4Log.h"\r
+#include "TGo4UserException.h"\r
+\r
+#include "TString.h"\r
+\r
+\r
+\r
+class GeometryData_t{\r
+public:\r
+ int TDCaddress;\r
+ int TDCchannel;\r
+ int PMTnr;\r
+ int PMTpixel;\r
+ int PosXint;\r
+ int PosYint;\r
+ float PosXfloat;\r
+ float PosYfloat;\r
+ int GlobalPixel;\r
+ int Statusflag;\r
+ \r
+ void Print()\r
+ {\r
+ printf("GeometryData entry:\n");\r
+ printf("TDCaddress: %x \n",TDCaddress);\r
+ printf("TDCchannel: %i \n",TDCchannel);\r
+ printf("PMTnr : %i \n",PMTnr);\r
+ printf("PMTpixel : %i \n",PMTpixel);\r
+ printf("Position: %i/%f %i/%f \n",PosXint,PosXfloat,PosYint,PosYfloat);\r
+ printf("Statusflag: %i \n",Statusflag);\r
+ }\r
+ \r
+};\r
+\r
+\r
+//Class GeometryData\r
+//------------------\r
+class GeometryData {\r
+\r
+protected:\r
+ map <uint32_t, GeometryData_t> fData;\r
+ map <uint32_t, GeometryData_t>::iterator fDataIt;\r
+ int NrEntries;\r
+ int FirstGlobalPixel, LastGlobalPixel;\r
+public:\r
+ GeometryData(TString filename);\r
+ ~GeometryData();\r
+\r
+ void ReadGeometryFile(TString filename);\r
+ GeometryData_t* GetGeometry(int TDCaddress, int TDCchannel);\r
+ unsigned int GetFirstGlobalPixel() {return FirstGlobalPixel;}\r
+ unsigned int GetLastGlobalPixel() {return LastGlobalPixel;}\r
+};\r
+\r
+\r
+\r
+\r
+GeometryData::GeometryData(TString filename)\r
+{\r
+ // GeometryData();\r
+ printf("Initializing GeometryData object \n");\r
+ printf("Loading geometry file...\n");\r
+ ReadGeometryFile(filename);\r
+ printf("Loading geometry file...done: %i Elements read in\n",NrEntries);\r
+\r
+}\r
+\r
+\r
+GeometryData::~GeometryData()\r
+{\r
+ printf("\nDestructing the GeometryData Class ! \n\n");\r
+}\r
+\r
+void GeometryData::ReadGeometryFile(TString filename)\r
+{\r
+ std::ifstream filehandle;\r
+ // Open file\r
+ filehandle.open(filename);\r
+ if (!filehandle) {\r
+ TGo4Log::Error("Unable to open file\n");\r
+ exit(1);\r
+ }\r
+\r
+ // Read file line by line\r
+ char line[10000];\r
+ NrEntries=0;\r
+ GeometryData_t newentry;\r
+ FirstGlobalPixel=LastGlobalPixel=-1;\r
+\r
+ while (!filehandle.eof()) {\r
+ filehandle.getline(line,sizeof(line));\r
+ if (strlen(line)==0) break;\r
+ if (line[0]=='#') continue;\r
+ \r
+ //cout << line << endl;\r
+ \r
+ if (sscanf(line,"%x %d %d %d %d %d %f %f %d",\r
+ &newentry.TDCaddress,&newentry.TDCchannel,\r
+ &newentry.PMTnr,&newentry.PMTpixel,\r
+ &newentry.PosXint, &newentry.PosYint,\r
+ &newentry.PosXfloat, &newentry.PosYfloat,\r
+ &newentry.Statusflag)!=9) {\r
+\r
+ TGo4Log::Error("Error reading geometry file...");\r
+ exit(1);\r
+ }\r
+ // Temporary fix to mirror Y-Position. Should be removed soon !\r
+ // printf("Geometry data: Y-Position mirrored !!! (works only for single module setup, y=[1..16] \n");\r
+ // newentry.PosYint=17-newentry.PosYint;\r
+ \r
+ newentry.GlobalPixel=(newentry.PMTnr-1)*64+newentry.PMTpixel;\r
+ if ((FirstGlobalPixel==-1) || (newentry.GlobalPixel<FirstGlobalPixel)) \r
+ FirstGlobalPixel=newentry.GlobalPixel;\r
+ if ((LastGlobalPixel==-1) || (newentry.GlobalPixel>LastGlobalPixel)) \r
+ LastGlobalPixel=newentry.GlobalPixel;\r
+\r
+ uint32_t index=((newentry.TDCaddress & 0x0000ffff)<<8) +(newentry.TDCchannel & 0x000000ff);\r
+ fData[index]=newentry;\r
+ NrEntries++;\r
+ \r
+ //newentry.Print();\r
+ }\r
+ \r
+ // Close file\r
+ filehandle.close();\r
+}\r
+\r
+\r
+GeometryData_t* GeometryData::GetGeometry(int TDCaddress, int TDCchannel)\r
+{\r
+ uint32_t index=((TDCaddress & 0x0000ffff)<<8) +(TDCchannel & 0x000000ff);\r
+ \r
+ fDataIt=fData.find(index);\r
+ if (fDataIt == fData.end()) {\r
+ return 0;\r
+ }\r
+ return &fDataIt->second;\r
+}\r
+\r
+\r
--- /dev/null
+// this is example for
+
+
+void first()
+{
+ //base::ProcMgr::instance()->SetRawAnalysis(true);
+ base::ProcMgr::instance()->SetTriggeredAnalysis(true);
+
+ // all new instances get this value
+ base::ProcMgr::instance()->SetHistFilling(4);
+
+ // configure bubbles
+ //hadaq::TdcProcessor::SetBubbleMode(3, 18);
+ hadaq::TdcProcessor::SetDefaults(600, 200);
+ //hadaq::TdcProcessor::SetUseDTrigForRef(true);
+ // this limits used for linear calibrations when nothing else is available
+// hadaq::TdcMessage::SetFineLimits(0, 1000);
+
+ // default channel numbers and edges mask
+ hadaq::TrbProcessor::SetDefaults(33, 3);
+ hadaq::TdcProcessor::SetTriggerDWindow(-10,80);
+ // [min..max] range for TDC ids
+ hadaq::TrbProcessor::SetTDCRange(0x2002, 0x2002);//0x15FF);
+
+ // [min..max] range for HUB ids
+ hadaq::TrbProcessor::SetHUBRange(0xc000, 0xc000);
+
+ // when first argument true - TRB/TDC will be created on-the-fly
+ // second parameter is function name, called after elements are created
+ hadaq::HldProcessor* hld = new hadaq::HldProcessor(true, "after_create");
+
+ const char* calname = getenv("CALNAME");
+ if ((calname==0) || (*calname==0)) calname = "test_";
+ const char* calmode = getenv("CALMODE");
+ int cnt = (calmode && *calmode) ? atoi(calmode) : 60000;
+ //cnt=100000;
+ const char* caltrig = getenv("CALTRIG");
+ unsigned trig = (caltrig && *caltrig) ? atoi(caltrig) : 0xd;
+ const char* uset = getenv("USETEMP");
+ unsigned use_temp = 0; // 0x80000000;
+ if ((uset!=0) && (*uset!=0) && (strcmp(uset,"1")==0)) use_temp = 0x80000000;
+
+ printf("TDC CALIBRATION MODE %d, cal trigger: %x\n", cnt, trig);
+
+ //printf("HLD configure calibration calfile:%s cnt:%d trig:%X temp:%X\n", calname, cnt, trig, use_temp);
+
+ // first parameter if filename prefix for calibration files
+ // and calibration mode (empty string - no file I/O)
+ // second parameter is hits count for autocalibration
+ // 0 - only load calibration
+ // -1 - accumulate data and store calibrations only at the end
+ // >0 - automatic calibration after N hits in each active channel
+ // third parameter is trigger type mask used for calibration
+ // (1 << 0xD) - special 0XD trigger with internal pulser, used also for TOT calibration
+ // 0x3FFF - all kinds of trigger types will be used for calibration (excluding 0xE and 0xF)
+ // 0x80000000 in mask enables usage of temperature correction
+ hld->ConfigureCalibration(calname, cnt, (1 << trig) | use_temp);
+// hld->ConfigureCalibration("", 0, 0);
+
+ // only accept trigger type 0x1 when storing file
+ // new hadaq::HldFilter(0x1);
+
+ // create ROOT file store
+ //base::ProcMgr::instance()->CreateStore("td.root");
+
+ // 0 - disable store
+ // 1 - std::vector<hadaq::TdcMessageExt> - includes original TDC message
+ // 2 - std::vector<hadaq::MessageFloat> - compact form, without channel 0, stamp as float (relative to ch0)
+ // 3 - std::vector<hadaq::MessageDouble> - compact form, with channel 0, absolute time stamp as double
+ base::ProcMgr::instance()->SetStoreKind(0);
+
+
+ // when configured as output in DABC, one specifies:
+ // <OutputPort name="Output2" url="stream://file.root?maxsize=5000&kind=3"/>
+
+
+}
+
+// extern "C" required by DABC to find function from compiled code
+
+extern "C" void after_create(hadaq::HldProcessor* hld)
+{
+ printf("Called after all sub-components are created\n");
+
+ if (hld==0) return;
+
+ for (unsigned k=0;k<hld->NumberOfTRB();k++) {
+ hadaq::TrbProcessor* trb = hld->GetTRB(k);
+ if (trb==0) continue;
+ printf("Configure %s!\n", trb->GetName());
+ trb->SetPrintErrors(100);
+ }
+
+ for (unsigned k=0;k<hld->NumberOfTDC();k++) {
+ hadaq::TdcProcessor* tdc = hld->GetTDC(k);
+ if (tdc==0) continue;
+
+ printf("Configure %s!\n", tdc->GetName());
+
+ tdc->SetUseLastHit(true);
+
+ //tdc->SetStoreEnabled();
+ for (unsigned nch=1; nch<tdc->NumChannels(); nch++) {
+ tdc->SetRefChannel(nch, 3, 0xffff, 10000, -100., 100.);
+ }
+
+ // for (unsigned j=10; j<33; j++) {
+ // tdc->SetRefChannel(j, 1, 0xffff, 10000, -40., 40.);
+ //}
+
+ //tdc->SetRefChannel(6, 0, 0xffff, 10000, -100.,100.);
+ //tdc->SetRefChannel(0, 0, 0x1202, 10000, -20., 20.);
+ //tdc->SetRefChannel(4, 2, 0xffff, 10000, -20., 20.);
+ //tdc->SetRefChannel(1, tdc->NumChannels() -1 , 0xffff, 20000, -10., 10.);
+
+ // tdc->SetRefChannel(6, 2 , 0xffff, 20000, -10., 10.);
+ //tdc->SetRefChannel(4, 2 , 0xffff, 20000, -10., 10.);
+ //tdc->SetRefChannel(7, 6 , 0xffff, 20000, -10., 10.);
+
+
+ }
+}
+
+
--- /dev/null
+# 2017-10-30 first try to rotate backplanes, standard setup COSY2017, new geometry from beam view, but changed template as it is from electronics view, with mirror in x, full setup, toothhole closed, gap included, correct_mm, 1216 changed to 1225,float x and y in cm
+0x1241 01 01 01 024 025 15.3 16.3 000
+0x1241 02 01 02 023 025 14.7 16.3 001
+0x1241 03 01 03 024 026 15.3 16.9 002
+0x1241 04 01 04 023 026 14.7 16.9 003
+0x1241 05 01 05 024 027 15.3 17.5 004
+0x1241 06 01 06 023 027 14.7 17.5 005
+0x1241 07 01 07 024 028 15.3 18.1 006
+0x1241 08 01 08 023 028 14.7 18.1 007
+0x1241 09 01 09 024 029 15.3 18.7 008
+0x1241 10 01 10 023 029 14.7 18.7 009
+0x1241 11 01 11 024 030 15.3 19.3 010
+0x1241 12 01 12 023 030 14.7 19.3 011
+0x1241 13 01 13 024 031 15.3 19.9 012
+0x1241 14 01 14 023 031 14.7 19.9 013
+0x1241 15 01 15 024 032 15.3 20.5 014
+0x1241 16 01 16 023 032 14.7 20.5 015
+0x1241 17 01 17 022 025 14.1 16.3 016
+0x1241 18 01 18 021 025 13.5 16.3 017
+0x1241 19 01 19 022 026 14.1 16.9 018
+0x1241 21 01 20 021 026 13.5 16.9 019
+0x1241 20 01 21 022 027 14.1 17.5 020
+0x1241 22 01 22 021 027 13.5 17.5 021
+0x1241 23 01 23 022 028 14.1 18.1 022
+0x1241 25 01 24 021 028 13.5 18.1 023
+0x1241 24 01 25 022 029 14.1 18.7 024
+0x1241 26 01 26 021 029 13.5 18.7 025
+0x1241 27 01 27 022 030 14.1 19.3 026
+0x1241 28 01 28 021 030 13.5 19.3 027
+0x1241 30 01 29 022 031 14.1 19.9 028
+0x1241 29 01 30 021 031 13.5 19.9 029
+0x1241 31 01 31 022 032 14.1 20.5 030
+0x1241 32 01 32 021 032 13.5 20.5 031
+0x1229 01 01 33 020 025 12.9 16.3 033
+0x1229 02 01 34 019 025 12.3 16.3 034
+0x1229 03 01 35 020 026 12.9 16.9 035
+0x1229 04 01 36 019 026 12.3 16.9 036
+0x1229 05 01 37 020 027 12.9 17.5 037
+0x1229 06 01 38 019 027 12.3 17.5 038
+0x1229 07 01 39 020 028 12.9 18.1 039
+0x1229 08 01 40 019 028 12.3 18.1 040
+0x1229 09 01 41 020 029 12.9 18.7 041
+0x1229 10 01 42 019 029 12.3 18.7 042
+0x1229 11 01 43 020 030 12.9 19.3 043
+0x1229 12 01 44 019 030 12.3 19.3 044
+0x1229 13 01 45 020 031 12.9 19.9 045
+0x1229 14 01 46 019 031 12.3 19.9 046
+0x1229 15 01 47 020 032 12.9 20.5 047
+0x1229 16 01 48 019 032 12.3 20.5 048
+0x1229 17 01 49 018 025 11.7 16.3 049
+0x1229 18 01 50 017 025 11.1 16.3 050
+0x1229 19 01 51 018 026 11.7 16.9 051
+0x1229 21 01 52 017 026 11.1 16.9 052
+0x1229 20 01 53 018 027 11.7 17.5 053
+0x1229 22 01 54 017 027 11.1 17.5 054
+0x1229 23 01 55 018 028 11.7 18.1 055
+0x1229 25 01 56 017 028 11.1 18.1 056
+0x1229 24 01 57 018 029 11.7 18.7 057
+0x1229 26 01 58 017 029 11.1 18.7 058
+0x1229 27 01 59 018 030 11.7 19.3 059
+0x1229 28 01 60 017 030 11.1 19.3 060
+0x1229 30 01 61 018 031 11.7 19.9 061
+0x1229 29 01 62 017 031 11.1 19.9 062
+0x1229 31 01 63 018 032 11.7 20.5 063
+0x1229 32 01 64 017 032 11.1 20.5 064
+0x1237 01 04 01 020 033 12.9 21.6 066
+0x1237 02 04 02 019 033 12.3 21.6 067
+0x1237 03 04 03 020 034 12.9 22.2 068
+0x1237 04 04 04 019 034 12.3 22.2 069
+0x1237 05 04 05 020 035 12.9 22.8 070
+0x1237 06 04 06 019 035 12.3 22.8 071
+0x1237 07 04 07 020 036 12.9 23.4 072
+0x1237 08 04 08 019 036 12.3 23.4 073
+0x1237 09 04 09 020 037 12.9 24.0 074
+0x1237 10 04 10 019 037 12.3 24.0 075
+0x1237 11 04 11 020 038 12.9 24.6 076
+0x1237 12 04 12 019 038 12.3 24.6 077
+0x1237 13 04 13 020 039 12.9 25.2 078
+0x1237 14 04 14 019 039 12.3 25.2 079
+0x1237 15 04 15 020 040 12.9 25.8 080
+0x1237 16 04 16 019 040 12.3 25.8 081
+0x1237 17 04 17 018 033 11.7 21.6 082
+0x1237 18 04 18 017 033 11.1 21.6 083
+0x1237 19 04 19 018 034 11.7 22.2 084
+0x1237 21 04 20 017 034 11.1 22.2 085
+0x1237 20 04 21 018 035 11.7 22.8 086
+0x1237 22 04 22 017 035 11.1 22.8 087
+0x1237 23 04 23 018 036 11.7 23.4 088
+0x1237 25 04 24 017 036 11.1 23.4 089
+0x1237 24 04 25 018 037 11.7 24.0 090
+0x1237 26 04 26 017 037 11.1 24.0 091
+0x1237 27 04 27 018 038 11.7 24.6 092
+0x1237 28 04 28 017 038 11.1 24.6 093
+0x1237 30 04 29 018 039 11.7 25.2 094
+0x1237 29 04 30 017 039 11.1 25.2 095
+0x1237 31 04 31 018 040 11.7 25.8 096
+0x1237 32 04 32 017 040 11.1 25.8 097
+0x1215 01 02 01 016 025 10.0 16.3 132
+0x1215 02 02 02 015 025 9.4 16.3 133
+0x1215 03 02 03 016 026 10.0 16.9 134
+0x1215 04 02 04 015 026 9.4 16.9 135
+0x1215 05 02 05 016 027 10.0 17.5 136
+0x1215 06 02 06 015 027 9.4 17.5 137
+0x1215 07 02 07 016 028 10.0 18.1 138
+0x1215 08 02 08 015 028 9.4 18.1 139
+0x1215 09 02 09 016 029 10.0 18.7 140
+0x1215 10 02 10 015 029 9.4 18.7 141
+0x1215 11 02 11 016 030 10.0 19.3 142
+0x1215 12 02 12 015 030 9.4 19.3 143
+0x1215 13 02 13 016 031 10.0 19.9 144
+0x1215 14 02 14 015 031 9.4 19.9 145
+0x1215 15 02 15 016 032 10.0 20.5 146
+0x1215 16 02 16 015 032 9.4 20.5 147
+0x1215 17 02 17 014 025 8.8 16.3 148
+0x1215 18 02 18 013 025 8.2 16.3 149
+0x1215 19 02 19 014 026 8.8 16.9 150
+0x1215 21 02 20 013 026 8.2 16.9 151
+0x1215 20 02 21 014 027 8.8 17.5 152
+0x1215 22 02 22 013 027 8.2 17.5 153
+0x1215 23 02 23 014 028 8.8 18.1 154
+0x1215 25 02 24 013 028 8.2 18.1 155
+0x1215 24 02 25 014 029 8.8 18.7 156
+0x1215 26 02 26 013 029 8.2 18.7 157
+0x1215 27 02 27 014 030 8.8 19.3 158
+0x1215 28 02 28 013 030 8.2 19.3 159
+0x1215 30 02 29 014 031 8.8 19.9 160
+0x1215 29 02 30 013 031 8.2 19.9 161
+0x1215 31 02 31 014 032 8.8 20.5 162
+0x1215 32 02 32 013 032 8.2 20.5 163
+0x1218 01 02 33 012 025 7.6 16.3 165
+0x1218 02 02 34 011 025 7.0 16.3 166
+0x1218 03 02 35 012 026 7.6 16.9 167
+0x1218 04 02 36 011 026 7.0 16.9 168
+0x1218 05 02 37 012 027 7.6 17.5 169
+0x1218 06 02 38 011 027 7.0 17.5 170
+0x1218 07 02 39 012 028 7.6 18.1 171
+0x1218 08 02 40 011 028 7.0 18.1 172
+0x1218 09 02 41 012 029 7.6 18.7 173
+0x1218 10 02 42 011 029 7.0 18.7 174
+0x1218 11 02 43 012 030 7.6 19.3 175
+0x1218 12 02 44 011 030 7.0 19.3 176
+0x1218 13 02 45 012 031 7.6 19.9 177
+0x1218 14 02 46 011 031 7.0 19.9 178
+0x1218 15 02 47 012 032 7.6 20.5 179
+0x1218 16 02 48 011 032 7.0 20.5 180
+0x1218 17 02 49 010 025 6.4 16.3 181
+0x1218 18 02 50 009 025 5.8 16.3 182
+0x1218 19 02 51 010 026 6.4 16.9 183
+0x1218 21 02 52 009 026 5.8 16.9 184
+0x1218 20 02 53 010 027 6.4 17.5 185
+0x1218 22 02 54 009 027 5.8 17.5 186
+0x1218 23 02 55 010 028 6.4 18.1 187
+0x1218 25 02 56 009 028 5.8 18.1 188
+0x1218 24 02 57 010 029 6.4 18.7 189
+0x1218 26 02 58 009 029 5.8 18.7 190
+0x1218 27 02 59 010 030 6.4 19.3 191
+0x1218 28 02 60 009 030 5.8 19.3 192
+0x1218 30 02 61 010 031 6.4 19.9 193
+0x1218 29 02 62 009 031 5.8 19.9 194
+0x1218 31 02 63 010 032 6.4 20.5 195
+0x1218 32 02 64 009 032 5.8 20.5 196
+0x1232 01 05 33 016 033 10.0 21.6 231
+0x1232 02 05 34 015 033 9.4 21.6 232
+0x1232 03 05 35 016 034 10.0 22.2 233
+0x1232 04 05 36 015 034 9.4 22.2 234
+0x1232 05 05 37 016 035 10.0 22.8 235
+0x1232 06 05 38 015 035 9.4 22.8 236
+0x1232 07 05 39 016 036 10.0 23.4 237
+0x1232 08 05 40 015 036 9.4 23.4 238
+0x1232 09 05 41 016 037 10.0 24.0 239
+0x1232 10 05 42 015 037 9.4 24.0 240
+0x1232 11 05 43 016 038 10.0 24.6 241
+0x1232 12 05 44 015 038 9.4 24.6 242
+0x1232 13 05 45 016 039 10.0 25.2 243
+0x1232 14 05 46 015 039 9.4 25.2 244
+0x1232 15 05 47 016 040 10.0 25.8 245
+0x1232 16 05 48 015 040 9.4 25.8 246
+0x1232 17 05 49 014 033 8.8 21.6 247
+0x1232 18 05 50 013 033 8.2 21.6 248
+0x1232 19 05 51 014 034 8.8 22.2 249
+0x1232 21 05 52 013 034 8.2 22.2 250
+0x1232 20 05 53 014 035 8.8 22.8 251
+0x1232 22 05 54 013 035 8.2 22.8 252
+0x1232 23 05 55 014 036 8.8 23.4 253
+0x1232 25 05 56 013 036 8.2 23.4 254
+0x1232 24 05 57 014 037 8.8 24.0 255
+0x1232 26 05 58 013 037 8.2 24.0 256
+0x1232 27 05 59 014 038 8.8 24.6 257
+0x1232 28 05 60 013 038 8.2 24.6 258
+0x1232 30 05 61 014 039 8.8 25.2 259
+0x1232 29 05 62 013 039 8.2 25.2 260
+0x1232 31 05 63 014 040 8.8 25.8 261
+0x1232 32 05 64 013 040 8.2 25.8 262
+0x1226 01 05 01 012 033 7.6 21.6 198
+0x1226 02 05 02 011 033 7.0 21.6 199
+0x1226 03 05 03 012 034 7.6 22.2 200
+0x1226 04 05 04 011 034 7.0 22.2 201
+0x1226 05 05 05 012 035 7.6 22.8 202
+0x1226 06 05 06 011 035 7.0 22.8 203
+0x1226 07 05 07 012 036 7.6 23.4 204
+0x1226 08 05 08 011 036 7.0 23.4 205
+0x1226 09 05 09 012 037 7.6 24.0 206
+0x1226 10 05 10 011 037 7.0 24.0 207
+0x1226 11 05 11 012 038 7.6 24.6 208
+0x1226 12 05 12 011 038 7.0 24.6 209
+0x1226 13 05 13 012 039 7.6 25.2 210
+0x1226 14 05 14 011 039 7.0 25.2 211
+0x1226 15 05 15 012 040 7.6 25.8 212
+0x1226 16 05 16 011 040 7.0 25.8 213
+0x1226 17 05 17 010 033 6.4 21.6 214
+0x1226 18 05 18 009 033 5.8 21.6 215
+0x1226 19 05 19 010 034 6.4 22.2 216
+0x1226 21 05 20 009 034 5.8 22.2 217
+0x1226 20 05 21 010 035 6.4 22.8 218
+0x1226 22 05 22 009 035 5.8 22.8 219
+0x1226 23 05 23 010 036 6.4 23.4 220
+0x1226 25 05 24 009 036 5.8 23.4 221
+0x1226 24 05 25 010 037 6.4 24.0 222
+0x1226 26 05 26 009 037 5.8 24.0 223
+0x1226 27 05 27 010 038 6.4 24.6 224
+0x1226 28 05 28 009 038 5.8 24.6 225
+0x1226 30 05 29 010 039 6.4 25.2 226
+0x1226 29 05 30 009 039 5.8 25.2 227
+0x1226 31 05 31 010 040 6.4 25.8 228
+0x1226 32 05 32 009 040 5.8 25.8 229
+0x1223 32 03 01 008 025 4.7 16.3 265
+0x1223 31 03 02 007 025 4.1 16.3 266
+0x1223 29 03 03 008 026 4.7 16.9 267
+0x1223 30 03 04 007 026 4.1 16.9 268
+0x1223 28 03 05 008 027 4.7 17.5 269
+0x1223 27 03 06 007 027 4.1 17.5 270
+0x1223 26 03 07 008 028 4.7 18.1 271
+0x1223 24 03 08 007 028 4.1 18.1 272
+0x1223 25 03 09 008 029 4.7 18.7 273
+0x1223 23 03 10 007 029 4.1 18.7 274
+0x1223 22 03 11 008 030 4.7 19.3 275
+0x1223 20 03 12 007 030 4.1 19.3 276
+0x1223 21 03 13 008 031 4.7 19.9 277
+0x1223 19 03 14 007 031 4.1 19.9 278
+0x1223 18 03 15 008 032 4.7 20.5 279
+0x1223 17 03 16 007 032 4.1 20.5 280
+0x1223 16 03 17 006 025 3.5 16.3 281
+0x1223 15 03 18 005 025 2.9 16.3 282
+0x1223 14 03 19 006 026 3.5 16.9 283
+0x1223 13 03 20 005 026 2.9 16.9 284
+0x1223 12 03 21 006 027 3.5 17.5 285
+0x1223 11 03 22 005 027 2.9 17.5 286
+0x1223 10 03 23 006 028 3.5 18.1 287
+0x1223 09 03 24 005 028 2.9 18.1 288
+0x1223 08 03 25 006 029 3.5 18.7 289
+0x1223 07 03 26 005 029 2.9 18.7 290
+0x1223 06 03 27 006 030 3.5 19.3 291
+0x1223 05 03 28 005 030 2.9 19.3 292
+0x1223 04 03 29 006 031 3.5 19.9 293
+0x1223 03 03 30 005 031 2.9 19.9 294
+0x1223 02 03 31 006 032 3.5 20.5 295
+0x1223 01 03 32 005 032 2.9 20.5 296
+0x1240 32 03 33 004 025 2.3 16.3 298
+0x1240 31 03 34 003 025 1.7 16.3 299
+0x1240 29 03 35 004 026 2.3 16.9 300
+0x1240 30 03 36 003 026 1.7 16.9 301
+0x1240 28 03 37 004 027 2.3 17.5 302
+0x1240 27 03 38 003 027 1.7 17.5 303
+0x1240 26 03 39 004 028 2.3 18.1 304
+0x1240 24 03 40 003 028 1.7 18.1 305
+0x1240 25 03 41 004 029 2.3 18.7 306
+0x1240 23 03 42 003 029 1.7 18.7 307
+0x1240 22 03 43 004 030 2.3 19.3 308
+0x1240 20 03 44 003 030 1.7 19.3 309
+0x1240 21 03 45 004 031 2.3 19.9 310
+0x1240 19 03 46 003 031 1.7 19.9 311
+0x1240 18 03 47 004 032 2.3 20.5 312
+0x1240 17 03 48 003 032 1.7 20.5 313
+0x1240 16 03 49 002 025 1.1 16.3 314
+0x1240 15 03 50 001 025 0.5 16.3 315
+0x1240 14 03 51 002 026 1.1 16.9 316
+0x1240 13 03 52 001 026 0.5 16.9 317
+0x1240 12 03 53 002 027 1.1 17.5 318
+0x1240 11 03 54 001 027 0.5 17.5 319
+0x1240 10 03 55 002 028 1.1 18.1 320
+0x1240 09 03 56 001 028 0.5 18.1 321
+0x1240 08 03 57 002 029 1.1 18.7 322
+0x1240 07 03 58 001 029 0.5 18.7 323
+0x1240 06 03 59 002 030 1.1 19.3 324
+0x1240 05 03 60 001 030 0.5 19.3 325
+0x1240 04 03 61 002 031 1.1 19.9 326
+0x1240 03 03 62 001 031 0.5 19.9 327
+0x1240 02 03 63 002 032 1.1 20.5 328
+0x1240 01 03 64 001 032 0.5 20.5 329
+0x1214 32 06 01 008 033 4.7 21.6 331
+0x1214 31 06 02 007 033 4.1 21.6 332
+0x1214 29 06 03 008 034 4.7 22.2 333
+0x1214 30 06 04 007 034 4.1 22.2 334
+0x1214 28 06 05 008 035 4.7 22.8 335
+0x1214 27 06 06 007 035 4.1 22.8 336
+0x1214 26 06 07 008 036 4.7 23.4 337
+0x1214 24 06 08 007 036 4.1 23.4 338
+0x1214 25 06 09 008 037 4.7 24.0 339
+0x1214 23 06 10 007 037 4.1 24.0 340
+0x1214 22 06 11 008 038 4.7 24.6 341
+0x1214 20 06 12 007 038 4.1 24.6 342
+0x1214 21 06 13 008 039 4.7 25.2 343
+0x1214 19 06 14 007 039 4.1 25.2 344
+0x1214 18 06 15 008 040 4.7 25.8 345
+0x1214 17 06 16 007 040 4.1 25.8 346
+0x1214 16 06 17 006 033 3.5 21.6 347
+0x1214 15 06 18 005 033 2.9 21.6 348
+0x1214 14 06 19 006 034 3.5 22.2 349
+0x1214 13 06 20 005 034 2.9 22.2 350
+0x1214 12 06 21 006 035 3.5 22.8 351
+0x1214 11 06 22 005 035 2.9 22.8 352
+0x1214 10 06 23 006 036 3.5 23.4 353
+0x1214 09 06 24 005 036 2.9 23.4 354
+0x1214 08 06 25 006 037 3.5 24.0 355
+0x1214 07 06 26 005 037 2.9 24.0 356
+0x1214 06 06 27 006 038 3.5 24.6 357
+0x1214 05 06 28 005 038 2.9 24.6 358
+0x1214 04 06 29 006 039 3.5 25.2 359
+0x1214 03 06 30 005 039 2.9 25.2 360
+0x1214 02 06 31 006 040 3.5 25.8 361
+0x1214 01 06 32 005 040 2.9 25.8 362
+0x1233 01 07 01 024 001 15.3 0.5 000
+0x1233 02 07 02 023 001 14.7 0.5 001
+0x1233 03 07 03 024 002 15.3 1.1 002
+0x1233 04 07 04 023 002 14.7 1.1 003
+0x1233 05 07 05 024 003 15.3 1.7 004
+0x1233 06 07 06 023 003 14.7 1.7 005
+0x1233 07 07 07 024 004 15.3 2.3 006
+0x1233 08 07 08 023 004 14.7 2.3 007
+0x1233 09 07 09 024 005 15.3 2.9 008
+0x1233 10 07 10 023 005 14.7 2.9 009
+0x1233 11 07 11 024 006 15.3 3.5 010
+0x1233 12 07 12 023 006 14.7 3.5 011
+0x1233 13 07 13 024 007 15.3 4.1 012
+0x1233 14 07 14 023 007 14.7 4.1 013
+0x1233 15 07 15 024 008 15.3 4.7 014
+0x1233 16 07 16 023 008 14.7 4.7 015
+0x1233 17 07 17 022 001 14.1 0.5 016
+0x1233 18 07 18 021 001 13.5 0.5 017
+0x1233 19 07 19 022 002 14.1 1.1 018
+0x1233 21 07 20 021 002 13.5 1.1 019
+0x1233 20 07 21 022 003 14.1 1.7 020
+0x1233 22 07 22 021 003 13.5 1.7 021
+0x1233 23 07 23 022 004 14.1 2.3 022
+0x1233 25 07 24 021 004 13.5 2.3 023
+0x1233 24 07 25 022 005 14.1 2.9 024
+0x1233 26 07 26 021 005 13.5 2.9 025
+0x1233 27 07 27 022 006 14.1 3.5 026
+0x1233 28 07 28 021 006 13.5 3.5 027
+0x1233 30 07 29 022 007 14.1 4.1 028
+0x1233 29 07 30 021 007 13.5 4.1 029
+0x1233 31 07 31 022 008 14.1 4.7 030
+0x1233 32 07 32 021 008 13.5 4.7 031
+0x1238 01 07 33 020 001 12.9 0.5 033
+0x1238 02 07 34 019 001 12.3 0.5 034
+0x1238 03 07 35 020 002 12.9 1.1 035
+0x1238 04 07 36 019 002 12.3 1.1 036
+0x1238 05 07 37 020 003 12.9 1.7 037
+0x1238 06 07 38 019 003 12.3 1.7 038
+0x1238 07 07 39 020 004 12.9 2.3 039
+0x1238 08 07 40 019 004 12.3 2.3 040
+0x1238 09 07 41 020 005 12.9 2.9 041
+0x1238 10 07 42 019 005 12.3 2.9 042
+0x1238 11 07 43 020 006 12.9 3.5 043
+0x1238 12 07 44 019 006 12.3 3.5 044
+0x1238 13 07 45 020 007 12.9 4.1 045
+0x1238 14 07 46 019 007 12.3 4.1 046
+0x1238 15 07 47 020 008 12.9 4.7 047
+0x1238 16 07 48 019 008 12.3 4.7 048
+0x1238 17 07 49 018 001 11.7 0.5 049
+0x1238 18 07 50 017 001 11.1 0.5 050
+0x1238 19 07 51 018 002 11.7 1.1 051
+0x1238 21 07 52 017 002 11.1 1.1 052
+0x1238 20 07 53 018 003 11.7 1.7 053
+0x1238 22 07 54 017 003 11.1 1.7 054
+0x1238 23 07 55 018 004 11.7 2.3 055
+0x1238 25 07 56 017 004 11.1 2.3 056
+0x1238 24 07 57 018 005 11.7 2.9 057
+0x1238 26 07 58 017 005 11.1 2.9 058
+0x1238 27 07 59 018 006 11.7 3.5 059
+0x1238 28 07 60 017 006 11.1 3.5 060
+0x1238 30 07 61 018 007 11.7 4.1 061
+0x1238 29 07 62 017 007 11.1 4.1 062
+0x1238 31 07 63 018 008 11.7 4.7 063
+0x1238 32 07 64 017 008 11.1 4.7 064
+0x1228 01 10 33 024 009 15.3 5.8 099
+0x1228 02 10 34 023 009 14.7 5.8 100
+0x1228 03 10 35 024 010 15.3 6.4 101
+0x1228 04 10 36 023 010 14.7 6.4 102
+0x1228 05 10 37 024 011 15.3 7.0 103
+0x1228 06 10 38 023 011 14.7 7.0 104
+0x1228 07 10 39 024 012 15.3 7.6 105
+0x1228 08 10 40 023 012 14.7 7.6 106
+0x1228 09 10 41 024 013 15.3 8.2 107
+0x1228 10 10 42 023 013 14.7 8.2 108
+0x1228 11 10 43 024 014 15.3 8.8 109
+0x1228 12 10 44 023 014 14.7 8.8 110
+0x1228 13 10 45 024 015 15.3 9.4 111
+0x1228 14 10 46 023 015 14.7 9.4 112
+0x1228 15 10 47 024 016 15.3 10.0 113
+0x1228 16 10 48 023 016 14.7 10.0 114
+0x1228 17 10 49 022 009 14.1 5.8 115
+0x1228 18 10 50 021 009 13.5 5.8 116
+0x1228 19 10 51 022 010 14.1 6.4 117
+0x1228 21 10 52 021 010 13.5 6.4 118
+0x1228 20 10 53 022 011 14.1 7.0 119
+0x1228 22 10 54 021 011 13.5 7.0 120
+0x1228 23 10 55 022 012 14.1 7.6 121
+0x1228 25 10 56 021 012 13.5 7.6 122
+0x1228 24 10 57 022 013 14.1 8.2 123
+0x1228 26 10 58 021 013 13.5 8.2 124
+0x1228 27 10 59 022 014 14.1 8.8 125
+0x1228 28 10 60 021 014 13.5 8.8 126
+0x1228 30 10 61 022 015 14.1 9.4 127
+0x1228 29 10 62 021 015 13.5 9.4 128
+0x1228 31 10 63 022 016 14.1 10.0 129
+0x1228 32 10 64 021 016 13.5 10.0 130
+0x1236 01 10 01 020 009 12.9 5.8 066
+0x1236 02 10 02 019 009 12.3 5.8 067
+0x1236 03 10 03 020 010 12.9 6.4 068
+0x1236 04 10 04 019 010 12.3 6.4 069
+0x1236 05 10 05 020 011 12.9 7.0 070
+0x1236 06 10 06 019 011 12.3 7.0 071
+0x1236 07 10 07 020 012 12.9 7.6 072
+0x1236 08 10 08 019 012 12.3 7.6 073
+0x1236 09 10 09 020 013 12.9 8.2 074
+0x1236 10 10 10 019 013 12.3 8.2 075
+0x1236 11 10 11 020 014 12.9 8.8 076
+0x1236 12 10 12 019 014 12.3 8.8 077
+0x1236 13 10 13 020 015 12.9 9.4 078
+0x1236 14 10 14 019 015 12.3 9.4 079
+0x1236 15 10 15 020 016 12.9 10.0 080
+0x1236 16 10 16 019 016 12.3 10.0 081
+0x1236 17 10 17 018 009 11.7 5.8 082
+0x1236 18 10 18 017 009 11.1 5.8 083
+0x1236 19 10 19 018 010 11.7 6.4 084
+0x1236 21 10 20 017 010 11.1 6.4 085
+0x1236 20 10 21 018 011 11.7 7.0 086
+0x1236 22 10 22 017 011 11.1 7.0 087
+0x1236 23 10 23 018 012 11.7 7.6 088
+0x1236 25 10 24 017 012 11.1 7.6 089
+0x1236 24 10 25 018 013 11.7 8.2 090
+0x1236 26 10 26 017 013 11.1 8.2 091
+0x1236 27 10 27 018 014 11.7 8.8 092
+0x1236 28 10 28 017 014 11.1 8.8 093
+0x1236 30 10 29 018 015 11.7 9.4 094
+0x1236 29 10 30 017 015 11.1 9.4 095
+0x1236 31 10 31 018 016 11.7 10.0 096
+0x1236 32 10 32 017 016 11.1 10.0 097
+0x1217 01 08 01 016 001 10.0 0.5 132
+0x1217 02 08 02 015 001 9.4 0.5 133
+0x1217 03 08 03 016 002 10.0 1.1 134
+0x1217 04 08 04 015 002 9.4 1.1 135
+0x1217 05 08 05 016 003 10.0 1.7 136
+0x1217 06 08 06 015 003 9.4 1.7 137
+0x1217 07 08 07 016 004 10.0 2.3 138
+0x1217 08 08 08 015 004 9.4 2.3 139
+0x1217 09 08 09 016 005 10.0 2.9 140
+0x1217 10 08 10 015 005 9.4 2.9 141
+0x1217 11 08 11 016 006 10.0 3.5 142
+0x1217 12 08 12 015 006 9.4 3.5 143
+0x1217 13 08 13 016 007 10.0 4.1 144
+0x1217 14 08 14 015 007 9.4 4.1 145
+0x1217 15 08 15 016 008 10.0 4.7 146
+0x1217 16 08 16 015 008 9.4 4.7 147
+0x1217 17 08 17 014 001 8.8 0.5 148
+0x1217 18 08 18 013 001 8.2 0.5 149
+0x1217 19 08 19 014 002 8.8 1.1 150
+0x1217 21 08 20 013 002 8.2 1.1 151
+0x1217 20 08 21 014 003 8.8 1.7 152
+0x1217 22 08 22 013 003 8.2 1.7 153
+0x1217 23 08 23 014 004 8.8 2.3 154
+0x1217 25 08 24 013 004 8.2 2.3 155
+0x1217 24 08 25 014 005 8.8 2.9 156
+0x1217 26 08 26 013 005 8.2 2.9 157
+0x1217 27 08 27 014 006 8.8 3.5 158
+0x1217 28 08 28 013 006 8.2 3.5 159
+0x1217 30 08 29 014 007 8.8 4.1 160
+0x1217 29 08 30 013 007 8.2 4.1 161
+0x1217 31 08 31 014 008 8.8 4.7 162
+0x1217 32 08 32 013 008 8.2 4.7 163
+0x1227 01 08 33 012 001 7.6 0.5 165
+0x1227 02 08 34 011 001 7.0 0.5 166
+0x1227 03 08 35 012 002 7.6 1.1 167
+0x1227 04 08 36 011 002 7.0 1.1 168
+0x1227 05 08 37 012 003 7.6 1.7 169
+0x1227 06 08 38 011 003 7.0 1.7 170
+0x1227 07 08 39 012 004 7.6 2.3 171
+0x1227 08 08 40 011 004 7.0 2.3 172
+0x1227 09 08 41 012 005 7.6 2.9 173
+0x1227 10 08 42 011 005 7.0 2.9 174
+0x1227 11 08 43 012 006 7.6 3.5 175
+0x1227 12 08 44 011 006 7.0 3.5 176
+0x1227 13 08 45 012 007 7.6 4.1 177
+0x1227 14 08 46 011 007 7.0 4.1 178
+0x1227 15 08 47 012 008 7.6 4.7 179
+0x1227 16 08 48 011 008 7.0 4.7 180
+0x1227 17 08 49 010 001 6.4 0.5 181
+0x1227 18 08 50 009 001 5.8 0.5 182
+0x1227 19 08 51 010 002 6.4 1.1 183
+0x1227 21 08 52 009 002 5.8 1.1 184
+0x1227 20 08 53 010 003 6.4 1.7 185
+0x1227 22 08 54 009 003 5.8 1.7 186
+0x1227 23 08 55 010 004 6.4 2.3 187
+0x1227 25 08 56 009 004 5.8 2.3 188
+0x1227 24 08 57 010 005 6.4 2.9 189
+0x1227 26 08 58 009 005 5.8 2.9 190
+0x1227 27 08 59 010 006 6.4 3.5 191
+0x1227 28 08 60 009 006 5.8 3.5 192
+0x1227 30 08 61 010 007 6.4 4.1 193
+0x1227 29 08 62 009 007 5.8 4.1 194
+0x1227 31 08 63 010 008 6.4 4.7 195
+0x1227 32 08 64 009 008 5.8 4.7 196
+0x1239 01 11 33 016 009 10.0 5.8 231
+0x1239 02 11 34 015 009 9.4 5.8 232
+0x1239 03 11 35 016 010 10.0 6.4 233
+0x1239 04 11 36 015 010 9.4 6.4 234
+0x1239 05 11 37 016 011 10.0 7.0 235
+0x1239 06 11 38 015 011 9.4 7.0 236
+0x1239 07 11 39 016 012 10.0 7.6 237
+0x1239 08 11 40 015 012 9.4 7.6 238
+0x1239 09 11 41 016 013 10.0 8.2 239
+0x1239 10 11 42 015 013 9.4 8.2 240
+0x1239 11 11 43 016 014 10.0 8.8 241
+0x1239 12 11 44 015 014 9.4 8.8 242
+0x1239 13 11 45 016 015 10.0 9.4 243
+0x1239 14 11 46 015 015 9.4 9.4 244
+0x1239 15 11 47 016 016 10.0 10.0 245
+0x1239 16 11 48 015 016 9.4 10.0 246
+0x1239 17 11 49 014 009 8.8 5.8 247
+0x1239 18 11 50 013 009 8.2 5.8 248
+0x1239 19 11 51 014 010 8.8 6.4 249
+0x1239 21 11 52 013 010 8.2 6.4 250
+0x1239 20 11 53 014 011 8.8 7.0 251
+0x1239 22 11 54 013 011 8.2 7.0 252
+0x1239 23 11 55 014 012 8.8 7.6 253
+0x1239 25 11 56 013 012 8.2 7.6 254
+0x1239 24 11 57 014 013 8.8 8.2 255
+0x1239 26 11 58 013 013 8.2 8.2 256
+0x1239 27 11 59 014 014 8.8 8.8 257
+0x1239 28 11 60 013 014 8.2 8.8 258
+0x1239 30 11 61 014 015 8.8 9.4 259
+0x1239 29 11 62 013 015 8.2 9.4 260
+0x1239 31 11 63 014 016 8.8 10.0 261
+0x1239 32 11 64 013 016 8.2 10.0 262
+0x1213 01 11 01 012 009 7.6 5.8 198
+0x1213 02 11 02 011 009 7.0 5.8 199
+0x1213 03 11 03 012 010 7.6 6.4 200
+0x1213 04 11 04 011 010 7.0 6.4 201
+0x1213 05 11 05 012 011 7.6 7.0 202
+0x1213 06 11 06 011 011 7.0 7.0 203
+0x1213 07 11 07 012 012 7.6 7.6 204
+0x1213 08 11 08 011 012 7.0 7.6 205
+0x1213 09 11 09 012 013 7.6 8.2 206
+0x1213 10 11 10 011 013 7.0 8.2 207
+0x1213 11 11 11 012 014 7.6 8.8 208
+0x1213 12 11 12 011 014 7.0 8.8 209
+0x1213 13 11 13 012 015 7.6 9.4 210
+0x1213 14 11 14 011 015 7.0 9.4 211
+0x1213 15 11 15 012 016 7.6 10.0 212
+0x1213 16 11 16 011 016 7.0 10.0 213
+0x1213 17 11 17 010 009 6.4 5.8 214
+0x1213 18 11 18 009 009 5.8 5.8 215
+0x1213 19 11 19 010 010 6.4 6.4 216
+0x1213 21 11 20 009 010 5.8 6.4 217
+0x1213 20 11 21 010 011 6.4 7.0 218
+0x1213 22 11 22 009 011 5.8 7.0 219
+0x1213 23 11 23 010 012 6.4 7.6 220
+0x1213 25 11 24 009 012 5.8 7.6 221
+0x1213 24 11 25 010 013 6.4 8.2 222
+0x1213 26 11 26 009 013 5.8 8.2 223
+0x1213 27 11 27 010 014 6.4 8.8 224
+0x1213 28 11 28 009 014 5.8 8.8 225
+0x1213 30 11 29 010 015 6.4 9.4 226
+0x1213 29 11 30 009 015 5.8 9.4 227
+0x1213 31 11 31 010 016 6.4 10.0 228
+0x1213 32 11 32 009 016 5.8 10.0 229
+0x1231 32 09 01 008 001 4.7 0.5 265
+0x1231 31 09 02 007 001 4.1 0.5 266
+0x1231 29 09 03 008 002 4.7 1.1 267
+0x1231 30 09 04 007 002 4.1 1.1 268
+0x1231 28 09 05 008 003 4.7 1.7 269
+0x1231 27 09 06 007 003 4.1 1.7 270
+0x1231 26 09 07 008 004 4.7 2.3 271
+0x1231 24 09 08 007 004 4.1 2.3 272
+0x1231 25 09 09 008 005 4.7 2.9 273
+0x1231 23 09 10 007 005 4.1 2.9 274
+0x1231 22 09 11 008 006 4.7 3.5 275
+0x1231 20 09 12 007 006 4.1 3.5 276
+0x1231 21 09 13 008 007 4.7 4.1 277
+0x1231 19 09 14 007 007 4.1 4.1 278
+0x1231 18 09 15 008 008 4.7 4.7 279
+0x1231 17 09 16 007 008 4.1 4.7 280
+0x1231 16 09 17 006 001 3.5 0.5 281
+0x1231 15 09 18 005 001 2.9 0.5 282
+0x1231 14 09 19 006 002 3.5 1.1 283
+0x1231 13 09 20 005 002 2.9 1.1 284
+0x1231 12 09 21 006 003 3.5 1.7 285
+0x1231 11 09 22 005 003 2.9 1.7 286
+0x1231 10 09 23 006 004 3.5 2.3 287
+0x1231 09 09 24 005 004 2.9 2.3 288
+0x1231 08 09 25 006 005 3.5 2.9 289
+0x1231 07 09 26 005 005 2.9 2.9 290
+0x1231 06 09 27 006 006 3.5 3.5 291
+0x1231 05 09 28 005 006 2.9 3.5 292
+0x1231 04 09 29 006 007 3.5 4.1 293
+0x1231 03 09 30 005 007 2.9 4.1 294
+0x1231 02 09 31 006 008 3.5 4.7 295
+0x1231 01 09 32 005 008 2.9 4.7 296
+0x1235 32 09 33 004 001 2.3 0.5 298
+0x1235 31 09 34 003 001 1.7 0.5 299
+0x1235 29 09 35 004 002 2.3 1.1 300
+0x1235 30 09 36 003 002 1.7 1.1 301
+0x1235 28 09 37 004 003 2.3 1.7 302
+0x1235 27 09 38 003 003 1.7 1.7 303
+0x1235 26 09 39 004 004 2.3 2.3 304
+0x1235 24 09 40 003 004 1.7 2.3 305
+0x1235 25 09 41 004 005 2.3 2.9 306
+0x1235 23 09 42 003 005 1.7 2.9 307
+0x1235 22 09 43 004 006 2.3 3.5 308
+0x1235 20 09 44 003 006 1.7 3.5 309
+0x1235 21 09 45 004 007 2.3 4.1 310
+0x1235 19 09 46 003 007 1.7 4.1 311
+0x1235 18 09 47 004 008 2.3 4.7 312
+0x1235 17 09 48 003 008 1.7 4.7 313
+0x1235 16 09 49 002 001 1.1 0.5 314
+0x1235 15 09 50 001 001 0.5 0.5 315
+0x1235 14 09 51 002 002 1.1 1.1 316
+0x1235 13 09 52 001 002 0.5 1.1 317
+0x1235 12 09 53 002 003 1.1 1.7 318
+0x1235 11 09 54 001 003 0.5 1.7 319
+0x1235 10 09 55 002 004 1.1 2.3 320
+0x1235 09 09 56 001 004 0.5 2.3 321
+0x1235 08 09 57 002 005 1.1 2.9 322
+0x1235 07 09 58 001 005 0.5 2.9 323
+0x1235 06 09 59 002 006 1.1 3.5 324
+0x1235 05 09 60 001 006 0.5 3.5 325
+0x1235 04 09 61 002 007 1.1 4.1 326
+0x1235 03 09 62 001 007 0.5 4.1 327
+0x1235 02 09 63 002 008 1.1 4.7 328
+0x1235 01 09 64 001 008 0.5 4.7 329
+0x1234 32 12 01 008 009 4.7 5.8 331
+0x1234 31 12 02 007 009 4.1 5.8 332
+0x1234 29 12 03 008 010 4.7 6.4 333
+0x1234 30 12 04 007 010 4.1 6.4 334
+0x1234 28 12 05 008 011 4.7 7.0 335
+0x1234 27 12 06 007 011 4.1 7.0 336
+0x1234 26 12 07 008 012 4.7 7.6 337
+0x1234 24 12 08 007 012 4.1 7.6 338
+0x1234 25 12 09 008 013 4.7 8.2 339
+0x1234 23 12 10 007 013 4.1 8.2 340
+0x1234 22 12 11 008 014 4.7 8.8 341
+0x1234 20 12 12 007 014 4.1 8.8 342
+0x1234 21 12 13 008 015 4.7 9.4 343
+0x1234 19 12 14 007 015 4.1 9.4 344
+0x1234 18 12 15 008 016 4.7 10.0 345
+0x1234 17 12 16 007 016 4.1 10.0 346
+0x1234 16 12 17 006 009 3.5 5.8 347
+0x1234 15 12 18 005 009 2.9 5.8 348
+0x1234 14 12 19 006 010 3.5 6.4 349
+0x1234 13 12 20 005 010 2.9 6.4 350
+0x1234 12 12 21 006 011 3.5 7.0 351
+0x1234 11 12 22 005 011 2.9 7.0 352
+0x1234 10 12 23 006 012 3.5 7.6 353
+0x1234 09 12 24 005 012 2.9 7.6 354
+0x1234 08 12 25 006 013 3.5 8.2 355
+0x1234 07 12 26 005 013 2.9 8.2 356
+0x1234 06 12 27 006 014 3.5 8.8 357
+0x1234 05 12 28 005 014 2.9 8.8 358
+0x1234 04 12 29 006 015 3.5 9.4 359
+0x1234 03 12 30 005 015 2.9 9.4 360
+0x1234 02 12 31 006 016 3.5 10.0 361
+0x1234 01 12 32 005 016 2.9 10.0 362
+0x1225 32 12 33 004 009 2.3 5.8 364
+0x1225 31 12 34 003 009 1.7 5.8 365
+0x1225 29 12 35 004 010 2.3 6.4 366
+0x1225 30 12 36 003 010 1.7 6.4 367
+0x1225 28 12 37 004 011 2.3 7.0 368
+0x1225 27 12 38 003 011 1.7 7.0 369
+0x1225 26 12 39 004 012 2.3 7.6 370
+0x1225 24 12 40 003 012 1.7 7.6 371
+0x1225 25 12 41 004 013 2.3 8.2 372
+0x1225 23 12 42 003 013 1.7 8.2 373
+0x1225 22 12 43 004 014 2.3 8.8 374
+0x1225 20 12 44 003 014 1.7 8.8 375
+0x1225 21 12 45 004 015 2.3 9.4 376
+0x1225 19 12 46 003 015 1.7 9.4 377
+0x1225 18 12 47 004 016 2.3 10.0 378
+0x1225 17 12 48 003 016 1.7 10.0 379
+0x1225 16 12 49 002 009 1.1 5.8 380
+0x1225 15 12 50 001 009 0.5 5.8 381
+0x1225 14 12 51 002 010 1.1 6.4 382
+0x1225 13 12 52 001 010 0.5 6.4 383
+0x1225 12 12 53 002 011 1.1 7.0 384
+0x1225 11 12 54 001 011 0.5 7.0 385
+0x1225 10 12 55 002 012 1.1 7.6 386
+0x1225 09 12 56 001 012 0.5 7.6 387
+0x1225 08 12 57 002 013 1.1 8.2 388
+0x1225 07 12 58 001 013 0.5 8.2 389
+0x1225 06 12 59 002 014 1.1 8.8 390
+0x1225 05 12 60 001 014 0.5 8.8 391
+0x1225 04 12 61 002 015 1.1 9.4 392
+0x1225 03 12 62 001 015 0.5 9.4 393
+0x1225 02 12 63 002 016 1.1 10.0 394
+0x1225 01 12 64 001 016 0.5 10.0 395
--- /dev/null
+#include <stdio.h>\r
+#include <string.h>\r
+#include "TTree.h"\r
+#include "TGo4Analysis.h"\r
+#include "TH2.h"\r
+#include "TH3.h"\r
+#include "base/EventProc.h"\r
+#include "base/Event.h"\r
+#include "hadaq/TdcSubEvent.h"\r
+\r
+#include "GeometryData.C"\r
+\r
+#define FALSE 0\r
+#define TRUE 1\r
+#define MAXTOT 100\r
+\r
+struct TDChit_t \r
+{\r
+ GeometryData_t* GeometryPtr;\r
+ double LeadingEdgeTime;\r
+ double TrailingEdgeTime;\r
+ double ToT;\r
+ unsigned int flag; //bit 0: valid rising edge, bit 1: valid falling edge \r
+};\r
+struct TDChit_sort\r
+// sort hits from first in time to last in time\r
+{ \r
+ inline bool operator() (const TDChit_t hit1, const TDChit_t hit2) {\r
+ return (hit1.LeadingEdgeTime < hit2.LeadingEdgeTime);\r
+ }\r
+};\r
+struct TDChitlist_t\r
+{\r
+ GeometryData_t* GeometryPtr;\r
+ vector <TDChit_t> hitlist;\r
+};\r
+\r
+\r
+\r
+class SecondProc : public base::EventProc {\r
+protected:\r
+ GeometryData *fGeometryData;\r
+ std::string fTdcId; //!< tdc id where channels will be selected\r
+\r
+ // Hitmap, with vector for channels, each entry containing vector with hitlist in channel\r
+ vector <TDChitlist_t> fHitMap;\r
+\r
+// global Histogram pointers\r
+ base::H2handle hDIRICHpositions;\r
+ base::H2handle hPMTpositions;\r
+\r
+ //cut based histograms: arrayindex is cut level\r
+ base::H2handle hHitDist2d[5];\r
+ base::H2handle hHitLeadingEdge2d[5];\r
+ base::H2handle hHitTrailingEdge2d[5];\r
+ base::H2handle hHitToT2d[5];\r
+ base::H2handle hNrHitsperChannel2d[5];\r
+ base::H2handle hHitTypes2d[5];\r
+ \r
+ base::H1handle hHitDist1d[5];\r
+ base::H1handle hHitLeadingEdge1d[5];\r
+ base::H1handle hHitTrailingEdge1d[5];\r
+ base::H1handle hHitToT1d[5];\r
+ base::H1handle hNrHitsperChannel1d[5];\r
+ base::H1handle hHitTypes1d[5];\r
+ \r
+ base::H1handle hHitMultiplicity[5];\r
+ base::H1handle hHitDist2d_se[5][10];\r
+\r
+ TH3* hTimeDiff;\r
+ \r
+ int fSingleEventIndex;\r
+ \r
+public:\r
+ \r
+ SecondProc(const char* procname, const char* _tdcid);\r
+ virtual void CreateBranch(TTree* t);\r
+ virtual bool Process(base::Event* ev);\r
+ void FillHitMap(base::EventsMap &map, int &NrHits);\r
+\r
+ void FillHit(int cutlevel, int hitindex, int hitlistindex);\r
+\r
+};\r
+\r
+\r
+\r
+SecondProc::SecondProc(const char* procname, const char* _tdcid) :\r
+ base::EventProc(procname),\r
+ fTdcId(_tdcid)\r
+{\r
+ printf("Initialize Geometry:\n");\r
+ fGeometryData=new GeometryData("geometry.dat");\r
+ printf("FirstGlobalPixel: %i LastGlobalPixel: %i \n",\r
+ fGeometryData->GetFirstGlobalPixel(),fGeometryData->GetLastGlobalPixel()); \r
+ fHitMap.resize(fGeometryData->GetLastGlobalPixel()+1);\r
+ \r
+ // Booking all Histograms for each cutlevel\r
+ hDIRICHpositions=MakeH2("DiRICHpositions","DIRICHpositions",60,0.5,60.5,40,0.5,40.5,"Xbin");\r
+ hPMTpositions=MakeH2("PMTpositions","PMTpositions",60,0.5,60.5,60,0.5,60.5,"Xbin");\r
+ \r
+ for (int cutlevel=0; cutlevel<5; cutlevel++) {\r
+ TString dir=Form("cutlevel%i/",cutlevel);\r
+ TString cl=Form("_cl%i",cutlevel);\r
+ printf("Booking histos for path %s \n",dir.Data());\r
+ // histos versus channel\r
+ hHitDist2d[cutlevel]=MakeH2(dir+"HitDist2d"+cl,"HitDist2d",60,0.5,60.5,40,0.5,40.5,"Xpos(Pixel)");\r
+ hHitLeadingEdge2d[cutlevel]=MakeH2(dir+"HitLeadingEdge2d"+cl,"HitLeadingEdge2d",800,0.5,800.5,1000,-1100,1100,"ch");\r
+ hHitTrailingEdge2d[cutlevel]=MakeH2(dir+"HitTrailingEdge2d"+cl,"HitTrailingEdge2d",800,0.5,800.5,1000,-1100,1100,"ch");\r
+ hHitToT2d[cutlevel]=MakeH2(dir+"HitToT2d"+cl,"HitTot2d",800,0.5,800.5,400,10.,50.,"ch");\r
+ hNrHitsperChannel2d[cutlevel]=MakeH1(dir+"NrHitsperChannel2d"+cl,"NrHitsperChannel2d",100,-0.5,99.5,"ch");\r
+ hHitTypes2d[cutlevel]=MakeH2(dir+"HitTypes2d"+cl,"HitTypes2d",800,0.5,800.5,5, 0.,5.);\r
+\r
+ // histos for all channels\r
+ hHitDist1d[cutlevel]=MakeH1(dir+"HitDist1d"+cl,"HitDist1d",800,0.5,800.5,"ch");\r
+ hHitLeadingEdge1d[cutlevel]=MakeH1(dir+"HitLeadingEdge1d"+cl,"HitLeadingEdge1d",1000,-1100,1100,"ch");\r
+ hHitTrailingEdge1d[cutlevel]=MakeH1(dir+"HitTrailingEdge1d"+cl,"HitTrailingEdge1d",1000,-1100,1100,"ch");\r
+ hHitToT1d[cutlevel]=MakeH1(dir+"HitToT1d"+cl,"HitTot1d",400,10.,50.,"ch");\r
+ hNrHitsperChannel1d[cutlevel]=MakeH1(dir+"NrHitsperChannel1d"+cl,"NrHitsperChannel1d",100,-0.5,99.5,"ch");\r
+ hHitTypes1d[cutlevel]=MakeH1(dir+"HitTypes1d"+cl,"HitTypes1d",5, 0.,5.);\r
+\r
+ hHitMultiplicity[cutlevel]=MakeH1(dir+"HitMultiplicity"+cl,"HitMultiplicity",20,-0.5,19.5);\r
+\r
+ if (cutlevel==0) {\r
+ hTimeDiff = new TH3F(dir+"TimeDiff"+cl,"Timediff",800,0.5,800.5,800,0.5,800.5,200,-5.,5.);\r
+ AddHistogramm(hTimeDiff);\r
+ \r
+ }\r
+ // single event histos\r
+ for (int i=0; i<10; i++) {\r
+ hHitDist2d_se[cutlevel][i]=MakeH2(dir+Form("se/HitDist2dseh%i",i)+cl,"HitDist2d",24,0.5,24.5,40,0.5,40.5,"Xpos(Pixel)");\r
+ }\r
+ }\r
+\r
+ fSingleEventIndex=0;\r
+}\r
+\r
+\r
+\r
+void SecondProc::CreateBranch(TTree* t)\r
+{\r
+ // only called when tree is created in first.C\r
+ // one can ignore\r
+ // t->Branch(GetName(), fHits, "hits[8]/D");\r
+}\r
+\r
+\r
+\r
+void SecondProc::FillHitMap(base::EventsMap &map, int &NrHits)\r
+{\r
+ NrHits=0;\r
+ \r
+ for (base::EventsMap::iterator iter = map.begin(); iter != map.end(); iter++)\r
+ {\r
+ std::string eventname = iter->first;\r
+ base::SubEvent* subevent = iter->second;\r
+ \r
+ // check: if DiRICH TDC subevent\r
+ if ((eventname.size()!=8) || (eventname.substr(0,4)!="TDC_"))\r
+ continue;\r
+ \r
+ // check: if subevent contains at least 1 TDC hit\r
+ hadaq::TdcSubEventFloat* TDCsubevent = dynamic_cast<hadaq::TdcSubEventFloat*> (subevent);\r
+ if (TDCsubevent==0) \r
+ continue;\r
+ if (TDCsubevent->Size()==0) \r
+ continue;\r
+ \r
+ // Get TDC ID\r
+ int TDCid=strtoul((eventname.substr(4,4)).c_str(),NULL,16);\r
+ \r
+ // Loop over all edges in this TDC subevent\r
+ for (unsigned ihit=0;ihit<TDCsubevent->Size();ihit++) {\r
+ const hadaq::MessageFloat& TDCmsg = TDCsubevent->msg(ihit);\r
+ unsigned TDCch = TDCmsg.getCh();\r
+ unsigned TDCedge = TDCmsg.getEdge(); // 0 - rising, 1 - falling\r
+ double TDCtm = TDCmsg.stamp; // time relative to ch0\r
+ \r
+ // printf("Hit in TDC %x ch %i \n",TDCid,TDCch);\r
+ \r
+ // Check if this channel is defined in geometry decoding table\r
+ GeometryData_t* GeometryData=fGeometryData->GetGeometry(TDCid,TDCch);\r
+ if (GeometryData==0)\r
+ continue;\r
+ \r
+ \r
+ // Now we have a valid hit. Lets try to merge it into the hitmap\r
+ TDChitlist_t &existinghitlist=fHitMap[GeometryData->GlobalPixel];\r
+ if (existinghitlist.GeometryPtr==0) \r
+ existinghitlist.GeometryPtr=GeometryData;\r
+ \r
+ // printf("We have a new hit: \n");\r
+ // GeometryData->Print();\r
+ bool done=FALSE;\r
+ for (unsigned int ientry=0; ientry<existinghitlist.hitlist.size(); ientry++) {\r
+ //check, if new hit matches to existing hit\r
+ if ((TDCedge==0) && \r
+ (existinghitlist.hitlist[ientry].flag==0b10) &&\r
+ (fabs(TDCtm-existinghitlist.hitlist[ientry].TrailingEdgeTime)<MAXTOT)) {\r
+ \r
+ existinghitlist.hitlist[ientry].LeadingEdgeTime=TDCtm; \r
+ existinghitlist.hitlist[ientry].ToT=\r
+ existinghitlist.hitlist[ientry].TrailingEdgeTime-\r
+ existinghitlist.hitlist[ientry].LeadingEdgeTime;\r
+ existinghitlist.hitlist[ientry].flag |= 0b01;\r
+ //printf("Added to matching trailing edge \n");\r
+ done=TRUE;\r
+ break;\r
+ }\r
+ else if ((TDCedge==1) && \r
+ (existinghitlist.hitlist[ientry].flag==0b01) &&\r
+ (fabs(TDCtm-existinghitlist.hitlist[ientry].LeadingEdgeTime)<MAXTOT)) {\r
+ \r
+ existinghitlist.hitlist[ientry].TrailingEdgeTime=TDCtm; \r
+ existinghitlist.hitlist[ientry].ToT=\r
+ existinghitlist.hitlist[ientry].TrailingEdgeTime-\r
+ existinghitlist.hitlist[ientry].LeadingEdgeTime;\r
+ existinghitlist.hitlist[ientry].flag |= 0b10;\r
+ \r
+ //printf("Added to matching leading edge \n");\r
+ done=TRUE;\r
+ break;\r
+ } \r
+ }\r
+ \r
+ if (done==FALSE) { \r
+ // No matching hit found, add this edge as new hit to the hitmap \r
+ TDChit_t newhit; \r
+ if (TDCedge==0) {\r
+ newhit.LeadingEdgeTime=TDCtm;\r
+ newhit.TrailingEdgeTime=0.;\r
+ newhit.flag=0b01;\r
+ } else if (TDCedge==1) {\r
+ newhit.TrailingEdgeTime=TDCtm;\r
+ newhit.LeadingEdgeTime=0.;\r
+ newhit.flag=0b10;\r
+ }\r
+ newhit.ToT=0;\r
+ existinghitlist.hitlist.push_back(newhit);\r
+ NrHits++;\r
+ // printf("Added new hit to hitlist\n");\r
+ }\r
+ \r
+ }\r
+ }\r
+ \r
+ // Sort hits in hitlist by time:\r
+ for (unsigned int ichannel=1; ichannel<=fGeometryData->GetLastGlobalPixel(); ichannel++)\r
+ if (fHitMap[ichannel].hitlist.size()>1) {\r
+ std::sort(fHitMap[ichannel].hitlist.begin(),fHitMap[ichannel].hitlist.end(),TDChit_sort());\r
+ }\r
+}\r
+\r
+void SecondProc::FillHit(int cutlevel, int hitindex, int hitlistindex)\r
+{\r
+ \r
+ FillH1(hHitDist1d[cutlevel],fHitMap[hitindex].GeometryPtr->GlobalPixel);\r
+ FillH1(hHitLeadingEdge1d[cutlevel],fHitMap[hitindex].hitlist[hitlistindex].LeadingEdgeTime);\r
+ FillH1(hHitTrailingEdge1d[cutlevel],fHitMap[hitindex].hitlist[hitlistindex].TrailingEdgeTime);\r
+ FillH1(hHitToT1d[cutlevel],fHitMap[hitindex].hitlist[hitlistindex].ToT);\r
+ FillH1(hNrHitsperChannel1d[cutlevel],fHitMap[hitindex].hitlist.size());\r
+ FillH2(hHitDist2d[cutlevel],fHitMap[hitindex].GeometryPtr->PosXint,fHitMap[hitindex].GeometryPtr->PosYint);\r
+ FillH2(hHitLeadingEdge2d[cutlevel],fHitMap[hitindex].GeometryPtr->GlobalPixel,\r
+ fHitMap[hitindex].hitlist[hitlistindex].LeadingEdgeTime);\r
+ FillH2(hHitTrailingEdge2d[cutlevel],fHitMap[hitindex].GeometryPtr->GlobalPixel,\r
+ fHitMap[hitindex].hitlist[hitlistindex].TrailingEdgeTime);\r
+ FillH2(hHitToT2d[cutlevel],fHitMap[hitindex].GeometryPtr->GlobalPixel,\r
+ fHitMap[hitindex].hitlist[hitlistindex].ToT);\r
+ FillH2(hNrHitsperChannel2d[cutlevel],fHitMap[hitindex].GeometryPtr->GlobalPixel,\r
+ fHitMap[hitindex].hitlist.size());\r
+ FillH2(hHitDist2d_se[cutlevel][fSingleEventIndex],\r
+ fHitMap[hitindex].GeometryPtr->PosXint,fHitMap[hitindex].GeometryPtr->PosYint);\r
+}\r
+\r
+\r
+bool SecondProc::Process(base::Event* ev)\r
+{\r
+\r
+ // return true;\r
+ \r
+ fHitMap.clear();\r
+ fHitMap.resize(fGeometryData->GetLastGlobalPixel()+1);\r
+ \r
+ base::EventsMap &map = ev->GetEventsMap();\r
+ int NrHits=0;\r
+ FillHitMap(map,NrHits);\r
+\r
+ //Reset all actual single event histos\r
+ for (int k=0; k<5; k++)\r
+ ((TH2*)hHitDist2d_se[k][fSingleEventIndex])->Reset();\r
+ \r
+ // preliminary, probably a bit slow, but should work:\r
+ // loop over all possible channels, and all hits per each channel\r
+ for (unsigned int i=1; i<fGeometryData->GetLastGlobalPixel()+1; i++){\r
+ for (unsigned int j=0; j<fHitMap[i].hitlist.size(); j++) {\r
+\r
+ \r
+ int cutlevel=-1;\r
+ //condition cutlevel 0\r
+ if (1) {\r
+ FillHit(0,i,j);\r
+ cutlevel=0;\r
+ }\r
+\r
+ //condition cutlevel 1\r
+ if ( (cutlevel==0) &&\r
+ (fabs(fHitMap[i].hitlist[j].LeadingEdgeTime-(-400))<100)) {\r
+ FillHit(1,i,j); \r
+ cutlevel=1;\r
+ }\r
+\r
+ //condition cutlevel 2\r
+ if ((cutlevel==1) &&\r
+ ((fHitMap[i].hitlist[j].flag&0b11) == 0b11)) {\r
+ FillHit(2,i,j);\r
+ cutlevel=2;\r
+ }\r
+\r
+ if (++fSingleEventIndex > 9) fSingleEventIndex=0;\r
+ }\r
+ }\r
+\r
+ \r
+ return true;\r
+}\r
+\r
+\r
+\r
+\r
+void second()\r
+{\r
+ //new SecondProc("A", "TDC_1133");\r
+ //new SecondProc("A", "TDC_1580");\r
+ new SecondProc("second", "TDC_1225");\r
+}\r
--- /dev/null
+
+# DO NOT DELETE
+
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TTree.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TBranch.h
+./second_C.so: /usr/include/c++/4.8/memory
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TNamed.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TObject.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/RConfigure.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/Rtypes.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/RtypesCore.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/RConfig.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/RVersion.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/DllImport.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/snprintf.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/strlcpy.h
+./second_C.so: /usr/include/c++/4.8/atomic /usr/include/c++/4.8/typeinfo
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TGenericClassInfo.h
+./second_C.so: /usr/include/c++/4.8/vector
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TSchemaHelper.h
+./second_C.so: /usr/include/c++/4.8/string
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TIsAProxy.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TVirtualIsAProxy.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TStorage.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TVersionCheck.h
+./second_C.so: /usr/include/c++/4.8/iosfwd
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TString.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TMathBase.h
+./second_C.so: /usr/include/c++/4.8/cstdlib /usr/include/c++/4.8/cmath
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/RStringView.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/RWrap_libcpp_string_view.h
+./second_C.so: /usr/include/c++/4.8/algorithm /usr/include/c++/4.8/iterator
+./second_C.so: /usr/include/c++/4.8/ostream /usr/include/c++/4.8/iomanip
+./second_C.so: /usr/include/c++/4.8/stdexcept
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/libcpp_string_view.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TObjArray.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TSeqCollection.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TCollection.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TIterator.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TAttFill.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TDataType.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TDictionary.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/ESTLType.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TAttLine.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TAttMarker.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TArrayD.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TArray.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TArrayI.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TBuffer.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TClass.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TObjString.h
+./second_C.so: /usr/include/c++/4.8/map /usr/include/c++/4.8/set
+./second_C.so: /usr/include/c++/4.8/unordered_set
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/ThreadLocalStorage.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TVirtualTreePlayer.h
+./second_C.so: /usr/include/c++/4.8/limits
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4Analysis.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4AnalysisImp.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4CommandReceiver.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TROOT.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TDirectory.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TList.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TDatime.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TUUID.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TCutG.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TGraph.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TVectorFfwd.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TVectorDfwd.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TFitResultPtr.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4Log.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4UserException.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4RuntimeException.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4Exception.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4AnalysisStep.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4EventProcessor.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4EventSource.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/Go4EventServer.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4EventFactory.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4EventElement.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4EventStore.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4EventProcessorParameter.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4Parameter.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/Riostream.h
+./second_C.so: /usr/include/c++/4.8/fstream /usr/include/c++/4.8/iostream
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4EventStoreParameter.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4EventSourceParameter.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/Go4EventServerTypes.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4MbsEvent.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4EventHeader10.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4GSIEventHeader.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/s_bufhe_swap.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/s_bufhe.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/typedefs.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/s_filhe_swap.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/s_filhe.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4MbsSubEvent.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4SubEventHeader10.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4MbsFile.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4MbsSource.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4MbsStream.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4MbsTransport.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4MbsEventServer.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4RevServ.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4MbsRandom.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4MbsFileParameter.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4MbsSourceParameter.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4MbsStreamParameter.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4MbsTransportParameter.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4MbsEventServerParameter.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4RevServParameter.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4MbsRandomParameter.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4FileSource.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4FileStore.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4BackStore.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4TreeSource.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4TreeStore.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4FileSourceParameter.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4FileStoreParameter.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4BackStoreParameter.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4TreeSourceParameter.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4TreeStoreParameter.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4UserSourceParameter.h
+./second_C.so: /home/hadaq/trbsoft/trb3/go4/include/TGo4UserStoreParameter.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TH2.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TH1.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TAxis.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TAttAxis.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TArrayC.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TArrayS.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TArrayF.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/Foption.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TMatrixFBasefwd.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TMatrixDBasefwd.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TH3.h
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/TAtt3D.h
+./second_C.so: /home/hadaq/trbsoft/trb3/stream/include/base/EventProc.h
+./second_C.so: /home/hadaq/trbsoft/trb3/stream/include/base/Processor.h
+./second_C.so: /home/hadaq/trbsoft/trb3/stream/include/base/ProcMgr.h
+./second_C.so: /home/hadaq/trbsoft/trb3/stream/include/base/defines.h
+./second_C.so: /home/hadaq/trbsoft/trb3/stream/include/base/Buffer.h
+./second_C.so: /home/hadaq/trbsoft/trb3/stream/include/base/TimeStamp.h
+./second_C.so: /home/hadaq/trbsoft/trb3/stream/include/base/Markers.h
+./second_C.so: /home/hadaq/trbsoft/trb3/stream/include/base/Queue.h
+./second_C.so: /home/hadaq/trbsoft/trb3/stream/include/base/Event.h
+./second_C.so: /home/hadaq/trbsoft/trb3/stream/include/base/SubEvent.h
+./second_C.so: /usr/include/c++/4.8/exception
+./second_C.so: /home/hadaq/trbsoft/trb3/stream/include/hadaq/TdcSubEvent.h
+./second_C.so: /home/hadaq/trbsoft/trb3/stream/include/hadaq/TdcMessage.h
+./second_C.so: GeometryData.C
+./second_C.so: /home/hadaq/trbsoft/trb3/rootbuild/include/RVersion.h /home/hadaq/trbsoft/trb3/rootbuild/include/RConfig.h /home/hadaq/trbsoft/trb3/rootbuild/include/TClass.h /home/hadaq/trbsoft/trb3/rootbuild/include/TDictAttributeMap.h /home/hadaq/trbsoft/trb3/rootbuild/include/TInterpreter.h /home/hadaq/trbsoft/trb3/rootbuild/include/TROOT.h /home/hadaq/trbsoft/trb3/rootbuild/include/TBuffer.h /home/hadaq/trbsoft/trb3/rootbuild/include/TMemberInspector.h /home/hadaq/trbsoft/trb3/rootbuild/include/TError.h /home/hadaq/trbsoft/trb3/rootbuild/include/RtypesImp.h /home/hadaq/trbsoft/trb3/rootbuild/include/TIsAProxy.h /home/hadaq/trbsoft/trb3/rootbuild/include/TFileMergeInfo.h /home/hadaq/trbsoft/trb3/rootbuild/include/TCollectionProxyInfo.h /home/hadaq/trbsoft/trb3/rootbuild/bin/rootcling
+second_C__ROOTBUILDVERSION= 6.10/08
--- /dev/null
+ch qrising stat fmin fmax qfalling stat fmin fmax ToT Dev
+ 0 1.00 116767 16 487 1.00 116767 16 487 0.000 0.000
+ 1 -1.00 0 21 499 -1.00 0 21 499 0.000 0.000
+ 2 1.00 583835 16 484 1.00 583835 16 484 0.000 0.000
+ 3 1.00 583835 16 485 1.00 583835 16 485 0.000 0.000
+ 4 1.00 583835 16 485 1.00 583835 16 485 0.000 0.000
+ 5 1.00 583835 16 486 1.00 583835 16 486 0.000 0.000
+ 6 1.00 583835 16 476 1.00 583835 16 476 0.000 0.000
+ 7 1.00 583835 17 476 1.00 583835 17 476 0.000 0.000
+ 8 1.00 583835 16 473 1.00 583835 16 473 0.000 0.000
+ 9 1.00 583835 16 472 1.00 583835 16 472 0.000 0.000
+10 1.00 583835 17 476 1.00 583835 17 476 0.000 0.000
+11 1.00 583835 16 474 1.00 583835 16 474 0.000 0.000
+12 1.00 583835 16 476 1.00 583835 16 476 0.000 0.000
+13 1.00 583835 16 484 1.00 583835 16 484 0.000 0.000
+14 1.00 583835 16 487 1.00 583835 16 487 0.000 0.000
+15 1.00 583835 16 485 1.00 583835 16 485 0.000 0.000
+16 1.00 583835 16 488 1.00 583835 16 488 0.000 0.000
+17 -1.00 0 21 499 -1.00 0 21 499 0.000 0.000
+18 -1.00 0 21 499 -1.00 0 21 499 0.000 0.000
+19 -1.00 0 21 499 -1.00 0 21 499 0.000 0.000
+20 -1.00 0 21 499 -1.00 0 21 499 0.000 0.000
+21 -1.00 0 21 499 -1.00 0 21 499 0.000 0.000
+22 -1.00 0 21 499 -1.00 0 21 499 0.000 0.000
+23 -1.00 0 21 499 -1.00 0 21 499 0.000 0.000
+24 -1.00 0 21 499 -1.00 0 21 499 0.000 0.000
+25 -1.00 0 21 499 -1.00 0 21 499 0.000 0.000
+26 -1.00 0 21 499 -1.00 0 21 499 0.000 0.000
+27 -1.00 0 21 499 -1.00 0 21 499 0.000 0.000
+28 -1.00 0 21 499 -1.00 0 21 499 0.000 0.000
+29 -1.00 0 21 499 -1.00 0 21 499 0.000 0.000
+30 -1.00 0 21 499 -1.00 0 21 499 0.000 0.000
+31 -1.00 0 21 499 -1.00 0 21 499 0.000 0.000
+32 -1.00 0 21 499 -1.00 0 21 499 0.000 0.000
--- /dev/null
+// Automatically generated startup script
+// Do not change it!
+
+go4->SetMainWindowState(4,"000000ff00000000fd00000002000000000000015c0000032dfc0200000001fb0000001600420072006f00770073006500720044006f0063006b01000000550000032d0000007900ffffff0000000300000780000000d3fc0100000001fc00000000000007800000046b00fffffffa000000000200000003fb00000016004c006f00670049006e0066006f0044006f0063006b0100000000ffffffff0000005200fffffffb0000001a004d006200730056006900650077006500720044006f0063006b0100000000ffffffff0000006400fffffffb0000001e0044004100420043004d006f006e00690074006f00720044006f0063006b0000000279000000ce00000000000000000000061e0000032d00000004000000040000000800000008fc0000000800000002000000050000001600460069006c00650054006f006f006c0042006100720100000000ffffffff0000000000000000000000160047006f00340054006f006f006c00730042006100720100000106ffffffff00000000000000000000001e0041006e0061006c00790073006900730054006f006f006c004200610072010000024affffffff00000000000000000000001a0044006900760069006400650050006100640044006f0063006b0000000395000000e40000000000000000000000240048006900730044007200610077004f007000740069006f006e00730044006f0063006b010000036f000004110000000000000000000000020000000000000002000000030000002400420072006f0077007300650072004f007000740069006f006e00730044006f0063006b01000000000000010200000000000000000000001e0044007200610077004f007000740069006f006e00730044006f0063006b0100000102ffffffff000000000000000000000020005300630061006c0065004f007000740069006f006e00730044006f0063006b01000003b9000003e400000000000000000000000200000001000000180047006f0034005300740079006c00650044006f0063006b0000000000000004b100000000000000000000000200000000000000030000000000000003000000010000001e0043006f006d006d0061006e0064004c0069006e00650044006f0063006b0000000000000004b1000000000000000000000003000000010000001c00540072006500650056006900650077006500720044006f0063006b0000000000000004b10000000000000000");
+go4->SetMainWindowGeometry(4,"01d9d0cb0001000000000000000000000000077f000004960000000000000000fffffffefffffffe000000000200");
+
+go4->LaunchAnalysis("trb3_test", ".", "libGo4UserAnalysis", "localhost", Go4_sh, Go4_qt, Go4_lib);
+go4->WaitAnalysis(300);
+
+// configuration of analysis
+go4->AnalysisAutoSave("Go4AutoSave.root", 500, 5, kTRUE, kFALSE);
+go4->AnalysisConfigName("Go4AnalysisPrefs.root");
+
+// step Analysis
+go4->ConfigStep("Analysis", kTRUE, kTRUE, kFALSE);
+go4->StepMbsStreamSource("Analysis", "localhost:6789", 1);
+go4->StepFileStore("Analysis", "NoOutputDefined", kTRUE, 32000, 99, 5, 10000);
+
+go4->SubmitAnalysisConfig(20);
+
+go4->SetAnalysisConfigMode(-1);
+go4->SetAnalysisTerminalMode(0);
+
+go4->StartAnalysis();
+
+// in some analysis one requires to wait several seconds before new histograms appears
+// go4->Wait(1);
+go4->RefreshNamesList();
+
+TGo4Picture *pic1 = new TGo4Picture("pic1", "temporary object to setup viewpanel");
+pic1->SetCrosshair(false);
+pic1->SetRangeX(0.5, 99.5);
+pic1->SetRangeY(0, 916936);
+pic1->SetLineAtt(1, 1, 1, -1);
+pic1->SetFillAtt(10, 1001, -1);
+pic1->SetHisStats(true);
+pic1->SetStatsAttr(0.58, 0.335, 0.98, 0.935, 1000111111, "6.4g", 0, "5.4g");
+pic1->SetHisTitle(true);
+pic1->SetTitleAttr(0.15, 0.931657, 0.85, 0.995);
+pic1->SetTitleTime(true);
+pic1->SetTitleDate(true);
+pic1->SetTitleItem(true);
+pic1->SetAutoScale(true);
+pic1->SetXYRatioOne(false);
+pic1->SetPadAtt(0, 2, 0, 0, 30, 30, 0, 0);
+pic1->SetXAxisAttTime(0, "%H:%M:%S%F1995-01-01 00:00:00s0", -1);
+pic1->AddObjName("Analysis/Histograms/A/A_NumHits", "HIST");
+pic1->SetLineAtt(602, 1, 1, 0);
+pic1->SetFillAtt(0, 1001, 0);
+pic1->SetMarkerAtt(1, 1, 1, 0);
+pic1->SetAxisAtt(0, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic1->SetAxisAtt(1, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+pic1->SetAxisAtt(2, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+go4->StartViewPanel(784, 407, 782, 406, Go4_normal, pic1);
+delete pic1;
+
+TGo4Picture *pic2 = new TGo4Picture("pic2", "temporary object to setup viewpanel");
+pic2->SetCrosshair(false);
+pic2->SetRangeX(34.14, 37.316);
+pic2->SetRangeY(0, 23862.3);
+pic2->SetLineAtt(1, 1, 1, -1);
+pic2->SetFillAtt(10, 1001, -1);
+pic2->SetHisStats(true);
+pic2->SetStatsAttr(0.58, 0.335, 0.98, 0.935, 1000111111, "6.4g", 0, "5.4g");
+pic2->SetHisTitle(true);
+pic2->SetTitleAttr(0.15, 0.931657, 0.85, 0.995);
+pic2->SetTitleTime(true);
+pic2->SetTitleDate(true);
+pic2->SetTitleItem(true);
+pic2->SetAutoScale(true);
+pic2->SetXYRatioOne(false);
+pic2->SetPadAtt(0, 2, 0, 0, 30, 30, 0, 0);
+pic2->SetXAxisAttTime(0, "%H:%M:%S%F1995-01-01 00:00:00s0", -1);
+pic2->AddObjName("Analysis/Histograms/A/A_ToT1", "HIST");
+pic2->SetLineAtt(602, 1, 1, 0);
+pic2->SetFillAtt(0, 1001, 0);
+pic2->SetMarkerAtt(1, 1, 1, 0);
+pic2->SetAxisAtt(0, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic2->SetAxisAtt(1, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+pic2->SetAxisAtt(2, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+go4->StartViewPanel(0, 407, 784, 406, Go4_normal, pic2);
+delete pic2;
+
+TGo4Picture *pic3 = new TGo4Picture("pic3", "temporary object to setup viewpanel");
+pic3->SetCrosshair(false);
+pic3->SetRangeX(-2.575, -1.415);
+pic3->SetRangeY(0, 21221.5);
+pic3->SetLineAtt(1, 1, 1, -1);
+pic3->SetFillAtt(10, 1001, -1);
+pic3->SetHisStats(true);
+pic3->SetStatsAttr(0.58, 0.335, 0.98, 0.935, 1000111111, "6.4g", 0, "5.4g");
+pic3->SetHisTitle(true);
+pic3->SetTitleAttr(0.15, 0.931657, 0.85, 0.995);
+pic3->SetTitleTime(true);
+pic3->SetTitleDate(true);
+pic3->SetTitleItem(true);
+pic3->SetAutoScale(true);
+pic3->SetXYRatioOne(false);
+pic3->SetPadAtt(0, 2, 0, 0, 30, 30, 0, 0);
+pic3->SetXAxisAttTime(0, "%H:%M:%S%F1995-01-01 00:00:00s0", -1);
+pic3->AddObjName("Analysis/Histograms/A/A_LED_diff1", "HIST");
+pic3->SetLineAtt(602, 1, 1, 0);
+pic3->SetFillAtt(0, 1001, 0);
+pic3->SetMarkerAtt(1, 1, 1, 0);
+pic3->SetAxisAtt(0, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic3->SetAxisAtt(1, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+pic3->SetAxisAtt(2, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+go4->StartViewPanel(784, 0, 782, 407, Go4_normal, pic3);
+delete pic3;
+
+TGo4Picture *pic4 = new TGo4Picture("pic4", "temporary object to setup viewpanel");
+pic4->SetCrosshair(false);
+pic4->SetRangeX(34.504, 37.112);
+pic4->SetRangeY(-2.572, -0.916);
+pic4->SetRangeZ(0, 4028.85);
+pic4->SetLineAtt(1, 1, 1, -1);
+pic4->SetFillAtt(10, 1001, -1);
+pic4->SetHisStats(true);
+pic4->SetStatsAttr(0.687419, 0.475921, 0.989624, 0.915014, 1000111111, "6.4g", 0, "5.4g");
+pic4->SetHisTitle(true);
+pic4->SetTitleAttr(0.15, 0.931657, 0.85, 0.995);
+pic4->SetTitleTime(true);
+pic4->SetTitleDate(true);
+pic4->SetTitleItem(true);
+pic4->SetAutoScale(true);
+pic4->SetXYRatioOne(false);
+pic4->SetPadAtt(0, 2, 0, 0, 30, 30, 0, 0);
+pic4->SetXAxisAttTime(0, "%H:%M:%S%F1995-01-01 00:00:00s0", -1);
+pic4->AddObjName("Analysis/Histograms/A/A_ToT_vs_LED", "COL");
+pic4->SetLineAtt(602, 1, 1, 0);
+pic4->SetFillAtt(0, 1001, 0);
+pic4->SetMarkerAtt(1, 1, 1, 0);
+pic4->SetAxisAtt(0, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic4->SetAxisAtt(1, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic4->SetAxisAtt(2, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+go4->StartViewPanel(0, 0, 784, 407, Go4_normal, pic4);
+delete pic4;
+
+go4->StartMonitoring(2);
-
-
-
!Register table
-# Type # C0 # C1 # C2 # C3 # C4 # C5 # C6 # C7 # C8 # C9 #
-###################################################################################################
- 0 0x8300 0x8301 0x8302 0x8303 0x8304 0x8305 0x8306 0x8307 0x8308 0x830b
+# Type # C0 # C1 # C2 # C3 # C4 # C5 # C6 # C7 # C8 # C9
+##################################################################################################
+ 0 0x8300 0x8305 0x8307 0x8308 0x830b
+# 0 0x8300 0x8305 0x8307 0x8308 0x830b 0x830c
+# 1 0x8301 0x8302 0x8304 0x8309 0x830c 0x830e 0x830f 0x8310
+
+!Value table
+#
+# SubEvtId UseGbE MultiQueue Trig. Num. InclTrgType SuEvSize
+# Hub # Type # C0 # C1 # C2 # C3 # C4 C5
+##################################################################################################
+# 0xc001 0 0xc001 1 0 0xffffff 1 0x2000
+## 0xc002 0 0xc002 1 0 0xffffff 1
+ 0xc000 0 0xc001 1 0 0xffffff 1
+# 0x8113 0 0x8001 1 0 0xffffff 1
+# 0x8158 0 0x8002 1 0 0xffffff 1
-#old register set
-# 17 0xc100 0xc101 0xc102 0xc103 0xc104 0xc105 0xc106 0xc107 0xc108
-!Value table
-# SubEvtId SubEvtDec QueDec PackSize FrameSize UseGbE UseTrbNet MultiQueue Trig. Num. MinEvtSize
-# Hub # Type # C0 # C1 # C2 # C3 # C4 # C5 # C6 # C7 # C8 # C9 #
-###################################################################################################################################################
- 0xc002 0 0xc002 0x00020001 0x00030062 0xFDE8 0x578 1 0 1 0xffffff 0x7
+#These values to not need to be written - for completeness only
+# SubEvtDec QueDec FrameSize RX enable SubEvtSize Evt/Queue Q
+# Hub # Type # C0 # C1 # C2 # C3 # C4 # C5 #
+##################################################################################################
+# 0xff7f 1 0x00020001 0x00030062 0x578 1 59800 200
--- /dev/null
+!Register table
+# Type # C0 # C1 # C2 # C3 # C4 # C5 # C6 # C7 # C8 # C9
+##################################################################################################
+ 0 0x8300 0x8305 0x8307 0x8308 0x830b
+# 0 0x8300 0x8305 0x8307 0x8308 0x830b 0x830c
+# 1 0x8301 0x8302 0x8304 0x8309 0x830c 0x830e 0x830f 0x8310
+
+!Value table
+#
+# SubEvtId UseGbE MultiQueue Trig. Num. InclTrgType SuEvSize
+# Hub # Type # C0 # C1 # C2 # C3 # C4 C5
+##################################################################################################
+# 0xc001 0 0xc001 1 0 0xffffff 1 0x2000
+## 0xc002 0 0xc002 1 0 0xffffff 1
+ 0xc000 0 0xc000 1 0 0xffffff 1
+# 0x8113 0 0x8001 1 0 0xffffff 1
+# 0x8158 0 0x8002 1 0 0xffffff 1
+
+
+
+
+
+#These values to not need to be written - for completeness only
+# SubEvtDec QueDec FrameSize RX enable SubEvtSize Evt/Queue Q
+# Hub # Type # C0 # C1 # C2 # C3 # C4 # C5 #
+##################################################################################################
+# 0xff7f 1 0x00020001 0x00030062 0x578 1 59800 200
-###########################################################################################
+############################################################################################
+##Eventbuilders:
+## EB 0: hadespc001 eth1 ports 50000 - 50099
+#
+#!Register table
+## Type # C0 # C1 # C2 # C3 # C4 # C5 # C6 # C7 # C8 #
+############################################################################################
+##new memory locations
+# 0 0x8100 0x8101 0x8102 0x8103 0x8104 0x8105 0x8106 0x8107 0x8108
+# 1 0x8110 0x8111 0x8112 0x8113 0x8114 0x8115 0x8116 0x8117 0x8118
+# 2 0x8120 0x8121 0x8122 0x8123 0x8124 0x8125 0x8126 0x8127 0x8128
+# 3 0x8130 0x8131 0x8132 0x8133 0x8134 0x8135 0x8136 0x8137 0x8138
+# 4 0x8140 0x8141 0x8142 0x8143 0x8144 0x8145 0x8146 0x8147 0x8148
+# 5 0x8150 0x8151 0x8152 0x8153 0x8154 0x8155 0x8156 0x8157 0x8158
+# 6 0x8160 0x8161 0x8162 0x8163 0x8164 0x8165 0x8166 0x8167 0x8168
+# 7 0x8170 0x8171 0x8172 0x8173 0x8174 0x8175 0x8176 0x8177 0x8178
+# 8 0x8180 0x8181 0x8182 0x8183 0x8184 0x8185 0x8186 0x8187 0x8188
+# 9 0x8190 0x8191 0x8192 0x8193 0x8194 0x8195 0x8196 0x8197 0x8198
+# 10 0x81A0 0x81A1 0x81A2 0x81A3 0x81A4 0x81A5 0x81A6 0x81A7 0x81A8
+# 11 0x81B0 0x81B1 0x81B2 0x81B3 0x81B4 0x81B5 0x81B6 0x81B7 0x81B8
+# 12 0x81C0 0x81C1 0x81C2 0x81C3 0x81C4 0x81C5 0x81C6 0x81C7 0x81C8
+# 13 0x81D0 0x81D1 0x81D2 0x81D3 0x81D4 0x81D5 0x81D6 0x81D7 0x81D8
+# 14 0x81E0 0x81E1 0x81E2 0x81E3 0x81E4 0x81E5 0x81E6 0x81E7 0x81E8
+# 15 0x81F0 0x81F1 0x81F2 0x81F3 0x81F4 0x81F5 0x81F6 0x81F7 0x81F8
+#
+#!Value table
+## Dest MAC Dest MAC Dest IP Dest Port Src MAC Src MAC Src IP Src Port Packet Size
+## Hub # Type # C0 # C1 # C2 # C3 # C4 # C5 # C6 # C7 # C8 #
+#########################################################################################################################################
+#
+## 0xc002 0 0xf4c85d53 0xbc5f 0xc0a80067 0xc352 0xdead8000 0x0230 0xc0a80002 0xc350 0x0578
+# 0xc002 0 0x0de9bf51 0x1c1b 0x0a000001 0xc350 0x38132627 0xda7a 0x0a0000ca 0xc350 0x0578
+# 0x8610 0 0x0de9bf51 0x1c1b 0x0a000001 0xc35a 0x06e913bc 0xda7a 0x0a00000a 0xc350 0x0578
+#
+#
+#
+ ###########################################################################################
#Eventbuilders:
-# EB 0: hadespc001 eth1 ports 50000 - 50099
+# EB 0: kp1pc105 eth1 00:1B:21:43:97:EA 192.168.0.2 ports 50000 - 50099
!Register table
-# Type # C0 # C1 # C2 # C3 # C4 # C5 # C6 # C7 # C8 #
-###########################################################################################
+# Type # C0 # C1 # C2 # C3 # C4 #
+#######################################################
#new memory locations
- 0 0x8100 0x8101 0x8102 0x8103 0x8104 0x8105 0x8106 0x8107 0x8108
- 1 0x8110 0x8111 0x8112 0x8113 0x8114 0x8115 0x8116 0x8117 0x8118
- 2 0x8120 0x8121 0x8122 0x8123 0x8124 0x8125 0x8126 0x8127 0x8128
- 3 0x8130 0x8131 0x8132 0x8133 0x8134 0x8135 0x8136 0x8137 0x8138
- 4 0x8140 0x8141 0x8142 0x8143 0x8144 0x8145 0x8146 0x8147 0x8148
- 5 0x8150 0x8151 0x8152 0x8153 0x8154 0x8155 0x8156 0x8157 0x8158
- 6 0x8160 0x8161 0x8162 0x8163 0x8164 0x8165 0x8166 0x8167 0x8168
- 7 0x8170 0x8171 0x8172 0x8173 0x8174 0x8175 0x8176 0x8177 0x8178
- 8 0x8180 0x8181 0x8182 0x8183 0x8184 0x8185 0x8186 0x8187 0x8188
- 9 0x8190 0x8191 0x8192 0x8193 0x8194 0x8195 0x8196 0x8197 0x8198
- 10 0x81A0 0x81A1 0x81A2 0x81A3 0x81A4 0x81A5 0x81A6 0x81A7 0x81A8
- 11 0x81B0 0x81B1 0x81B2 0x81B3 0x81B4 0x81B5 0x81B6 0x81B7 0x81B8
- 12 0x81C0 0x81C1 0x81C2 0x81C3 0x81C4 0x81C5 0x81C6 0x81C7 0x81C8
- 13 0x81D0 0x81D1 0x81D2 0x81D3 0x81D4 0x81D5 0x81D6 0x81D7 0x81D8
- 14 0x81E0 0x81E1 0x81E2 0x81E3 0x81E4 0x81E5 0x81E6 0x81E7 0x81E8
- 15 0x81F0 0x81F1 0x81F2 0x81F3 0x81F4 0x81F5 0x81F6 0x81F7 0x81F8
+ 0 0x8100 0x8101 0x8102 0x8103 0x8107
+ 1 0x8110 0x8111 0x8112 0x8113 0x8117
+ 2 0x8120 0x8121 0x8122 0x8123 0x8127
+ 3 0x8130 0x8131 0x8132 0x8133 0x8137
+ 4 0x8140 0x8141 0x8142 0x8143 0x8147
+ 5 0x8150 0x8151 0x8152 0x8153 0x8157
+ 6 0x8160 0x8161 0x8162 0x8163 0x8167
+ 7 0x8170 0x8171 0x8172 0x8173 0x8177
+ 8 0x8180 0x8181 0x8182 0x8183 0x8187
+ 9 0x8190 0x8191 0x8192 0x8193 0x8197
+ 10 0x81A0 0x81A1 0x81A2 0x81A3 0x81A7
+ 11 0x81B0 0x81B1 0x81B2 0x81B3 0x81B7
+ 12 0x81C0 0x81C1 0x81C2 0x81C3 0x81C7
+ 13 0x81D0 0x81D1 0x81D2 0x81D3 0x81D7
+ 14 0x81E0 0x81E1 0x81E2 0x81E3 0x81E7
+ 15 0x81F0 0x81F1 0x81F2 0x81F3 0x81F7
!Value table
-# Dest MAC Dest MAC Dest IP Dest Port Src MAC Src MAC Src IP Src Port Packet Size
-# Hub # Type # C0 # C1 # C2 # C3 # C4 # C5 # C6 # C7 # C8 #
-########################################################################################################################################
+# Dest MAC Dest MAC Dest IP Dest Port Src Port
+# Hub # Type # C0 # C1 # C2 # C3 # C7 #
+########################################################################
-# 0xc002 0 0xf4c85d53 0xbc5f 0xc0a80067 0xc352 0xdead8000 0x0230 0xc0a80002 0xc350 0x0578
- 0xc002 0 0x0de9bf51 0x1c1b 0x0a000001 0xc350 0x38132627 0xda7a 0x0a0000ca 0xc350 0x0578
-
-# MAC DEST: 1C:1B:0D:E9:BF:51 (eth1) IP: 10.0.0.1
-# MAC SRC : da:7a:38:13:26:27 (trb202) IP: 10.0.0.202
+#14:dd:a9:d3:f4:b8 # hadesp39
+# 0xc002 0 0x0de9bf51 0x1c1b 0x0a000001 0xc350 0xc350
+ 0xc000 1 0x0de9bf51 0x1c1b 0x0a000001 0xc35a 0xc35a
+ 0xc000 0 0xcb000000 0x027b 0xc0a80002 0x0400 0xc35a
+
+# MAC DEST: 1C:1B:0D:E9:BF:51 (eth1) IP: 10.0.0.1
+# MAC SRC : da:7a:38:13:26:27 (trb202) IP: 10.0.0.202
+# MAC SRC : da:7a:06:e9:13:bc (trb3sc10) IP: 10.0.0.10
+# 02:7b:cb:00:00:00
--- /dev/null
+############################################################################################
+##Eventbuilders:
+## EB 0: hadespc001 eth1 ports 50000 - 50099
+#
+#!Register table
+## Type # C0 # C1 # C2 # C3 # C4 # C5 # C6 # C7 # C8 #
+############################################################################################
+##new memory locations
+# 0 0x8100 0x8101 0x8102 0x8103 0x8104 0x8105 0x8106 0x8107 0x8108
+# 1 0x8110 0x8111 0x8112 0x8113 0x8114 0x8115 0x8116 0x8117 0x8118
+# 2 0x8120 0x8121 0x8122 0x8123 0x8124 0x8125 0x8126 0x8127 0x8128
+# 3 0x8130 0x8131 0x8132 0x8133 0x8134 0x8135 0x8136 0x8137 0x8138
+# 4 0x8140 0x8141 0x8142 0x8143 0x8144 0x8145 0x8146 0x8147 0x8148
+# 5 0x8150 0x8151 0x8152 0x8153 0x8154 0x8155 0x8156 0x8157 0x8158
+# 6 0x8160 0x8161 0x8162 0x8163 0x8164 0x8165 0x8166 0x8167 0x8168
+# 7 0x8170 0x8171 0x8172 0x8173 0x8174 0x8175 0x8176 0x8177 0x8178
+# 8 0x8180 0x8181 0x8182 0x8183 0x8184 0x8185 0x8186 0x8187 0x8188
+# 9 0x8190 0x8191 0x8192 0x8193 0x8194 0x8195 0x8196 0x8197 0x8198
+# 10 0x81A0 0x81A1 0x81A2 0x81A3 0x81A4 0x81A5 0x81A6 0x81A7 0x81A8
+# 11 0x81B0 0x81B1 0x81B2 0x81B3 0x81B4 0x81B5 0x81B6 0x81B7 0x81B8
+# 12 0x81C0 0x81C1 0x81C2 0x81C3 0x81C4 0x81C5 0x81C6 0x81C7 0x81C8
+# 13 0x81D0 0x81D1 0x81D2 0x81D3 0x81D4 0x81D5 0x81D6 0x81D7 0x81D8
+# 14 0x81E0 0x81E1 0x81E2 0x81E3 0x81E4 0x81E5 0x81E6 0x81E7 0x81E8
+# 15 0x81F0 0x81F1 0x81F2 0x81F3 0x81F4 0x81F5 0x81F6 0x81F7 0x81F8
+#
+#!Value table
+## Dest MAC Dest MAC Dest IP Dest Port Src MAC Src MAC Src IP Src Port Packet Size
+## Hub # Type # C0 # C1 # C2 # C3 # C4 # C5 # C6 # C7 # C8 #
+#########################################################################################################################################
+#
+## 0xc002 0 0xf4c85d53 0xbc5f 0xc0a80067 0xc352 0xdead8000 0x0230 0xc0a80002 0xc350 0x0578
+# 0xc002 0 0x0de9bf51 0x1c1b 0x0a000001 0xc350 0x38132627 0xda7a 0x0a0000ca 0xc350 0x0578
+# 0x8610 0 0x0de9bf51 0x1c1b 0x0a000001 0xc35a 0x06e913bc 0xda7a 0x0a00000a 0xc350 0x0578
+#
+#
+#
+ ###########################################################################################
+#Eventbuilders:
+# EB 0: kp1pc105 eth1 00:1B:21:43:97:EA 192.168.0.2 ports 50000 - 50099
+
+!Register table
+# Type # C0 # C1 # C2 # C3 # C4 #
+#######################################################
+#new memory locations
+ 0 0x8100 0x8101 0x8102 0x8103 0x8107
+ 1 0x8110 0x8111 0x8112 0x8113 0x8117
+ 2 0x8120 0x8121 0x8122 0x8123 0x8127
+ 3 0x8130 0x8131 0x8132 0x8133 0x8137
+ 4 0x8140 0x8141 0x8142 0x8143 0x8147
+ 5 0x8150 0x8151 0x8152 0x8153 0x8157
+ 6 0x8160 0x8161 0x8162 0x8163 0x8167
+ 7 0x8170 0x8171 0x8172 0x8173 0x8177
+ 8 0x8180 0x8181 0x8182 0x8183 0x8187
+ 9 0x8190 0x8191 0x8192 0x8193 0x8197
+ 10 0x81A0 0x81A1 0x81A2 0x81A3 0x81A7
+ 11 0x81B0 0x81B1 0x81B2 0x81B3 0x81B7
+ 12 0x81C0 0x81C1 0x81C2 0x81C3 0x81C7
+ 13 0x81D0 0x81D1 0x81D2 0x81D3 0x81D7
+ 14 0x81E0 0x81E1 0x81E2 0x81E3 0x81E7
+ 15 0x81F0 0x81F1 0x81F2 0x81F3 0x81F7
+
+!Value table
+# Dest MAC Dest MAC Dest IP Dest Port Src Port
+# Hub # Type # C0 # C1 # C2 # C3 # C7 #
+########################################################################
+
+#14:dd:a9:d3:f4:b8 # hadesp39
+# 0xc002 0 0x0de9bf51 0x1c1b 0x0a000001 0xc350 0xc350
+ 0xc000 0 0x0de9bf51 0x1c1b 0x0a000001 0xc35a 0xc35a
+# 0xc000 0 0xcb000000 0x027b 0xc0a80002 0x0400 0xc35a
+
+
+# MAC DEST: 1C:1B:0D:E9:BF:51 (eth1) IP: 10.0.0.1
+# MAC SRC : da:7a:38:13:26:27 (trb202) IP: 10.0.0.202
+# MAC SRC : da:7a:06:e9:13:bc (trb3sc10) IP: 10.0.0.10
+# 02:7b:cb:00:00:00
trb_init_ports() or die trb_strerror();
while(1) {
- my $r = trb_register_read(0x0201,0xe010);
+ my $r = trb_register_read_mem(0x0201,0xe010,0x1,0x5);
-# print Dumper $r;
-
- foreach my $board (keys %$r) {
- print "Temperatur: ";
- my $val =$r->{$board};
- print "$val \n";
- # printf("%I \n",$val);
- }
+ print "Test \n";
+ print Dumper @{$r->{0x0201}};
+ print "\n";
sleep(4);
}
--- /dev/null
+#!/usr/bin/perl
+
+use HADES::TrbNet;
+use Data::Dumper;
+use strict;
+
+my $trb_addr = 0x8224;
+my $reg = 0xe000;
+my $temp = 0x01;
+trb_init_ports() or die trb_strerror();
+ print "Set Interlock Temperature to 36.0 °C ... \n";
+
+ my $oldTemp = trb_register_read($trb_addr,$reg);
+ my $setVal = trb_register_write($trb_addr,$reg,$temp);
+ my $newTemp = trb_register_read($trb_addr,$reg);
+
+ $oldTemp = $oldTemp->{$trb_addr};
+ $newTemp = $newTemp->{$trb_addr};
+
+ print "changed Interlock Temperature from $oldTemp to $newTemp\n";
--- /dev/null
+# !/bin/bash
+echo "Settig Interlock Temperature to Standard of 36.0°C"
+ trbcmd w 0x0110 0xe120 0x240;
--- /dev/null
+#!/usr/bin/perl
+use warnings;
+use strict;
+use HADES::TrbNet;
+use Time::HiRes qw(usleep);
+use Data::Dumper;
+
+use lib "/home/hadaq/trbsoft/daqtools/dmon/code";
+use Dmon;
+
+my $dirich = 0x1234;
+my $std_thresh = 0x6800;
+
+$dirich = $ARGV[0];
+if($ARGV[1]) {
+ $std_thresh = $ARGV[1];
+ $std_thresh = hex($std_thresh);
+}
+
+unless ($ARGV[0]) {
+ print "usage: $0 <DiRICH--TrbNet-Address> [std_threshold]]\n";
+ exit;
+}
+
+$dirich = hex($dirich);
+
+my $throffset = 0xa000;
+#my $monitor = 0xdfc0;
+my $monitor = 0xc001;
+
+my $first_channel = 0;
+my $last_channel = 31;
+
+my $default_threshold = 0x6000;
+
+#my $absolute_max_threshold = 0x8000;
+my $absolute_min_threshold = 0x1000;
+
+my @res; my $res; my $rh_res;
+
+trb_init_ports() or die trb_strerror();
+
+# enable monitor counters
+$res = trb_register_write($dirich, 0xdf80 , 0xffffffff);
+if(!defined $res) {
+ $res = trb_strerror();
+ print "error output: $res\n";
+}
+
+
+my $command;
+my $chain=0;
+
+my $READ = 0x0<<20; # bits to set for a read command
+my $WRITE = 0x8<<20; # bits to set for a write command
+my $REGNR = 24; # number of bits to shift for the register number
+
+
+for my $channel (0 .. 31) {
+ $chain = ($channel <16) ? 0 : 1;
+ $command = ($channel&0xf)<<$REGNR | $WRITE | ($std_thresh & 0xffff);
+ #print "$command\n";
+ Dmon::PadiwaSendCmd($command,$dirich, $chain);
+ usleep(10E3);
+}
+exit;
+
trbcmd reset
echo "addresses"
-trbcmd s 0xdc00000813262728 0x05 0xc002
+trbcmd s 0xdc00000813262728 0x05 0xc000
trbcmd s 0xd400000812a36228 0x02 0x0200
trbcmd s 0xde00000813263428 0x00 0x0201
trbcmd s 0xf800000813262828 0x01 0x0202
./merge_serial_address.pl /home/hadaq/trbsoft/daqtools/base/serials_dirich.db /home/hadaq/trbsoft/daqtools/users/giessen_lab/db/addresses_dirich.db
./merge_serial_address.pl /home/hadaq/trbsoft/daqtools/base/serials_dirich_concentrator.db /home/hadaq/trbsoft/daqtools/users/giessen_lab/db/addresses_dirich_concentrator.db
+./merge_serial_address.pl /home/hadaq/trbsoft/daqtools/base/serials_trb3sc.db /home/hadaq/trbsoft/daqtools/users/giessen_lab/db/addresses_trb3sc_hub.db
+./merge_serial_address.pl /home/hadaq/trbsoft/daqtools/base/serials_trb3sc.db /home/hadaq/trbsoft/daqtools/users/giessen_lab/db/addresses_trb3sc.db
+./merge_serial_address.pl /home/hadaq/trbsoft/daqtools/base/serials_trb5sc.db /home/hadaq/trbsoft/daqtools/users/giessen_lab/db/addresses_trb5sc.db
echo "Hubs"
trbcmd w 0xfffe 0xc5 0x50ff
-../../tools/loadregisterdb.pl register_configgbe.db
-../../tools/loadregisterdb.pl register_configgbe_ip.db
+../../tools/loadregisterdb.pl register_configgbeTrb3.db
+../../tools/loadregisterdb.pl register_configgbe_ipTrb3.db
echo "cts"
#trbcmd w 0xc002 0xa154 1000000
-trbcmd w 0xc002 0xa156 0x0002710
+trbcmd w 0xc000 0xa156 0x0002710 #rate1
+#trbcmd w 0xc000 0xa156 0x00186A0 #rate1
echo "tdc"
-#trbcmd w 0xfe48 0xc801 0x000f0000
-#trbcmd w 0xfe48 0xc804 0x00000040
+trbcmd w 0xfe51 0xc802 0xffffffff
+trbcmd w 0xfe51 0xc804 0x0000000a
+trbcmd w 0xfe51 0xc805 0xffffffff
+
+trbcmd w 0x2002 0xc804 0x00000064
--- /dev/null
+#!/bin/bash
+
+echo "reset"
+trbcmd reset
+
+echo "addresses"
+#trbcmd s 0xdc00000813262728 0x01 0x8610
+#trbcmd s 0xd400000812a36228 0x02 0x0200
+#trbcmd s 0xde00000813263428 0x00 0x0201
+#trbcmd s 0xf800000813262828 0x01 0x0202
+#trbcmd s 0x7000000812a3c928 0x03 0x0203
+
+./merge_serial_address.pl /home/hadaq/trbsoft/daqtools/base/serials_dirich.db /home/hadaq/trbsoft/daqtools/users/giessen_lab/db/addresses_dirich.db
+./merge_serial_address.pl /home/hadaq/trbsoft/daqtools/base/serials_dirich_concentrator.db /home/hadaq/trbsoft/daqtools/users/giessen_lab/db/addresses_dirich_concentrator.db
+./merge_serial_address.pl /home/hadaq/trbsoft/daqtools/base/serials_trb3sc.db /home/hadaq/trbsoft/daqtools/users/giessen_lab/db/addresses_trb3sc_hub.db
+
+#trbcmd s 0x5d000006e913bc28 0x01 0xc001
+
+echo "Hubs"
+trbcmd w 0xfffe 0xc5 0x50ff
+
+../../tools/loadregisterdb.pl register_configgbe.db
+../../tools/loadregisterdb.pl register_configgbe_ip.db
+
+
+echo "cts"
+#trbcmd w 0xc002 0xa154 1000000
+#trbcmd w 0xc002 0xa156 0x0002710
+trbcmd w 0xc000 0xa134 0x0002710
+trbcmd w 0xc000 0xa009 0x0
+
+#echo "TEST"
+echo "tdc online calibration"
+trbcmd w 0xc000 0xe004 0xfffe
+
+
+echo "tdc"
+trbcmd w 0xfe51 0xc802 0xffffffff
+trbcmd w 0xfe51 0xc804 0x0000000a
+trbcmd w 0xc000 0xc802 0x1
+trbcmd w 0xc000 0xc804 0x0000000a
+
+
--- /dev/null
+// this is example for
+
+
+void first()
+{
+ //base::ProcMgr::instance()->SetRawAnalysis(true);
+ base::ProcMgr::instance()->SetTriggeredAnalysis(true);
+
+ // all new instances get this value
+ base::ProcMgr::instance()->SetHistFilling(4);
+
+ // configure bubbles
+ //hadaq::TdcProcessor::SetBubbleMode(3, 18);
+
+ // First is range of fine time
+ // Second parameter determines the range of the ToT histograms in ns
+ // Third is reduction factor of bins for 2D histogram
+ hadaq::TdcProcessor::SetDefaults(600, 200, 1);
+
+
+ // configure ToT calibration parameters
+ // first - minimal number of counts in ToT histogram
+ // second - maximal RMS value
+ hadaq::TdcProcessor::SetToTCalibr(100, 1);
+
+
+ //hadaq::TdcProcessor::SetUseDTrigForRef(true);
+ // this limits used for linear calibrations when nothing else is available
+// hadaq::TdcMessage::SetFineLimits(0, 1000);
+
+ // default channel numbers and edges mask
+ hadaq::TrbProcessor::SetDefaults(53, 3);
+ hadaq::TdcProcessor::SetTriggerDWindow(-10,80);
+ // [min..max] range for TDC ids
+ hadaq::TrbProcessor::SetTDCRange(0x0200, 0x2005);//0x15FF);
+
+ // [min..max] range for HUB ids
+ hadaq::TrbProcessor::SetHUBRange(0xc000, 0xc000);
+
+ // when first argument true - TRB/TDC will be created on-the-fly
+ // second parameter is function name, called after elements are created
+ hadaq::HldProcessor* hld = new hadaq::HldProcessor(true, "after_create");
+
+ const char* calname = getenv("CALNAME");
+ if ((calname==0) || (*calname==0)) calname = "test_";
+ const char* calmode = getenv("CALMODE");
+ int cnt = (calmode && *calmode) ? atoi(calmode) : 10000;
+ //cnt=100000;
+ const char* caltrig = getenv("CALTRIG");
+ unsigned trig = (caltrig && *caltrig) ? atoi(caltrig) : 0xd;
+ const char* uset = getenv("USETEMP");
+ unsigned use_temp = 0; // 0x80000000;
+ if ((uset!=0) && (*uset!=0) && (strcmp(uset,"1")==0)) use_temp = 0x80000000;
+
+ printf("TDC CALIBRATION MODE %d, cal trigger: %x\n", cnt, trig);
+
+ //printf("HLD configure calibration calfile:%s cnt:%d trig:%X temp:%X\n", calname, cnt, trig, use_temp);
+
+ // first parameter if filename prefix for calibration files
+ // and calibration mode (empty string - no file I/O)
+ // second parameter is hits count for autocalibration
+ // 0 - only load calibration
+ // -1 - accumulate data and store calibrations only at the end
+ // >0 - automatic calibration after N hits in each active channel
+ // third parameter is trigger type mask used for calibration
+ // (1 << 0xD) - special 0XD trigger with internal pulser, used also for TOT calibration
+ // 0x3FFF - all kinds of trigger types will be used for calibration (excluding 0xE and 0xF)
+ // 0x80000000 in mask enables usage of temperature correction
+ hld->ConfigureCalibration(calname, cnt, (1 << trig) | use_temp);
+// hld->ConfigureCalibration("", 0, 0);
+
+ // only accept trigger type 0x1 when storing file
+ // new hadaq::HldFilter(0x1);
+
+ // create ROOT file store
+ //base::ProcMgr::instance()->CreateStore("td.root");
+
+ // 0 - disable store
+ // 1 - std::vector<hadaq::TdcMessageExt> - includes original TDC message
+ // 2 - std::vector<hadaq::MessageFloat> - compact form, without channel 0, stamp as float (relative to ch0)
+ // 3 - std::vector<hadaq::MessageDouble> - compact form, with channel 0, absolute time stamp as double
+ base::ProcMgr::instance()->SetStoreKind(0);
+
+
+ // when configured as output in DABC, one specifies:
+ // <OutputPort name="Output2" url="stream://file.root?maxsize=5000&kind=3"/>
+
+
+}
+
+// extern "C" required by DABC to find function from compiled code
+
+extern "C" void after_create(hadaq::HldProcessor* hld)
+{
+ printf("Called after all sub-components are created\n");
+
+ if (hld==0) return;
+
+ for (unsigned k=0;k<hld->NumberOfTRB();k++) {
+ hadaq::TrbProcessor* trb = hld->GetTRB(k);
+ if (trb==0) continue;
+ printf("Configure %s!\n", trb->GetName());
+ trb->SetPrintErrors(100);
+ }
+
+ for (unsigned k=0;k<hld->NumberOfTDC();k++) {
+ hadaq::TdcProcessor* tdc = hld->GetTDC(k);
+ if (tdc==0) continue;
+
+ printf("Configure %s!\n", tdc->GetName());
+
+ tdc->SetUseLastHit(true);
+
+ //tdc->SetStoreEnabled();
+ for (unsigned nch=2; nch<tdc->NumChannels(); nch++) {
+ tdc->SetRefChannel(nch, nch-1, 0xffff, 10000, -90., 90.);
+ }
+
+ // for (unsigned j=10; j<33; j++) {
+ // tdc->SetRefChannel(j, 1, 0xffff, 10000, -40., 40.);
+ //}
+
+ //tdc->SetRefChannel(6, 0, 0xffff, 10000, -100.,100.);
+ //tdc->SetRefChannel(0, 0, 0x1202, 10000, -20., 20.);
+ //tdc->SetRefChannel(4, 2, 0xffff, 10000, -20., 20.);
+ //tdc->SetRefChannel(1, tdc->NumChannels() -1 , 0xffff, 20000, -10., 10.);
+
+ // tdc->SetRefChannel(6, 2 , 0xffff, 20000, -10., 10.);
+ //tdc->SetRefChannel(4, 2 , 0xffff, 20000, -10., 10.);
+ //tdc->SetRefChannel(7, 6 , 0xffff, 20000, -10., 10.);
+
+
+ }
+}
+
+
--- /dev/null
+ch qrising stat fmin fmax qfalling stat fmin fmax ToT Dev
+ 0 1.00 10392 16 444 1.00 10392 16 444 0.000 0.000
+ 1 1.00 10392 16 445 1.00 10392 16 445 36.188 0.130
+ 2 1.00 10348 16 443 1.00 10348 16 443 37.523 0.131
+ 3 1.00 10357 16 445 1.00 10357 16 445 34.228 0.124
+ 4 1.00 10392 16 444 1.00 10392 16 444 36.903 0.131
+ 5 1.00 10392 17 438 1.00 10392 17 438 35.724 0.135
+ 6 1.00 10392 16 440 1.00 10392 16 440 33.172 0.127
+ 7 1.00 10392 16 441 1.00 10392 16 441 28.946 0.111
+ 8 1.00 10392 16 438 1.00 10392 16 438 36.060 0.137
+ 9 1.00 10000 16 440 1.00 10000 16 440 35.972 0.130
+10 1.00 10358 16 438 1.00 10358 16 438 33.298 0.121
+11 1.00 10392 16 440 1.00 10392 16 440 32.586 0.124
+12 1.00 10292 17 444 1.00 10292 17 444 35.882 0.132
+13 1.00 10392 16 445 1.00 10392 16 445 26.892 0.108
+14 1.00 10392 16 449 1.00 10392 16 449 32.842 0.120
+15 1.00 10392 16 440 1.00 10392 16 440 31.777 0.119
+16 1.00 10344 16 442 1.00 10344 16 442 29.063 0.115
+17 1.00 10392 17 447 1.00 10392 17 447 33.180 0.113
+18 1.00 10392 16 448 1.00 10392 16 448 33.064 0.113
+19 1.00 10392 16 443 1.00 10392 16 443 32.144 0.110
+20 1.00 10392 17 446 1.00 10392 17 446 29.684 0.104
+21 1.00 10392 16 445 1.00 10392 16 445 32.530 0.113
+22 1.00 10392 16 447 1.00 10392 16 447 34.527 0.120
+23 1.00 10392 16 440 1.00 10392 16 440 31.276 0.118
+24 1.00 10392 16 447 1.00 10392 16 447 33.030 0.120
+25 1.00 10392 16 440 1.00 10392 16 440 33.563 0.128
+26 1.00 10083 17 441 1.00 10083 17 441 34.602 0.131
+27 1.00 10392 16 440 1.00 10392 16 440 32.120 0.127
+28 1.00 10392 16 436 1.00 10392 16 436 30.660 0.121
+29 1.00 10392 16 449 1.00 10392 16 449 27.661 0.102
+30 1.00 10392 16 448 1.00 10392 16 448 28.131 0.102
+31 1.00 10392 16 439 1.00 10392 16 439 32.849 0.117
+32 1.00 10392 16 440 1.00 10392 16 440 31.926 0.116
+33 1.00 10390 16 440 1.00 10390 16 440 32.626 0.117
+34 1.00 10392 16 441 1.00 10392 16 441 30.177 0.108
+35 1.00 10392 16 441 1.00 10392 16 441 34.029 0.124
+36 1.00 10359 16 441 1.00 10359 16 441 32.862 0.113
+37 1.00 10392 16 438 1.00 10392 16 438 33.344 0.122
+38 1.00 10392 16 437 1.00 10392 16 437 36.414 0.127
+39 1.00 10392 17 445 1.00 10392 17 445 28.986 0.105
+40 1.00 10223 16 455 1.00 10223 16 455 28.556 0.105
+41 1.00 10383 16 446 1.00 10383 16 446 30.024 0.110
+42 1.00 10392 16 445 1.00 10392 16 445 31.107 0.111
+43 1.00 10392 16 445 1.00 10392 16 445 30.832 0.109
+44 1.00 10392 16 443 1.00 10392 16 443 31.803 0.113
+45 1.00 10392 17 443 1.00 10392 17 443 31.172 0.108
+46 1.00 10284 17 444 1.00 10284 17 444 31.266 0.111
+47 1.00 10392 16 449 1.00 10392 16 449 29.569 0.108
+48 1.00 10392 17 447 1.00 10392 17 447 30.021 0.114
+49 1.00 10392 16 452 1.00 10392 16 452 29.325 0.104
+50 1.00 10392 16 450 1.00 10392 16 450 31.926 0.111
+51 1.00 10392 16 446 1.00 10392 16 446 30.044 0.104
+52 1.00 10392 16 445 1.00 10392 16 445 29.165 0.103
--- /dev/null
+ch qrising stat fmin fmax qfalling stat fmin fmax ToT Dev
+ 0 1.00 10411 16 445 1.00 10411 16 445 0.000 0.000
+ 1 1.00 10411 16 448 1.00 10411 16 448 36.256 0.122
+ 2 1.00 10411 17 442 1.00 10411 17 442 37.341 0.128
+ 3 1.00 10411 16 445 1.00 10411 16 445 33.894 0.118
+ 4 1.00 10411 16 446 1.00 10411 16 446 36.848 0.125
+ 5 1.00 10411 17 436 1.00 10411 17 436 35.607 0.127
+ 6 1.00 10411 16 439 1.00 10411 16 439 33.044 0.119
+ 7 1.00 10411 16 441 1.00 10411 16 441 28.862 0.106
+ 8 1.00 10411 16 440 1.00 10411 16 440 35.915 0.126
+ 9 1.00 10411 16 442 1.00 10411 16 442 35.790 0.123
+10 1.00 10411 17 440 1.00 10411 17 440 33.188 0.115
+11 1.00 10411 16 439 1.00 10411 16 439 32.355 0.114
+12 1.00 10362 16 440 1.00 10362 16 440 35.687 0.124
+13 1.00 10148 16 450 1.00 10148 16 450 26.915 0.099
+14 1.00 10411 16 450 1.00 10411 16 450 32.650 0.115
+15 1.00 10297 16 441 1.00 10297 16 441 31.837 0.114
+16 1.00 10411 16 440 1.00 10411 16 440 28.804 0.107
+17 1.00 10000 16 447 1.00 10000 16 447 33.249 0.107
+18 1.00 10411 16 446 1.00 10411 16 446 32.827 0.106
+19 1.00 10410 16 444 1.00 10410 16 444 31.980 0.103
+20 1.00 10411 16 443 1.00 10411 16 443 29.568 0.096
+21 1.00 10411 16 445 1.00 10411 16 445 32.579 0.107
+22 1.00 10411 16 448 1.00 10411 16 448 34.331 0.113
+23 1.00 10411 16 440 1.00 10411 16 440 31.391 0.112
+24 1.00 10411 17 443 1.00 10411 17 443 32.935 0.113
+25 1.00 10411 16 438 1.00 10411 16 438 33.425 0.119
+26 1.00 10411 16 441 1.00 10411 16 441 34.715 0.123
+27 1.00 10411 17 440 1.00 10411 17 440 31.961 0.118
+28 1.00 10411 16 438 1.00 10411 16 438 30.622 0.113
+29 1.00 10411 16 448 1.00 10411 16 448 27.495 0.094
+30 1.00 10411 16 448 1.00 10411 16 448 28.047 0.097
+31 1.00 10411 16 439 1.00 10411 16 439 32.785 0.112
+32 1.00 10341 16 440 1.00 10341 16 440 31.787 0.108
+33 1.00 10411 16 442 1.00 10411 16 442 32.592 0.111
+34 1.00 10411 16 443 1.00 10411 16 443 30.237 0.102
+35 1.00 10411 16 440 1.00 10411 16 440 33.930 0.116
+36 1.00 10411 16 439 1.00 10411 16 439 32.572 0.110
+37 1.00 10411 16 437 1.00 10411 16 437 33.045 0.113
+38 1.00 10411 16 436 1.00 10411 16 436 36.290 0.120
+39 1.00 10205 16 443 1.00 10205 16 443 28.962 0.100
+40 1.00 10407 16 444 1.00 10407 16 444 28.419 0.097
+41 1.00 10411 17 442 1.00 10411 17 442 29.856 0.102
+42 1.00 10411 16 442 1.00 10411 16 442 30.880 0.103
+43 1.00 10401 16 447 1.00 10401 16 447 30.799 0.102
+44 1.00 10411 16 446 1.00 10411 16 446 31.677 0.106
+45 1.00 10411 16 440 1.00 10411 16 440 30.965 0.100
+46 1.00 10367 16 441 1.00 10367 16 441 31.123 0.104
+47 1.00 10411 16 448 1.00 10411 16 448 29.456 0.102
+48 1.00 10404 17 447 1.00 10404 17 447 29.838 0.108
+49 1.00 10411 16 452 1.00 10411 16 452 29.349 0.098
+50 1.00 10330 16 452 1.00 10330 16 452 31.833 0.106
+51 1.00 10411 16 444 1.00 10411 16 444 30.139 0.097
+52 1.00 10411 16 443 1.00 10411 16 443 29.157 0.095
--- /dev/null
+// Automatically generated startup script
+// Do not change it!
+
+go4->SetMainWindowState(4,"000000ff00000000fd00000002000000000000015c0000032dfc0200000001fb0000001600420072006f00770073006500720044006f0063006b01000000550000032d0000007900ffffff0000000300000780000000d3fc0100000001fc00000000000007800000046b00fffffffa000000000200000003fb00000016004c006f00670049006e0066006f0044006f0063006b0100000000ffffffff0000005200fffffffb0000001a004d006200730056006900650077006500720044006f0063006b0100000000ffffffff0000006400fffffffb0000001e0044004100420043004d006f006e00690074006f00720044006f0063006b0000000279000000ce00000000000000000000061e0000032d00000004000000040000000800000008fc0000000800000002000000050000001600460069006c00650054006f006f006c0042006100720100000000ffffffff0000000000000000000000160047006f00340054006f006f006c00730042006100720100000106ffffffff00000000000000000000001e0041006e0061006c00790073006900730054006f006f006c004200610072010000024affffffff00000000000000000000001a0044006900760069006400650050006100640044006f0063006b0000000395000000e40000000000000000000000240048006900730044007200610077004f007000740069006f006e00730044006f0063006b010000036f000004110000000000000000000000020000000000000002000000030000002400420072006f0077007300650072004f007000740069006f006e00730044006f0063006b01000000000000010200000000000000000000001e0044007200610077004f007000740069006f006e00730044006f0063006b0100000102ffffffff000000000000000000000020005300630061006c0065004f007000740069006f006e00730044006f0063006b01000003b9000003e400000000000000000000000200000001000000180047006f0034005300740079006c00650044006f0063006b0000000000000004b100000000000000000000000200000000000000030000000000000003000000010000001e0043006f006d006d0061006e0064004c0069006e00650044006f0063006b0000000000000004b1000000000000000000000003000000010000001c00540072006500650056006900650077006500720044006f0063006b0000000000000004b10000000000000000");
+go4->SetMainWindowGeometry(4,"01d9d0cb0001000000000000000000000000077f000004960000000000000000fffffffefffffffe000000000200");
+
+go4->LaunchAnalysis("trb3_test", ".", "libGo4UserAnalysis", "localhost", Go4_sh, Go4_qt, Go4_lib);
+go4->WaitAnalysis(300);
+
+// configuration of analysis
+go4->AnalysisAutoSave("Go4AutoSave.root", 500, 5, kTRUE, kFALSE);
+go4->AnalysisConfigName("Go4AnalysisPrefs.root");
+
+// step Analysis
+go4->ConfigStep("Analysis", kTRUE, kTRUE, kFALSE);
+go4->StepMbsStreamSource("Analysis", "localhost:6789", 1);
+go4->StepFileStore("Analysis", "NoOutputDefined", kTRUE, 32000, 99, 5, 10000);
+
+go4->SubmitAnalysisConfig(20);
+
+go4->SetAnalysisConfigMode(-1);
+go4->SetAnalysisTerminalMode(0);
+
+go4->StartAnalysis();
+
+// in some analysis one requires to wait several seconds before new histograms appears
+// go4->Wait(1);
+go4->RefreshNamesList();
+
+TGo4Picture *pic1 = new TGo4Picture("pic1", "temporary object to setup viewpanel");
+pic1->SetCrosshair(false);
+pic1->SetRangeX(0.5, 99.5);
+pic1->SetRangeY(0, 916936);
+pic1->SetLineAtt(1, 1, 1, -1);
+pic1->SetFillAtt(10, 1001, -1);
+pic1->SetHisStats(true);
+pic1->SetStatsAttr(0.58, 0.335, 0.98, 0.935, 1000111111, "6.4g", 0, "5.4g");
+pic1->SetHisTitle(true);
+pic1->SetTitleAttr(0.15, 0.931657, 0.85, 0.995);
+pic1->SetTitleTime(true);
+pic1->SetTitleDate(true);
+pic1->SetTitleItem(true);
+pic1->SetAutoScale(true);
+pic1->SetXYRatioOne(false);
+pic1->SetPadAtt(0, 2, 0, 0, 30, 30, 0, 0);
+pic1->SetXAxisAttTime(0, "%H:%M:%S%F1995-01-01 00:00:00s0", -1);
+pic1->AddObjName("Analysis/Histograms/A/A_NumHits", "HIST");
+pic1->SetLineAtt(602, 1, 1, 0);
+pic1->SetFillAtt(0, 1001, 0);
+pic1->SetMarkerAtt(1, 1, 1, 0);
+pic1->SetAxisAtt(0, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic1->SetAxisAtt(1, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+pic1->SetAxisAtt(2, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+go4->StartViewPanel(784, 407, 782, 406, Go4_normal, pic1);
+delete pic1;
+
+TGo4Picture *pic2 = new TGo4Picture("pic2", "temporary object to setup viewpanel");
+pic2->SetCrosshair(false);
+pic2->SetRangeX(34.14, 37.316);
+pic2->SetRangeY(0, 23862.3);
+pic2->SetLineAtt(1, 1, 1, -1);
+pic2->SetFillAtt(10, 1001, -1);
+pic2->SetHisStats(true);
+pic2->SetStatsAttr(0.58, 0.335, 0.98, 0.935, 1000111111, "6.4g", 0, "5.4g");
+pic2->SetHisTitle(true);
+pic2->SetTitleAttr(0.15, 0.931657, 0.85, 0.995);
+pic2->SetTitleTime(true);
+pic2->SetTitleDate(true);
+pic2->SetTitleItem(true);
+pic2->SetAutoScale(true);
+pic2->SetXYRatioOne(false);
+pic2->SetPadAtt(0, 2, 0, 0, 30, 30, 0, 0);
+pic2->SetXAxisAttTime(0, "%H:%M:%S%F1995-01-01 00:00:00s0", -1);
+pic2->AddObjName("Analysis/Histograms/A/A_ToT1", "HIST");
+pic2->SetLineAtt(602, 1, 1, 0);
+pic2->SetFillAtt(0, 1001, 0);
+pic2->SetMarkerAtt(1, 1, 1, 0);
+pic2->SetAxisAtt(0, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic2->SetAxisAtt(1, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+pic2->SetAxisAtt(2, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+go4->StartViewPanel(0, 407, 784, 406, Go4_normal, pic2);
+delete pic2;
+
+TGo4Picture *pic3 = new TGo4Picture("pic3", "temporary object to setup viewpanel");
+pic3->SetCrosshair(false);
+pic3->SetRangeX(-2.575, -1.415);
+pic3->SetRangeY(0, 21221.5);
+pic3->SetLineAtt(1, 1, 1, -1);
+pic3->SetFillAtt(10, 1001, -1);
+pic3->SetHisStats(true);
+pic3->SetStatsAttr(0.58, 0.335, 0.98, 0.935, 1000111111, "6.4g", 0, "5.4g");
+pic3->SetHisTitle(true);
+pic3->SetTitleAttr(0.15, 0.931657, 0.85, 0.995);
+pic3->SetTitleTime(true);
+pic3->SetTitleDate(true);
+pic3->SetTitleItem(true);
+pic3->SetAutoScale(true);
+pic3->SetXYRatioOne(false);
+pic3->SetPadAtt(0, 2, 0, 0, 30, 30, 0, 0);
+pic3->SetXAxisAttTime(0, "%H:%M:%S%F1995-01-01 00:00:00s0", -1);
+pic3->AddObjName("Analysis/Histograms/A/A_LED_diff1", "HIST");
+pic3->SetLineAtt(602, 1, 1, 0);
+pic3->SetFillAtt(0, 1001, 0);
+pic3->SetMarkerAtt(1, 1, 1, 0);
+pic3->SetAxisAtt(0, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic3->SetAxisAtt(1, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+pic3->SetAxisAtt(2, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+go4->StartViewPanel(784, 0, 782, 407, Go4_normal, pic3);
+delete pic3;
+
+TGo4Picture *pic4 = new TGo4Picture("pic4", "temporary object to setup viewpanel");
+pic4->SetCrosshair(false);
+pic4->SetRangeX(34.504, 37.112);
+pic4->SetRangeY(-2.572, -0.916);
+pic4->SetRangeZ(0, 4028.85);
+pic4->SetLineAtt(1, 1, 1, -1);
+pic4->SetFillAtt(10, 1001, -1);
+pic4->SetHisStats(true);
+pic4->SetStatsAttr(0.687419, 0.475921, 0.989624, 0.915014, 1000111111, "6.4g", 0, "5.4g");
+pic4->SetHisTitle(true);
+pic4->SetTitleAttr(0.15, 0.931657, 0.85, 0.995);
+pic4->SetTitleTime(true);
+pic4->SetTitleDate(true);
+pic4->SetTitleItem(true);
+pic4->SetAutoScale(true);
+pic4->SetXYRatioOne(false);
+pic4->SetPadAtt(0, 2, 0, 0, 30, 30, 0, 0);
+pic4->SetXAxisAttTime(0, "%H:%M:%S%F1995-01-01 00:00:00s0", -1);
+pic4->AddObjName("Analysis/Histograms/A/A_ToT_vs_LED", "COL");
+pic4->SetLineAtt(602, 1, 1, 0);
+pic4->SetFillAtt(0, 1001, 0);
+pic4->SetMarkerAtt(1, 1, 1, 0);
+pic4->SetAxisAtt(0, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic4->SetAxisAtt(1, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 2048, 0);
+pic4->SetAxisAtt(2, 1, 1, 42, 0.005, 0.035, 510, 0.03, 1, 42, 1, 0.035, kFALSE, "+", 0, 0);
+go4->StartViewPanel(0, 0, 784, 407, Go4_normal, pic4);
+delete pic4;
+
+go4->StartMonitoring(2);