6#include "GaudiKernel/IInterface.h"
7#include "GaudiKernel/MsgStream.h"
8#include "GaudiKernel/StatusCode.h"
43 const std::string&
name)
87 "Can be FullEventTimeout, AnyROBOrUnpackingError or None");
104 return StatusCode::SUCCESS;
111 return StatusCode::SUCCESS;
130 if (
sc.isFailure() || !triggerTowerTES ) {
131 msg(MSG::DEBUG) <<
"No Trigger Tower container found" <<
endmsg;
134 sc =
evtStore()->retrieve(triggerTowerSpareTES,
136 }
else sc = StatusCode::FAILURE;
137 if (
sc.isFailure() || !triggerTowerSpareTES ) {
138 msg(MSG::DEBUG) <<
"No Spare Trigger Tower container found" <<
endmsg;
141 sc =
evtStore()->retrieve(triggerTowerMuonTES,
143 }
else sc = StatusCode::FAILURE;
144 if (
sc.isFailure() || !triggerTowerMuonTES ) {
145 msg(MSG::DEBUG) <<
"No Tile Muon Trigger Tower container found" <<
endmsg;
152 if (
sc.isFailure() || !cpmTowerTES ) {
153 msg(MSG::DEBUG) <<
"No Core CPM Tower container found" <<
endmsg;
157 }
else sc = StatusCode::FAILURE;
158 if (
sc.isFailure() || !cpmTowerOvTES ) {
159 msg(MSG::DEBUG) <<
"No Overlap CPM Tower container found" <<
endmsg;
165 if (
sc.isFailure() || !cpmRoiTES ) {
166 msg(MSG::DEBUG) <<
"No CPM RoIs container found" <<
endmsg;
172 if (
sc.isFailure() || !cmxCpTobTES ) {
173 msg(MSG::DEBUG) <<
"No CMX-CP TOB container found" <<
endmsg;
179 if (
sc.isFailure() || !cmxCpHitsTES ) {
180 msg(MSG::DEBUG) <<
"No CMX-CP Hits container found" <<
endmsg;
187 if (
sc.isFailure() || !jetElementTES ) {
188 msg(MSG::DEBUG) <<
"No Core Jet Element container found" <<
endmsg;
192 }
else sc = StatusCode::FAILURE;
193 if (
sc.isFailure() || !jetElementOvTES ) {
194 msg(MSG::DEBUG) <<
"No Overlap Jet Element container found" <<
endmsg;
200 if (
sc.isFailure() || !jemRoiTES ) {
201 msg(MSG::DEBUG) <<
"No DAQ JEM RoIs container found" <<
endmsg;
207 if (
sc.isFailure() || !cmxJetTobTES ) {
208 msg(MSG::DEBUG) <<
"No CMX-Jet TOB container found" <<
endmsg;
214 if (
sc.isFailure() || !cmxJetHitsTES ) {
215 msg(MSG::DEBUG) <<
"No CMX-Jet Hits container found" <<
endmsg;
221 if (
sc.isFailure() || !cmxRoiTES ) {
222 msg(MSG::DEBUG) <<
"No CMX RoIs container found" <<
endmsg;
228 if (
sc.isFailure() || !jemEtSumsTES ) {
229 msg(MSG::DEBUG) <<
"No JEM Et Sums container found" <<
endmsg;
235 if (
sc.isFailure() || !cmxEtSumsTES ) {
236 msg(MSG::DEBUG) <<
"No CMX-Energy Et Sums container found" <<
endmsg;
243 }
else sc = StatusCode::FAILURE;
244 if (
sc.isFailure() || !rodTES ) {
245 msg(MSG::DEBUG) <<
"No ROD Header container found" <<
endmsg;
252 }
else sc = StatusCode::FAILURE;
253 if (
sc.isFailure() || !cpRoibTES ) {
254 msg(MSG::DEBUG) <<
"No CP RoIB ROD Header container found" <<
endmsg;
261 }
else sc = StatusCode::FAILURE;
262 if (
sc.isFailure() || !jepRoibTES ) {
263 msg(MSG::DEBUG) <<
"No JEP RoIB ROD Header container found" <<
endmsg;
270 }
else sc = StatusCode::FAILURE;
271 if (
sc.isFailure() || !errColl ) {
272 msg(MSG::DEBUG) <<
"No ROB Status and Unpacking Error vector found"
297 unsigned int evtStatus =evtInfo->statusElement();
298 return (((evtStatus >> 2) & 0x1) == 1);
314 }
else sc = StatusCode::FAILURE;
315 if (
sc.isFailure() || !rodTES ) {
316 if (
debug)
msg(MSG::DEBUG) <<
"No DAQ ROD Header container found"
324 }
else sc = StatusCode::FAILURE;
325 if (
sc.isFailure() || !cpRoibTES ) {
326 if (
debug)
msg(MSG::DEBUG) <<
"No CP RoIB ROD Header container found"
334 }
else sc = StatusCode::FAILURE;
335 if (
sc.isFailure() || !jepRoibTES ) {
336 if (
debug)
msg(MSG::DEBUG) <<
"No JEP RoIB ROD Header container found"
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 =
348 std::vector<const xAOD::RODHeaderContainer*>::const_iterator colIterEnd =
350 for (; colIter != colIterEnd; ++colIter) {
353 for (; iter != iterEnd; ++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;
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;
378 const std::vector<unsigned int>* errVecTES = 0;
380 return (
sc.isSuccess() && !errVecTES->empty());
#define ATH_CHECK
Evaluate an expression and check for errors.
An STL vector of pointers that by default owns its pointed-to elements.
Handle class for reading from StoreGate.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
ServiceHandle< StoreGateSvc > & evtStore()
bool msgLvl(const MSG::Level lvl) const
DataModel_detail::const_iterator< DataVector > const_iterator
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
bool contains(const std::string &s, const std::string ®x)
does a string contain the substring
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
RODHeaderContainer_v2 RODHeaderContainer
Define the latest version of the RODHeader container.
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.
RODHeader_v2 RODHeader
Define the latest version of the RODHeader class.
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.