| 12 |
|
|
| 13 |
#include "../../PamCutBase/PamCutBase.h" |
#include "../../PamCutBase/PamCutBase.h" |
| 14 |
|
|
|
|
|
| 15 |
/*! @brief The TofBetaRange cut. |
/*! @brief The TofBetaRange cut. |
| 16 |
* This cut selects a range of beta values. Note that beta can be either positive (downward going particle) or negative (upward going particle). |
* This cut selects a range of beta values. Note that beta can be either positive (downward going particle) or negative (upward going particle). |
| 17 |
*/ |
*/ |
| 19 |
class TofBetaRangeCut: public PamCut { |
class TofBetaRangeCut: public PamCut { |
| 20 |
|
|
| 21 |
public: |
public: |
| 22 |
/*! @brief Constructor. |
/*! @brief Constructor |
| 23 |
* The parameters are: the TOF-index for the track which is necessary to input to derive the beta; resMax, qualCut and chi2Cut for the quality of beta; the minimum and maximum beta values. |
* @param cutName The cut's name. |
| 24 |
* Various combinations of 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. |
* @param trkAlg Tracking algorythm to be used () |
| 25 |
* NOTE: beta can be either positive (downward going particle) or negative (upward going particle). Beta = 100 means beta calculation was not successful. |
* @param trkId ID of the (physical) track along which beta should be evaluated (default 0, that is the first track) |
| 26 |
|
* @param resMax See documentation for ToFLevel2::CalcBeta. Default: 10. (equivalent to beta[12]) |
| 27 |
* @param cutName The cut's name. |
* @param qualCut See documentation for ToFLevel2::CalcBeta. Default: 10. (equivalent to beta[12]) |
| 28 |
* @param trackTof Pointer to the TOF-index indicating the track to be used when evaluating |
* @param chi2Cut See documentation for ToFLevel2::CalcBeta. Default: 20. (equivalent to beta[12]) |
| 29 |
* the beta (default value for TOF_index is 0, corresponding to the TOF stand-alone |
* @param minBeta the minimum beta value (with sign) |
| 30 |
* track [no TRK information to build the TOF stand-alone track]). The pointer to the |
* @param maxBeta the maximum beta value (with sign) |
| 31 |
* TOF_index for TRK-track as given by TrkPhSinCut can be used. |
* |
| 32 |
* |
* In order to evaluate the beta of a particle by using the tracker information, the trkAlg should be indicated (e.g."STD"). |
| 33 |
* @param resMax Default: 10. (equivalent to beta[12]) |
* For meaningfull analysis, this cut should follow a TrkPhSinCut (single track), and the indicated trkAlg should be |
| 34 |
* @param qualCut Default: 10. (equivalent to beta[12]) |
* consistently the same one. |
| 35 |
* @param chi2Cut Default: 20. (equivalent to beta[12]) |
* If the standalone ToF information is instead required, trkId should be set equal to -1. In this case trkAlg is ignored. |
| 36 |
* @param minBeta the minimum beta value (with sign) |
* |
| 37 |
* @param maxBeta the maximum beta value (with sign) |
*/ |
| 38 |
*/ |
|
| 39 |
TofBetaRangeCut(const char *cutName, int *trackTof=NULL, float resMax=10., float qualCut=10., float chi2Cut=20., float minBeta=-100., float maxBeta=100.): |
|
| 40 |
PamCut(cutName), _trackTof(trackTof), _resMax(resMax), _qualCut(qualCut), _chi2Cut(chi2Cut), _minBeta(minBeta), _maxBeta(maxBeta) { |
/* TofBetaRangeCut(const char *cutName, ToFTrkVar *trackTof = NULL, float resMax = 10., float qualCut = 10., float chi2Cut = */ |
| 41 |
|
/* 20., float minBeta = -100., float maxBeta = 100.) : */ |
| 42 |
|
/* PamCut(cutName), _trackTof(trackTof), _resMax(resMax), _qualCut(qualCut), _chi2Cut(chi2Cut), _minBeta(minBeta), */ |
| 43 |
|
/* _maxBeta(maxBeta) { */ |
| 44 |
|
/* } */ |
| 45 |
|
TofBetaRangeCut(const char *cutName, const char *trkAlg, int trkId=0, float resMax = 10., float qualCut = 10., float chi2Cut = |
| 46 |
|
20., float minBeta = -100., float maxBeta = 100.) : |
| 47 |
|
PamCut(cutName), _trkAlg(trkAlg), _trkId(trkId), _resMax(resMax), _qualCut(qualCut), _chi2Cut(chi2Cut), _minBeta(minBeta), |
| 48 |
|
_maxBeta(maxBeta) { |
| 49 |
|
|
| 50 |
|
// cout << "TofBetaRangeCut("<<cutName<<","<<_trkAlg<<","<<_trkId<<","<<_resMax<<","<<_qualCut<<","<<_chi2Cut<<","<<_minBeta<<","<<_maxBeta<<")"<<endl; |
| 51 |
|
beta = 0; |
| 52 |
|
|
| 53 |
} |
} |
| 54 |
|
|
| 55 |
/*! @brief Destructor. */ |
/*! @brief Destructor. */ |
| 56 |
~TofBetaRangeCut() { |
~TofBetaRangeCut() { |
| 57 |
} |
} |
| 64 |
*/ |
*/ |
| 65 |
int Check(PamLevel2 *event); |
int Check(PamLevel2 *event); |
| 66 |
|
|
| 67 |
|
float beta; |
| 68 |
|
|
| 69 |
private: |
private: |
| 70 |
|
|
| 71 |
int *_trackTof; |
const char *_trkAlg;///<Tracking algorythm |
| 72 |
|
int _trkId; |
| 73 |
float _resMax, _qualCut, _chi2Cut; |
float _resMax, _qualCut, _chi2Cut; |
| 74 |
|
|
| 75 |
float _minBeta, _maxBeta; |
float _minBeta, _maxBeta; |