2 #ifndef IMPL_MCPARTICLEIMPL_H
3 #define IMPL_MCPARTICLEIMPL_H 1
6 #include "EVENT/LCIO.h"
7 #include "AccessChecked.h"
9 #include "EVENT/MCParticle.h"
36 virtual int id()
const {
return simpleUID() ; }
79 virtual int getPDG()
const ;
138 virtual const double*
getVertex()
const ;
144 virtual float getTime()
const ;
157 virtual double getMass()
const ;
171 virtual const float*
getSpin()
const ;
245 void setSpin(
const float spin[3] );
254 virtual void setCreatedInSimulation(
bool val) ;
256 virtual void setBackscatter(
bool val) ;
258 virtual void setVertexIsNotEndpointOfParent(
bool val) ;
260 virtual void setDecayedInTracker(
bool val) ;
262 virtual void setDecayedInCalorimeter(
bool val) ;
264 virtual void setHasLeftDetector(
bool val) ;
266 virtual void setStopped(
bool val) ;
268 virtual void setOverlay(
bool val) ;
281 std::bitset<32> _simstatus ;
283 double _endpoint[3] ;
284 double _pEndpoint[3] ;
std::vector< MCParticle * > MCParticleVec
Vector of (pointers to) MCParticles.
Definition: MCParticle.h:19
virtual bool vertexIsNotEndpointOfParent() const
True if the particle's vertex is not the endpoint of the parent particle.
Definition: MCParticleImpl.cc:185
virtual const int * getColorFlow() const
Returns the color flow.
Definition: MCParticleImpl.cc:168
virtual const double * getMomentumAtEndpoint() const
Returns the particle momentum at the endpoint.
Definition: MCParticleImpl.cc:197
void setTime(float time)
Sets the createion time.
Definition: MCParticleImpl.cc:257
virtual const double * getMomentum() const
Returns the particle momentum at the production vertex.
Definition: MCParticleImpl.cc:196
void setEndpoint(const double pnt[3])
Sets the particle endpoint.
Definition: MCParticleImpl.cc:297
virtual float getTime() const
The creation time of the particle in [ns] wrt.
Definition: MCParticleImpl.cc:195
virtual double getMass() const
Returns the mass of the particle in [GeV].
Definition: MCParticleImpl.cc:198
virtual const EVENT::MCParticleVec & getParents() const
Returns the parents of this particle.
Definition: MCParticleImpl.cc:68
virtual bool hasLeftDetector() const
True if the particle has left the world volume undecayed.
Definition: MCParticleImpl.cc:188
virtual int getGeneratorStatus() const
Returns the status for particles from the generator 0 empty line 1 undecayed particle, stable in the generator 2 particle decayed in the generator 3 documentation line.
Definition: MCParticleImpl.cc:174
virtual bool isBackscatter() const
True if the particle is the result of a backscatter from a calorimeter shower.
Definition: MCParticleImpl.cc:184
void setGeneratorStatus(int status)
Sets the Generator status.
Definition: MCParticleImpl.cc:239
virtual const double * getEndpoint() const
Returns the i-th daughter of this particle.
Definition: MCParticleImpl.cc:140
void addParent(EVENT::MCParticle *mom)
Adds a parent particle.
Definition: MCParticleImpl.cc:219
void addDaughter(EVENT::MCParticle *daughter)
Adds a daughter particle - only called from addParent().
Definition: MCParticleImpl.cc:210
virtual bool isDecayedInTracker() const
True if the particle has interacted in a tracking region.
Definition: MCParticleImpl.cc:186
void setColorFlow(const int cflow[2])
Sets the color flow.
Definition: MCParticleImpl.cc:314
void setSimulatorStatus(int status)
Sets the Simulator status.
Definition: MCParticleImpl.cc:244
void setMass(float m)
Sets the mass.
Definition: MCParticleImpl.cc:288
void setMomentum(const float p[3])
Sets the momentum.
Definition: MCParticleImpl.cc:262
void setMomentumAtEndpoint(const float p[3])
Sets the momentum at the endpoint.
Definition: MCParticleImpl.cc:275
void setVertex(const double vtx[3])
Sets the production vertex.
Definition: MCParticleImpl.cc:251
void setCharge(float c)
Sets the charge.
Definition: MCParticleImpl.cc:292
virtual const EVENT::MCParticleVec & getDaughters() const
Returns the daughters of this particle.
Definition: MCParticleImpl.cc:72
virtual double getEnergy() const
Returns the energy of the particle (at the vertex) in [GeV] computed from the particle's momentum and...
Definition: MCParticleImpl.cc:160
The LCIO Monte Carlo particle.
Definition: MCParticle.h:27
virtual bool isCreatedInSimulation() const
True if the particle has been created by the simulation program (rather than the generator).
Definition: MCParticleImpl.cc:183
void setPDG(int pdg)
Sets the parent.
Definition: MCParticleImpl.cc:235
virtual bool isStopped() const
True if the particle has been stopped by the simulation program.
Definition: MCParticleImpl.cc:189
virtual bool isDecayedInCalorimeter() const
True if the particle has interacted in a calorimeter region.
Definition: MCParticleImpl.cc:187
virtual bool isOverlay() const
True if the particle has been overlayed by the simulation (or digitization) program.
Definition: MCParticleImpl.cc:190
virtual const double * getVertex() const
Returns the production vertex of the particle.
Definition: MCParticleImpl.cc:194
void setSpin(const float spin[3])
Sets the spin.
Definition: MCParticleImpl.cc:307
virtual int getPDG() const
Returns the number of daughters of this particle.
Definition: MCParticleImpl.cc:173
Controls access to objects.
Definition: AccessChecked.h:17
virtual int getSimulatorStatus() const
Returns the status for particles from the simulation, e.g.
Definition: MCParticleImpl.cc:176
virtual float getCharge() const
Returns the particle's charge.
Definition: MCParticleImpl.cc:199
Implementation of MCParticle.
Definition: MCParticleImpl.h:24
virtual ~MCParticleImpl()
Copy c'tor.
Definition: MCParticleImpl.cc:65
virtual const float * getSpin() const
Returns the spin.
Definition: MCParticleImpl.cc:164
virtual int id() const
Returns an object id for internal (debugging) use in LCIO.
Definition: MCParticleImpl.h:36