Skip to content

Commit

Permalink
improve the fall-back case in DetStatus
Browse files Browse the repository at this point in the history
  • Loading branch information
mmusich committed Mar 13, 2020
1 parent d3b0aed commit b94a0e2
Showing 1 changed file with 27 additions and 8 deletions.
35 changes: 27 additions & 8 deletions DPGAnalysis/Skims/src/DetStatus.cc
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,10 @@ DetStatus::DetStatus(const edm::ParameterSet& pset) {
//
DetStatus::~DetStatus() {}

bool DetStatus::checkForDCSStatus(const DcsStatusCollection& dcsStatus) {
//*********************************************************************//
bool DetStatus::checkForDCSStatus(const DcsStatusCollection& dcsStatus)
//*********************************************************************//
{
if (verbose_) {
edm::LogInfo("DetStatus") << "Using FED#735 for reading DCS bits" << std::endl;
}
Expand Down Expand Up @@ -75,7 +78,10 @@ bool DetStatus::checkForDCSStatus(const DcsStatusCollection& dcsStatus) {
return accepted;
}

bool DetStatus::checkForDCSRecord(const DCSRecord& dcsRecord) {
//*********************************************************************//
bool DetStatus::checkForDCSRecord(const DCSRecord& dcsRecord)
//*********************************************************************//
{
bool accepted = false;

if (verbose_) {
Expand Down Expand Up @@ -106,16 +112,29 @@ bool DetStatus::checkForDCSRecord(const DCSRecord& dcsRecord) {
return accepted;
}

bool DetStatus::filter(edm::Event& evt, edm::EventSetup const& es) {
//*********************************************************************//
bool DetStatus::filter(edm::Event& evt, edm::EventSetup const& es)
//*********************************************************************//
{
bool accepted = false;

DcsStatusCollection const& dcsStatus = evt.get(scalersToken_);
DCSRecord const& dcsRecord = evt.get(dcsRecordToken_);
// If FED#735 is available use it to extract DcsStatusCollection.
// If not, use softFED#1022 to extract DCSRecord.
// Populate DCS Bits array with received information.

if (!dcsStatus.empty()) {
accepted = checkForDCSStatus(dcsStatus);
edm::Handle<DcsStatusCollection> dcsStatus;
evt.getByToken(scalersToken_, dcsStatus);
edm::Handle<DCSRecord> dcsRecord;
evt.getByToken(dcsRecordToken_, dcsRecord);

if (dcsStatus.isValid() && !dcsStatus->empty()) {
accepted = checkForDCSStatus(*dcsStatus);
} else if (dcsRecord.isValid()) {
accepted = checkForDCSRecord(*dcsRecord);
} else {
accepted = checkForDCSRecord(dcsRecord);
edm::LogError("DetStatus")
<< "Error! can't get the product, neither DCSRecord, nor scalersRawToDigi: accept in any case!";
accepted = true;
}

if (!applyfilter_) {
Expand Down

0 comments on commit b94a0e2

Please sign in to comment.