9 #ifndef HEPMC_GENVERTEX_H 10 #define HEPMC_GENVERTEX_H 12 #include "HepMC/Data/SmartPointer.h" 13 #include "HepMC/Data/GenVertexData.h" 14 #include "HepMC/FourVector.h" 15 #include "HepMC/Common.h" 16 #include "HepMC/Errors.h" 65 bool in_event()
const {
return parent_event() != NULL; }
70 int id()
const {
return m_id; }
73 int status()
const {
return m_data.status; }
91 const vector<GenParticlePtr> particles(
Relationship range)
const;
93 const vector<GenParticlePtr>&
particles_in()
const {
return m_particles_in; }
95 const vector<GenParticlePtr>&
particles_out()
const {
return m_particles_out; }
119 bool add_attribute(
string name, shared_ptr<Attribute> att);
122 vector<string> attribute_names()
const;
125 void remove_attribute(
string name);
129 shared_ptr<T> attribute(
string name)
const;
132 string attribute_as_string(
string name)
const;
137 #ifndef HEPMC_NO_DEPRECATED 146 HEPMC_DEPRECATED(
"Use GenParticlePtr instead of GenParticle*")
151 HEPMC_DEPRECATED(
"Use GenParticlePtr instead of GenParticle*")
162 HEPMC_DEPRECATED(
"Iterate over std container particles_in() instead")
166 HEPMC_DEPRECATED(
"Iterate over std container particles_in() instead")
170 HEPMC_DEPRECATED(
"Iterate over std container particles_out() instead")
174 HEPMC_DEPRECATED(
"Iterate over std container particles_out() instead")
178 HEPMC_DEPRECATED(
"Use particles_in/out() functions instead")
180 if (range == parents)
return m_particles_in.begin();
181 if (range == children)
return m_particles_out.begin();
182 throw Exception(
"GenVertex::particles_begin: Only 'parents' and 'children' ranges allowed.");
186 HEPMC_DEPRECATED(
"Use particles_in/out() functions instead")
188 if (range == parents)
return m_particles_in.end();
189 if (range == children)
return m_particles_out.end();
190 throw Exception(
"GenVertex::particles_end: Only 'parents' and 'children' ranges allowed.");
195 int particles_in_size()
const {
return m_particles_in.size(); }
199 int particles_out_size()
const {
return m_particles_out.size(); }
224 #include "HepMC/GenEvent.h" 229 return parent_event()?
230 parent_event()->attribute<T>(name, id()): HepMC::shared_ptr<T>();
const vector< GenParticlePtr > & particles_out() const
Get list of outgoing particles.
GenVertexData m_data
Vertex data.
HEPMC_DEPRECATED("Use particles_out().size() instead") int particles_out_size() const
vector< GenParticlePtr >::const_iterator particles_out_const_iterator
Define iterator by typedef.
void set_status(int stat)
Set vertex status code.
SmartPointer< class GenParticle > GenParticlePtr
Smart pointer to GenParticle.
static const FourVector & ZERO_VECTOR()
Static null FourVector = (0,0,0,0)
Smart pointer for HepMC objects.
bool has_set_position() const
Check if position of this vertex is set.
Stores vertex-related information.
HEPMC_DEPRECATED("Use particles_in().size() instead") int particles_in_size() const
vector< GenParticlePtr > m_particles_in
Incoming particle list.
weak_ptr< GenVertex > m_this
Pointer to shared pointer managing this vertex.
Stores event-related information.
GenEvent * parent_event() const
Stores serializable vertex information.
vector< GenParticlePtr >::iterator particle_iterator
Define iterator by typedef.
vector< GenParticlePtr > m_particles_out
Outgoing particle list.
int status() const
Get vertex status code.
void add_particle_out(GenParticle *p)
const vector< GenParticlePtr > & particles_in() const
Get list of incoming particles.
shared_ptr< T > attribute(string name) const
Get attribute of type T.
vector< GenParticlePtr >::const_iterator particles_in_const_iterator
Define iterator by typedef.
void add_particle_in(GenParticle *p)
GenEvent * m_event
Parent event.
Definition of template class SmartPointer.
const GenVertexData & data() const
Get vertex data.
Stores particle-related information.
Relationship
List of methods of searching starting from a particle or vertex.