Cut on energies in event. More...
#include <energy_cut.h>
Public Types | |
| enum | mode_t { MODE_INVALID = -1, MODE_ENERGY_MIN = 0, MODE_ENERGY_MAX = 1, MODE_ENERGY_SUM = 2, MODE_ENERGY_EACH = 3, MODE_UNASSOCIATED_ENERGY_MIN = 4, MODE_UNASSOCIATED_ENERGY_MAX = 5, MODE_UNASSOCIATED_ENERGY_SUM = 6, MODE_UNASSOCIATED_ENERGY_EACH = 7, MODE_TRACK_ENERGY_MIN = 8, MODE_TRACK_ENERGY_MAX = 9, MODE_TRACK_ENERGY_SUM = 10, MODE_TRACK_ENERGY_EACH = 11, MODE_GAMMA_TRACK_ENERGY_MIN = 12, MODE_GAMMA_TRACK_ENERGY_MAX = 13, MODE_GAMMA_TRACK_ENERGY_SUM = 14, MODE_GAMMA_TRACK_ENERGY_EACH = 15, MODE_GAMMA_TRACKED_TRACK_ENERGY_MIN = 16, MODE_GAMMA_TRACKED_TRACK_ENERGY_MAX = 17, MODE_GAMMA_TRACKED_TRACK_ENERGY_SUM = 18, MODE_GAMMA_TRACKED_TRACK_ENERGY_EACH = 19, MODE_ENERGY_CUT_LAST } |
| typedef boost::numeric::interval < double > | range_t |
Public Member Functions | |
| bool | is_inverted () const |
| unused | |
| bool | is_mode_energy_min () const |
| check the kind of global mode : min | |
| bool | is_mode_energy_max () const |
| check the kind of global mode : max | |
| bool | is_mode_energy_sum () const |
| check the kind of global mode : sum | |
| bool | is_mode_energy_each () const |
| check the kind of global mode : each | |
| bool | is_mode (std::string mode_) const |
| check the mode from string | |
| energy_cut (bool debug_=false) | |
| default ctor | |
| virtual | ~energy_cut () |
| dtor | |
| void | set (int mode_, double min_, double max_, double proba_, bool inverted_=false) |
| set to prepare the mode, range and other | |
| bool | is_debug () const |
| is verbose | |
| void | set_debug (bool) |
| set verbose | |
| void | dump (std::ostream &out_=std::clog) const |
| cout various informations | |
| bool | accept () |
| the main process, return if the current event (get from NemoCuts) is accepted | |
| virtual std::string | cut_id () const |
| pure virtual method for cut factory stuff | |
| virtual cut_creator_t | cut_creator () const |
| pure virtual method for cut factory stuff | |
Static Public Member Functions | |
| static int | get_mode_from_label (const std::string &label_) |
| make the exhange between enum and string for mode | |
| static std::string | get_label_from_mode (int mode_) |
| make the exhange between enum and string for mode | |
| static bool | is_mode_valid (int mode_) |
| check the validity of the mode | |
| static std::ostream & | print_range (std::ostream &out_, const range_t &range_) |
| dump the range | |
| static nemo3::i_ana_event_cut * | create (const nemocuts::ICutFactory::cut_properties_t &cut_properties_) |
| create and configure the cut from options and mode. Inherited from NemoCuts | |
Static Public Attributes | |
| static const double | RANGE_MIN |
| the minimal value of the range, if necessary | |
| static const double | RANGE_MAX |
| the maximal value of the range, if necessary | |
| static const std::string | CUT_ID |
Protected Member Functions | |
| virtual void | __prepare_cut () |
| internal method inherited from NemoCuts. Nothing special for energy cut. | |
Private Attributes | |
| bool | __debug |
| int | __mode |
| range_t | __range |
| bool | __inverted |
| unused | |
| double | __proba |
| proba for gamma tracking | |
Static Private Attributes | |
|
static creator_registration < energy_cut > | __CR |
| used by the cuts' factory stuff: | |
Cut on energies in event.
This cut propose different ways to check if some
energy deposits in the scintillator blocks fall
within some range:
Units:
Energy is given in keV
Energy range is defined via:
MIN == lower bound of the energy interval\n MAX == upper bound of the energy interval
Available mains modes:
ENERGY_MIN == check if the minimum energy deposit is in range\n ENERGY_MAX == check if the maximum energy deposit is in range\n ENERGY_SUM == check if the total energy deposit is in range\n ENERGY_EACH == check if each energy deposit is in range\n
The INVERTED flag check if the value is outside the given range
The configuration is mainly done thanks a config file like in resources/select_ana.conf
| typedef boost::numeric::interval<double> nemo3::energy_cut::range_t |
typedef for range in this cut
enum on modes
!!! always be %4 in the order min max sum each. !!!
| bool nemo3::energy_cut::accept | ( | ) | [virtual] |
the main process, return if the current event (get from NemoCuts) is accepted
going through pm energies and testing it in function of mode and range.
Implements nemo3::i_ana_event_cut.
1.8.0