CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DetectorStateFilter.cc
Go to the documentation of this file.
6 
10 
11 #include <iostream>
12 
13 //
14 // -- Constructor
15 //
17  verbose_ = pset.getUntrackedParameter<bool>( "DebugOn", false );
18  detectorType_ = pset.getUntrackedParameter<std::string>( "DetectorType", "sistrip");
19  dcsStatusLabel_ = pset.getUntrackedParameter<edm::InputTag>( "DcsStatusLabel", edm::InputTag("scalersRawToDigi") );
20 
21  nEvents_ = 0;
22  nSelectedEvents_ = 0;
23  detectorOn_ = false;
24 }
25 //
26 // -- Destructor
27 //
29 }
30 
32 
33  nEvents_++;
34  // Check Detector state Only for Real Data and return true for MC
35  if (evt.isRealData()) {
37  evt.getByLabel(dcsStatusLabel_, dcsStatus);
38  if (dcsStatus.isValid()) {
39  if (detectorType_ == "pixel" && dcsStatus->size() > 0 ) {
40  if ((*dcsStatus)[0].ready(DcsStatus::BPIX) &&
41  (*dcsStatus)[0].ready(DcsStatus::FPIX)) {
42  detectorOn_ = true;
44  } else detectorOn_ = false;
45  if ( verbose_ ) std::cout << " Total Events " << nEvents_
46  << " Selected Events " << nSelectedEvents_
47  << " DCS States : " << " BPix " << (*dcsStatus)[0].ready(DcsStatus::BPIX)
48  << " FPix " << (*dcsStatus)[0].ready(DcsStatus::FPIX)
49  << " Detector State " << detectorOn_<< std::endl;
50  } else if (detectorType_ == "sistrip" && dcsStatus->size() > 0) {
51  if ((*dcsStatus)[0].ready(DcsStatus::TIBTID) &&
52  (*dcsStatus)[0].ready(DcsStatus::TOB) &&
53  (*dcsStatus)[0].ready(DcsStatus::TECp) &&
54  (*dcsStatus)[0].ready(DcsStatus::TECm)) {
55  detectorOn_ = true;
57  } else detectorOn_ = false;
58  if ( verbose_ ) std::cout << " Total Events " << nEvents_
59  << " Selected Events " << nSelectedEvents_
60  << " DCS States : " << " TEC- " << (*dcsStatus)[0].ready(DcsStatus::TECm)
61  << " TEC+ " << (*dcsStatus)[0].ready(DcsStatus::TECp)
62  << " TIB/TID " << (*dcsStatus)[0].ready(DcsStatus::TIBTID)
63  << " TOB " << (*dcsStatus)[0].ready(DcsStatus::TOB)
64  << " Detector States " << detectorOn_<< std::endl;
65  }
66  } else {
67  edm::LogError("DetectorStatusFilter")<<"ERROR: DcsStatusCollection not found !";
68  }
69  } else {
70  detectorOn_ = true;
72  if ( verbose_ ) std::cout << "Total MC Events " << nEvents_
73  << " Selected Events " << nSelectedEvents_
74  << " Detector States " << detectorOn_<< std::endl;
75  }
76  return detectorOn_;
77 }
78 
81 
82 
T getUntrackedParameter(std::string const &, T const &) const
bool filter(edm::Event &, edm::EventSetup const &)
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
DetectorStateFilter(const edm::ParameterSet &)
bool isRealData() const
Definition: EventBase.h:60
edm::InputTag dcsStatusLabel_
bool isValid() const
Definition: HandleBase.h:76
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
tuple cout
Definition: gather_cfg.py:121