00001 00014 #ifndef TRIGGER_HH 00015 #define TRIGGER_HH 00016 00017 #include "data_base.hh" 00018 00019 namespace larlight { 00020 00025 class trigger : public event_base { 00026 00027 public: 00028 00030 trigger(DATA::DATA_TYPE type=DATA::Trigger); 00031 00033 trigger(const trigger &original); 00034 00036 virtual ~trigger(){} 00037 00039 void set_remainder_16MHz(UShort_t remin) {_remainder_16MHz=remin;} 00040 00042 void set_remainder_64MHz(UShort_t remin) {_remainder_64MHz=remin;} 00043 00045 void set_trig_frame_number(UInt_t n) {_trig_frame_number=n;} 00046 00048 void set_trig_sample_number(UInt_t t) {_trig_sample_number=t;} 00049 00051 void set_trig_number(UShort_t n) {_trig_number=n;} 00052 00054 void set_pmt_data(UShort_t data) {_pmt_data=data;} 00055 00057 UShort_t remainder_16MHz() const {return _remainder_16MHz;} 00058 00060 UShort_t remainder_64MHz() const {return _remainder_64MHz;} 00061 00063 UInt_t trig_frame_number() const {return _trig_frame_number;} 00064 00066 UInt_t trig_sample_number_RAW() const { return _trig_sample_number; } 00067 00069 UInt_t trig_sample_number_2MHz() const {return _trig_sample_number;} 00070 00072 inline UInt_t trig_sample_number_16MHz() const {return _trig_sample_number*8 + _remainder_16MHz;} 00073 00075 inline UInt_t trig_sample_number_64MHz() const {return _trig_sample_number*32 + _remainder_16MHz*4 + _remainder_64MHz;} 00076 00078 UInt_t trig_number() const {return _trig_number;} 00079 00081 UShort_t pmt_data() const {return _pmt_data;} 00082 00084 void set_trig_bits(Bool_t trig_pc, Bool_t trig_ext, 00085 Bool_t active, Bool_t gate1_in, 00086 Bool_t gate2_in, Bool_t veto_in, 00087 Bool_t calib) 00088 { _trig_pc = trig_pc; _trig_ext = trig_ext; 00089 _active = active; _gate1_in = gate1_in; 00090 _gate2_in = gate2_in; _veto_in = veto_in; 00091 _calib = calib; 00092 } 00093 00095 Bool_t trig_pc() const {return _trig_pc;} 00096 00098 Bool_t trig_ext() const {return _trig_ext;} 00099 00101 Bool_t active() const {return _active;} 00102 00104 Bool_t gate1_in() const {return _gate1_in;} 00105 00107 Bool_t gate2_in() const {return _gate2_in;} 00108 00110 Bool_t veto_in() const {return _veto_in;} 00111 00113 Bool_t calib() const {return _calib;} 00114 00116 virtual void clear_data(); 00117 00118 protected: 00119 00120 void init_vars(); 00121 00122 UShort_t _trig_sample_number; // 2MHz 00123 UInt_t _trig_frame_number; 00124 UInt_t _trig_number; 00125 UShort_t _pmt_data; 00126 Bool_t _trig_pc; 00127 Bool_t _trig_ext; 00128 Bool_t _active; 00129 Bool_t _gate1_in; 00130 Bool_t _gate2_in; 00131 Bool_t _veto_in; 00132 Bool_t _calib; 00133 UShort_t _remainder_64MHz; 00134 UShort_t _remainder_16MHz; 00135 00137 ClassDef(trigger,4) 00139 00140 }; 00141 } 00142 00143 #endif 00144 // end of doxygen group