CMS 3D CMS Logo

DetectorStateFilter.cc
Go to the documentation of this file.
5 
9 
10 #include <iostream>
11 
12 //
13 // -- Constructor
14 //
16  : verbose_(pset.getUntrackedParameter<bool>("DebugOn", false)),
17  detectorType_(pset.getUntrackedParameter<std::string>("DetectorType", "sistrip")),
18  dcsStatusLabel_(consumes<DcsStatusCollection>(
19  pset.getUntrackedParameter<edm::InputTag>("DcsStatusLabel", edm::InputTag("scalersRawToDigi")))) {
20  nEvents_ = 0;
21  nSelectedEvents_ = 0;
22  detectorOn_ = false;
23 }
24 //
25 // -- Destructor
26 //
28 
30  nEvents_++;
31  // Check Detector state Only for Real Data and return true for MC
32  if (evt.isRealData()) {
34  evt.getByToken(dcsStatusLabel_, dcsStatus);
35  if (dcsStatus.isValid()) {
36  if (detectorType_ == "pixel" && !dcsStatus->empty()) {
37  if ((*dcsStatus)[0].ready(DcsStatus::BPIX) && (*dcsStatus)[0].ready(DcsStatus::FPIX)) {
38  detectorOn_ = true;
40  } else
41  detectorOn_ = false;
42  if (verbose_)
43  std::cout << " Total Events " << nEvents_ << " Selected Events " << nSelectedEvents_ << " DCS States : "
44  << " BPix " << (*dcsStatus)[0].ready(DcsStatus::BPIX) << " FPix "
45  << (*dcsStatus)[0].ready(DcsStatus::FPIX) << " Detector State " << detectorOn_ << std::endl;
46  } else if (detectorType_ == "sistrip" && !dcsStatus->empty()) {
47  if ((*dcsStatus)[0].ready(DcsStatus::TIBTID) && (*dcsStatus)[0].ready(DcsStatus::TOB) &&
48  (*dcsStatus)[0].ready(DcsStatus::TECp) && (*dcsStatus)[0].ready(DcsStatus::TECm)) {
49  detectorOn_ = true;
51  } else
52  detectorOn_ = false;
53  if (verbose_)
54  std::cout << " Total Events " << nEvents_ << " Selected Events " << nSelectedEvents_ << " DCS States : "
55  << " TEC- " << (*dcsStatus)[0].ready(DcsStatus::TECm) << " TEC+ "
56  << (*dcsStatus)[0].ready(DcsStatus::TECp) << " TIB/TID " << (*dcsStatus)[0].ready(DcsStatus::TIBTID)
57  << " TOB " << (*dcsStatus)[0].ready(DcsStatus::TOB) << " Detector States " << detectorOn_
58  << std::endl;
59  }
60  } else {
61  edm::LogError("DetectorStatusFilter") << "ERROR: DcsStatusCollection not found !";
62  }
63  } else {
64  detectorOn_ = true;
66  if (verbose_)
67  std::cout << "Total MC Events " << nEvents_ << " Selected Events " << nSelectedEvents_ << " Detector States "
68  << detectorOn_ << std::endl;
69  }
70  return detectorOn_;
71 }
72 
const std::string detectorType_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
DetectorStateFilter(const edm::ParameterSet &)
bool isRealData() const
Definition: EventBase.h:62
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
bool filter(edm::Event &, edm::EventSetup const &) override
const edm::EDGetTokenT< DcsStatusCollection > dcsStatusLabel_
bool isValid() const
Definition: HandleBase.h:74
std::vector< DcsStatus > DcsStatusCollection
Definition: DcsStatus.h:116
HLT enums.