00001
00002
00003 #ifndef TRIGCONFXAOD_XAODCONFIGSVC_H
00004 #define TRIGCONFXAOD_XAODCONFIGSVC_H
00005
00006
00007 #include "AthenaBaseComps/AthService.h"
00008 #include "GaudiKernel/IIncidentListener.h"
00009 #include "GaudiKernel/ServiceHandle.h"
00010 #include "StoreGate/StoreGateSvc.h"
00011
00012
00013 #include "TrigConfInterfaces/ITrigConfigSvc.h"
00014 #include "TrigConfL1Data/CTPConfig.h"
00015 #include "TrigConfL1Data/BunchGroupSet.h"
00016 #include "TrigConfHLTData/HLTChainList.h"
00017 #include "TrigConfHLTData/HLTSequenceList.h"
00018
00019
00020 #include "xAODTrigger/TriggerMenu.h"
00021 #include "xAODTrigger/TriggerMenuContainer.h"
00022
00023 namespace TrigConf {
00024
00037 class xAODConfigSvc : public AthService,
00038 public virtual ITrigConfigSvc,
00039 public virtual IIncidentListener {
00040
00041 public:
00043 xAODConfigSvc( const std::string& name, ISvcLocator* svcLoc );
00044
00046 virtual StatusCode initialize();
00048 virtual StatusCode finalize();
00049
00052
00054 virtual const CTPConfig* ctpConfig() const;
00055
00057 virtual const ThresholdConfig* thresholdConfig() const {
00058 return 0;
00059 }
00060
00062 virtual const BunchGroupSet* bunchGroupSet() const;
00063
00065 virtual uint32_t lvl1PrescaleKey() const;
00066
00068
00071
00073 virtual const HLTChainList* chainList() const;
00075 virtual const HLTChainList& chains() const;
00076
00078 virtual const HLTSequenceList* sequenceList() const;
00080 virtual const HLTSequenceList& sequences() const;
00081
00083 virtual uint32_t masterKey() const;
00084
00086 virtual uint32_t hltPrescaleKey() const;
00087
00089
00092
00094 virtual const TXC::L1TopoMenu* menu() const {
00095 return 0;
00096 }
00097
00099
00102
00104 virtual const Muctpi* muctpiConfig() const {
00105 return 0;
00106 }
00107
00109
00112
00114 virtual StatusCode updatePrescaleSets( uint ) {
00115 return StatusCode::FAILURE;
00116 }
00117
00119 virtual StatusCode assignPrescalesToChains( uint ) {
00120 return StatusCode::FAILURE;
00121 }
00122
00124
00126 virtual StatusCode queryInterface( const InterfaceID& riid,
00127 void** ppvIf );
00128
00130 virtual void handle( const Incident& inc );
00131
00132 private:
00134 StatusCode readMetadata();
00136 StatusCode prepareEvent();
00137
00139 std::string m_eventName;
00141 std::string m_metaName;
00142
00144 bool m_stopOnFailure;
00146 bool m_isInFailure;
00147
00149 const xAOD::TriggerMenuContainer* m_tmc;
00151 const xAOD::TriggerMenu* m_menu;
00152
00154 CTPConfig m_ctpConfig;
00156 HLTChainList m_chainList;
00158 HLTSequenceList m_sequenceList;
00160 BunchGroupSet m_bgSet;
00161
00163 ServiceHandle< StoreGateSvc > m_eventStore;
00165 ServiceHandle< StoreGateSvc > m_metaStore;
00166
00167 };
00168
00169 }
00170
00171 #endif // TRIGCONFXAOD_XAODCONFIGSVC_H