\section{gear\-:\-:F\-T\-D\-Parameters\-Impl Class Reference}
\label{classgear_1_1FTDParametersImpl}\index{gear\-::\-F\-T\-D\-Parameters\-Impl@{gear\-::\-F\-T\-D\-Parameters\-Impl}}


Geometry properties of a F\-T\-D detector needed for reconstruction code.  




{\ttfamily \#include $<$F\-T\-D\-Parameters\-Impl.\-h$>$}

Inheritance diagram for gear\-:\-:F\-T\-D\-Parameters\-Impl\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{classgear_1_1FTDParametersImpl}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual void {\bf add\-Layer} (int n\-Petals, int n\-Sensors, bool is\-Double\-Sided, int sensor\-Type, double petal\-Op\-Angle, double phi0, double alpha, double zposition, double zoffset, double zsign0, double support\-Rinner, double support\-Thickness, double support\-Length\-Min, double support\-Length\-Max, double support\-Width, double support\-Rad\-Length, double sensitive\-Rinner, double sensitive\-Thickness, double sensitive\-Length\-Min, double sensitive\-Length\-Max, double sensitive\-Width, double sensitive\-Rad\-Length)
\begin{DoxyCompactList}\small\item\em adding a Layer to the vertex one layer consists of a number of petals and sensitive areas (n\-Petals) that are each Z-\/equidistant to I\-P (disk). \end{DoxyCompactList}\item 
virtual const {\bf F\-T\-D\-Layer\-Layout} \& {\bf get\-F\-T\-D\-Layer\-Layout} () const \label{classgear_1_1FTDParametersImpl_a24e236e9363166acb6c6be97d1bc25ed}

\begin{DoxyCompactList}\small\item\em Returns the layer layout in the Vertex. \end{DoxyCompactList}\item 
virtual int {\bf get\-Layer\-Index} (const {\bf Vector3\-D} \&p) const 
\begin{DoxyCompactList}\small\item\em returns the layer\-Index which correspond to the layer where the point is. \end{DoxyCompactList}\item 
virtual int {\bf get\-Sensitive\-Index} (const {\bf Vector3\-D} \&p) const 
\begin{DoxyCompactList}\small\item\em returns the petal Index which correspond to the layer where the point is. \end{DoxyCompactList}\item 
bool {\bf is\-Point\-In\-F\-T\-D} (const {\bf Vector3\-D} \&p, const bool \&sensitive=false) const \label{classgear_1_1FTDParametersImpl_ac8722ce6fdb588934f15b9b22ccbdfd6}

\begin{DoxyCompactList}\small\item\em returns if a point is in support (sensitive == false) or in sensitive (sensitive == true) \end{DoxyCompactList}\item 
int {\bf get\-Petal\-Index} (const {\bf Vector3\-D} \&p, const bool \&sensitive=false) const 
\begin{DoxyCompactList}\small\item\em returns the petal number corresponding to a given point. \end{DoxyCompactList}\item 
{\bf Vector3\-D} {\bf distance\-To\-Plane} ({\bf Vector3\-D} p, {\bf Vector3\-D} r, {\bf Vector3\-D} n, {\bf Vector3\-D} u, {\bf Vector3\-D} v, float min\-U, float max\-U, float min\-V, float max\-V) const 
\begin{DoxyCompactList}\small\item\em returns distance to nearest support petal (sensitive == false) or nearest sensitiv (sensitive == true) \end{DoxyCompactList}\item 
{\bf Vector3\-D} {\bf plane\-Line\-Intersection} ({\bf Vector3\-D} r, {\bf Vector3\-D} n, {\bf Vector3\-D} line\-Point, {\bf Vector3\-D} line\-Dir) const 
\begin{DoxyCompactList}\small\item\em returns the first point on the ftd, where it intersects with a given straight line (parameters point p and direction v) \end{DoxyCompactList}\item 
double {\bf confining\-Ratio} ({\bf Vector3\-D} p, {\bf Vector3\-D} r, {\bf Vector3\-D} n, {\bf Vector3\-D} u, {\bf Vector3\-D} v, float min\-U, float max\-U, float min\-V, float max\-V) const \label{classgear_1_1FTDParametersImpl_a3f7d527375d1b20905dfc6420463e16b}

\begin{DoxyCompactList}\small\item\em returns the confining\-Ratio of a point p in a plane when the plane (r,n) is reduced to a finite square extensions in direction u (min\-U to max\-U) and in direction v (min\-V to max\-V) \end{DoxyCompactList}\item 
{\bf Vector3\-D} {\bf correct\-To\-Border\-Point} ({\bf Vector3\-D} v\-Plane, {\bf Vector3\-D} u, {\bf Vector3\-D} v, float min\-U, float max\-U, float min\-V, float max\-V) const \label{classgear_1_1FTDParametersImpl_a940a80e99dccc6382b8d388aac172483}

\begin{DoxyCompactList}\small\item\em corrects the vector v\-Plane into the given borders, given by direction u (min\-U to max\-U) and in direction v (min\-V to max\-V) the corrected Vector is returned \end{DoxyCompactList}\item 
bool {\bfseries is\-Equal} (double value\-One, double value\-Two) const \label{classgear_1_1FTDParametersImpl_a62ea7d7e73e2e08554e9c59f7174fa47}

\item 
bool {\bfseries is\-Equal} ({\bf Vector3\-D} p1, {\bf Vector3\-D} p2) const \label{classgear_1_1FTDParametersImpl_ac55aae11e0e10aa00781d965fd45383f}

\item 
bool {\bfseries differs\-Less} (double value\-One, double value\-Two) const \label{classgear_1_1FTDParametersImpl_aae5f46daef51aa22e8de1fb7e703735b}

\item 
double {\bf correct\-Phi\-Range} (double Phi) const \label{classgear_1_1FTDParametersImpl_ade3f95f87023c04e8bbbfc92c0dd6818}

\begin{DoxyCompactList}\small\item\em returns Phi corrected to Range -\/\-M\-\_\-\-P\-I/2 to +\-M\-\_\-\-P\-I/2 \end{DoxyCompactList}\item 
double {\bf get\-Phi\-Point} ({\bf Vector3\-D} p) const \label{classgear_1_1FTDParametersImpl_a09ebb55d6dae3918df7863700041ebaf}

\begin{DoxyCompactList}\small\item\em returns Phi for a point \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
static const int {\bfseries P\-I\-X\-E\-L} = 1\label{classgear_1_1FTDParametersImpl_ac9308290ea71c04b4940e7d72ea6b97b}

\item 
static const int {\bfseries S\-T\-R\-I\-P} = 2\label{classgear_1_1FTDParametersImpl_a84fd0e661c078d9e62d9170494297a3b}

\item 
static const int {\bfseries F\-A\-C\-E} = 1\label{classgear_1_1FTDParametersImpl_a52780cb97c716d2f135ad30886f2248a}

\item 
static const int {\bfseries B\-A\-C\-K} = 2\label{classgear_1_1FTDParametersImpl_ab1f981606f9442f71186afd6ab96b4e9}

\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
{\bf F\-T\-D\-Layer\-Layout\-Impl} {\bfseries \-\_\-layer}\label{classgear_1_1FTDParametersImpl_a1482ce67d80145428bb0e06fcd82c371}

\item 
int {\bfseries \-\_\-ftd\-Type}\label{classgear_1_1FTDParametersImpl_ab61e20fcdca74c323b7d7db53ac970e4}

\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
Geometry properties of a F\-T\-D detector needed for reconstruction code. 

\par
 

The F\-T\-D is assumed to consist of a number of disks (layers) located along the Z-\/axis. Each disk consists of a number of trapezoid petals that are uniformly distributed in a circle around the Z-\/axis .\par
 The sensitive volumes are rectangular pixels for the disks 1 and 2 covering the petal face nearest the I\-P; the remaining disks mount trapezoids covering both faces of the petal (we assume 1 sensitive layer per face, in the current implementation there are two). The sensitive volumes can be placed relative to the (insensitive) petals. \begin{DoxySeeAlso}{See Also}
\doxyref{add\-Layer}{p.}{classgear_1_1FTDParametersImpl_a58e9cc02b456bf1f0df221e412c19f66} .
\end{DoxySeeAlso}


\begin{DoxyAuthor}{Author}
J. Duarte, I\-F\-C\-A (based from V\-X\-D\-Parameters\-Impl) 
\end{DoxyAuthor}
\begin{DoxyVersion}{Version}
\$\-Id\-: 
\end{DoxyVersion}


Definition at line 26 of file F\-T\-D\-Parameters\-Impl.\-h.



\subsection{Member Function Documentation}
\index{gear\-::\-F\-T\-D\-Parameters\-Impl@{gear\-::\-F\-T\-D\-Parameters\-Impl}!add\-Layer@{add\-Layer}}
\index{add\-Layer@{add\-Layer}!gear::FTDParametersImpl@{gear\-::\-F\-T\-D\-Parameters\-Impl}}
\subsubsection[{add\-Layer}]{\setlength{\rightskip}{0pt plus 5cm}virtual void gear\-::\-F\-T\-D\-Parameters\-Impl\-::add\-Layer (
\begin{DoxyParamCaption}
\item[{int}]{n\-Petals, }
\item[{int}]{n\-Sensors, }
\item[{bool}]{is\-Double\-Sided, }
\item[{int}]{sensor\-Type, }
\item[{double}]{petal\-Op\-Angle, }
\item[{double}]{phi0, }
\item[{double}]{alpha, }
\item[{double}]{zposition, }
\item[{double}]{zoffset, }
\item[{double}]{zsign0, }
\item[{double}]{support\-Rinner, }
\item[{double}]{support\-Thickness, }
\item[{double}]{support\-Length\-Min, }
\item[{double}]{support\-Length\-Max, }
\item[{double}]{support\-Width, }
\item[{double}]{support\-Rad\-Length, }
\item[{double}]{sensitive\-Rinner, }
\item[{double}]{sensitive\-Thickness, }
\item[{double}]{sensitive\-Length\-Min, }
\item[{double}]{sensitive\-Length\-Max, }
\item[{double}]{sensitive\-Width, }
\item[{double}]{sensitive\-Rad\-Length}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}\label{classgear_1_1FTDParametersImpl_a58e9cc02b456bf1f0df221e412c19f66}


adding a Layer to the vertex one layer consists of a number of petals and sensitive areas (n\-Petals) that are each Z-\/equidistant to I\-P (disk). 

The petals and sensitive areas are located in a plane X\-Y with the same distance to I\-P (zposition) with dimensions length (x\-Min and x\-Max, because are trapezoids), width (perpendicular to connection I\-P-\/spacepoint) and thickness (extension to connection I\-P-\/spacepoint).


\begin{DoxyParams}{Parameters}
{\em n\-Petals} & the number of petals and sensitive areas inside the layer \\
\hline
{\em n\-Sensors} & the number of sensors per petal \\
\hline
{\em is\-Double\-Sided} & whether the Petal has sensors on front A\-N\-D back \\
\hline
{\em sensor\-Type} & the type of the sensors\-: P\-I\-X\-E\-L, S\-T\-R\-I\-P \\
\hline
{\em phi0} & azimuthal angle of vector defined by the Z-\/axis to first petal x-\/positive, y-\/positive edge \\
\hline
{\em alpha} & angle of rotation of the petal in the turbine-\/blade design \\
\hline
{\em zposition} & the centered position of the disk (layer) at Z-\/axis \\
\hline
{\em r\-Inner} & Distance from the z-\/axis to the closest point of the petal (sensitive) \\
\hline
{\em thickness} & the thickness in mm of the support (support\-Thickness) or the sensitive area (sensitive\-Thickness) (Z-\/axis distances) \\
\hline
{\em length\-Min} & the length (x-\/direction) in mm of the support (support\-Length) or the sensitive area (sensitive\-Length) in its shorter side \\
\hline
{\em length\-Max} & the length (x-\/direction) in mm of the support (support\-Length) or the sensitive area (sensitive\-Length) in its longest side \\
\hline
{\em width} & the width (y-\/direction) of the support (support\-Width) or the sensitive area (sensitive\-Width) in mm \\
\hline
{\em rad\-Length} & the radiation lenght of the support (support\-Rad\-Length) or the sensitive area (sensitive\-Rad\-Length) in mm \\
\hline
\end{DoxyParams}


Definition at line 70 of file F\-T\-D\-Parameters\-Impl.\-h.



References gear\-::\-F\-T\-D\-Layer\-Layout\-Impl\-::add\-Layer().



Referenced by gear\-::\-F\-T\-D\-Parameters\-X\-M\-L\-::from\-X\-M\-L().

\index{gear\-::\-F\-T\-D\-Parameters\-Impl@{gear\-::\-F\-T\-D\-Parameters\-Impl}!distance\-To\-Plane@{distance\-To\-Plane}}
\index{distance\-To\-Plane@{distance\-To\-Plane}!gear::FTDParametersImpl@{gear\-::\-F\-T\-D\-Parameters\-Impl}}
\subsubsection[{distance\-To\-Plane}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Vector3\-D} gear\-::\-F\-T\-D\-Parameters\-Impl\-::distance\-To\-Plane (
\begin{DoxyParamCaption}
\item[{{\bf Vector3\-D}}]{p, }
\item[{{\bf Vector3\-D}}]{r, }
\item[{{\bf Vector3\-D}}]{n, }
\item[{{\bf Vector3\-D}}]{u, }
\item[{{\bf Vector3\-D}}]{v, }
\item[{float}]{min\-U, }
\item[{float}]{max\-U, }
\item[{float}]{min\-V, }
\item[{float}]{max\-V}
\end{DoxyParamCaption}
) const}\label{classgear_1_1FTDParametersImpl_ada70ec10a3b33442d1d6b7c205361f78}


returns distance to nearest support petal (sensitive == false) or nearest sensitiv (sensitive == true) 

returns vector to from point to closest point in described plane r as spacepoint vector n as normal vector u and v as in-\/plane vectors min\-U and max\-U as min/max sizes of vector u still in plane min\-V and max\-V as min/max sizes of vector v still in plane \index{gear\-::\-F\-T\-D\-Parameters\-Impl@{gear\-::\-F\-T\-D\-Parameters\-Impl}!get\-Layer\-Index@{get\-Layer\-Index}}
\index{get\-Layer\-Index@{get\-Layer\-Index}!gear::FTDParametersImpl@{gear\-::\-F\-T\-D\-Parameters\-Impl}}
\subsubsection[{get\-Layer\-Index}]{\setlength{\rightskip}{0pt plus 5cm}int gear\-::\-F\-T\-D\-Parameters\-Impl\-::get\-Layer\-Index (
\begin{DoxyParamCaption}
\item[{const {\bf Vector3\-D} \&}]{p}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}\label{classgear_1_1FTDParametersImpl_a0893df74ee7c98cba53bee490f29e5a9}


returns the layer\-Index which correspond to the layer where the point is. 

If the point is not inside any layer returns -\/1 

Definition at line 22 of file F\-T\-D\-Parameters\-Impl.\-cc.



Referenced by get\-Petal\-Index().

\index{gear\-::\-F\-T\-D\-Parameters\-Impl@{gear\-::\-F\-T\-D\-Parameters\-Impl}!get\-Petal\-Index@{get\-Petal\-Index}}
\index{get\-Petal\-Index@{get\-Petal\-Index}!gear::FTDParametersImpl@{gear\-::\-F\-T\-D\-Parameters\-Impl}}
\subsubsection[{get\-Petal\-Index}]{\setlength{\rightskip}{0pt plus 5cm}int gear\-::\-F\-T\-D\-Parameters\-Impl\-::get\-Petal\-Index (
\begin{DoxyParamCaption}
\item[{const {\bf Vector3\-D} \&}]{p, }
\item[{const bool \&}]{sensitive = {\ttfamily false}}
\end{DoxyParamCaption}
) const}\label{classgear_1_1FTDParametersImpl_a0bdac5a2b12558e5f828505e3485ed64}


returns the petal number corresponding to a given point. 

Return -\/1 if the point is outside the petal. If sensitive=true, uses the geometry of the sensitive to perform the result 

Definition at line 127 of file F\-T\-D\-Parameters\-Impl.\-cc.



References gear\-::\-F\-T\-D\-Layer\-Layout\-Impl\-::get\-End\-Phi(), get\-Layer\-Index(), gear\-::\-F\-T\-D\-Layer\-Layout\-Impl\-::get\-Max\-Radius(), gear\-::\-F\-T\-D\-Layer\-Layout\-Impl\-::get\-N\-Petals(), gear\-::\-F\-T\-D\-Layer\-Layout\-Impl\-::get\-Sensitive\-Rinner(), gear\-::\-F\-T\-D\-Layer\-Layout\-Impl\-::get\-Start\-Phi(), and gear\-::\-F\-T\-D\-Layer\-Layout\-Impl\-::get\-Support\-Rinner().



Referenced by is\-Point\-In\-F\-T\-D().

\index{gear\-::\-F\-T\-D\-Parameters\-Impl@{gear\-::\-F\-T\-D\-Parameters\-Impl}!get\-Sensitive\-Index@{get\-Sensitive\-Index}}
\index{get\-Sensitive\-Index@{get\-Sensitive\-Index}!gear::FTDParametersImpl@{gear\-::\-F\-T\-D\-Parameters\-Impl}}
\subsubsection[{get\-Sensitive\-Index}]{\setlength{\rightskip}{0pt plus 5cm}int gear\-::\-F\-T\-D\-Parameters\-Impl\-::get\-Sensitive\-Index (
\begin{DoxyParamCaption}
\item[{const {\bf Vector3\-D} \&}]{p}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [virtual]}}\label{classgear_1_1FTDParametersImpl_a009f0ae88849a161a5a0d2e5771f74a0}


returns the petal Index which correspond to the layer where the point is. 

If the point is not inside any layer returns -\/1returns the layer\-Index which correspond to the layer where the point is. If the point is not inside any layer returns -\/1 

Definition at line 68 of file F\-T\-D\-Parameters\-Impl.\-cc.



Referenced by is\-Point\-In\-F\-T\-D().

\index{gear\-::\-F\-T\-D\-Parameters\-Impl@{gear\-::\-F\-T\-D\-Parameters\-Impl}!plane\-Line\-Intersection@{plane\-Line\-Intersection}}
\index{plane\-Line\-Intersection@{plane\-Line\-Intersection}!gear::FTDParametersImpl@{gear\-::\-F\-T\-D\-Parameters\-Impl}}
\subsubsection[{plane\-Line\-Intersection}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Vector3\-D} gear\-::\-F\-T\-D\-Parameters\-Impl\-::plane\-Line\-Intersection (
\begin{DoxyParamCaption}
\item[{{\bf Vector3\-D}}]{r, }
\item[{{\bf Vector3\-D}}]{n, }
\item[{{\bf Vector3\-D}}]{line\-Point, }
\item[{{\bf Vector3\-D}}]{line\-Dir}
\end{DoxyParamCaption}
) const}\label{classgear_1_1FTDParametersImpl_ae027f9544f78a140c6d2e7091113733c}


returns the first point on the ftd, where it intersects with a given straight line (parameters point p and direction v) 

returns the intersection point of a plane and a straight line 

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