00001
00002
00003 #ifndef TRIG_IDECISIONUNPACKER_H
00004 #define TRIG_IDECISIONUNPACKER_H
00005
00006 #include "AsgTools/StatusCode.h"
00007 #include <map>
00008 #include <string>
00009
00010 namespace HLT {
00011 class TrigNavStructure;
00012 class Chain;
00013 }
00014
00015 namespace LVL1CTP{
00016 class Lvl1Item;
00017 }
00018
00019 namespace Trig{
00020 class IDecisionUnpacker{
00021 public:
00022 typedef unsigned CTPID;
00023 typedef unsigned CHAIN_COUNTER;
00024 IDecisionUnpacker();
00025 virtual ~IDecisionUnpacker();
00026 virtual StatusCode unpackDecision(std::map<std::string, const LVL1CTP::Lvl1Item*>&,
00027 std::map<CTPID, LVL1CTP::Lvl1Item*>& itemsCache,
00028 std::map<std::string, const HLT::Chain*>&,
00029 std::map<CHAIN_COUNTER, HLT::Chain*>&,
00030 std::map<std::string, const HLT::Chain*>&,
00031 std::map<CHAIN_COUNTER, HLT::Chain*>&,
00032 char&,
00033 bool
00034 ) = 0;
00035 virtual StatusCode unpackNavigation(HLT::TrigNavStructure*) = 0;
00036 bool unpacked_decision() const { return m_unpackedDecision;}
00037 void unpacked_decision(bool state) { m_unpackedDecision = state;}
00038
00039 bool unpacked_navigation() const {return m_unpackedNavigation;}
00040 void unpacked_navigation(bool state) { m_unpackedNavigation = state;}
00041
00042 virtual bool assert_handle() = 0;
00043 virtual void validate_handle() = 0;
00044 virtual void invalidate_handle() = 0;
00045
00046 private:
00047 bool m_unpackedDecision;
00048 bool m_unpackedNavigation;
00049 };
00050 }
00051
00052 #endif