ATLAS Offline Software
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
RoIBResultToxAOD Class Reference

RoIB result to xAOD converter. More...

#include <RoIBResultToxAOD.h>

Inheritance diagram for RoIBResultToxAOD:
Collaboration diagram for RoIBResultToxAOD:

Public Member Functions

 RoIBResultToxAOD (const std::string &name, ISvcLocator *svcLoc)
 Algorithm constructor. More...
 
virtual StatusCode sysInitialize () override
 Override sysInitialize. More...
 
virtual unsigned int cardinality () const override
 Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. More...
 
virtual StatusCode sysExecute (const EventContext &ctx) override
 Execute an algorithm. More...
 
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies. More...
 
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. 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 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
 
Function(s) implementing the @c Algorithm interface
virtual bool isClonable () const override
 Declare that the algorithm is clonable. More...
 
virtual StatusCode initialize () override
 Function initialising the algorithm. More...
 
virtual StatusCode execute (const EventContext &ctx) const override
 Function executing the algorithm. 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

StatusCode createEmTauRoI (const ROIB::RoIBResult &roib, const EventContext &ctx) const
 Create the EmTau RoI objects. More...
 
StatusCode createJetEnergyRoI (const ROIB::RoIBResult &roib, const EventContext &ctx) const
 Create the JetEnergy RoI object. More...
 
StatusCode createMuonRoI (const ROIB::RoIBResult &roib, const EventContext &ctx) const
 Create the Muon RoI objects. More...
 
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...
 

Private Attributes

DataObjIDColl m_extendedExtraObjects
 Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks. 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
 
Services
ToolHandle< LVL1::ITrigT1MuonRecRoiToolm_recRPCRoiTool { this, "RecRpcRoiTool", "LVL1::TrigT1RPCRecRoiTool/TrigT1RPCRecRoiTool"}
 The RPC RoI reconstruction tool. More...
 
ToolHandle< LVL1::ITrigT1MuonRecRoiToolm_recTGCRoiTool
 The TGC RoI reconstruction service. More...
 
Tools
ToolHandle< LVL1::IL1CPMToolsm_emTauTool
 Tool for calculation of EmTau trigger sums per RoI. More...
 
ToolHandle< LVL1::IL1JEMJetToolsm_jetTool
 Tool for calculation of Jet cluster sums per RoI. More...
 
Read handle keys
SG::ReadHandleKey< ROIB::RoIBResultm_roibResultKey
 Read key for the ROIB::RoIBResult object. More...
 
SG::ReadHandleKey< xAOD::CPMTowerContainerm_cpmTowerKey
 Read key for the xAOD::CPMTowerContainer object. More...
 
SG::ReadHandleKey< xAOD::JetElementContainerm_jetElementKey
 Read key for the xAOD::JetElementContainer object. More...
 
Write handle keys
SG::WriteHandleKey< xAOD::MuonRoIContainerm_muonRoIKey
 Write key for the xAOD::MuonRoIContainer object. More...
 
SG::WriteHandleKey< xAOD::EmTauRoIContainerm_emtauRoIKey
 Write key for the xAOD::EmTauRoIContainer object. More...
 
SG::WriteHandleKey< xAOD::EnergySumRoIm_energysumRoIKey
 Write key for the xAOD::EnergySumRoI object. More...
 
SG::WriteHandleKey< xAOD::JetEtRoIm_jetetRoIKey
 Write key for the xAOD::JetEtRoI object. More...
 
SG::WriteHandleKey< xAOD::JetRoIContainerm_jetRoIKey
 Write key for the xAOD::JetRoIContainer object. More...
 
Other properties

Use inputs from the Calo system

Gaudi::Property< bool > m_doCalo
 
Gaudi::Property< bool > m_doMuon
 Use inputs from the Muon system. More...
 
Gaudi::Property< std::vector< std::string > > m_egammaItem
 List of LVL1 items for e/gamma trigger type. More...
 
Gaudi::Property< std::vector< std::string > > m_tauhadItem
 List of LVL1 items for tau trigger type. More...
 
Gaudi::Property< std::vector< std::string > > m_jetItem
 List of LVL1 items for jet trigger type. More...
 
Gaudi::Property< std::vector< std::string > > m_esumItem
 List of LVL1 items for energy sum trigger type. More...
 
Gaudi::Property< std::vector< std::string > > m_highmuItem
 List of LVL1 items for high pt muon trigger type. More...
 
Gaudi::Property< std::vector< std::string > > m_lowmuItem
 List of LVL1 items for low pt muon trigger type. More...
 

Detailed Description

RoIB result to xAOD converter.

The RoIBResultToxAOD algorithm builds the xAOD analysis objects from the LVL1 ROIB::RoIBResult object.

Author
Tadashi Maeno Tadas.nosp@m.hi.M.nosp@m.aeno@.nosp@m.cern.nosp@m..ch
Attila Kraznahorkay Jr. Attil.nosp@m.a.Kr.nosp@m.aszna.nosp@m.hork.nosp@m.ay@ce.nosp@m.rn.c.nosp@m.h
Alan Watson Alan..nosp@m.Wats.nosp@m.on@ce.nosp@m.rn.c.nosp@m.h
Wolfgang Ehrenfeld Wolfg.nosp@m.ang..nosp@m.Menge.nosp@m.s@de.nosp@m.sy.de

Definition at line 43 of file RoIBResultToxAOD.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

◆ RoIBResultToxAOD()

RoIBResultToxAOD::RoIBResultToxAOD ( const std::string &  name,
ISvcLocator *  svcLoc 
)

Algorithm constructor.

Definition at line 43 of file RoIBResultToxAOD.cxx.

45  : AthReentrantAlgorithm( name, svcLoc )
46 {}

Member Function Documentation

◆ cardinality()

unsigned int AthReentrantAlgorithm::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.

Override this to return 0 for reentrant algorithms.

Definition at line 55 of file AthReentrantAlgorithm.cxx.

56 {
57  return 0;
58 }

◆ createEmTauRoI()

StatusCode RoIBResultToxAOD::createEmTauRoI ( const ROIB::RoIBResult roib,
const EventContext &  ctx 
) const
private

Create the EmTau RoI objects.

Create the xAOD container.

Definition at line 124 of file RoIBResultToxAOD.cxx.

125  {
126 
127  // Tell the user what's happening.
128  ATH_MSG_DEBUG( "building EmTauRoI" );
129 
131  auto emtau_xaod = std::make_unique< xAOD::EmTauRoIContainer >();
132  auto emtau_aux = std::make_unique< xAOD::EmTauRoIAuxContainer >();
133  emtau_xaod->setStore( emtau_aux.get() );
134 
135  const TrigConf::L1Menu * l1menu = nullptr;
136  std::map< int, std::string > emThresholdNames;
137  std::map< int, std::string > tauThresholdNames;
138 
140  // Digit scale for calorimeter trigger
141  float caloTrigScale = static_cast<float>(l1menu->thrExtraInfo().EM().resolutionMeV());
142  for( const auto& thr : l1menu->thresholds("EM")) {
143  emThresholdNames[ thr->mapping() ] = thr->name();
144  }
145  for( const auto& thr : l1menu->thresholds("TAU")) {
146  tauThresholdNames[ thr->mapping() ] = thr->name();
147  }
148 
149  // Tool to reconstruct EM/tau cluster & isolation sums
150  // - need to form tower map for RoI reconstruction
151  xAOD::CPMTowerMap_t cpmtowers;
152  if( m_emTauTool.isEnabled() && ( ! m_cpmTowerKey.key().empty() ) ) {
153  auto cpmTower = SG::makeHandle( m_cpmTowerKey, ctx );
154  if (cpmTower.isValid()) {
155  m_emTauTool->mapTowers( cpmTower.cptr(), &cpmtowers );
156  } else {
157  ATH_MSG_DEBUG( "No CPMTowerCollection found at " << m_cpmTowerKey.key() );
158  }
159  }
160 
161  // reconstruct ROI
162  ATH_MSG_DEBUG( "EmTau ROI" );
163  for( const ROIB::EMTauResult& emtResult : result.eMTauResult() ) {
164  for( const ROIB::EMTauRoI& emtRoI : emtResult.roIVec() ) {
165 
166  uint32_t roIWord = emtRoI.roIWord();
167  ATH_MSG_DEBUG( "About to create RecEmTauRoI : " << MSG::hex
168  << std::setw( 8 ) << roIWord << MSG::dec );
169 
170  // RecRoI
171  LVL1::RecEmTauRoI recRoI( roIWord, l1menu );
172 
173  // xAOD component
174  // ATLAS standard phi convention differs from L1 hardware convention
175  double roiPhi = recRoI.phi();
176  if( roiPhi > M_PI ) roiPhi -= 2 * M_PI;
177 
178  xAOD::EmTauRoI* roi = new xAOD::EmTauRoI();
179  emtau_xaod->push_back( roi );
180  roi->initialize( roIWord, recRoI.eta(), roiPhi );
181  roi->setEtScale( caloTrigScale );
182  roi->setThrPattern( recRoI.thresholdPattern() );
183 
184  // fired thresholds
185  std::unique_ptr< std::vector< unsigned int > > thrV( recRoI.thresholdsPassed() );
186  for( unsigned int thr : *thrV ) {
187  const float thrValue = recRoI.triggerThreshold( thr ) * GeV;
188  auto thrType = recRoI.thresholdType( thr );
189  auto emNameItr = emThresholdNames.find( thr );
190  auto tauNameItr = tauThresholdNames.find( thr );
191  std::string thrName = "NameNotFound";
192  if( ( thrType == LVL1::TrigT1CaloDefs::EMAlg ) &&
193  ( emNameItr != emThresholdNames.end() ) ) {
194  thrName = emNameItr->second;
195  }
196  else if( ( thrType == LVL1::TrigT1CaloDefs::TauAlg ) &&
197  ( tauNameItr != tauThresholdNames.end() ) ) {
198  thrName = tauNameItr->second;
199  }
200 
201  roi->addThreshold( thrName, thrValue );
202 
203  ATH_MSG_DEBUG( "EmTau Thr : " << thr << ", name = " << thrName
204  << ", value = " << thrValue );
205  }
206 
207  // Cluster ET values, reconstructed from TriggerTowers
208  if( m_emTauTool.isEnabled() ) {
209  LVL1::CPMTobAlgorithm roiSums = m_emTauTool->formSums(l1menu, roIWord, &cpmtowers );
210  roi->setCore( roiSums.CoreET() * caloTrigScale );
211  roi->setEmClus( roiSums.EMClusET() * caloTrigScale );
212  roi->setTauClus( roiSums.TauClusET() * caloTrigScale );
213  roi->setEmIsol( roiSums.EMIsolET() * caloTrigScale );
214  roi->setHadIsol( roiSums.HadIsolET() * caloTrigScale );
215  roi->setHadCore( roiSums.HadCoreET() * caloTrigScale );
216  }
217  }
218  }
219 
220  // Record the results.
221  auto emtauRoI = SG::makeHandle( m_emtauRoIKey, ctx );
222  ATH_CHECK( emtauRoI.record( std::move( emtau_xaod ),
223  std::move( emtau_aux ) ) );
224 
225  // Return gracefully.
226  return StatusCode::SUCCESS;
227 }

◆ createJetEnergyRoI()

StatusCode RoIBResultToxAOD::createJetEnergyRoI ( const ROIB::RoIBResult roib,
const EventContext &  ctx 
) const
private

Create the JetEnergy RoI object.

Record the results

Definition at line 230 of file RoIBResultToxAOD.cxx.

231  {
232 
233  ATH_MSG_DEBUG( "building JetEnergyRoI" );
234 
235  // Containers for xAOD
236  auto jet_xaod = std::make_unique< xAOD::JetRoIContainer >();
237  auto jet_aux = std::make_unique< xAOD::JetRoIAuxContainer >();
238  jet_xaod->setStore( jet_aux.get() );
239 
240  auto esum_xaod = std::make_unique< xAOD::EnergySumRoI >();
241  auto esum_aux = std::make_unique< xAOD::EnergySumRoIAuxInfo >();
242  esum_xaod->setStore( esum_aux.get() );
243 
244  auto jetet_xaod = std::make_unique< xAOD::JetEtRoI >();
245  auto jetet_aux = std::make_unique< xAOD::JetEtRoIAuxInfo >();
246  jetet_xaod->setStore( jetet_aux.get() );
247 
248  const TrigConf::L1Menu * l1menu = nullptr;
250 
251  // Digit scale for calorimeter trigger
252  float caloTrigScale = static_cast<float>(l1menu->thrExtraInfo().JET().resolutionMeV());
253  ATH_MSG_DEBUG( "caloTrigScale = " << caloTrigScale );
254 
255  // Fill maps of threshold names
256  std::map<int, std::string> jetNames;
257  std::map<int, std::string> jfNames;
258  std::map<int, std::string> jbNames;
259  std::map<int, std::string> xeNames;
260  std::map<int, std::string> teNames;
261  std::map<int, std::string> xsNames;
262  std::map<int, std::string> jeNames;
263  for( const auto& thr : l1menu->thresholds("JET")) {
264  jetNames[ thr->mapping() ] = thr->name();
265  }
266  for( const auto& thr : l1menu->thresholds("XE")) {
267  xeNames[ thr->mapping() ] = thr->name();
268  }
269  for( const auto& thr : l1menu->thresholds("TE")) {
270  teNames[ thr->mapping() ] = thr->name();
271  }
272  for( const auto& thr : l1menu->thresholds("XS")) {
273  xsNames[ thr->mapping() ] = thr->name();
274  }
275 
276  // Tool to reconstruct Jet cluster ET sums
277  // - form input map ready for analysis
278  std::map< int, LVL1::JetInput* > jetInputs;
279  if( m_jetTool.isEnabled() && ( ! m_jetElementKey.key().empty() ) ) {
280  auto jetElement = SG::makeHandle( m_jetElementKey, ctx );
281  if (jetElement.isValid()) {
282  m_jetTool->mapJetInputs( jetElement.cptr(), &jetInputs );
283  } else {
284  ATH_MSG_DEBUG( "No JetElementContainer found at " << m_jetElementKey.key() );
285  }
286  }
287  std::vector< std::unique_ptr< LVL1::JetInput > > jetInputsHolder;
288  for( auto pair : jetInputs ) {
289  jetInputsHolder.emplace_back( pair.second );
290  }
291 
292  // reconstruct ROI
293  for( const ROIB::JetEnergyResult& jeteResult : result.jetEnergyResult() ) {
294  auto itJET = jeteResult.roIVec().begin();
295  auto endJET = jeteResult.roIVec().end();
296  for( ; itJET != endJET; ++itJET ) {
297 
298  const uint32_t roIWord = itJET->roIWord();
299 
300  ATH_MSG_DEBUG( "Jet RoI, RoIWord = " << MSG::hex << std::setw( 8 )
301  << roIWord << MSG::dec );
302 
303  // RoI type
305  const int roiType = conv.roiType( roIWord );
306 
307  // Jet ROI
308  if( roiType == LVL1::TrigT1CaloDefs::JetRoIWordType ) {
309  // RecRoI
310  LVL1::RecJetRoI recRoI( roIWord, l1menu );
311 
312  // xAOD component
313  // Convert to ATLAS phi convention
314  double roiPhi = recRoI.phi();
315  if( roiPhi > M_PI ) roiPhi -= 2 * M_PI;
316 
317  xAOD::JetRoI* roi = new xAOD::JetRoI();
318  jet_xaod->push_back( roi );
319  roi->initialize( roIWord, recRoI.eta(), roiPhi );
320  roi->setEtScale( caloTrigScale );
321  roi->setThrPattern( recRoI.thresholdPattern() );
322 
323  // fired Jet thresholds
324  for( unsigned int thr : recRoI.thresholdsPassed() ) {
325 
326  const double thrValue = recRoI.triggerThreshold( thr ) * GeV;
327  auto jetNameItr = jetNames.find( thr );
328  auto jfNameItr = jfNames.find( thr );
329  auto jbNameItr = jbNames.find( thr );
330  std::string thrName = "NameNotFound";
331  if( ! recRoI.isForwardJet() ) {
332  if( jetNameItr != jetNames.end() ) {
333  thrName = jetNameItr->second;
334  }
335  }
336  else if( recRoI.eta() > 0 ) {
337  if( jfNameItr != jfNames.end() ) {
338  thrName = jfNameItr->second;
339  }
340  }
341  else {
342  if( jbNameItr != jbNames.end() ) {
343  thrName = jbNameItr->second;
344  }
345  }
346 
347  roi->addThreshold( thrName, thrValue );
348 
349  ATH_MSG_DEBUG( "Jet Thr : " << thrName
350  << ", value = " << thrValue );
351  }
352 
353  // Jet Cluster ET sums
354  if( m_jetTool.isEnabled() ) {
355  LVL1::JEMJetAlgorithm roiSums = m_jetTool->formSums( roIWord, &jetInputs );
356  roi->setEt4x4( roiSums.ET4x4() * caloTrigScale );
357  roi->setEt6x6( roiSums.ET6x6() * caloTrigScale );
358  roi->setEt8x8( roiSums.ET8x8() * caloTrigScale );
359  }
360 
361  }
362  // Jet ET ROI
363  else if( roiType == LVL1::TrigT1CaloDefs::JetEtRoIWordType ) {
364 
365  // xAOD component
366  jetet_xaod->setRoIWord( roIWord );
367 
368  // fired Jet ET thresholds
369  for( unsigned int i = 0;
371  if( ( roIWord >> i ) & 0x1 ) {
372  std::string thrName = "NameNotFound";
373  if (jeNames.find(i) != jeNames.end()) thrName = jeNames[i];
374  jetet_xaod->addThreshold( thrName );
375  ATH_MSG_DEBUG( "JetEt Thr : " << thrName );
376  }
377  }
378 
379  }
380  // EnergySum ROI
381  else if ( roiType == LVL1::TrigT1CaloDefs::EnergyRoIWordType0 ) {
382 
383  // Extract information and fill EnergySumRoI
384  const uint32_t roiWord0 = roIWord;
385  ATH_MSG_DEBUG( "ET RoIWord 0 : " << MSG::hex << std::setw( 8 )
386  << roiWord0 << MSG::dec );
387  ++itJET;
388  const uint32_t roiWord1 = itJET->roIWord();
389  ATH_MSG_DEBUG( "ET RoIWord 1 : " << MSG::hex << std::setw( 8 )
390  << roiWord1 << MSG::dec );
391  ++itJET;
392  const uint32_t roiWord2 = itJET->roIWord();
393  ATH_MSG_DEBUG( "ET RoIWord 2 : " << MSG::hex << std::setw( 8 )
394  << roiWord2 << MSG::dec );
395 
396  // RecRoI
397  LVL1::RecEnergyRoI recRoI( roiWord0, roiWord1, roiWord2, l1menu );
398 
399  // xAOD component
400  esum_xaod->initialize( roiWord0, roiWord1, roiWord2,
401  recRoI.energyX() * caloTrigScale,
402  recRoI.energyY() * caloTrigScale,
403  recRoI.energyT() * caloTrigScale );
404 
405  // fired summed ET thresholds
406  for( unsigned int thr : recRoI.etMissThresholdsPassed() ) {
407  auto xeNameItr = xeNames.find( thr - 1 );
408  const std::string thrName = ( xeNameItr != xeNames.end() ?
409  xeNameItr->second :
410  "NameNotFound" );
411  esum_xaod->addThreshold( thrName );
412  ATH_MSG_DEBUG( "ETmiss threshold : " << thrName );
413  }
414 
415  // fired missing ET thresholds
416  for( unsigned int thr : recRoI.sumEtThresholdsPassed() ) {
417  auto teNameItr = teNames.find( thr - 1 );
418  const std::string thrName = ( teNameItr != teNames.end() ?
419  teNameItr->second :
420  "NameNotFound" );
421  esum_xaod->addThreshold( thrName );
422  ATH_MSG_DEBUG( "SumET threshold : " << thrName );
423  }
424 
425  // fired missing ET significance thresholds
426  for( unsigned int thr : recRoI.mEtSigThresholdsPassed() ) {
427  auto xsNameItr = xsNames.find( thr - 1 );
428  const std::string thrName = ( xsNameItr != xsNames.end() ?
429  xsNameItr->second :
430  "NameNotFound" );
431  esum_xaod->addThreshold( thrName );
432  ATH_MSG_DEBUG( "METSig threshold : " << thrName );
433  }
434  }
435  }
436  }
437 
439  auto jetRoI = SG::makeHandle( m_jetRoIKey, ctx );
440  ATH_CHECK( jetRoI.record( std::move( jet_xaod ), std::move( jet_aux ) ) );
441 
442  auto jetetRoI = SG::makeHandle( m_jetetRoIKey, ctx );
443  ATH_CHECK( jetetRoI.record( std::move( jetet_xaod ),
444  std::move( jetet_aux ) ) );
445 
446  auto energysumRoI = SG::makeHandle( m_energysumRoIKey, ctx );
447  ATH_CHECK( energysumRoI.record( std::move( esum_xaod ),
448  std::move( esum_aux ) ) );
449 
450  // Return gracefully.
451  return StatusCode::SUCCESS;
452 }

◆ createMuonRoI()

StatusCode RoIBResultToxAOD::createMuonRoI ( const ROIB::RoIBResult roib,
const EventContext &  ctx 
) const
private

Create the Muon RoI objects.

Definition at line 454 of file RoIBResultToxAOD.cxx.

455  {
456 
457  ATH_MSG_DEBUG( "in buildMuonRoI()" );
458 
459  const TrigConf::L1Menu * l1menu = nullptr;
461 
462  // Create the xAOD container.
463  auto mu_xaod = std::make_unique< xAOD::MuonRoIContainer >();
464  auto mu_aux = std::make_unique< xAOD::MuonRoIAuxContainer >();
465  mu_xaod->setStore( mu_aux.get() );
466 
467 
468  std::vector< TrigConf::TriggerThreshold* > muonThresholds;
469  std::map< int, std::string > thresholdNames;
470  for( const auto& thr : l1menu->thresholds("MU")) {
471  thresholdNames[ thr->mapping() ] = thr->name();
472  }
473 
474  // get Muon ROI
475  const std::vector< ROIB::MuCTPIRoI >& muonRoIV =
476  result.muCTPIResult().roIVec();
477 
478  // reconstruct ROI
479  ATH_MSG_DEBUG( "Muon ROI" );
480  for( const ROIB::MuCTPIRoI& roi : muonRoIV ) {
481 
482  uint32_t roIWord = roi.roIWord();
483 
484  ATH_MSG_DEBUG( MSG::hex << std::setw( 8 ) << roIWord );
485 
486  // RecRoI
487  LVL1::RecMuonRoI recRoI( roIWord, m_recRPCRoiTool.get(), m_recTGCRoiTool.get(), l1menu );
488 
489  const double thrValue = recRoI.getThresholdValue() * GeV;
490  const int index = recRoI.getThresholdNumber() - 1;
491  auto thrNameItr = thresholdNames.find( index );
492  const std::string thrName = ( thrNameItr != thresholdNames.end() ?
493  thrNameItr->second :
494  "NameNotFound" );
495 
496  xAOD::MuonRoI* xaod_roi = new xAOD::MuonRoI();
497  mu_xaod->push_back( xaod_roi );
498  xaod_roi->initialize( roIWord, recRoI.eta(), recRoI.phi(), thrName,
499  thrValue );
500 
501  ATH_MSG_DEBUG( "Muon Thr : " << thrName << ", value = " << thrValue );
502  }
503 
504  // Record the muon RoIs.
505  auto muonRoI = SG::makeHandle( m_muonRoIKey, ctx );
506  ATH_CHECK( muonRoI.record( std::move( mu_xaod ), std::move( mu_aux ) ) );
507 
508  // Return gracefully.
509  return StatusCode::SUCCESS;
510 }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::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< 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.

95 { return m_detStore; }

◆ evtStore() [1/2]

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.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::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; }

◆ execute()

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

Function executing the algorithm.

Definition at line 97 of file RoIBResultToxAOD.cxx.

97  {
98 
99  // Tell the user what's happening.
100  ATH_MSG_DEBUG( "in execute()" );
101 
102  // Access the input object.
103  auto roibResult = SG::makeHandle( m_roibResultKey, ctx );
104  if (!roibResult.isValid()) {
105  ATH_MSG_ERROR("Failed to retrieve " << m_roibResultKey.key());
106  return StatusCode::FAILURE;
107  }
108 
109  // Create the muon RoIs:
110  if( m_doMuon ) {
111  ATH_CHECK( createMuonRoI( *roibResult, ctx ) );
112  }
113 
114  // Create the calo RoIs:
115  if( m_doCalo ) {
116  ATH_CHECK( createEmTauRoI( *roibResult, ctx ) );
117  ATH_CHECK( createJetEnergyRoI( *roibResult, ctx ) );
118  }
119 
120  // Return gracefully.
121  return StatusCode::SUCCESS;
122 }

◆ 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 & AthReentrantAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

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

Definition at line 79 of file AthReentrantAlgorithm.cxx.

80 {
81  // If we didn't find any symlinks to add, just return the collection
82  // from the base class. Otherwise, return the extended collection.
83  if (!m_extendedExtraObjects.empty()) {
85  }
86  return Algorithm::extraOutputDeps();
87 }

◆ filterPassed()

virtual bool AthReentrantAlgorithm::filterPassed ( const EventContext &  ctx) const
inlinevirtualinherited

Definition at line 135 of file AthReentrantAlgorithm.h.

135  {
136  return execState( ctx ).filterPassed();
137  }

◆ initialize()

StatusCode RoIBResultToxAOD::initialize ( )
overridevirtual

Function initialising the algorithm.

Definition at line 48 of file RoIBResultToxAOD.cxx.

48  {
49 
50  // Print system info.
51  if( m_doCalo == false ) {
52  ATH_MSG_INFO( "Inputs from LVL1 Calo systems switched off" );
53  }
54  if( m_doMuon == false ) {
55  ATH_MSG_INFO( "Inputs from LVL1 Muon systems switched off" );
56  }
57 
58  if( m_doMuon ) {
59  // Get the RPC RecRoI tool
60  ATH_CHECK( m_recRPCRoiTool.retrieve() );
61  ATH_MSG_DEBUG( "Connected to " << m_recRPCRoiTool.typeAndName() );
62 
63  // Get the TGC RecRoI tool
64  ATH_CHECK( m_recTGCRoiTool.retrieve() );
65  ATH_MSG_DEBUG( "Connected to " << m_recTGCRoiTool.typeAndName() );
66  } else {
67  m_recRPCRoiTool.disable();
68  m_recTGCRoiTool.disable();
69  }
70 
71  if( m_doCalo ) {
72  // Get tools
73  ATH_CHECK( m_emTauTool.retrieve() );
74  ATH_MSG_DEBUG( "Got " << m_emTauTool.typeAndName() );
75 
76  ATH_CHECK( m_jetTool.retrieve() );
77  ATH_MSG_DEBUG( "Got " << m_jetTool.typeAndName() );
78  } else {
79  m_emTauTool.disable();
80  m_jetTool.disable();
81  }
82 
83  // Initialise the keys.
85  ATH_CHECK( m_cpmTowerKey.initialize(SG::AllowEmpty) );
87  ATH_CHECK( m_muonRoIKey.initialize(m_doMuon) );
88  ATH_CHECK( m_emtauRoIKey.initialize(m_doCalo) );
89  ATH_CHECK( m_energysumRoIKey.initialize(m_doCalo) );
90  ATH_CHECK( m_jetetRoIKey.initialize(m_doCalo) );
91  ATH_CHECK( m_jetRoIKey.initialize(m_doCalo) );
92 
93  // Return gracefully.
94  return StatusCode::SUCCESS;
95 }

◆ 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()

virtual bool RoIBResultToxAOD::isClonable ( ) const
inlineoverridevirtual

Declare that the algorithm is clonable.

Reimplemented from AthReentrantAlgorithm.

Definition at line 53 of file RoIBResultToxAOD.h.

53 { return true; }

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

MsgStream& AthCommonMsg< Gaudi::Algorithm >::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< 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();
383  PBASE::renounce (h);
384  }

◆ 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  {
365  handlesArray.renounce();
366  }

◆ setFilterPassed()

virtual void AthReentrantAlgorithm::setFilterPassed ( bool  state,
const EventContext &  ctx 
) const
inlinevirtualinherited

Definition at line 139 of file AthReentrantAlgorithm.h.

139  {
140  execState( ctx ).setFilterPassed( state );
141  }

◆ sysExecute()

StatusCode AthReentrantAlgorithm::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 67 of file AthReentrantAlgorithm.cxx.

68 {
69  return Gaudi::Algorithm::sysExecute (ctx);
70 }

◆ sysInitialize()

StatusCode AthReentrantAlgorithm::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 InputMakerBase, and HypoBase.

Definition at line 96 of file AthReentrantAlgorithm.cxx.

96  {
98 
99  if (sc.isFailure()) {
100  return sc;
101  }
102 
103  ServiceHandle<ICondSvc> cs("CondSvc",name());
104  for (auto h : outputHandles()) {
105  if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
106  // do this inside the loop so we don't create the CondSvc until needed
107  if ( cs.retrieve().isFailure() ) {
108  ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
109  return StatusCode::SUCCESS;
110  }
111  if (cs->regHandle(this,*h).isFailure()) {
112  sc = StatusCode::FAILURE;
113  ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
114  << " with CondSvc");
115  }
116  }
117  }
118  return sc;
119 }

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

Member Data Documentation

◆ m_cpmTowerKey

SG::ReadHandleKey< xAOD::CPMTowerContainer > RoIBResultToxAOD::m_cpmTowerKey
private
Initial value:
{
this, "CPMTowerLocation", LVL1::TrigT1CaloDefs::CPMTowerLocation,
"Key for the xAOD::CPMTowerContainer input object" }

Read key for the xAOD::CPMTowerContainer object.

Definition at line 109 of file RoIBResultToxAOD.h.

◆ 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_doCalo

Gaudi::Property< bool > RoIBResultToxAOD::m_doCalo
private
Initial value:
{
this, "DoCalo", true, "Use inputs from the Calo system" }

Definition at line 148 of file RoIBResultToxAOD.h.

◆ m_doMuon

Gaudi::Property< bool > RoIBResultToxAOD::m_doMuon
private
Initial value:
{
this, "DoMuon", true, "Use inputs from the Muon system" }

Use inputs from the Muon system.

Definition at line 151 of file RoIBResultToxAOD.h.

◆ m_egammaItem

Gaudi::Property< std::vector< std::string > > RoIBResultToxAOD::m_egammaItem
private
Initial value:
{
this, "EGammaItem", {}, "List of LVL1 items for e/gamma trigger type" }

List of LVL1 items for e/gamma trigger type.

Definition at line 155 of file RoIBResultToxAOD.h.

◆ m_emtauRoIKey

SG::WriteHandleKey< xAOD::EmTauRoIContainer > RoIBResultToxAOD::m_emtauRoIKey
private
Initial value:
{
this, "xAODKeyEmTau", "LVL1EmTauRoIs",
"Key for the xAOD::EmTauRoIContainer output object" }

Write key for the xAOD::EmTauRoIContainer object.

Definition at line 127 of file RoIBResultToxAOD.h.

◆ m_emTauTool

ToolHandle< LVL1::IL1CPMTools > RoIBResultToxAOD::m_emTauTool
private
Initial value:
{
this, "L1CPMTools", "LVL1::L1CPMTools/L1CPMTools",
"Tool for calculation of EmTau trigger sums per RoI" }

Tool for calculation of EmTau trigger sums per RoI.

Definition at line 90 of file RoIBResultToxAOD.h.

◆ m_energysumRoIKey

SG::WriteHandleKey< xAOD::EnergySumRoI > RoIBResultToxAOD::m_energysumRoIKey
private
Initial value:
{
this, "xAODKeyEsum", "LVL1EnergySumRoI",
"Key for the xAOD::EnergySumRoI output object" }

Write key for the xAOD::EnergySumRoI object.

Definition at line 131 of file RoIBResultToxAOD.h.

◆ m_esumItem

Gaudi::Property< std::vector< std::string > > RoIBResultToxAOD::m_esumItem
private
Initial value:
{
this, "ESumItem", {}, "List of LVL1 items for energy sum trigger type" }

List of LVL1 items for energy sum trigger type.

Definition at line 164 of file RoIBResultToxAOD.h.

◆ 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 AthReentrantAlgorithm::m_extendedExtraObjects
privateinherited

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

Empty if no symlinks were found.

Definition at line 153 of file AthReentrantAlgorithm.h.

◆ m_highmuItem

Gaudi::Property< std::vector< std::string > > RoIBResultToxAOD::m_highmuItem
private
Initial value:
{
this, "HighMuItem", {},
"List of LVL1 items for high pt muon trigger type" }

List of LVL1 items for high pt muon trigger type.

Definition at line 167 of file RoIBResultToxAOD.h.

◆ m_jetElementKey

SG::ReadHandleKey< xAOD::JetElementContainer > RoIBResultToxAOD::m_jetElementKey
private
Initial value:
{
this, "JetElementLocation", LVL1::TrigT1CaloDefs::JetElementLocation,
"Key for the xAOD::JetElementContainer input object" }

Read key for the xAOD::JetElementContainer object.

Definition at line 113 of file RoIBResultToxAOD.h.

◆ m_jetetRoIKey

SG::WriteHandleKey< xAOD::JetEtRoI > RoIBResultToxAOD::m_jetetRoIKey
private
Initial value:
{
this, "xAODKeyJetEt", "LVL1JetEtRoI",
"Key for the xAOD::JetEtRoI output object" }

Write key for the xAOD::JetEtRoI object.

Definition at line 135 of file RoIBResultToxAOD.h.

◆ m_jetItem

Gaudi::Property< std::vector< std::string > > RoIBResultToxAOD::m_jetItem
private
Initial value:
{
this, "JetItem", {}, "List of LVL1 items for jet trigger type" }

List of LVL1 items for jet trigger type.

Definition at line 161 of file RoIBResultToxAOD.h.

◆ m_jetRoIKey

SG::WriteHandleKey< xAOD::JetRoIContainer > RoIBResultToxAOD::m_jetRoIKey
private
Initial value:
{
this, "xAODKeyJet", "LVL1JetRoIs",
"Key for the xAOD::JetRoIContainer output object" }

Write key for the xAOD::JetRoIContainer object.

Definition at line 139 of file RoIBResultToxAOD.h.

◆ m_jetTool

ToolHandle< LVL1::IL1JEMJetTools > RoIBResultToxAOD::m_jetTool
private
Initial value:
{
this, "L1JEMJetTools", "LVL1::L1JEMJetTools/L1JEMJetTools",
"Tool for calculation of Jet cluster sums per RoI" }

Tool for calculation of Jet cluster sums per RoI.

Definition at line 94 of file RoIBResultToxAOD.h.

◆ m_lowmuItem

Gaudi::Property< std::vector< std::string > > RoIBResultToxAOD::m_lowmuItem
private
Initial value:
{
this, "LowMuItem", {},
"List of LVL1 items for low pt muon trigger type" }

List of LVL1 items for low pt muon trigger type.

Definition at line 171 of file RoIBResultToxAOD.h.

◆ m_muonRoIKey

SG::WriteHandleKey< xAOD::MuonRoIContainer > RoIBResultToxAOD::m_muonRoIKey
private
Initial value:
{
this, "xAODKeyMuon", "LVL1MuonRoIs",
"Key for the xAOD::MuonRoIContainer output object" }

Write key for the xAOD::MuonRoIContainer object.

Definition at line 123 of file RoIBResultToxAOD.h.

◆ m_recRPCRoiTool

ToolHandle<LVL1::ITrigT1MuonRecRoiTool> RoIBResultToxAOD::m_recRPCRoiTool { this, "RecRpcRoiTool", "LVL1::TrigT1RPCRecRoiTool/TrigT1RPCRecRoiTool"}
private

The RPC RoI reconstruction tool.

Definition at line 78 of file RoIBResultToxAOD.h.

◆ m_recTGCRoiTool

ToolHandle< LVL1::ITrigT1MuonRecRoiTool > RoIBResultToxAOD::m_recTGCRoiTool
private
Initial value:
{
this, "RecTgcRoiTool", "LVL1::TrigT1TGCRecRoiTool/TrigT1TGCRecRoiTool",
"TGC RoI reconstruction service" }

The TGC RoI reconstruction service.

Definition at line 80 of file RoIBResultToxAOD.h.

◆ m_roibResultKey

SG::ReadHandleKey< ROIB::RoIBResult > RoIBResultToxAOD::m_roibResultKey
private
Initial value:
{
this, "RoIBResultInputKey", "RoIBResult",
"Key for the ROIB::RoIBResult input object" }

Read key for the ROIB::RoIBResult object.

Definition at line 104 of file RoIBResultToxAOD.h.

◆ m_tauhadItem

Gaudi::Property< std::vector< std::string > > RoIBResultToxAOD::m_tauhadItem
private
Initial value:
{
this, "TauHadItem", {}, "List of LVL1 items for tau trigger type" }

List of LVL1 items for tau trigger type.

Definition at line 158 of file RoIBResultToxAOD.h.

◆ 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:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
xAOD::JetRoI_v2::setThrPattern
void setThrPattern(uint32_t value)
Set the threshold pattern.
RoIBResultToxAOD::m_recTGCRoiTool
ToolHandle< LVL1::ITrigT1MuonRecRoiTool > m_recTGCRoiTool
The TGC RoI reconstruction service.
Definition: RoIBResultToxAOD.h:80
xAOD::MuonRoI_v1::initialize
void initialize(uint32_t roiword, float eta, float phi, const std::string &thrname, float thrvalue, uint32_t extraword=0u)
Initialise the object with all its properties.
Definition: MuonRoI_v1.cxx:31
RoIBResultToxAOD::createJetEnergyRoI
StatusCode createJetEnergyRoI(const ROIB::RoIBResult &roib, const EventContext &ctx) const
Create the JetEnergy RoI object.
Definition: RoIBResultToxAOD.cxx:230
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:216
GeV
#define GeV
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/Root/HelperFunctions.cxx:17
LVL1::CPMTobAlgorithm::CoreET
int CoreET()
Additional information for reconstruction & performance studies.
Definition: CPMTobAlgorithm.cxx:380
get_generator_info.result
result
Definition: get_generator_info.py:21
LVL1::TrigT1CaloDefs::JetEtRoIWordType
@ JetEtRoIWordType
Definition: TrigT1CaloDefs.h:169
RoIBResultToxAOD::m_jetElementKey
SG::ReadHandleKey< xAOD::JetElementContainer > m_jetElementKey
Read key for the xAOD::JetElementContainer object.
Definition: RoIBResultToxAOD.h:113
HLTSeedingRoIToolDefs::roiPhi
constexpr float roiPhi(const AnyRoIPointer &roi)
Definition: HLTSeedingRoIToolDefs.h:167
LVL1::RecJetRoI
This class defines the reconstructed em/tau hadron ROI.
Definition: RecJetRoI.h:39
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
LVL1::JEMJetAlgorithm::ET6x6
int ET6x6()
Returns 6x6 TT cluster ET.
Definition: JEMJetAlgorithm.cxx:261
ROIB::EMTauResult
Definition: EMTauResult.h:25
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
index
Definition: index.py:1
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
LVL1::JEPRoIDecoder
A level 1 calorimeter trigger conversion service: returns the Coordinate represented by a RoI word.
Definition: JEPRoIDecoder.h:33
RoIBResultToxAOD::m_cpmTowerKey
SG::ReadHandleKey< xAOD::CPMTowerContainer > m_cpmTowerKey
Read key for the xAOD::CPMTowerContainer object.
Definition: RoIBResultToxAOD.h:109
AthCommonDataStore::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 > renounce(T &h)
Definition: AthCommonDataStore.h:380
M_PI
#define M_PI
Definition: ActiveFraction.h:11
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
LVL1::CPMTobAlgorithm::EMClusET
int EMClusET()
Returns EM cluster ET, limited to 8 bits.
Definition: CPMTobAlgorithm.cxx:385
LVL1::CPMTobAlgorithm
This is an internal class, used in the EM/Tau trigger.
Definition: CPMTobAlgorithm.h:43
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
LVL1::JEMJetAlgorithm::ET4x4
int ET4x4()
Returns 4x4 TT cluster ET.
Definition: JEMJetAlgorithm.cxx:256
ROIB::MuCTPIRoI
Class for storing the 32-bit muon RoI word.
Definition: MuCTPIRoI.h:39
LVL1::CPMTobAlgorithm::TauClusET
int TauClusET()
Returns Tau cluster ET, limited to 8 bits.
Definition: CPMTobAlgorithm.cxx:390
TrigConf::L1Menu
L1 menu configuration.
Definition: L1Menu.h:28
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
RoIBResultToxAOD::createMuonRoI
StatusCode createMuonRoI(const ROIB::RoIBResult &roib, const EventContext &ctx) const
Create the Muon RoI objects.
Definition: RoIBResultToxAOD.cxx:454
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
xAOD::JetRoI_v2::initialize
void initialize(uint32_t roiword, float eta, float phi)
Initialise the object with its most important properties.
Definition: JetRoI_v2.cxx:19
xAOD::EmTauRoI_v2::initialize
void initialize(uint32_t roiword, float eta, float phi)
Initialise the object with its most important properties.
Definition: EmTauRoI_v2.cxx:22
xAOD::EmTauRoI_v2::addThreshold
void addThreshold(const std::string &name, float value)
Add a new threshold that was passed by the RoI.
Definition: EmTauRoI_v2.cxx:99
LVL1::TrigT1CaloDefs::numOfJetEtSumThresholds
static const unsigned int numOfJetEtSumThresholds
Definition: TrigT1CaloDefs.h:131
RoIBResultToxAOD::m_doCalo
Gaudi::Property< bool > m_doCalo
Definition: RoIBResultToxAOD.h:148
LVL1::TrigT1CaloDefs::EMAlg
@ EMAlg
Definition: TrigT1CaloDefs.h:209
ROIB::JetEnergyResult
Definition: JetEnergyResult.h:24
LVL1::RecEnergyRoI
This class defines the reconstructed EnergySum ROI.
Definition: RecEnergyRoI.h:37
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
RoIBResultToxAOD::m_jetTool
ToolHandle< LVL1::IL1JEMJetTools > m_jetTool
Tool for calculation of Jet cluster sums per RoI.
Definition: RoIBResultToxAOD.h:94
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition: ReadCondHandle.h:270
LVL1::CPMTobAlgorithm::HadCoreET
int HadCoreET()
Returns Had core ET (inner isolation sum)
Definition: CPMTobAlgorithm.cxx:420
xAOD::EmTauRoI_v2::setEmIsol
void setEmIsol(float value)
Set the EM calorimeter isolation (outer ring of EM towers)
LVL1::TrigT1CaloDefs::EnergyRoIWordType0
@ EnergyRoIWordType0
Definition: TrigT1CaloDefs.h:170
xAOD::EmTauRoI
EmTauRoI_v2 EmTauRoI
Definition: EmTauRoI.h:16
RoIBResultToxAOD::createEmTauRoI
StatusCode createEmTauRoI(const ROIB::RoIBResult &roib, const EventContext &ctx) const
Create the EmTau RoI objects.
Definition: RoIBResultToxAOD.cxx:124
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
xAOD::EmTauRoI_v2::setEmClus
void setEmClus(float value)
Set the deposited ET from the "EM cluster".
AthCommonDataStore
Definition: AthCommonDataStore.h:52
AthReentrantAlgorithm::AthReentrantAlgorithm
AthReentrantAlgorithm()
Default constructor:
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
LVL1::RecMuonRoI
This class defines the reconstructed Muon ROI.
Definition: RecMuonRoI.h:60
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
LVL1::JEMJetAlgorithm
This is an internal class, used in the jet trigger.
Definition: JEMJetAlgorithm.h:45
lumiFormat.i
int i
Definition: lumiFormat.py:85
xAOD::EmTauRoI_v2
Class describing a LVL1 em/tau region of interest.
Definition: EmTauRoI_v2.h:35
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
xAOD::JetRoI
JetRoI_v2 JetRoI
Definition: JetRoI.h:16
RoIBResultToxAOD::m_doMuon
Gaudi::Property< bool > m_doMuon
Use inputs from the Muon system.
Definition: RoIBResultToxAOD.h:151
xAOD::JetRoI_v2::setEt8x8
void setEt8x8(float value)
Set the energy deposited in a 0.8x0.8 area around the RoI.
LVL1::TrigT1CaloDefs::TauAlg
@ TauAlg
Definition: TrigT1CaloDefs.h:210
xAOD::MuonRoI_v1
Class describing a LVL1 muon region of interest.
Definition: MuonRoI_v1.h:29
xAOD::CPMTowerMap_t
std::map< int, const CPMTower * > CPMTowerMap_t
Definition: Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/CPMTower.h:18
LVL1::CPMTobAlgorithm::HadIsolET
int HadIsolET()
Returns Had isolation ET.
Definition: CPMTobAlgorithm.cxx:410
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
LVL1::RecEmTauRoI
This class defines the reconstructed em/tau hadron ROI.
Definition: RecEmTauRoI.h:44
xAOD::EmTauRoI_v2::setHadIsol
void setHadIsol(float value)
Set the hadron calorimeter isolation (outer ring of had towers)
xAOD::EmTauRoI_v2::setTauClus
void setTauClus(float value)
Set the deposited ET from the "tau cluster".
RoIBResultToxAOD::m_roibResultKey
SG::ReadHandleKey< ROIB::RoIBResult > m_roibResultKey
Read key for the ROIB::RoIBResult object.
Definition: RoIBResultToxAOD.h:104
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
xAOD::EmTauRoI_v2::setHadCore
void setHadCore(float value)
Set the ET deposited in the inner hadronic isolation region.
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
xAOD::EmTauRoI_v2::setThrPattern
void setThrPattern(uint32_t value)
Set the threshold pattern.
RoIBResultToxAOD::m_jetetRoIKey
SG::WriteHandleKey< xAOD::JetEtRoI > m_jetetRoIKey
Write key for the xAOD::JetEtRoI object.
Definition: RoIBResultToxAOD.h:135
LVL1::TrigT1CaloDefs::CPMTowerLocation
static const std::string CPMTowerLocation
Definition: TrigT1CaloDefs.h:38
AthReentrantAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Definition: AthReentrantAlgorithm.h:153
RoIBResultToxAOD::m_emTauTool
ToolHandle< LVL1::IL1CPMTools > m_emTauTool
Tool for calculation of EmTau trigger sums per RoI.
Definition: RoIBResultToxAOD.h:90
RoIBResultToxAOD::m_emtauRoIKey
SG::WriteHandleKey< xAOD::EmTauRoIContainer > m_emtauRoIKey
Write key for the xAOD::EmTauRoIContainer object.
Definition: RoIBResultToxAOD.h:127
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
LVL1::TrigT1CaloDefs::JetElementLocation
static const std::string JetElementLocation
Definition: TrigT1CaloDefs.h:39
xAOD::MuonRoI
MuonRoI_v1 MuonRoI
Definition: MuonRoI.h:15
RoIBResultToxAOD::m_energysumRoIKey
SG::WriteHandleKey< xAOD::EnergySumRoI > m_energysumRoIKey
Write key for the xAOD::EnergySumRoI object.
Definition: RoIBResultToxAOD.h:131
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
AthReentrantAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthReentrantAlgorithm.cxx:96
LVL1::JEMJetAlgorithm::ET8x8
int ET8x8()
Returns 8x8 TT cluster ET.
Definition: JEMJetAlgorithm.cxx:266
xAOD::JetRoI_v2::setEtScale
void setEtScale(float value)
Set the ET scale for RoI digits.
RoIBResultToxAOD::m_muonRoIKey
SG::WriteHandleKey< xAOD::MuonRoIContainer > m_muonRoIKey
Write key for the xAOD::MuonRoIContainer object.
Definition: RoIBResultToxAOD.h:123
xAOD::JetRoI_v2
Class describing a LVL1 jet region of interest.
Definition: JetRoI_v2.h:35
RoIBResultToxAOD::m_jetRoIKey
SG::WriteHandleKey< xAOD::JetRoIContainer > m_jetRoIKey
Write key for the xAOD::JetRoIContainer object.
Definition: RoIBResultToxAOD.h:139
ROIB::EMTauRoI
Definition: EMTauRoI.h:20
LVL1::TrigT1CaloDefs::JetRoIWordType
@ JetRoIWordType
Definition: TrigT1CaloDefs.h:168
xAOD::JetRoI_v2::setEt6x6
void setEt6x6(float value)
Set the energy deposited in a 0.6x0.6 area around the RoI.
xAOD::EmTauRoI_v2::setEtScale
void setEtScale(float v)
Set the ET scale.
a
TList * a
Definition: liststreamerinfos.cxx:10
LVL1::CPMTobAlgorithm::EMIsolET
int EMIsolET()
Returns EM isolation ET.
Definition: CPMTobAlgorithm.cxx:405
RoIBResultToxAOD::m_recRPCRoiTool
ToolHandle< LVL1::ITrigT1MuonRecRoiTool > m_recRPCRoiTool
The RPC RoI reconstruction tool.
Definition: RoIBResultToxAOD.h:78
h
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
python.XMLReader.l1menu
l1menu
Definition: XMLReader.py:73
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
xAOD::JetRoI_v2::addThreshold
void addThreshold(const std::string &name, float value)
Add a new threshold that was passed by the RoI.
Definition: JetRoI_v2.cxx:72
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
xAOD::JetRoI_v2::setEt4x4
void setEt4x4(float value)
Set the energy deposited in a 0.4x0.4 area around the RoI.
xAOD::EmTauRoI_v2::setCore
void setCore(float value)
Set the ET of the RoI Core cluster (2x2 towers, EM+Had)
SG::AllowEmpty
@ AllowEmpty
Definition: StoreGate/StoreGate/VarHandleKey.h:30
xAOD::thrValue
thrValue
Definition: MuonRoI_v1.cxx:53
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::roiWord1
roiWord1
Definition: EnergySumRoI_v1.cxx:49
fitman.k
k
Definition: fitman.py:528
pdg_comparison.conv
conv
Definition: pdg_comparison.py:321
ServiceHandle< ICondSvc >