\section{D\-D\-Marlin\-C\-E\-D Class Reference}
\label{classDDMarlinCED}\index{D\-D\-Marlin\-C\-E\-D@{D\-D\-Marlin\-C\-E\-D}}


Singleton class to manage access to C\-E\-D from several processors.  




{\ttfamily \#include $<$D\-D\-Marlin\-C\-E\-D.\-h$>$}

\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static {\bf D\-D\-Marlin\-C\-E\-D} $\ast$ {\bfseries instance} ()\label{classDDMarlinCED_acb24977094ec85a2a4c06402cc504280}

\item 
static void {\bf init} (Processor $\ast$proc)\label{classDDMarlinCED_a3c3c9f19b34de8dc472a8f169e837e52}

\begin{DoxyCompactList}\small\item\em To be called by every processor that uses C\-E\-D in intit(). \end{DoxyCompactList}\item 
static void {\bfseries new\-Event} (Processor $\ast$proc, L\-C\-Event $\ast$evt=0)\label{classDDMarlinCED_a68039f5ae61564d5f1f8ad26cf9c0df9}

\item 
static void {\bf draw} (Processor $\ast$proc, int wait\-For\-Keyboard=1)
\begin{DoxyCompactList}\small\item\em To be called by every processor that uses C\-E\-D in process\-Event() after drawing everything. \end{DoxyCompactList}\item 
static void {\bfseries get\-Particle\-From\-I\-D} (int, L\-C\-Event $\ast$)\label{classDDMarlinCED_a6b0b645ab16a5dfea710b32ca1224f96}

\item 
{\footnotesize template$<$class In $>$ }\\static void {\bf draw\-Objects\-With\-Position} (In first, In last, int marker, int size, unsigned int color, unsigned int layer=0, const char $\ast$Picking\-Message=\char`\"{}\char`\"{})
\begin{DoxyCompactList}\small\item\em Draw all objects in iterator range [first,last) which have a method get\-Position() with the given color marker and size in the given layer (default 0). \end{DoxyCompactList}\item 
{\footnotesize template$<$class In $>$ }\\static void {\bfseries draw\-Objects\-With\-Position\-I\-D} (L\-C\-Collection $\ast$col, In first, In last, int marker, int size, unsigned int color, unsigned int layer=0)\label{classDDMarlinCED_abca29447c83353e7fa1eeecaf1a7d255}

\item 
static void {\bf draw\-Helix} (float b, float charge, float x, float y, float z, float px, float py, float pz, int marker, int size, unsigned int col, float rmin=10.\-0, float rmax=3000.\-0, float zmax=4500.\-0, unsigned int id=0)
\begin{DoxyCompactList}\small\item\em Draws a helix from the given point(x,y,z) for momentum(px,py,pz) in a B-\/field b (in Tesla) \end{DoxyCompactList}\item 
static int {\bfseries get\-I\-Dfrom\-Index} (L\-C\-Collection $\ast$col, int index)\label{classDDMarlinCED_afdecd5a79676805b4f8f3ce9560c2070}

\item 
static void {\bfseries set\-\_\-layer\-\_\-description} (const std\-::string \&desc, int layer\-I\-D)\label{classDDMarlinCED_ae9b94cadbee23912b25523f81c55e1ad}

\item 
static void {\bfseries add\-\_\-layer\-\_\-description} (const std\-::string \&desc, int layer\-I\-D)\label{classDDMarlinCED_a145314fe4bb66872ff0aa478d0cfd310}

\item 
static void {\bfseries write\-\_\-layer\-\_\-description} (void)\label{classDDMarlinCED_a5ccabb447a81043196e0cfb140033a23}

\item 
static void {\bfseries draw\-D\-D4hep\-Detector} (D\-D4hep\-::\-Geometry\-::\-L\-C\-D\-D \&lcdd, bool \-\_\-surfaces, String\-Vec \-\_\-detailled)\label{classDDMarlinCED_a26fa567fe9aee529366832ca979985da}

\end{DoxyCompactItemize}
\subsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
L\-C\-Event $\ast$ {\bfseries \-\_\-curr\-Event}\label{classDDMarlinCED_ab3b8adf811cabc71989111b7f831f57c}

\end{DoxyCompactItemize}
\subsection*{Static Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
static void {\bfseries draw\-Hit\-Collections\-By\-Type} (L\-C\-Event $\ast$event, const char $\ast$type, int marker, int size, unsigned int color, unsigned int layer=0)\label{classDDMarlinCED_a44142443f1ab04a299d4d0ec0660973b}

\item 
static void {\bfseries draw\-Hit\-Collections\-By\-M\-C\-Contribution} (L\-C\-Event $\ast$event, M\-C\-Particle $\ast$M\-C\-P, int marker, int size, unsigned int color, unsigned int layer=0)\label{classDDMarlinCED_a84a96c937c7c3a365c663b1bb22f327d}

\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
Processor $\ast$ {\bfseries \-\_\-first}\label{classDDMarlinCED_a1001a7acff8400c648c4b48aa72481b8}

\item 
Processor $\ast$ {\bfseries \-\_\-last}\label{classDDMarlinCED_a39f22bf07084a8571eae3885495fb416}

\end{DoxyCompactItemize}
\subsection*{Static Protected Attributes}
\begin{DoxyCompactItemize}
\item 
static {\bf D\-D\-Marlin\-C\-E\-D} $\ast$ {\bfseries \-\_\-me} = 0\label{classDDMarlinCED_a8bc1b98470de7fd9d38740c2ce7aecad}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
Singleton class to manage access to C\-E\-D from several processors. 

All processors using C\-E\-D have to use the methods \doxyref{init()}{p.}{classDDMarlinCED_a3c3c9f19b34de8dc472a8f169e837e52}, new\-Event() and \doxyref{draw()}{p.}{classDDMarlinCED_a0ee84f54779061b911fe8abe0d2224b4}. 

\subsection{Member Function Documentation}
\index{D\-D\-Marlin\-C\-E\-D@{D\-D\-Marlin\-C\-E\-D}!draw@{draw}}
\index{draw@{draw}!DDMarlinCED@{D\-D\-Marlin\-C\-E\-D}}
\subsubsection[{draw}]{\setlength{\rightskip}{0pt plus 5cm}void D\-D\-Marlin\-C\-E\-D\-::draw (
\begin{DoxyParamCaption}
\item[{Processor $\ast$}]{proc, }
\item[{int}]{wait\-For\-Keyboard = {\ttfamily 1}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}\label{classDDMarlinCED_a0ee84f54779061b911fe8abe0d2224b4}


To be called by every processor that uses C\-E\-D in process\-Event() after drawing everything. 

Actually draws the event. The flag wait\-For\-Keyboard indicates if after an event is drawn an input from the keyboard is expected (wait\-For\-Keyboard=1) or not (wait\-For\-Keyboard=0). 

References D\-D\-C\-E\-D\-Picking\-Handler\-::get\-Instance(), D\-D\-C\-E\-D\-Picking\-Handler\-::kbhit(), and D\-D\-C\-E\-D\-Picking\-Handler\-::print\-I\-D().

\index{D\-D\-Marlin\-C\-E\-D@{D\-D\-Marlin\-C\-E\-D}!draw\-Helix@{draw\-Helix}}
\index{draw\-Helix@{draw\-Helix}!DDMarlinCED@{D\-D\-Marlin\-C\-E\-D}}
\subsubsection[{draw\-Helix}]{\setlength{\rightskip}{0pt plus 5cm}void D\-D\-Marlin\-C\-E\-D\-::draw\-Helix (
\begin{DoxyParamCaption}
\item[{float}]{b, }
\item[{float}]{charge, }
\item[{float}]{x, }
\item[{float}]{y, }
\item[{float}]{z, }
\item[{float}]{px, }
\item[{float}]{py, }
\item[{float}]{pz, }
\item[{int}]{marker, }
\item[{int}]{size, }
\item[{unsigned int}]{col, }
\item[{float}]{rmin = {\ttfamily 10.0}, }
\item[{float}]{rmax = {\ttfamily 3000.0}, }
\item[{float}]{zmax = {\ttfamily 4500.0}, }
\item[{unsigned int}]{id = {\ttfamily 0}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}\label{classDDMarlinCED_ab4c13b33aa1ae20390c5fbc9fac4c6cf}


Draws a helix from the given point(x,y,z) for momentum(px,py,pz) in a B-\/field b (in Tesla) 

Improved \doxyref{draw\-Helix()}{p.}{classDDMarlinCED_ab4c13b33aa1ae20390c5fbc9fac4c6cf} method.

Draws straight lines as well. \index{D\-D\-Marlin\-C\-E\-D@{D\-D\-Marlin\-C\-E\-D}!draw\-Objects\-With\-Position@{draw\-Objects\-With\-Position}}
\index{draw\-Objects\-With\-Position@{draw\-Objects\-With\-Position}!DDMarlinCED@{D\-D\-Marlin\-C\-E\-D}}
\subsubsection[{draw\-Objects\-With\-Position}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class In $>$ static void D\-D\-Marlin\-C\-E\-D\-::draw\-Objects\-With\-Position (
\begin{DoxyParamCaption}
\item[{In}]{first, }
\item[{In}]{last, }
\item[{int}]{marker, }
\item[{int}]{size, }
\item[{unsigned int}]{color, }
\item[{unsigned int}]{layer = {\ttfamily 0}, }
\item[{const char $\ast$}]{Picking\-Message = {\ttfamily \char`\"{}\char`\"{}}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}\label{classDDMarlinCED_af2f7a4bdb7315b1f73bb90a047595316}


Draw all objects in iterator range [first,last) which have a method get\-Position() with the given color marker and size in the given layer (default 0). 

The template takes classes providing a class method 'get\-Position()' as template argument. 

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