Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-06-22 02:23:37

0001 #include "FWCore/Framework/interface/Frameworkfwd.h"
0002 #include "FWCore/Framework/interface/stream/EDProducer.h"
0003 #include "FWCore/Framework/interface/Event.h"
0004 #include "FWCore/Framework/interface/MakerMacros.h"
0005 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0006 #include "FWCore/Utilities/interface/StreamID.h"
0007 
0008 #include "DataFormats/FEDRawData/interface/FEDRawData.h"
0009 #include "DataFormats/L1ScoutingRawData/interface/SDSNumbering.h"
0010 #include "DataFormats/L1ScoutingRawData/interface/SDSRawDataCollection.h"
0011 #include "DataFormats/L1Scouting/interface/OrbitCollection.h"
0012 
0013 #include "DataFormats/L1Scouting/interface/L1ScoutingBMTFStub.h"
0014 
0015 #include "EventFilter/L1ScoutingRawToDigi/interface/shifts.h"
0016 #include "EventFilter/L1ScoutingRawToDigi/interface/masks.h"
0017 #include "EventFilter/L1ScoutingRawToDigi/interface/blocks.h"
0018 #include "L1TriggerScouting/Utilities/interface/printScObjects.h"
0019 
0020 #include <memory>
0021 #include <vector>
0022 #include <iostream>
0023 
0024 class ScBMTFRawToDigi : public edm::stream::EDProducer<> {
0025 public:
0026   explicit ScBMTFRawToDigi(const edm::ParameterSet&);
0027   ~ScBMTFRawToDigi() override;
0028 
0029   static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0030 
0031 private:
0032   void produce(edm::Event&, const edm::EventSetup&) override;
0033 
0034   void unpackOrbit(const unsigned char* buf, size_t len, int sdsId);
0035 
0036   // vector holding data for every bunch crossing
0037   // before  filling the orbit collection
0038   std::vector<std::vector<l1ScoutingRun3::BMTFStub>> orbitBuffer_;
0039   int nStubsOrbit_;
0040 
0041   bool debug_ = false;
0042   std::vector<int> sourceIdList_;
0043   edm::InputTag srcInputTag_;
0044   edm::EDGetToken rawToken_;
0045 };