#ifndef TTriggerBank_hxx_seen #define TTriggerBank_hxx_seen // $Id: ITriggerBank.hxx,v 1.4 2010/04/12 06:49:26 barr Exp $ // #include #define TTRIGGER_BANK_TITLE "CTM Trigger module event blocks" namespace COMET { class ITriggerBank; }; /// This is the simple Access Class for the CTM module /// It provides getters for the data. /// /// For an introduction to this and other Access Classes please see /// \ref oaRawEvent class COMET::ITriggerBank: public COMET::IMidasBank { public: ITriggerBank(); explicit ITriggerBank(const ULong64_t *bank, const char* title = TTRIGGER_BANK_TITLE); virtual ~ITriggerBank(); /// The sets fields in the raw data header. virtual Bool_t IsContextSetter() const {return true;} /// Fill fields in the raw data header. virtual void SetContext(COMET::IRawDataHeader& header) const; /// Print contents to COMETLog void Print(const Option_t* opt = "") const; /// Getters for each clump of bits in the Trigger block by name ULong64_t GetTriggerWord() const { return *(this->GetData() + 0); } ULong64_t GetTriggerPatternLow() const { return *(this->GetData() + 1); } ULong64_t GetTriggerPatternMid() const { return *(this->GetData() + 2); } ULong64_t GetTriggerPatternHigh() const { return *(this->GetData() + 3); } /// Giles 2010.04 Tokai /// Realised that the words in the format 0 version of the bank are not /// consistent with the safety checks (to avoid reading beyond the end /// of the bank) which were made. So the safety checks have been removed. /// The CTM bank should always contain 4 * 64-bit words (Trig, low, med, high). }; #endif