1#include "TauolaHepMCEvent.h"
20 if(
m_event->momentum_unit() != HepMC::Units::GEV ||
21 m_event->length_unit() != HepMC::Units::MM )
23 m_event->use_units(HepMC::Units::GEV,HepMC::Units::MM);
27TauolaHepMCEvent::~TauolaHepMCEvent(){
45 HepMC::GenEvent::particle_const_iterator part_itr =
m_event->particles_begin();
47 for( ; part_itr!=
m_event->particles_end(); part_itr++){
48 if(abs((*part_itr)->pdg_id())==pdg_id)
70 std::vector<TauolaParticle*> tau_list =
findParticles(pdg_id);
71 std::vector<TauolaParticle*> stable_tau_list;
73 for(
int i=0; i<(int) tau_list.size(); i++){
75 if(!tau_list.at(i)->hasDaughters())
76 stable_tau_list.push_back(tau_list.at(i));
79 std::vector<TauolaParticle*> t = tau_list.at(i)->getDaughters();
81 if(t.size()==1)
continue;
82 if(t.size()==2 && (abs(t[0]->getPdgID())==15 || abs(t[1]->getPdgID())==15) )
continue;
83 Log::Warning()<<
"Particle with pdg code "<<tau_list.at(i)->getPdgID()
84 <<
" already has daughters" <<endl;
88 return stable_tau_list;
95 string momentum(
"GEV"),length(
"MM");
97 switch(Tauola::momentumUnit)
109 switch(Tauola::lengthUnit)
121 m_event->use_units(momentum,length);
std::vector< TauolaParticle * > findParticles(int pdgID)
TauolaHepMCEvent(HepMC::GenEvent *event)
std::vector< TauolaParticle * > m_tau_list
std::vector< TauolaParticle * > findStableParticles(int pdgID)
HepMC::GenEvent * getEvent()
HepMC::GenEvent * m_event