PamCut: TrkNucleiZCut Class Reference

# TrkNucleiZCut Class Reference

The TrkNuclei charge cut. More...

`#include <TrkNucleiZCut.h>`

Inheritance diagram for TrkNucleiZCut:

List of all members.

## Public Member Functions
| TrkNucleiZCut (const char *cutName, unsigned int Z, float lowerLimit, float upperLimit, unsigned int minLayers=1, unsigned int howToCheck=TRKNUCLEIZ_CHECKMEAN, unsigned int method=TRKNUCLEIZ_RIG)
| Constructor.
| ~TrkNucleiZCut ()
| Destructor.
int | Check (PamLevel2 *event)
| The TrkNucleiZ check.
## Private Attributes
unsigned int | _Z
float | _lowerLimit
float | _upperLimit
TrkNuclei * | _trkNuclei
unsigned int | _minLayers
unsigned int | _howToCheck
unsigned int | _method
## Static Private Attributes
static const float | _meanRigMean [] = { .992, 1.99, 3., 4., 5., 6. }
static const float | _sigmaRigMean [] = { 0.06, 0.1, 0.17, 0.34, 0.44, 0.59 }
static const float | _meanBetaMean [] = { 1., 2., 3., 4., 5., 6. }
static const float | _sigmaBetaMean [] = { 0.09, 0.1, 0.17, 0.34, 0.44, 0.59 }

## 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.

## Constructor & Destructor Documentation

TrkNucleiZCut::TrkNucleiZCut | ( | const char * | cutName,
|  | unsigned int | Z,
|  | float | lowerLimit,
|  | float | upperLimit,
|  | unsigned int | minLayers = `1`,
|  | unsigned int | howToCheck = `TRKNUCLEIZ_CHECKMEAN`,
|  | unsigned int | method = `TRKNUCLEIZ_RIG` |
| ) |  |  | `[inline]`

Constructor.

The charge to look for is passed to the 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.

Parameters:

  | cutName | The cut's name.
  | Z | The charge value.
  | lowerLimit | The lower bound (in units of sigma_Z) of the desired charge range, defined as Zmean - lowerBound*sigmaZ.
  | upperLimit | The upper bound (in units of sigma_Z) of the desired charge range, defined as Zmean + upperBound*sigmaZ.
  | minLayers | The minimum required number of layers which give a valid charge information.
  | howToCheck | Flag to set the check by mean release or by release in single planes (see TrkNucleiZ_Check).
  | method | The method to use to measure the particle's charge (see TrkNucleiZ_method).

Returns:

Definition at line 65 of file TrkNucleiZCut.h.

TrkNucleiZCut::~TrkNucleiZCut | ( |  | ) | `[inline]`

Destructor.

Definition at line 72 of file TrkNucleiZCut.h.

References _trkNuclei.

## Member Function Documentation

int TrkNucleiZCut::Check | ( | PamLevel2 * | event | ) | `[virtual]`

The TrkNucleiZ check.

The routine selects events whose value of Zmean obtained from the TrkNuclei Class is in the range [Zmean - sigma*lowerBound, Zmean + sigma*upperBound]. 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 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 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.

Parameters:

  | event | The event to analyze.

Returns:
  CUTOK if the charge from mean dE/dx(if howToCheck == TRKNUCLEIZ_CHECKMEAN) or all the single layer charges (if howToCheck == TRKNUCLEIZ_CHECKSINGLEVALUES) obtained from TrkNuclei are in the range [Z - sigma*lowerBound, Z + sigma*upperBound].

  TRKNUCLEIZ_OUTOFBOUNDS if the charge from mean dE/dx(if howToCheck == TRKNUCLEIZ_CHECKMEAN) or at least one valid single layer charge (if howToCheck == TRKNUCLEIZ_CHECKSINGLEVALUES) is out of bounds.

  TRKNUCLEIZ_TOOFEWLAYERS if charge information is available for a number of layers lesser than minLayers.

  TRKNUCLEIZ_OUTOFBOUNDS if Z < 1 or Z > 6.

Implements 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.

## Member Data Documentation

unsigned int TrkNucleiZCut::_howToCheck`[private]`

Definition at line 134 of file TrkNucleiZCut.h.

Referenced by Check().

float TrkNucleiZCut::_lowerLimit`[private]`

Definition at line 130 of file TrkNucleiZCut.h.

Referenced by Check().

const float TrkNucleiZCut::_meanBetaMean = { 1., 2., 3., 4., 5., 6. }`[static, private]`

Definition at line 127 of file TrkNucleiZCut.h.

Referenced by Check().

const float TrkNucleiZCut::_meanRigMean = { .992, 1.99, 3., 4., 5., 6. }`[static, private]`

Definition at line 125 of file TrkNucleiZCut.h.

Referenced by Check().

unsigned int TrkNucleiZCut::_method`[private]`

Definition at line 135 of file TrkNucleiZCut.h.

Referenced by Check().

unsigned int TrkNucleiZCut::_minLayers`[private]`

Definition at line 133 of file TrkNucleiZCut.h.

Referenced by Check().

const float TrkNucleiZCut::_sigmaBetaMean = { 0.09, 0.1, 0.17, 0.34, 0.44, 0.59 }`[static, private]`

Definition at line 128 of file TrkNucleiZCut.h.

Referenced by Check().

const float TrkNucleiZCut::_sigmaRigMean = { 0.06, 0.1, 0.17, 0.34, 0.44, 0.59 }`[static, private]`

Definition at line 126 of file TrkNucleiZCut.h.

Referenced by Check().

TrkNuclei* TrkNucleiZCut::_trkNuclei`[private]`

Definition at line 132 of file TrkNucleiZCut.h.

Referenced by Check(), and ~TrkNucleiZCut().

float TrkNucleiZCut::_upperLimit`[private]`

Definition at line 131 of file TrkNucleiZCut.h.

Referenced by Check().

unsigned int TrkNucleiZCut::_Z`[private]`

Definition at line 123 of file TrkNucleiZCut.h.

Referenced by Check().

The documentation for this class was generated from the following files:

- TrkCuts/TrkNucleiZCut/TrkNucleiZCut.h
- TrkCuts/TrkNucleiZCut/TrkNucleiZCut.cpp