10 ATH_MSG_DEBUG(
"Initializing GfexSimMonitorAlgorithm algorithm with name: "<<
name());
89 return StatusCode::SUCCESS;
95 const EventContext& ctx,
bool simReadyFlag)
const {
97 if(!tobs1Cont.isValid()) {
101 if(!tobs1Cont.isValid()) {
112 std::set<const xAOD::gFexJetRoI*> mismatchedTOBs;
113 std::set<const xAOD::gFexJetRoI*> DataMismatchedTOBs;
115 for (
auto tob1 : *tobs1Cont) {
118 auto word1 = tob1->word();
119 auto gfex1 = tob1->gFexType();
120 for (
auto tob2 : *tobs2Cont) {
121 if(gfex1 == tob2->gFexType()) {
122 if(
word1 == tob2->word()) {
132 mismatchedTOBs.insert(tob1);
133 DataMismatchedTOBs.insert(tob1);
138 for (
auto tob2 : *tobs2Cont) {
140 auto word = tob2->word();
auto gfex = tob2->gFexType();
141 for (
auto tob1 : *tobs1Cont) {
142 if(gfex == tob1->gFexType() && word == tob1->word()) {
148 mismatchedTOBs.insert(tob2);
155 if(!mismatchedTOBs.empty()) {
162 auto itr = m_firstEvents.find(lbn);
163 if(itr==m_firstEvents.end()) {
165 itr = m_firstEvents.find(lbn);
167 lbnString = itr->second;
169 std::vector<SortableTob> sortedDataTobs;
170 std::vector<SortableTob> sortedSimTobs;
198 fill(
"mismatches",FillJetTree,simReadyMismatch,tobMismatched,lbn,lbnString,l1id,evtNumber,dtobEtas,dtobPhis,dtobEts,dtobWord0s,stobEtas,stobPhis,stobEts,stobWord0s,Signature,simReady,eventType);
201 for(
auto tob : DataMismatchedTOBs) {
208 fill(
"mismatches",lbn,Signature,tobMismatched,simReady,eventType);
211 return !mismatchedTOBs.empty();
219 const EventContext& ctx,
uint32_t tobMask)
const {
221 if(!tobs1Cont.isValid()) {
225 if(!tobs1Cont.isValid()) {
233 bool mismatches = (tobs1Cont->size()!=tobs2Cont->size());
235 for(
const auto tob1 : *tobs1Cont) {
238 auto gfex1 = tob1->globalType();
239 for (
auto tob2 : *tobs2Cont) {
240 if(gfex1 == tob2->globalType()) {
241 if(
word1 == (tob2->word()&tobMask)) {
260 auto itr = m_firstEvents.find(lbn);
261 if(itr==m_firstEvents.end()) {
263 itr = m_firstEvents.find(lbn);
265 lbnString = itr->second;
267 auto dtobMet1 =
Monitored::Collection(
"dataTOB1", *tobs1Cont,[](
const auto& tob) {
return tob->METquantityOne(); });
268 auto dtobMet2 =
Monitored::Collection(
"dataTOB2", *tobs1Cont,[](
const auto& tob) {
return tob->METquantityTwo(); });
269 auto dtobWord0s =
Monitored::Collection(
"dataWord0s", *tobs1Cont,[](
const auto& tob) {
return tob->word(); });
270 auto stobMet1 =
Monitored::Collection(
"simTOB1", *tobs2Cont,[](
const auto& tob) {
return tob->METquantityOne(); });
271 auto stobMet2 =
Monitored::Collection(
"simTOB2", *tobs2Cont,[](
const auto& tob) {
return tob->METquantityTwo(); });
272 auto stobWord0s =
Monitored::Collection(
"simWord0s", *tobs2Cont,[](
const auto& tob) {
return tob->word(); });
287 fill(
"mismatches",FillGlobalTree,simReadyMismatch,lbn,lbnString,evtNumber,l1id,dtobMet1,dtobMet2,dtobWord0s,stobMet1,stobMet2,stobWord0s,Signature,tobMismatched,eventType);
290 fill(
"mismatches",lbn,Signature,tobMismatched,eventType);