00001 // Dear emacs, this is -*- c++ -*- 00002 // $Id: xAODConfigTool.h 631651 2014-11-27 18:33:16Z lheinric $ 00003 #ifndef TRIGCONFXAOD_XAODCONFIGTOOL_H 00004 #define TRIGCONFXAOD_XAODCONFIGTOOL_H 00005 00006 // Infrastructure include(s): 00007 #include "AsgTools/AsgMetadataTool.h" 00008 00009 // Trigger configuration include(s): 00010 #include "TrigConfInterfaces/ITrigConfigTool.h" 00011 #include "TrigConfL1Data/CTPConfig.h" 00012 #include "TrigConfL1Data/BunchGroupSet.h" 00013 #include "TrigConfHLTData/HLTChainList.h" 00014 #include "TrigConfHLTData/HLTSequenceList.h" 00015 00016 // xAOD include(s): 00017 #include "xAODTrigger/TriggerMenu.h" 00018 #include "xAODTrigger/TriggerMenuContainer.h" 00019 00020 namespace TrigConf { 00021 00033 class xAODConfigTool : public asg::AsgMetadataTool, 00034 public virtual ITrigConfigTool { 00035 00037 ASG_TOOL_CLASS( xAODConfigTool, ITrigConfigTool ) 00038 00039 public: 00041 xAODConfigTool( const std::string& name = "TrigConf::xAODConfigTool" ); 00042 00045 00047 virtual StatusCode initialize(); 00048 00050 00053 00055 virtual const CTPConfig* ctpConfig() const; 00056 00058 virtual const ThresholdConfig* thresholdConfig() const { 00059 return 0; 00060 } 00061 00063 virtual const BunchGroupSet* bunchGroupSet() const; 00064 00066 virtual uint32_t lvl1PrescaleKey() const; 00067 00069 00072 00074 virtual const HLTChainList* chainList() const; 00076 virtual const HLTChainList& chains() const; 00077 00079 virtual const HLTSequenceList* sequenceList() const; 00081 virtual const HLTSequenceList& sequences() const; 00082 00084 virtual uint32_t masterKey() const; 00085 00087 virtual uint32_t hltPrescaleKey() const; 00088 00090 00091 protected: 00094 00096 virtual StatusCode beginInputFile(); 00097 00099 virtual StatusCode beginEvent(); 00100 00102 00103 private: 00105 std::string m_eventName; 00107 std::string m_metaName; 00108 00110 const xAOD::TriggerMenuContainer* m_tmc; 00112 const xAOD::TriggerMenu* m_menu; 00113 00115 CTPConfig m_ctpConfig; 00117 HLTChainList m_chainList; 00119 HLTSequenceList m_sequenceList; 00121 BunchGroupSet m_bgSet; 00122 00123 }; // class xAODConfigTool 00124 00125 } // namespace TrigConf 00126 00127 #endif // TRIGCONFXAOD_XAODCONFIGTOOL_H