CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CaloSetup.cc
Go to the documentation of this file.
2 
5 
7 
8 #include "CaloCollections.h"
9 #include "CaloTokens.h"
10 
11 namespace l1t {
12  namespace stage2 {
13  class CaloSetup : public PackingSetup {
14  public:
15  virtual std::unique_ptr<PackerTokens> registerConsumes(const edm::ParameterSet& cfg, edm::ConsumesCollector& cc) override {
16  return std::unique_ptr<PackerTokens>(new CaloTokens(cfg, cc));
17  };
18 
19  virtual void fillDescription(edm::ParameterSetDescription& desc) override {};
20 
21  virtual PackerMap getPackers(int fed, unsigned int fw) override {
22  PackerMap res;
23 
24  if (fed == 1366) {
25  // Use board id 1 for packing
26  res[{1, 1}] = {
27  PackerFactory::get()->make("stage2::CaloTowerPacker"),
28  PackerFactory::get()->make("stage2::EGammaPacker"),
29  PackerFactory::get()->make("stage2::EtSumPacker"),
30  PackerFactory::get()->make("stage2::JetPacker"),
31  PackerFactory::get()->make("stage2::TauPacker")
32  };
33  }
34 
35  return res;
36  };
37 
39  prod.produces<CaloTowerBxCollection>();
40  prod.produces<EGammaBxCollection>();
41  prod.produces<EtSumBxCollection>();
42  prod.produces<JetBxCollection>();
43  prod.produces<TauBxCollection>();
44 
45  prod.produces<EtSumBxCollection>("MP");
46  prod.produces<JetBxCollection>("MP");
47  };
48 
49  virtual std::unique_ptr<UnpackerCollections> getCollections(edm::Event& e) override {
50  return std::unique_ptr<UnpackerCollections>(new CaloCollections(e));
51  };
52 
53  virtual UnpackerMap getUnpackers(int fed, int board, int amc, unsigned int fw) override {
54  auto tower_unp = UnpackerFactory::get()->make("stage2::CaloTowerUnpacker");
55  auto egamma_unp = UnpackerFactory::get()->make("stage2::EGammaUnpacker");
56  auto etsum_unp = UnpackerFactory::get()->make("stage2::EtSumUnpacker");
57  auto jet_unp = UnpackerFactory::get()->make("stage2::JetUnpacker");
58  auto tau_unp = UnpackerFactory::get()->make("stage2::TauUnpacker");
59 
60  auto mp_unp = UnpackerFactory::get()->make("stage2::MPUnpacker");
61 
62  UnpackerMap res;
63  if (fed == 1366) {
64  res[13] = jet_unp;
65  res[15] = jet_unp;
66  res[21] = etsum_unp;
67  } else if (fed == 1360) {
68  res[1] = mp_unp;
69  res[3] = mp_unp;
70  res[5] = mp_unp;
71  res[7] = mp_unp;
72  res[9] = mp_unp;
73  res[11] = mp_unp;
74 
75  for (int link = 0; link < 144; link += 2)
76  res[link] = tower_unp;
77  }
78 
79  return res;
80  };
81  };
82  }
83 }
84 
tuple cfg
Definition: looper.py:293
virtual std::unique_ptr< UnpackerCollections > getCollections(edm::Event &e) override
Definition: CaloSetup.cc:49
std::shared_ptr< Packer > make(const std::string &) const
Definition: Packer.cc:12
virtual void fillDescription(edm::ParameterSetDescription &desc) override
Definition: CaloSetup.cc:19
static const PackerFactory * get()
Definition: Packer.h:28
virtual PackerMap getPackers(int fed, unsigned int fw) override
Definition: CaloSetup.cc:21
std::map< int, std::shared_ptr< Unpacker > > UnpackerMap
Definition: PackingSetup.h:27
double amc
Definition: hdecay.h:20
std::shared_ptr< Unpacker > make(const std::string &) const
Definition: Unpacker.cc:19
static const UnpackerFactory * get()
Definition: Unpacker.h:23
virtual UnpackerMap getUnpackers(int fed, int board, int amc, unsigned int fw) override
Definition: CaloSetup.cc:53
virtual void registerProducts(edm::stream::EDProducerBase &prod) override
Definition: CaloSetup.cc:38
std::map< std::pair< int, int >, Packers > PackerMap
Definition: PackingSetup.h:25
virtual std::unique_ptr< PackerTokens > registerConsumes(const edm::ParameterSet &cfg, edm::ConsumesCollector &cc) override
Definition: CaloSetup.cc:15
#define DEFINE_L1T_PACKING_SETUP(type)
Definition: PackingSetup.h:61