Skip to content
Snippets Groups Projects

Migrate TruthD3PMaker to HepMC3

6 files
+ 121
9
Compare changes
  • Side-by-side
  • Inline
Files
6
@@ -86,12 +86,45 @@ namespace D3PD {
const void* GenParticleGetterTool::nextUntyped() {
if( m_evtItr == m_evtEnd ) return 0;
if( m_evtItr == m_evtEnd ) return nullptr;
#ifdef HEPMC3
//AV: Untyped is a bad idea for smart pointers.
// Check if this GenEvent passes our selection cuts:
if( ! m_selector->pass( *m_evtItr, m_mcColl ) ) {
++m_evtItr;
if( m_evtItr == m_evtEnd ) return 0;
if( m_evtItr == m_evtEnd ) return nullptr;
m_partItr = ( *m_evtItr )->particles().begin();
m_partEnd = ( *m_evtItr )->particles().end();
return nextUntyped();
}
// Check if there are no more particles in this GenEvent:
if( m_partItr == m_partEnd ) {
++m_evtItr;
if( m_evtItr == m_evtEnd ) return nullptr;
m_partItr = ( *m_evtItr )->particles().begin();
m_partEnd = ( *m_evtItr )->particles().end();
return nextUntyped();
}
// Check if this GenParticle passes our selection:
if( ! m_selector->pass( *m_partItr, m_mcColl ) ) {
++m_partItr;
return nextUntyped();
}
// I just like to write this part our verbosely...
HepMC::ConstGenParticlePtr part = *m_partItr;
++m_partItr;
return part.get();
#else
// Check if this GenEvent passes our selection cuts:
if( ! m_selector->pass( *m_evtItr, m_mcColl ) ) {
++m_evtItr;
if( m_evtItr == m_evtEnd ) return nullptr;
m_partItr = ( *m_evtItr )->particles_begin();
m_partEnd = ( *m_evtItr )->particles_end();
return nextUntyped();
@@ -100,7 +133,7 @@ namespace D3PD {
// Check if there are no more particles in this GenEvent:
if( m_partItr == m_partEnd ) {
++m_evtItr;
if( m_evtItr == m_evtEnd ) return 0;
if( m_evtItr == m_evtEnd ) return nullptr;
m_partItr = ( *m_evtItr )->particles_begin();
m_partEnd = ( *m_evtItr )->particles_end();
@@ -118,6 +151,7 @@ namespace D3PD {
++m_partItr;
return part;
#endif
}
const std::type_info& GenParticleGetterTool::elementTypeinfo() const {
Loading