00001
00002
00003 #ifndef XAODTRIGGER_VERSIONS_TRIGPASSBITS_V1_H
00004 #define XAODTRIGGER_VERSIONS_TRIGPASSBITS_V1_H
00005
00006
00007 extern "C" {
00008 # include <stdint.h>
00009 }
00010 #include <vector>
00011 #include <memory>
00012
00013
00014 #include "AthContainers/AuxElement.h"
00015 #include "AthLinks/DataLink.h"
00016
00017 namespace xAOD {
00018
00032 class TrigPassBits_v1 : public SG::AuxElement {
00033
00034 public:
00036 TrigPassBits_v1();
00037
00040
00042 template< class CONT >
00043 void reset( const CONT* container, uint32_t containerKey = 0xffff );
00044
00046 template< class OBJ, class CONT >
00047 void markPassing( const OBJ* obj, const CONT* container,
00048 bool passed = true );
00050 void markPassing( size_t index, bool passed = true );
00051
00053 template< class OBJ, class CONT >
00054 bool isPassing( const OBJ* obj, const CONT* container ) const;
00056 bool isPassing( size_t index ) const;
00057
00059
00062
00064 uint32_t size() const;
00066 void setSize( uint32_t value );
00067
00069 const std::vector< uint32_t >& passBits() const;
00071 void setPassBits( const std::vector< uint32_t >& value );
00072
00074 uint32_t containerKey() const;
00076 void setContainerKey( uint32_t value );
00077
00079 uint32_t containerClid() const;
00081 void setContainerClid( uint32_t value );
00082
00084
00085 private:
00087 mutable const void* m_container;
00088
00089 };
00090
00092 template< class CONT >
00093 std::unique_ptr< TrigPassBits_v1 >
00094 makeTrigPassBits( const CONT* container, uint32_t containerKey = 0xffff );
00095
00096 }
00097
00098
00099 #include "TrigPassBits_v1.icc"
00100
00101 #endif // XAODTRIGGER_VERSIONS_TRIGPASSBITS_V1_H