00001
00002 #ifndef TrigDecisionTool_DecisionObjectHandle_h
00003 #define TrigDecisionTool_DecisionObjectHandle_h
00004
00005 #include <string>
00006
00007 #include "TrigDecisionTool/Logger.h"
00008
00009 namespace TrigDec {
00010 class TrigDecision;
00011
00012 #if XAOD_ANALYSIS
00013 class TrigDecision{
00014 };
00015 #endif
00016 }
00017
00022 namespace Trig {
00023 template<typename DECISIONTYPE, typename NAVIGATIONTYPE>
00024 class DecisionObjectHandle : public Logger {
00025 public:
00026 DecisionObjectHandle();
00027 virtual ~DecisionObjectHandle(){;}
00028 void invalidate();
00029 void validate();
00030 bool valid() const;
00031 virtual DECISIONTYPE const * getDecision() const = 0;
00032 virtual NAVIGATIONTYPE const * getNavigation() const = 0;
00033 protected:
00034 bool m_validity;
00035 };
00036
00037 template<typename DECISIONTYPE, typename NAVIGATIONTYPE>
00038 DecisionObjectHandle<DECISIONTYPE,NAVIGATIONTYPE>::DecisionObjectHandle()
00039 : m_validity(false) {
00040 }
00041
00042 template<typename DECISIONTYPE, typename NAVIGATIONTYPE>
00043 void DecisionObjectHandle<DECISIONTYPE,NAVIGATIONTYPE>::invalidate() {
00044 m_validity = false;
00045 }
00046
00047 template<typename DECISIONTYPE, typename NAVIGATIONTYPE>
00048 void DecisionObjectHandle<DECISIONTYPE,NAVIGATIONTYPE>::validate() {
00049 m_validity = true;
00050 }
00051
00052 template<typename DECISIONTYPE, typename NAVIGATIONTYPE>
00053 bool DecisionObjectHandle<DECISIONTYPE,NAVIGATIONTYPE>::valid() const {
00054 return m_validity;
00055 }
00056 }
00057
00058 #endif // TrigDecisionTool_DecisionObjectHandle_h