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.