00001
00002
00003 #ifndef XAODTRIGGER_VERSIONS_TRIGCOMPOSITE_V1_H
00004 #define XAODTRIGGER_VERSIONS_TRIGCOMPOSITE_V1_H
00005
00006
00007 extern "C" {
00008 # include <stdint.h>
00009 }
00010 #include <string>
00011 #include <vector>
00012
00013
00014 #include "AthContainers/AuxElement.h"
00015 #include "AthLinks/ElementLink.h"
00016
00017 namespace xAOD {
00018
00031 class TrigComposite_v1 : public SG::AuxElement {
00032
00033 public:
00035 TrigComposite_v1();
00036
00039
00041 const std::string& name() const;
00043 void setName( const std::string& name );
00044
00046
00049
00051 template< typename TYPE >
00052 bool hasDetail( const std::string& name );
00053
00055 bool setDetail( const std::string& name, int value );
00057 bool setDetail( const std::string& name, float value );
00059 bool setDetail( const std::string& name,
00060 const std::vector< int >& value );
00062 bool setDetail( const std::string& name,
00063 const std::vector< float >& value );
00064
00066 bool getDetail( const std::string& name, int& value ) const;
00068 bool getDetail( const std::string& name, float& value ) const;
00070 bool getDetail( const std::string& name,
00071 std::vector< int >& value ) const;
00073 bool getDetail( const std::string& name,
00074 std::vector< float >& value ) const;
00075
00077
00080
00082 template< class CONTAINER >
00083 bool setObjectLink( const std::string& name,
00084 const ElementLink< CONTAINER >& link );
00086 bool hasObjectLink( const std::string& name ) const;
00088 template< class CONTAINER >
00089 ElementLink< CONTAINER >
00090 objectLink( const std::string& name ) const;
00092 template< class OBJECT >
00093 const OBJECT* object( const std::string& name ) const;
00094
00096 const std::vector< std::string >& linkColNames() const;
00098 const std::vector< uint32_t >& linkColKeys() const;
00100 const std::vector< uint16_t >& linkColIndices() const;
00102 const std::vector< uint32_t >& linkColClids() const;
00103
00105
00106 private:
00108 std::vector< std::string >& linkColNamesNC();
00110 std::vector< uint32_t >& linkColKeysNC();
00112 std::vector< uint16_t >& linkColIndicesNC();
00114 std::vector< uint32_t >& linkColClidsNC();
00115
00116 };
00117
00118 }
00119
00120
00121 #include "TrigComposite_v1.icc"
00122
00123 #endif // XAODTRIGGER_VERSIONS_TRIGCOMPOSITE_V1_H