\hypertarget{classTrkNucleiZCut}{
\section{TrkNucleiZCut Class Reference}
\label{classTrkNucleiZCut}\index{TrkNucleiZCut@{TrkNucleiZCut}}
}
The TrkNuclei charge cut.  


{\tt \#include $<$TrkNucleiZCut.h$>$}

Inheritance diagram for TrkNucleiZCut::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2cm]{classTrkNucleiZCut}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item 
\hyperlink{classTrkNucleiZCut_7cd05774c5dbdfee3350cdd6f0c24dda}{TrkNucleiZCut} (const char $\ast$cutName, unsigned int Z, float lowerLimit, float upperLimit, unsigned int minLayers=1, unsigned int howToCheck=TRKNUCLEIZ\_\-CHECKMEAN, unsigned int method=TRKNUCLEIZ\_\-RIG)
\begin{CompactList}\small\item\em Constructor. \item\end{CompactList}\item 
\hyperlink{classTrkNucleiZCut_598ac3f78edc0b6add6a3959a5cd3db5}{$\sim$TrkNucleiZCut} ()
\begin{CompactList}\small\item\em Destructor. \item\end{CompactList}\item 
int \hyperlink{classTrkNucleiZCut_de47cb3c368d7ab12a8a5236de8915a4}{Check} (PamLevel2 $\ast$event)
\begin{CompactList}\small\item\em The TrkNucleiZ check. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item 
unsigned int \hyperlink{classTrkNucleiZCut_1db5a5a467e45ea6f8ec170b872e0297}{\_\-Z}
\item 
float \hyperlink{classTrkNucleiZCut_98b21b87395e0d38aa1a87f2e5c00de2}{\_\-lowerLimit}
\item 
float \hyperlink{classTrkNucleiZCut_b570b49257637cf006d703d76b7dc1ce}{\_\-upperLimit}
\item 
TrkNuclei $\ast$ \hyperlink{classTrkNucleiZCut_675cd3f1d0d6c37223de8b2730d487e3}{\_\-trkNuclei}
\item 
unsigned int \hyperlink{classTrkNucleiZCut_8e0e04ab7d059dc8c43f2ca5249cb194}{\_\-minLayers}
\item 
unsigned int \hyperlink{classTrkNucleiZCut_419d0283eb71ee710070f7117cd215d3}{\_\-howToCheck}
\item 
unsigned int \hyperlink{classTrkNucleiZCut_e1967e1d8658b46de6dcced28964d637}{\_\-method}
\end{CompactItemize}
\subsection*{Static Private Attributes}
\begin{CompactItemize}
\item 
static const float \hyperlink{classTrkNucleiZCut_5f4e08eb4224caa786fc420c1c9c359a}{\_\-meanRigMean} \mbox{[}$\,$\mbox{]} = \{ .992, 1.99, 3., 4., 5., 6. \}
\item 
static const float \hyperlink{classTrkNucleiZCut_84bfe9c29b38a4aae72e4f5bf147b18d}{\_\-sigmaRigMean} \mbox{[}$\,$\mbox{]} = \{ 0.06, 0.1, 0.17, 0.34, 0.44, 0.59 \}
\item 
static const float \hyperlink{classTrkNucleiZCut_f6a35068c330d63fc534299dde1b8a82}{\_\-meanBetaMean} \mbox{[}$\,$\mbox{]} = \{ 1., 2., 3., 4., 5., 6. \}
\item 
static const float \hyperlink{classTrkNucleiZCut_2c6e3dfa0b1cf1411d2764c6a0461119}{\_\-sigmaBetaMean} \mbox{[}$\,$\mbox{]} = \{ 0.09, 0.1, 0.17, 0.34, 0.44, 0.59 \}
\end{CompactItemize}


\subsection{Detailed Description}
The TrkNuclei charge cut. 

This cut uses the TrkNuclei library to cut events depending on particle's charge value. 

Definition at line 48 of file TrkNucleiZCut.h.

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classTrkNucleiZCut_7cd05774c5dbdfee3350cdd6f0c24dda}{
\index{TrkNucleiZCut@{TrkNucleiZCut}!TrkNucleiZCut@{TrkNucleiZCut}}
\index{TrkNucleiZCut@{TrkNucleiZCut}!TrkNucleiZCut@{TrkNucleiZCut}}
\subsubsection[{TrkNucleiZCut}]{\setlength{\rightskip}{0pt plus 5cm}TrkNucleiZCut::TrkNucleiZCut (const char $\ast$ {\em cutName}, \/  unsigned int {\em Z}, \/  float {\em lowerLimit}, \/  float {\em upperLimit}, \/  unsigned int {\em minLayers} = {\tt 1}, \/  unsigned int {\em howToCheck} = {\tt TRKNUCLEIZ\_\-CHECKMEAN}, \/  unsigned int {\em method} = {\tt TRKNUCLEIZ\_\-RIG})\hspace{0.3cm}{\tt  \mbox{[}inline\mbox{]}}}}
\label{classTrkNucleiZCut_7cd05774c5dbdfee3350cdd6f0c24dda}


Constructor. 

The charge to look for is passed to the \hyperlink{classTrkNucleiZCut}{TrkNucleiZCut} object as Z. For each charge, there is an associated distribution of events, with mean Zmean and standard deviation sigmaZ. These values will be used to check the events.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em cutName}]The cut's name. \item[{\em Z}]The charge value. \item[{\em lowerLimit}]The lower bound (in units of sigma\_\-Z) of the desired charge range, defined as Zmean - lowerBound$\ast$sigmaZ. \item[{\em upperLimit}]The upper bound (in units of sigma\_\-Z) of the desired charge range, defined as Zmean + upperBound$\ast$sigmaZ. \item[{\em minLayers}]The minimum required number of layers which give a valid charge information. \item[{\em howToCheck}]Flag to set the check by mean release or by release in single planes (see \hyperlink{TrkNucleiZCut_8h_4c885aa7c0e17adf9a7903317a2b4234}{TrkNucleiZ\_\-Check}). \item[{\em method}]The method to use to measure the particle's charge (see \hyperlink{TrkNucleiZCut_8h_26b0e4535fb2372057e0cc53b865b5a8}{TrkNucleiZ\_\-method}). \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]\end{Desc}


Definition at line 65 of file TrkNucleiZCut.h.\hypertarget{classTrkNucleiZCut_598ac3f78edc0b6add6a3959a5cd3db5}{
\index{TrkNucleiZCut@{TrkNucleiZCut}!$\sim$TrkNucleiZCut@{$\sim$TrkNucleiZCut}}
\index{$\sim$TrkNucleiZCut@{$\sim$TrkNucleiZCut}!TrkNucleiZCut@{TrkNucleiZCut}}
\subsubsection[{$\sim$TrkNucleiZCut}]{\setlength{\rightskip}{0pt plus 5cm}TrkNucleiZCut::$\sim$TrkNucleiZCut ()\hspace{0.3cm}{\tt  \mbox{[}inline\mbox{]}}}}
\label{classTrkNucleiZCut_598ac3f78edc0b6add6a3959a5cd3db5}


Destructor. 



Definition at line 72 of file TrkNucleiZCut.h.

References \_\-trkNuclei.

\subsection{Member Function Documentation}
\hypertarget{classTrkNucleiZCut_de47cb3c368d7ab12a8a5236de8915a4}{
\index{TrkNucleiZCut@{TrkNucleiZCut}!Check@{Check}}
\index{Check@{Check}!TrkNucleiZCut@{TrkNucleiZCut}}
\subsubsection[{Check}]{\setlength{\rightskip}{0pt plus 5cm}int TrkNucleiZCut::Check (PamLevel2 $\ast$ {\em event})\hspace{0.3cm}{\tt  \mbox{[}virtual\mbox{]}}}}
\label{classTrkNucleiZCut_de47cb3c368d7ab12a8a5236de8915a4}


The TrkNucleiZ check. 

The routine selects events whose value of Zmean obtained from the TrkNuclei Class is in the range \mbox{[}Zmean - sigma$\ast$lowerBound, Zmean + sigma$\ast$upperBound\mbox{]}. Zmean and sigma are defined respectively as the mean and the standard deviation of the charge distributions obtained using TrkNuclei. In current implementation, calibrations for Z=1 and Z=2 for mean dE/dx Vs. rigidity are:

Z=1 $|$ mean sigma ------------------------ $|$ 0.992 0.06

Z=2 $|$ mean sigma ------------------------ $|$ 1.99 0.1

For all other cases (Z$>$2 or single plane releases or dE/dx Vs. beta), means are taken to be equal to the charge value (Zmean = Z) and sigmas are:

Z $|$ sigma ----------- 1 $|$ 0.09 2 $|$ 0.10 3 $|$ 0.17 4 $|$ 0.34 5 $|$ 0.44 6 $|$ 0.59

The TofNuclei calibrations used are the standard ones (from Wolfgang, see TrkNuclei.cpp). First of all, the number of layers giving a valid charge information is checked to be greater than minLayers; if it's not so, the routine will return \hyperlink{TrkNucleiZCut_8h_3e78e6ef9e0abc656efc51a034b06b41e5e83b509d3047083352c35e145af4aa}{TRKNUCLEIZ\_\-TOOFEWLAYERS}. Next, it will check if the charge obtained considering the mean dE/dx in the tracker's layers is in the validity range if the constructor's flag howToCheckMean was set to TRKNUCLEIZ\_\-CHECKMEAN; otherwise, it will check each single valid charge value (mean for X and Y views) obtained from each layer. In the latter case, it will return \hyperlink{CommonDefs_8h_c857f4b76ae431837cbf61fd74863b6c}{CUTOK} only if all valid layers (ie., those tagged as good for both X and Y in traccker level 2 routines) give a charge inside the bounds, regardless of the value of minLayers.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em event}]The event to analyze. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]\hyperlink{CommonDefs_8h_c857f4b76ae431837cbf61fd74863b6c}{CUTOK} if the charge from mean dE/dx(if howToCheck == \hyperlink{TrkNucleiZCut_8h_4c885aa7c0e17adf9a7903317a2b4234aa7d5140e9c1973b2461970838f072fd}{TRKNUCLEIZ\_\-CHECKMEAN}) or all the single layer charges (if howToCheck == \hyperlink{TrkNucleiZCut_8h_4c885aa7c0e17adf9a7903317a2b4234a9bc9846d177843d2ec717c4333c90a2}{TRKNUCLEIZ\_\-CHECKSINGLEVALUES}) obtained from TrkNuclei are in the range \mbox{[}Z - sigma$\ast$lowerBound, Z + sigma$\ast$upperBound\mbox{]}. 

\hyperlink{TrkNucleiZCut_8h_3e78e6ef9e0abc656efc51a034b06b416dc17ce6156ddda7c99352e6e162ddbe}{TRKNUCLEIZ\_\-OUTOFBOUNDS} if the charge from mean dE/dx(if howToCheck == \hyperlink{TrkNucleiZCut_8h_4c885aa7c0e17adf9a7903317a2b4234aa7d5140e9c1973b2461970838f072fd}{TRKNUCLEIZ\_\-CHECKMEAN}) or at least one valid single layer charge (if howToCheck == \hyperlink{TrkNucleiZCut_8h_4c885aa7c0e17adf9a7903317a2b4234a9bc9846d177843d2ec717c4333c90a2}{TRKNUCLEIZ\_\-CHECKSINGLEVALUES}) is out of bounds. 

\hyperlink{TrkNucleiZCut_8h_3e78e6ef9e0abc656efc51a034b06b41e5e83b509d3047083352c35e145af4aa}{TRKNUCLEIZ\_\-TOOFEWLAYERS} if charge information is available for a number of layers lesser than minLayers. 

\hyperlink{TrkNucleiZCut_8h_3e78e6ef9e0abc656efc51a034b06b416dc17ce6156ddda7c99352e6e162ddbe}{TRKNUCLEIZ\_\-OUTOFBOUNDS} if Z $<$ 1 or Z $>$ 6. \end{Desc}


Implements \hyperlink{classPamCut_a874600461950d1f2b75ce3938f91cbe}{PamCut}.

Definition at line 20 of file TrkNucleiZCut.cpp.

References \_\-howToCheck, \_\-lowerLimit, \_\-meanBetaMean, \_\-meanRigMean, \_\-method, \_\-minLayers, \_\-sigmaBetaMean, \_\-sigmaRigMean, \_\-trkNuclei, \_\-upperLimit, \_\-Z, CUTOK, TRKNUCLEIZ\_\-BETA, TRKNUCLEIZ\_\-CHECKMEAN, TRKNUCLEIZ\_\-ILLEGALZ, TRKNUCLEIZ\_\-OUTOFBOUNDS, TRKNUCLEIZ\_\-RIG, and TRKNUCLEIZ\_\-TOOFEWLAYERS.

\subsection{Member Data Documentation}
\hypertarget{classTrkNucleiZCut_419d0283eb71ee710070f7117cd215d3}{
\index{TrkNucleiZCut@{TrkNucleiZCut}!\_\-howToCheck@{\_\-howToCheck}}
\index{\_\-howToCheck@{\_\-howToCheck}!TrkNucleiZCut@{TrkNucleiZCut}}
\subsubsection[{\_\-howToCheck}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int {\bf TrkNucleiZCut::\_\-howToCheck}\hspace{0.3cm}{\tt  \mbox{[}private\mbox{]}}}}
\label{classTrkNucleiZCut_419d0283eb71ee710070f7117cd215d3}




Definition at line 134 of file TrkNucleiZCut.h.

Referenced by Check().\hypertarget{classTrkNucleiZCut_98b21b87395e0d38aa1a87f2e5c00de2}{
\index{TrkNucleiZCut@{TrkNucleiZCut}!\_\-lowerLimit@{\_\-lowerLimit}}
\index{\_\-lowerLimit@{\_\-lowerLimit}!TrkNucleiZCut@{TrkNucleiZCut}}
\subsubsection[{\_\-lowerLimit}]{\setlength{\rightskip}{0pt plus 5cm}float {\bf TrkNucleiZCut::\_\-lowerLimit}\hspace{0.3cm}{\tt  \mbox{[}private\mbox{]}}}}
\label{classTrkNucleiZCut_98b21b87395e0d38aa1a87f2e5c00de2}




Definition at line 130 of file TrkNucleiZCut.h.

Referenced by Check().\hypertarget{classTrkNucleiZCut_f6a35068c330d63fc534299dde1b8a82}{
\index{TrkNucleiZCut@{TrkNucleiZCut}!\_\-meanBetaMean@{\_\-meanBetaMean}}
\index{\_\-meanBetaMean@{\_\-meanBetaMean}!TrkNucleiZCut@{TrkNucleiZCut}}
\subsubsection[{\_\-meanBetaMean}]{\setlength{\rightskip}{0pt plus 5cm}const float {\bf TrkNucleiZCut::\_\-meanBetaMean} = \{ 1., 2., 3., 4., 5., 6. \}\hspace{0.3cm}{\tt  \mbox{[}static, private\mbox{]}}}}
\label{classTrkNucleiZCut_f6a35068c330d63fc534299dde1b8a82}




Definition at line 127 of file TrkNucleiZCut.h.

Referenced by Check().\hypertarget{classTrkNucleiZCut_5f4e08eb4224caa786fc420c1c9c359a}{
\index{TrkNucleiZCut@{TrkNucleiZCut}!\_\-meanRigMean@{\_\-meanRigMean}}
\index{\_\-meanRigMean@{\_\-meanRigMean}!TrkNucleiZCut@{TrkNucleiZCut}}
\subsubsection[{\_\-meanRigMean}]{\setlength{\rightskip}{0pt plus 5cm}const float {\bf TrkNucleiZCut::\_\-meanRigMean} = \{ .992, 1.99, 3., 4., 5., 6. \}\hspace{0.3cm}{\tt  \mbox{[}static, private\mbox{]}}}}
\label{classTrkNucleiZCut_5f4e08eb4224caa786fc420c1c9c359a}




Definition at line 125 of file TrkNucleiZCut.h.

Referenced by Check().\hypertarget{classTrkNucleiZCut_e1967e1d8658b46de6dcced28964d637}{
\index{TrkNucleiZCut@{TrkNucleiZCut}!\_\-method@{\_\-method}}
\index{\_\-method@{\_\-method}!TrkNucleiZCut@{TrkNucleiZCut}}
\subsubsection[{\_\-method}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int {\bf TrkNucleiZCut::\_\-method}\hspace{0.3cm}{\tt  \mbox{[}private\mbox{]}}}}
\label{classTrkNucleiZCut_e1967e1d8658b46de6dcced28964d637}




Definition at line 135 of file TrkNucleiZCut.h.

Referenced by Check().\hypertarget{classTrkNucleiZCut_8e0e04ab7d059dc8c43f2ca5249cb194}{
\index{TrkNucleiZCut@{TrkNucleiZCut}!\_\-minLayers@{\_\-minLayers}}
\index{\_\-minLayers@{\_\-minLayers}!TrkNucleiZCut@{TrkNucleiZCut}}
\subsubsection[{\_\-minLayers}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int {\bf TrkNucleiZCut::\_\-minLayers}\hspace{0.3cm}{\tt  \mbox{[}private\mbox{]}}}}
\label{classTrkNucleiZCut_8e0e04ab7d059dc8c43f2ca5249cb194}




Definition at line 133 of file TrkNucleiZCut.h.

Referenced by Check().\hypertarget{classTrkNucleiZCut_2c6e3dfa0b1cf1411d2764c6a0461119}{
\index{TrkNucleiZCut@{TrkNucleiZCut}!\_\-sigmaBetaMean@{\_\-sigmaBetaMean}}
\index{\_\-sigmaBetaMean@{\_\-sigmaBetaMean}!TrkNucleiZCut@{TrkNucleiZCut}}
\subsubsection[{\_\-sigmaBetaMean}]{\setlength{\rightskip}{0pt plus 5cm}const float {\bf TrkNucleiZCut::\_\-sigmaBetaMean} = \{ 0.09, 0.1, 0.17, 0.34, 0.44, 0.59 \}\hspace{0.3cm}{\tt  \mbox{[}static, private\mbox{]}}}}
\label{classTrkNucleiZCut_2c6e3dfa0b1cf1411d2764c6a0461119}




Definition at line 128 of file TrkNucleiZCut.h.

Referenced by Check().\hypertarget{classTrkNucleiZCut_84bfe9c29b38a4aae72e4f5bf147b18d}{
\index{TrkNucleiZCut@{TrkNucleiZCut}!\_\-sigmaRigMean@{\_\-sigmaRigMean}}
\index{\_\-sigmaRigMean@{\_\-sigmaRigMean}!TrkNucleiZCut@{TrkNucleiZCut}}
\subsubsection[{\_\-sigmaRigMean}]{\setlength{\rightskip}{0pt plus 5cm}const float {\bf TrkNucleiZCut::\_\-sigmaRigMean} = \{ 0.06, 0.1, 0.17, 0.34, 0.44, 0.59 \}\hspace{0.3cm}{\tt  \mbox{[}static, private\mbox{]}}}}
\label{classTrkNucleiZCut_84bfe9c29b38a4aae72e4f5bf147b18d}




Definition at line 126 of file TrkNucleiZCut.h.

Referenced by Check().\hypertarget{classTrkNucleiZCut_675cd3f1d0d6c37223de8b2730d487e3}{
\index{TrkNucleiZCut@{TrkNucleiZCut}!\_\-trkNuclei@{\_\-trkNuclei}}
\index{\_\-trkNuclei@{\_\-trkNuclei}!TrkNucleiZCut@{TrkNucleiZCut}}
\subsubsection[{\_\-trkNuclei}]{\setlength{\rightskip}{0pt plus 5cm}TrkNuclei$\ast$ {\bf TrkNucleiZCut::\_\-trkNuclei}\hspace{0.3cm}{\tt  \mbox{[}private\mbox{]}}}}
\label{classTrkNucleiZCut_675cd3f1d0d6c37223de8b2730d487e3}




Definition at line 132 of file TrkNucleiZCut.h.

Referenced by Check(), and $\sim$TrkNucleiZCut().\hypertarget{classTrkNucleiZCut_b570b49257637cf006d703d76b7dc1ce}{
\index{TrkNucleiZCut@{TrkNucleiZCut}!\_\-upperLimit@{\_\-upperLimit}}
\index{\_\-upperLimit@{\_\-upperLimit}!TrkNucleiZCut@{TrkNucleiZCut}}
\subsubsection[{\_\-upperLimit}]{\setlength{\rightskip}{0pt plus 5cm}float {\bf TrkNucleiZCut::\_\-upperLimit}\hspace{0.3cm}{\tt  \mbox{[}private\mbox{]}}}}
\label{classTrkNucleiZCut_b570b49257637cf006d703d76b7dc1ce}




Definition at line 131 of file TrkNucleiZCut.h.

Referenced by Check().\hypertarget{classTrkNucleiZCut_1db5a5a467e45ea6f8ec170b872e0297}{
\index{TrkNucleiZCut@{TrkNucleiZCut}!\_\-Z@{\_\-Z}}
\index{\_\-Z@{\_\-Z}!TrkNucleiZCut@{TrkNucleiZCut}}
\subsubsection[{\_\-Z}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int {\bf TrkNucleiZCut::\_\-Z}\hspace{0.3cm}{\tt  \mbox{[}private\mbox{]}}}}
\label{classTrkNucleiZCut_1db5a5a467e45ea6f8ec170b872e0297}




Definition at line 123 of file TrkNucleiZCut.h.

Referenced by Check().

The documentation for this class was generated from the following files:\begin{CompactItemize}
\item 
TrkCuts/TrkNucleiZCut/\hyperlink{TrkNucleiZCut_8h}{TrkNucleiZCut.h}\item 
TrkCuts/TrkNucleiZCut/\hyperlink{TrkNucleiZCut_8cpp}{TrkNucleiZCut.cpp}\end{CompactItemize}
