9 static const InterfaceID IID_IALFA_Decoder_charge (
"ALFA_Decoder_charge", 1, 0);
12 return IID_IALFA_Decoder_charge;
21 m_robDataProvider (
"ROBDataProviderSvc",
name)
24 declareInterface<ALFA_Decoder_charge>(
this);
47 if (
sc.isFailure())
return sc;
52 return StatusCode::FAILURE;
67 return StatusCode::SUCCESS;
89 return StatusCode::SUCCESS;
104 std::vector<uint32_t> VData;
161 robFrag->rod_data(vint);
167 uint32_t ROD_source_ID = robFrag->rod_source_id();
170 uint32_t ROD_LVL1_ID = robFrag->rod_lvl1_id();
172 msg(
MSG::DEBUG) <<
"============================" << std::endl;
179 msg(
MSG::DEBUG) <<
"============================" << std::endl;
182 uint32_t evt_Id = ((robFrag->rod_lvl1_id()) & 0xFF000000) >> 24;
183 uint32_t lvl1_Id = ((robFrag->rod_lvl1_id()) & 0x00FFFFFF) ;
211 if (
n==0) Event_num = LvL1;
212 else Event_num = ((robFrag->rod_lvl1_id()) & 0x00FFFFFF) + Event_num;
214 LvL1 = ((robFrag->rod_lvl1_id()) & 0x00FFFFFF)+1 ;
215 EcrId = ((robFrag->rod_lvl1_id()) & 0xFF000000) >> 24;
217 if(
l==1) Event_num_max=Event_num;
219 Event_num = ((robFrag->rod_lvl1_id()) & 0x00FFFFFF)+1 + Event_num_max;
224 msg(MSG::INFO) <<
" Event_num " << Event_num <<
" Count_evt " << Count_evt <<
endmsg;
248 msg(MSG::ERROR)<<
" Error: data corrupted" <<
endmsg;
249 return StatusCode::FAILURE;
265 return StatusCode::FAILURE;
270 if (wordPos >=
size) {
271 msg(MSG::ERROR)<<
" Error: data corrupted"<<
endmsg;
272 return StatusCode::FAILURE;
294 return StatusCode::FAILURE;
319 for (
unsigned int i=0;
i<8;
i++){
321 charge_hit = (
char) tmpCharge & 0x00000001;
327 if(CountPMF0==1) collection =
getCollection(MBIdNum,rdoCont );
351 auto rawData_charge = std::make_unique< ALFA_RawData_charge >(PMFIdNum);
353 rawData_charge->SetChannelNum_PMF(ChannelIdNum);
354 rawData_charge->SetPMFId_PMF(PMFIdNum);
355 rawData_charge->SetMBId_PMF(MBIdNum);
356 rawData_charge->SetChargeChan_PMF(ChargeNum);
359 msg(
MSG::DEBUG)<<
" PMFIdNum = " << PMFIdNum <<
" ChannelIdNum = " << ChannelIdNum <<
" chargeNum = " << ChargeNum <<
endmsg;
361 std::vector<uint16_t> ChargeHitId;
362 ChargeHitId.push_back(ChargeNum);
363 rawData_charge->SetChargeChanVect_PMF(ChargeHitId);
365 rawData_charge->addData(vint[wordPos]);
366 rawData_charge->PushBack_PMF(ChargeNum);
368 if(collection) collection->
push_back(rawData_charge.release());
393 if (wordPos >=
size) {
395 return StatusCode::FAILURE;
408 return StatusCode::FAILURE;
416 const eformat::FullEventFragment<const uint32_t*> *
event =
m_robDataProvider->getEvent(Gaudi::Hive::currentContext());
418 msg(
MSG::DEBUG) <<
"========FULL Event=============" << std::endl;
429 msg(
MSG::DEBUG) <<
"============================" << std::endl;
431 uint32_t Time_StampID =
event->bc_time_seconds();
454 return StatusCode::SUCCESS;
470 bool collExists =
false;
476 if ((*it)->GetMBId_POT() == MBIdNum) {