ATLAS Offline Software
Loading...
Searching...
No Matches
LVL1::TrigT1CaloMonErrorTool Class Reference

Tool to retrieve ROB status and ROD unpacking errors from StoreGate. More...

#include <TrigT1CaloMonErrorTool.h>

Inheritance diagram for LVL1::TrigT1CaloMonErrorTool:
Collaboration diagram for LVL1::TrigT1CaloMonErrorTool:

Public Member Functions

 TrigT1CaloMonErrorTool (const std::string &name)
virtual ~TrigT1CaloMonErrorTool ()
virtual StatusCode initialize ()
 Dummy implementation of the initialisation function.
virtual StatusCode finalize ()
StatusCode retrieve (const std::vector< unsigned int > *&errColl)
 Retrieve error vector.
bool corrupt ()
 Return true if current event has any corruption errors.
bool fullEventTimeout ()
 Return true if current event has Full Event status generic timeout bit set.
bool missingFragment ()
 Return true if any ROB/ROD fragments are missing.
bool robOrUnpackingError ()
 Return true if current event has any ROB or unpacking errors.
const std::string & flagCorruptEvents () const
 Return corrupt events flag string.
virtual void print () const
 Print the state of the tool.
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const
Additional helper functions, not directly mimicking Athena
template<class T>
const T * getProperty (const std::string &name) const
 Get one of the tool's properties.
const std::string & msg_level_name () const __attribute__((deprecated))
 A deprecated function for getting the message level's name.
const std::string & getName (const void *ptr) const
 Get the name of an object that is / should be in the event store.
SG::sgkey_t getKey (const void *ptr) const
 Get the (hashed) key of an object that is in the event store.

Protected Member Functions

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

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

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

Private Attributes

std::string m_triggerTowerLocation
 Trigger Tower container StoreGate key.
std::string m_cpmTowerLocation
 CPM core tower container StoreGate key.
std::string m_cpmTowerLocationOverlap
 CPM overlap tower container StoreGate key.
std::string m_cmxCpTobLocation
 CMX-CP TOB container StoreGate key.
std::string m_cmxCpHitsLocation
 CMX-CP hits container StoreGate key.
std::string m_cpmRoiLocation
 CPM RoI container StoreGate key.
std::string m_jetElementLocation
 Core Jet Element container StoreGate key.
std::string m_jetElementLocationOverlap
 Overlap Jet Element container StoreGate key.
std::string m_cmxJetTobLocation
 CMX-Jet TOB container StoreGate key.
std::string m_cmxJetHitsLocation
 CMX-Jet hits container StoreGate key.
std::string m_jemRoiLocation
 JEM RoI container StoreGate key.
std::string m_cmxRoiLocation
 CMX RoI container StoreGate key.
std::string m_jemEtSumsLocation
 JEM Et sums container StoreGate key.
std::string m_cmxEtSumsLocation
 CMX Et sums container StoreGate key.
std::string m_rodHeaderLocation
 ROD header container StoreGate key.
std::string m_cpRoibRodHeaderLocation
 CP RoIB ROD header container StoreGate key.
std::string m_jepRoibRodHeaderLocation
 JEP RoIB ROD header container StoreGate key.
std::string m_robErrorVectorLocation
 ROB and Unpacking Error vector StoreGate key.
std::string m_flagCorruptEvents
 Flag corrupt events.
SG::ReadHandleKey< xAOD::EventInfom_eventInfoKey { this, "EventInfoKey", "EventInfo", "SG key for EventInfo" }
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Tool to retrieve ROB status and ROD unpacking errors from StoreGate.

Forces retrieve of all containers to ensure error vector is complete.

The error vector returned by retrieve() is empty if there are no errors.
Otherwise the first word is the number of ROB status errors,
followed by the ROB ID and error word for each ROB status error (if any),
followed by the ROB ID and error code for each unpacking error (if any).
Since the bytestream decoders skip a ROB fragment as soon as an error is detected there cannot be more than one error per ROB ID.

The behaviour of corrupt() is determined by the property FlagCorruptEvents:

FlagCorruptEvents corrupt() returns
"FullEventTimeout"
(default)
true if Full Event status generic timeout bit set
and there are missing ROB/ROD fragments
and there are no ROB status or unpacking errors.
"AnyROBOrUnpackingError" true if there are any ROB status or unpacking errors.
"None"
(or anything else)
false.

corrupt() is called by all the monitoring tools and if true the event is skipped.

Related Documentation:

The raw event format in the ATLAS Trigger & DAQ, ATL-D-ES-0019
Definition of the status words in a ROB fragment header
See the documentation for TrigT1CaloRodMonTool in the package TrigT1CaloMonitoring for the meanings of the unpacking error codes.

Author
Peter Faulkner

Definition at line 58 of file TrigT1CaloMonErrorTool.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

◆ TrigT1CaloMonErrorTool()

LVL1::TrigT1CaloMonErrorTool::TrigT1CaloMonErrorTool ( const std::string & name)

Definition at line 42 of file TrigT1CaloMonErrorTool.cxx.

44 : AsgTool(name)
45{
46
47 declareProperty("TriggerTowerLocation",
50 declareProperty("CPMTowerLocation",
52 declareProperty("CPMTowerLocationOverlap",
55 declareProperty("CMXCPTobLocation",
57 declareProperty("CMXCPHitsLocation",
59 declareProperty("CPMTobRoILocation",
61 declareProperty("JetElementLocation",
63 declareProperty("JetElementLocationOverlap",
66 declareProperty("CMXJetTobLocation",
68 declareProperty("CMXJetHitsLocation",
70 declareProperty("JEMTobRoILocation",
72 declareProperty("CMXRoILocation",
74 declareProperty("JEMEtSumsLocation",
76 declareProperty("CMXEtSumsLocation",
78 declareProperty("RodHeaderLocation",
80 declareProperty("RodHeaderLocationCPRoIB",
82 declareProperty("RodHeaderLocationJEPRoIB",
84 declareProperty("L1CaloErrorLocation",
85 m_robErrorVectorLocation = "L1CaloUnpackingErrors");
86 declareProperty("FlagCorruptEvents", m_flagCorruptEvents = "FullEventTimeout",
87 "Can be FullEventTimeout, AnyROBOrUnpackingError or None");
88
89}
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
static const std::string CPMTobRoILocation
static const std::string CMXJetTobLocation
static const std::string RODHeaderLocation
static const std::string JetElementLocation
static const std::string JEMTobRoILocation
static const std::string JEMEtSumsLocation
static const std::string CMXJetHitsLocation
static const std::string xAODTriggerTowerLocation
static const std::string CMXEtSumsLocation
static const std::string CMXCPHitsLocation
static const std::string CMXRoILocation
static const std::string CPMTowerLocation
static const std::string CMXCPTobLocation
std::string m_cmxCpHitsLocation
CMX-CP hits container StoreGate key.
std::string m_cpmTowerLocationOverlap
CPM overlap tower container StoreGate key.
std::string m_flagCorruptEvents
Flag corrupt events.
std::string m_jemRoiLocation
JEM RoI container StoreGate key.
std::string m_cmxCpTobLocation
CMX-CP TOB container StoreGate key.
std::string m_jepRoibRodHeaderLocation
JEP RoIB ROD header container StoreGate key.
std::string m_triggerTowerLocation
Trigger Tower container StoreGate key.
std::string m_jetElementLocation
Core Jet Element container StoreGate key.
std::string m_cmxRoiLocation
CMX RoI container StoreGate key.
std::string m_jetElementLocationOverlap
Overlap Jet Element container StoreGate key.
std::string m_cmxJetHitsLocation
CMX-Jet hits container StoreGate key.
std::string m_cmxEtSumsLocation
CMX Et sums container StoreGate key.
std::string m_cmxJetTobLocation
CMX-Jet TOB container StoreGate key.
std::string m_cpmRoiLocation
CPM RoI container StoreGate key.
std::string m_rodHeaderLocation
ROD header container StoreGate key.
std::string m_jemEtSumsLocation
JEM Et sums container StoreGate key.
std::string m_robErrorVectorLocation
ROB and Unpacking Error vector StoreGate key.
std::string m_cpRoibRodHeaderLocation
CP RoIB ROD header container StoreGate key.
std::string m_cpmTowerLocation
CPM core tower container StoreGate key.
AsgTool(const std::string &name)
Constructor specifying the tool instance's name.
Definition AsgTool.cxx:58

◆ ~TrigT1CaloMonErrorTool()

LVL1::TrigT1CaloMonErrorTool::~TrigT1CaloMonErrorTool ( )
virtual

Definition at line 93 of file TrigT1CaloMonErrorTool.cxx.

94{
95}

Member Function Documentation

◆ corrupt()

bool LVL1::TrigT1CaloMonErrorTool::corrupt ( )
virtual

Return true if current event has any corruption errors.

Implements LVL1::ITrigT1CaloMonErrorTool.

Definition at line 281 of file TrigT1CaloMonErrorTool.cxx.

282{
283 if (m_flagCorruptEvents == "AnyROBOrUnpackingError") {
284 return robOrUnpackingError();
285 } else if (m_flagCorruptEvents == "FullEventTimeout") {
287 }
288
289 return false;
290}
bool missingFragment()
Return true if any ROB/ROD fragments are missing.
bool robOrUnpackingError()
Return true if current event has any ROB or unpacking errors.
bool fullEventTimeout()
Return true if current event has Full Event status generic timeout bit set.

◆ declareGaudiProperty()

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

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

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }

◆ declareProperty()

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

Definition at line 145 of file AthCommonDataStore.h.

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

◆ detStore()

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

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

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

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

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

Definition at line 85 of file AthCommonDataStore.h.

◆ 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

◆ finalize()

StatusCode LVL1::TrigT1CaloMonErrorTool::finalize ( )
virtual

Definition at line 109 of file TrigT1CaloMonErrorTool.cxx.

110{
111 return StatusCode::SUCCESS;
112}

◆ flagCorruptEvents()

const std::string & LVL1::TrigT1CaloMonErrorTool::flagCorruptEvents ( ) const
inlinevirtual

Return corrupt events flag string.

Implements LVL1::ITrigT1CaloMonErrorTool.

Definition at line 79 of file TrigT1CaloMonErrorTool.h.

79{ return m_flagCorruptEvents; }

◆ fullEventTimeout()

bool LVL1::TrigT1CaloMonErrorTool::fullEventTimeout ( )
virtual

Return true if current event has Full Event status generic timeout bit set.

Implements LVL1::ITrigT1CaloMonErrorTool.

Definition at line 294 of file TrigT1CaloMonErrorTool.cxx.

295{
296 SG::ReadHandle<xAOD::EventInfo> evtInfo (m_eventInfoKey);
297 unsigned int evtStatus =evtInfo->statusElement();
298 return (((evtStatus >> 2) & 0x1) == 1);
299}
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey

◆ getKey()

SG::sgkey_t asg::AsgTool::getKey ( const void * ptr) const
inherited

Get the (hashed) key of an object that is in the event store.

This is a bit of a special one. StoreGateSvc and xAOD::TEvent both provide ways for getting the SG::sgkey_t key for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.

In order to allow tools to efficiently perform this operation, they can use this helper function.

See also
asg::AsgTool::getName
Parameters
ptrThe bare pointer to the object that the event store should know about
Returns
The hashed key of the object in the store. If not found, an invalid (zero) key.

Definition at line 119 of file AsgTool.cxx.

119 {
120
121#ifdef XAOD_STANDALONE
122 // In case we use @c xAOD::TEvent, we have a direct function call
123 // for this.
124 return evtStore()->event()->getKey( ptr );
125#else
126 const SG::DataProxy* proxy = evtStore()->proxy( ptr );
127 return ( proxy == nullptr ? 0 : proxy->sgkey() );
128#endif // XAOD_STANDALONE
129 }
ServiceHandle< StoreGateSvc > & evtStore()

◆ getName()

const std::string & asg::AsgTool::getName ( const void * ptr) const
inherited

Get the name of an object that is / should be in the event store.

This is a bit of a special one. StoreGateSvc and xAOD::TEvent both provide ways for getting the std::string name for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.

In order to allow tools to efficiently perform this operation, they can use this helper function.

See also
asg::AsgTool::getKey
Parameters
ptrThe bare pointer to the object that the event store should know about
Returns
The string name of the object in the store. If not found, an empty string.

Definition at line 106 of file AsgTool.cxx.

106 {
107
108#ifdef XAOD_STANDALONE
109 // In case we use @c xAOD::TEvent, we have a direct function call
110 // for this.
111 return evtStore()->event()->getName( ptr );
112#else
113 const SG::DataProxy* proxy = evtStore()->proxy( ptr );
114 static const std::string dummy = "";
115 return ( proxy == nullptr ? dummy : proxy->name() );
116#endif // XAOD_STANDALONE
117 }

◆ getProperty()

template<class T>
const T * asg::AsgTool::getProperty ( const std::string & name) const
inherited

Get one of the tool's properties.

◆ initialize()

StatusCode LVL1::TrigT1CaloMonErrorTool::initialize ( void )
virtual

Dummy implementation of the initialisation function.

It's here to allow the dual-use tools to skip defining an initialisation function. Since many are doing so...

Reimplemented from asg::AsgTool.

Definition at line 99 of file TrigT1CaloMonErrorTool.cxx.

100{
101 msg(MSG::INFO) << "Initializing " << name() << endmsg;
102
103 ATH_CHECK( m_eventInfoKey.initialize() );
104 return StatusCode::SUCCESS;
105}
#define endmsg
#define ATH_CHECK
Evaluate an expression and check for errors.
MsgStream & msg
Definition testRead.cxx:32

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

◆ missingFragment()

bool LVL1::TrigT1CaloMonErrorTool::missingFragment ( )
virtual

Return true if any ROB/ROD fragments are missing.

Implements LVL1::ITrigT1CaloMonErrorTool.

Definition at line 303 of file TrigT1CaloMonErrorTool.cxx.

304{
305
306 const bool debug = msgLvl(MSG::DEBUG);
307
309
310 //Retrieve DAQ ROD Headers from SG
311 const xAOD::RODHeaderContainer* rodTES = 0;
313 sc = evtStore()->retrieve(rodTES, m_rodHeaderLocation);
314 } else sc = StatusCode::FAILURE;
315 if ( sc.isFailure() || !rodTES ) {
316 if (debug) msg(MSG::DEBUG) << "No DAQ ROD Header container found"
317 << endmsg;
318 }
319
320 //Retrieve CP RoIB ROD Headers from SG
321 const xAOD::RODHeaderContainer* cpRoibTES = 0;
323 sc = evtStore()->retrieve(cpRoibTES, m_cpRoibRodHeaderLocation);
324 } else sc = StatusCode::FAILURE;
325 if ( sc.isFailure() || !cpRoibTES ) {
326 if (debug) msg(MSG::DEBUG) << "No CP RoIB ROD Header container found"
327 << endmsg;
328 }
329
330 //Retrieve JEP RoIB ROD Headers from SG
331 const xAOD::RODHeaderContainer* jepRoibTES = 0;
333 sc = evtStore()->retrieve(jepRoibTES, m_jepRoibRodHeaderLocation);
334 } else sc = StatusCode::FAILURE;
335 if ( sc.isFailure() || !jepRoibTES ) {
336 if (debug) msg(MSG::DEBUG) << "No JEP RoIB ROD Header container found"
337 << endmsg;
338 }
339
340 // Record fragments present
341 std::vector<int> noFragmentFlags(80, 1);
342 std::vector<const xAOD::RODHeaderContainer*> cols;
343 if (rodTES) cols.push_back(rodTES);
344 if (cpRoibTES) cols.push_back(cpRoibTES);
345 if (jepRoibTES) cols.push_back(jepRoibTES);
346 std::vector<const xAOD::RODHeaderContainer*>::const_iterator colIter =
347 cols.begin();
348 std::vector<const xAOD::RODHeaderContainer*>::const_iterator colIterEnd =
349 cols.end();
350 for (; colIter != colIterEnd; ++colIter) {
352 xAOD::RODHeaderContainer::const_iterator iterEnd = (*colIter)->end();
353 for (; iter != iterEnd; ++iter) {
354 const xAOD::RODHeader* header = *iter;
355 const int crate = header->crate();
356 const int slink = header->sLink();
357 const int dataType = header->dataType();
358 const int rod = crate + dataType * 6;
359 const int pos = rod * 4 + slink;
360 if (pos >= 80) continue;
361 noFragmentFlags[pos] = 0;
362 }
363 }
364
365 // Any fragments missing?
366 for (int pos = 0; pos < 80; ++pos) {
367 if ((pos % 2) && (pos >= 56 || (pos >= 32 && pos < 48))) continue;
368 if (noFragmentFlags[pos]) return true;
369 }
370
371 return false;
372}
static Double_t sc
const bool debug
bool msgLvl(const MSG::Level lvl) const
DataModel_detail::const_iterator< DataVector > const_iterator
Definition DataVector.h:838
bool contains(const std::string &s, const std::string &regx)
does a string contain the substring
Definition hcg.cxx:114
::StatusCode StatusCode
StatusCode definition for legacy code.
RODHeaderContainer_v2 RODHeaderContainer
Define the latest version of the RODHeader container.
RODHeader_v2 RODHeader
Define the latest version of the RODHeader class.

◆ msg()

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg_level_name()

const std::string & asg::AsgTool::msg_level_name ( ) const
inherited

A deprecated function for getting the message level's name.

Instead of using this, weirdly named function, user code should get the string name of the current minimum message level (in case they really need it...), with:

MSG::name( msg().level() )

This function's name doesn't follow the ATLAS coding rules, and as such will be removed in the not too distant future.

Returns
The string name of the current minimum message level that's printed

Definition at line 101 of file AsgTool.cxx.

101 {
102
103 return MSG::name( msg().level() );
104 }
MsgStream & msg() const
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
Definition MsgLevel.cxx:19

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

◆ print()

void asg::AsgTool::print ( ) const
virtualinherited

◆ 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();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

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

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ retrieve()

StatusCode LVL1::TrigT1CaloMonErrorTool::retrieve ( const std::vector< unsigned int > *& errColl)
virtual

Retrieve error vector.

Implements LVL1::ITrigT1CaloMonErrorTool.

Definition at line 116 of file TrigT1CaloMonErrorTool.cxx.

118{
119
120 // Must ensure bytestream converters have unpacked all our data
121 // before retrieving error vector.
122
124
125 //Retrieve Trigger Towers from SG
126 const xAOD::TriggerTowerContainer* triggerTowerTES = 0;
127 const xAOD::TriggerTowerContainer* triggerTowerSpareTES = 0;
128 const xAOD::TriggerTowerContainer* triggerTowerMuonTES = 0;
129 sc = evtStore()->retrieve(triggerTowerTES, m_triggerTowerLocation);
130 if ( sc.isFailure() || !triggerTowerTES ) {
131 msg(MSG::DEBUG) << "No Trigger Tower container found" << endmsg;
132 }
134 sc = evtStore()->retrieve(triggerTowerSpareTES,
135 m_triggerTowerLocation + "Spare");
136 } else sc = StatusCode::FAILURE;
137 if ( sc.isFailure() || !triggerTowerSpareTES ) {
138 msg(MSG::DEBUG) << "No Spare Trigger Tower container found" << endmsg;
139 }
141 sc = evtStore()->retrieve(triggerTowerMuonTES,
142 m_triggerTowerLocation + "Muon");
143 } else sc = StatusCode::FAILURE;
144 if ( sc.isFailure() || !triggerTowerMuonTES ) {
145 msg(MSG::DEBUG) << "No Tile Muon Trigger Tower container found" << endmsg;
146 }
147
148 //Retrieve Core and Overlap CPM Towers from SG
149 const xAOD::CPMTowerContainer* cpmTowerTES = 0;
150 const xAOD::CPMTowerContainer* cpmTowerOvTES = 0;
151 sc = evtStore()->retrieve(cpmTowerTES, m_cpmTowerLocation);
152 if ( sc.isFailure() || !cpmTowerTES ) {
153 msg(MSG::DEBUG) << "No Core CPM Tower container found" << endmsg;
154 }
156 sc = evtStore()->retrieve(cpmTowerOvTES, m_cpmTowerLocationOverlap);
157 } else sc = StatusCode::FAILURE;
158 if ( sc.isFailure() || !cpmTowerOvTES ) {
159 msg(MSG::DEBUG) << "No Overlap CPM Tower container found" << endmsg;
160 }
161
162 //Retrieve CPM RoIs from SG
163 const xAOD::CPMTobRoIContainer* cpmRoiTES = 0;
164 sc = evtStore()->retrieve( cpmRoiTES, m_cpmRoiLocation);
165 if ( sc.isFailure() || !cpmRoiTES ) {
166 msg(MSG::DEBUG) << "No CPM RoIs container found" << endmsg;
167 }
168
169 //Retrieve CMX-CP TOBs from SG
170 const xAOD::CMXCPTobContainer* cmxCpTobTES = 0;
171 sc = evtStore()->retrieve( cmxCpTobTES, m_cmxCpTobLocation);
172 if ( sc.isFailure() || !cmxCpTobTES ) {
173 msg(MSG::DEBUG) << "No CMX-CP TOB container found" << endmsg;
174 }
175
176 //Retrieve CMX-CP Hits from SG
177 const xAOD::CMXCPHitsContainer* cmxCpHitsTES = 0;
178 sc = evtStore()->retrieve( cmxCpHitsTES, m_cmxCpHitsLocation);
179 if ( sc.isFailure() || !cmxCpHitsTES ) {
180 msg(MSG::DEBUG) << "No CMX-CP Hits container found" << endmsg;
181 }
182
183 //Retrieve Core and Overlap Jet Elements from SG
184 const xAOD::JetElementContainer* jetElementTES = 0;
185 const xAOD::JetElementContainer* jetElementOvTES = 0;
186 sc = evtStore()->retrieve(jetElementTES, m_jetElementLocation);
187 if ( sc.isFailure() || !jetElementTES ) {
188 msg(MSG::DEBUG) << "No Core Jet Element container found" << endmsg;
189 }
191 sc = evtStore()->retrieve(jetElementOvTES, m_jetElementLocationOverlap);
192 } else sc = StatusCode::FAILURE;
193 if ( sc.isFailure() || !jetElementOvTES ) {
194 msg(MSG::DEBUG) << "No Overlap Jet Element container found" << endmsg;
195 }
196
197 //Retrieve JEM RoIs from SG
198 const xAOD::JEMTobRoIContainer* jemRoiTES = 0;
199 sc = evtStore()->retrieve( jemRoiTES, m_jemRoiLocation);
200 if ( sc.isFailure() || !jemRoiTES ) {
201 msg(MSG::DEBUG) << "No DAQ JEM RoIs container found" << endmsg;
202 }
203
204 //Retrieve CMX-Jet TOBs from SG
205 const xAOD::CMXJetTobContainer* cmxJetTobTES = 0;
206 sc = evtStore()->retrieve( cmxJetTobTES, m_cmxJetTobLocation);
207 if ( sc.isFailure() || !cmxJetTobTES ) {
208 msg(MSG::DEBUG) << "No CMX-Jet TOB container found" << endmsg;
209 }
210
211 //Retrieve CMX-Jet Hits from SG
212 const xAOD::CMXJetHitsContainer* cmxJetHitsTES = 0;
213 sc = evtStore()->retrieve( cmxJetHitsTES, m_cmxJetHitsLocation);
214 if ( sc.isFailure() || !cmxJetHitsTES ) {
215 msg(MSG::DEBUG) << "No CMX-Jet Hits container found" << endmsg;
216 }
217
218 //Retrieve CMX RoIs from SG
219 const xAOD::CMXRoIContainer* cmxRoiTES = 0;
220 sc = evtStore()->retrieve( cmxRoiTES, m_cmxRoiLocation);
221 if ( sc.isFailure() || !cmxRoiTES ) {
222 msg(MSG::DEBUG) << "No CMX RoIs container found" << endmsg;
223 }
224
225 //Retrieve JEM Et Sums from SG
226 const xAOD::JEMEtSumsContainer* jemEtSumsTES = 0;
227 sc = evtStore()->retrieve( jemEtSumsTES, m_jemEtSumsLocation);
228 if ( sc.isFailure() || !jemEtSumsTES ) {
229 msg(MSG::DEBUG) << "No JEM Et Sums container found" << endmsg;
230 }
231
232 //Retrieve CMX Et Sums from SG
233 const xAOD::CMXEtSumsContainer* cmxEtSumsTES = 0;
234 sc = evtStore()->retrieve( cmxEtSumsTES, m_cmxEtSumsLocation);
235 if ( sc.isFailure() || !cmxEtSumsTES ) {
236 msg(MSG::DEBUG) << "No CMX-Energy Et Sums container found" << endmsg;
237 }
238
239 //Retrieve ROD Headers from SG
240 const xAOD::RODHeaderContainer* rodTES = 0;
242 sc = evtStore()->retrieve(rodTES, m_rodHeaderLocation);
243 } else sc = StatusCode::FAILURE;
244 if ( sc.isFailure() || !rodTES ) {
245 msg(MSG::DEBUG) << "No ROD Header container found" << endmsg;
246 }
247
248 //Retrieve CP RoIB ROD Headers from SG
249 const xAOD::RODHeaderContainer* cpRoibTES = 0;
251 sc = evtStore()->retrieve(cpRoibTES, m_cpRoibRodHeaderLocation);
252 } else sc = StatusCode::FAILURE;
253 if ( sc.isFailure() || !cpRoibTES ) {
254 msg(MSG::DEBUG) << "No CP RoIB ROD Header container found" << endmsg;
255 }
256
257 //Retrieve JEP RoIB ROD Headers from SG
258 const xAOD::RODHeaderContainer* jepRoibTES = 0;
260 sc = evtStore()->retrieve(jepRoibTES, m_jepRoibRodHeaderLocation);
261 } else sc = StatusCode::FAILURE;
262 if ( sc.isFailure() || !jepRoibTES ) {
263 msg(MSG::DEBUG) << "No JEP RoIB ROD Header container found" << endmsg;
264 }
265
266 //Retrieve ROB Status and Unpacking Error vector from SG
267 errColl = 0;
268 if (evtStore()->contains<std::vector<unsigned int> >(m_robErrorVectorLocation)) {
269 sc = evtStore()->retrieve(errColl, m_robErrorVectorLocation);
270 } else sc = StatusCode::FAILURE;
271 if ( sc.isFailure() || !errColl ) {
272 msg(MSG::DEBUG) << "No ROB Status and Unpacking Error vector found"
273 << endmsg;
274 }
275
276 return sc;
277}
CMXCPTobContainer_v1 CMXCPTobContainer
Define the latest version of the CMXCPTob class.
CMXJetHitsContainer_v1 CMXJetHitsContainer
Define the latest version of the CMXJetHits class.
CMXJetTobContainer_v1 CMXJetTobContainer
Define the latest version of the CMXJetTob class.
JetElementContainer_v2 JetElementContainer
Define the latest version of the JetElement container.
CPMTowerContainer_v2 CPMTowerContainer
Define the latest version of the CPMHits container.
CMXEtSumsContainer_v1 CMXEtSumsContainer
Define the latest version of the CMXEtSums class.
CMXCPHitsContainer_v1 CMXCPHitsContainer
Define the latest version of the CMXCPHits class.
TriggerTowerContainer_v2 TriggerTowerContainer
Define the latest version of the TriggerTower container.
CMXRoIContainer_v1 CMXRoIContainer
Define the latest version of the CMXRoI container.
JEMTobRoIContainer_v1 JEMTobRoIContainer
Define the latest version of the JEMTobRoI class.
JEMEtSumsContainer_v2 JEMEtSumsContainer
Define the latest version of the JEMEtSums container.
CPMTobRoIContainer_v1 CPMTobRoIContainer
Define the latest version of the CPMTobRoI class.

◆ robOrUnpackingError()

bool LVL1::TrigT1CaloMonErrorTool::robOrUnpackingError ( )
virtual

Return true if current event has any ROB or unpacking errors.

Implements LVL1::ITrigT1CaloMonErrorTool.

Definition at line 376 of file TrigT1CaloMonErrorTool.cxx.

377{
378 const std::vector<unsigned int>* errVecTES = 0;
379 StatusCode sc = retrieve(errVecTES);
380 return (sc.isSuccess() && !errVecTES->empty());
381}
StatusCode retrieve(const std::vector< unsigned int > *&errColl)
Retrieve error vector.

◆ 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 asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

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

Member Data Documentation

◆ m_cmxCpHitsLocation

std::string LVL1::TrigT1CaloMonErrorTool::m_cmxCpHitsLocation
private

CMX-CP hits container StoreGate key.

Definition at line 92 of file TrigT1CaloMonErrorTool.h.

◆ m_cmxCpTobLocation

std::string LVL1::TrigT1CaloMonErrorTool::m_cmxCpTobLocation
private

CMX-CP TOB container StoreGate key.

Definition at line 90 of file TrigT1CaloMonErrorTool.h.

◆ m_cmxEtSumsLocation

std::string LVL1::TrigT1CaloMonErrorTool::m_cmxEtSumsLocation
private

CMX Et sums container StoreGate key.

Definition at line 110 of file TrigT1CaloMonErrorTool.h.

◆ m_cmxJetHitsLocation

std::string LVL1::TrigT1CaloMonErrorTool::m_cmxJetHitsLocation
private

CMX-Jet hits container StoreGate key.

Definition at line 102 of file TrigT1CaloMonErrorTool.h.

◆ m_cmxJetTobLocation

std::string LVL1::TrigT1CaloMonErrorTool::m_cmxJetTobLocation
private

CMX-Jet TOB container StoreGate key.

Definition at line 100 of file TrigT1CaloMonErrorTool.h.

◆ m_cmxRoiLocation

std::string LVL1::TrigT1CaloMonErrorTool::m_cmxRoiLocation
private

CMX RoI container StoreGate key.

Definition at line 106 of file TrigT1CaloMonErrorTool.h.

◆ m_cpmRoiLocation

std::string LVL1::TrigT1CaloMonErrorTool::m_cpmRoiLocation
private

CPM RoI container StoreGate key.

Definition at line 94 of file TrigT1CaloMonErrorTool.h.

◆ m_cpmTowerLocation

std::string LVL1::TrigT1CaloMonErrorTool::m_cpmTowerLocation
private

CPM core tower container StoreGate key.

Definition at line 86 of file TrigT1CaloMonErrorTool.h.

◆ m_cpmTowerLocationOverlap

std::string LVL1::TrigT1CaloMonErrorTool::m_cpmTowerLocationOverlap
private

CPM overlap tower container StoreGate key.

Definition at line 88 of file TrigT1CaloMonErrorTool.h.

◆ m_cpRoibRodHeaderLocation

std::string LVL1::TrigT1CaloMonErrorTool::m_cpRoibRodHeaderLocation
private

CP RoIB ROD header container StoreGate key.

Definition at line 114 of file TrigT1CaloMonErrorTool.h.

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

SG::ReadHandleKey<xAOD::EventInfo> LVL1::TrigT1CaloMonErrorTool::m_eventInfoKey { this, "EventInfoKey", "EventInfo", "SG key for EventInfo" }
private

Definition at line 122 of file TrigT1CaloMonErrorTool.h.

123{ this, "EventInfoKey", "EventInfo", "SG key for EventInfo" };

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

std::string LVL1::TrigT1CaloMonErrorTool::m_flagCorruptEvents
private

Flag corrupt events.

Definition at line 120 of file TrigT1CaloMonErrorTool.h.

◆ m_jemEtSumsLocation

std::string LVL1::TrigT1CaloMonErrorTool::m_jemEtSumsLocation
private

JEM Et sums container StoreGate key.

Definition at line 108 of file TrigT1CaloMonErrorTool.h.

◆ m_jemRoiLocation

std::string LVL1::TrigT1CaloMonErrorTool::m_jemRoiLocation
private

JEM RoI container StoreGate key.

Definition at line 104 of file TrigT1CaloMonErrorTool.h.

◆ m_jepRoibRodHeaderLocation

std::string LVL1::TrigT1CaloMonErrorTool::m_jepRoibRodHeaderLocation
private

JEP RoIB ROD header container StoreGate key.

Definition at line 116 of file TrigT1CaloMonErrorTool.h.

◆ m_jetElementLocation

std::string LVL1::TrigT1CaloMonErrorTool::m_jetElementLocation
private

Core Jet Element container StoreGate key.

Definition at line 96 of file TrigT1CaloMonErrorTool.h.

◆ m_jetElementLocationOverlap

std::string LVL1::TrigT1CaloMonErrorTool::m_jetElementLocationOverlap
private

Overlap Jet Element container StoreGate key.

Definition at line 98 of file TrigT1CaloMonErrorTool.h.

◆ m_robErrorVectorLocation

std::string LVL1::TrigT1CaloMonErrorTool::m_robErrorVectorLocation
private

ROB and Unpacking Error vector StoreGate key.

Definition at line 118 of file TrigT1CaloMonErrorTool.h.

◆ m_rodHeaderLocation

std::string LVL1::TrigT1CaloMonErrorTool::m_rodHeaderLocation
private

ROD header container StoreGate key.

Definition at line 112 of file TrigT1CaloMonErrorTool.h.

◆ m_triggerTowerLocation

std::string LVL1::TrigT1CaloMonErrorTool::m_triggerTowerLocation
private

Trigger Tower container StoreGate key.

Definition at line 84 of file TrigT1CaloMonErrorTool.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: