00001
00002 #ifndef LHCBEVENT_TRIGGERPATTERN_H
00003 #define LHCBEVENT_TRIGGERPATTERN_H 1
00004
00005
00006
00007 #include <iostream>
00008 #include "GaudiKernel/StreamBuffer.h"
00009 #include "GlastEvent/TopLevel/Definitions.h"
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 class TriggerPattern {
00025
00026 public:
00027
00029 TriggerPattern()
00030 : m_pattern(0) { }
00031 TriggerPattern( long pattern )
00032 : m_pattern(pattern) { }
00034 ~TriggerPattern() { }
00035
00037 long pattern() const {
00038 return m_pattern;
00039 }
00041 void setPattern( long value ) {
00042 m_pattern = value;
00043 }
00045 void set( int bit ) {
00046 if ( bit>=0 && bit<32 ) {
00047 m_pattern |= (1<<bit);
00048 }
00049 }
00051 bool isSet( int bit ) const {
00052 return (bit>=0 && bit<32) ? (1==((m_pattern&(1<<bit)) >> bit)) : false;
00053 }
00054
00056 friend StreamBuffer& operator<< ( StreamBuffer& s,
00057 const TriggerPattern& obj ) {
00058 return s << obj.m_pattern;
00059 }
00061 friend StreamBuffer& operator>> ( StreamBuffer& s,
00062 TriggerPattern& obj ) {
00063 return s >> obj.m_pattern;
00064 }
00065
00067 friend std::ostream& operator<< ( std::ostream& s,
00068 const TriggerPattern& obj ) {
00069 return obj.fillStream(s);
00070 }
00072 std::ostream& fillStream( std::ostream& s ) const {
00073 return s << "class TriggerPattern : "
00074 << GlastEventField( GlastEvent::field12 )
00075 << m_pattern;
00076 }
00077
00078 private:
00079
00081 long m_pattern;
00082
00083 };
00084
00085
00086 #endif // LHCBEVENT_TRIGGERPATTERN_H