39 uint64_t* ptr =
reinterpret_cast<uint64_t*
>(data);
41 int totalEventsRead = 0;
42 static uint64_t timeStampHighBits = 0;
43 std::shared_ptr<TFragment> eventFrag = std::make_shared<TFragment>();
48 for(
size_t i = 0; i < size/8; ++i) {
57 std::cout<<
"unknown word"<<std::endl;
60 std::cout<<
"trace word"<<std::endl;
67 short infoCode = (ptr[i]>>52)&0xf;
68 if(((ptr[i]>>28)&0xf) != 0x0) {
69 std::cout<<
"not a proper word!"<<std::endl;
75 std::cout<<
"undefined infoCode "<<infoCode<<std::endl;
85 timeStampHighBits = (ptr[i]>>32)&0xfffff;
89 timeStampHighBits = (ptr[i]>>12)&0xfffff00000;
92 std::cout<<
"infoCode "<<infoCode<<std::endl;
106 switch(channel->GetDetectorNumber()) {
122 ppgEvent->SetHighTimeStamp(timeStampHighBits);
123 ppgEvent->SetNetworkPacketId(
static_cast<Int_t
>((ptr[i]>>32)&0xffff));
127 eventFrag->SetAddress((ptr[i]>>48)&0xfff);
128 eventFrag->SetTimeStamp((ptr[i]&0xfffffff) | (timeStampHighBits<<28));
132 eventFrag->SetCharge(
static_cast<Int_t
>((ptr[i]>>32)&0xffff));
142 Push(*
fBadOutputQueue, std::make_shared<TBadFragment>(*eventFrag,
reinterpret_cast<uint32_t*
>(data), size/4, i,
false));
146 if(((ptr[i]>>48)&0xfff) != eventFrag->GetAddress() + 16) {
151 Push(*
fBadOutputQueue, std::make_shared<TBadFragment>(*eventFrag,
reinterpret_cast<uint32_t*
>(data), size/4, i,
false));
157 if(
static_cast<Long64_t
>((ptr[i]&0xfffffff) | (timeStampHighBits<<28)) != eventFrag->GetTimeStamp()) {
162 Push(*
fBadOutputQueue, std::make_shared<TBadFragment>(*eventFrag,
reinterpret_cast<uint32_t*
>(data), size/4, i,
false));
171 eventFrag->SetCfd(
static_cast<Int_t
>((ptr[i]>>32)&0xffff));
184 return totalEventsRead;