CMS 3D CMS Logo

PackingSetup.h
Go to the documentation of this file.
1 #ifndef EventFilter_L1TRawToDigi_PackingSetup_h
2 #define EventFilter_L1TRawToDigi_PackingSetup_h
3 
4 #include <map>
5 
8 
11 
14 
15 namespace edm {
16  class ConsumesCollector;
17  class Event;
18  class ParameterSet;
19 } // namespace edm
20 
21 namespace l1t {
22  // Mapping of board id to list of unpackers. Different for each set of (FED, Firmware) ids.
23  typedef std::map<std::pair<int, int>, Packers> PackerMap;
24  // Mapping of block id to unpacker. Different for each set of (FED, Board, AMC, Firmware) ids.
25  typedef std::map<int, std::shared_ptr<Unpacker>> UnpackerMap;
26 
27  class PackingSetup {
28  public:
30  virtual ~PackingSetup(){};
31  virtual std::unique_ptr<PackerTokens> registerConsumes(const edm::ParameterSet&, edm::ConsumesCollector&) = 0;
32  virtual void registerProducts(edm::ProducesCollector) = 0;
33 
34  // Get a map of (amc #, board id) ↔ list of packing functions for a specific FED, FW combination
35  virtual PackerMap getPackers(int fed, unsigned int fw) = 0;
36 
37  // Get a map of Block IDs ↔ unpacker for a specific FED, board, AMC, FW combination
38  virtual UnpackerMap getUnpackers(int fed, int board, int amc, unsigned int fw) = 0;
39  virtual std::unique_ptr<UnpackerCollections> getCollections(edm::Event&) = 0;
40 
41  // Fill description with needed parameters for the setup, i.e.,
42  // special input tags
44  };
45 
46 } // namespace l1t
47 
48 #endif
l1t::UnpackerMap
std::map< int, std::shared_ptr< Unpacker > > UnpackerMap
Definition: PackingSetup.h:25
l1t::PackingSetup::registerProducts
virtual void registerProducts(edm::ProducesCollector)=0
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
l1t::PackingSetup::registerConsumes
virtual std::unique_ptr< PackerTokens > registerConsumes(const edm::ParameterSet &, edm::ConsumesCollector &)=0
ProducesCollector.h
l1t::PackerMap
std::map< std::pair< int, int >, Packers > PackerMap
Definition: PackingSetup.h:23
PackerTokens.h
UnpackerCollections.h
Event
ParameterSetDescription.h
l1t::PackingSetup::PackingSetup
PackingSetup()
Definition: PackingSetup.h:29
l1t::PackingSetup::getPackers
virtual PackerMap getPackers(int fed, unsigned int fw)=0
edm::ParameterSet
Definition: ParameterSet.h:47
l1t::PackingSetup
Definition: PackingSetup.h:27
ParameterSet
Definition: Functions.h:16
l1t
delete x;
Definition: CaloConfig.h:22
fw
Definition: estimate_field.h:12
l1t::PackingSetup::fillDescription
virtual void fillDescription(edm::ParameterSetDescription &)=0
Packer.h
edm::ProducesCollector
Definition: ProducesCollector.h:43
Unpacker.h
l1t::PackingSetup::getCollections
virtual std::unique_ptr< UnpackerCollections > getCollections(edm::Event &)=0
l1t::Packers
std::vector< std::shared_ptr< Packer > > Packers
Definition: Packer.h:25
l1t::PackingSetup::getUnpackers
virtual UnpackerMap getUnpackers(int fed, int board, int amc, unsigned int fw)=0
amc
Definition: AMCSpec.h:8
l1t::PackingSetup::~PackingSetup
virtual ~PackingSetup()
Definition: PackingSetup.h:30
edm::Event
Definition: Event.h:73
edm::ConsumesCollector
Definition: ConsumesCollector.h:45