00001 #ifndef PhysicsTools_HepMCCandAlgos_GenParticlesHelper_h 00002 #define PhysicsTools_HepMCCandAlgos_GenParticlesHelper_h 00003 00004 #include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h" 00005 00006 #include <iostream> 00007 00008 namespace GenParticlesHelper { 00009 00010 typedef reco::GenParticleCollection::const_iterator IG; 00011 typedef reco::GenParticleRefVector::const_iterator IGR; 00012 00013 00015 void findParticles(const reco::GenParticleCollection& sourceParticles, 00016 reco::GenParticleRefVector& particleRefs, 00017 int pdgId, int status ); 00018 00020 void findDescendents(const reco::GenParticleRef& base, 00021 reco::GenParticleRefVector& descendents, 00022 int status, int pdgId=0 ); 00023 00025 void findSisters(const reco::GenParticleRef& baseSister, 00026 reco::GenParticleRefVector& sisterRefs); 00027 00029 bool hasAncestor( const reco::GenParticle* particle, 00030 int pdgId, int status ); 00031 00033 bool isDirect(const reco::GenParticleRef& particle); 00034 00035 std::ostream& operator<<( std::ostream& out, 00036 const reco::GenParticleRef& genRef ); 00037 00038 } 00039 00040 #endif