\section{gear\-:\-:T\-P\-C\-Module\-Impl Class Reference}
\label{classgear_1_1TPCModuleImpl}\index{gear\-::\-T\-P\-C\-Module\-Impl@{gear\-::\-T\-P\-C\-Module\-Impl}}


A wrapper Class for \doxyref{Pad\-Row\-Layout2\-D}{p.}{classgear_1_1PadRowLayout2D}, allowing which converts between local and global coordinate systems, and adds module appropriate functionality.  




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

Inheritance diagram for gear\-:\-:T\-P\-C\-Module\-Impl\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{classgear_1_1TPCModuleImpl}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
{\bf T\-P\-C\-Module\-Impl} (int module\-I\-D, {\bf Pad\-Row\-Layout2\-D} $\ast$pad\-Row\-Layout, int T\-P\-C\-Coordinate\-Type, double readout\-Frequency=0)\label{classgear_1_1TPCModuleImpl_ac00e011ec270daa573e694668b4b742d}

\begin{DoxyCompactList}\small\item\em Construct the empty \doxyref{Rectangular\-Pad\-Row\-Layout}{p.}{classgear_1_1RectangularPadRowLayout} with the width and x position specified through x\-Min and x\-Max and an optional y\-Min -\/ y\-Max will be computed from the rows that are added with add\-Row(). \end{DoxyCompactList}\item 
{\bf T\-P\-C\-Module\-Impl} (const {\bf T\-P\-C\-Module\-Impl} \&)\label{classgear_1_1TPCModuleImpl_a6171e12ecada633f1e600015e52b8970}

\begin{DoxyCompactList}\small\item\em The copy constructor. \end{DoxyCompactList}\item 
{\bf T\-P\-C\-Module\-Impl} \& {\bf operator=} (const {\bf T\-P\-C\-Module\-Impl} \&)\label{classgear_1_1TPCModuleImpl_a07e7515c7aee1d587684b02867798ca0}

\begin{DoxyCompactList}\small\item\em The assignment operator. \end{DoxyCompactList}\item 
virtual {\bf $\sim$\-T\-P\-C\-Module\-Impl} ()\label{classgear_1_1TPCModuleImpl_a2b8b5558e36219870d8b71e85066bb8a}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
{\bf Pad\-Row\-Layout2\-D} $\ast$ {\bf clone} () const 
\begin{DoxyCompactList}\small\item\em Returns a copy (clone) of this class. \end{DoxyCompactList}\item 
virtual int {\bf get\-Pad\-Layout\-Type} () const 
\item 
virtual int {\bf get\-Pad\-Layout\-Impl\-Type} () const \label{classgear_1_1TPCModuleImpl_ac9cb82e2b0b82a5446a703ea795a4845}

\begin{DoxyCompactList}\small\item\em The type of the row layout implementation\-: Pad\-Row\-Layout2\-D.\-T\-P\-C\-M\-O\-D\-U\-L\-E. \end{DoxyCompactList}\item 
virtual int {\bf get\-Coordinate\-Type} () const \label{classgear_1_1TPCModuleImpl_ab137166c5b564548be140f3b07b3df74}

\begin{DoxyCompactList}\small\item\em Identical to \doxyref{get\-T\-P\-C\-Coordinate\-Type()}{p.}{classgear_1_1TPCModuleImpl_aeb1c69d33a7f892ae9878208557fb95a}, because this is the type of coordinates which are returned, so you need this to interpret what you are getting. \end{DoxyCompactList}\item 
virtual int {\bf get\-Pad\-Shape} () const 
\begin{DoxyCompactList}\small\item\em The shape of the pads\-: Pad\-Row\-Layout2\-D\-::\-R\-E\-C\-T\-A\-N\-G\-L\-E (i.\-e. \end{DoxyCompactList}\item 
virtual int {\bf get\-N\-Pads} () const \label{classgear_1_1TPCModuleImpl_aa4248b866741a6feec5e657be15f4dbb}

\begin{DoxyCompactList}\small\item\em The total number of pads in the T\-P\-C. \end{DoxyCompactList}\item 
virtual int {\bf get\-N\-Rows} () const \label{classgear_1_1TPCModuleImpl_a1a8701fb11af6f97c727ef6045e770de}

\begin{DoxyCompactList}\small\item\em The number of rows. \end{DoxyCompactList}\item 
virtual double {\bf get\-Row\-Height} (int row\-Number) const \label{classgear_1_1TPCModuleImpl_a2648fb0cd0ed5cbfcbdfd83699253df4}

\begin{DoxyCompactList}\small\item\em The row height in mm. \end{DoxyCompactList}\item 
virtual double {\bf get\-Pad\-Width} (int pad\-Index) const 
\begin{DoxyCompactList}\small\item\em The width of the pad in mm. \end{DoxyCompactList}\item 
virtual double {\bf get\-Pad\-Pitch} (int pad\-Index) const 
\begin{DoxyCompactList}\small\item\em The pitch of the pad in mm. \end{DoxyCompactList}\item 
virtual {\bf gear\-::\-Vector2\-D} {\bf get\-Pad\-Center} (int pad\-Index) const 
\begin{DoxyCompactList}\small\item\em The center of the pad in mother's 2d coordinates, (x,y) or (r,phi). \end{DoxyCompactList}\item 
virtual double {\bf get\-Pad\-Height} (int pad\-Index) const \label{classgear_1_1TPCModuleImpl_a967f71e2e4ad820102a07fa34e486703}

\begin{DoxyCompactList}\small\item\em The height of the pad in mm. \end{DoxyCompactList}\item 
virtual const std\-::vector$<$ int $>$ \& {\bf get\-Pads\-In\-Row} (int row\-Number) const \label{classgear_1_1TPCModuleImpl_ae2464f32154bc3c90d42dd724d0dae1b}

\begin{DoxyCompactList}\small\item\em Indices of all pads in row row\-Number (row indices start from 0 at the bottom (C\-A\-R\-T\-E\-S\-I\-A\-N) or at the center (P\-O\-L\-A\-R)). \end{DoxyCompactList}\item 
virtual const std\-::vector\\*
$<$ double $>$ \& {\bf get\-Plane\-Extent} () const   throw (gear\-::\-Exception, std\-::exception)
\begin{DoxyCompactList}\small\item\em Inherited from \doxyref{Pad\-Row\-Layout2\-D}{p.}{classgear_1_1PadRowLayout2D}. \end{DoxyCompactList}\item 
virtual const std\-::vector\\*
$<$ double $>$ \& {\bf get\-Module\-Extent} () const \label{classgear_1_1TPCModuleImpl_a3760ac00187fcf086ffef6e66c3b88e4}

\begin{DoxyCompactList}\small\item\em Extent of the sensitive plane in T\-P\-C's coordinate system, with extended region just outside module from \-\_\-enlarge\-By, -\/ [xmin,xmax,ymin,ymax] C\-A\-R\-T\-E\-S\-I\-A\-N or [rmin,rmax,phimin,phimax] P\-O\-L\-A\-R, also may contain additional deadspace due to mismatch of offset's and coordinate types. \end{DoxyCompactList}\item 
virtual const std\-::vector\\*
$<$ double $>$ \& {\bf get\-Local\-Module\-Extent} () const 
\begin{DoxyCompactList}\small\item\em The module extent in local coordinates. \end{DoxyCompactList}\item 
virtual int {\bf get\-Row\-Number} (int pad\-Index) const \label{classgear_1_1TPCModuleImpl_aaecd783b77b251471c2eac1e12583599}

\begin{DoxyCompactList}\small\item\em The number of the row, for the given module(all modules restart at 0), that contains the pad at pad\-Index -\/ numbering starts at r/y==0. \end{DoxyCompactList}\item 
virtual int {\bf get\-Pad\-Number} (int pad\-Index) const \label{classgear_1_1TPCModuleImpl_a5d173dd99f76031b0be2dfcf14231ce8}

\begin{DoxyCompactList}\small\item\em The pad number (column) within the row -\/ numbering starts at x==0 (left). \end{DoxyCompactList}\item 
virtual int {\bf get\-Pad\-Index} (int row\-Num, int pad\-Num) const \label{classgear_1_1TPCModuleImpl_a3d8475dbf718360a908e23c413f63e9b}

\begin{DoxyCompactList}\small\item\em Create a pad\-Index for the given row and pad ( column ) number. \end{DoxyCompactList}\item 
virtual int {\bf get\-Nearest\-Pad} (double x, double y) const \label{classgear_1_1TPCModuleImpl_a6c6319939a418ad187da3cd9ac5db0a7}

\begin{DoxyCompactList}\small\item\em The index of the pad nearest to the given point in Global 2d coordinates (x,y,) or (r,phi). \end{DoxyCompactList}\item 
virtual int {\bf get\-Right\-Neighbour} (int pad\-Index) const \label{classgear_1_1TPCModuleImpl_aba48c37663fcc381bf0706f5c8731b2e}

\begin{DoxyCompactList}\small\item\em The index of the right neighbour pad. \end{DoxyCompactList}\item 
virtual int {\bf get\-Left\-Neighbour} (int pad\-Index) const \label{classgear_1_1TPCModuleImpl_a55fb86be2aff9203da820386e8612dce}

\begin{DoxyCompactList}\small\item\em The index of the left neighbour pad. \end{DoxyCompactList}\item 
virtual bool {\bf is\-Inside\-Pad} (double c0, double c1, int pad\-Index) const \label{classgear_1_1TPCModuleImpl_a39376f24d4abdb76ea53f1949734eb42}

\begin{DoxyCompactList}\small\item\em True if coordinate (x,y) is within the given pad. \end{DoxyCompactList}\item 
virtual bool {\bf is\-Inside\-Pad} (double c0, double c1) const \label{classgear_1_1TPCModuleImpl_a63993854de1e34b827fbfbdeaf195dec}

\begin{DoxyCompactList}\small\item\em True if coordinate (x,y) is within any pad. \end{DoxyCompactList}\item 
virtual bool {\bf is\-Inside\-Module} (double c0, double c1) const \label{classgear_1_1TPCModuleImpl_a43406436f2a07acfb594414afb5dcac0}

\begin{DoxyCompactList}\small\item\em True if global coordinate (c0,c1) is within this modules area of amplification/interest. \end{DoxyCompactList}\item 
virtual double {\bf get\-Readout\-Frequency} () const \label{classgear_1_1TPCModuleImpl_a7d66a69da72ccb7eece278fe0c2620b4}

\begin{DoxyCompactList}\small\item\em The readout frequency in Hz. \end{DoxyCompactList}\item 
virtual const {\bf gear\-::\-Vector2\-D} \& {\bf get\-Offset} () const \label{classgear_1_1TPCModuleImpl_afbdd0efa17004c048515da7ca2b4e0ab}

\begin{DoxyCompactList}\small\item\em Returns the offest of Modules origin from the global origin A vector from Global (0,0) to module (0,0) \end{DoxyCompactList}\item 
virtual double {\bf get\-Z\-Position} () const   throw (\-T\-P\-C\-Module\-::\-No\-Z\-Position\-Exception)
\begin{DoxyCompactList}\small\item\em Returns the z position of the module. \end{DoxyCompactList}\item 
virtual double {\bf get\-Angle} () const \label{classgear_1_1TPCModuleImpl_affba3b86cdaca9bfc8182b75a4bde487}

\begin{DoxyCompactList}\small\item\em Returns the rotation of the module, in Rads, with respect to the modules internal origin. \end{DoxyCompactList}\item 
virtual double {\bf get\-Distance\-To\-Pad} (double c0, double c1, int index) const \label{classgear_1_1TPCModuleImpl_afa5579623e73963bfbd157258e0ec1b1}

\begin{DoxyCompactList}\small\item\em Returns the distance from a global coodinate (c0,c1), to a given pad's nearest boundery; (c0,c1,index) \end{DoxyCompactList}\item 
virtual double {\bf get\-Distance\-To\-Module} (double c0, double c1) const \label{classgear_1_1TPCModuleImpl_a8557e2012c36b57f2986e8aeae6ba1ea}

\begin{DoxyCompactList}\small\item\em Returns distastance from a global coodinate (c0,c1), to the module's nearest boundery; (c0,c1) \end{DoxyCompactList}\item 
virtual int {\bf get\-Module\-I\-D} () const \label{classgear_1_1TPCModuleImpl_abf78208f072e88ba0d41edbb30b3097c}

\begin{DoxyCompactList}\small\item\em Returns module I\-D. \end{DoxyCompactList}\item 
virtual bool {\bf is\-Overlapping} ({\bf T\-P\-C\-Module} $\ast$test\-This\-Module) const \label{classgear_1_1TPCModuleImpl_a53336479606c06046a4f5ab653a8b489}

\begin{DoxyCompactList}\small\item\em Returns True if this and The given module $\ast$ overlap pad regions Note\-: overlaping sensitive regions is ok, Just no two pads with shared physicsal space. \end{DoxyCompactList}\item 
virtual double {\bf get\-Border\-Width} () const 
\begin{DoxyCompactList}\small\item\em Returns the amount by which the pad plane has been extended to produce the module plane. \end{DoxyCompactList}\item 
int {\bf get\-T\-P\-C\-Coordinate\-Type} () const 
\begin{DoxyCompactList}\small\item\em Returns the T\-P\-Cs coordinate type. \end{DoxyCompactList}\item 
void {\bf set\-Offset} (double x\-\_\-r, double y\-\_\-phi)
\begin{DoxyCompactList}\small\item\em Set the offset of the local pad plane wrt. \end{DoxyCompactList}\item 
void {\bf set\-Z\-Position} (double z)\label{classgear_1_1TPCModuleImpl_abae440981bbc51fbcb7094c70976a8cb}

\begin{DoxyCompactList}\small\item\em Set the z position of the module. \end{DoxyCompactList}\item 
void {\bfseries set\-Angle} (double angle)\label{classgear_1_1TPCModuleImpl_a87bcafc41b9d63c0a8027b85c205d6e4}

\item 
void {\bfseries set\-Border\-Width} (double border)\label{classgear_1_1TPCModuleImpl_a1e3e94e0455482cf6e9f4e0730648780}

\item 
void {\bf set\-Readout\-Frequency} (double frequency)\label{classgear_1_1TPCModuleImpl_aaec5276b79e1c6f83b3618e8cc6d1165}

\begin{DoxyCompactList}\small\item\em kept for backward compatibility, please set readout frequency in constructor \end{DoxyCompactList}\item 
const {\bf Pad\-Row\-Layout2\-D} \& {\bf get\-Local\-Pad\-Layout} () const 
\begin{DoxyCompactList}\small\item\em Returns a reference to the instance of the underlaying pad layout. \end{DoxyCompactList}\item 
{\bf gear\-::\-Vector2\-D} {\bf global\-To\-Local} (double c0, double c1) const 
\begin{DoxyCompactList}\small\item\em Returns the local coordinates for a point in global coordinates. \end{DoxyCompactList}\item 
{\bf gear\-::\-Vector2\-D} {\bf local\-To\-Global} (double c0, double c1) const 
\begin{DoxyCompactList}\small\item\em Returns the global coordinates for a point in local coordinates. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
void {\bf convert\-Local\-Plane\-To\-Global\-Plane\-Extend} (void)
\begin{DoxyCompactList}\small\item\em Transforms the local plane\-Extend to a global plane\-Extend, global module\-Extend and local\-Module\-Extend. \end{DoxyCompactList}\item 
std\-::vector$<$ double $>$ {\bf calculate\-Global\-Extent\-Cartesian\-Cartesian} (std\-::vector$<$ double $>$ local\-Extent)\label{classgear_1_1TPCModuleImpl_af9c227f5cdece3b872a8a52cafd68138}

\begin{DoxyCompactList}\small\item\em Calculate the global extent for a given local extent if both local and global coordinate system are cartesian. \end{DoxyCompactList}\item 
std\-::vector$<$ double $>$ {\bf calculate\-Global\-Extent\-Polar\-Polar} (std\-::vector$<$ double $>$ local\-Extent)\label{classgear_1_1TPCModuleImpl_a948e2b31346de12f41de34e20f241125}

\begin{DoxyCompactList}\small\item\em Calculate the global extent for a given local extent if both local and global coordinate system are polar. \end{DoxyCompactList}\item 
std\-::vector$<$ double $>$ {\bf calculate\-Global\-Extent\-Cartesian\-Polar} (std\-::vector$<$ double $>$ local\-Extent)\label{classgear_1_1TPCModuleImpl_aa155f6ee74a3d8f3646a03848000de0c}

\begin{DoxyCompactList}\small\item\em Calculate the global extent for a given local extent if the global coordinates are cartesian and the module is polar. \end{DoxyCompactList}\item 
void {\bf copy\-\_\-and\-\_\-assign} (const {\bf T\-P\-C\-Module\-Impl} \&)
\begin{DoxyCompactList}\small\item\em function to copy all internal variables, incl. \end{DoxyCompactList}\item 
void {\bf cleanup} ()
\begin{DoxyCompactList}\small\item\em function to delete all the objects pointed to and owned by the \doxyref{T\-P\-C\-Module}{p.}{classgear_1_1TPCModule}. \end{DoxyCompactList}\item 
void {\bf check\-Local\-Is\-Global} ()\label{classgear_1_1TPCModuleImpl_a67fcf1a540dbfdd01413defa8315cff1}

\begin{DoxyCompactList}\small\item\em Function to set the \-\_\-local\-Is\-Global flag in case both coordinate systems are identical. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
std\-::vector$<$ double $>$ {\bfseries \-\_\-plane\-Extent}\label{classgear_1_1TPCModuleImpl_a5c3a7505a18637eab73af1109ea94e81}

\item 
std\-::vector$<$ double $>$ {\bfseries \-\_\-module\-Extent}\label{classgear_1_1TPCModuleImpl_aa237c2c8f55aec701494ddb0430f8055}

\item 
std\-::vector$<$ double $>$ {\bf \-\_\-local\-Module\-Extent}\label{classgear_1_1TPCModuleImpl_aa2a22d7fb91648d828ffb9b153bccf02}

\begin{DoxyCompactList}\small\item\em The module extend in the pad plane's coordinate system. \end{DoxyCompactList}\item 
{\bf Pad\-Row\-Layout2\-D} $\ast$ {\bfseries \-\_\-pad\-Row\-Layout}\label{classgear_1_1TPCModuleImpl_aad0f20e6c96aa24605bfc0f816b6228f}

\item 
double {\bfseries \-\_\-readout\-Frequency}\label{classgear_1_1TPCModuleImpl_a22ef3dc1655ee4e69a0e95168b7de02a}

\item 
{\bf gear\-::\-Vector2\-D} {\bf \-\_\-offset}\label{classgear_1_1TPCModuleImpl_a4c73d8c11d57017972252978df498772}

\begin{DoxyCompactList}\small\item\em The offset in cordinates described by \-\_\-moms\-Coordinate\-Type. \end{DoxyCompactList}\item 
{\bf gear\-::\-Vector2\-D} {\bf \-\_\-offset\-\_\-cartesian}\label{classgear_1_1TPCModuleImpl_aa35f34027aedf5d1f84afe49b1d3db61}

\begin{DoxyCompactList}\small\item\em The offset in cartesian cordinates. \end{DoxyCompactList}\item 
double {\bf \-\_\-z\-Position}\label{classgear_1_1TPCModuleImpl_a8cf3a65a3b11c31ce133f33a9c11d843}

\begin{DoxyCompactList}\small\item\em The z positon of the module. \end{DoxyCompactList}\item 
double {\bf \-\_\-angle}\label{classgear_1_1TPCModuleImpl_a1a2833ee27bc077231e608d5d602d88e}

\begin{DoxyCompactList}\small\item\em The angle wrt. the local coordinate system. \end{DoxyCompactList}\item 
double {\bf \-\_\-cos\-\_\-angle}\label{classgear_1_1TPCModuleImpl_a89d5d3bcba701a11c59ae590528cd94c}

\begin{DoxyCompactList}\small\item\em For performance\-: cache the cosine of the angle. \end{DoxyCompactList}\item 
double {\bf \-\_\-sin\-\_\-angle}\label{classgear_1_1TPCModuleImpl_a14a863f0a54f4604d7eb2ec6d56bce02}

\begin{DoxyCompactList}\small\item\em For performance\-: cache the sine of the angle. \end{DoxyCompactList}\item 
int {\bf \-\_\-moms\-Coordinate\-Type}\label{classgear_1_1TPCModuleImpl_aa359d1355e73ae734b6fd35dc5cea8a9}

\begin{DoxyCompactList}\small\item\em A\-K\-A coordinate type of the T\-P\-C which contains this module. \end{DoxyCompactList}\item 
int {\bfseries \-\_\-module\-I\-D}\label{classgear_1_1TPCModuleImpl_add36cd589f20d7b506ff90132fcfeab1}

\item 
double {\bf \-\_\-border}\label{classgear_1_1TPCModuleImpl_aaaf731fe644d254afb850ff98c743f40}

\begin{DoxyCompactList}\small\item\em Area around a pad Plane to extend the amplification reagion so that the outmost pads don't loose elecetrons. \end{DoxyCompactList}\item 
bool {\bfseries \-\_\-local\-Is\-Global}\label{classgear_1_1TPCModuleImpl_a7cd83783e0add49f69e299e8c59626f3}

\item 
bool {\bf \-\_\-z\-Position\-Is\-Set}
\begin{DoxyCompactList}\small\item\em Flag to show whether the \doxyref{set\-Z\-Position()}{p.}{classgear_1_1TPCModuleImpl_abae440981bbc51fbcb7094c70976a8cb} function had been called. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
A wrapper Class for \doxyref{Pad\-Row\-Layout2\-D}{p.}{classgear_1_1PadRowLayout2D}, allowing which converts between local and global coordinate systems, and adds module appropriate functionality. 

New in v00-\/15\-: The z position of the module can be set to distinguish the two end plates. \begin{DoxyAttention}{Attention}
For the \char`\"{}negative\char`\"{} half T\-P\-C (the half with drift direction in negative z direction) the x coodinate of global system is mirrored. The reason is that in case of two identical end plates, the one mounted on the negative side is rotated by 180 degrees around the y axis, which changes the z coordinate (drift direction) and the x coordinate. The prototype case, which is described by z\-Position = 0, also has the drift direction in negative z direction.
\end{DoxyAttention}
\begin{DoxyAuthor}{Author}
M. Killenberg, (Bonn) S. Turnbull, (Saclay/\-Carleton) 
\end{DoxyAuthor}


Definition at line 23 of file T\-P\-C\-Module\-Impl.\-h.



\subsection{Member Function Documentation}
\index{gear\-::\-T\-P\-C\-Module\-Impl@{gear\-::\-T\-P\-C\-Module\-Impl}!cleanup@{cleanup}}
\index{cleanup@{cleanup}!gear::TPCModuleImpl@{gear\-::\-T\-P\-C\-Module\-Impl}}
\subsubsection[{cleanup}]{\setlength{\rightskip}{0pt plus 5cm}void gear\-::\-T\-P\-C\-Module\-Impl\-::cleanup (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}}\label{classgear_1_1TPCModuleImpl_a78341d216c5787d714e3050eb664d6ed}


function to delete all the objects pointed to and owned by the \doxyref{T\-P\-C\-Module}{p.}{classgear_1_1TPCModule}. 

Used by desctructor and assigment operator to avoid code duplication 

Definition at line 1244 of file T\-P\-C\-Module\-Impl.\-cc.



Referenced by operator=(), and $\sim$\-T\-P\-C\-Module\-Impl().

\index{gear\-::\-T\-P\-C\-Module\-Impl@{gear\-::\-T\-P\-C\-Module\-Impl}!clone@{clone}}
\index{clone@{clone}!gear::TPCModuleImpl@{gear\-::\-T\-P\-C\-Module\-Impl}}
\subsubsection[{clone}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Pad\-Row\-Layout2\-D} $\ast$ gear\-::\-T\-P\-C\-Module\-Impl\-::clone (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}\label{classgear_1_1TPCModuleImpl_a154ad793d3a9c4fa9f571c0bed06df1d}


Returns a copy (clone) of this class. 

As \doxyref{Pad\-Row\-Layout2\-D}{p.}{classgear_1_1PadRowLayout2D} is an abstract interface with several implementation, this is used get a copy of the actual implementation without having to know what the actual implementation is. 

Implements {\bf gear\-::\-Pad\-Row\-Layout2\-D} \doxyref{}{p.}{classgear_1_1PadRowLayout2D_acf245931002c3e22a86b2d1d64cb4c43}.



Definition at line 1239 of file T\-P\-C\-Module\-Impl.\-cc.



References T\-P\-C\-Module\-Impl().

\index{gear\-::\-T\-P\-C\-Module\-Impl@{gear\-::\-T\-P\-C\-Module\-Impl}!convert\-Local\-Plane\-To\-Global\-Plane\-Extend@{convert\-Local\-Plane\-To\-Global\-Plane\-Extend}}
\index{convert\-Local\-Plane\-To\-Global\-Plane\-Extend@{convert\-Local\-Plane\-To\-Global\-Plane\-Extend}!gear::TPCModuleImpl@{gear\-::\-T\-P\-C\-Module\-Impl}}
\subsubsection[{convert\-Local\-Plane\-To\-Global\-Plane\-Extend}]{\setlength{\rightskip}{0pt plus 5cm}void gear\-::\-T\-P\-C\-Module\-Impl\-::convert\-Local\-Plane\-To\-Global\-Plane\-Extend (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}}\label{classgear_1_1TPCModuleImpl_a9851964ba90f6a6ac1d1b5c42be85281}


Transforms the local plane\-Extend to a global plane\-Extend, global module\-Extend and local\-Module\-Extend. 

Transforms a local plane Extend to a global Plane extend. 

Definition at line 195 of file T\-P\-C\-Module\-Impl.\-cc.



References \-\_\-border, \-\_\-local\-Module\-Extent, \-\_\-moms\-Coordinate\-Type, calculate\-Global\-Extent\-Cartesian\-Cartesian(), calculate\-Global\-Extent\-Cartesian\-Polar(), calculate\-Global\-Extent\-Polar\-Polar(), gear\-::\-Pad\-Row\-Layout2\-D\-::get\-Coordinate\-Type(), and gear\-::\-Pad\-Row\-Layout2\-D\-::get\-Plane\-Extent().



Referenced by set\-Offset().

\index{gear\-::\-T\-P\-C\-Module\-Impl@{gear\-::\-T\-P\-C\-Module\-Impl}!copy\-\_\-and\-\_\-assign@{copy\-\_\-and\-\_\-assign}}
\index{copy\-\_\-and\-\_\-assign@{copy\-\_\-and\-\_\-assign}!gear::TPCModuleImpl@{gear\-::\-T\-P\-C\-Module\-Impl}}
\subsubsection[{copy\-\_\-and\-\_\-assign}]{\setlength{\rightskip}{0pt plus 5cm}void gear\-::\-T\-P\-C\-Module\-Impl\-::copy\-\_\-and\-\_\-assign (
\begin{DoxyParamCaption}
\item[{const {\bf T\-P\-C\-Module\-Impl} \&}]{right}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}}\label{classgear_1_1TPCModuleImpl_a0c47f9cc352b06064f5d6cb5aa76ed30}


function to copy all internal variables, incl. 

the objects pointed to and owned by the \doxyref{T\-P\-C\-Module}{p.}{classgear_1_1TPCModule}. Used by constructor and assigment operator to avoid code duplication 

Definition at line 1211 of file T\-P\-C\-Module\-Impl.\-cc.



References \-\_\-angle, \-\_\-border, \-\_\-cos\-\_\-angle, \-\_\-local\-Module\-Extent, \-\_\-moms\-Coordinate\-Type, \-\_\-offset, \-\_\-offset\-\_\-cartesian, \-\_\-sin\-\_\-angle, \-\_\-z\-Position, \-\_\-z\-Position\-Is\-Set, and gear\-::\-Pad\-Row\-Layout2\-D\-::clone().



Referenced by operator=(), and T\-P\-C\-Module\-Impl().

\index{gear\-::\-T\-P\-C\-Module\-Impl@{gear\-::\-T\-P\-C\-Module\-Impl}!get\-Border\-Width@{get\-Border\-Width}}
\index{get\-Border\-Width@{get\-Border\-Width}!gear::TPCModuleImpl@{gear\-::\-T\-P\-C\-Module\-Impl}}
\subsubsection[{get\-Border\-Width}]{\setlength{\rightskip}{0pt plus 5cm}virtual double gear\-::\-T\-P\-C\-Module\-Impl\-::get\-Border\-Width (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}\label{classgear_1_1TPCModuleImpl_ad3e20cb489e1525276758b64c786eee4}


Returns the amount by which the pad plane has been extended to produce the module plane. 

In cartesian coordinates the plane is extended in x and y by this ammount on all sides.

In polar coordinates the r-\/coordinate is extended by the borderwidth, in $\varphi$ it is extended by an angle corresponding to {\ttfamily border\-Width/r\-Min}, so that the border is at least boder\-Width at the inner radius and somewhat wider for larger r. 

Implements {\bf gear\-::\-T\-P\-C\-Module} \doxyref{}{p.}{classgear_1_1TPCModule_a1925357556737a3cd3d31764d5234f1e}.



Definition at line 287 of file T\-P\-C\-Module\-Impl.\-h.



References \-\_\-border.

\index{gear\-::\-T\-P\-C\-Module\-Impl@{gear\-::\-T\-P\-C\-Module\-Impl}!get\-Local\-Module\-Extent@{get\-Local\-Module\-Extent}}
\index{get\-Local\-Module\-Extent@{get\-Local\-Module\-Extent}!gear::TPCModuleImpl@{gear\-::\-T\-P\-C\-Module\-Impl}}
\subsubsection[{get\-Local\-Module\-Extent}]{\setlength{\rightskip}{0pt plus 5cm}virtual const std\-::vector$<$double$>$\& gear\-::\-T\-P\-C\-Module\-Impl\-::get\-Local\-Module\-Extent (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}\label{classgear_1_1TPCModuleImpl_aea3359b39fa355a475718bd387ec7da4}


The module extent in local coordinates. 

This is the (local) pad plane, enlarged by the border. As the plane extent in global coordinates does not correspond to the actual shape, this is the only way to describe the module extent without dead space (everything in the module extent is considerred active, for instance due to a resistive coating which causes signals even if there is no pad at the specific position). \begin{DoxyAttention}{Attention}
Returns L\-O\-C\-A\-L coordinates! 
\end{DoxyAttention}


Implements {\bf gear\-::\-T\-P\-C\-Module} \doxyref{}{p.}{classgear_1_1TPCModule_aa04a3b5994d79a2b06d03718dfc9eeb0}.



Definition at line 189 of file T\-P\-C\-Module\-Impl.\-h.



References \-\_\-local\-Module\-Extent.

\index{gear\-::\-T\-P\-C\-Module\-Impl@{gear\-::\-T\-P\-C\-Module\-Impl}!get\-Local\-Pad\-Layout@{get\-Local\-Pad\-Layout}}
\index{get\-Local\-Pad\-Layout@{get\-Local\-Pad\-Layout}!gear::TPCModuleImpl@{gear\-::\-T\-P\-C\-Module\-Impl}}
\subsubsection[{get\-Local\-Pad\-Layout}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf Pad\-Row\-Layout2\-D}\& gear\-::\-T\-P\-C\-Module\-Impl\-::get\-Local\-Pad\-Layout (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}\label{classgear_1_1TPCModuleImpl_a374f320a4aa59d715623f0ee4155edbe}


Returns a reference to the instance of the underlaying pad layout. 

\begin{DoxyAttention}{Attention}
This pad layout has it's own, local coordinate system! Usually it is not necessary to deal with the pad layout directly. It is preferred to use the modules memberfunctions, since the module is an implementation of \doxyref{Pad\-Row\-Layout2\-D}{p.}{classgear_1_1PadRowLayout2D} which is implemented such that all coordinates are delivered in global coordinates. However there are cases it can be handy to have the local coordinates available, for instance for debugging or to perform the coordinate transformations on the graphics processor for an event display. 
\end{DoxyAttention}


Implements {\bf gear\-::\-T\-P\-C\-Module} \doxyref{}{p.}{classgear_1_1TPCModule_ad303950c816efb8f9d7c3e5d2961324e}.



Definition at line 310 of file T\-P\-C\-Module\-Impl.\-h.

\index{gear\-::\-T\-P\-C\-Module\-Impl@{gear\-::\-T\-P\-C\-Module\-Impl}!get\-Pad\-Center@{get\-Pad\-Center}}
\index{get\-Pad\-Center@{get\-Pad\-Center}!gear::TPCModuleImpl@{gear\-::\-T\-P\-C\-Module\-Impl}}
\subsubsection[{get\-Pad\-Center}]{\setlength{\rightskip}{0pt plus 5cm}{\bf gear\-::\-Vector2\-D} gear\-::\-T\-P\-C\-Module\-Impl\-::get\-Pad\-Center (
\begin{DoxyParamCaption}
\item[{int}]{pad\-Index}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}\label{classgear_1_1TPCModuleImpl_a93199e85064a830b6edac5c1f1c10146}


The center of the pad in mother's 2d coordinates, (x,y) or (r,phi). 

/ A\-K\-A the T\-P\-C's coordinates. 

Implements {\bf gear\-::\-T\-P\-C\-Module} \doxyref{}{p.}{classgear_1_1TPCModule_a3f02926795679452eb3dc0eef739e2c4}.



Definition at line 1249 of file T\-P\-C\-Module\-Impl.\-cc.



References gear\-::\-Pad\-Row\-Layout2\-D\-::get\-Pad\-Center(), and local\-To\-Global().

\index{gear\-::\-T\-P\-C\-Module\-Impl@{gear\-::\-T\-P\-C\-Module\-Impl}!get\-Pad\-Layout\-Type@{get\-Pad\-Layout\-Type}}
\index{get\-Pad\-Layout\-Type@{get\-Pad\-Layout\-Type}!gear::TPCModuleImpl@{gear\-::\-T\-P\-C\-Module\-Impl}}
\subsubsection[{get\-Pad\-Layout\-Type}]{\setlength{\rightskip}{0pt plus 5cm}int gear\-::\-T\-P\-C\-Module\-Impl\-::get\-Pad\-Layout\-Type (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}\label{classgear_1_1TPCModuleImpl_ae23bc34f8dcc356351597f4355c510bc}
\begin{DoxyRefDesc}{Deprecated}
\item[{\bf Deprecated}]\{ As there now is more than one implementation for each coordinate type this is not sufficient to distinguish the implementations any more. Use \doxyref{get\-Pad\-Layout\-Impl\-Type()}{p.}{classgear_1_1TPCModuleImpl_ac9cb82e2b0b82a5446a703ea795a4845} to get the implementation type. Use \doxyref{get\-Coordinate\-Type()}{p.}{classgear_1_1TPCModuleImpl_ab137166c5b564548be140f3b07b3df74} to get the type of the coordinate system.\end{DoxyRefDesc}


For backward compatibility this function returns \doxyref{get\-Coordinate\-Type()}{p.}{classgear_1_1TPCModuleImpl_ab137166c5b564548be140f3b07b3df74}.\} 

Implements {\bf gear\-::\-T\-P\-C\-Module} \doxyref{}{p.}{classgear_1_1TPCModule_a115e1ba6cacd753fdc9843c026dc8136}.



Definition at line 1254 of file T\-P\-C\-Module\-Impl.\-cc.



References get\-Coordinate\-Type().

\index{gear\-::\-T\-P\-C\-Module\-Impl@{gear\-::\-T\-P\-C\-Module\-Impl}!get\-Pad\-Pitch@{get\-Pad\-Pitch}}
\index{get\-Pad\-Pitch@{get\-Pad\-Pitch}!gear::TPCModuleImpl@{gear\-::\-T\-P\-C\-Module\-Impl}}
\subsubsection[{get\-Pad\-Pitch}]{\setlength{\rightskip}{0pt plus 5cm}virtual double gear\-::\-T\-P\-C\-Module\-Impl\-::get\-Pad\-Pitch (
\begin{DoxyParamCaption}
\item[{int}]{pad\-Index}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}\label{classgear_1_1TPCModuleImpl_a6167ede29d1e1ae5442e8beaf527029e}


The pitch of the pad in mm. 

(metal + gap) 

Implements {\bf gear\-::\-Pad\-Row\-Layout2\-D} \doxyref{}{p.}{classgear_1_1PadRowLayout2D_a43ed6961961eb7cd7311ef7274faea9a}.



Definition at line 152 of file T\-P\-C\-Module\-Impl.\-h.



References gear\-::\-Pad\-Row\-Layout2\-D\-::get\-Pad\-Pitch().

\index{gear\-::\-T\-P\-C\-Module\-Impl@{gear\-::\-T\-P\-C\-Module\-Impl}!get\-Pad\-Shape@{get\-Pad\-Shape}}
\index{get\-Pad\-Shape@{get\-Pad\-Shape}!gear::TPCModuleImpl@{gear\-::\-T\-P\-C\-Module\-Impl}}
\subsubsection[{get\-Pad\-Shape}]{\setlength{\rightskip}{0pt plus 5cm}virtual int gear\-::\-T\-P\-C\-Module\-Impl\-::get\-Pad\-Shape (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}\label{classgear_1_1TPCModuleImpl_a1569db17461004cfa16d980278094cb4}


The shape of the pads\-: Pad\-Row\-Layout2\-D\-::\-R\-E\-C\-T\-A\-N\-G\-L\-E (i.\-e. 

keystone). 

Implements {\bf gear\-::\-T\-P\-C\-Module} \doxyref{}{p.}{classgear_1_1TPCModule_a397315c543081f5ff3af271ad10cc9f0}.



Definition at line 132 of file T\-P\-C\-Module\-Impl.\-h.



References gear\-::\-Pad\-Row\-Layout2\-D\-::get\-Pad\-Shape().

\index{gear\-::\-T\-P\-C\-Module\-Impl@{gear\-::\-T\-P\-C\-Module\-Impl}!get\-Pad\-Width@{get\-Pad\-Width}}
\index{get\-Pad\-Width@{get\-Pad\-Width}!gear::TPCModuleImpl@{gear\-::\-T\-P\-C\-Module\-Impl}}
\subsubsection[{get\-Pad\-Width}]{\setlength{\rightskip}{0pt plus 5cm}virtual double gear\-::\-T\-P\-C\-Module\-Impl\-::get\-Pad\-Width (
\begin{DoxyParamCaption}
\item[{int}]{pad\-Index}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}\label{classgear_1_1TPCModuleImpl_a94761a8ec8676a605abef551df8a808f}


The width of the pad in mm. 

(only the metal) 

Implements {\bf gear\-::\-T\-P\-C\-Module} \doxyref{}{p.}{classgear_1_1TPCModule_ae0c7e60ddf82c2d9feae06df9fde64db}.



Definition at line 148 of file T\-P\-C\-Module\-Impl.\-h.



References gear\-::\-Pad\-Row\-Layout2\-D\-::get\-Pad\-Width().

\index{gear\-::\-T\-P\-C\-Module\-Impl@{gear\-::\-T\-P\-C\-Module\-Impl}!get\-Plane\-Extent@{get\-Plane\-Extent}}
\index{get\-Plane\-Extent@{get\-Plane\-Extent}!gear::TPCModuleImpl@{gear\-::\-T\-P\-C\-Module\-Impl}}
\subsubsection[{get\-Plane\-Extent}]{\setlength{\rightskip}{0pt plus 5cm}const std\-::vector$<$ double $>$ \& gear\-::\-T\-P\-C\-Module\-Impl\-::get\-Plane\-Extent (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const throw  {\bf gear\-::\-Exception}, std\-::exception) \hspace{0.3cm}{\ttfamily [virtual]}}\label{classgear_1_1TPCModuleImpl_a22257a5dc661a85f49f6cf4af34ec752}


Inherited from \doxyref{Pad\-Row\-Layout2\-D}{p.}{classgear_1_1PadRowLayout2D}. 

It gives the minimal set of global coodinates that contains the pad plane. In general this does not mean that the global plane extent if fully covered with avtive area, but only that there is no active area outside the plane extent. 

Implements {\bf gear\-::\-T\-P\-C\-Module} \doxyref{}{p.}{classgear_1_1TPCModule_a4b6ad9de8281c0acd67692b54cd4cd4a}.



Definition at line 1272 of file T\-P\-C\-Module\-Impl.\-cc.

\index{gear\-::\-T\-P\-C\-Module\-Impl@{gear\-::\-T\-P\-C\-Module\-Impl}!get\-T\-P\-C\-Coordinate\-Type@{get\-T\-P\-C\-Coordinate\-Type}}
\index{get\-T\-P\-C\-Coordinate\-Type@{get\-T\-P\-C\-Coordinate\-Type}!gear::TPCModuleImpl@{gear\-::\-T\-P\-C\-Module\-Impl}}
\subsubsection[{get\-T\-P\-C\-Coordinate\-Type}]{\setlength{\rightskip}{0pt plus 5cm}int gear\-::\-T\-P\-C\-Module\-Impl\-::get\-T\-P\-C\-Coordinate\-Type (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}\label{classgear_1_1TPCModuleImpl_aeb1c69d33a7f892ae9878208557fb95a}


Returns the T\-P\-Cs coordinate type. 

Note that this is N\-O\-T the coordinate type of the (local) pad plane on the module but of the end plate this module is mounted in. 

Implements {\bf gear\-::\-T\-P\-C\-Module} \doxyref{}{p.}{classgear_1_1TPCModule_af6d94a3ec26784495aaf80b30ebd4861}.



Definition at line 293 of file T\-P\-C\-Module\-Impl.\-h.



References \-\_\-moms\-Coordinate\-Type.

\index{gear\-::\-T\-P\-C\-Module\-Impl@{gear\-::\-T\-P\-C\-Module\-Impl}!get\-Z\-Position@{get\-Z\-Position}}
\index{get\-Z\-Position@{get\-Z\-Position}!gear::TPCModuleImpl@{gear\-::\-T\-P\-C\-Module\-Impl}}
\subsubsection[{get\-Z\-Position}]{\setlength{\rightskip}{0pt plus 5cm}double gear\-::\-T\-P\-C\-Module\-Impl\-::get\-Z\-Position (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const throw  {\bf T\-P\-C\-Module\-::\-No\-Z\-Position\-Exception}) \hspace{0.3cm}{\ttfamily [virtual]}}\label{classgear_1_1TPCModuleImpl_a416867a3e1627346800ee640c42ab2cf}


Returns the z position of the module. 

This is the position of the anode surface terminating the drift volume. For prototypes this will typically be 0 so z is propotional to the drift distance. For a full detector positive and negative values correspond to modules on the first and second end cap, resepctively. It throws a \doxyref{gear\-::\-T\-P\-C\-Module\-::\-No\-Z\-Position\-Exception}{p.}{classgear_1_1TPCModule_1_1NoZPositionException} in case set\-Z\-Position has not been called before. 

Implements {\bf gear\-::\-T\-P\-C\-Module} \doxyref{}{p.}{classgear_1_1TPCModule_ab457f9c80ed7459c611549200bd0baa3}.



Definition at line 1545 of file T\-P\-C\-Module\-Impl.\-cc.



References \-\_\-z\-Position, and \-\_\-z\-Position\-Is\-Set.

\index{gear\-::\-T\-P\-C\-Module\-Impl@{gear\-::\-T\-P\-C\-Module\-Impl}!global\-To\-Local@{global\-To\-Local}}
\index{global\-To\-Local@{global\-To\-Local}!gear::TPCModuleImpl@{gear\-::\-T\-P\-C\-Module\-Impl}}
\subsubsection[{global\-To\-Local}]{\setlength{\rightskip}{0pt plus 5cm}{\bf gear\-::\-Vector2\-D} gear\-::\-T\-P\-C\-Module\-Impl\-::global\-To\-Local (
\begin{DoxyParamCaption}
\item[{double}]{c0, }
\item[{double}]{c1}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}\label{classgear_1_1TPCModuleImpl_a9edb3bb2d1b0204984b141126bffd572}


Returns the local coordinates for a point in global coordinates. 

It performs a complete coordinate transformation, applying the translation, rotation and coordinate conversion to the coordinate type of the local pad layout. Use \doxyref{get\-Local\-Pad\-Layout()}{p.}{classgear_1_1TPCModuleImpl_a374f320a4aa59d715623f0ee4155edbe}-\/$>$\doxyref{get\-Coordinate\-Type()}{p.}{classgear_1_1TPCModuleImpl_ab137166c5b564548be140f3b07b3df74} to interpret the return value correctly.

Usally you don't need this function since all member functions of the module use global coordinates only. 

Implements {\bf gear\-::\-T\-P\-C\-Module} \doxyref{}{p.}{classgear_1_1TPCModule_a127cdcaec185421761c15d2703437897}.



Definition at line 10 of file T\-P\-C\-Module\-Impl.\-cc.



References \-\_\-angle, \-\_\-cos\-\_\-angle, \-\_\-moms\-Coordinate\-Type, \-\_\-offset\-\_\-cartesian, \-\_\-sin\-\_\-angle, \-\_\-z\-Position, and gear\-::\-Pad\-Row\-Layout2\-D\-::get\-Coordinate\-Type().



Referenced by calculate\-Global\-Extent\-Cartesian\-Polar(), calculate\-Global\-Extent\-Polar\-Polar(), get\-Distance\-To\-Module(), get\-Distance\-To\-Pad(), get\-Nearest\-Pad(), is\-Inside\-Module(), and is\-Inside\-Pad().

\index{gear\-::\-T\-P\-C\-Module\-Impl@{gear\-::\-T\-P\-C\-Module\-Impl}!local\-To\-Global@{local\-To\-Global}}
\index{local\-To\-Global@{local\-To\-Global}!gear::TPCModuleImpl@{gear\-::\-T\-P\-C\-Module\-Impl}}
\subsubsection[{local\-To\-Global}]{\setlength{\rightskip}{0pt plus 5cm}{\bf gear\-::\-Vector2\-D} gear\-::\-T\-P\-C\-Module\-Impl\-::local\-To\-Global (
\begin{DoxyParamCaption}
\item[{double}]{c0, }
\item[{double}]{c1}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}\label{classgear_1_1TPCModuleImpl_af53dd42b26d323b3055ab60112ef9f42}


Returns the global coordinates for a point in local coordinates. 

It performs a complete coordinate transformation, applying the coordinate conversion from the coordinate type of the local pad layout to the global coordinate type, rotation and translation. Use \doxyref{get\-Local\-Pad\-Layout()}{p.}{classgear_1_1TPCModuleImpl_a374f320a4aa59d715623f0ee4155edbe}-\/$>$\doxyref{get\-Coordinate\-Type()}{p.}{classgear_1_1TPCModuleImpl_ab137166c5b564548be140f3b07b3df74} to produce the input in the correct coordinate type.

Usally you don't need this fuction since all member functions of the module use global coordinates only. 

Implements {\bf gear\-::\-T\-P\-C\-Module} \doxyref{}{p.}{classgear_1_1TPCModule_a4752611361384cf66f8cf3213e21d2e6}.



Definition at line 108 of file T\-P\-C\-Module\-Impl.\-cc.



References \-\_\-angle, \-\_\-cos\-\_\-angle, \-\_\-moms\-Coordinate\-Type, \-\_\-offset\-\_\-cartesian, \-\_\-sin\-\_\-angle, \-\_\-z\-Position, and gear\-::\-Pad\-Row\-Layout2\-D\-::get\-Coordinate\-Type().



Referenced by calculate\-Global\-Extent\-Cartesian\-Cartesian(), calculate\-Global\-Extent\-Cartesian\-Polar(), calculate\-Global\-Extent\-Polar\-Polar(), and get\-Pad\-Center().

\index{gear\-::\-T\-P\-C\-Module\-Impl@{gear\-::\-T\-P\-C\-Module\-Impl}!set\-Offset@{set\-Offset}}
\index{set\-Offset@{set\-Offset}!gear::TPCModuleImpl@{gear\-::\-T\-P\-C\-Module\-Impl}}
\subsubsection[{set\-Offset}]{\setlength{\rightskip}{0pt plus 5cm}void gear\-::\-T\-P\-C\-Module\-Impl\-::set\-Offset (
\begin{DoxyParamCaption}
\item[{double}]{x\-\_\-r, }
\item[{double}]{y\-\_\-phi}
\end{DoxyParamCaption}
)}\label{classgear_1_1TPCModuleImpl_a934c40b4f94cb27406ab6332c20c8ec1}


Set the offset of the local pad plane wrt. 

the local coordinate system. This value is in global coordinates (cartesian or polar, depeding on the T\-P\-C coordinate type). 

Definition at line 1476 of file T\-P\-C\-Module\-Impl.\-cc.



References \-\_\-moms\-Coordinate\-Type, \-\_\-offset, \-\_\-offset\-\_\-cartesian, check\-Local\-Is\-Global(), and convert\-Local\-Plane\-To\-Global\-Plane\-Extend().



Referenced by gear\-::\-T\-P\-C\-Module\-X\-M\-L\-::from\-X\-M\-L().



\subsection{Member Data Documentation}
\index{gear\-::\-T\-P\-C\-Module\-Impl@{gear\-::\-T\-P\-C\-Module\-Impl}!\-\_\-z\-Position\-Is\-Set@{\-\_\-z\-Position\-Is\-Set}}
\index{\-\_\-z\-Position\-Is\-Set@{\-\_\-z\-Position\-Is\-Set}!gear::TPCModuleImpl@{gear\-::\-T\-P\-C\-Module\-Impl}}
\subsubsection[{\-\_\-z\-Position\-Is\-Set}]{\setlength{\rightskip}{0pt plus 5cm}bool gear\-::\-T\-P\-C\-Module\-Impl\-::\-\_\-z\-Position\-Is\-Set\hspace{0.3cm}{\ttfamily [protected]}}\label{classgear_1_1TPCModuleImpl_a65e94af96794eb739f0293f52f306d9f}


Flag to show whether the \doxyref{set\-Z\-Position()}{p.}{classgear_1_1TPCModuleImpl_abae440981bbc51fbcb7094c70976a8cb} function had been called. 

A default value of 0 would cause a minus sign on the returned x coordinate, which is not backward compatible. So we need a flag and only invert x if the coordinate has really been set. 

Definition at line 43 of file T\-P\-C\-Module\-Impl.\-h.



Referenced by copy\-\_\-and\-\_\-assign(), get\-Z\-Position(), set\-Z\-Position(), and T\-P\-C\-Module\-Impl().



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