CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions
l1t::stage1::CaloSetup Class Reference
Inheritance diagram for l1t::stage1::CaloSetup:
l1t::PackingSetup

Public Member Functions

virtual void fillDescription (edm::ParameterSetDescription &desc) override
 
virtual std::unique_ptr
< UnpackerCollections
getCollections (edm::Event &e) override
 
virtual PackerMap getPackers (int fed, unsigned int fw) override
 
virtual UnpackerMap getUnpackers (int fed, int board, int amc, unsigned int fw) override
 
virtual std::unique_ptr
< PackerTokens
registerConsumes (const edm::ParameterSet &cfg, edm::ConsumesCollector &cc) override
 
virtual void registerProducts (edm::stream::EDProducerBase &prod) override
 
- Public Member Functions inherited from l1t::PackingSetup
 PackingSetup ()
 

Detailed Description

Definition at line 14 of file CaloSetup.cc.

Member Function Documentation

virtual void l1t::stage1::CaloSetup::fillDescription ( edm::ParameterSetDescription desc)
inlineoverridevirtual

Implements l1t::PackingSetup.

Definition at line 20 of file CaloSetup.cc.

References edm::ParameterSetDescription::addOptional().

20  {
21  desc.addOptional<edm::InputTag>("TauInputLabel")->setComment("for stage1");
22  desc.addOptional<edm::InputTag>("IsoTauInputLabel")->setComment("for stage1");
23  desc.addOptional<edm::InputTag>("HFBitCountsInputLabel")->setComment("for stage1");
24  desc.addOptional<edm::InputTag>("HFRingSumsInputLabel")->setComment("for stage1");
25  desc.addOptional<edm::InputTag>("RegionInputLabel")->setComment("for stage1");
26  desc.addOptional<edm::InputTag>("EmCandInputLabel")->setComment("for stage1");
27  };
ParameterDescriptionBase * addOptional(U const &iLabel, T const &value)
virtual std::unique_ptr<UnpackerCollections> l1t::stage1::CaloSetup::getCollections ( edm::Event e)
inlineoverridevirtual

Implements l1t::PackingSetup.

Definition at line 62 of file CaloSetup.cc.

62  {
63  return std::unique_ptr<UnpackerCollections>(new CaloCollections(e));
64  };
virtual PackerMap l1t::stage1::CaloSetup::getPackers ( int  fed,
unsigned int  fw 
)
inlineoverridevirtual

Implements l1t::PackingSetup.

Definition at line 29 of file CaloSetup.cc.

References l1t::PackerFactory::get(), and l1t::PackerFactory::make().

29  {
30  PackerMap res;
31 
32  res[{1, 0x2300}] = {
33  PackerFactory::get()->make("stage1::IsoEGammaPacker"),
34  PackerFactory::get()->make("stage1::NonIsoEGammaPacker"),
35  PackerFactory::get()->make("stage1::CentralJetPacker"),
36  PackerFactory::get()->make("stage1::ForwardJetPacker"),
37  PackerFactory::get()->make("stage1::TauPacker"),
38  PackerFactory::get()->make("stage1::IsoTauPacker"),
39  PackerFactory::get()->make("stage1::EtSumPacker"),
40  PackerFactory::get()->make("stage1::MissEtPacker"),
41  PackerFactory::get()->make("stage1::CaloSpareHFPacker"),
42  PackerFactory::get()->make("stage1::MissHtPacker"),
43  PackerFactory::get()->make("stage1::RCTEmRegionPacker"),
44  };
45 
46  return res;
47  };
std::shared_ptr< Packer > make(const std::string &) const
Definition: Packer.cc:12
static const PackerFactory * get()
Definition: Packer.h:28
std::map< std::pair< int, int >, Packers > PackerMap
Definition: PackingSetup.h:25
virtual UnpackerMap l1t::stage1::CaloSetup::getUnpackers ( int  fed,
int  board,
int  amc,
unsigned int  fw 
)
inlineoverridevirtual

Implements l1t::PackingSetup.

Definition at line 66 of file CaloSetup.cc.

References l1t::UnpackerFactory::get(), visualization-live-secondInstance_cfg::m, and l1t::UnpackerFactory::make().

66  {
67  UnpackerMap res;
68 
69  // FIXME Hard-coded firmware version for first 74x MC campaigns.
70  // Will account for differences in the AMC payload, MP7 payload,
71  // and unpacker setup.
72  if ((fw >> 24) == 0xff) {
73  auto cjet_unp = UnpackerFactory::get()->make("stage1::legacy::CentralJetUnpacker");
74  auto fjet_unp = UnpackerFactory::get()->make("stage1::legacy::ForwardJetUnpacker");
75 
76  if (fed == 1352) {
77  if (board == 0x200D) {
78  auto iegamma_unp = UnpackerFactory::get()->make("stage1::legacy::IsoEGammaUnpacker");
79  auto niegamma_unp = UnpackerFactory::get()->make("stage1::legacy::NonIsoEGammaUnpacker");
80  auto tau_unp = UnpackerFactory::get()->make("stage1::legacy::TauUnpacker");
81  auto isotau_unp = UnpackerFactory::get()->make("stage1::legacy::IsoTauUnpacker");
82  auto etsum_unp = UnpackerFactory::get()->make("stage1::legacy::EtSumUnpacker");
83  auto ring_unp = UnpackerFactory::get()->make("stage1::legacy::HFRingUnpacker");
84 
85  res[1] = iegamma_unp;
86  res[2] = niegamma_unp;
87  res[3] = cjet_unp;
88  res[4] = fjet_unp;
89  res[5] = tau_unp;
90  res[6] = etsum_unp;
91  res[7] = ring_unp;
92  res[8] = isotau_unp;
93  }
94  }
95  } else {
96  auto cjet_unp_Left = UnpackerFactory::get()->make("stage1::CentralJetUnpackerLeft");
97  auto fjet_unp_Left = UnpackerFactory::get()->make("stage1::ForwardJetUnpackerLeft");
98  auto iegamma_unp_Left = UnpackerFactory::get()->make("stage1::IsoEGammaUnpackerLeft");
99  auto niegamma_unp_Left = UnpackerFactory::get()->make("stage1::NonIsoEGammaUnpackerLeft");
100  auto tau_unp_Left = UnpackerFactory::get()->make("stage1::TauUnpackerLeft");
101  auto isotau_unp_Left = UnpackerFactory::get()->make("stage1::IsoTauUnpackerLeft");
102  auto cjet_unp_Right = UnpackerFactory::get()->make("stage1::CentralJetUnpackerRight");
103  auto fjet_unp_Right = UnpackerFactory::get()->make("stage1::ForwardJetUnpackerRight");
104  auto iegamma_unp_Right = UnpackerFactory::get()->make("stage1::IsoEGammaUnpackerRight");
105  auto niegamma_unp_Right = UnpackerFactory::get()->make("stage1::NonIsoEGammaUnpackerRight");
106  auto tau_unp_Right = UnpackerFactory::get()->make("stage1::TauUnpackerRight");
107  auto isotau_unp_Right = UnpackerFactory::get()->make("stage1::IsoTauUnpackerRight");
108  auto etsum_unp = UnpackerFactory::get()->make("stage1::EtSumUnpacker");
109  auto missetsum_unp = UnpackerFactory::get()->make("stage1::MissEtUnpacker");
110  auto calospare_unp = UnpackerFactory::get()->make("stage1::CaloSpareHFUnpacker");
111  auto misshtsum_unp = UnpackerFactory::get()->make("stage1::MissHtUnpacker");
112 
113  if (fed == 1352) {
114  auto rct_unp = UnpackerFactory::get()->make("stage1::RCTEmRegionUnpacker");
115 
116  // 4109 == 0x100D
117  if(board == 0x2300){
118  res[77] = cjet_unp_Left;
119  res[79] = cjet_unp_Right;
120  res[81] = fjet_unp_Left;
121  res[83] = fjet_unp_Right;
122  res[85] = iegamma_unp_Left;
123  res[87] = iegamma_unp_Right;
124  res[89] = niegamma_unp_Left;
125  res[91] = niegamma_unp_Right;
126  res[93] = etsum_unp;
127  res[95] = missetsum_unp;
128  res[97] = calospare_unp;
129  res[99] = misshtsum_unp;
130  res[101] = tau_unp_Left;
131  res[103] = tau_unp_Right;
132  res[105] = isotau_unp_Left;
133  res[107] = isotau_unp_Right;
134 
135  for (int m=0;m<36;m++) {
136  res[m*2] = rct_unp;
137  }
138  }
139  }
140  }
141  return res;
142  };
std::map< int, std::shared_ptr< Unpacker > > UnpackerMap
Definition: PackingSetup.h:27
std::shared_ptr< Unpacker > make(const std::string &) const
Definition: Unpacker.cc:19
static const UnpackerFactory * get()
Definition: Unpacker.h:23
virtual std::unique_ptr<PackerTokens> l1t::stage1::CaloSetup::registerConsumes ( const edm::ParameterSet cfg,
edm::ConsumesCollector cc 
)
inlineoverridevirtual

Implements l1t::PackingSetup.

Definition at line 16 of file CaloSetup.cc.

16  {
17  return std::unique_ptr<PackerTokens>(new CaloTokens(cfg, cc));
18  };
virtual void l1t::stage1::CaloSetup::registerProducts ( edm::stream::EDProducerBase prod)
inlineoverridevirtual

Implements l1t::PackingSetup.

Definition at line 49 of file CaloSetup.cc.

49  {
50  prod.produces<L1CaloEmCollection>();
51  prod.produces<CaloSpareBxCollection>("HFBitCounts");
52  prod.produces<CaloSpareBxCollection>("HFRingSums");
53  prod.produces<L1CaloRegionCollection>();
54  prod.produces<CaloTowerBxCollection>();
55  prod.produces<EGammaBxCollection>();
56  prod.produces<EtSumBxCollection>();
57  prod.produces<JetBxCollection>();
58  prod.produces<TauBxCollection>("rlxTaus");
59  prod.produces<TauBxCollection>("isoTaus");
60  };
BXVector< EGamma > EGammaBxCollection
Definition: EGamma.h:11
std::vector< L1CaloEmCand > L1CaloEmCollection
BXVector< Tau > TauBxCollection
Definition: Tau.h:10
BXVector< EtSum > EtSumBxCollection
Definition: EtSum.h:10
BXVector< CaloSpare > CaloSpareBxCollection
Definition: CaloSpare.h:10
BXVector< Jet > JetBxCollection
Definition: Jet.h:10
BXVector< CaloTower > CaloTowerBxCollection
Definition: CaloTower.h:10
std::vector< L1CaloRegion > L1CaloRegionCollection