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

Contents of /PamCut/CaloCuts/CaloNotIntCut/CaloNotIntCut.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (show annotations) (download)
Thu Jul 8 14:00:29 2010 UTC (14 years, 4 months ago) by pam-fi
Branch: MAIN
CVS Tags: MergedFromV8_1, V9, HEAD
Changes since 1.3: +14 -5 lines
File MIME type: text/plain
Merged from branch V8 (tag MergedToHEAD_1). Tag before the merge: BeforeMergingFromV8_1.

1 /*
2 * CaloNotIntCut.h
3 *
4 * Created on: 17-mar-2009
5 * Author: Nicola Mori
6 */
7
8 /*! @file CaloNotIntCut.h The CaloNotIntCut class definition file */
9
10 #ifndef CALONOTINTCUT_H_
11 #define CALONOTINTCUT_H_
12
13 #include "../../PamCutBase/PamCutBase.h"
14 #ifndef NO_CALOAXIS
15 #include <CaloAxis.h>
16 #endif /* NO_CALOAXIS */
17
18 /*! @brief The non-interacting track cut.
19 * This check discards all the events who interacts in the calorimeter. It is possible to choose the track to use for
20 * the check. To improve computation speed, Check does NOT compute the track for the event; the track information
21 * is supposed to lie in some external object, whose address has to be passed to the constructor. The user is then
22 * demanded to fill this external object with the proper track information for the current event before calling Check
23 * or ApplyCut.
24 * Currently, the checks with the calorimeter L2 track and with CaloAxis track are implemented.
25 *
26 * CUT DEPENDENCIES: CaloTrackCut for the existence of the track (it can also provide the CaloAxis objects).
27 */
28
29 class CaloNotIntCut: public PamCut {
30
31 public:
32 /*! @brief Constructor for calorimeter L2 track.
33 * Use this constructor if you want to use the L2 calorimeter track to perform the
34 * non-interaction check.
35 *
36 * @param cutName The name of the cut.
37 * @param pamTrack Pointer to the Pamela track object.
38 * @param qRatioMin The minimum threshold for the ratio between track charge and total charge in CALO.
39 */
40
41 CaloNotIntCut(const char *cutName, PamTrack **pamTrack, float qRatioMin = 0.8) :
42 PamCut(cutName), _pamTrack(pamTrack), _qRatioMin(qRatioMin) {
43 #ifndef NO_CALOAXIS
44 _xCaloAxis = _yCaloAxis = NULL;
45 #endif /* NO_CALOAXIS */
46 }
47
48 /*! @brief Constructor for calorimeter track.
49 * Use this constructor if you want to use the CaloAxis track to perform the
50 * non-interaction check.
51 *
52 * @param cutName The name of the cut.
53 * @param xCaloAxis The pointer to the CaloAxis object for X axis
54 * @param yCaloAxis The pointer to the CaloAxis object for Y axis
55 * @param qRatioMin The minimum threshold for the ratio between track charge and total charge in CALO.
56 * @return
57 */
58 #ifndef NO_CALOAXIS
59 CaloNotIntCut(const char *cutName, CaloAxis *xCaloAxis, CaloAxis *yCaloAxis, float qRatioMin = 0.8) :
60 PamCut(cutName), _pamTrack(NULL), _xCaloAxis(xCaloAxis), _yCaloAxis(yCaloAxis), _qRatioMin(qRatioMin) {
61 }
62 #endif /* NO_CALOAXIS */
63 //TODO: aggiungere il costruttore per il TOF.
64
65 /*! @brief Destructor. */
66 ~CaloNotIntCut() {
67 }
68
69 /*! @brief The non-interacting track check.
70 *
71 * @param event The event to analyze.
72 * @return #CUTOK if the ratio between the charge released along the Calo track
73 * and the total released charge is greater than qRatioMin.
74 * @return 0 otherwise.
75 */
76 int Check(PamLevel2 *event);
77
78 private:
79
80 PamTrack **_pamTrack;
81 #ifndef NO_CALOAXIS
82 CaloAxis *_xCaloAxis, *_yCaloAxis;
83 #endif /* NO_CALOAXIS */
84 float _qRatioMin;
85
86 };
87 #endif /* CALONOTINTCUT_H_ */

  ViewVC Help
Powered by ViewVC 1.1.23