ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
xAODMaker::TrigDecisionCnvTool Class Reference

Implementation of the ITrigDecisionCnvTool interface. More...

#include <TrigDecisionCnvTool.h>

Inheritance diagram for xAODMaker::TrigDecisionCnvTool:
Collaboration diagram for xAODMaker::TrigDecisionCnvTool:

Public Member Functions

 TrigDecisionCnvTool (const std::string &type, const std::string &name, const IInterface *parent)
 Regular AlgTool constructor. More...
 
virtual ~TrigDecisionCnvTool ()
 
virtual StatusCode initialize () override
 Function initialising the tool. More...
 
virtual StatusCode convert (const TrigDec::TrigDecision *aod, xAOD::TrigDecision *xaod, const TriggerInfo *level1TriggerInfo) const final
 Function filling an xAOD::TrigDecision object with information. More...
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 Gaudi interface definition. More...
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
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. More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Static Private Member Functions

static StatusCode setBit (std::vector< uint32_t > &bitset, uint32_t chainId, bool value=true)
 Function setting the status of one bit in a bitset. More...
 

Private Attributes

PublicToolHandle< Trig::TrigDecisionToolm_tdt
 Connection to the TrigDecisionTool. More...
 
ServiceHandle< TrigConf::IHLTConfigSvcm_trigconf
 Connection to the HLT configuration. More...
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Implementation of the ITrigDecisionCnvTool interface.

   This tool copies the contents of the "old" TrigDec::TrigDecision
   object into an xAOD::TrigDecision one.
Author
Attila Krasznahorkay Attil.nosp@m.a.Kr.nosp@m.aszna.nosp@m.hork.nosp@m.ay@ce.nosp@m.rn.c.nosp@m.h

Definition at line 35 of file TrigDecisionCnvTool.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ TrigDecisionCnvTool()

xAODMaker::TrigDecisionCnvTool::TrigDecisionCnvTool ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Regular AlgTool constructor.

Definition at line 72 of file TrigDecisionCnvTool.cxx.

75  : AthAlgTool( type, name, parent ) {
76 
77  // Declare the interface(s) provided by the tool:
78  declareInterface< ITrigDecisionCnvTool >( this );
79  }

◆ ~TrigDecisionCnvTool()

xAODMaker::TrigDecisionCnvTool::~TrigDecisionCnvTool ( )
virtual

Definition at line 82 of file TrigDecisionCnvTool.cxx.

82  {
83  }

Member Function Documentation

◆ convert()

StatusCode xAODMaker::TrigDecisionCnvTool::convert ( const TrigDec::TrigDecision aod,
xAOD::TrigDecision xaod,
const TriggerInfo triggerInfo 
) const
finalvirtual

Function filling an xAOD::TrigDecision object with information.

This is the important function of the tool.

It takes an existing TrigDec::TrigDecision object, and copies its contents into a new xAOD::TrigDecision object.

Parameters
aodThe AOD object to take the information from
xaodThe xAOD object to fill the information into
Returns
StatusCode::SUCCESS if all went fine, something else if not

Implements xAODMaker::ITrigDecisionCnvTool.

Definition at line 108 of file TrigDecisionCnvTool.cxx.

109  {
110 
111  ATH_MSG_DEBUG( "converting TrigDecision to xAOD::TrigDecision" );
112 
113  // Copy the trigger configuration key:
114  xaod->setSMK( aod->masterKey() );
115 
116  // Copy the LVL1 information:
117  xaod->setBGCode( aod->BGCode() );
118  ATH_MSG_DEBUG( "converting BGCode " << std::hex << (unsigned int) aod->BGCode() << " (size " << sizeof(aod->BGCode()) << "|" << sizeof(xaod->bgCode()) << ")" );
119 
120  if( aod->getL1Result().isConfigured() ) {
121  ATH_MSG_DEBUG( "setting L1 info from old TrigDecision");
122  xaod->setTAV( aod->getL1Result().itemsAfterVeto() );
123  xaod->setTAP( aod->getL1Result().itemsAfterPrescale() );
124  xaod->setTBP( aod->getL1Result().itemsBeforePrescale() );
125  } else if( triggerInfo != nullptr ){
126  ATH_MSG_DEBUG( "setting L1 info from TriggerInfo (l1 size " << triggerInfo->level1TriggerInfo().size() << ")" );
127 
128  uint32_t L1SIZE = triggerInfo->level1TriggerInfo().size()/3;
129  std::vector<uint32_t>::const_iterator begin, end;
130 
131  begin = triggerInfo->level1TriggerInfo().begin();
132  end = begin;
133  std::advance(end,L1SIZE);
134  std::vector<uint32_t> tbp(begin,end);
135 
136  begin = end;
137  std::advance(end,L1SIZE);
138  std::vector<uint32_t> tap(begin,end);
139 
140  begin = end;
141  std::advance(end,L1SIZE);
142  std::vector<uint32_t> tav(begin,end);
143 
144  xaod->setTAV( tav );
145  xaod->setTAP( tap );
146  xaod->setTBP( tbp );
147 
148  ATH_MSG_DEBUG( "TBP size = " << xaod->tbp().size() );
149  ATH_MSG_DEBUG( "TAP size = " << xaod->tap().size() );
150  ATH_MSG_DEBUG( "TAV size = " << xaod->tav().size() );
151 
152  } else {
153 
154  ATH_MSG_DEBUG( "can not set L1 info as the old TrigDecision has no L1Result and there is no TriggerInfo available");
155 
156  }
157 
158  // Copy the basic HLT information:
159  xaod->setLVL2ErrorBits( aod->getL2Result().error_bits() );
160  xaod->setEFErrorBits ( aod->getEFResult().error_bits() );
163 
164  //
165  // Construct the HLT decision bits using the TDT.
166  //
167 
168  // The LVL2 bitsets:
169  std::vector< uint32_t > l2PassedPhysics( BITSET_SIZE, 0 );
170  std::vector< uint32_t > l2PassedRaw ( BITSET_SIZE, 0 );
171  std::vector< uint32_t > l2PassedThrough( BITSET_SIZE, 0 );
172  std::vector< uint32_t > l2Prescaled ( BITSET_SIZE, 0 );
173  std::vector< uint32_t > l2Resurrected ( BITSET_SIZE, 0 );
174 
175  // The EF bitsets:
176  std::vector< uint32_t > efPassedPhysics( BITSET_SIZE, 0 );
177  std::vector< uint32_t > efPassedRaw ( BITSET_SIZE, 0 );
178  std::vector< uint32_t > efPassedThrough( BITSET_SIZE, 0 );
179  std::vector< uint32_t > efPrescaled ( BITSET_SIZE, 0 );
180  std::vector< uint32_t > efResurrected ( BITSET_SIZE, 0 );
181 
182  // Get a list of all the HLT chains:
183  const TrigConf::HLTChainList& chains = m_trigconf->chains();
184 
185  // Loop over all the chains:
186  TrigConf::HLTChainList::const_iterator chain_itr = chains.begin();
187  TrigConf::HLTChainList::const_iterator chain_end = chains.end();
188  for( ; chain_itr != chain_end; ++chain_itr ) {
189 
190  // Decide whether to care about the chain or not:
191  if( static_cast< uint32_t >( ( *chain_itr )->chain_counter() )
192  >= MAXIMUM_CHAIN_ID ) {
193  continue;
194  }
195 
196  // Create chain group (no regex parsing for speed)
197  const Trig::ChainGroup* group = m_tdt->getChainGroup( ( *chain_itr )->chain_name(),
199  // Get the decision for the chain:
200  const uint32_t bits = m_tdt->isPassedBits(group);
201 
202  // Decide which level the chain is from:
203  if( ( *chain_itr )->level_enum() == TrigConf::L2 ) {
204  // Set the different decisions:
205  CHECK( setBit( l2PassedPhysics, ( *chain_itr )->chain_counter(),
206  m_tdt->isPassed( group, TrigDefs::Physics ) ) );
207  CHECK( setBit( l2PassedRaw, ( *chain_itr )->chain_counter(),
208  ( bits & TrigDefs::L2_passedRaw ) ) );
209  CHECK( setBit( l2PassedThrough, ( *chain_itr )->chain_counter(),
210  ( bits & TrigDefs::L2_passThrough ) ) );
211  CHECK( setBit( l2Prescaled, ( *chain_itr )->chain_counter(),
212  ( bits & TrigDefs::L2_prescaled ) ) );
213  CHECK( setBit( l2Resurrected, ( *chain_itr )->chain_counter(),
214  ( bits & TrigDefs::L2_resurrected ) ) );
215  }
216  // EF and HLT results are treated the same:
217  else {
218  // Set the different decisions:
219  CHECK( setBit( efPassedPhysics, ( *chain_itr )->chain_counter(),
220  m_tdt->isPassed( group, TrigDefs::Physics ) ) );
221  CHECK( setBit( efPassedRaw, ( *chain_itr )->chain_counter(),
222  ( bits & TrigDefs::EF_passedRaw ) ) );
223  CHECK( setBit( efPassedThrough, ( *chain_itr )->chain_counter(),
224  ( bits & TrigDefs::EF_passThrough ) ) );
225  CHECK( setBit( efPrescaled, ( *chain_itr )->chain_counter(),
226  ( bits & TrigDefs::EF_prescaled ) ) );
227  CHECK( setBit( efResurrected, ( *chain_itr )->chain_counter(),
228  ( bits & TrigDefs::EF_resurrected ) ) );
229  }
230  }
231 
232  // Put the bit-patterns into the output object:
233  xaod->setLVL2PassedPhysics( l2PassedPhysics );
234  xaod->setLVL2PassedRaw ( l2PassedRaw );
235  xaod->setLVL2PassedThrough( l2PassedThrough );
236  xaod->setLVL2Prescaled ( l2Prescaled );
237  xaod->setLVL2Resurrected ( l2Resurrected );
238  xaod->setEFPassedPhysics( efPassedPhysics );
239  xaod->setEFPassedRaw ( efPassedRaw );
240  xaod->setEFPassedThrough( efPassedThrough );
241  xaod->setEFPrescaled ( efPrescaled );
242  xaod->setEFResurrected ( efResurrected );
243 
244  // Return gracefully:
245  return StatusCode::SUCCESS;
246  }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

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

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

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

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

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

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

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

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

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

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

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

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

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( ) const
inlineinherited

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

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::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

◆ initialize()

StatusCode xAODMaker::TrigDecisionCnvTool::initialize ( )
overridevirtual

Function initialising the tool.

Definition at line 86 of file TrigDecisionCnvTool.cxx.

86  {
87 
88  ATH_MSG_INFO( "Using TrigConfigSvc: " << m_trigconf.typeAndName() );
89 
90  // Retrieve the needed component(s):
91  CHECK( m_tdt.retrieve() );
92  CHECK( m_trigconf.retrieve() );
93 
94  // Return gracefully:
95  return StatusCode::SUCCESS;
96  }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::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.

◆ interfaceID()

static const InterfaceID& xAODMaker::ITrigDecisionCnvTool::interfaceID ( )
inlinestaticinherited

Gaudi interface definition.

Definition at line 51 of file ITrigDecisionCnvTool.h.

51  {
52  return IID_ITrigDecisionCnvTool;
53  }

◆ msg() [1/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::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< AlgTool > >::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< AlgTool > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ setBit()

StatusCode xAODMaker::TrigDecisionCnvTool::setBit ( std::vector< uint32_t > &  bitset,
uint32_t  chainId,
bool  value = true 
)
staticprivate

Function setting the status of one bit in a bitset.

Definition at line 248 of file TrigDecisionCnvTool.cxx.

249  {
250 
251  // Check if the operation will be successful:
252  if( ( chainId >= MAXIMUM_CHAIN_ID ) ||
253  ( bitset.size() < BITSET_SIZE ) ) {
254  return StatusCode::FAILURE;
255  }
256 
257  // Decide which bit to modify exactly:
258  const size_t word = chainId / 32;
259  const size_t bit = chainId % 32;
260 
261  if( value ) {
262  // Turn the bit on:
263  bitset[ word ] = bitset[ word ] | ( 0x1 << bit );
264  } else {
265  // Turn the bit off:
266  bitset[ word ] = bitset[ word ] & ( ~ ( 0x1 << bit ) );
267  }
268 
269  // Everything went fine:
270  return StatusCode::SUCCESS;
271  }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::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< AlgTool > >::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) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_tdt

PublicToolHandle< Trig::TrigDecisionTool > xAODMaker::TrigDecisionCnvTool::m_tdt
private
Initial value:
{this, "TrigDecisionTool",
"Trig::TrigDecisionTool/TrigDecisionTool"}

Connection to the TrigDecisionTool.

Definition at line 59 of file TrigDecisionCnvTool.h.

◆ m_trigconf

ServiceHandle< TrigConf::IHLTConfigSvc > xAODMaker::TrigDecisionCnvTool::m_trigconf
private
Initial value:
{this, "TrigConfigSvc",
"TrigConf::xAODConfigSvc/xAODConfigSvc"}

Connection to the HLT configuration.

Definition at line 62 of file TrigDecisionCnvTool.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
xAOD::TrigDecision_v1::setSMK
void setSMK(uint32_t value)
Set the Super Master Key describing this object.
xAOD::TrigDecision_v1::setLVL2ErrorBits
void setLVL2ErrorBits(uint32_t value)
Set a summary of all errors that happened during the LVL2 execution.
xAOD::TrigDecision_v1::setEFPassedPhysics
void setEFPassedPhysics(const std::vector< uint32_t > &value)
Set the EF physics decision bits.
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
TrigConf::L2
@ L2
Definition: HLTLevel.h:12
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
xAOD::TrigDecision_v1::setLVL2PassedRaw
void setLVL2PassedRaw(const std::vector< uint32_t > &value)
Set the LVL2 passed-raw bits.
PlotCalibFromCool.begin
begin
Definition: PlotCalibFromCool.py:94
LVL1CTP::Lvl1Result::isConfigured
bool isConfigured() const
is LVL1 configured ?
Definition: Lvl1Result.h:39
xAOD::TrigDecision_v1::setEFTruncated
void setEFTruncated(bool value)
Set whether the EF result is truncated.
TrigDec::TrigDecision::masterKey
uint32_t masterKey() const
Definition: Trigger/TrigEvent/TrigDecisionEvent/TrigDecisionEvent/TrigDecision.h:85
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
xAOD::TrigDecision_v1::tav
const std::vector< uint32_t > & tav() const
Get the Trigger After Veto bits.
athena.value
value
Definition: athena.py:122
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
xAOD::tap
setBGCode tap
Definition: TrigDecision_v1.cxx:43
xAOD::TrigDecision_v1::setLVL2PassedThrough
void setLVL2PassedThrough(const std::vector< uint32_t > &value)
Set the LVL2 pass-through bits.
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
LVL1CTP::Lvl1Result::itemsBeforePrescale
const std::vector< uint32_t > & itemsBeforePrescale() const
Definition: Lvl1Result.h:55
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
LVL1CTP::Lvl1Result::itemsAfterVeto
const std::vector< uint32_t > & itemsAfterVeto() const
Definition: Lvl1Result.h:57
TriggerInfo::level1TriggerInfo
const std::vector< number_type > & level1TriggerInfo() const
get level1 trigger info
Definition: TriggerInfo.cxx:143
xAOD::TrigDecision_v1::setEFPassedThrough
void setEFPassedThrough(const std::vector< uint32_t > &value)
Set the EF pass-through bits.
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
TrigDec::TrigDecision::BGCode
char BGCode() const
Definition: Trigger/TrigEvent/TrigDecisionEvent/TrigDecisionEvent/TrigDecision.h:86
TrigConf::HLTChainList
list of all HLT chains in a trigger menu
Definition: HLTChainList.h:56
xAOD::TrigDecision_v1::setTAP
void setTAP(const std::vector< uint32_t > &value)
Set the Trigger After Prescale bits.
HLT::HLTResult::isHLTResultTruncated
bool isHLTResultTruncated() const
is serialized HLTResult truncated
Definition: HLTResult.h:248
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
xAOD::TrigDecision_v1::setTBP
void setTBP(const std::vector< uint32_t > &value)
Set the Trigger Before Prescale bits.
test_pyathena.parent
parent
Definition: test_pyathena.py:15
TrigDefs::Group::NoRegex
@ NoRegex
Do not use regular expressions.
HLT::HLTResult::error_bits
virtual uint32_t error_bits() const
bit flags to explain problems during processing
Definition: HLTResult.cxx:106
TrigDec::TrigDecision::getL1Result
const LVL1CTP::Lvl1Result & getL1Result() const
Definition: Trigger/TrigEvent/TrigDecisionEvent/TrigDecisionEvent/TrigDecision.h:88
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
xAOD::TrigDecision_v1::setTAV
void setTAV(const std::vector< uint32_t > &value)
Set the Trigger After Veto bits.
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
xAOD::TrigDecision_v1::setLVL2Resurrected
void setLVL2Resurrected(const std::vector< uint32_t > &value)
Set the LVL2 resurrected bits.
xAOD::TrigDecision_v1::setEFErrorBits
void setEFErrorBits(uint32_t value)
Set a summary of all errors that happened during the EF execution.
xAODMaker::TrigDecisionCnvTool::m_trigconf
ServiceHandle< TrigConf::IHLTConfigSvc > m_trigconf
Connection to the HLT configuration.
Definition: TrigDecisionCnvTool.h:62
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
Trig::ChainGroup
Definition: Trigger/TrigAnalysis/TrigDecisionTool/TrigDecisionTool/ChainGroup.h:51
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
TrigDec::TrigDecision::getEFResult
const HLT::HLTResult & getEFResult() const
Definition: TrigDecision.cxx:118
xAOD::TrigDecision_v1::tap
const std::vector< uint32_t > & tap() const
Get the Trigger After Prescale bits.
xAOD::TrigDecision_v1::setEFPrescaled
void setEFPrescaled(const std::vector< uint32_t > &value)
Set the EF prescaled bits.
xAOD::TrigDecision_v1::bgCode
char bgCode() const
Get the bunch group code of the current event.
python.copyTCTOutput.chains
chains
Definition: copyTCTOutput.py:81
a
TList * a
Definition: liststreamerinfos.cxx:10
CaloLCW_tf.group
group
Definition: CaloLCW_tf.py:28
h
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
xAOD::TrigDecision_v1::setEFPassedRaw
void setEFPassedRaw(const std::vector< uint32_t > &value)
Set the EF passed-raw bits.
xAODMaker::TrigDecisionCnvTool::m_tdt
PublicToolHandle< Trig::TrigDecisionTool > m_tdt
Connection to the TrigDecisionTool.
Definition: TrigDecisionCnvTool.h:59
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
xAOD::TrigDecision_v1::setLVL2PassedPhysics
void setLVL2PassedPhysics(const std::vector< uint32_t > &value)
Set the LVL2 physics decision bits.
xAOD::TrigDecision_v1::setLVL2Prescaled
void setLVL2Prescaled(const std::vector< uint32_t > &value)
Set the LVL2 prescaled bits.
xAOD::TrigDecision_v1::tbp
const std::vector< uint32_t > & tbp() const
Get the Trigger Before Prescale bits.
xAOD::TrigDecision_v1::setBGCode
void setBGCode(char value)
Set the bunch group code of the current event.
xAOD::TrigDecision_v1::setEFResurrected
void setEFResurrected(const std::vector< uint32_t > &value)
Set the EF resurrected bits.
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
TrigDec::TrigDecision::getL2Result
const HLT::HLTResult & getL2Result() const
Definition: TrigDecision.cxx:107
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
xAOD::TrigDecision_v1::setLVL2Truncated
void setLVL2Truncated(bool value)
Set whether the LVL2 result is truncated.
xAODMaker::TrigDecisionCnvTool::setBit
static StatusCode setBit(std::vector< uint32_t > &bitset, uint32_t chainId, bool value=true)
Function setting the status of one bit in a bitset.
Definition: TrigDecisionCnvTool.cxx:248
fitman.k
k
Definition: fitman.py:528
LVL1CTP::Lvl1Result::itemsAfterPrescale
const std::vector< uint32_t > & itemsAfterPrescale() const
Definition: Lvl1Result.h:56