1#ifndef Event_McParticle_H
2#define Event_McParticle_H
5#include "GaudiKernel/Kernel.h"
6#include "GaudiKernel/ContainedObject.h"
7#include "GaudiKernel/SmartRef.h"
8#include "GaudiKernel/SmartRefVector.h"
9#include "CLHEP/Vector/LorentzVector.h"
10#include "CLHEP/Geometry/Point3D.h"
11#include "GaudiKernel/ObjectVector.h"
12#include "GaudiKernel/ObjectList.h"
13#include "EventModel/EventModel.h"
28class McParticle :
virtual public ContainedObject {
68 unsigned int statusBits,
69 const HepLorentzVector& initialMomentum,
70 const HepLorentzVector& finalMomentum,
73 const std::string process =
"");
78 unsigned int statusBits,
79 const HepLorentzVector& initialMomentum,
81 const std::string process =
"");
86 unsigned int statusBits,
87 const HepLorentzVector& initialMomentum,
89 const std::string process =
"");
147 void addDaughter(
const SmartRef<McParticle> d){m_daughters.push_back(d);};
164 const SmartRefVector<McParticle>&
daughterList()
const{
return m_daughters;};
181 unsigned long m_statusFlags;
183 HepLorentzVector m_initialPosition;
185 HepLorentzVector m_finalPosition;
188 HepLorentzVector m_initialFourMomentum;
190 HepLorentzVector m_finalFourMomentum;
192 SmartRef<McParticle> m_mother;
194 SmartRefVector<McParticle> m_daughters;
196 std::string m_process;
const CLID & CLID_McParticle
const CLID & CLID_McParticle
bool primaryParticle() const
const HepLorentzVector & finalPosition() const
void setVertexIndex0(int index0)
methods for setting and getting vertex indexes
const McParticle & mother() const
access to the mother particle
const HepLorentzVector & initialPosition() const
Retrieve pointer to the start, end vertex positions.
void initialize(StdHepId id, unsigned int statusBits, const HepLorentzVector &initialMomentum, const HepLorentzVector &initialPosition, const std::string process="")
Set the initial attributes of the McParticle.
const HepLorentzVector & initialPosition() const
Retrieve pointer to the start, end vertex positions.
StatusBits
status bits modeled
@ DECAYFLT
Decayed by generator.
@ PRIMARY
Decayed in flight.
@ ERROR
this particle is a leaf in the particle tree
const McParticle & mother() const
access to the mother particle
const HepLorentzVector & initialFourMomentum() const
StdHepId particleProperty() const
Retrieve particle property.
void setMother(const SmartRef< McParticle > m)
set the mother particle
void initialize(McParticle *mother, StdHepId id, unsigned int statusBits, const HepLorentzVector &initialMomentum, const HepLorentzVector &initialPosition, const std::string process="")
void removeDaughter(const SmartRef< McParticle > mcPart)
Used for pruning.
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 init(McParticle *mother, StdHepId id, unsigned int statusBits, const HepLorentzVector &initialMomentum, const HepLorentzVector &finalMomentum, const HepLorentzVector &initialPosition, const HepLorentzVector &finalPosition, const std::string process="")
void setVertexIndex1(int index1)
bool leafParticle() const
Retrieve whether this is a leaf particle.
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.
void setTrackIndex(int trackIndex)
bool decayInFlight() const
Decayed in flight.
const HepLorentzVector & finalPosition() const
unsigned int statusFlags() const
retrieve all of status flags for const object
bool decayFromGenerator() const
Decayed from generator.
The Monte Carlo particle kinematics information.
ObjectList< McParticle > McParticleCol