00001 #ifndef TrigDecision_TrigDecisionToolCore_h 00002 #define TrigDecision_TrigDecisionToolCore_h 00003 /********************************************************************************** 00004 * @Project: TrigDecisionTool 00005 * @Package: TrigDecisionTool 00006 * @Class : TrigDecisionTool 00007 * 00008 * @brief main tool 00009 * This class defines basic functionality of TDT irrespectively 00010 * of the environment in which it is used (ARA, Athena). 00011 * 00012 * 00013 * @author Michael Begel <michael.begel@cern.ch> - Brookhaven National Laboratory 00014 * @author Tomasz Bold <Tomasz.Bold@cern.ch> - UC Irvine - AGH Krakow 00015 * @author Joerg Stelzer <Joerg.Stelzer@cern.ch> - DESY 00016 * 00017 ***********************************************************************************/ 00018 #include "AsgTools/StatusCode.h" 00019 #include "TrigDecisionTool/ChainGroupFunctions.h" 00020 #include "TrigDecisionTool/Conditions.h" 00021 #include "TrigDecisionTool/ChainGroup.h" 00022 #include "TrigDecisionTool/CacheGlobalMemory.h" 00023 #include "TrigDecisionTool/ConfigurationAccess.h" 00024 #include "TrigDecisionTool/DecisionAccess.h" 00025 #include "TrigDecisionTool/ExpertMethods.h" 00026 00027 namespace Trig { 00028 00029 class TrigDecisionToolCore : public ChainGroupFunctions, 00030 public ConfigurationAccess, 00031 public DecisionAccess, 00032 public virtual Logger 00033 { 00034 public: 00035 // constructors, destructor 00036 TrigDecisionToolCore(); 00037 virtual ~TrigDecisionToolCore(); 00038 00039 // initialize routine as required for an Algorithm 00040 virtual StatusCode initialize(); 00041 virtual StatusCode finalize(); 00042 00043 using ChainGroupFunctions::getChainGroup; 00044 using ConfigurationAccess::getListOfTriggers; 00045 using ConfigurationAccess::getListOfStreams; 00046 using ConfigurationAccess::getListOfGroups; 00047 using ConfigurationAccess::getListOfTriggerElements; 00048 using ConfigurationAccess::getPrescale; 00049 using DecisionAccess::isPassed; 00050 using DecisionAccess::isPassedBits; 00051 using DecisionAccess::features; 00052 using DecisionAccess::ancestor; 00053 00054 Trig::ExpertMethods* ExperimentalAndExpertMethods() const { return m_expertMethods; } 00055 00056 protected: 00057 virtual Trig::CacheGlobalMemory* cgm() const { return m_cacheGlobalMemory; } 00058 00059 00060 private: 00061 Trig::CacheGlobalMemory* m_cacheGlobalMemory; 00062 Trig::ExpertMethods* m_expertMethods; 00063 TrigDecisionToolCore (const TrigDecisionToolCore&); 00064 TrigDecisionToolCore& operator= (const TrigDecisionToolCore&); 00065 00066 }; 00067 00068 } // End of namespace 00069 00070 #endif