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.
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>( pset.getUntrackedParameter<edm::InputTag>( "DcsStatusLabel", edm::InputTag("scalersRawToDigi")) ) )
19 {
20  nEvents_ = 0;
21  nSelectedEvents_ = 0;
22  detectorOn_ = false;
23 }
24 //
25 // -- Destructor
26 //
28 }
29 
31 
32  nEvents_++;
33  // Check Detector state Only for Real Data and return true for MC
34  if (evt.isRealData()) {
36  evt.getByToken(dcsStatusLabel_, dcsStatus);
37  if (dcsStatus.isValid()) {
38  if (detectorType_ == "pixel" && dcsStatus->size() > 0 ) {
39  if ((*dcsStatus)[0].ready(DcsStatus::BPIX) &&
40  (*dcsStatus)[0].ready(DcsStatus::FPIX)) {
41  detectorOn_ = true;
43  } else detectorOn_ = false;
44  if ( verbose_ ) std::cout << " Total Events " << nEvents_
45  << " Selected Events " << nSelectedEvents_
46  << " DCS States : " << " BPix " << (*dcsStatus)[0].ready(DcsStatus::BPIX)
47  << " FPix " << (*dcsStatus)[0].ready(DcsStatus::FPIX)
48  << " Detector State " << detectorOn_<< std::endl;
49  } else if (detectorType_ == "sistrip" && dcsStatus->size() > 0) {
50  if ((*dcsStatus)[0].ready(DcsStatus::TIBTID) &&
51  (*dcsStatus)[0].ready(DcsStatus::TOB) &&
52  (*dcsStatus)[0].ready(DcsStatus::TECp) &&
53  (*dcsStatus)[0].ready(DcsStatus::TECm)) {
54  detectorOn_ = true;
56  } else detectorOn_ = false;
57  if ( verbose_ ) std::cout << " Total Events " << nEvents_
58  << " Selected Events " << nSelectedEvents_
59  << " DCS States : " << " TEC- " << (*dcsStatus)[0].ready(DcsStatus::TECm)
60  << " TEC+ " << (*dcsStatus)[0].ready(DcsStatus::TECp)
61  << " TIB/TID " << (*dcsStatus)[0].ready(DcsStatus::TIBTID)
62  << " TOB " << (*dcsStatus)[0].ready(DcsStatus::TOB)
63  << " Detector States " << detectorOn_<< std::endl;
64  }
65  } else {
66  edm::LogError("DetectorStatusFilter")<<"ERROR: DcsStatusCollection not found !";
67  }
68  } else {
69  detectorOn_ = true;
71  if ( verbose_ ) std::cout << "Total MC Events " << nEvents_
72  << " Selected Events " << nSelectedEvents_
73  << " Detector States " << detectorOn_<< std::endl;
74  }
75  return detectorOn_;
76 }
77 
80 
81 
const std::string detectorType_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:464
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
DetectorStateFilter(const edm::ParameterSet &)
bool isRealData() const
Definition: EventBase.h:64
bool filter(edm::Event &, edm::EventSetup const &) override
const edm::EDGetTokenT< DcsStatusCollection > dcsStatusLabel_
bool isValid() const
Definition: HandleBase.h:75
std::vector< DcsStatus > DcsStatusCollection
Definition: DcsStatus.h:116
tuple cout
Definition: gather_cfg.py:121
volatile std::atomic< bool > shutdown_flag false