00001 #include <vector> 00002 00003 #include "TruthHelper/IsGenInteracting.h" 00004 #include "HepMC/GenParticle.h" 00005 using std::vector; 00006 using std::abs; 00007 00008 //**************************************************************** 00009 //* IsGenInteracting * 00010 //**************************************************************** 00011 IsGenInteracting::IsGenInteracting() {} 00012 00013 bool IsGenInteracting::operator()( const Particle* const p ) const { 00014 return ( (((p->status()%1000 == 1) || 00015 (p->status()%1000 == 2 && p->status() > 1000)) && 00016 (p->barcode()<100000)) && 00017 !(abs(p->pdg_id())==12 || abs(p->pdg_id())==14 00018 || abs(p->pdg_id())==16 || 00019 (abs(p->pdg_id())==1000039 && p->status()%1000==1 ) || 00020 (abs(p->pdg_id())==1000022 && p->status()%1000==1 )) ) ? true:false; 00021 } 00022 00023 bool IsGenInteracting::operator() ( const Particle& p ) const { 00024 return this->operator()(&p); 00025 } 00026 GenIMCselector* IsGenInteracting::create() const {return new IsGenInteracting(*this);}