00001 #ifndef __N3AnaBase__tof_2eNg_alt_measurement_h
00002 #define __N3AnaBase__tof_2eNg_alt_measurement_h 1
00003
00004 #include <string>
00005 #include <sstream>
00006 #include <vector>
00007
00008 #include <datatools/utils/properties.h>
00009
00010 #include <N3AnaBase/event/ana_event.h>
00011
00012
00013 #include <N3AnaBase/measurements/tof_tools.h>
00014
00015 namespace nemo3 {
00016
00017 using namespace std;
00018
00064
00065 class tof_2eNg_alt_measurement : public ana_event::i_measurement
00066 {
00067 public:
00068 static const string VALIDITY_PROPERTY_GLOBAL_NAME;
00069 static const string VALIDITY_PROPERTY_NAME_BEGIN;
00070 static const string VALIDITY_PROPERTY_NAME_END;
00071 static const string INTERNAL_PROBABILITY_PROPERTY_NAME_END;
00072 static const string FIRST_GAMMA_PROPERTY_NAME_END;
00073 static const string SECOND_GAMMA_PROPERTY_NAME_END;
00074
00075 private:
00076 bool __debug;
00077 bool __switch;
00078 string __tracking_name;
00079 string __required_channel;
00080 ana_event * __event;
00081 tof_tools __tof_tools;
00082 float __Emin;
00083
00084 public:
00085
00087 tof_2eNg_alt_measurement ();
00088
00090 tof_2eNg_alt_measurement (bool debug_);
00091
00093 ~tof_2eNg_alt_measurement ();
00094
00095 public:
00096
00098 void set_debug ( bool debug_ );
00099
00101 void set_ECorr ( bool energy_loss_ );
00102
00104 void set_TimeErr ( bool timeerr_ );
00105
00107 void set_LTFluct ( bool fluct_ );
00108
00110 void set_switch ( bool switch_ );
00111
00113 void set_Emin ( float energy_min_ );
00114
00116 void do_measurement (ana_event &);
00117
00119 void init_from (const datatools::utils::properties &);
00120
00121 protected:
00122
00124
00129 void _compute_tof_properties ();
00130
00131 };
00132
00133 }
00134
00135 #endif // __N3AnaBase__tof_2eNg_alt_measurement_h
00136
00137