\section{marlintpc\-:\-:Drift\-Processor Class Reference}
\label{classmarlintpc_1_1DriftProcessor}\index{marlintpc\-::\-Drift\-Processor@{marlintpc\-::\-Drift\-Processor}}


Processor to drift primary electrons according to the characteristics of the choosen gas to pad plane.  




{\ttfamily \#include $<$Drift\-Processor.\-h$>$}

Inheritance diagram for marlintpc\-:\-:Drift\-Processor\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classmarlintpc_1_1DriftProcessor}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual Processor $\ast$ {\bfseries new\-Processor} ()\label{classmarlintpc_1_1DriftProcessor_a5659b56a2e341cdc0adbb388a22be099}

\item 
{\bf Drift\-Processor} ()\label{classmarlintpc_1_1DriftProcessor_a20476471632f69ff79b3553f23ebd47c}

\begin{DoxyCompactList}\small\item\em C'tor. \end{DoxyCompactList}\item 
virtual {\bf $\sim$\-Drift\-Processor} ()\label{classmarlintpc_1_1DriftProcessor_a9601e605cf1c47822fc45a2fb5dd2327}

\begin{DoxyCompactList}\small\item\em D'tor. \end{DoxyCompactList}\item 
virtual void {\bf init} ()
\begin{DoxyCompactList}\small\item\em Called at the begin of the job before anything is read. \end{DoxyCompactList}\item 
virtual void {\bf process\-Run\-Header} (lcio\-::\-L\-C\-Run\-Header $\ast$run)\label{classmarlintpc_1_1DriftProcessor_a8cab44ed1e3cbacd4b284b0ea2c8b45d}

\begin{DoxyCompactList}\small\item\em Called for every run. \end{DoxyCompactList}\item 
virtual void {\bf process\-Event} (lcio\-::\-L\-C\-Event $\ast$evt)\label{classmarlintpc_1_1DriftProcessor_a3d0c568ba84178f350fc5ec11a506641}

\begin{DoxyCompactList}\small\item\em Called for every event -\/ the working horse. \end{DoxyCompactList}\item 
virtual void {\bf end} ()\label{classmarlintpc_1_1DriftProcessor_a472f10d721382d302e5ca757b563795b}

\begin{DoxyCompactList}\small\item\em Called after all events were processed for clean up. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
void {\bf Make\-Electron\-Drift\-Coordinates} ()
\begin{DoxyCompactList}\small\item\em Calculates coordinates of the drifted electrons. \end{DoxyCompactList}\item 
void {\bf Get\-Electron\-Coordinates} (Sim\-Tracker\-Hit $\ast$)\label{classmarlintpc_1_1DriftProcessor_af9b15af2361882ca689d1544b5b93096}

\begin{DoxyCompactList}\small\item\em Gets electron coordinates before drifting. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
std\-::string {\bf \-\_\-input\-Collection\-Name}\label{classmarlintpc_1_1DriftProcessor_a96a71d58a81feeef05f4c7f7e68b1313}

\begin{DoxyCompactList}\small\item\em Name of the input collection. \end{DoxyCompactList}\item 
std\-::string {\bf \-\_\-output\-Collection\-Name}\label{classmarlintpc_1_1DriftProcessor_a412fef40fa71032d7c57d07e177f8c76}

\begin{DoxyCompactList}\small\item\em Name of the output collection. \end{DoxyCompactList}\item 
std\-::string {\bf \-\_\-tpc\-Conditions\-Col\-Name}\label{classmarlintpc_1_1DriftProcessor_ae41b88d1c5d309a140871554d3918a44}

\begin{DoxyCompactList}\small\item\em Name of collection with T\-P\-C\-Conditions. \end{DoxyCompactList}\item 
std\-::string {\bf \-\_\-gas}\label{classmarlintpc_1_1DriftProcessor_a6a958df4254baf6eb7c411aae1de5087}

\begin{DoxyCompactList}\small\item\em Name of the gas used in the T\-P\-C. \end{DoxyCompactList}\item 
float {\bfseries \-\_\-\-E\-Field}\label{classmarlintpc_1_1DriftProcessor_ae0bdda9e278cf8ff637d25e001a3541e}

\item 
float {\bfseries \-\_\-\-B\-Field}\label{classmarlintpc_1_1DriftProcessor_ab08dc3e6558fd923ecc1e654bbb848a0}

\item 
int {\bf \-\_\-transient}\label{classmarlintpc_1_1DriftProcessor_a4198dbcb58d233cef81ef92405b70bd4}

\begin{DoxyCompactList}\small\item\em If not set to 0 output collection is set transient. \end{DoxyCompactList}\item 
gsl\-\_\-rng $\ast$ {\bf r}\label{classmarlintpc_1_1DriftProcessor_acbaa2b8d823cd6a4430ea817da590eee}

\begin{DoxyCompactList}\small\item\em Random generator for landau and gaussian. \end{DoxyCompactList}\item 
double {\bf x\-\_\-e}
\item 
double {\bfseries y\-\_\-e}\label{classmarlintpc_1_1DriftProcessor_a1eb36fff011eeb8234898f6c6bd6b828}

\item 
double {\bfseries z\-\_\-e}\label{classmarlintpc_1_1DriftProcessor_a07fa1ee7e1247c01a59aceb732baee40}

\item 
double {\bfseries t\-\_\-e}\label{classmarlintpc_1_1DriftProcessor_ae036d8985f00eb39fbe959dbb4525ca4}

\item 
double {\bf \-\_\-\-T\-P\-C\-Length}\label{classmarlintpc_1_1DriftProcessor_afe12740774a673e775d94fe26e10d08e}

\begin{DoxyCompactList}\small\item\em Maximum drift length of the T\-P\-C. \end{DoxyCompactList}\item 
double {\bf \-\_\-\-T\-P\-C\-Outer\-Radius}\label{classmarlintpc_1_1DriftProcessor_aafe4950002591e6aa99e70c26229d169}

\begin{DoxyCompactList}\small\item\em Outer Radius of the T\-P\-C. \end{DoxyCompactList}\item 
double {\bf \-\_\-\-T\-P\-C\-Inner\-Radius}\label{classmarlintpc_1_1DriftProcessor_aefaa835c698377c5c815422e24c59d7c}

\begin{DoxyCompactList}\small\item\em Inner Radius of the T\-P\-C. \end{DoxyCompactList}\item 
double {\bf \-\_\-distance}\label{classmarlintpc_1_1DriftProcessor_a5837935d6df5486451174601aa6b1954}

\begin{DoxyCompactList}\small\item\em Drift distance of an electron. \end{DoxyCompactList}\item 
float {\bfseries xdrift}\label{classmarlintpc_1_1DriftProcessor_a032ce60f671dd0b11039b80256f417b5}

\item 
float {\bfseries ydrift}\label{classmarlintpc_1_1DriftProcessor_abc7bb9613e6a8391893d958f38b55154}

\item 
float {\bfseries zdrift}\label{classmarlintpc_1_1DriftProcessor_a4687352f0507433269f790f15cfdc023}

\item 
float {\bf tdrift}\label{classmarlintpc_1_1DriftProcessor_a6d5ae6b778af6553856fb773a9b21586}

\begin{DoxyCompactList}\small\item\em Coordinates of drifted e-\/. \end{DoxyCompactList}\item 
float {\bf \-\_\-vdrift}\label{classmarlintpc_1_1DriftProcessor_a56b0e3fe77b4db3e5b43379f99e8047c}

\begin{DoxyCompactList}\small\item\em Drift velocity in mm/us. \end{DoxyCompactList}\item 
float {\bf \-\_\-difflong}\label{classmarlintpc_1_1DriftProcessor_aaf7dc449284d48afc1f86aa652e63f4d}

\begin{DoxyCompactList}\small\item\em Longitudinal diffusion in um/sqrt(cm) \end{DoxyCompactList}\item 
float {\bf \-\_\-difftrans}\label{classmarlintpc_1_1DriftProcessor_a8d93caf8b4e8f4ae5372a736af4db8da}

\begin{DoxyCompactList}\small\item\em Transversal diffusion in um/sqrt(cm) \end{DoxyCompactList}\item 
double {\bf \-\_\-mean\-Amp}\label{classmarlintpc_1_1DriftProcessor_ad1edf8f01fa003d4d78cd9d0bb84764d}

\begin{DoxyCompactList}\small\item\em Mean amplification of an single electron. \end{DoxyCompactList}\item 
{\bf T\-P\-C\-Gas} $\ast$ {\bf \-\_\-gas\-Class}\label{classmarlintpc_1_1DriftProcessor_a7dc9549955b8df20993411208305bc58}

\begin{DoxyCompactList}\small\item\em gas object to calulated properties like drift and diffusion \end{DoxyCompactList}\item 
double {\bf \-\_\-ionisation\-Energy}\label{classmarlintpc_1_1DriftProcessor_a4dd04c476cd4a2f95c6aa773c9ed14a1}

\begin{DoxyCompactList}\small\item\em Ionisation energy of the gas. \end{DoxyCompactList}\item 
bool {\bf \-\_\-full\-Curler\-Backward\-Compatibility}\label{classmarlintpc_1_1DriftProcessor_a862cf452a56dbf18b33d400dd0f64b79}

\begin{DoxyCompactList}\small\item\em Flag whether to multiply hits in curlers with 10. \end{DoxyCompactList}\item 
bool {\bf \-\_\-is\-First\-Event}\label{classmarlintpc_1_1DriftProcessor_a440830efb5c75a34f0406d51c4f7124e}

\begin{DoxyCompactList}\small\item\em Flag to store if this is the first event processed after init. \end{DoxyCompactList}\item 
double {\bf \-\_\-attachment}\label{classmarlintpc_1_1DriftProcessor_ae1ba6711a03490c545040682b1ec1a39}

\begin{DoxyCompactList}\small\item\em Additional attachment in drift reagion due to water and/or oxygen in gas. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Processor to drift primary electrons according to the characteristics of the choosen gas to pad plane. 

Longitudinal and transverse diffusion are taken into account as well as magnetic fields.

\subparagraph*{Input -\/ Prerequisites}

Collection of Sim\-Tracker\-Hits with charge values set as d\-Edx

\subparagraph*{Output}

Collection containing Sim\-Tracker\-Hits with x,y-\/position on pad plane.


\begin{DoxyParams}{Parameters}
{\em Input\-Collection\-Name} & Name of input collection, Sim\-Tracker\-Hits \\
\hline
{\em Output\-Collection\-Name} & Name of output collection, Sim\-Tracker\-Hits \\
\hline
{\em Transient} & If not 0 the output collection is set transient \\
\hline
{\em Gas} & The gas in the T\-P\-C [T\-D\-R, P10, P5, T2\-K] (default\-: T\-D\-R) \\
\hline
{\em Drift\-Field} & Value of the drift field in V/cm \\
\hline
{\em Ionisation\-Energy} & Mean ionisation energy of the chambers gas in [Ge\-V] (default\-: 26\-E-\/9 (argon)) \\
\hline
{\em Full\-Curler\-Backward\-Compatibility} & N\-O\-T I\-M\-P\-L\-E\-M\-E\-N\-T\-E\-D Y\-E\-T\-: Turn on for data from Primary\-Ionisation $<$ r1876 and Full\-Curler turned off (default\-: false)\par
 Without Full\-Curler the old versions of Primary\-Ionisation grouped 10 electrons but did not set the charge currectly. \\
\hline
\end{DoxyParams}
\begin{DoxyRefDesc}{Todo}
\item[{\bf Todo}]Implement full curler handling (10 electrons per hit for low p\-\_\-t and low p\-\_\-z)\end{DoxyRefDesc}


\begin{DoxyAuthor}{Author}
Astrid Muennich, last modifications by Martin Killenberg 
\end{DoxyAuthor}


\subsection{Member Function Documentation}
\index{marlintpc\-::\-Drift\-Processor@{marlintpc\-::\-Drift\-Processor}!init@{init}}
\index{init@{init}!marlintpc::DriftProcessor@{marlintpc\-::\-Drift\-Processor}}
\subsubsection[{init}]{\setlength{\rightskip}{0pt plus 5cm}void marlintpc\-::\-Drift\-Processor\-::init (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}\label{classmarlintpc_1_1DriftProcessor_a131da754975bda1374a9f0089426ac00}


Called at the begin of the job before anything is read. 

Use to initialize the processor, e.\-g. book histograms. 

References \-\_\-difflong, \-\_\-difftrans, \-\_\-distance, \-\_\-gas, \-\_\-gas\-Class, \-\_\-is\-First\-Event, \-\_\-\-T\-P\-C\-Inner\-Radius, \-\_\-\-T\-P\-C\-Length, \-\_\-\-T\-P\-C\-Outer\-Radius, \-\_\-vdrift, marlintpc\-::\-T\-P\-C\-Gas\-::\-Calculate\-Gas\-Parameters(), marlintpc\-::\-T\-P\-C\-Gas\-::\-Get\-Drift\-Velocity(), marlintpc\-::\-T\-P\-C\-Gas\-::\-Get\-Longitudinal\-Diffusion(), marlintpc\-::\-T\-P\-C\-Gas\-::\-Get\-Transverse\-Diffusion(), r, marlintpc\-::\-T\-P\-C\-Gas\-::\-Set\-B\-Field(), marlintpc\-::\-T\-P\-C\-Gas\-::\-Set\-E\-Field(), tdrift, and x\-\_\-e.

\index{marlintpc\-::\-Drift\-Processor@{marlintpc\-::\-Drift\-Processor}!Make\-Electron\-Drift\-Coordinates@{Make\-Electron\-Drift\-Coordinates}}
\index{Make\-Electron\-Drift\-Coordinates@{Make\-Electron\-Drift\-Coordinates}!marlintpc::DriftProcessor@{marlintpc\-::\-Drift\-Processor}}
\subsubsection[{Make\-Electron\-Drift\-Coordinates}]{\setlength{\rightskip}{0pt plus 5cm}void marlintpc\-::\-Drift\-Processor\-::\-Make\-Electron\-Drift\-Coordinates (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}}\label{classmarlintpc_1_1DriftProcessor_ad411069b789e87298427f22eea4fac71}


Calculates coordinates of the drifted electrons. 

Longitudinal as well as transvers diffusion are taken into account. 

References \-\_\-difflong, \-\_\-difftrans, \-\_\-distance, \-\_\-vdrift, r, tdrift, and x\-\_\-e.



Referenced by process\-Event().



\subsection{Member Data Documentation}
\index{marlintpc\-::\-Drift\-Processor@{marlintpc\-::\-Drift\-Processor}!x\-\_\-e@{x\-\_\-e}}
\index{x\-\_\-e@{x\-\_\-e}!marlintpc::DriftProcessor@{marlintpc\-::\-Drift\-Processor}}
\subsubsection[{x\-\_\-e}]{\setlength{\rightskip}{0pt plus 5cm}double marlintpc\-::\-Drift\-Processor\-::x\-\_\-e\hspace{0.3cm}{\ttfamily [protected]}}\label{classmarlintpc_1_1DriftProcessor_aa6b08839e2d3ea2a516a22547756d374}
Coordinates of the electron. 

Referenced by Get\-Electron\-Coordinates(), init(), and Make\-Electron\-Drift\-Coordinates().



The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
Drift\-Processor.\-h\item 
Drift\-Processor.\-cc\end{DoxyCompactItemize}
