00001 #pragma once
00002 #ifndef TRIGSTEERINGEVENT_TRIGOPERATIONALINFO_H
00003 #define TRIGSTEERINGEVENT_TRIGOPERATIONALINFO_H
00004
00005
00006 #include <map>
00007 #include <string>
00008 #include <vector>
00009 #include "GaudiKernel/MsgStream.h"
00010
00011 #include "CLIDSvc/CLASS_DEF.h"
00012
00013
00014
00023 class TrigOperationalInfo {
00024
00025 public:
00026 TrigOperationalInfo();
00027 TrigOperationalInfo(const std::vector<std::string>& keys,
00028 const std::vector<float>& values);
00029 unsigned int defined(const std::string& name) const;
00030 float get(const std::string& name) const;
00031 void set(const std::string& name, float value);
00032 std::pair<std::vector<std::string>, std::vector<float> > infos() const;
00033 const std::vector<std::string>& getKeys() const;
00034 const std::vector<float>& getValues() const;
00035 void updateAtLocation(unsigned int location, float value);
00036
00037 private:
00038 std::vector<std::string> m_infoName;
00039 std::vector<float> m_infoValue;
00040 };
00041
00042
00043
00044 std::string str( const TrigOperationalInfo& d );
00045 MsgStream& operator<< ( MsgStream& m, const TrigOperationalInfo& d );
00046
00047
00048 bool operator== ( const TrigOperationalInfo& a, const TrigOperationalInfo& b );
00049 inline bool operator!= ( const TrigOperationalInfo& a, const TrigOperationalInfo& b ) { return !(a==b); }
00050 void diff( const TrigOperationalInfo& a, const TrigOperationalInfo& b, std::map<std::string, double>& variableChange );
00051
00052 CLASS_DEF( TrigOperationalInfo , 242645981 , 1 )
00053
00054 #include "TrigSteeringEvent/TrigOperationalInfoCollection.h"
00055
00056 #endif