Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-09-12 04:16:47

0001 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0002 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0003 #include "FWCore/Framework/interface/Event.h"
0004 #include "FWCore/Framework/interface/LuminosityBlock.h"
0005 #include "FWCore/Framework/interface/NoRecordException.h"
0006 #include "FWCore/Framework/interface/ESHandle.h"
0007 #include "FWCore/Framework/interface/MakerMacros.h"
0008 #include "FWCore/Framework/interface/EventSetup.h"
0009 #include "FWCore/Framework/interface/EventSetupRecord.h"
0010 #include "RecoLuminosity/LumiProducer/interface/DIPLumiSummary.h"
0011 #include "RecoLuminosity/LumiProducer/interface/DIPLumiDetail.h"
0012 #include "RecoLuminosity/LumiProducer/interface/DIPLuminosityRcd.h"
0013 
0014 #include <iostream>
0015 
0016 namespace edm {
0017   class EventSetup;
0018 }
0019 
0020 using namespace std;
0021 using namespace edm;
0022 
0023 class TestDIPLumiProducer : public edm::one::EDAnalyzer<edm::one::WatchLuminosityBlocks> {
0024 public:
0025   explicit TestDIPLumiProducer(edm::ParameterSet const&);
0026 
0027   void beginLuminosityBlock(LuminosityBlock const& lumiBlock, EventSetup const& c) override {}
0028   void analyze(edm::Event const& e, edm::EventSetup const& c) override;
0029   void endLuminosityBlock(LuminosityBlock const& lumiBlock, EventSetup const& c) override;
0030 
0031 private:
0032   edm::ESGetToken<DIPLumiSummary, DIPLuminosityRcd> token_;
0033 };
0034 
0035 // -----------------------------------------------------------------
0036 
0037 TestDIPLumiProducer::TestDIPLumiProducer(edm::ParameterSet const& ps) : token_(esConsumes()) {}
0038 
0039 // -----------------------------------------------------------------
0040 
0041 void TestDIPLumiProducer::analyze(edm::Event const& e, edm::EventSetup const&) {}
0042 
0043 // -----------------------------------------------------------------
0044 
0045 void TestDIPLumiProducer::endLuminosityBlock(edm::LuminosityBlock const& lumiBlock, EventSetup const& es) {
0046   std::cout << " I AM IN RUN NUMBER " << lumiBlock.run() << " LS NUMBER " << lumiBlock.luminosityBlock() << std::endl;
0047   edm::eventsetup::EventSetupRecordKey recordKey(
0048       edm::eventsetup::EventSetupRecordKey::TypeTag::findType("DIPLuminosityRcd"));
0049   if (recordKey.type() == edm::eventsetup::EventSetupRecordKey::TypeTag()) {
0050     std::cout << "Record \"DIPLuminosityRcd"
0051               << "\" does not exist " << std::endl;
0052   }
0053   try {
0054     edm::ESHandle<DIPLumiSummary> datahandle = es.getHandle(token_);
0055     if (datahandle.isValid()) {
0056       const DIPLumiSummary* mydata = datahandle.product();
0057       if (!mydata->isNull()) {
0058         std::cout << "from Run " << mydata->fromRun() << " from LS " << mydata->fromLS() << std::endl;
0059         std::cout << mydata->intgDelLumiByLS() << std::endl;
0060       } else {
0061         std::cout << "data empty" << std::endl;
0062       }
0063     } else {
0064       std::cout << "no valid record found" << std::endl;
0065     }
0066   } catch (const edm::eventsetup::NoRecordException<DIPLuminosityRcd>& er) {
0067     std::cout << "no data found" << std::endl;
0068   } catch (const cms::Exception& ee) {
0069     std::cout << ee.what() << std::endl;
0070   }
0071   //try{
0072   //  std::cout<<"looking at detail"<<std::endl;
0073   //  edm::ESHandle<DIPLumiDetail> pDetail;
0074   //  es.getData(pDetail);
0075   // if(pDetail.isValid()){
0076   //    const DIPLumiDetail* ddata=pDetail.product();
0077   //    if(!mydata->isNull()){
0078   //      std::cout<<*ddata<<std::endl;
0079   //    }else{
0080   //      std::cout<<"data empty"<<std::endl;
0081   //    }
0082   //  }else{
0083   //    std::cout<<"no valid data found"<<std::endl;
0084   //  }
0085   //}catch(const edm::eventsetup::NoRecordException<DIPLuminosityRcd>& er){
0086   //  std::cout<<"no data found"<<std::endl;
0087   //}
0088 }
0089 
0090 DEFINE_FWK_MODULE(TestDIPLumiProducer);