Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:25:46

0001 #include "FWCore/Framework/interface/global/EDProducer.h"
0002 #include "FWCore/Framework/interface/Event.h"
0003 #include "DataFormats/Common/interface/Handle.h"
0004 #include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h"
0005 #include "DataFormats/HcalDigi/interface/HcalLaserDigi.h"
0006 #include "RecoLocalCalo/HcalLaserReco/src/HcalLaserUnpacker.h"
0007 #include "DataFormats/Common/interface/EDCollection.h"
0008 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0009 #include "FWCore/Utilities/interface/InputTag.h"
0010 
0011 #include <iostream>
0012 #include <fstream>
0013 
0014 class HcalLaserReco : public edm::global::EDProducer<> {
0015 public:
0016   explicit HcalLaserReco(const edm::ParameterSet& ps);
0017   void produce(edm::StreamID, edm::Event& e, const edm::EventSetup& c) const override;
0018 
0019 private:
0020   int qdctdcFed_;
0021   HcalLaserUnpacker unpacker_;
0022   edm::EDGetTokenT<FEDRawDataCollection> tok_raw_;
0023 };
0024 
0025 HcalLaserReco::HcalLaserReco(edm::ParameterSet const& conf)
0026     : qdctdcFed_(conf.getUntrackedParameter<int>("QADCTDCFED", 8)) {
0027   tok_raw_ = consumes<FEDRawDataCollection>(conf.getParameter<edm::InputTag>("fedRawDataCollectionTag"));
0028 
0029   produces<HcalLaserDigi>();
0030 }
0031 
0032 // Functions that gets called by framework every event
0033 void HcalLaserReco::produce(edm::StreamID, edm::Event& e, const edm::EventSetup&) const {
0034   // Step A: Get Inputs
0035   edm::Handle<FEDRawDataCollection> rawraw;
0036   e.getByToken(tok_raw_, rawraw);
0037 
0038   // Step B: Create empty output
0039   auto digi = std::make_unique<HcalLaserDigi>();
0040 
0041   if (qdctdcFed_ >= 0) {
0042     // Step C: unpack all requested FEDs
0043     const FEDRawData& fed = rawraw->FEDData(qdctdcFed_);
0044     unpacker_.unpack(fed, *digi);
0045   }
0046 
0047   // Step D: Put outputs into event
0048   e.put(std::move(digi));
0049 }
0050 
0051 #include "FWCore/PluginManager/interface/ModuleDef.h"
0052 #include "FWCore/Framework/interface/MakerMacros.h"
0053 
0054 DEFINE_FWK_MODULE(HcalLaserReco);