00001 //************************************************************************* 00002 //* * 00003 //* class SelectZ0 GenParticle selector * 00004 //* * 00005 //* Selects Z0s * 00006 //************************************************************************* 00007 #ifndef HEPMCHELPER_SELECTZ0_H 00008 #define HEPMCHELPER_SELECTZ0_H 00009 00010 #ifndef HEPMCHELPER_IMCSELECTOR_H 00011 #include "AtlfastUtils/HepMC_helper/IMCselector.h" 00012 #endif 00013 00014 #ifndef HEPMCHELPER_MCCUTS_H 00015 #include "AtlfastUtils/HepMC_helper/MCCuts.h" 00016 #endif 00017 00018 #ifndef HEPMCHELPER_SELECTTYPE_H 00019 #include "AtlfastUtils/HepMC_helper/SelectType.h" 00020 #endif 00021 00022 #ifndef ATLFASTCODE_PARTICLECODES_H 00023 #include "AtlfastEvent/ParticleCodes.h" 00024 #endif 00025 00026 namespace HepMC_helper{ 00027 using Atlfast::ParticleCodes; 00028 class SelectZ0: public IMCselector { 00029 public: 00030 // Constructor 00031 SelectZ0(double pt, double eta):m_kineCuts(eta, pt),m_z0Type(ParticleCodes::Z0){} 00032 // Destructor 00033 ~SelectZ0(){}; 00034 // The operator() method to determine acceptability of particle 00035 IMCselector* create() const; 00036 bool operator() ( const Particle* const p ) const; 00037 bool operator() ( const Particle& p ) const; 00038 private: 00039 MCCuts m_kineCuts; 00040 SelectType m_z0Type; 00041 int m_id ; 00042 double m_ptMin ; 00043 double m_etaMax ; 00044 }; 00045 }//namespace 00046 #endif