1#ifndef Event_McParticle_H
2#define Event_McParticle_H
4#include "CLHEP/Geometry/Point3D.h"
5#include "CLHEP/Vector/LorentzVector.h"
6#include "EventModel/EventModel.h"
7#include "GaudiKernel/ContainedObject.h"
8#include "GaudiKernel/Kernel.h"
9#include "GaudiKernel/ObjectList.h"
10#include "GaudiKernel/ObjectVector.h"
11#include "GaudiKernel/SmartRef.h"
12#include "GaudiKernel/SmartRefVector.h"
62 const HepLorentzVector& initialMomentum,
const HepLorentzVector& finalMomentum,
64 const std::string process =
"" );
68 const HepLorentzVector& initialMomentum,
69 const HepLorentzVector&
initialPosition,
const std::string process =
"" );
72 const HepLorentzVector& initialMomentum,
73 const HepLorentzVector&
initialPosition,
const std::string process =
"" );
129 void setMother(
const SmartRef<McParticle> m );
132 void addDaughter(
const SmartRef<McParticle> d ) { m_daughters.push_back( d ); };
149 const SmartRefVector<McParticle>&
daughterList()
const {
return m_daughters; };
164 unsigned long m_statusFlags;
166 HepLorentzVector m_initialPosition;
168 HepLorentzVector m_finalPosition;
171 HepLorentzVector m_initialFourMomentum;
173 HepLorentzVector m_finalFourMomentum;
175 SmartRef<McParticle> m_mother;
177 SmartRefVector<McParticle> m_daughters;
179 std::string m_process;
const CLID & CLID_McParticle
void setVertexIndex0(int index0)
methods for setting and getting vertex indexes
void removeDaughter(const SmartRef< McParticle > mcPart)
Used for pruning.
bool primaryParticle() const
Retrieve whether this is a primary particle.
const HepLorentzVector & initialPosition() const
Retrieve pointer to the start, end vertex positions.
void setMother(const SmartRef< McParticle > m)
set the mother particle
StatusBits
status bits modeled
@ DECAYFLT
Decayed by generator.
@ PRIMARY
Decayed in flight.
@ ERROR
this particle is a leaf in the particle tree
const HepLorentzVector & initialFourMomentum() const
const McParticle & mother() const
access to the mother particle
unsigned int statusFlags() const
retrieve all of status flags for const object
void initialize(StdHepId id, unsigned int statusBits, const HepLorentzVector &initialMomentum, const HepLorentzVector &initialPosition, const std::string process="")
Set the initial attributes of the McParticle.
bool decayFromGenerator() const
Decayed from generator.
bool leafParticle() const
Retrieve whether this is a leaf particle.
const SmartRefVector< McParticle > & daughterList() const
access the process name
void addStatusFlag(unsigned int flag)
add a new flag to the status flags
void finalize(const HepLorentzVector &finalPosition)
Set the final attributes of the McParticle.
void setVertexIndex1(int index1)
static const CLID & classID()
void addDaughter(const SmartRef< McParticle > d)
add a daugther particle to this particle
virtual ~McParticle()
Destructor.
virtual const CLID & clID() const
McParticle()
Constructors.
bool decayInFlight() const
Decayed in flight.
void setTrackIndex(int trackIndex)
void init(McParticle *mother, StdHepId id, unsigned int statusBits, const HepLorentzVector &initialMomentum, const HepLorentzVector &finalMomentum, const HepLorentzVector &initialPosition, const HepLorentzVector &finalPosition, const std::string process="")
const HepLorentzVector & finalPosition() const
StdHepId particleProperty() const
Retrieve particle property.
ObjectList< McParticle > McParticleCol