6#include "GaudiKernel/IInterface.h"
7#include "GaudiKernel/MsgStream.h"
8#include "GaudiKernel/StatusCode.h"
36 const std::string&
name)
82 "Can be FullEventTimeout, AnyROBOrUnpackingError or None");
99 return StatusCode::SUCCESS;
106 return StatusCode::SUCCESS;
138 if (
sc.isFailure() || !triggerTowerTES ) {
139 msg(MSG::DEBUG) <<
"No Trigger Tower container found" <<
endmsg;
142 sc =
evtStore()->retrieve(triggerTowerSpareTES,
144 }
else sc = StatusCode::FAILURE;
145 if (
sc.isFailure() || !triggerTowerSpareTES ) {
146 msg(MSG::DEBUG) <<
"No Spare Trigger Tower container found" <<
endmsg;
149 sc =
evtStore()->retrieve(triggerTowerMuonTES,
151 }
else sc = StatusCode::FAILURE;
152 if (
sc.isFailure() || !triggerTowerMuonTES ) {
153 msg(MSG::DEBUG) <<
"No Tile Muon Trigger Tower container found" <<
endmsg;
157 const CpmTowerCollection* cpmTowerTES = 0;
158 const CpmTowerCollection* cpmTowerOvTES = 0;
160 if (
sc.isFailure() || !cpmTowerTES ) {
161 msg(MSG::DEBUG) <<
"No Core CPM Tower container found" <<
endmsg;
165 }
else sc = StatusCode::FAILURE;
166 if (
sc.isFailure() || !cpmTowerOvTES ) {
167 msg(MSG::DEBUG) <<
"No Overlap CPM Tower container found" <<
endmsg;
171 const CpmRoiCollection* cpmRoiTES = 0;
173 if (
sc.isFailure() || !cpmRoiTES ) {
174 msg(MSG::DEBUG) <<
"No CPM RoIs container found" <<
endmsg;
178 const CpmHitsCollection* cpmHitsTES = 0;
180 if (
sc.isFailure() || !cpmHitsTES ) {
181 msg(MSG::DEBUG) <<
"No CPM Hits container found" <<
endmsg;
185 const CmmCpHitsCollection* cmmCpHitsTES = 0;
187 if (
sc.isFailure() || !cmmCpHitsTES ) {
188 msg(MSG::DEBUG) <<
"No CMM-CP Hits container found" <<
endmsg;
195 if (
sc.isFailure() || !jetElementTES ) {
196 msg(MSG::DEBUG) <<
"No Core Jet Element container found" <<
endmsg;
200 }
else sc = StatusCode::FAILURE;
201 if (
sc.isFailure() || !jetElementOvTES ) {
202 msg(MSG::DEBUG) <<
"No Overlap Jet Element container found" <<
endmsg;
206 const JemRoiCollection* jemRoiTES = 0;
208 if (
sc.isFailure() || !jemRoiTES ) {
209 msg(MSG::DEBUG) <<
"No DAQ JEM RoIs container found" <<
endmsg;
213 const JemHitsCollection* jemHitsTES = 0;
215 if (
sc.isFailure() || !jemHitsTES ) {
216 msg(MSG::DEBUG) <<
"No JEM Hits container found" <<
endmsg;
220 const CmmJetHitsCollection* cmmJetHitsTES = 0;
222 if (
sc.isFailure() || !cmmJetHitsTES ) {
223 msg(MSG::DEBUG) <<
"No CMM-Jet Hits container found" <<
endmsg;
229 if (
sc.isFailure() || !cmmRoiTES ) {
230 msg(MSG::DEBUG) <<
"No CMM RoIs container found" <<
endmsg;
234 const JemEtSumsCollection* jemEtSumsTES = 0;
236 if (
sc.isFailure() || !jemEtSumsTES ) {
237 msg(MSG::DEBUG) <<
"No JEM Et Sums container found" <<
endmsg;
241 const CmmEtSumsCollection* cmmEtSumsTES = 0;
243 if (
sc.isFailure() || !cmmEtSumsTES ) {
244 msg(MSG::DEBUG) <<
"No CMM-Energy Et Sums container found" <<
endmsg;
248 const RodHeaderCollection* rodTES = 0;
251 }
else sc = StatusCode::FAILURE;
252 if (
sc.isFailure() || !rodTES ) {
253 msg(MSG::DEBUG) <<
"No ROD Header container found" <<
endmsg;
257 const RodHeaderCollection* cpRoibTES = 0;
260 }
else sc = StatusCode::FAILURE;
261 if (
sc.isFailure() || !cpRoibTES ) {
262 msg(MSG::DEBUG) <<
"No CP RoIB ROD Header container found" <<
endmsg;
266 const RodHeaderCollection* jepRoibTES = 0;
269 }
else sc = StatusCode::FAILURE;
270 if (
sc.isFailure() || !jepRoibTES ) {
271 msg(MSG::DEBUG) <<
"No JEP RoIB ROD Header container found" <<
endmsg;
278 }
else sc = StatusCode::FAILURE;
279 if (
sc.isFailure() || !errColl ) {
280 msg(MSG::DEBUG) <<
"No ROB Status and Unpacking Error vector found"
305 unsigned int evtStatus =evtInfo->statusElement();
306 return (((evtStatus >> 2) & 0x1) == 1);
321 const RodHeaderCollection* rodTES = 0;
324 }
else sc = StatusCode::FAILURE;
325 if (
sc.isFailure() || !rodTES ) {
326 if (
debug)
msg(MSG::DEBUG) <<
"No DAQ ROD Header container found"
331 const RodHeaderCollection* cpRoibTES = 0;
334 }
else sc = StatusCode::FAILURE;
335 if (
sc.isFailure() || !cpRoibTES ) {
336 if (
debug)
msg(MSG::DEBUG) <<
"No CP RoIB ROD Header container found"
341 const RodHeaderCollection* jepRoibTES = 0;
344 }
else sc = StatusCode::FAILURE;
345 if (
sc.isFailure() || !jepRoibTES ) {
346 if (
debug)
msg(MSG::DEBUG) <<
"No JEP RoIB ROD Header container found"
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 =
358 std::vector<const RodHeaderCollection*>::const_iterator colIterEnd =
360 for (; colIter != colIterEnd; ++colIter) {
361 RodHeaderCollection::const_iterator iter = (*colIter)->begin();
362 RodHeaderCollection::const_iterator iterEnd = (*colIter)->end();
363 for (; iter != iterEnd; ++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;
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;
388 const std::vector<unsigned int>* errVecTES = 0;
390 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.
DataVector< LVL1::JetElement > JetElementCollection
Handle class for reading from StoreGate.
DataVector< LVL1::TriggerTower > TriggerTowerCollection
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
ServiceHandle< StoreGateSvc > & evtStore()
bool msgLvl(const MSG::Level lvl) const
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
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...