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

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

#include <TrigT1CaloMonErrorToolV1.h>

Inheritance diagram for LVL1::TrigT1CaloMonErrorToolV1:
Collaboration diagram for LVL1::TrigT1CaloMonErrorToolV1:

Public Member Functions

 TrigT1CaloMonErrorToolV1 (const std::string &name)
virtual ~TrigT1CaloMonErrorToolV1 ()
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_cpmHitsLocation
 CPM hits container StoreGate key.
std::string m_cmmCpHitsLocation
 CMM-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_jemHitsLocation
 JEM hits container StoreGate key.
std::string m_cmmJetHitsLocation
 CMM-Jet hits container StoreGate key.
std::string m_jemRoiLocation
 JEM RoI container StoreGate key.
std::string m_cmmRoiLocation
 CMM RoI container StoreGate key.
std::string m_jemEtSumsLocation
 JEM Et sums container StoreGate key.
std::string m_cmmEtSumsLocation
 CMM 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.

Run 1 data only.

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 60 of file TrigT1CaloMonErrorToolV1.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

◆ TrigT1CaloMonErrorToolV1()

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

Definition at line 35 of file TrigT1CaloMonErrorToolV1.cxx.

37 : AsgTool(name)
38{
39
40 declareProperty("TriggerTowerLocation",
43 declareProperty("CPMTowerLocation",
45 declareProperty("CPMTowerLocationOverlap",
48 declareProperty("CPMHitsLocation",
50 declareProperty("CMMCPHitsLocation",
52 declareProperty("CPMRoILocation",
54 declareProperty("JetElementLocation",
57 declareProperty("JetElementLocationOverlap",
60 declareProperty("JEMHitsLocation",
62 declareProperty("CMMJetHitsLocation",
65 declareProperty("JEMRoILocation",
67 declareProperty("CMMRoILocation",
69 declareProperty("JEMEtSumsLocation",
71 declareProperty("CMMEtSumsLocation",
73 declareProperty("RodHeaderLocation",
75 declareProperty("RodHeaderLocationCPRoIB",
77 declareProperty("RodHeaderLocationJEPRoIB",
79 declareProperty("L1CaloErrorLocation",
80 m_robErrorVectorLocation = "L1CaloUnpackingErrors");
81 declareProperty("FlagCorruptEvents", m_flagCorruptEvents = "FullEventTimeout",
82 "Can be FullEventTimeout, AnyROBOrUnpackingError or None");
83
84}
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
static const std::string CMMRoILocation
static const std::string TriggerTowerLocation
static const std::string RODHeaderLocation
static const std::string CPMRoILocation
static const std::string JetElementLocation
static const std::string CMMEtSumsLocation
static const std::string JEMRoILocation
static const std::string CMMJetHitsLocation
static const std::string JEMEtSumsLocation
static const std::string CMMCPHitsLocation
static const std::string CPMTowerLocation
static const std::string CPMHitsLocation
static const std::string JEMHitsLocation
std::string m_jemEtSumsLocation
JEM Et sums container StoreGate key.
std::string m_cpmHitsLocation
CPM hits container StoreGate key.
std::string m_jemRoiLocation
JEM RoI container StoreGate key.
std::string m_jemHitsLocation
JEM hits container StoreGate key.
std::string m_jetElementLocationOverlap
Overlap Jet Element container StoreGate key.
std::string m_cmmRoiLocation
CMM RoI container StoreGate key.
std::string m_rodHeaderLocation
ROD header 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_cpRoibRodHeaderLocation
CP RoIB ROD header container StoreGate key.
std::string m_cpmTowerLocationOverlap
CPM overlap tower container StoreGate key.
std::string m_robErrorVectorLocation
ROB and Unpacking Error vector StoreGate key.
std::string m_cpmTowerLocation
CPM core tower container StoreGate key.
std::string m_cmmCpHitsLocation
CMM-CP hits 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_cmmJetHitsLocation
CMM-Jet hits container StoreGate key.
std::string m_flagCorruptEvents
Flag corrupt events.
std::string m_cmmEtSumsLocation
CMM Et sums container StoreGate key.
AsgTool(const std::string &name)
Constructor specifying the tool instance's name.
Definition AsgTool.cxx:58

◆ ~TrigT1CaloMonErrorToolV1()

LVL1::TrigT1CaloMonErrorToolV1::~TrigT1CaloMonErrorToolV1 ( )
virtual

Definition at line 88 of file TrigT1CaloMonErrorToolV1.cxx.

89{
90}

Member Function Documentation

◆ corrupt()

bool LVL1::TrigT1CaloMonErrorToolV1::corrupt ( )
virtual

Return true if current event has any corruption errors.

Implements LVL1::ITrigT1CaloMonErrorTool.

Definition at line 289 of file TrigT1CaloMonErrorToolV1.cxx.

290{
291 if (m_flagCorruptEvents == "AnyROBOrUnpackingError") {
292 return robOrUnpackingError();
293 } else if (m_flagCorruptEvents == "FullEventTimeout") {
295 }
296
297 return false;
298}
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::TrigT1CaloMonErrorToolV1::finalize ( )
virtual

Definition at line 104 of file TrigT1CaloMonErrorToolV1.cxx.

105{
106 return StatusCode::SUCCESS;
107}

◆ flagCorruptEvents()

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

Return corrupt events flag string.

Implements LVL1::ITrigT1CaloMonErrorTool.

Definition at line 81 of file TrigT1CaloMonErrorToolV1.h.

81{ return m_flagCorruptEvents; }

◆ fullEventTimeout()

bool LVL1::TrigT1CaloMonErrorToolV1::fullEventTimeout ( )
virtual

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

Implements LVL1::ITrigT1CaloMonErrorTool.

Definition at line 302 of file TrigT1CaloMonErrorToolV1.cxx.

303{
304 SG::ReadHandle<xAOD::EventInfo> evtInfo (m_eventInfoKey);
305 unsigned int evtStatus =evtInfo->statusElement();
306 return (((evtStatus >> 2) & 0x1) == 1);
307}
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::TrigT1CaloMonErrorToolV1::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 94 of file TrigT1CaloMonErrorToolV1.cxx.

95{
96 msg(MSG::INFO) << "Initializing " << name() << endmsg;
97
98 ATH_CHECK( m_eventInfoKey.initialize() );
99 return StatusCode::SUCCESS;
100}
#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::TrigT1CaloMonErrorToolV1::missingFragment ( )
virtual

Return true if any ROB/ROD fragments are missing.

Implements LVL1::ITrigT1CaloMonErrorTool.

Definition at line 311 of file TrigT1CaloMonErrorToolV1.cxx.

312{
313
314 typedef DataVector<LVL1::RODHeader> RodHeaderCollection;
315
316 const bool debug = msgLvl(MSG::DEBUG);
317
319
320 //Retrieve DAQ ROD Headers from SG
321 const RodHeaderCollection* rodTES = 0;
323 sc = evtStore()->retrieve(rodTES, m_rodHeaderLocation);
324 } else sc = StatusCode::FAILURE;
325 if ( sc.isFailure() || !rodTES ) {
326 if (debug) msg(MSG::DEBUG) << "No DAQ ROD Header container found"
327 << endmsg;
328 }
329
330 //Retrieve CP RoIB ROD Headers from SG
331 const RodHeaderCollection* cpRoibTES = 0;
333 sc = evtStore()->retrieve(cpRoibTES, m_cpRoibRodHeaderLocation);
334 } else sc = StatusCode::FAILURE;
335 if ( sc.isFailure() || !cpRoibTES ) {
336 if (debug) msg(MSG::DEBUG) << "No CP RoIB ROD Header container found"
337 << endmsg;
338 }
339
340 //Retrieve JEP RoIB ROD Headers from SG
341 const RodHeaderCollection* jepRoibTES = 0;
343 sc = evtStore()->retrieve(jepRoibTES, m_jepRoibRodHeaderLocation);
344 } else sc = StatusCode::FAILURE;
345 if ( sc.isFailure() || !jepRoibTES ) {
346 if (debug) msg(MSG::DEBUG) << "No JEP RoIB ROD Header container found"
347 << endmsg;
348 }
349
350 // Record fragments present
351 std::vector<int> noFragmentFlags(80, 1);
352 std::vector<const RodHeaderCollection*> cols;
353 if (rodTES) cols.push_back(rodTES);
354 if (cpRoibTES) cols.push_back(cpRoibTES);
355 if (jepRoibTES) cols.push_back(jepRoibTES);
356 std::vector<const RodHeaderCollection*>::const_iterator colIter =
357 cols.begin();
358 std::vector<const RodHeaderCollection*>::const_iterator colIterEnd =
359 cols.end();
360 for (; colIter != colIterEnd; ++colIter) {
361 RodHeaderCollection::const_iterator iter = (*colIter)->begin();
362 RodHeaderCollection::const_iterator iterEnd = (*colIter)->end();
363 for (; iter != iterEnd; ++iter) {
364 const LVL1::RODHeader* header = *iter;
365 const int crate = header->crate();
366 const int slink = header->sLink();
367 const int dataType = header->dataType();
368 const int rod = crate + dataType * 6;
369 const int pos = rod * 4 + slink;
370 if (pos >= 80) continue;
371 noFragmentFlags[pos] = 0;
372 }
373 }
374
375 // Any fragments missing?
376 for (int pos = 0; pos < 80; ++pos) {
377 if ((pos % 2) && (pos >= 56 || (pos >= 32 && pos < 48))) continue;
378 if (noFragmentFlags[pos]) return true;
379 }
380
381 return false;
382}
static Double_t sc
const bool debug
bool msgLvl(const MSG::Level lvl) const
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.

◆ 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::TrigT1CaloMonErrorToolV1::retrieve ( const std::vector< unsigned int > *& errColl)
virtual

Retrieve error vector.

Implements LVL1::ITrigT1CaloMonErrorTool.

Definition at line 111 of file TrigT1CaloMonErrorToolV1.cxx.

113{
114
115 // Must ensure bytestream converters have unpacked all our data
116 // before retrieving error vector.
117
118 typedef DataVector<LVL1::TriggerTower> TriggerTowerCollection;
119 typedef DataVector<LVL1::CPMTower> CpmTowerCollection;
120 typedef DataVector<LVL1::CPMHits> CpmHitsCollection;
121 typedef DataVector<LVL1::CMMCPHits> CmmCpHitsCollection;
122 typedef DataVector<LVL1::CPMRoI> CpmRoiCollection;
123 typedef DataVector<LVL1::JetElement> JetElementCollection;
124 typedef DataVector<LVL1::JEMHits> JemHitsCollection;
125 typedef DataVector<LVL1::CMMJetHits> CmmJetHitsCollection;
126 typedef DataVector<LVL1::JEMRoI> JemRoiCollection;
127 typedef DataVector<LVL1::JEMEtSums> JemEtSumsCollection;
128 typedef DataVector<LVL1::CMMEtSums> CmmEtSumsCollection;
129 typedef DataVector<LVL1::RODHeader> RodHeaderCollection;
130
132
133 //Retrieve Trigger Towers from SG
134 const TriggerTowerCollection* triggerTowerTES = 0;
135 const TriggerTowerCollection* triggerTowerSpareTES = 0;
136 const TriggerTowerCollection* triggerTowerMuonTES = 0;
137 sc = evtStore()->retrieve(triggerTowerTES, m_triggerTowerLocation);
138 if ( sc.isFailure() || !triggerTowerTES ) {
139 msg(MSG::DEBUG) << "No Trigger Tower container found" << endmsg;
140 }
142 sc = evtStore()->retrieve(triggerTowerSpareTES,
143 m_triggerTowerLocation + "Spare");
144 } else sc = StatusCode::FAILURE;
145 if ( sc.isFailure() || !triggerTowerSpareTES ) {
146 msg(MSG::DEBUG) << "No Spare Trigger Tower container found" << endmsg;
147 }
149 sc = evtStore()->retrieve(triggerTowerMuonTES,
150 m_triggerTowerLocation + "Muon");
151 } else sc = StatusCode::FAILURE;
152 if ( sc.isFailure() || !triggerTowerMuonTES ) {
153 msg(MSG::DEBUG) << "No Tile Muon Trigger Tower container found" << endmsg;
154 }
155
156 //Retrieve Core and Overlap CPM Towers from SG
157 const CpmTowerCollection* cpmTowerTES = 0;
158 const CpmTowerCollection* cpmTowerOvTES = 0;
159 sc = evtStore()->retrieve(cpmTowerTES, m_cpmTowerLocation);
160 if ( sc.isFailure() || !cpmTowerTES ) {
161 msg(MSG::DEBUG) << "No Core CPM Tower container found" << endmsg;
162 }
164 sc = evtStore()->retrieve(cpmTowerOvTES, m_cpmTowerLocationOverlap);
165 } else sc = StatusCode::FAILURE;
166 if ( sc.isFailure() || !cpmTowerOvTES ) {
167 msg(MSG::DEBUG) << "No Overlap CPM Tower container found" << endmsg;
168 }
169
170 //Retrieve CPM RoIs from SG
171 const CpmRoiCollection* cpmRoiTES = 0;
172 sc = evtStore()->retrieve( cpmRoiTES, m_cpmRoiLocation);
173 if ( sc.isFailure() || !cpmRoiTES ) {
174 msg(MSG::DEBUG) << "No CPM RoIs container found" << endmsg;
175 }
176
177 //Retrieve CPM Hits from SG
178 const CpmHitsCollection* cpmHitsTES = 0;
179 sc = evtStore()->retrieve( cpmHitsTES, m_cpmHitsLocation);
180 if ( sc.isFailure() || !cpmHitsTES ) {
181 msg(MSG::DEBUG) << "No CPM Hits container found" << endmsg;
182 }
183
184 //Retrieve CMM-CP Hits from SG
185 const CmmCpHitsCollection* cmmCpHitsTES = 0;
186 sc = evtStore()->retrieve( cmmCpHitsTES, m_cmmCpHitsLocation);
187 if ( sc.isFailure() || !cmmCpHitsTES ) {
188 msg(MSG::DEBUG) << "No CMM-CP Hits container found" << endmsg;
189 }
190
191 //Retrieve Core and Overlap Jet Elements from SG
192 const JetElementCollection* jetElementTES = 0;
193 const JetElementCollection* jetElementOvTES = 0;
194 sc = evtStore()->retrieve(jetElementTES, m_jetElementLocation);
195 if ( sc.isFailure() || !jetElementTES ) {
196 msg(MSG::DEBUG) << "No Core Jet Element container found" << endmsg;
197 }
199 sc = evtStore()->retrieve(jetElementOvTES, m_jetElementLocationOverlap);
200 } else sc = StatusCode::FAILURE;
201 if ( sc.isFailure() || !jetElementOvTES ) {
202 msg(MSG::DEBUG) << "No Overlap Jet Element container found" << endmsg;
203 }
204
205 //Retrieve JEM RoIs from SG
206 const JemRoiCollection* jemRoiTES = 0;
207 sc = evtStore()->retrieve( jemRoiTES, m_jemRoiLocation);
208 if ( sc.isFailure() || !jemRoiTES ) {
209 msg(MSG::DEBUG) << "No DAQ JEM RoIs container found" << endmsg;
210 }
211
212 //Retrieve JEM Hits from SG
213 const JemHitsCollection* jemHitsTES = 0;
214 sc = evtStore()->retrieve( jemHitsTES, m_jemHitsLocation);
215 if ( sc.isFailure() || !jemHitsTES ) {
216 msg(MSG::DEBUG) << "No JEM Hits container found" << endmsg;
217 }
218
219 //Retrieve CMM-Jet Hits from SG
220 const CmmJetHitsCollection* cmmJetHitsTES = 0;
221 sc = evtStore()->retrieve( cmmJetHitsTES, m_cmmJetHitsLocation);
222 if ( sc.isFailure() || !cmmJetHitsTES ) {
223 msg(MSG::DEBUG) << "No CMM-Jet Hits container found" << endmsg;
224 }
225
226 //Retrieve CMM RoIs from SG
227 const LVL1::CMMRoI* cmmRoiTES = 0;
228 sc = evtStore()->retrieve( cmmRoiTES, m_cmmRoiLocation);
229 if ( sc.isFailure() || !cmmRoiTES ) {
230 msg(MSG::DEBUG) << "No CMM RoIs container found" << endmsg;
231 }
232
233 //Retrieve JEM Et Sums from SG
234 const JemEtSumsCollection* jemEtSumsTES = 0;
235 sc = evtStore()->retrieve( jemEtSumsTES, m_jemEtSumsLocation);
236 if ( sc.isFailure() || !jemEtSumsTES ) {
237 msg(MSG::DEBUG) << "No JEM Et Sums container found" << endmsg;
238 }
239
240 //Retrieve CMM Et Sums from SG
241 const CmmEtSumsCollection* cmmEtSumsTES = 0;
242 sc = evtStore()->retrieve( cmmEtSumsTES, m_cmmEtSumsLocation);
243 if ( sc.isFailure() || !cmmEtSumsTES ) {
244 msg(MSG::DEBUG) << "No CMM-Energy Et Sums container found" << endmsg;
245 }
246
247 //Retrieve ROD Headers from SG
248 const RodHeaderCollection* rodTES = 0;
250 sc = evtStore()->retrieve(rodTES, m_rodHeaderLocation);
251 } else sc = StatusCode::FAILURE;
252 if ( sc.isFailure() || !rodTES ) {
253 msg(MSG::DEBUG) << "No ROD Header container found" << endmsg;
254 }
255
256 //Retrieve CP RoIB ROD Headers from SG
257 const RodHeaderCollection* cpRoibTES = 0;
259 sc = evtStore()->retrieve(cpRoibTES, m_cpRoibRodHeaderLocation);
260 } else sc = StatusCode::FAILURE;
261 if ( sc.isFailure() || !cpRoibTES ) {
262 msg(MSG::DEBUG) << "No CP RoIB ROD Header container found" << endmsg;
263 }
264
265 //Retrieve JEP RoIB ROD Headers from SG
266 const RodHeaderCollection* jepRoibTES = 0;
268 sc = evtStore()->retrieve(jepRoibTES, m_jepRoibRodHeaderLocation);
269 } else sc = StatusCode::FAILURE;
270 if ( sc.isFailure() || !jepRoibTES ) {
271 msg(MSG::DEBUG) << "No JEP RoIB ROD Header container found" << endmsg;
272 }
273
274 //Retrieve ROB Status and Unpacking Error vector from SG
275 errColl = 0;
276 if (evtStore()->contains<std::vector<unsigned int> >(m_robErrorVectorLocation)) {
277 sc = evtStore()->retrieve(errColl, m_robErrorVectorLocation);
278 } else sc = StatusCode::FAILURE;
279 if ( sc.isFailure() || !errColl ) {
280 msg(MSG::DEBUG) << "No ROB Status and Unpacking Error vector found"
281 << endmsg;
282 }
283
284 return sc;
285}
DataVector< LVL1::JetElement > JetElementCollection
DataVector< LVL1::TriggerTower > TriggerTowerCollection

◆ robOrUnpackingError()

bool LVL1::TrigT1CaloMonErrorToolV1::robOrUnpackingError ( )
virtual

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

Implements LVL1::ITrigT1CaloMonErrorTool.

Definition at line 386 of file TrigT1CaloMonErrorToolV1.cxx.

387{
388 const std::vector<unsigned int>* errVecTES = 0;
389 StatusCode sc = retrieve(errVecTES);
390 return (sc.isSuccess() && !errVecTES->empty());
391}
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_cmmCpHitsLocation

std::string LVL1::TrigT1CaloMonErrorToolV1::m_cmmCpHitsLocation
private

CMM-CP hits container StoreGate key.

Definition at line 94 of file TrigT1CaloMonErrorToolV1.h.

◆ m_cmmEtSumsLocation

std::string LVL1::TrigT1CaloMonErrorToolV1::m_cmmEtSumsLocation
private

CMM Et sums container StoreGate key.

Definition at line 112 of file TrigT1CaloMonErrorToolV1.h.

◆ m_cmmJetHitsLocation

std::string LVL1::TrigT1CaloMonErrorToolV1::m_cmmJetHitsLocation
private

CMM-Jet hits container StoreGate key.

Definition at line 104 of file TrigT1CaloMonErrorToolV1.h.

◆ m_cmmRoiLocation

std::string LVL1::TrigT1CaloMonErrorToolV1::m_cmmRoiLocation
private

CMM RoI container StoreGate key.

Definition at line 108 of file TrigT1CaloMonErrorToolV1.h.

◆ m_cpmHitsLocation

std::string LVL1::TrigT1CaloMonErrorToolV1::m_cpmHitsLocation
private

CPM hits container StoreGate key.

Definition at line 92 of file TrigT1CaloMonErrorToolV1.h.

◆ m_cpmRoiLocation

std::string LVL1::TrigT1CaloMonErrorToolV1::m_cpmRoiLocation
private

CPM RoI container StoreGate key.

Definition at line 96 of file TrigT1CaloMonErrorToolV1.h.

◆ m_cpmTowerLocation

std::string LVL1::TrigT1CaloMonErrorToolV1::m_cpmTowerLocation
private

CPM core tower container StoreGate key.

Definition at line 88 of file TrigT1CaloMonErrorToolV1.h.

◆ m_cpmTowerLocationOverlap

std::string LVL1::TrigT1CaloMonErrorToolV1::m_cpmTowerLocationOverlap
private

CPM overlap tower container StoreGate key.

Definition at line 90 of file TrigT1CaloMonErrorToolV1.h.

◆ m_cpRoibRodHeaderLocation

std::string LVL1::TrigT1CaloMonErrorToolV1::m_cpRoibRodHeaderLocation
private

CP RoIB ROD header container StoreGate key.

Definition at line 116 of file TrigT1CaloMonErrorToolV1.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::TrigT1CaloMonErrorToolV1::m_eventInfoKey { this, "EventInfoKey", "EventInfo", "SG key for EventInfo" }
private

Definition at line 125 of file TrigT1CaloMonErrorToolV1.h.

126{ 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::TrigT1CaloMonErrorToolV1::m_flagCorruptEvents
private

Flag corrupt events.

Definition at line 122 of file TrigT1CaloMonErrorToolV1.h.

◆ m_jemEtSumsLocation

std::string LVL1::TrigT1CaloMonErrorToolV1::m_jemEtSumsLocation
private

JEM Et sums container StoreGate key.

Definition at line 110 of file TrigT1CaloMonErrorToolV1.h.

◆ m_jemHitsLocation

std::string LVL1::TrigT1CaloMonErrorToolV1::m_jemHitsLocation
private

JEM hits container StoreGate key.

Definition at line 102 of file TrigT1CaloMonErrorToolV1.h.

◆ m_jemRoiLocation

std::string LVL1::TrigT1CaloMonErrorToolV1::m_jemRoiLocation
private

JEM RoI container StoreGate key.

Definition at line 106 of file TrigT1CaloMonErrorToolV1.h.

◆ m_jepRoibRodHeaderLocation

std::string LVL1::TrigT1CaloMonErrorToolV1::m_jepRoibRodHeaderLocation
private

JEP RoIB ROD header container StoreGate key.

Definition at line 118 of file TrigT1CaloMonErrorToolV1.h.

◆ m_jetElementLocation

std::string LVL1::TrigT1CaloMonErrorToolV1::m_jetElementLocation
private

Core Jet Element container StoreGate key.

Definition at line 98 of file TrigT1CaloMonErrorToolV1.h.

◆ m_jetElementLocationOverlap

std::string LVL1::TrigT1CaloMonErrorToolV1::m_jetElementLocationOverlap
private

Overlap Jet Element container StoreGate key.

Definition at line 100 of file TrigT1CaloMonErrorToolV1.h.

◆ m_robErrorVectorLocation

std::string LVL1::TrigT1CaloMonErrorToolV1::m_robErrorVectorLocation
private

ROB and Unpacking Error vector StoreGate key.

Definition at line 120 of file TrigT1CaloMonErrorToolV1.h.

◆ m_rodHeaderLocation

std::string LVL1::TrigT1CaloMonErrorToolV1::m_rodHeaderLocation
private

ROD header container StoreGate key.

Definition at line 114 of file TrigT1CaloMonErrorToolV1.h.

◆ m_triggerTowerLocation

std::string LVL1::TrigT1CaloMonErrorToolV1::m_triggerTowerLocation
private

Trigger Tower container StoreGate key.

Definition at line 86 of file TrigT1CaloMonErrorToolV1.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: