104 const uint32_t* ef = 0;
106 f.assign( m_reader->nextEvent() );
109 std::cerr <<
"Found invalid event (traceback):" << std::endl;
119 f.event_filter_info( ef );
129 if ( !m_keepRdm && ( ( *ef ) >> 31 ) != 0 ) {
continue; }
134 m_re->setRunNo(
f.run_no() );
135 m_re->setEventNo(
f.global_id() );
136 m_re->setTime(
f.time() );
137 m_re->addReHltRaw( (uint32_t*)ef, 4 );
140 uint32_t hv_status = 0;
142 int nsds =
f.children( m_sds, 64 );
143 for (
int sdi = 0; sdi < nsds; ++sdi )
149 const uint32_t* specific_header;
151 uint32_t source_id_number = sd.
source_id();
152 source_id_number <<= 8;
153 source_id_number >>= 24;
154 switch ( source_id_number )
156 case 161: hv_status |= ( ( 8 | ( ( *specific_header ) & 0x7 ) ) << 8 );
break;
157 case 162: hv_status |= ( ( 8 | ( ( *specific_header ) & 0x7 ) ) << 4 );
break;
158 case 164: hv_status |= ( 8 | ( ( *specific_header ) & 0x7 ) );
break;
166 m_re->setFlag1( hv_status );
169 for (
int robi = 0; robi < nrobs; robi++ )
173 uint32_t* dataptr = NULL;
179 source_id_number <<= 8;
180 source_id_number >>= 24;
185 if ( source_id_number == 165 )
187 m_re->addReEtsDigi( dataptr, rob.
rod_ndata() );
193 switch ( source_id_number )
195 case 161: m_re->addReMdcDigi( dataptr, rob.
rod_ndata() );
break;
196 case 163: m_re->addReEmcDigi( dataptr, rob.
rod_ndata() );
break;
197 case 162: m_re->addReTofDigi( dataptr, rob.
rod_ndata() );
break;
199 m_re->addReEtfDigi( dataptr, rob.
rod_ndata() );
201 case 164: m_re->addReMucDigi( dataptr, rob.
rod_ndata() );
break;
207 m_re->addReTrigGTD( dataptr, rob.
rod_ndata() );
209 case 166: m_re->addReZddDigi( dataptr, rob.
rod_ndata() );
break;
211 m_re->addReHltRaw( dataptr, rob.
rod_ndata() );
214 m_re->addMcParticle( dataptr, rob.
rod_ndata() );
224 if ( m_reader->stat() & 4 )
226 std::cerr << std::endl <<
"reading ifstream error !!!" << std::endl;
233 std::cerr << std::endl <<
"Uncaught eformat issue: " << ex.what() << std::endl;
236 std::cerr << std::endl <<
"Uncaught ERS issue: " << ex.what() << std::endl;
237 }
catch ( std::exception& ex )
239 std::cerr << std::endl <<
"Uncaught std exception: " << ex.what() << std::endl;
241 { std::cerr << std::endl <<
"Uncaught unknown exception" << std::endl; }