/[PAMELA software]/PamCut/CaloCuts/CaloNucleiZCut/CaloNucleiZCut.h
ViewVC logotype

Annotation of /PamCut/CaloCuts/CaloNucleiZCut/CaloNucleiZCut.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2.2.1 - (hide annotations) (download)
Thu Jul 8 10:43:15 2010 UTC (14 years, 4 months ago) by pam-fi
Branch: V8
CVS Tags: MergedToHEAD_1, nuclei_reproc
Changes since 1.2: +1 -0 lines
File MIME type: text/plain
Support for external CaloAxis library added.

1 pam-fi 1.1 /*
2     * CaloNucleiZCut.h
3     *
4     * Created on: 30-apr-2009
5     * Author: Nicola Mori
6     */
7    
8     /*! @file CaloNucleiZCut.h The TofNucleiZCut class definition file */
9    
10     #ifndef NO_CALONUCLEI
11    
12     #ifndef CALONUCLEIZCUT_H_
13     #define CALONUCLEIZCUT_H_
14    
15     #include "../../PamCutBase/PamCutBase.h"
16     #include <CaloNuclei.h>
17    
18     #include <TH2F.h>
19    
20     /*! @enum CaloNucleiZ_Return Return values for rejected events */
21     enum CaloNucleiZ_Return {
22     CALONUCLEIZ_OUTOFBOUNDS, ///< Discarded because charge is out of bounds
23     CALONUCLEIZ_ILLEGALZ
24     ///< Discarded because charge is not between 1 and 8
25     };
26    
27     /*! @enum CaloNucleiZ_method Method to use to measure Z. */
28     enum CaloNucleiZ_method {
29     CALONUCLEIZ_SIEGEN, ///< Siegen method: stdedx vs. beta from ToF
30     CALONUCLEIZ_DEDXBETA, ///< dE/dx in the first calorimeter plane vs. beta from ToF
31     CALONUCLEIZ_DEDXDEFL,
32     ///< dE/dx in the first calorimeter plane vs. deflection from Tracker
33     };
34    
35     /*! @brief The CaloNuclei charge cut.
36     *
37     * This cut uses the CaloNuclei library to cut events depending on particle's charge value.
38     *
39     */
40    
41     class CaloNucleiZCut: public PamCut {
42    
43     public:
44     /*! @brief Constructor.
45     *
46     * The charge to look for is passed to the CaloNucleiZCut object as Z. For each charge, there is an associated distribution of
47     * events, with mean Zmean and standard deviation sigmaZ. These values will be used to check the events.
48     *
49     * @param cutName The cut's name.
50     * @param Z The charge value.
51     * @param lowerLimit The lower bound (in units of sigma_Z) of the desired charge range, defined as Zmean - lowerBound*sigmaZ.
52     * @param upperLimit The upper bound (in units of sigma_Z) of the desired charge range, defined as Zmean + upperBound*sigmaZ.
53     * @param method The method to use to measure the particle's charge (see #CaloNucleiZ_method).
54     * @return
55     */
56     CaloNucleiZCut(const char *cutName, unsigned int Z, float lowerLimit, float upperLimit, unsigned int method =
57     CALONUCLEIZ_SIEGEN) :
58     PamCut(cutName), _Z(Z), _lowerLimit(lowerLimit), _upperLimit(upperLimit), _caloNuclei(NULL), _method(method) {
59    
60     }
61     /*! @brief Destructor. */
62     ~CaloNucleiZCut() {
63     delete _caloNuclei;
64    
65     }
66    
67     /*! @brief The CaloNucleiZ check.
68     *
69     * The routine selects events whose value of Zmean obtained from the CaloNuclei Class is in the range [Zmean - sigma*lowerBound, Zmean + sigma*upperBound].
70     * Zmean and sigma are defined respectively as the mean and the standard deviation of the charge distributions obtained using CaloNuclei.
71     * In current implementation, means are taken to be equal to the charge value (Zmean = Z) and sigmas are:
72     *
73     * Z | sigma
74     * -----------
75     * 1 | 0.11
76     * 2 | 0.14
77     * 3 | 0.21
78     * 4 | 0.28
79     * 5 | 0.28
80     * 6 | 0.31
81     * 7 | 0.32
82     * 8 | 0.32
83     *
84     * independent of the method used.
85     *
86 pam-fi 1.2 * @param event The event to analyze.
87 pam-fi 1.2.2.1 * @return CUTOK if the charge of the perticle is in the specified range.
88 pam-fi 1.2 *
89 pam-fi 1.1 */
90     int Check(PamLevel2 *event);
91    
92     private:
93    
94     unsigned int _Z;
95     static const float _sigmaZ[];
96    
97     float _lowerLimit;
98     float _upperLimit;
99     CaloNuclei *_caloNuclei;
100    
101     unsigned int _method;
102     };
103     #endif /* CALONUCLEIZCUT_H_ */
104    
105     #endif /* NO_CALONUCLEI */

  ViewVC Help
Powered by ViewVC 1.1.23