Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:20:05

0001 #include "L1Trigger/HardwareValidation/plugins/L1DEFilter.h"
0002 #include "L1Trigger/HardwareValidation/interface/DEtrait.h"
0003 using dedefs::DEnsys;
0004 
0005 L1DEFilter::L1DEFilter(const edm::ParameterSet& iConfig) : nEvt_{0}, nAgree_{0} {
0006   DEsource_ = iConfig.getParameter<edm::InputTag>("DataEmulCompareSource");
0007   flagSys_ = iConfig.getUntrackedParameter<std::vector<unsigned int> >("FlagSystems");
0008 }
0009 
0010 L1DEFilter::~L1DEFilter() {}
0011 
0012 void L1DEFilter::endJob() {
0013   //compute rate of d|e disagreeing events
0014   double rate = (nEvt_ > 0) ? (double)nAgree_ / (double)nEvt_ : 0;
0015   std::cout << "[L1DEFilter] Data|Emul mismatch event rate: " << rate << std::endl;
0016 }
0017 
0018 // ------------ method called on each new Event  ------------
0019 bool L1DEFilter::filter(edm::StreamID, edm::Event& iEvent, const edm::EventSetup& iSetup) const {
0020   nEvt_++;
0021 
0022   bool pass = true;
0023 
0024   edm::Handle<L1DataEmulRecord> deRecord;
0025   iEvent.getByLabel(DEsource_, deRecord);
0026 
0027   bool dematch = deRecord->get_status();
0028   if (dematch)
0029     nAgree_++;
0030 
0031   bool deMatch[DEnsys];
0032   deRecord->get_status(deMatch);
0033 
0034   for (int i = 0; i < DEnsys; i++)
0035     if (flagSys_[i])
0036       pass &= deMatch[i];
0037 
0038   return pass;
0039 }