Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix low stat behavior of Qt Summaries #15830

Merged
merged 2 commits into from Sep 17, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion DQM/EcalMonitorClient/src/OccupancyClient.cc
Expand Up @@ -211,7 +211,7 @@ namespace ecaldqm
meanFED = meanFEDEE;
rmsFED = rmsFEDEE;
}
float threshold( meanFED < nRMS*rmsFED ? 10. : meanFED - nRMS*rmsFED );
float threshold( meanFED < nRMS*rmsFED ? minHits_ : meanFED - nRMS*rmsFED );
if ( meanFED > 1000. && Nrhentries[iDCC] < threshold )
meQualitySummary.setBinContent( id, meQualitySummary.maskMatches(id, mask, statusManager_) ? kMBad : kBad );
}
Expand Down
15 changes: 9 additions & 6 deletions DQM/EcalMonitorClient/src/SummaryClient.cc
Expand Up @@ -115,10 +115,6 @@ namespace ecaldqm
// Initialize individual Quality Summaries
// NOTE: These represent quality over *cumulative* statistics
int integrity(sIntegrity ? sIntegrity->getBinContent(id) : kUnknown);
if(integrity == kMUnknown){
qItr->setBinContent(integrity);
if ( onlineMode_ ) continue;
}
int presample(sPresample ? sPresample->getBinContent(id) : kUnknown);
int hotcell(sHotCell ? sHotCell->getBinContent(id) : kUnknown);
int timing(sTiming ? sTiming->getBinContent(id) : kUnknown);
Expand All @@ -136,6 +132,13 @@ namespace ecaldqm
status = kBad;
else if(integrity == kUnknown && presample == kUnknown && timing == kUnknown && rawdata == kUnknown && trigprim == kUnknown)
status = kUnknown;
// Skip channels with no/low integrity statistics (based on digi occupancy)
// Normally, ensures Global Quality and Report Summaries are not filled when stats are still low / channel masked / ECAL not in run
// However, problematic FEDs can sometimes drop hits so check that channel is not flagged as BAD elsewhere
if( status != kBad && (integrity == kUnknown || integrity == kMUnknown)) {
qItr->setBinContent(integrity);
if ( onlineMode_ ) continue;
}
qItr->setBinContent(status);

// Keep running count of good/bad channels/towers
Expand All @@ -160,7 +163,7 @@ namespace ecaldqm
} // qItr channel loop

// search clusters of bad towers
if(onlineMode_){
/*if(onlineMode_){

// EB
for(int iz(-1); iz < 2; iz += 2){
Expand Down Expand Up @@ -220,7 +223,7 @@ namespace ecaldqm
} // ix
} // iz

} // cluster search
} // cluster search */

// Fill Report Summaries
double nBad(0.);
Expand Down
2 changes: 1 addition & 1 deletion DQM/EcalMonitorClient/src/TrigPrimClient.cc
Expand Up @@ -157,7 +157,7 @@ namespace ecaldqm
meanFED = meanFEDEE;
rmsFED = rmsFEDEE;
}
float threshold( meanFED < nRMS*rmsFED ? 10. : meanFED - nRMS*rmsFED );
float threshold( meanFED < nRMS*rmsFED ? minEntries_ : meanFED - nRMS*rmsFED );
if ( meanFED > 100. && Nentries[iDCC] < threshold )
meEmulQualitySummary.setBinContent( ttid, meEmulQualitySummary.maskMatches(ttid, mask, statusManager_) ? kMBad : kBad );
}
Expand Down