00001
00014 #ifndef PULSE_INFO_HH
00015 #define PULSE_INFO_HH
00016
00017 #include "data_base.hh"
00018
00023 class pulse_info : public data_base {
00024
00025 public:
00026
00028 pulse_info() : data_base(){clear_data();};
00029
00031 pulse_info(const pulse_info& original) : data_base(original),
00032 _channel_number(original._channel_number),
00033 _ped_mean(original._ped_mean),
00034 _ped_rms(original._ped_rms),
00035 _pulse_peak(original._pulse_peak),
00036 _charge(original._charge),
00037 _start_time(original._start_time),
00038 _start_time_reco(original._start_time_reco),
00039 _end_time(original._end_time),
00040 _max_time(original._max_time),
00041 _channel_frame_id(original._channel_frame_id),
00042 _timeslice(original._timeslice),
00043 _disc_id(original._disc_id)
00044 {};
00045
00047 void set_channel_number (PMT::ch_number_t ch) {_channel_number=ch;};
00048
00050 void set_ped_mean (double v) {_ped_mean=v;};
00051
00053 void set_ped_rms (double v) {_ped_rms=v;};
00054
00056 void set_pulse_peak (double v) {_pulse_peak=v;};
00057
00059 void set_charge (double v) {_charge=v;};
00060
00062 void set_start_time(double v) {_start_time=v;};
00063
00065 void set_start_time_reco(double v) {_start_time_reco=v;};
00066
00068 void set_end_time(double v) {_end_time=v;};
00069
00071 void set_max_time(double v) {_max_time=v;};
00072
00074 void set_disc_id(PMT::DISCRIMINATOR id) { _disc_id=id; };
00075
00077 void set_channel_frame_id(PMT::word_t id) { _channel_frame_id=id; };
00078
00080 void set_timeslice(PMT::word_t t) { _timeslice=t; };
00081
00083 PMT::ch_number_t channel_number() const {return _channel_number;};
00084
00086 double ped_mean () const { return _ped_mean;};
00087
00089 double ped_rms () const { return _ped_rms;};
00090
00092 double pulse_peak () const { return _pulse_peak;};
00093
00095 double charge () const { return _charge;};
00096
00098 double start_time () const { return _start_time;};
00099
00101 double start_time_reco () const { return _start_time_reco;};
00102
00104 double end_time () const { return _end_time;};
00105
00107 double max_time () const { return _max_time;};
00108
00110 PMT::DISCRIMINATOR disc_id() const { return _disc_id;};
00111
00113 PMT::word_t frame_id() const { return _channel_frame_id;};
00114
00116 PMT::word_t timeslice() const { return _timeslice;};
00117
00119 virtual void clear_data();
00120
00122 ~pulse_info(){};
00123
00124
00125 private:
00126
00128 void init_vars();
00129
00130 PMT::ch_number_t _channel_number;
00131 double _ped_mean;
00132 double _ped_rms;
00133 double _pulse_peak;
00134 double _charge;
00135 double _start_time;
00136 double _start_time_reco;
00137 double _end_time;
00138 double _max_time;
00139
00140 PMT::word_t _channel_frame_id;
00141 PMT::word_t _timeslice;
00142 PMT::DISCRIMINATOR _disc_id;
00143
00145 ClassDef(pulse_info,3)
00147 };
00148
00149
00150
00155 class pulse_collection : public std::vector<pulse_info>,
00156 public data_base {
00157
00158 public:
00159
00161 pulse_collection() : data_base() {clear_data();};
00162
00164 pulse_collection(const pulse_collection& original)
00165 : std::vector<pulse_info>(original),
00166 data_base(original),
00167 _sum_charge(original._sum_charge),
00168 _sum_peak(original._sum_peak),
00169 _npulse(original._npulse)
00170 {};
00171
00179 void calculate_sum();
00180
00182 double sum_charge() const {return _sum_charge;};
00183
00185 double sum_peak() const {return _sum_peak;};
00186
00188 double npulse() const {return _npulse;};
00189
00191 void set_sum_charge(double v) {_sum_charge=v;};
00192
00194 void set_sum_peak(double v) {_sum_peak=v;};
00195
00197 void set_npulse(UInt_t v) {_npulse=v;};
00198
00200 virtual void clear_data();
00201
00203 ~pulse_collection(){};
00204
00205
00206 private:
00207
00209 void init_vars();
00210
00211 double _sum_charge;
00212 double _sum_peak;
00213 UInt_t _npulse;
00214
00216 ClassDef(pulse_collection,1)
00218 };
00219
00220 #endif
00221