/[PAMELA software]/PamCut/TrkCuts/TrkNucleiZCut/TrkNucleiZCut.h
ViewVC logotype

Diff of /PamCut/TrkCuts/TrkNucleiZCut/TrkNucleiZCut.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by pam-fi, Wed May 27 13:30:08 2009 UTC revision 1.2 by pam-fi, Fri May 29 10:10:18 2009 UTC
# Line 28  enum TrkNucleiZ_Return { Line 28  enum TrkNucleiZ_Return {
28  /*! @enum TrkNucleiZ_method Method to use to measure Z. */  /*! @enum TrkNucleiZ_method Method to use to measure Z. */
29  enum TrkNucleiZ_method {  enum TrkNucleiZ_method {
30    TRKNUCLEIZ_BETA, ///< Tracker dE/dx Vs. ToF beta    TRKNUCLEIZ_BETA, ///< Tracker dE/dx Vs. ToF beta
31    TRKNUCLEIZ_DEFL,    TRKNUCLEIZ_RIG,
32  ///< Tracker standalon e: dE/dx Vs. deflection  ///< Tracker standalon e: dE/dx Vs. rigidity
33  };  };
34    
35  /*! @enum TrkNucleiZ_CheckMean Handy aliases to set check mean */  /*! @enum TrkNucleiZ_Check Handy aliases to set check mean */
36  enum TrkNucleiZ_CheckMean {  enum TrkNucleiZ_Check {
37    TRKNUCLEIZ_CHECKMEAN, ///< Check the mean value.    TRKNUCLEIZ_CHECKMEAN, ///< Check the mean value.
38    TRKNUCLEIZ_CHECKSINGLEVALUES    TRKNUCLEIZ_CHECKSINGLEVALUES
39  ///< Check each single charge from each layer.  ///< Check each single charge from each layer.
# Line 58  public: Line 58  public:
58     * @param lowerLimit The lower bound (in units of sigma_Z) of the desired charge range, defined as Zmean - lowerBound*sigmaZ.     * @param lowerLimit The lower bound (in units of sigma_Z) of the desired charge range, defined as Zmean - lowerBound*sigmaZ.
59     * @param upperLimit The upper bound (in units of sigma_Z) of the desired charge range, defined as Zmean + upperBound*sigmaZ.     * @param upperLimit The upper bound (in units of sigma_Z) of the desired charge range, defined as Zmean + upperBound*sigmaZ.
60     * @param minLayers The minimum required number of layers which give a valid charge information.     * @param minLayers The minimum required number of layers which give a valid charge information.
61     * @param checkMean Flag to set the check method (see #Check and #TrkNucleiZ_CheckMean).     * @param howToCheck Flag to set the check by mean release or by release in single planes (see #TrkNucleiZ_Check).
62     * @param method The method to use to measure the particle's charge (see #TrkNucleiZ_method).     * @param method The method to use to measure the particle's charge (see #TrkNucleiZ_method).
63     * @return     * @return
64     */     */
65    TrkNucleiZCut(const char *cutName, unsigned int Z, float lowerLimit, float upperLimit, unsigned int minLayers = 1,    TrkNucleiZCut(const char *cutName, unsigned int Z, float lowerLimit, float upperLimit, unsigned int minLayers = 1,
66        unsigned int howToCheck = TRKNUCLEIZ_CHECKMEAN, unsigned int method = TRKNUCLEIZ_DEFL) :        unsigned int howToCheck = TRKNUCLEIZ_CHECKMEAN, unsigned int method = TRKNUCLEIZ_RIG) :
67      PamCut(cutName), _Z(Z), _lowerLimit(lowerLimit), _upperLimit(upperLimit), _trkNuclei(NULL), _minLayers(minLayers),      PamCut(cutName), _Z(Z), _lowerLimit(lowerLimit), _upperLimit(upperLimit), _trkNuclei(NULL), _minLayers(minLayers),
68          _howToCheck(howToCheck), _method(method) {          _howToCheck(howToCheck), _method(method) {
69    
# Line 77  public: Line 77  public:
77     *     *
78     * The routine selects events whose value of Zmean obtained from the TrkNuclei Class is in the range [Zmean - sigma*lowerBound, Zmean + sigma*upperBound].     * The routine selects events whose value of Zmean obtained from the TrkNuclei Class is in the range [Zmean - sigma*lowerBound, Zmean + sigma*upperBound].
79     * Zmean and sigma are defined respectively as the mean and the standard deviation of the charge distributions obtained using TrkNuclei.     * Zmean and sigma are defined respectively as the mean and the standard deviation of the charge distributions obtained using TrkNuclei.
80     * In current implementation, means are taken to be equal to the charge value (Zmean = Z) and sigmas are:     * In current implementation, calibrations for Z=1 and Z=2 for mean dE/dx Vs. rigidity are:
81       *
82       *  Z=1 |   mean     sigma
83       *  ------------------------
84       *      |  0.992      0.06
85       *
86       *
87       *  Z=2 |   mean     sigma
88       *  ------------------------
89       *      |  1.99       0.1
90       *
91       * 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:
92     *     *
93     *   Z |  sigma     *   Z |  sigma
94     *   -----------     *   -----------
# Line 88  public: Line 99  public:
99     *   5 |  0.44     *   5 |  0.44
100     *   6 |  0.59     *   6 |  0.59
101     *     *
102     * independent of the method used. The TofNuclei calibrations used are the standard ones (from Wolfgang, see TrkNuclei.cpp).     * The TofNuclei calibrations used are the standard ones (from Wolfgang, see TrkNuclei.cpp).
103     * First of all, the number of layers giving a valid charge information is checked to be greater than minLayers; if it's not so,     * First of all, the number of layers giving a valid charge information is checked to be greater than minLayers; if it's not so,
104     * the routine will return #TRKNUCLEIZ_TOOFEWLAYERS. Next, it will check if the charge obtained considering the mean dE/dx in the tracker's     * the routine will return #TRKNUCLEIZ_TOOFEWLAYERS. Next, it will check if the charge obtained considering the mean dE/dx in the tracker's
105     * layers is in the validity range if the constructor's flag howToCheckMean was set to TRKNUCLEIZ_CHECKMEAN; otherwise, it will check each     * layers is in the validity range if the constructor's flag howToCheckMean was set to TRKNUCLEIZ_CHECKMEAN; otherwise, it will check each
# Line 110  public: Line 121  public:
121  private:  private:
122    
123    unsigned int _Z;    unsigned int _Z;
124    static const float _sigmaZ[];  
125      static const float _meanRigMean[]; //Means for mean dE/dx Vs. rigidity
126      static const float _sigmaRigMean[];//Sigmas for mean dE/dx Vs. rigidity
127      static const float _meanBetaMean[]; //Means for mean dE/dx Vs. beta
128      static const float _sigmaBetaMean[];//Sigmas for mean dE/dx Vs. beta
129    
130    float _lowerLimit;    float _lowerLimit;
131    float _upperLimit;    float _upperLimit;

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

  ViewVC Help
Powered by ViewVC 1.1.23