31 std::shared_ptr<TLstEvent>
event = std::static_pointer_cast<TLstEvent>(rawEvent);
36 int EventsProcessed = 0;
37 uint32_t size =
event->GetDataSize();
38 uint32_t* EvntData =
reinterpret_cast<uint32_t*
>(
event->GetData());
42 if(event->GetLstVersion() == 1) {
43 for(
size_t i = 0; i + 3 < size/4; i += 4) {
51 for(
size_t i = 0; i + 3 < size / 4; i += 4) {
60 return EventsProcessed;
65 std::shared_ptr<TFragment> eventFrag = std::make_shared<TFragment>();
66 Long64_t tmpTimestamp;
69 eventFrag->SetAddress((data[0] >> 16) & 0xffff);
72 tmpTimestamp = data[0] & 0xffff;
75 if(eventFrag->GetChannel() !=
nullptr) {
76 switch(eventFrag->GetChannel()->GetDigitizerType()) {
78 tmpTimestamp = tmpTimestamp<<30;
79 tmpTimestamp |= data[1] & 0x3fffffff;
82 tmpTimestamp = tmpTimestamp<<31;
83 tmpTimestamp |= data[1] & 0x7fffffff;
86 tmpTimestamp = tmpTimestamp<<32;
87 tmpTimestamp |= data[1] & 0xffffffff;
91 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;
92 tmpTimestamp = tmpTimestamp<<32;
93 tmpTimestamp |= data[1] & 0xffffffff;
95 eventFrag->SetTimeStamp(tmpTimestamp);
97 int32_t Charge = (data[2] & 0x7fff);
99 if(Charge == 0 || Charge == 0x8000) {
107 eventFrag->SetCharge(
static_cast<int32_t
>(Charge));
117 std::shared_ptr<TFragment> eventFrag = std::make_shared<TFragment>();
118 Long64_t tmpTimestamp;
120 eventFrag->SetAddress((data[0] >> 16) & 0xffff);
123 tmpTimestamp = data[0] & 0xffff;
124 tmpTimestamp = tmpTimestamp<<32;
125 tmpTimestamp |= data[1] & 0xffffffff;
126 eventFrag->SetTimeStamp(tmpTimestamp);
128 int32_t Charge = (data[2] & 0x7fff);
130 if(Charge == 0 || Charge == 0x8000) {
138 eventFrag->SetCharge(
static_cast<int32_t
>(Charge));