\section{E\-V\-E\-N\-T\-:\-:M\-C\-Particle Class Reference}
\label{classEVENT_1_1MCParticle}\index{E\-V\-E\-N\-T\-::\-M\-C\-Particle@{E\-V\-E\-N\-T\-::\-M\-C\-Particle}}


The \doxyref{L\-C\-I\-O}{p.}{classEVENT_1_1LCIO} Monte Carlo particle.  




{\ttfamily \#include $<$pre-\/generated/\-E\-V\-E\-N\-T/\-M\-C\-Particle.\-h$>$}

Inheritance diagram for E\-V\-E\-N\-T\-:\-:M\-C\-Particle\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=5.000000cm]{classEVENT_1_1MCParticle}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
typedef {\bf M\-C\-Particle} {\bf lcobject\-\_\-type}\label{classEVENT_1_1MCParticle_a5149f9996292369a42b3dd1323249db4}

\begin{DoxyCompactList}\small\item\em Useful typedef for template programming with \doxyref{L\-C\-I\-O}{p.}{classEVENT_1_1LCIO}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual {\bf $\sim$\-M\-C\-Particle} ()\label{classEVENT_1_1MCParticle_ab2fa9f729d1597ba843317bd041fa458}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
virtual double {\bf get\-Energy} () const =0\label{classEVENT_1_1MCParticle_a8543fb676410653f4ed23dfba3919c1d}

\begin{DoxyCompactList}\small\item\em Returns the energy of the particle (at the vertex) in [Ge\-V] computed from the particle's momentum and mass -\/ only float used in files. \end{DoxyCompactList}\item 
virtual const float $\ast$ {\bf get\-Spin} () const =0\label{classEVENT_1_1MCParticle_a443467f2a0427252f64ad4b119dbe974}

\begin{DoxyCompactList}\small\item\em Returns the spin (helicity) vector of the particle. \end{DoxyCompactList}\item 
virtual const int $\ast$ {\bf get\-Color\-Flow} () const =0\label{classEVENT_1_1MCParticle_acf755e7559c15341f5548ec45c83f4b7}

\begin{DoxyCompactList}\small\item\em Returns the color flow as defined by the generator. \end{DoxyCompactList}\item 
virtual const {\bf M\-C\-Particle\-Vec} \& {\bf get\-Parents} () const =0\label{classEVENT_1_1MCParticle_ace5a0d2d99184f1c358f94f9e1bd233a}

\begin{DoxyCompactList}\small\item\em Returns the parents of this particle. \end{DoxyCompactList}\item 
virtual const {\bf M\-C\-Particle\-Vec} \& {\bf get\-Daughters} () const =0\label{classEVENT_1_1MCParticle_aa554703098638da25318ea825598e267}

\begin{DoxyCompactList}\small\item\em Returns the daughters of this particle. \end{DoxyCompactList}\item 
virtual int {\bf get\-P\-D\-G} () const =0\label{classEVENT_1_1MCParticle_a025e4a519e691a3f00db1afbe15b1190}

\begin{DoxyCompactList}\small\item\em Returns the P\-D\-G code of the particle. \end{DoxyCompactList}\item 
virtual int {\bf get\-Generator\-Status} () const =0\label{classEVENT_1_1MCParticle_a016cba279486379bf219605f5ae5bc87}

\begin{DoxyCompactList}\small\item\em Returns the status for particles as defined by the generator, typically \par
 0 empty line \par
 1 undecayed particle, stable in the generator \par
 2 particle decayed in the generator \par
 3 documentation line. \end{DoxyCompactList}\item 
virtual int {\bf get\-Simulator\-Status} () const =0
\begin{DoxyCompactList}\small\item\em Returns the status for particles from the simulation, e.\-g. \end{DoxyCompactList}\item 
virtual bool {\bf is\-Created\-In\-Simulation} () const =0\label{classEVENT_1_1MCParticle_a19f466097c75860d4aed5c1fb06d5423}

\begin{DoxyCompactList}\small\item\em True if the particle has been created by the simulation program (rather than the generator). \end{DoxyCompactList}\item 
virtual bool {\bf is\-Backscatter} () const =0
\begin{DoxyCompactList}\small\item\em True if the particle was created by the simulator as a result of an interaction or decay in non-\/tracking region, e.\-g. \end{DoxyCompactList}\item 
virtual bool {\bf vertex\-Is\-Not\-Endpoint\-Of\-Parent} () const =0
\begin{DoxyCompactList}\small\item\em True if the particle was created as a result of a continuous process where the parent particle continues, i.\-e. \end{DoxyCompactList}\item 
virtual bool {\bf is\-Decayed\-In\-Tracker} () const =0\label{classEVENT_1_1MCParticle_a714d6b3a1b862c90cc65d51e35d3d5de}

\begin{DoxyCompactList}\small\item\em True if the particle decayed or interacted in a tracking region. \end{DoxyCompactList}\item 
virtual bool {\bf is\-Decayed\-In\-Calorimeter} () const =0\label{classEVENT_1_1MCParticle_a03ed2552c863a1cdf6a87f5c7e14d262}

\begin{DoxyCompactList}\small\item\em True if the particle decayed or interacted (non-\/continuous interaction, particle terminated) in non-\/tracking region. \end{DoxyCompactList}\item 
virtual bool {\bf has\-Left\-Detector} () const =0\label{classEVENT_1_1MCParticle_a1003e18e5588aa1024a7d2221aee5ef0}

\begin{DoxyCompactList}\small\item\em True if the particle left the world volume undecayed. \end{DoxyCompactList}\item 
virtual bool {\bf is\-Stopped} () const =0\label{classEVENT_1_1MCParticle_ab3df7e3db129de58a84e6b30d9a3ab83}

\begin{DoxyCompactList}\small\item\em True if the particle lost all kinetic energy inside the world volume and did not decay. \end{DoxyCompactList}\item 
virtual bool {\bf is\-Overlay} () const =0\label{classEVENT_1_1MCParticle_a68ce18bef235f330887cbdc0585ebc57}

\begin{DoxyCompactList}\small\item\em True if the particle has been overlayed by the simulation (or digitization) program. \end{DoxyCompactList}\item 
virtual const double $\ast$ {\bf get\-Vertex} () const =0\label{classEVENT_1_1MCParticle_a7b75355cfb641a56ac0395550485b652}

\begin{DoxyCompactList}\small\item\em Returns the production vertex of the particle in [mm]. \end{DoxyCompactList}\item 
virtual float {\bf get\-Time} () const =0
\begin{DoxyCompactList}\small\item\em The creation time of the particle in [ns] wrt. \end{DoxyCompactList}\item 
virtual const double $\ast$ {\bf get\-Endpoint} () const =0
\begin{DoxyCompactList}\small\item\em Returns the endpoint of the particle in [mm] if the endpoint has been set explicetly. \end{DoxyCompactList}\item 
virtual const double $\ast$ {\bf get\-Momentum} () const =0
\begin{DoxyCompactList}\small\item\em Returns the particle's 3-\/momentum at the production vertex in [Ge\-V]. \end{DoxyCompactList}\item 
virtual const double $\ast$ {\bf get\-Momentum\-At\-Endpoint} () const =0\label{classEVENT_1_1MCParticle_a2f4da60f53b2fb4e0e3a9ab9d36c728e}

\begin{DoxyCompactList}\small\item\em Returns the particle's 3-\/momentum at the endpoint in [Ge\-V] Only float used in files. \end{DoxyCompactList}\item 
virtual double {\bf get\-Mass} () const =0\label{classEVENT_1_1MCParticle_ab735c5e85410e1ee9f37067ad538921a}

\begin{DoxyCompactList}\small\item\em Returns the mass of the particle in [Ge\-V] -\/ only float used in files. \end{DoxyCompactList}\item 
virtual float {\bf get\-Charge} () const =0\label{classEVENT_1_1MCParticle_abb9be464f83ac3631b301a0033245c5f}

\begin{DoxyCompactList}\small\item\em Returns the particle's charge. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
static const int {\bfseries B\-I\-T\-Endpoint} = 31\label{classEVENT_1_1MCParticle_aeaa0c83d47d44bdbf641f1132f68fa6f}

\item 
static const int {\bfseries B\-I\-T\-Created\-In\-Simulation} = 30\label{classEVENT_1_1MCParticle_afcafacf41e76516d43035635ae6b4e16}

\item 
static const int {\bfseries B\-I\-T\-Backscatter} = 29\label{classEVENT_1_1MCParticle_a675815a92f2e27f5f4a993717243e63a}

\item 
static const int {\bfseries B\-I\-T\-Vertex\-Is\-Not\-Endpoint\-Of\-Parent} = 28\label{classEVENT_1_1MCParticle_a90fc9f18f9ad6f428516a2451c1875eb}

\item 
static const int {\bfseries B\-I\-T\-Decayed\-In\-Tracker} = 27\label{classEVENT_1_1MCParticle_aac81009084c77234154cac35ddd6e248}

\item 
static const int {\bfseries B\-I\-T\-Decayed\-In\-Calorimeter} = 26\label{classEVENT_1_1MCParticle_a5585b66211c264db3ca7caaaf184b8ae}

\item 
static const int {\bfseries B\-I\-T\-Left\-Detector} = 25\label{classEVENT_1_1MCParticle_a1aec9b87402bcec1806b6e8b943d9daf}

\item 
static const int {\bfseries B\-I\-T\-Stopped} = 24\label{classEVENT_1_1MCParticle_a40924326c7fdd02184dd4fba15b740c6}

\item 
static const int {\bfseries B\-I\-T\-Overlay} = 23\label{classEVENT_1_1MCParticle_a2410e8199a8cf2aa28ab20c5a11272fc}

\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
The \doxyref{L\-C\-I\-O}{p.}{classEVENT_1_1LCIO} Monte Carlo particle. 

\begin{DoxyAuthor}{Author}
gaede 
\end{DoxyAuthor}
\begin{DoxyVersion}{Version}

\end{DoxyVersion}
\begin{DoxyParagraph}{Id\-:}
M\-C\-Particle.\-aid,v 1.\-26 2006-\/08-\/03 16\-:53\-:34 gaede Exp 
\end{DoxyParagraph}


\subsection{Member Function Documentation}
\index{E\-V\-E\-N\-T\-::\-M\-C\-Particle@{E\-V\-E\-N\-T\-::\-M\-C\-Particle}!get\-Endpoint@{get\-Endpoint}}
\index{get\-Endpoint@{get\-Endpoint}!EVENT::MCParticle@{E\-V\-E\-N\-T\-::\-M\-C\-Particle}}
\subsubsection[{get\-Endpoint}]{\setlength{\rightskip}{0pt plus 5cm}virtual const double$\ast$ E\-V\-E\-N\-T\-::\-M\-C\-Particle\-::get\-Endpoint (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classEVENT_1_1MCParticle_ae477676fa5d928c85363a30ca185b83d}


Returns the endpoint of the particle in [mm] if the endpoint has been set explicetly. 

If not, the vertex of the first daughter that has vertex\-Is\-Not\-Endpoint\-Of\-Parent==false is returned. If no such daughter exists (0,0,0) is returned. 

Implemented in {\bf I\-M\-P\-L\-::\-M\-C\-Particle\-Impl} \doxyref{}{p.}{classIMPL_1_1MCParticleImpl_ad1e979dff5e9ab086cf86824cd17b4e6}.



Referenced by U\-T\-I\-L\-::\-L\-C\-T\-O\-O\-L\-S\-::print\-M\-C\-Particles(), and S\-I\-O\-::\-S\-I\-O\-Particle\-Handler\-::write().

\index{E\-V\-E\-N\-T\-::\-M\-C\-Particle@{E\-V\-E\-N\-T\-::\-M\-C\-Particle}!get\-Momentum@{get\-Momentum}}
\index{get\-Momentum@{get\-Momentum}!EVENT::MCParticle@{E\-V\-E\-N\-T\-::\-M\-C\-Particle}}
\subsubsection[{get\-Momentum}]{\setlength{\rightskip}{0pt plus 5cm}virtual const double$\ast$ E\-V\-E\-N\-T\-::\-M\-C\-Particle\-::get\-Momentum (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classEVENT_1_1MCParticle_aca3a6c449405c2d3492c61dfbefc2b2f}


Returns the particle's 3-\/momentum at the production vertex in [Ge\-V]. 


\begin{DoxyItemize}
\item only float used in files. 
\end{DoxyItemize}

Implemented in {\bf I\-M\-P\-L\-::\-M\-C\-Particle\-Impl} \doxyref{}{p.}{classIMPL_1_1MCParticleImpl_a43b6d6cb462d5e89ca03179c13ed2635}.



Referenced by U\-T\-I\-L\-::\-L\-C\-T\-O\-O\-L\-S\-::print\-M\-C\-Particles(), and S\-I\-O\-::\-S\-I\-O\-Particle\-Handler\-::write().

\index{E\-V\-E\-N\-T\-::\-M\-C\-Particle@{E\-V\-E\-N\-T\-::\-M\-C\-Particle}!get\-Simulator\-Status@{get\-Simulator\-Status}}
\index{get\-Simulator\-Status@{get\-Simulator\-Status}!EVENT::MCParticle@{E\-V\-E\-N\-T\-::\-M\-C\-Particle}}
\subsubsection[{get\-Simulator\-Status}]{\setlength{\rightskip}{0pt plus 5cm}virtual int E\-V\-E\-N\-T\-::\-M\-C\-Particle\-::get\-Simulator\-Status (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classEVENT_1_1MCParticle_a711c821b31e84c5a70d26aa75d9751ef}


Returns the status for particles from the simulation, e.\-g. 

decayed in flight. Bits 31-\/16 are used to decode the information. Use the followng boolean functions to determine the proper simulator status\-:\par
 \begin{DoxySeeAlso}{See Also}
\doxyref{is\-Created\-In\-Simulation()}{p.}{classEVENT_1_1MCParticle_a19f466097c75860d4aed5c1fb06d5423} 

\doxyref{is\-Backscatter()}{p.}{classEVENT_1_1MCParticle_a2de7f9d8517bf33b25d39bb25ce54aa7} 

\doxyref{vertex\-Is\-Not\-Endpoint\-Of\-Parent()}{p.}{classEVENT_1_1MCParticle_aa34e7b274e344c2a69ca3a18624528fc} 

\doxyref{is\-Decayed\-In\-Tracker()}{p.}{classEVENT_1_1MCParticle_a714d6b3a1b862c90cc65d51e35d3d5de} 

\doxyref{is\-Decayed\-In\-Calorimeter()}{p.}{classEVENT_1_1MCParticle_a03ed2552c863a1cdf6a87f5c7e14d262} 

\doxyref{has\-Left\-Detector()}{p.}{classEVENT_1_1MCParticle_a1003e18e5588aa1024a7d2221aee5ef0} 

\doxyref{is\-Stopped()}{p.}{classEVENT_1_1MCParticle_ab3df7e3db129de58a84e6b30d9a3ab83} 

\doxyref{is\-Overlay()}{p.}{classEVENT_1_1MCParticle_a68ce18bef235f330887cbdc0585ebc57} 
\end{DoxySeeAlso}


Implemented in {\bf I\-M\-P\-L\-::\-M\-C\-Particle\-Impl} \doxyref{}{p.}{classIMPL_1_1MCParticleImpl_aad26d7c1ba0f432c7b18d2fb6feeda51}.



Referenced by U\-T\-I\-L\-::\-L\-C\-T\-O\-O\-L\-S\-::get\-Simulator\-Status\-String(), and S\-I\-O\-::\-S\-I\-O\-Particle\-Handler\-::write().

\index{E\-V\-E\-N\-T\-::\-M\-C\-Particle@{E\-V\-E\-N\-T\-::\-M\-C\-Particle}!get\-Time@{get\-Time}}
\index{get\-Time@{get\-Time}!EVENT::MCParticle@{E\-V\-E\-N\-T\-::\-M\-C\-Particle}}
\subsubsection[{get\-Time}]{\setlength{\rightskip}{0pt plus 5cm}virtual float E\-V\-E\-N\-T\-::\-M\-C\-Particle\-::get\-Time (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classEVENT_1_1MCParticle_a7a23ef90da9a769c5aef08f07b086119}


The creation time of the particle in [ns] wrt. 

the event, e.\-g. for preassigned decays or decays in flight from the simulator. 

Implemented in {\bf I\-M\-P\-L\-::\-M\-C\-Particle\-Impl} \doxyref{}{p.}{classIMPL_1_1MCParticleImpl_aebb12acec7452dff74cf555def7e25a6}.



Referenced by S\-I\-O\-::\-S\-I\-O\-Particle\-Handler\-::write().

\index{E\-V\-E\-N\-T\-::\-M\-C\-Particle@{E\-V\-E\-N\-T\-::\-M\-C\-Particle}!is\-Backscatter@{is\-Backscatter}}
\index{is\-Backscatter@{is\-Backscatter}!EVENT::MCParticle@{E\-V\-E\-N\-T\-::\-M\-C\-Particle}}
\subsubsection[{is\-Backscatter}]{\setlength{\rightskip}{0pt plus 5cm}virtual bool E\-V\-E\-N\-T\-::\-M\-C\-Particle\-::is\-Backscatter (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classEVENT_1_1MCParticle_a2de7f9d8517bf33b25d39bb25ce54aa7}


True if the particle was created by the simulator as a result of an interaction or decay in non-\/tracking region, e.\-g. 

a calorimeter. By convention, such particles are not saved. However, if this particle creates a tracker hit, the particle is added to the \doxyref{M\-C\-Particle}{p.}{classEVENT_1_1MCParticle} list with this flag set, and the parent set to the particle that initially decayed or interacted in a non-\/tracking region. 

Implemented in {\bf I\-M\-P\-L\-::\-M\-C\-Particle\-Impl} \doxyref{}{p.}{classIMPL_1_1MCParticleImpl_ade47aeea0bcf4d73e1938afc5ffd3893}.



Referenced by U\-T\-I\-L\-::\-L\-C\-T\-O\-O\-L\-S\-::get\-Simulator\-Status\-String().

\index{E\-V\-E\-N\-T\-::\-M\-C\-Particle@{E\-V\-E\-N\-T\-::\-M\-C\-Particle}!vertex\-Is\-Not\-Endpoint\-Of\-Parent@{vertex\-Is\-Not\-Endpoint\-Of\-Parent}}
\index{vertex\-Is\-Not\-Endpoint\-Of\-Parent@{vertex\-Is\-Not\-Endpoint\-Of\-Parent}!EVENT::MCParticle@{E\-V\-E\-N\-T\-::\-M\-C\-Particle}}
\subsubsection[{vertex\-Is\-Not\-Endpoint\-Of\-Parent}]{\setlength{\rightskip}{0pt plus 5cm}virtual bool E\-V\-E\-N\-T\-::\-M\-C\-Particle\-::vertex\-Is\-Not\-Endpoint\-Of\-Parent (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classEVENT_1_1MCParticle_aa34e7b274e344c2a69ca3a18624528fc}


True if the particle was created as a result of a continuous process where the parent particle continues, i.\-e. 

hard ionization, Bremsstrahlung, elastic interactions, etc. 

Implemented in {\bf I\-M\-P\-L\-::\-M\-C\-Particle\-Impl} \doxyref{}{p.}{classIMPL_1_1MCParticleImpl_a328725eda59208ba58f3c43a566e9977}.



Referenced by U\-T\-I\-L\-::\-L\-C\-T\-O\-O\-L\-S\-::get\-Simulator\-Status\-String().



The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
M\-C\-Particle.\-h\item 
M\-C\-Particle\-Impl.\-cc\end{DoxyCompactItemize}
