00001
00002
00003 #ifndef XAODTRIGGERCNV_TRIGDECISIONCNVTOOL_H
00004 #define XAODTRIGGERCNV_TRIGDECISIONCNVTOOL_H
00005
00006
00007 extern "C" {
00008 # include <stdint.h>
00009 }
00010 #include <vector>
00011
00012
00013 #include "AthenaBaseComps/AthAlgTool.h"
00014 #include "GaudiKernel/ToolHandle.h"
00015 #include "GaudiKernel/ServiceHandle.h"
00016
00017
00018 #include "TrigDecisionInterface/ITrigDecisionTool.h"
00019 #include "TrigConfInterfaces/IHLTConfigSvc.h"
00020
00021
00022 #include "xAODTriggerCnv/ITrigDecisionCnvTool.h"
00023 #include "EventInfo/TriggerInfo.h"
00024
00025 namespace xAODMaker {
00026
00038 class TrigDecisionCnvTool : public AthAlgTool,
00039 public virtual ITrigDecisionCnvTool {
00040
00041 public:
00043 TrigDecisionCnvTool( const std::string& type, const std::string& name,
00044 const IInterface* parent );
00045
00047 virtual StatusCode initialize();
00048
00050 virtual StatusCode convert( const TrigDec::TrigDecision* aod,
00051 xAOD::TrigDecision* xaod,
00052 const TriggerInfo* level1TriggerInfo );
00053
00054 private:
00056 static StatusCode setBit( std::vector< uint32_t >& bitset,
00057 uint32_t chainId, bool value = true );
00058
00060 ToolHandle< Trig::ITrigDecisionTool > m_tdt;
00062 ServiceHandle< TrigConf::IHLTConfigSvc > m_trigconf;
00063
00064 };
00065
00066 }
00067
00068 #endif // XAODTRIGGERCNV_TRIGDECISIONCNVTOOL_H