<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">\section{marlintpc\-:\-:Time\-Pix\-Cluster\-Projection\-Separator\-Processor Class Reference}
\label{classmarlintpc_1_1TimePixClusterProjectionSeparatorProcessor}\index{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor@{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor}}


converts Tracker\-Hits of a Time\-Pix into further separated Tracker\-Hits, by projecting them onto their own clusteraxis.  




{\ttfamily \#include $&lt;$Time\-Pix\-Cluster\-Projection\-Separator\-Processor.\-h$&gt;$}

Inheritance diagram for marlintpc\-:\-:Time\-Pix\-Cluster\-Projection\-Separator\-Processor\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classmarlintpc_1_1TimePixClusterProjectionSeparatorProcessor}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual Processor $\ast$ {\bfseries new\-Processor} ()\label{classmarlintpc_1_1TimePixClusterProjectionSeparatorProcessor_a1fa80cb58fb6010d4ff1927b591aaa47}

\item 
virtual void {\bfseries init} ()\label{classmarlintpc_1_1TimePixClusterProjectionSeparatorProcessor_a99da5e569655aabea8cfe4ce29609062}

\item 
virtual void {\bfseries process\-Run\-Header} (lcio\-::\-L\-C\-Run\-Header $\ast$run)\label{classmarlintpc_1_1TimePixClusterProjectionSeparatorProcessor_a564dcbea367560534e869dace541b94e}

\item 
virtual void {\bfseries process\-Event} (lcio\-::\-L\-C\-Event $\ast$evt)\label{classmarlintpc_1_1TimePixClusterProjectionSeparatorProcessor_a1df787bd965760699d38e8bd436b4b3a}

\item 
virtual void {\bfseries check} (lcio\-::\-L\-C\-Event $\ast$evt)\label{classmarlintpc_1_1TimePixClusterProjectionSeparatorProcessor_aa2e691c2d61115b95dc371739399e605}

\item 
virtual void {\bfseries end} ()\label{classmarlintpc_1_1TimePixClusterProjectionSeparatorProcessor_a30b2b4f7a9205ccd94b536177a2cce78}

\item 
virtual int {\bfseries loc\-Max\-Finder} (int startbin, A\-I\-D\-A\-::\-I\-Histogram1\-D $\ast$h1)\label{classmarlintpc_1_1TimePixClusterProjectionSeparatorProcessor_a080315812bfb1d2e19b885b956fbff94}

\item 
virtual int {\bfseries loc\-Min\-Finder} (int startbin, A\-I\-D\-A\-::\-I\-Histogram1\-D $\ast$h1)\label{classmarlintpc_1_1TimePixClusterProjectionSeparatorProcessor_a7e08f5540f4a8caf1ed38c1ee960a9f9}

\item 
virtual int {\bfseries sep\-Bin\-Finder} (int locmin, A\-I\-D\-A\-::\-I\-Histogram1\-D $\ast$h1)\label{classmarlintpc_1_1TimePixClusterProjectionSeparatorProcessor_a1eb6b85fa4af82e93fdc6c6cdd277373}

\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
std\-::string {\bf \-\_\-input\-Col\-Name}
\item 
std\-::string {\bf \-\_\-output\-Col\-Name}
\item 
std\-::string {\bf \-\_\-output\-Tracker\-Data\-Col\-Name}
\item 
std\-::string {\bf \-\_\-relations\-Col\-Name}
\item 
int {\bf \-\_\-n\-Column}
\item 
int {\bf \-\_\-n\-Row}
\item 
int {\bf \-\_\-cluster\-Size\-To\-Sep}
\item 
int {\bf \-\_\-min\-Resulting\-Cluster\-Size}
\item 
bool {\bf \-\_\-keep\-\_\-hs\-\_\-sep}
\item 
int {\bf \-\_\-output\-Is\-Transient}\label{classmarlintpc_1_1TimePixClusterProjectionSeparatorProcessor_a251a5f7085d3b4530dfae6d28edd29df}

\begin{DoxyCompactList}\small\item\em give the status which is set to the transient flag of the output collection it is an int instead of a boolean, because the processor parameter cannot be a boolean \end{DoxyCompactList}\item 
bool {\bf is\-First\-Collection}\label{classmarlintpc_1_1TimePixClusterProjectionSeparatorProcessor_a17e9a201c63a59eb8aed04d8c814116f}

\begin{DoxyCompactList}\small\item\em is true till the first output collection is writen to an event used to store parameters only in the first collection (also done, if collection is transient) \end{DoxyCompactList}\item 
int {\bf \-\_\-n\-Run}
\item 
double {\bf a}
\item 
double {\bf b}
\item 
tpcconddata\-::\-Time\-Pix\-Map $\ast$ {\bf \-\_\-time\-Pix\-Map}\label{classmarlintpc_1_1TimePixClusterProjectionSeparatorProcessor_a4d8cbcaa7b8ca484d862608d5b5c5225}

\begin{DoxyCompactList}\small\item\em the actual mode map is a lccd\-::\-Conditions\-Map the key is a Pixel\-Key, specifically a struct which contains the Chip\-I\-D and the Pixel\-I\-D the elements are Time\-Pix\-Pixel\-Modes \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
converts Tracker\-Hits of a Time\-Pix into further separated Tracker\-Hits, by projecting them onto their own clusteraxis. 

This projection is weighted by charge information if available, that is if the pixel was operated in T\-O\-T mode.\par
 Conditionsdata must be stored in a seperate collection of Time\-Pix\-Pixel\-Mode for every event in which the mode of operation changes.\par
 Handling of conditions data is done by the Conditions\-Processor

\subparagraph*{Input -\/ Prerequisites}

a collection of Tracker\-Hits containing clusters of adjacent pixels

\subparagraph*{Output}

\begin{DoxyItemize}
\item Collection containing Tracker\-Hits of further separated clusters, separation by projection along cluster axis. \item Collection of tracker data objects which has been split because it belonged to several clusters\end{DoxyItemize}

\begin{DoxyParams}{Parameters}
{\em Input\-Collection\-Name} &amp; Name of the input collection with unseparated hit candidates (default \char`\"{}\-Time\-Pix\-Hit\-Candidates\char`\"{}) \\
\hline
{\em Output\-Collection\-Name} &amp; Name of the output containing with sepatated hit candidates (default \char`\"{}\-Time\-Pix\-Sep\-Hit\-Candidates\char`\"{}) \\
\hline
{\em Output\-Tracker\-Data\-Collection\-Name} &amp; Name of the output collection with sepatated tracker data objects (default \char`\"{}\-Time\-Pix\-Sep\-Data\char`\"{}) \\
\hline
{\em Output\-Relations\-Collection\-Name} &amp; Name of the collection with relations between clusters and tracker data (default \char`\"{}\-Time\-Pix\-Relation\-Sep\-Hit\char`\"{}) \\
\hline
{\em n\-Column} &amp; number of columns on the chip \\
\hline
{\em n\-Row} &amp; number of rows on the chip \\
\hline
{\em cluster\-Size\-To\-Sep} &amp; number of pixels in a cluster for it to be separated (default 9) \\
\hline
{\em Set\-Output\-Transient} &amp; If not 0 the output collection is set transient\\
\hline
\end{DoxyParams}
\begin{DoxyAuthor}{Author}
Simone Zimmermann 
\end{DoxyAuthor}


\subsection{Member Data Documentation}
\index{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor@{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor}!\-\_\-cluster\-Size\-To\-Sep@{\-\_\-cluster\-Size\-To\-Sep}}
\index{\-\_\-cluster\-Size\-To\-Sep@{\-\_\-cluster\-Size\-To\-Sep}!marlintpc::TimePixClusterProjectionSeparatorProcessor@{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor}}
\subsubsection[{\-\_\-cluster\-Size\-To\-Sep}]{\setlength{\rightskip}{0pt plus 5cm}int marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor\-::\-\_\-cluster\-Size\-To\-Sep\hspace{0.3cm}{\ttfamily [protected]}}\label{classmarlintpc_1_1TimePixClusterProjectionSeparatorProcessor_ac858db8d108b332489d8f58b2ef04b92}

\begin{DoxyItemize}
\item number of pixels in a cluster in order for it to be separated 
\end{DoxyItemize}\index{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor@{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor}!\-\_\-input\-Col\-Name@{\-\_\-input\-Col\-Name}}
\index{\-\_\-input\-Col\-Name@{\-\_\-input\-Col\-Name}!marlintpc::TimePixClusterProjectionSeparatorProcessor@{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor}}
\subsubsection[{\-\_\-input\-Col\-Name}]{\setlength{\rightskip}{0pt plus 5cm}std\-::string marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor\-::\-\_\-input\-Col\-Name\hspace{0.3cm}{\ttfamily [protected]}}\label{classmarlintpc_1_1TimePixClusterProjectionSeparatorProcessor_aa2e74f4133af47ca2804bfc6c49af320}

\begin{DoxyItemize}
\item the name of the input collection 
\end{DoxyItemize}\index{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor@{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor}!\-\_\-keep\-\_\-hs\-\_\-sep@{\-\_\-keep\-\_\-hs\-\_\-sep}}
\index{\-\_\-keep\-\_\-hs\-\_\-sep@{\-\_\-keep\-\_\-hs\-\_\-sep}!marlintpc::TimePixClusterProjectionSeparatorProcessor@{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor}}
\subsubsection[{\-\_\-keep\-\_\-hs\-\_\-sep}]{\setlength{\rightskip}{0pt plus 5cm}bool marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor\-::\-\_\-keep\-\_\-hs\-\_\-sep\hspace{0.3cm}{\ttfamily [protected]}}\label{classmarlintpc_1_1TimePixClusterProjectionSeparatorProcessor_ae76112b3aac66f2c0e4f628e0b647b13}

\begin{DoxyItemize}
\item jsut a flag 
\end{DoxyItemize}\index{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor@{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor}!\-\_\-min\-Resulting\-Cluster\-Size@{\-\_\-min\-Resulting\-Cluster\-Size}}
\index{\-\_\-min\-Resulting\-Cluster\-Size@{\-\_\-min\-Resulting\-Cluster\-Size}!marlintpc::TimePixClusterProjectionSeparatorProcessor@{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor}}
\subsubsection[{\-\_\-min\-Resulting\-Cluster\-Size}]{\setlength{\rightskip}{0pt plus 5cm}int marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor\-::\-\_\-min\-Resulting\-Cluster\-Size\hspace{0.3cm}{\ttfamily [protected]}}\label{classmarlintpc_1_1TimePixClusterProjectionSeparatorProcessor_ab0118dc6ed10bedc69c72f030bcd3ae7}

\begin{DoxyItemize}
\item minimal number of pixels in a separated cluster 
\end{DoxyItemize}\index{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor@{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor}!\-\_\-n\-Column@{\-\_\-n\-Column}}
\index{\-\_\-n\-Column@{\-\_\-n\-Column}!marlintpc::TimePixClusterProjectionSeparatorProcessor@{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor}}
\subsubsection[{\-\_\-n\-Column}]{\setlength{\rightskip}{0pt plus 5cm}int marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor\-::\-\_\-n\-Column\hspace{0.3cm}{\ttfamily [protected]}}\label{classmarlintpc_1_1TimePixClusterProjectionSeparatorProcessor_a700a73cf4627207792d36b8e40d34b86}

\begin{DoxyItemize}
\item number of columns on the chip 
\end{DoxyItemize}\index{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor@{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor}!\-\_\-n\-Row@{\-\_\-n\-Row}}
\index{\-\_\-n\-Row@{\-\_\-n\-Row}!marlintpc::TimePixClusterProjectionSeparatorProcessor@{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor}}
\subsubsection[{\-\_\-n\-Row}]{\setlength{\rightskip}{0pt plus 5cm}int marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor\-::\-\_\-n\-Row\hspace{0.3cm}{\ttfamily [protected]}}\label{classmarlintpc_1_1TimePixClusterProjectionSeparatorProcessor_aebac98433070923fe679943b41d2db85}

\begin{DoxyItemize}
\item number of rows on the chip 
\end{DoxyItemize}\index{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor@{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor}!\-\_\-n\-Run@{\-\_\-n\-Run}}
\index{\-\_\-n\-Run@{\-\_\-n\-Run}!marlintpc::TimePixClusterProjectionSeparatorProcessor@{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor}}
\subsubsection[{\-\_\-n\-Run}]{\setlength{\rightskip}{0pt plus 5cm}int marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor\-::\-\_\-n\-Run\hspace{0.3cm}{\ttfamily [protected]}}\label{classmarlintpc_1_1TimePixClusterProjectionSeparatorProcessor_a1910c70918059c95d72b246ac47a3f46}

\begin{DoxyItemize}
\item counts the processed runs 
\end{DoxyItemize}\index{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor@{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor}!\-\_\-output\-Col\-Name@{\-\_\-output\-Col\-Name}}
\index{\-\_\-output\-Col\-Name@{\-\_\-output\-Col\-Name}!marlintpc::TimePixClusterProjectionSeparatorProcessor@{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor}}
\subsubsection[{\-\_\-output\-Col\-Name}]{\setlength{\rightskip}{0pt plus 5cm}std\-::string marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor\-::\-\_\-output\-Col\-Name\hspace{0.3cm}{\ttfamily [protected]}}\label{classmarlintpc_1_1TimePixClusterProjectionSeparatorProcessor_aad09cb4b5c4d7756ec3481637094d958}

\begin{DoxyItemize}
\item the name of the output tracker hits collection 
\end{DoxyItemize}\index{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor@{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor}!\-\_\-output\-Tracker\-Data\-Col\-Name@{\-\_\-output\-Tracker\-Data\-Col\-Name}}
\index{\-\_\-output\-Tracker\-Data\-Col\-Name@{\-\_\-output\-Tracker\-Data\-Col\-Name}!marlintpc::TimePixClusterProjectionSeparatorProcessor@{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor}}
\subsubsection[{\-\_\-output\-Tracker\-Data\-Col\-Name}]{\setlength{\rightskip}{0pt plus 5cm}std\-::string marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor\-::\-\_\-output\-Tracker\-Data\-Col\-Name\hspace{0.3cm}{\ttfamily [protected]}}\label{classmarlintpc_1_1TimePixClusterProjectionSeparatorProcessor_ad94a97a7388a524282a01a740f3595d8}

\begin{DoxyItemize}
\item the name of the output tracker data collection 
\end{DoxyItemize}\index{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor@{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor}!\-\_\-relations\-Col\-Name@{\-\_\-relations\-Col\-Name}}
\index{\-\_\-relations\-Col\-Name@{\-\_\-relations\-Col\-Name}!marlintpc::TimePixClusterProjectionSeparatorProcessor@{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor}}
\subsubsection[{\-\_\-relations\-Col\-Name}]{\setlength{\rightskip}{0pt plus 5cm}std\-::string marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor\-::\-\_\-relations\-Col\-Name\hspace{0.3cm}{\ttfamily [protected]}}\label{classmarlintpc_1_1TimePixClusterProjectionSeparatorProcessor_a27c29ac5f2c07038ae7a574877da96fa}

\begin{DoxyItemize}
\item the name of the colletion with relations between hits and tracker data 
\end{DoxyItemize}\index{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor@{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor}!a@{a}}
\index{a@{a}!marlintpc::TimePixClusterProjectionSeparatorProcessor@{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor}}
\subsubsection[{a}]{\setlength{\rightskip}{0pt plus 5cm}double marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor\-::a\hspace{0.3cm}{\ttfamily [protected]}}\label{classmarlintpc_1_1TimePixClusterProjectionSeparatorProcessor_ac58035baeb7f66f4b18300a002b3210d}

\begin{DoxyItemize}
\item parameter of axis of projection y = a$\ast$x + b 
\end{DoxyItemize}\index{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor@{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor}!b@{b}}
\index{b@{b}!marlintpc::TimePixClusterProjectionSeparatorProcessor@{marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor}}
\subsubsection[{b}]{\setlength{\rightskip}{0pt plus 5cm}double marlintpc\-::\-Time\-Pix\-Cluster\-Projection\-Separator\-Processor\-::b\hspace{0.3cm}{\ttfamily [protected]}}\label{classmarlintpc_1_1TimePixClusterProjectionSeparatorProcessor_a592de01c3369dfdfe3c65429e8f5f7ba}

\begin{DoxyItemize}
\item parameter of axis of projection y = a$\ast$x + b 
\end{DoxyItemize}

The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
Time\-Pix\-Cluster\-Projection\-Separator\-Processor.\-h\item 
Time\-Pix\-Cluster\-Projection\-Separator\-Processor.\-cc\end{DoxyCompactItemize}
</pre></body></html>