00001 //================================================= 00002 // 00003 // GenIMCselector.h 00004 // 00005 // Interface to selectors for HepMC::GenParticles 00006 // 00007 //=================================================== 00008 00009 #ifndef TRUTHHELPER_GENIMCSELECTOR_H 00010 #define TRUTHHELPER_GENIMCSELECTOR_H 00011 00012 namespace HepMC{ 00013 class GenParticle; 00014 } 00015 00016 typedef HepMC::GenParticle Particle; 00017 00018 00019 class GenIMCselector{ 00020 public: 00021 // allow concrete objects to be copied 00022 virtual GenIMCselector* create() const = 0; 00023 //selection function 00024 virtual bool operator()( const Particle* const) const = 0; 00025 // virtual bool operator()( const Particle& p ) const = 0; 00026 bool operator()( const Particle& p){return this->operator()(&p);} 00027 virtual ~GenIMCselector(){}; 00028 }; 00029 #endif 00030 00031 00032