CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/RecoLocalCalo/HcalLaserReco/src/HcalLaserReco.cc

Go to the documentation of this file.
00001 #include "FWCore/Framework/interface/EDProducer.h"
00002 #include "DataFormats/Common/interface/EDProduct.h"
00003 #include "FWCore/Framework/interface/Event.h"
00004 #include "DataFormats/Common/interface/Handle.h"
00005 #include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h"
00006 #include "DataFormats/HcalDigi/interface/HcalLaserDigi.h"
00007 #include "RecoLocalCalo/HcalLaserReco/src/HcalLaserUnpacker.h"
00008 #include "DataFormats/Common/interface/EDCollection.h"
00009 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00010 #include <iostream>
00011 #include <fstream>
00012 
00013 
00014 class HcalLaserReco : public edm::EDProducer {
00015 public:
00016   explicit HcalLaserReco(const edm::ParameterSet& ps);
00017   virtual ~HcalLaserReco();
00018   virtual void produce(edm::Event& e, const edm::EventSetup& c);
00019 private:
00020   int qdctdcFed_;
00021   HcalLaserUnpacker unpacker_;
00022 };
00023 
00024 HcalLaserReco::HcalLaserReco(edm::ParameterSet const& conf):
00025   qdctdcFed_(conf.getUntrackedParameter<int>("QADCTDCFED",8))
00026 {
00027   
00028     produces<HcalLaserDigi>();
00029 }
00030 
00031 // Virtual destructor needed.
00032 HcalLaserReco::~HcalLaserReco() { }  
00033 
00034 // Functions that gets called by framework every event
00035 void HcalLaserReco::produce(edm::Event& e, const edm::EventSetup&)
00036 {
00037   // Step A: Get Inputs 
00038   edm::Handle<FEDRawDataCollection> rawraw;  
00039   //    edm::ProcessNameSelector s("PROD"); // HACK!
00040   e.getByType(rawraw);           
00041   
00042   // Step B: Create empty output    
00043   std::auto_ptr<HcalLaserDigi>
00044     digi(new HcalLaserDigi);
00045     
00046   if (qdctdcFed_ >=0) {
00047     // Step C: unpack all requested FEDs
00048     const FEDRawData& fed = rawraw->FEDData(qdctdcFed_);
00049     unpacker_.unpack(fed,*digi);
00050   }
00051   
00052   // Step D: Put outputs into event
00053   e.put(digi);
00054 }
00055 
00056 #include "FWCore/PluginManager/interface/ModuleDef.h"
00057 #include "FWCore/Framework/interface/MakerMacros.h"
00058 
00059 DEFINE_FWK_MODULE(HcalLaserReco);
00060