#include "hpiontrackertrb3unpacker.h"
#include "hades.h"
#include "hcategory.h"
#include "hdebug.h"
#include "hevent.h"
#include "heventheader.h"
#include "hldsource.h"
#include "hldsubevt.h"
#include "hruntimedb.h"
#include "hspectrometer.h"
#include "hpiontrackerdetector.h"
#include "hpiontrackerraw.h"
#include "hpiontrackertrb3lookup.h"
#include "hpiontrackerdef.h"
#include <iostream>
using namespace std;
#define PR(x) std::cout << "++DEBUG: " << #x << " = |" << x << "| (" << __FILE__ << ", " << __LINE__ << ")\n";
#define PRh(x) std::cout << "++DEBUG: " << #x << " = hex |" << std::hex << x << std::dec << "| (" << __FILE__ << ", " << __LINE__ << ")\n";
ClassImp (HPionTrackerTrb3Unpacker)
HPionTrackerTrb3Unpacker::HPionTrackerTrb3Unpacker (UInt_t id)
{
subEvtId = id;
uTrbNetAddress = 0;
nEvt = 0;
debugFlag = 0;
quietMode = kFALSE;
reportCritical = kFALSE;
pRawCat = NULL;
pLookup = NULL;
pTrbBoard = NULL;
}
Bool_t HPionTrackerTrb3Unpacker::init (void)
{
HPionTrackerDetector * det = (HPionTrackerDetector *) gHades->getSetup()->getDetector ("PionTracker");
if (!det)
{
Error ("init", "No PionTracker found.");
return kFALSE;
}
pRawCat = det->buildCategory (catPionTrackerRaw);
loc.set (2, 0, 0);
pLookup = (HPionTrackerTrb3Lookup *) (gHades->getRuntimeDb()->getContainer ("PionTrackerTrb3Lookup"));
if (!pLookup)
{
Error ("init", "No Pointer to parameter container PionTrackerTrb3Lookup.");
return kFALSE;
}
return kTRUE;
}
Int_t HPionTrackerTrb3Unpacker::execute (void)
{
if (gHades->isCalibration())
{
return 1;
}
if (gHades->getCurrentEvent()->getHeader()->getId() == 0xe)
{
return 1;
}
nEvt = gHades->getCurrentEvent()->getHeader()->getEventSeqNumber();
if (NULL == pSubEvt)
{
#if DEBUG_LEVEL > 0
Warning ("execute", "EvtId: 0x%x, Unpacker 0x%x ==> no data",
gHades->getCurrentEvent()->getHeader()->getId(), subEvtId);
#endif
return 1;
}
if (!pSubEvt)
return 1;
UInt_t * databeg = pSubEvt->getData();
UInt_t * dataend = pSubEvt->getEnd();
nEvt = gHades->getCurrentEvent()->getHeader()->getEventSeqNumber();
size_t data_size = dataend - databeg;
if (data_size == 0) return 0;
size_t datanum = 0;
size_t datacnt = 0;
ptstate sm = sm_wait_for_board;
ptheaderset pths;
ptdataset ptds;
for (size_t cnt = 0; cnt < data_size; ++cnt)
{
UInt_t d = * (databeg + cnt);
switch (sm)
{
case sm_wait_for_board:
datanum = (d >> 16) & 0xFFFF;
uTrbNetAddress = d & 0xFFFF;
if (datanum == 0)
{
continue;
}
datacnt = 0;
if (uTrbNetAddress == 0x5555)
{
cnt += datanum;
continue;
}
pTrbBoard = pLookup->getBoard (uTrbNetAddress);
if (!pTrbBoard)
{
Warning ("HPionTrackerTrb3Unpacker::execute",
"Evt Nr : %i TrbNetAdress: %x (%i) unpacked but TRB Board not in lookup table",
nEvt, uTrbNetAddress, uTrbNetAddress);
cnt += datanum;
continue;
}
sm = sm_header;
break;
case sm_header:
pths = decodeSubevent(d);
++datacnt;
sm = sm_data;
break;
case sm_data:
{
++datacnt;
if (d == 0xffffffff)
{
if (datacnt != datanum)
{
Error ("execute()", "Event %d --> datanum and datacnt differs. datanum=%lu, datacnt=%lu", nEvt, datanum, datacnt);
}
sm = sm_wait_for_board;
break;
}
else
{
switch (pths.design)
{
case des_cosy13:
ptds = decodeData_Cosy13(d, pths);
break;
case des_140115:
ptds = decodeData_140115(d, pths);
break;
default:
continue;
}
fillRaw (ptds);
}
}
break;
default:
datacnt = 0;
sm = sm_wait_for_board;
break;
}
}
return 1;
}
ptheaderset HPionTrackerTrb3Unpacker::decodeSubevent(UInt_t h)
{
ptheaderset pths;
bool olddesign = ((h >> 30) & 0x03) == 0x00;
if (olddesign)
{
pths.design = des_cosy13;
pths.tsref = h & 0xfff;
pths.evcnt = (h >> 12) & 0x3ff;
pths.romode = (h >> 22) & 0x3;
pths.version = 0;
pths.boardid = (h >> 24) & 0xff;
}
else
{
pths.design = des_140115;
pths.tsref = h & 0xfff;
pths.evcnt = (h >> 12) & 0x3ff;
pths.romode = (h >> 22) & 0x3;
pths.version = (h >> 26) & 0xf;
pths.boardid = (h >> 30) & 0x3;
}
return pths;
}
ptdataset HPionTrackerTrb3Unpacker::decodeData_Cosy13(UInt_t d, const ptheaderset & pths)
{
ptdataset ptds;
ptds.ts = (d >> 0) & 0xfff;
ptds.adc = (d >> 12) & 0xfff;
ptds.strip = (d >> 24) & 0x7f;
ptds.pileup = (d >> 31) & 0x01;
ptds.overflow = 0;
return ptds;
}
ptdataset HPionTrackerTrb3Unpacker::decodeData_140115(UInt_t d, const ptheaderset& hs)
{
ptdataset ptds;
switch (hs.romode)
{
case 0x00:
ptds.ts = d & 0x7ff;
ptds.adc = (d >> 11) & 0xfff;
ptds.overflow = (d >> 23) & 0x01;
ptds.pileup = (d >> 24) & 0x01;
ptds.strip = (d >> 25) & 0x7f;
break;
case 0x01:
ptds.ts = d & 0xfff;
ptds.adc = (d >> 11) & 0xffe;
ptds.overflow = (d >> 23) & 0x01;
ptds.pileup = (d >> 24) & 0x01;
ptds.strip = (d >> 25) & 0x7f;
break;
case 0x02:
ptds.ts = d & 0x3fff;
ptds.adc = (d >> 11) & 0xff8;
ptds.overflow = (d >> 23) & 0x01;
ptds.pileup = (d >> 24) & 0x01;
ptds.strip = (d >> 25) & 0x7f;
break;
case 0x03:
ptds.ts = d & 0x3fff;
ptds.adc = (d >> 13) & 0xffe;
ptds.overflow = -1;
ptds.pileup = -1;
ptds.strip = (d >> 25) & 0x7f;
break;
default:
ptds.ts = -1;
ptds.adc = -1;
ptds.overflow = -1;
ptds.pileup = -1;
ptds.strip = 0;
break;
}
return ptds;
}
Bool_t HPionTrackerTrb3Unpacker::fillRaw(const ptdataset& ptds)
{
return fillRaw(ptds.strip, ptds.ts, ptds.adc, ptds.pileup, ptds.overflow);
}
Bool_t HPionTrackerTrb3Unpacker::fillRaw (Int_t channel, Float_t time, Float_t charge, Char_t pileup, Char_t overflow)
{
if (pTrbBoard)
{
HPionTrackerTrb3LookupChan * ch = pTrbBoard->getChannel (channel);
ch->getAddress (loc[0], loc[1]);
if (loc[0] >= 0)
{
HPionTrackerRaw * pRaw = (HPionTrackerRaw *) pRawCat->getObject (loc);
if (!pRaw)
{
pRaw = (HPionTrackerRaw *) pRawCat->getSlot (loc);
if (pRaw)
{
pRaw = new (pRaw) HPionTrackerRaw;
pRaw->setAddress (loc[0], loc[1]);
}
else
{
Warning ("HPionTrackerTrb3Unpacker::execute()",
"Can't get slot mod=%i, chan=%i", loc[0], loc[1]);
return kFALSE;
}
}
pRaw->setData (time, charge, pileup, overflow);
}
else
{
Warning ("HPionTrackerTrb3Unpacker::execute()",
"Not found in lookup table: TrbNetAddress=%i, channel=%i", uTrbNetAddress, channel);
}
}
return kTRUE;
}
hpiontrackertrb3unpacker.cc:1 hpiontrackertrb3unpacker.cc:2 hpiontrackertrb3unpacker.cc:3 hpiontrackertrb3unpacker.cc:4 hpiontrackertrb3unpacker.cc:5 hpiontrackertrb3unpacker.cc:6 hpiontrackertrb3unpacker.cc:7 hpiontrackertrb3unpacker.cc:8 hpiontrackertrb3unpacker.cc:9 hpiontrackertrb3unpacker.cc:10 hpiontrackertrb3unpacker.cc:11 hpiontrackertrb3unpacker.cc:12 hpiontrackertrb3unpacker.cc:13 hpiontrackertrb3unpacker.cc:14 hpiontrackertrb3unpacker.cc:15 hpiontrackertrb3unpacker.cc:16 hpiontrackertrb3unpacker.cc:17 hpiontrackertrb3unpacker.cc:18 hpiontrackertrb3unpacker.cc:19 hpiontrackertrb3unpacker.cc:20 hpiontrackertrb3unpacker.cc:21 hpiontrackertrb3unpacker.cc:22 hpiontrackertrb3unpacker.cc:23 hpiontrackertrb3unpacker.cc:24 hpiontrackertrb3unpacker.cc:25 hpiontrackertrb3unpacker.cc:26 hpiontrackertrb3unpacker.cc:27 hpiontrackertrb3unpacker.cc:28 hpiontrackertrb3unpacker.cc:29 hpiontrackertrb3unpacker.cc:30 hpiontrackertrb3unpacker.cc:31 hpiontrackertrb3unpacker.cc:32 hpiontrackertrb3unpacker.cc:33 hpiontrackertrb3unpacker.cc:34 hpiontrackertrb3unpacker.cc:35 hpiontrackertrb3unpacker.cc:36 hpiontrackertrb3unpacker.cc:37 hpiontrackertrb3unpacker.cc:38 hpiontrackertrb3unpacker.cc:39 hpiontrackertrb3unpacker.cc:40 hpiontrackertrb3unpacker.cc:41 hpiontrackertrb3unpacker.cc:42 hpiontrackertrb3unpacker.cc:43 hpiontrackertrb3unpacker.cc:44 hpiontrackertrb3unpacker.cc:45 hpiontrackertrb3unpacker.cc:46 hpiontrackertrb3unpacker.cc:47 hpiontrackertrb3unpacker.cc:48 hpiontrackertrb3unpacker.cc:49 hpiontrackertrb3unpacker.cc:50 hpiontrackertrb3unpacker.cc:51 hpiontrackertrb3unpacker.cc:52 hpiontrackertrb3unpacker.cc:53 hpiontrackertrb3unpacker.cc:54 hpiontrackertrb3unpacker.cc:55 hpiontrackertrb3unpacker.cc:56 hpiontrackertrb3unpacker.cc:57 hpiontrackertrb3unpacker.cc:58 hpiontrackertrb3unpacker.cc:59 hpiontrackertrb3unpacker.cc:60 hpiontrackertrb3unpacker.cc:61 hpiontrackertrb3unpacker.cc:62 hpiontrackertrb3unpacker.cc:63 hpiontrackertrb3unpacker.cc:64 hpiontrackertrb3unpacker.cc:65 hpiontrackertrb3unpacker.cc:66 hpiontrackertrb3unpacker.cc:67 hpiontrackertrb3unpacker.cc:68 hpiontrackertrb3unpacker.cc:69 hpiontrackertrb3unpacker.cc:70 hpiontrackertrb3unpacker.cc:71 hpiontrackertrb3unpacker.cc:72 hpiontrackertrb3unpacker.cc:73 hpiontrackertrb3unpacker.cc:74 hpiontrackertrb3unpacker.cc:75 hpiontrackertrb3unpacker.cc:76 hpiontrackertrb3unpacker.cc:77 hpiontrackertrb3unpacker.cc:78 hpiontrackertrb3unpacker.cc:79 hpiontrackertrb3unpacker.cc:80 hpiontrackertrb3unpacker.cc:81 hpiontrackertrb3unpacker.cc:82 hpiontrackertrb3unpacker.cc:83 hpiontrackertrb3unpacker.cc:84 hpiontrackertrb3unpacker.cc:85 hpiontrackertrb3unpacker.cc:86 hpiontrackertrb3unpacker.cc:87 hpiontrackertrb3unpacker.cc:88 hpiontrackertrb3unpacker.cc:89 hpiontrackertrb3unpacker.cc:90 hpiontrackertrb3unpacker.cc:91 hpiontrackertrb3unpacker.cc:92 hpiontrackertrb3unpacker.cc:93 hpiontrackertrb3unpacker.cc:94 hpiontrackertrb3unpacker.cc:95 hpiontrackertrb3unpacker.cc:96 hpiontrackertrb3unpacker.cc:97 hpiontrackertrb3unpacker.cc:98 hpiontrackertrb3unpacker.cc:99 hpiontrackertrb3unpacker.cc:100 hpiontrackertrb3unpacker.cc:101 hpiontrackertrb3unpacker.cc:102 hpiontrackertrb3unpacker.cc:103 hpiontrackertrb3unpacker.cc:104 hpiontrackertrb3unpacker.cc:105 hpiontrackertrb3unpacker.cc:106 hpiontrackertrb3unpacker.cc:107 hpiontrackertrb3unpacker.cc:108 hpiontrackertrb3unpacker.cc:109 hpiontrackertrb3unpacker.cc:110 hpiontrackertrb3unpacker.cc:111 hpiontrackertrb3unpacker.cc:112 hpiontrackertrb3unpacker.cc:113 hpiontrackertrb3unpacker.cc:114 hpiontrackertrb3unpacker.cc:115 hpiontrackertrb3unpacker.cc:116 hpiontrackertrb3unpacker.cc:117 hpiontrackertrb3unpacker.cc:118 hpiontrackertrb3unpacker.cc:119 hpiontrackertrb3unpacker.cc:120 hpiontrackertrb3unpacker.cc:121 hpiontrackertrb3unpacker.cc:122 hpiontrackertrb3unpacker.cc:123 hpiontrackertrb3unpacker.cc:124 hpiontrackertrb3unpacker.cc:125 hpiontrackertrb3unpacker.cc:126 hpiontrackertrb3unpacker.cc:127 hpiontrackertrb3unpacker.cc:128 hpiontrackertrb3unpacker.cc:129 hpiontrackertrb3unpacker.cc:130 hpiontrackertrb3unpacker.cc:131 hpiontrackertrb3unpacker.cc:132 hpiontrackertrb3unpacker.cc:133 hpiontrackertrb3unpacker.cc:134 hpiontrackertrb3unpacker.cc:135 hpiontrackertrb3unpacker.cc:136 hpiontrackertrb3unpacker.cc:137 hpiontrackertrb3unpacker.cc:138 hpiontrackertrb3unpacker.cc:139 hpiontrackertrb3unpacker.cc:140 hpiontrackertrb3unpacker.cc:141 hpiontrackertrb3unpacker.cc:142 hpiontrackertrb3unpacker.cc:143 hpiontrackertrb3unpacker.cc:144 hpiontrackertrb3unpacker.cc:145 hpiontrackertrb3unpacker.cc:146 hpiontrackertrb3unpacker.cc:147 hpiontrackertrb3unpacker.cc:148 hpiontrackertrb3unpacker.cc:149 hpiontrackertrb3unpacker.cc:150 hpiontrackertrb3unpacker.cc:151 hpiontrackertrb3unpacker.cc:152 hpiontrackertrb3unpacker.cc:153 hpiontrackertrb3unpacker.cc:154 hpiontrackertrb3unpacker.cc:155 hpiontrackertrb3unpacker.cc:156 hpiontrackertrb3unpacker.cc:157 hpiontrackertrb3unpacker.cc:158 hpiontrackertrb3unpacker.cc:159 hpiontrackertrb3unpacker.cc:160 hpiontrackertrb3unpacker.cc:161 hpiontrackertrb3unpacker.cc:162 hpiontrackertrb3unpacker.cc:163 hpiontrackertrb3unpacker.cc:164 hpiontrackertrb3unpacker.cc:165 hpiontrackertrb3unpacker.cc:166 hpiontrackertrb3unpacker.cc:167 hpiontrackertrb3unpacker.cc:168 hpiontrackertrb3unpacker.cc:169 hpiontrackertrb3unpacker.cc:170 hpiontrackertrb3unpacker.cc:171 hpiontrackertrb3unpacker.cc:172 hpiontrackertrb3unpacker.cc:173 hpiontrackertrb3unpacker.cc:174 hpiontrackertrb3unpacker.cc:175 hpiontrackertrb3unpacker.cc:176 hpiontrackertrb3unpacker.cc:177 hpiontrackertrb3unpacker.cc:178 hpiontrackertrb3unpacker.cc:179 hpiontrackertrb3unpacker.cc:180 hpiontrackertrb3unpacker.cc:181 hpiontrackertrb3unpacker.cc:182 hpiontrackertrb3unpacker.cc:183 hpiontrackertrb3unpacker.cc:184 hpiontrackertrb3unpacker.cc:185 hpiontrackertrb3unpacker.cc:186 hpiontrackertrb3unpacker.cc:187 hpiontrackertrb3unpacker.cc:188 hpiontrackertrb3unpacker.cc:189 hpiontrackertrb3unpacker.cc:190 hpiontrackertrb3unpacker.cc:191 hpiontrackertrb3unpacker.cc:192 hpiontrackertrb3unpacker.cc:193 hpiontrackertrb3unpacker.cc:194 hpiontrackertrb3unpacker.cc:195 hpiontrackertrb3unpacker.cc:196 hpiontrackertrb3unpacker.cc:197 hpiontrackertrb3unpacker.cc:198 hpiontrackertrb3unpacker.cc:199 hpiontrackertrb3unpacker.cc:200 hpiontrackertrb3unpacker.cc:201 hpiontrackertrb3unpacker.cc:202 hpiontrackertrb3unpacker.cc:203 hpiontrackertrb3unpacker.cc:204 hpiontrackertrb3unpacker.cc:205 hpiontrackertrb3unpacker.cc:206 hpiontrackertrb3unpacker.cc:207 hpiontrackertrb3unpacker.cc:208 hpiontrackertrb3unpacker.cc:209 hpiontrackertrb3unpacker.cc:210 hpiontrackertrb3unpacker.cc:211 hpiontrackertrb3unpacker.cc:212 hpiontrackertrb3unpacker.cc:213 hpiontrackertrb3unpacker.cc:214 hpiontrackertrb3unpacker.cc:215 hpiontrackertrb3unpacker.cc:216 hpiontrackertrb3unpacker.cc:217 hpiontrackertrb3unpacker.cc:218 hpiontrackertrb3unpacker.cc:219 hpiontrackertrb3unpacker.cc:220 hpiontrackertrb3unpacker.cc:221 hpiontrackertrb3unpacker.cc:222 hpiontrackertrb3unpacker.cc:223 hpiontrackertrb3unpacker.cc:224 hpiontrackertrb3unpacker.cc:225 hpiontrackertrb3unpacker.cc:226 hpiontrackertrb3unpacker.cc:227 hpiontrackertrb3unpacker.cc:228 hpiontrackertrb3unpacker.cc:229 hpiontrackertrb3unpacker.cc:230 hpiontrackertrb3unpacker.cc:231 hpiontrackertrb3unpacker.cc:232 hpiontrackertrb3unpacker.cc:233 hpiontrackertrb3unpacker.cc:234 hpiontrackertrb3unpacker.cc:235 hpiontrackertrb3unpacker.cc:236 hpiontrackertrb3unpacker.cc:237 hpiontrackertrb3unpacker.cc:238 hpiontrackertrb3unpacker.cc:239 hpiontrackertrb3unpacker.cc:240 hpiontrackertrb3unpacker.cc:241 hpiontrackertrb3unpacker.cc:242 hpiontrackertrb3unpacker.cc:243 hpiontrackertrb3unpacker.cc:244 hpiontrackertrb3unpacker.cc:245 hpiontrackertrb3unpacker.cc:246 hpiontrackertrb3unpacker.cc:247 hpiontrackertrb3unpacker.cc:248 hpiontrackertrb3unpacker.cc:249 hpiontrackertrb3unpacker.cc:250 hpiontrackertrb3unpacker.cc:251 hpiontrackertrb3unpacker.cc:252 hpiontrackertrb3unpacker.cc:253 hpiontrackertrb3unpacker.cc:254 hpiontrackertrb3unpacker.cc:255 hpiontrackertrb3unpacker.cc:256 hpiontrackertrb3unpacker.cc:257 hpiontrackertrb3unpacker.cc:258 hpiontrackertrb3unpacker.cc:259 hpiontrackertrb3unpacker.cc:260 hpiontrackertrb3unpacker.cc:261 hpiontrackertrb3unpacker.cc:262 hpiontrackertrb3unpacker.cc:263 hpiontrackertrb3unpacker.cc:264 hpiontrackertrb3unpacker.cc:265 hpiontrackertrb3unpacker.cc:266 hpiontrackertrb3unpacker.cc:267 hpiontrackertrb3unpacker.cc:268 hpiontrackertrb3unpacker.cc:269 hpiontrackertrb3unpacker.cc:270 hpiontrackertrb3unpacker.cc:271 hpiontrackertrb3unpacker.cc:272 hpiontrackertrb3unpacker.cc:273 hpiontrackertrb3unpacker.cc:274 hpiontrackertrb3unpacker.cc:275 hpiontrackertrb3unpacker.cc:276 hpiontrackertrb3unpacker.cc:277 hpiontrackertrb3unpacker.cc:278 hpiontrackertrb3unpacker.cc:279 hpiontrackertrb3unpacker.cc:280 hpiontrackertrb3unpacker.cc:281 hpiontrackertrb3unpacker.cc:282 hpiontrackertrb3unpacker.cc:283 hpiontrackertrb3unpacker.cc:284 hpiontrackertrb3unpacker.cc:285 hpiontrackertrb3unpacker.cc:286 hpiontrackertrb3unpacker.cc:287 hpiontrackertrb3unpacker.cc:288 hpiontrackertrb3unpacker.cc:289 hpiontrackertrb3unpacker.cc:290 hpiontrackertrb3unpacker.cc:291 hpiontrackertrb3unpacker.cc:292 hpiontrackertrb3unpacker.cc:293 hpiontrackertrb3unpacker.cc:294 hpiontrackertrb3unpacker.cc:295 hpiontrackertrb3unpacker.cc:296 hpiontrackertrb3unpacker.cc:297 hpiontrackertrb3unpacker.cc:298 hpiontrackertrb3unpacker.cc:299 hpiontrackertrb3unpacker.cc:300 hpiontrackertrb3unpacker.cc:301 hpiontrackertrb3unpacker.cc:302 hpiontrackertrb3unpacker.cc:303 hpiontrackertrb3unpacker.cc:304 hpiontrackertrb3unpacker.cc:305 hpiontrackertrb3unpacker.cc:306 hpiontrackertrb3unpacker.cc:307 hpiontrackertrb3unpacker.cc:308 hpiontrackertrb3unpacker.cc:309 hpiontrackertrb3unpacker.cc:310 hpiontrackertrb3unpacker.cc:311 hpiontrackertrb3unpacker.cc:312 hpiontrackertrb3unpacker.cc:313 hpiontrackertrb3unpacker.cc:314 hpiontrackertrb3unpacker.cc:315 hpiontrackertrb3unpacker.cc:316 hpiontrackertrb3unpacker.cc:317 hpiontrackertrb3unpacker.cc:318 hpiontrackertrb3unpacker.cc:319 hpiontrackertrb3unpacker.cc:320 hpiontrackertrb3unpacker.cc:321 hpiontrackertrb3unpacker.cc:322 hpiontrackertrb3unpacker.cc:323 hpiontrackertrb3unpacker.cc:324 hpiontrackertrb3unpacker.cc:325 hpiontrackertrb3unpacker.cc:326 hpiontrackertrb3unpacker.cc:327 hpiontrackertrb3unpacker.cc:328 hpiontrackertrb3unpacker.cc:329 hpiontrackertrb3unpacker.cc:330 hpiontrackertrb3unpacker.cc:331 hpiontrackertrb3unpacker.cc:332 hpiontrackertrb3unpacker.cc:333 hpiontrackertrb3unpacker.cc:334 hpiontrackertrb3unpacker.cc:335 hpiontrackertrb3unpacker.cc:336 hpiontrackertrb3unpacker.cc:337 hpiontrackertrb3unpacker.cc:338 hpiontrackertrb3unpacker.cc:339 hpiontrackertrb3unpacker.cc:340 hpiontrackertrb3unpacker.cc:341 hpiontrackertrb3unpacker.cc:342 hpiontrackertrb3unpacker.cc:343 hpiontrackertrb3unpacker.cc:344 hpiontrackertrb3unpacker.cc:345 hpiontrackertrb3unpacker.cc:346 hpiontrackertrb3unpacker.cc:347 hpiontrackertrb3unpacker.cc:348 hpiontrackertrb3unpacker.cc:349 hpiontrackertrb3unpacker.cc:350 hpiontrackertrb3unpacker.cc:351 hpiontrackertrb3unpacker.cc:352 hpiontrackertrb3unpacker.cc:353 hpiontrackertrb3unpacker.cc:354 hpiontrackertrb3unpacker.cc:355 hpiontrackertrb3unpacker.cc:356 hpiontrackertrb3unpacker.cc:357 hpiontrackertrb3unpacker.cc:358 hpiontrackertrb3unpacker.cc:359 hpiontrackertrb3unpacker.cc:360 hpiontrackertrb3unpacker.cc:361 hpiontrackertrb3unpacker.cc:362 hpiontrackertrb3unpacker.cc:363 hpiontrackertrb3unpacker.cc:364