--- PamCut/TrkCuts/TrkDeflCut/TrkDeflCut.h 2011/11/30 17:03:59 1.1 +++ PamCut/TrkCuts/TrkDeflCut/TrkDeflCut.h 2011/11/30 17:03:59 1.1.2.1 @@ -0,0 +1,52 @@ +/* + * TrkDeflCut.h + * + * Created on: 14-sep-2010 + * Author: Nicola Mori + */ + +/*! @file TrkDeflCut.h The TrkDeflCut class definition file */ + +#ifndef TRKDEFLCUT_H_ +#define TRKDEFLCUT_H_ + +#include "../../PamCutBase/PamCutBase.h" + +/*! @brief The deflection cut. + * This cut discards all the events whose deflection is above or below a threshold value. + * Here deflection is defined as Z/p (1/GV) where Z is the particle charge (WITH SIGN) and p the momentum modulus: + * therefore deflection can be positive or negative. + * + */ +class TrkDeflCut: public PamCut { + +public: + /*! @brief Constructor. + * + * @param cutName The cut's name. + * @param minDeflection The threshold p/Z (in GV); can be positive or negative. + * @param discardBelow If true, events below the threshold will be discarded; + * otherwise, events above the threshold will be discarded. + */ + TrkDeflCut(const char *cutName, float thrDeflection, bool discardBelow = true ) : + PamCut(cutName), _thrDeflection(thrDeflection), _discardBelow(discardBelow) { + } + /*! @brief Destructor. */ + ~TrkDeflCut() { + } + + /*! @brief The check. + * + * @param event The event to analyze. + * @return #CUTOK if the deflection is greater (lower) than the threshold and discardBelow is true (false). + * @return 0 otherwise. + */ + int Check(PamLevel2 *event); + +private: + + float _thrDeflection; + bool _discardBelow; + +}; +#endif /* TRKDEFLCUT_H_ */