\section{gear\-:\-:T\-P\-C\-Parameters Class Reference}
\label{classgear_1_1TPCParameters}\index{gear\-::\-T\-P\-C\-Parameters@{gear\-::\-T\-P\-C\-Parameters}}


Proposal for an abstract interface that defines the geometry properties of a T\-P\-C like detector needed for reconstruction code.  




{\ttfamily \#include $<$T\-P\-C\-Parameters.\-h$>$}

Inheritance diagram for gear\-:\-:T\-P\-C\-Parameters\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{classgear_1_1TPCParameters}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual {\bf $\sim$\-T\-P\-C\-Parameters} ()\label{classgear_1_1TPCParameters_a34820dd79753b68ac35ecc57d8ed2b33}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
virtual const {\bf T\-P\-C\-Module} \& {\bf get\-Module} (int I\-D) const =0
\begin{DoxyCompactList}\small\item\em Returns module with given module\-I\-D. \end{DoxyCompactList}\item 
virtual int {\bf get\-N\-Modules} () const =0\label{classgear_1_1TPCParameters_af1373fe8dbd87ce3657d16dd3d03bacd}

\begin{DoxyCompactList}\small\item\em Returns number of modules in this T\-P\-C (endplate). \end{DoxyCompactList}\item 
virtual const {\bf T\-P\-C\-Module} \& {\bf get\-Nearest\-Module} (double c0, double c1) const =0
\begin{DoxyCompactList}\small\item\em Returns nearest module to given coordinates (2\-D). \end{DoxyCompactList}\item 
virtual const {\bf T\-P\-C\-Module} \& {\bf get\-Nearest\-Module} (double c0, double c1, double z) const =0
\begin{DoxyCompactList}\small\item\em Returns nearest module to given coordinates (3\-D). \end{DoxyCompactList}\item 
virtual double {\bf get\-Max\-Drift\-Length} () const =0\label{classgear_1_1TPCParameters_a350b5e74fa92994fddd5860d6587b350}

\begin{DoxyCompactList}\small\item\em The maximum drift length in the T\-P\-C in mm. \end{DoxyCompactList}\item 
virtual bool {\bf is\-Inside\-Module} (double c0, double c1) const =0
\begin{DoxyCompactList}\small\item\em True if coordinate (c0,c1) is within any module. \end{DoxyCompactList}\item 
virtual bool {\bf is\-Inside\-Module} (double c0, double c1, double z) const =0\label{classgear_1_1TPCParameters_a3c2769c3d3e9d98e1b0f15771d95d854}

\begin{DoxyCompactList}\small\item\em First determines the correct end plate from the z coordinate and then calls the same function as the 2\-D version on the modules from the correct end cap. \end{DoxyCompactList}\item 
virtual bool {\bf is\-Inside\-Pad} (double c0, double c1) const =0
\begin{DoxyCompactList}\small\item\em True if coordinate (c0,c1) is within any pad, on any module. \end{DoxyCompactList}\item 
virtual bool {\bf is\-Inside\-Pad} (double c0, double c1, double z) const =0\label{classgear_1_1TPCParameters_ad811c3c9a14687518740513594ad25b2}

\begin{DoxyCompactList}\small\item\em First determines the correct end plate from the z coordinate and then calls the same function as the 2\-D version on the modules from the correct end cap. \end{DoxyCompactList}\item 
virtual {\bf Global\-Pad\-Index} {\bf get\-Nearest\-Pad} (double c0, double c1) const =0
\begin{DoxyCompactList}\small\item\em Returns global\-Padindex Object for nearest pad to given coordinates (2\-D). \end{DoxyCompactList}\item 
virtual {\bf Global\-Pad\-Index} {\bf get\-Nearest\-Pad} (double c0, double c1, double z) const =0
\begin{DoxyCompactList}\small\item\em Returns global\-Padindex Object for nearest pad to given coordinates (3\-D). \end{DoxyCompactList}\item 
virtual const std\-::vector\\*
$<$ double $>$ \& {\bf get\-Plane\-Extent} () const =0
\begin{DoxyCompactList}\small\item\em Extent of the sensitive plane -\/ [xmin,xmax,ymin,ymax] C\-A\-R\-T\-E\-S\-I\-A\-N or [rmin,rmax,phimin,phimax] P\-O\-L\-A\-R. \end{DoxyCompactList}\item 
virtual int {\bf get\-Coordinate\-Type} () const =0\label{classgear_1_1TPCParameters_a7020e1df167c0601f935bc16a2f72754}

\begin{DoxyCompactList}\small\item\em Returns coordinate type as an int (see Pad\-Row\-Layout2\-D\-::\-C\-A\-R\-T\-E\-S\-I\-A\-N, Pad\-Row\-Layout2\-D\-::\-P\-O\-L\-A\-R) \end{DoxyCompactList}\item 
virtual const std\-::vector\\*
$<$ {\bf T\-P\-C\-Module} $\ast$ $>$ \& {\bf get\-Modules} () const =0\label{classgear_1_1TPCParameters_af968aff6c28819d15263b3f7bae1bff2}

\begin{DoxyCompactList}\small\item\em Returns vector of all modules in this T\-P\-C (endplate). \end{DoxyCompactList}\item 
virtual const {\bf Pad\-Row\-Layout2\-D} \& {\bf get\-Pad\-Layout} () const =0
\begin{DoxyCompactList}\small\item\em Kept for backward compatibility. \end{DoxyCompactList}\item 
virtual double {\bf get\-Drift\-Velocity} () const =0
\begin{DoxyCompactList}\small\item\em The electron drift velocity in the T\-P\-C in mm/s. \end{DoxyCompactList}\item 
virtual double {\bf get\-Readout\-Frequency} () const =0
\begin{DoxyCompactList}\small\item\em Kept for backward compatibility. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Proposal for an abstract interface that defines the geometry properties of a T\-P\-C like detector needed for reconstruction code. 

\par
 This object contains one or more modules, these modules define the sensitive region\par
 The original \doxyref{T\-P\-C\-Parameters}{p.}{classgear_1_1TPCParameters} class was based on ideas by Dean Karlen.

\begin{DoxyAuthor}{Author}
F. Gaede (D\-E\-S\-Y), M. Killenberg (Bonn) S. Turnbull (Saclay/\-Carleton) 
\end{DoxyAuthor}
\begin{DoxyVersion}{Version}

\end{DoxyVersion}
\begin{DoxyParagraph}{Id\-:}
\doxyref{T\-P\-C\-Parameters.\-h}{p.}{TPCParameters_8h_source} 380 2011-\/08-\/26 12\-:24\-:46\-Z gaede 
\end{DoxyParagraph}


Definition at line 24 of file T\-P\-C\-Parameters.\-h.



\subsection{Member Function Documentation}
\index{gear\-::\-T\-P\-C\-Parameters@{gear\-::\-T\-P\-C\-Parameters}!get\-Drift\-Velocity@{get\-Drift\-Velocity}}
\index{get\-Drift\-Velocity@{get\-Drift\-Velocity}!gear::TPCParameters@{gear\-::\-T\-P\-C\-Parameters}}
\subsubsection[{get\-Drift\-Velocity}]{\setlength{\rightskip}{0pt plus 5cm}virtual double gear\-::\-T\-P\-C\-Parameters\-::get\-Drift\-Velocity (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classgear_1_1TPCParameters_a407f115636b4d0bad0bc668e47e4e481}


The electron drift velocity in the T\-P\-C in mm/s. 

Kept for backwards compatibility.

\begin{DoxyRefDesc}{Deprecated}
\item[{\bf Deprecated}]\{This should come from conditions data.\} \end{DoxyRefDesc}


Implemented in {\bf gear\-::\-T\-P\-C\-Parameters\-Impl} \doxyref{}{p.}{classgear_1_1TPCParametersImpl_a4d726c2b9b8662475ad86560ad44274a}.



Referenced by gear\-::\-T\-P\-C\-Parameters\-X\-M\-L\-::to\-X\-M\-L().

\index{gear\-::\-T\-P\-C\-Parameters@{gear\-::\-T\-P\-C\-Parameters}!get\-Module@{get\-Module}}
\index{get\-Module@{get\-Module}!gear::TPCParameters@{gear\-::\-T\-P\-C\-Parameters}}
\subsubsection[{get\-Module}]{\setlength{\rightskip}{0pt plus 5cm}virtual const {\bf T\-P\-C\-Module}\& gear\-::\-T\-P\-C\-Parameters\-::get\-Module (
\begin{DoxyParamCaption}
\item[{int}]{I\-D}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classgear_1_1TPCParameters_a91baaa568ce960a14e71c009261df4e2}


Returns module with given module\-I\-D. 

Module\-I\-D is N\-O\-T the position within the modules vector and may be larger than (n\-Modules-\/1)! It is the global I\-D (potentially across several end plates), stored as Cell\-I\-D1 in the lcio data classes. 

Implemented in {\bf gear\-::\-T\-P\-C\-Parameters\-Impl} \doxyref{}{p.}{classgear_1_1TPCParametersImpl_a93a3bfed78dbe941bcc43b003b37d687}.

\index{gear\-::\-T\-P\-C\-Parameters@{gear\-::\-T\-P\-C\-Parameters}!get\-Nearest\-Module@{get\-Nearest\-Module}}
\index{get\-Nearest\-Module@{get\-Nearest\-Module}!gear::TPCParameters@{gear\-::\-T\-P\-C\-Parameters}}
\subsubsection[{get\-Nearest\-Module}]{\setlength{\rightskip}{0pt plus 5cm}virtual const {\bf T\-P\-C\-Module}\& gear\-::\-T\-P\-C\-Parameters\-::get\-Nearest\-Module (
\begin{DoxyParamCaption}
\item[{double}]{c0, }
\item[{double}]{c1}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classgear_1_1TPCParameters_ac5172e9d2110eeb3b1ed6c02f8e26a7c}


Returns nearest module to given coordinates (2\-D). 

In case of a full T\-P\-C with two end caps the first matching module is returned, although a module from the other end plate might be closer in 3\-D. Use the 3\-D version of get\-Nearest\-Module in this case to get the module from the correct half T\-P\-C. 

Implemented in {\bf gear\-::\-T\-P\-C\-Parameters\-Impl} \doxyref{}{p.}{classgear_1_1TPCParametersImpl_a593657fb0d851d7529d4d95f98d722fe}.

\index{gear\-::\-T\-P\-C\-Parameters@{gear\-::\-T\-P\-C\-Parameters}!get\-Nearest\-Module@{get\-Nearest\-Module}}
\index{get\-Nearest\-Module@{get\-Nearest\-Module}!gear::TPCParameters@{gear\-::\-T\-P\-C\-Parameters}}
\subsubsection[{get\-Nearest\-Module}]{\setlength{\rightskip}{0pt plus 5cm}virtual const {\bf T\-P\-C\-Module}\& gear\-::\-T\-P\-C\-Parameters\-::get\-Nearest\-Module (
\begin{DoxyParamCaption}
\item[{double}]{c0, }
\item[{double}]{c1, }
\item[{double}]{z}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classgear_1_1TPCParameters_abed7407e433ebb676f2210dacf7a184a}


Returns nearest module to given coordinates (3\-D). 

The z coordinate is only used to determine whether the positive or negative half T\-P\-C is to be used. 

Implemented in {\bf gear\-::\-T\-P\-C\-Parameters\-Impl} \doxyref{}{p.}{classgear_1_1TPCParametersImpl_af337a0895fc19130ccada0a67e2e78a6}.

\index{gear\-::\-T\-P\-C\-Parameters@{gear\-::\-T\-P\-C\-Parameters}!get\-Nearest\-Pad@{get\-Nearest\-Pad}}
\index{get\-Nearest\-Pad@{get\-Nearest\-Pad}!gear::TPCParameters@{gear\-::\-T\-P\-C\-Parameters}}
\subsubsection[{get\-Nearest\-Pad}]{\setlength{\rightskip}{0pt plus 5cm}virtual {\bf Global\-Pad\-Index} gear\-::\-T\-P\-C\-Parameters\-::get\-Nearest\-Pad (
\begin{DoxyParamCaption}
\item[{double}]{c0, }
\item[{double}]{c1}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classgear_1_1TPCParameters_a15aa6a6009a29cc37411a6f5101b47bb}


Returns global\-Padindex Object for nearest pad to given coordinates (2\-D). 

In case of a full T\-P\-C with two end caps the first matching module I\-D is returned, although a module from the other end plate might be closer in 3\-D. Use the 3\-D version of get\-Nearest\-Pad in this case to get the pad from a module from the correct half T\-P\-C. 

Implemented in {\bf gear\-::\-T\-P\-C\-Parameters\-Impl} \doxyref{}{p.}{classgear_1_1TPCParametersImpl_a808dec8ba2d1d99933f1d60b15582160}.

\index{gear\-::\-T\-P\-C\-Parameters@{gear\-::\-T\-P\-C\-Parameters}!get\-Nearest\-Pad@{get\-Nearest\-Pad}}
\index{get\-Nearest\-Pad@{get\-Nearest\-Pad}!gear::TPCParameters@{gear\-::\-T\-P\-C\-Parameters}}
\subsubsection[{get\-Nearest\-Pad}]{\setlength{\rightskip}{0pt plus 5cm}virtual {\bf Global\-Pad\-Index} gear\-::\-T\-P\-C\-Parameters\-::get\-Nearest\-Pad (
\begin{DoxyParamCaption}
\item[{double}]{c0, }
\item[{double}]{c1, }
\item[{double}]{z}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classgear_1_1TPCParameters_ae93547bc4a1228a3cb41fb357685b5d6}


Returns global\-Padindex Object for nearest pad to given coordinates (3\-D). 

The z coordinate is only used to determine whether the positive or negative half T\-P\-C is to be used. 

Implemented in {\bf gear\-::\-T\-P\-C\-Parameters\-Impl} \doxyref{}{p.}{classgear_1_1TPCParametersImpl_ab11bc7bd9ceceb212b73adbd27df277a}.

\index{gear\-::\-T\-P\-C\-Parameters@{gear\-::\-T\-P\-C\-Parameters}!get\-Pad\-Layout@{get\-Pad\-Layout}}
\index{get\-Pad\-Layout@{get\-Pad\-Layout}!gear::TPCParameters@{gear\-::\-T\-P\-C\-Parameters}}
\subsubsection[{get\-Pad\-Layout}]{\setlength{\rightskip}{0pt plus 5cm}virtual const {\bf Pad\-Row\-Layout2\-D}\& gear\-::\-T\-P\-C\-Parameters\-::get\-Pad\-Layout (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classgear_1_1TPCParameters_ada78588a21180f36e4790a55fbf2b8e0}


Kept for backward compatibility. 

In case there is only one module, which has no angle and no offset wrt. the gobal coordinate systen, it gives back the \doxyref{Pad\-Row\-Layout2\-D}{p.}{classgear_1_1PadRowLayout2D} of this module. Otherwise it throws a \doxyref{gear\-::\-Exception}{p.}{classgear_1_1Exception}.

\begin{DoxyRefDesc}{Deprecated}
\item[{\bf Deprecated}]\{Please use get\-Module(module\-I\-D) instead. The \doxyref{T\-P\-C\-Module}{p.}{classgear_1_1TPCModule} is an implementation of \doxyref{Pad\-Row\-Layout2\-D}{p.}{classgear_1_1PadRowLayout2D}\} \end{DoxyRefDesc}


Implemented in {\bf gear\-::\-T\-P\-C\-Parameters\-Impl} \doxyref{}{p.}{classgear_1_1TPCParametersImpl_a4d7330aad1ebf52b5be3bd3181ad5008}.

\index{gear\-::\-T\-P\-C\-Parameters@{gear\-::\-T\-P\-C\-Parameters}!get\-Plane\-Extent@{get\-Plane\-Extent}}
\index{get\-Plane\-Extent@{get\-Plane\-Extent}!gear::TPCParameters@{gear\-::\-T\-P\-C\-Parameters}}
\subsubsection[{get\-Plane\-Extent}]{\setlength{\rightskip}{0pt plus 5cm}virtual const std\-::vector$<$double$>$\& gear\-::\-T\-P\-C\-Parameters\-::get\-Plane\-Extent (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classgear_1_1TPCParameters_ae6dd543829650d35cb31413af814e5c7}


Extent of the sensitive plane -\/ [xmin,xmax,ymin,ymax] C\-A\-R\-T\-E\-S\-I\-A\-N or [rmin,rmax,phimin,phimax] P\-O\-L\-A\-R. 

These are the outermost coordinates in the respective coordinate system. It does not mean that the complete plane is sensitive as there might be dead space between the modules. 

Implemented in {\bf gear\-::\-T\-P\-C\-Parameters\-Impl} \doxyref{}{p.}{classgear_1_1TPCParametersImpl_af3ff3b1b8bf13407a0dcb4226f817fce}.

\index{gear\-::\-T\-P\-C\-Parameters@{gear\-::\-T\-P\-C\-Parameters}!get\-Readout\-Frequency@{get\-Readout\-Frequency}}
\index{get\-Readout\-Frequency@{get\-Readout\-Frequency}!gear::TPCParameters@{gear\-::\-T\-P\-C\-Parameters}}
\subsubsection[{get\-Readout\-Frequency}]{\setlength{\rightskip}{0pt plus 5cm}virtual double gear\-::\-T\-P\-C\-Parameters\-::get\-Readout\-Frequency (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classgear_1_1TPCParameters_aeafd4e2dd58ce53a5821c8600a4ba3de}


Kept for backward compatibility. 

In case there is only one module it gives back the redaout frequency of this module. Otherwise it throws a \doxyref{gear\-::\-Exception}{p.}{classgear_1_1Exception}.

\begin{DoxyRefDesc}{Deprecated}
\item[{\bf Deprecated}]\{Use \doxyref{T\-P\-C\-Module\-::get\-Readout\-Frequency()}{p.}{classgear_1_1TPCModule_a7cacc2cb4be7b0db9740a87a4e3cfe59} instead.\} \end{DoxyRefDesc}


Implemented in {\bf gear\-::\-T\-P\-C\-Parameters\-Impl} \doxyref{}{p.}{classgear_1_1TPCParametersImpl_a9dd807165d7f7c6ecd87c7f098366455}.

\index{gear\-::\-T\-P\-C\-Parameters@{gear\-::\-T\-P\-C\-Parameters}!is\-Inside\-Module@{is\-Inside\-Module}}
\index{is\-Inside\-Module@{is\-Inside\-Module}!gear::TPCParameters@{gear\-::\-T\-P\-C\-Parameters}}
\subsubsection[{is\-Inside\-Module}]{\setlength{\rightskip}{0pt plus 5cm}virtual bool gear\-::\-T\-P\-C\-Parameters\-::is\-Inside\-Module (
\begin{DoxyParamCaption}
\item[{double}]{c0, }
\item[{double}]{c1}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classgear_1_1TPCParameters_a8b6a281fca0232f3a9e2f260e0cd1af6}


True if coordinate (c0,c1) is within any module. 

This may or may not be on a pad, since with resitive films being on the film is enough to generate signal on pads (see \doxyref{T\-P\-C\-Module\-::get\-Border\-Width()}{p.}{classgear_1_1TPCModule_a1925357556737a3cd3d31764d5234f1e} ). This is the 2\-D version. Use is\-Inside\-Module(double c0, double c1, double z) to limit to correct end plate in case there are two. 

Implemented in {\bf gear\-::\-T\-P\-C\-Parameters\-Impl} \doxyref{}{p.}{classgear_1_1TPCParametersImpl_a559f3b7148cc2ed72557e34c588dc777}.

\index{gear\-::\-T\-P\-C\-Parameters@{gear\-::\-T\-P\-C\-Parameters}!is\-Inside\-Pad@{is\-Inside\-Pad}}
\index{is\-Inside\-Pad@{is\-Inside\-Pad}!gear::TPCParameters@{gear\-::\-T\-P\-C\-Parameters}}
\subsubsection[{is\-Inside\-Pad}]{\setlength{\rightskip}{0pt plus 5cm}virtual bool gear\-::\-T\-P\-C\-Parameters\-::is\-Inside\-Pad (
\begin{DoxyParamCaption}
\item[{double}]{c0, }
\item[{double}]{c1}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}\label{classgear_1_1TPCParameters_afb86f7f6fca18a7c6f0521a26db20278}


True if coordinate (c0,c1) is within any pad, on any module. 

This is the 2\-D version. Use is\-Inside\-Module(double c0, double c1, double z) to limit to correct end plate in case there are two. 

Implemented in {\bf gear\-::\-T\-P\-C\-Parameters\-Impl} \doxyref{}{p.}{classgear_1_1TPCParametersImpl_a8a4351dd4b9b81b2f10a3eea05694bf9}.



The documentation for this class was generated from the following file\-:\begin{DoxyCompactItemize}
\item 
T\-P\-C\-Parameters.\-h\end{DoxyCompactItemize}
