00001 //************************************************************************* 00002 //* * 00003 //* class MCselectorWrapper * 00004 //* make a concrete selector out of one hiding behind the IMCselector * 00005 //* interface. STL wants concrete classes. * 00006 //************************************************************************* 00007 00008 #ifndef HEPMCHELPER_MCSELECTORWRAPPER_H 00009 #define HEPMCHELPER_MCSELECTORWRAPPER_H 00010 00011 #ifndef HEPMCHELPER_IMCSELECTOR_H 00012 #include "AtlfastUtils/HepMC_helper/IMCselector.h" 00013 #endif 00014 00015 namespace HepMC_helper{ 00016 class IMCselector; 00017 class MCselectorWrapper{ 00018 public: 00019 MCselectorWrapper(const IMCselector* selector): m_selector(selector){} 00020 bool operator()(const Particle* const p){ 00021 return (*m_selector)(p) ; 00022 } 00023 const HepMC_helper::IMCselector* asIMCselector() const {return m_selector;} 00024 private: 00025 const IMCselector* m_selector; 00026 }; 00027 } 00028 #endif 00029