Go to the documentation of this file.00001
00002
00003
00004
00005
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <memory>
00023
00024
00025 #include "FWCore/Framework/interface/Frameworkfwd.h"
00026 #include "FWCore/Framework/interface/EDProducer.h"
00027
00028 #include "FWCore/Framework/interface/Event.h"
00029 #include "FWCore/Framework/interface/MakerMacros.h"
00030
00031 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00032
00033
00034 #include "DataFormats/FEDRawData/interface/FEDRawData.h"
00035 #include "DataFormats/FEDRawData/interface/FEDNumbering.h"
00036 #include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h"
00037
00038 #include "DataFormats/LTCDigi/interface/LTCDigi.h"
00039
00040
00041
00042
00043 class LTCRawToDigi : public edm::EDProducer {
00044 public:
00045 explicit LTCRawToDigi(const edm::ParameterSet&);
00046 ~LTCRawToDigi();
00047
00048
00049 virtual void produce(edm::Event&, const edm::EventSetup&);
00050 private:
00051
00052 };
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065 LTCRawToDigi::LTCRawToDigi(const edm::ParameterSet& iConfig)
00066 {
00067
00068 produces<LTCDigiCollection>();
00069 }
00070
00071
00072 LTCRawToDigi::~LTCRawToDigi()
00073 {
00074
00075
00076
00077
00078 }
00079
00080
00081
00082
00083
00084
00085
00086 void
00087 LTCRawToDigi::produce(edm::Event& iEvent, const edm::EventSetup& iSetup)
00088 {
00089 using namespace edm;
00090 const int LTCFedIDLo = 815;
00091 const int LTCFedIDHi = 823;
00092
00093
00094 edm::Handle<FEDRawDataCollection> rawdata;
00095 iEvent.getByLabel("source" , rawdata);
00096
00097
00098 std::auto_ptr<LTCDigiCollection> pOut(new LTCDigiCollection());
00099
00100
00101 for ( int id = LTCFedIDLo; id <= LTCFedIDHi; ++id ) {
00103 const FEDRawData & fedData = rawdata->FEDData(id);
00104 unsigned short int length = fedData.size();
00105 if ( ! length )
00106 continue;
00107 LTCDigi ltcDigi(fedData.data());
00108 pOut->push_back(ltcDigi);
00109 }
00110 iEvent.put(pOut);
00111 }
00112
00113
00114 DEFINE_FWK_MODULE(LTCRawToDigi);