57 std::shared_ptr<TFragment> eventFrag = std::make_shared<TFragment>();
58 Long64_t tmpTimestamp;
61 eventFrag->SetAddress((data[0] >> 16) & 0xffff);
64 tmpTimestamp = data[0] & 0xffff;
67 if(eventFrag->GetChannel() !=
nullptr) {
68 switch(eventFrag->GetChannel()->GetDigitizerType()) {
70 tmpTimestamp = tmpTimestamp << 30;
71 tmpTimestamp |= data[1] & 0x3fffffff;
74 tmpTimestamp = tmpTimestamp << 31;
75 tmpTimestamp |= data[1] & 0x7fffffff;
78 tmpTimestamp = tmpTimestamp << 32;
79 tmpTimestamp |= data[1] & 0xffffffff;
83 std::cerr <<
DRED <<
"Failed to find channel for address " <<
hex(eventFrag->GetAddress(), 4) <<
" using default 32bit timestamp format, times might be wrong for this channel!" << std::endl;
84 tmpTimestamp = tmpTimestamp << 32;
85 tmpTimestamp |= data[1] & 0xffffffff;
87 eventFrag->SetTimeStamp(tmpTimestamp);
89 int32_t Charge = (data[2] & 0x7fff);
91 if(Charge == 0 || Charge == 0x8000) {
95 Push(*
BadOutputQueue(), std::make_shared<TBadFragment>(*eventFrag, data, 4, 2,
false));
99 eventFrag->SetCharge(
static_cast<int32_t
>(Charge));
109 std::shared_ptr<TFragment> eventFrag = std::make_shared<TFragment>();
110 Long64_t tmpTimestamp;
112 eventFrag->SetAddress((data[0] >> 16) & 0xffff);
115 tmpTimestamp = data[0] & 0xffff;
116 tmpTimestamp = tmpTimestamp << 32;
117 tmpTimestamp |= data[1] & 0xffffffff;
118 eventFrag->SetTimeStamp(tmpTimestamp);
120 int32_t Charge = (data[2] & 0x7fff);
122 if(Charge == 0 || Charge == 0x8000) {
126 Push(*
BadOutputQueue(), std::make_shared<TBadFragment>(*eventFrag, data, 4, 2,
false));
130 eventFrag->SetCharge(
static_cast<int32_t
>(Charge));