00001
00002 #ifndef TRIGGER_DECISION_TOOL_ExpertMethods_H
00003 #define TRIGGER_DECISION_TOOL_ExpertMethods_H
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include <string>
00016 #include <boost/algorithm/string/predicate.hpp>
00017
00018 #include "TrigNavStructure/TriggerElement.h"
00019 #include "TrigDecisionTool/Logger.h"
00020 #include "TrigDecisionTool/Conditions.h"
00021 #include "TrigDecisionTool/Combination.h"
00022 #include "TrigDecisionTool/Feature.h"
00023 #include "TrigDecisionTool/FeatureContainer.h"
00024 #include "TrigDecisionTool/ChainGroup.h"
00025
00026 #include "TrigDecisionTool/Logger.h"
00027
00028 #if defined(ASGTOOL_ATHENA) && !defined(XAOD_ANALYSIS)
00029 #include "TrigNavigation/NavigationCore.h"
00030 #endif
00031
00032 namespace HLT {
00033 class Chain;
00034 }
00035 namespace TrigConf {
00036 class HLTChain;
00037 class HLTTriggerElement;
00038 }
00039
00040 class LVL1_ROI;
00041
00042 namespace Trig {
00043
00044 class CacheGlobalMemory;
00045
00046 class ExpertMethods : public virtual Logger {
00047 public:
00048
00049 ExpertMethods(Trig::CacheGlobalMemory* m_cacheGlobalMemory);
00050 virtual ~ExpertMethods();
00051
00055 void enable() {m_useExperimentalAndExpertMethods=true;};
00059 void disable() {m_useExperimentalAndExpertMethods=false;};
00060
00065 const TrigConf::TriggerItem* getItemConfigurationDetails(const std::string& chain);
00066
00071 const TrigConf::HLTChain* getChainConfigurationDetails(const std::string& chain);
00072
00077 const LVL1CTP::Lvl1Item* getItemDetails(const std::string& chain) const;
00078
00083 const HLT::Chain* getChainDetails(const std::string& chain) const;
00084
00088 #if defined(ASGTOOL_ATHENA) && !defined(XAOD_ANALYSIS)
00089 const HLT::NavigationCore* getNavigation() const;
00090 #else
00091 const HLT::TrigNavStructure* getNavigation() const;
00092 #endif
00093
00098 bool isHLTTruncated() const;
00099
00100 private:
00101
00102 Trig::CacheGlobalMemory* m_cacheGlobalMemory;
00103 Trig::CacheGlobalMemory* cgm(bool onlyConfig=false) const;
00104
00105 bool m_useExperimentalAndExpertMethods;
00106
00107 bool checkExperimentalAndExpertMethods() const;
00108
00109 };
00110
00111 }
00112
00113
00114 #endif