ATLAS Offline Software
Loading...
Searching...
No Matches
HLTSeeding Class Reference

Collects information from CTP bits and LVL1 RoIs, activates HLT chains and creates seeding RoIs. More...

#include <HLTSeeding.h>

Inheritance diagram for HLTSeeding:
Collaboration diagram for HLTSeeding:

Public Member Functions

 HLTSeeding (const std::string &name, ISvcLocator *pSvcLocator)
virtual StatusCode initialize () override
virtual StatusCode execute (const EventContext &ctx) const override
virtual StatusCode sysInitialize () override
 Override sysInitialize.
virtual bool isClonable () const override
 Specify if the algorithm is clonable.
virtual unsigned int cardinality () const override
 Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.
virtual StatusCode sysExecute (const EventContext &ctx) override
 Execute an algorithm.
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
virtual bool filterPassed (const EventContext &ctx) const
virtual void setFilterPassed (bool state, const EventContext &ctx) const
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Static Private Member Functions

static StatusCode saveChainsInfo (const HLT::IDVec &chains, xAOD::TrigCompositeContainer *storage, const std::string &type)

Private Attributes

Gaudi::Property< float > m_roiZedWidthDefault
DataObjIDColl m_extendedExtraObjects
 Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared
Data dependencies

Level-1 result with RoIs from Run-2 hardware systems

SG::ReadHandleKey< ROIB::RoIBResultm_RoIBResultKey
SG::ReadHandleKey< xAOD::TrigCompositeContainerm_l1TriggerResultKey
 Level-1 result with RoIs from Run-3 hardware systems.
SG::WriteHandleKey< TrigCompositeUtils::DecisionContainerm_summaryKey
SG::WriteHandleKey< TrigTimeStampm_startStampKey
Properties
Gaudi::Property< bool > m_doCostMonitoring
Gaudi::Property< std::string > m_costMonitoringChain
Tools and Services
ServiceHandle< ITrigCostSvcm_trigCostSvcHandle
ToolHandle< ICTPUnpackingToolm_ctpUnpacker
ToolHandleArray< IRoIsUnpackingToolm_roiUnpackers_roib
ToolHandleArray< IRoIsUnpackingToolm_roiUnpackers_xaod
ToolHandle< IPrescalingToolm_prescaler
ToolHandle< TrigConf::IKeyWriterToolm_keyWriterTool
ToolHandle< L1DataConsistencyCheckerm_consistencyChecker

Detailed Description

Collects information from CTP bits and LVL1 RoIs, activates HLT chains and creates seeding RoIs.

All the unpacking is outsourced to tools. However the menu mapping, this is from CTP items to chains and from thresholds to chains, is maintained in this algorithm and provided to unpacking tools.

Definition at line 31 of file HLTSeeding.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ HLTSeeding()

HLTSeeding::HLTSeeding ( const std::string & name,
ISvcLocator * pSvcLocator )

Definition at line 16 of file HLTSeeding.cxx.

17 : AthReentrantAlgorithm(name, pSvcLocator) {}

Member Function Documentation

◆ cardinality()

unsigned int AthCommonReentrantAlgorithm< Gaudi::Algorithm >::cardinality ( ) const
overridevirtualinherited

Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.

Override this to return 0 for reentrant algorithms.

Definition at line 75 of file AthCommonReentrantAlgorithm.cxx.

64{
65 return 0;
66}

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ execute()

StatusCode HLTSeeding::execute ( const EventContext & ctx) const
overridevirtual

Definition at line 60 of file HLTSeeding.cxx.

60 {
61 {
62 auto timeStampHandle = SG::makeHandle( m_startStampKey, ctx );
63 ATH_CHECK( timeStampHandle.record( std::make_unique<TrigTimeStamp>() ) );
64 }
65 using namespace TrigCompositeUtils;
66 const bool decodeRoIB = !m_RoIBResultKey.empty();
67 const bool decodexAOD = !m_l1TriggerResultKey.empty();
68
69 const ROIB::RoIBResult* roib = nullptr;
70 if (decodeRoIB) {
71 SG::ReadHandle<ROIB::RoIBResult> roibH( m_RoIBResultKey, ctx );
72 roib = roibH.cptr();
73 ATH_MSG_DEBUG( "Obtained RoIBResult" );
74 }
75
76 const xAOD::TrigComposite* l1TriggerResult = nullptr;
77 if (decodexAOD) {
78 auto l1TriggerResultCont = SG::makeHandle(m_l1TriggerResultKey, ctx);
79 if (!l1TriggerResultCont.isValid()) {
80 ATH_MSG_ERROR("Failed to retrieve L1TriggerResult with key " << m_l1TriggerResultKey.key());
81 return StatusCode::FAILURE;
82 }
83 if (l1TriggerResultCont->size() != 1) {
84 ATH_MSG_ERROR("Size of the L1TriggerResultContainer is " << l1TriggerResultCont->size() << " but 1 expected");
85 return StatusCode::FAILURE;
86 }
87 l1TriggerResult = l1TriggerResultCont->at(0);
88 if (msgLvl(MSG::DEBUG)) {
89 const std::vector<std::string>& linkNames = l1TriggerResult->linkColNames();
90 const std::vector<uint32_t>& linkClids = l1TriggerResult->linkColClids();
91 ATH_MSG_DEBUG("L1TriggerResult has " << linkNames.size() << " links:");
92 for (size_t i=0; i<linkNames.size(); ++i) {
93 ATH_MSG_DEBUG("--> " << linkNames.at(i) << " CLID: " << linkClids.at(i));
94 }
95 }
96 }
97
98 SG::WriteHandle<DecisionContainer> handle = TrigCompositeUtils::createAndStore( m_summaryKey, ctx );
99 auto *chainsInfo = handle.ptr();
100
101 HLT::IDVec l1SeededChains;
102 if (decodeRoIB) {
103 ATH_CHECK( m_ctpUnpacker->decode( ctx, *roib, l1SeededChains ) );
104 } else if (m_ctpUnpacker->isEmulated()) {
105 ATH_CHECK( m_ctpUnpacker->decode( ctx, ROIB::RoIBResult{}, l1SeededChains ) );
106 }
107
108 // important: sorting of the list of seeded chains is needed so that the deduplication and following set difference are correct
109 std::sort( l1SeededChains.begin(), l1SeededChains.end() );
110
111 // Multiple items can seed some chains, remove duplicates from the sorted vector
112 HLT::IDVec::iterator removeFrom = std::unique(l1SeededChains.begin(), l1SeededChains.end());
113 l1SeededChains.erase(removeFrom, l1SeededChains.end());
114
115 HLT::IDVec activeChains; // Chains which are activated to run in the first pass (seeded and pass prescale)
116 HLT::IDVec prescaledChains; // Chains which are activated but do not run in the first pass (seeded but prescaled out)
117
118 ATH_CHECK( m_prescaler->prescaleChains( ctx, l1SeededChains, activeChains ) );
119
120 // important: sorting of the list of active chains is needed so that the set difference is correct
121 std::sort( activeChains.begin(), activeChains.end() );
122
123 std::set_difference(l1SeededChains.begin(), l1SeededChains.end(),
124 activeChains.begin(), activeChains.end(),
125 std::back_inserter(prescaledChains));
126
127 // Validation
128 for (const HLT::Identifier& id : prescaledChains) {
129 if (std::find(activeChains.begin(), activeChains.end(), id) != activeChains.end()) {
130 ATH_MSG_ERROR("Prescaled chain cannot also be an active chain (" << id << ")");
131 }
132 }
133
134 ATH_CHECK( saveChainsInfo( l1SeededChains, chainsInfo, "l1seeded" ) );
135 ATH_CHECK( saveChainsInfo( activeChains, chainsInfo, "unprescaled" ) );
136 ATH_CHECK( saveChainsInfo( prescaledChains, chainsInfo, "prescaled" ) );
137 // Note: 'prescaled' is deduced from 'l1seeded' and 'unprescaled'.
138
139 // Do cost monitoring, this utilises the HLT_costmonitor chain
140 if (m_doCostMonitoring) {
141 const static HLT::Identifier costMonitorChain(m_costMonitoringChain);
142 const auto activeCostMonIt = std::find(activeChains.begin(), activeChains.end(), costMonitorChain);
143 if (activeCostMonIt == activeChains.end()){
144 ATH_CHECK(m_trigCostSvcHandle->discardEvent(ctx));
145 }
146 }
147
148 ATH_MSG_DEBUG( "Unpacking RoIs" );
149 HLT::IDSet activeChainSet( activeChains.begin(), activeChains.end() );
150 if (decodeRoIB) {
151 for ( auto unpacker: m_roiUnpackers_roib ) {
152 ATH_CHECK( unpacker->unpack( ctx, *roib, activeChainSet ) );
153 }
154 } else if (m_ctpUnpacker->isEmulated()) {
155 ROIB::RoIBResult roib{};
156 for ( auto unpacker: m_roiUnpackers_roib ) {
157 ATH_CHECK( unpacker->unpack( ctx, roib, activeChainSet ) );
158 }
159 }
160 if (decodexAOD) {
161 for ( auto unpacker: m_roiUnpackers_xaod ) {
162 try {
163 ATH_CHECK( unpacker->unpack( ctx, *l1TriggerResult, activeChainSet ) );
164 } catch (const std::exception& ex) {
165 ATH_MSG_ERROR("Exception in " << unpacker->name() << "::unpack: " << ex.what());
166 return StatusCode::FAILURE;
167 }
168 }
169 }
170
171 if ( !m_keyWriterTool.empty() ) {
172 ATH_CHECK( m_keyWriterTool->writeKeys(ctx) );
173 }
174
175 if ( !m_consistencyChecker.empty() ) {
176 ATH_CHECK( m_consistencyChecker->consistencyCheck(l1SeededChains, ctx) );
177 }
178
179 return StatusCode::SUCCESS;
180}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)
#define ATH_MSG_DEBUG(x)
bool msgLvl(const MSG::Level lvl) const
ToolHandle< TrigConf::IKeyWriterTool > m_keyWriterTool
Definition HLTSeeding.h:89
ToolHandle< L1DataConsistencyChecker > m_consistencyChecker
Definition HLTSeeding.h:92
ServiceHandle< ITrigCostSvc > m_trigCostSvcHandle
Definition HLTSeeding.h:74
static StatusCode saveChainsInfo(const HLT::IDVec &chains, xAOD::TrigCompositeContainer *storage, const std::string &type)
ToolHandleArray< IRoIsUnpackingTool > m_roiUnpackers_xaod
Definition HLTSeeding.h:83
ToolHandle< ICTPUnpackingTool > m_ctpUnpacker
Definition HLTSeeding.h:77
SG::ReadHandleKey< xAOD::TrigCompositeContainer > m_l1TriggerResultKey
Level-1 result with RoIs from Run-3 hardware systems.
Definition HLTSeeding.h:49
SG::ReadHandleKey< ROIB::RoIBResult > m_RoIBResultKey
Definition HLTSeeding.h:45
Gaudi::Property< std::string > m_costMonitoringChain
Definition HLTSeeding.h:64
SG::WriteHandleKey< TrigCompositeUtils::DecisionContainer > m_summaryKey
Definition HLTSeeding.h:52
ToolHandleArray< IRoIsUnpackingTool > m_roiUnpackers_roib
Definition HLTSeeding.h:80
SG::WriteHandleKey< TrigTimeStamp > m_startStampKey
Definition HLTSeeding.h:55
ToolHandle< IPrescalingTool > m_prescaler
Definition HLTSeeding.h:86
Gaudi::Property< bool > m_doCostMonitoring
Definition HLTSeeding.h:61
pointer_type ptr()
Dereference the pointer.
const std::vector< std::string > & linkColNames() const
Raw access to the persistent link names.
const std::vector< uint32_t > & linkColClids() const
Raw access to the persistent link CLIDs.
std::vector< HLT::Identifier > IDVec
std::set< HLT::Identifier > IDSet
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
SG::WriteHandle< DecisionContainer > createAndStore(const SG::WriteHandleKey< DecisionContainer > &key, const EventContext &ctx)
Creates and right away records the DecisionContainer with the key.
DataModel_detail::iterator< DVL > unique(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of unique for DataVector/List.
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.
TrigComposite_v1 TrigComposite
Declare the latest version of the class.

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ extraOutputDeps()

const DataObjIDColl & AthCommonReentrantAlgorithm< Gaudi::Algorithm >::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 94 of file AthCommonReentrantAlgorithm.cxx.

90{
91 // If we didn't find any symlinks to add, just return the collection
92 // from the base class. Otherwise, return the extended collection.
93 if (!m_extendedExtraObjects.empty()) {
95 }
97}
An algorithm that can be simultaneously executed in multiple threads.

◆ filterPassed()

virtual bool AthCommonReentrantAlgorithm< Gaudi::Algorithm >::filterPassed ( const EventContext & ctx) const
inlinevirtualinherited

Definition at line 96 of file AthCommonReentrantAlgorithm.h.

96 {
97 return execState( ctx ).filterPassed();
98 }
virtual bool filterPassed(const EventContext &ctx) const

◆ initialize()

StatusCode HLTSeeding::initialize ( )
overridevirtual

Definition at line 20 of file HLTSeeding.cxx.

20 {
21 ATH_MSG_INFO( "Reading RoIB information from: " << m_RoIBResultKey.objKey() << " : "
22 << m_RoIBResultKey.fullKey() << " : " << m_RoIBResultKey.key() );
23
24 if ( m_RoIBResultKey.empty() && m_l1TriggerResultKey.empty() ) {
25 ATH_MSG_INFO( "RoIBResult and L1TriggerResult keys both empty: assume we're running with CTP emulation" );
26 }
27
28 ATH_CHECK( m_RoIBResultKey.initialize(!m_RoIBResultKey.empty()) );
30
31 ATH_CHECK( m_summaryKey.initialize() );
32 ATH_CHECK( m_startStampKey.initialize() );
33
34 ATH_CHECK( m_ctpUnpacker.retrieve() );
35 ATH_CHECK( m_roiUnpackers_roib.retrieve() );
36 ATH_CHECK( m_roiUnpackers_xaod.retrieve() );
37 ATH_CHECK( m_prescaler.retrieve() );
38
39 if ( !m_keyWriterTool.empty() ) {
40 ATH_CHECK( m_keyWriterTool.retrieve() );
41 }
42
43 if ( !m_consistencyChecker.empty() ) {
44 ATH_CHECK( m_consistencyChecker.retrieve() );
45 }
46
48 ATH_CHECK( m_trigCostSvcHandle.retrieve() );
49 }
50
51 if ( m_roiZedWidthDefault!=0 ) {
52 ATH_MSG_INFO( "CHANGING THE DEFAULT ROI Z WIDTH: " << m_roiZedWidthDefault );
54 }
55
56 return StatusCode::SUCCESS;
57}
#define ATH_MSG_INFO(x)
Gaudi::Property< float > m_roiZedWidthDefault
Definition HLTSeeding.h:69
static double zedWidthDefault()

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ isClonable()

◆ msg()

MsgStream & AthCommonMsg< Gaudi::Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< Gaudi::Algorithm >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ saveChainsInfo()

StatusCode HLTSeeding::saveChainsInfo ( const HLT::IDVec & chains,
xAOD::TrigCompositeContainer * storage,
const std::string & type )
staticprivate

Definition at line 183 of file HLTSeeding.cxx.

185 {
186 using namespace TrigCompositeUtils;
187 Decision* d = newDecisionIn( storage, type );
188 for ( auto c: chains) {
189 addDecisionID(c.numeric(), d);
190 }
191 return StatusCode::SUCCESS;
192}
Decision * newDecisionIn(DecisionContainer *dc, const std::string &name="")
Helper method to create a Decision object, place it in the container and return a pointer to it.
void addDecisionID(DecisionID id, Decision *d)
Appends the decision (given as ID) to the decision object.

◆ setFilterPassed()

virtual void AthCommonReentrantAlgorithm< Gaudi::Algorithm >::setFilterPassed ( bool state,
const EventContext & ctx ) const
inlinevirtualinherited

Definition at line 100 of file AthCommonReentrantAlgorithm.h.

100 {
102 }
virtual void setFilterPassed(bool state, const EventContext &ctx) const

◆ sysExecute()

StatusCode AthCommonReentrantAlgorithm< Gaudi::Algorithm >::sysExecute ( const EventContext & ctx)
overridevirtualinherited

Execute an algorithm.

We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.

Definition at line 85 of file AthCommonReentrantAlgorithm.cxx.

77{
78 return BaseAlg::sysExecute (ctx);
79}

◆ sysInitialize()

StatusCode AthCommonReentrantAlgorithm< Gaudi::Algorithm >::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >.

Reimplemented in HypoBase, and InputMakerBase.

Definition at line 61 of file AthCommonReentrantAlgorithm.cxx.

107 {
109
110 if (sc.isFailure()) {
111 return sc;
112 }
113
114 ServiceHandle<ICondSvc> cs("CondSvc",name());
115 for (auto h : outputHandles()) {
116 if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
117 // do this inside the loop so we don't create the CondSvc until needed
118 if ( cs.retrieve().isFailure() ) {
119 ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
120 return StatusCode::SUCCESS;
121 }
122 if (cs->regHandle(this,*h).isFailure()) {
124 ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
125 << " with CondSvc");
126 }
127 }
128 }
129 return sc;
130}
#define ATH_MSG_WARNING(x)
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }

Member Data Documentation

◆ m_consistencyChecker

ToolHandle<L1DataConsistencyChecker> HLTSeeding::m_consistencyChecker
private
Initial value:
{
this, "L1DataConsistencyChecker", "", "L1 data consistency check tool"}

Definition at line 92 of file HLTSeeding.h.

92 {
93 this, "L1DataConsistencyChecker", "", "L1 data consistency check tool"};

◆ m_costMonitoringChain

Gaudi::Property<std::string> HLTSeeding::m_costMonitoringChain
private
Initial value:
{
this, "CostMonitoringChain", "HLT_noalg_CostMonDS_L1All",
"Name of the chain which should enable HLT cost monitoring."}

Definition at line 64 of file HLTSeeding.h.

64 {
65 this, "CostMonitoringChain", "HLT_noalg_CostMonDS_L1All",
66 "Name of the chain which should enable HLT cost monitoring."};

◆ m_ctpUnpacker

ToolHandle<ICTPUnpackingTool> HLTSeeding::m_ctpUnpacker
private
Initial value:
{
this, "ctpUnpacker", "CTPUnpackingTool/CTPUnpackingTool", "Tool used to unpack the CTP info"}

Definition at line 77 of file HLTSeeding.h.

77 {
78 this, "ctpUnpacker", "CTPUnpackingTool/CTPUnpackingTool", "Tool used to unpack the CTP info"};

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_doCostMonitoring

Gaudi::Property<bool> HLTSeeding::m_doCostMonitoring
private
Initial value:
{
this, "DoCostMonitoring", false, "Enables start-of-event cost monitoring behavior."}

Definition at line 61 of file HLTSeeding.h.

61 {
62 this, "DoCostMonitoring", false, "Enables start-of-event cost monitoring behavior."};

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthCommonReentrantAlgorithm< Gaudi::Algorithm >::m_extendedExtraObjects
privateinherited

Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.

Empty if no symlinks were found.

Definition at line 114 of file AthCommonReentrantAlgorithm.h.

◆ m_keyWriterTool

ToolHandle<TrigConf::IKeyWriterTool> HLTSeeding::m_keyWriterTool
private
Initial value:
{
this, "KeyWriterTool", "", "Writes the keys used when the trigger executes on an event"}

Definition at line 89 of file HLTSeeding.h.

89 {
90 this, "KeyWriterTool", "", "Writes the keys used when the trigger executes on an event"};

◆ m_l1TriggerResultKey

SG::ReadHandleKey<xAOD::TrigCompositeContainer> HLTSeeding::m_l1TriggerResultKey
private
Initial value:
{
this, "L1TriggerResult", "L1TriggerResult", "Name of the L1 Trigger Result"}

Level-1 result with RoIs from Run-3 hardware systems.

Definition at line 49 of file HLTSeeding.h.

49 {
50 this, "L1TriggerResult", "L1TriggerResult", "Name of the L1 Trigger Result"};

◆ m_prescaler

ToolHandle<IPrescalingTool> HLTSeeding::m_prescaler
private
Initial value:
{
this, "prescaler", "PrescalingTool/PrescalingTool", "Prescaling tool"}

Definition at line 86 of file HLTSeeding.h.

86 {
87 this, "prescaler", "PrescalingTool/PrescalingTool", "Prescaling tool"};

◆ m_RoIBResultKey

SG::ReadHandleKey<ROIB::RoIBResult> HLTSeeding::m_RoIBResultKey
private
Initial value:
{
this, "RoIBResult", "RoIBResult", "Name of RoIBResult"}

Definition at line 45 of file HLTSeeding.h.

45 {
46 this, "RoIBResult", "RoIBResult", "Name of RoIBResult"};

◆ m_roiUnpackers_roib

ToolHandleArray<IRoIsUnpackingTool> HLTSeeding::m_roiUnpackers_roib
private
Initial value:
{
this, "RoIBRoIUnpackers", {}, "Tools unpacking Run-2 RoIs from RoIBResult"}

Definition at line 80 of file HLTSeeding.h.

80 {
81 this, "RoIBRoIUnpackers", {}, "Tools unpacking Run-2 RoIs from RoIBResult"};

◆ m_roiUnpackers_xaod

ToolHandleArray<IRoIsUnpackingTool> HLTSeeding::m_roiUnpackers_xaod
private
Initial value:
{
this, "xAODRoIUnpackers", {}, "Tools unpacking xAOD RoIs from L1TriggerResult"}

Definition at line 83 of file HLTSeeding.h.

83 {
84 this, "xAODRoIUnpackers", {}, "Tools unpacking xAOD RoIs from L1TriggerResult"};

◆ m_roiZedWidthDefault

Gaudi::Property<float> HLTSeeding::m_roiZedWidthDefault
private
Initial value:
{
this, "RoiZedWidthDefault", 0, "default Roi z width"}

Definition at line 69 of file HLTSeeding.h.

69 {
70 this, "RoiZedWidthDefault", 0, "default Roi z width"};

◆ m_startStampKey

SG::WriteHandleKey<TrigTimeStamp> HLTSeeding::m_startStampKey
private
Initial value:
{
this, "StartStampKey", "HLTSeedingStart", "Object with the time stamp when decoding started" }

Definition at line 55 of file HLTSeeding.h.

55 {
56 this, "StartStampKey", "HLTSeedingStart", "Object with the time stamp when decoding started" };

◆ m_summaryKey

SG::WriteHandleKey<TrigCompositeUtils::DecisionContainer> HLTSeeding::m_summaryKey
private
Initial value:
{
this, "HLTSeedingSummaryKey", "HLTSeedingSummary", "Chains status after L1 and prescaling"}

Definition at line 52 of file HLTSeeding.h.

52 {
53 this, "HLTSeedingSummaryKey", "HLTSeedingSummary", "Chains status after L1 and prescaling"};

◆ m_trigCostSvcHandle

ServiceHandle<ITrigCostSvc> HLTSeeding::m_trigCostSvcHandle
private
Initial value:
{
this, "TrigCostSvc", "TrigCostSvc", "The trigger cost service" }

Definition at line 74 of file HLTSeeding.h.

74 {
75 this, "TrigCostSvc", "TrigCostSvc", "The trigger cost service" };

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files: