00001
00015 #ifndef PMTBASELINE_ANA_HH
00016 #define PMTBASELINE_ANA_HH
00017
00018 #include "ana_base.hh"
00019 #include <map>
00020 #include <TH1D.h>
00021
00026 class pmtbaseline_ana : public ana_base{
00027
00028 public:
00029
00031 pmtbaseline_ana();
00032
00034 virtual ~pmtbaseline_ana(){};
00035
00039 virtual bool initialize();
00040
00044 virtual bool analyze(storage_manager* storage);
00045
00049 virtual bool finalize();
00050
00052 void set_range_pulse_start_time(double v1, double v2) {_cut_tstart.first=v1; _cut_tstart.second=v2; };
00053
00055 void set_range_pulse_start_time_reco(double v1, double v2) {_cut_tstart_reco.first=v1; _cut_tstart_reco.second=v2; };
00056
00058 void set_range_pulse_end_time(double v1, double v2) {_cut_tend.first=v1; _cut_tend.second=v2; };
00059
00061 void set_range_pulse_amp(double v1, double v2) {_cut_amp.first=v1; _cut_amp.second=v2; };
00062
00064 void set_range_pulse_charge(double v1,double v2) {_cut_charge.first=v1; _cut_charge.second=v2; };
00065
00067 void set_range_ped_mean(double v1, double v2) {_cut_pedbase.first=v1; _cut_pedbase.second=v2; };
00068
00070 void set_range_ped_rms(double v1, double v2) {_cut_pedrms.first=v1; _cut_pedrms.second=v2; };
00071
00073 void set_range_event_id(PMT::word_t v1, PMT::word_t v2) {_cut_event_id.first=v1; _cut_event_id.second=v2; };
00074
00076 void set_range_channel(PMT::ch_number_t v1, PMT::ch_number_t v2) {_cut_channels.first=v1; _cut_channels.second=v2;};
00077
00079 void set_range_sum_charge(double v1, double v2) {_cut_sum_charge.first=v1; _cut_sum_charge.second=v2;};
00080
00082 void set_range_sum_peak(double v1, double v2) {_cut_sum_peak.first=v1; _cut_sum_peak.second=v2;};
00083
00085 void set_range_npulse(double v1, double v2) {_cut_npulse.first=v1; _cut_npulse.second=v2;};
00086
00087
00088
00089
00090
00092 const std::pair<double,double> range_pulse_start_time() const {return _cut_tstart;};
00093
00095 const std::pair<double,double> range_pulse_start_time_reco() const {return _cut_tstart_reco;};
00096
00098 const std::pair<double,double> range_pulse_end_time() const {return _cut_tend;};
00099
00101 const std::pair<double,double> range_pulse_amp() const {return _cut_amp;};
00102
00104 const std::pair<double,double> range_pulse_charge() const {return _cut_charge;};
00105
00107 const std::pair<double,double> range_ped_mean() const {return _cut_pedbase;};
00108
00110 const std::pair<double,double> range_ped_rms() const {return _cut_pedrms;};
00111
00113 const std::pair<PMT::word_t,PMT::word_t> range_event_id() const {return _cut_event_id;};
00114
00116 const std::pair<PMT::word_t,PMT::word_t> range_channel() const {return _cut_channels;};
00117
00119 const std::pair<double,double> range_sum_charge() const {return _cut_sum_charge;};
00120
00122 const std::pair<double,double> range_sum_peak() const {return _cut_sum_peak;};
00123
00125 const std::pair<UInt_t,UInt_t> range_npulse() const {return _cut_npulse;};
00126
00127 protected:
00128
00130 void reset_cuts();
00131
00132 std::map<PMT::ch_number_t,TH1D*> _hArray_PedMean, _hArray_PedRMS, _hArray_Charge, _hArray_Peak;
00133
00135 std::pair<double,double> _cut_tstart, _cut_tstart_reco, _cut_tend, _cut_amp, _cut_charge, _cut_pedbase, _cut_pedrms;
00136
00138 std::pair<double,double> _cut_sum_charge, _cut_sum_peak;
00139
00141 std::pair<UInt_t,UInt_t> _cut_npulse;
00142
00144 std::pair<PMT::word_t,PMT::word_t> _cut_event_id;
00145
00147 std::pair<PMT::ch_number_t,PMT::ch_number_t> _cut_channels;
00148
00149 };
00150
00151 #endif
00152