10 ATH_MSG_DEBUG(
"Initializing GfexSimMonitorAlgorithm algorithm with name: "<<
name());
97 return StatusCode::SUCCESS;
103 const EventContext& ctx,
bool simReadyFlag)
const {
105 if(!tobs1Cont.isValid()) {
109 if(!tobs1Cont.isValid()) {
120 std::set<const xAOD::gFexJetRoI*> mismatchedTOBs;
121 std::set<const xAOD::gFexJetRoI*> DataMismatchedTOBs;
123 for (
auto tob1 : *tobs1Cont) {
126 auto word1 = tob1->word();
127 auto gfex1 = tob1->gFexType();
128 for (
auto tob2 : *tobs2Cont) {
129 if(gfex1 == tob2->gFexType()) {
130 if(
word1 == tob2->word()) {
140 mismatchedTOBs.insert(tob1);
141 DataMismatchedTOBs.insert(tob1);
146 for (
auto tob2 : *tobs2Cont) {
148 auto word = tob2->word();
auto gfex = tob2->gFexType();
149 for (
auto tob1 : *tobs1Cont) {
150 if(gfex == tob1->gFexType() && word == tob1->word()) {
156 mismatchedTOBs.insert(tob2);
163 if(!mismatchedTOBs.empty()) {
170 auto itr = m_firstEvents.find(lbn);
171 if(itr==m_firstEvents.end()) {
173 itr = m_firstEvents.find(lbn);
175 lbnString = itr->second;
177 std::vector<SortableTob> sortedDataTobs;
178 std::vector<SortableTob> sortedSimTobs;
204 fill(
"mismatches",simReadyMismatch,tobMismatched,lbn,lbnString,l1id,evtNumber,dtobEtas,dtobPhis,dtobEts,dtobWord0s,stobEtas,stobPhis,stobEts,stobWord0s,Signature,simReady,eventType);
207 for(
auto tob : DataMismatchedTOBs) {
214 fill(
"mismatches",lbn,Signature,tobMismatched,simReady,eventType);
217 return !mismatchedTOBs.empty();
225 const EventContext& ctx,
uint32_t tobMask)
const {
227 if(!tobs1Cont.isValid()) {
231 if(!tobs1Cont.isValid()) {
240 bool mismatches = (tobs1Cont->size()!=tobs2Cont->size());
242 for(
const auto tob1 : *tobs1Cont) {
245 auto gfex1 = tob1->globalType();
246 for (
auto tob2 : *tobs2Cont) {
247 if(gfex1 == tob2->globalType()) {
248 if(
word1 == (tob2->word()&tobMask)) {
267 auto itr = m_firstEvents.find(lbn);
268 if(itr==m_firstEvents.end()) {
270 itr = m_firstEvents.find(lbn);
272 lbnString = itr->second;
274 auto dtobMet1 =
Monitored::Collection(
"dataTOB1", *tobs1Cont,[](
const auto& tob) {
return tob->METquantityOne(); });
275 auto dtobMet2 =
Monitored::Collection(
"dataTOB2", *tobs1Cont,[](
const auto& tob) {
return tob->METquantityTwo(); });
276 auto dtobWord0s =
Monitored::Collection(
"dataWord0s", *tobs1Cont,[](
const auto& tob) {
return tob->word(); });
277 auto stobMet1 =
Monitored::Collection(
"simTOB1", *tobs2Cont,[](
const auto& tob) {
return tob->METquantityOne(); });
278 auto stobMet2 =
Monitored::Collection(
"simTOB2", *tobs2Cont,[](
const auto& tob) {
return tob->METquantityTwo(); });
279 auto stobWord0s =
Monitored::Collection(
"simWord0s", *tobs2Cont,[](
const auto& tob) {
return tob->word(); });
292 fill(
"mismatches",simReadyMismatch,lbn,lbnString,evtNumber,l1id,dtobMet1,dtobMet2,dtobWord0s,stobMet1,stobMet2,stobWord0s,Signature,tobMismatched,eventType);
295 fill(
"mismatches",lbn,Signature,tobMismatched,eventType);