| 1 | /* | 
| 2 | * CaloGeomCut.h | 
| 3 | * | 
| 4 | *  Created on: 19-mar-2009 | 
| 5 | *      Author: Sergio Ricciarini | 
| 6 | */ | 
| 7 |  | 
| 8 | /*! @file CaloGeomCut.h The CaloGeomCut class definition file */ | 
| 9 |  | 
| 10 | #ifndef CALOGEOMCUT_H_ | 
| 11 | #define CALOGEOMCUT_H_ | 
| 12 |  | 
| 13 | #include "../../PamCutBase/PamCutBase.h" | 
| 14 | #include "../../CaloAxis2.h" | 
| 15 |  | 
| 16 | /*! @brief The geometric cut using the calorimeter track. | 
| 17 | * | 
| 18 | * This cut checks if the track obtained from the calorimeter (with different methods) is inside the fiducial acceptance. | 
| 19 | * The current implementation uses the CaloAxis objects; to save computing time, the class | 
| 20 | * assumes that the track is externally computed for each event and stored in | 
| 21 | * CaloAxis objects; pointers to these objects are passed as arguments to the constructor. | 
| 22 | * The Check method will then ignore the PamLevel2 *event and assume that the | 
| 23 | * current content of the CaloAxis objects are relative to the current event. | 
| 24 | * It is an user's task to ensure that these assumptions are fulfilled every time | 
| 25 | * Check or ApplyCut are called. | 
| 26 | * | 
| 27 | * CUT DEPENDENCIES: CaloTrackCut for the existence of the track (it can also provide the CaloAxis objects). | 
| 28 | */ | 
| 29 |  | 
| 30 | class CaloGeomCut: public PamCut { | 
| 31 |  | 
| 32 | public: | 
| 33 | /*! @brief Constructor. | 
| 34 | * | 
| 35 | * The CaloAxis arguments are pointers to objects which contain the calorimeter | 
| 36 | * track information for current event. | 
| 37 | * | 
| 38 | * @param cutName The cut's name. | 
| 39 | * @param xCaloAxis The pointer to the CaloAxis object for X axis. | 
| 40 | * @param yCaloAxis The pointer to the CaloAxis object for Y axis. | 
| 41 | * @param iMethod index of the method used to track: 0 means straight line; | 
| 42 | *                1 means curved line (taking into account magnetic field and beta | 
| 43 | *                from TOF stand-alone [assuming proton mass] with 3 parameters specified | 
| 44 | *                below) starting from the top of the calorimeter and going backward | 
| 45 | *                (straight line inside the calorimeter). | 
| 46 | * Various combinations of TOF beta quality parameters are possible: default, low-quality beta (used for beta[12]): 10.,10.,20.; medium-quality beta: 5.,15.,4; high-quality beta: 3.,20.,3. | 
| 47 | * @param xTolCaloTrack The tolerance for X view which defines the fiducial acceptance. | 
| 48 | * @param yTolCaloTrack The tolerance for Y view which defines the fiducial acceptance. | 
| 49 | * @param mass The particle's mass (used only when iMethod = 1). Default is #H_MASS. | 
| 50 | * @param resMax Default: 10. (equivalent to beta[12]) | 
| 51 | * @param qualCut Default: 10. (equivalent to beta[12]) | 
| 52 | * @param chi2Cut Default: 20. (equivalent to beta[12]) | 
| 53 | */ | 
| 54 | CaloGeomCut(const char *cutName, CaloAxis *xCaloAxis, CaloAxis *yCaloAxis, UInt_t iMethod, Float_t xTolCaloTrack = | 
| 55 | 0.7, Float_t yTolCaloTrack = 0.7, Float_t mass = H_MASS, Float_t resMax = 10., Float_t qualCut = 10., Float_t chi2Cut = 20.) : | 
| 56 | PamCut(cutName), _xCaloAxis(xCaloAxis), _yCaloAxis(yCaloAxis), _iMethod(iMethod), _xTolCaloTrack(xTolCaloTrack), | 
| 57 | _yTolCaloTrack(yTolCaloTrack), _mass(mass), _resMax(resMax), _qualCut(qualCut), _chi2Cut(chi2Cut) { | 
| 58 | } | 
| 59 | /*! @brief Destructor. */ | 
| 60 | ~CaloGeomCut() { | 
| 61 | } | 
| 62 |  | 
| 63 | /*! @brief The geometry check using the calorimeter's track. | 
| 64 | * | 
| 65 | * @param event The event to analyze. | 
| 66 | * @return #CUTOK if charge released in plane 22 is greater than 0 (from CaloAxis) for both X and Y | 
| 67 | * @return 0 otherwise | 
| 68 | */ | 
| 69 | int Check(PamLevel2 *event); | 
| 70 |  | 
| 71 | private: | 
| 72 | CaloAxis *_xCaloAxis, *_yCaloAxis; | 
| 73 | UInt_t _iMethod; | 
| 74 | Float_t _xTolCaloTrack, _yTolCaloTrack; | 
| 75 | Float_t _mass; | 
| 76 | Float_t _resMax, _qualCut, _chi2Cut; | 
| 77 | }; | 
| 78 |  | 
| 79 | #endif /* CALOGEOMCUT_H_ */ |