CMS 3D CMS Logo

List of all members | Public Member Functions
l1t::stage1::CaloSetup Class Reference

#include <CaloSetup.h>

Inheritance diagram for l1t::stage1::CaloSetup:
l1t::PackingSetup

Public Member Functions

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

Detailed Description

Definition at line 14 of file CaloSetup.h.

Constructor & Destructor Documentation

l1t::stage1::CaloSetup::~CaloSetup ( )
inlineoverride

Member Function Documentation

void CaloSetup::fillDescription ( edm::ParameterSetDescription desc)
overridevirtual

Implements l1t::PackingSetup.

Definition at line 20 of file CaloSetup.cc.

References edm::ParameterSetDescription::addOptional().

Referenced by ~CaloSetup().

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)
std::unique_ptr< UnpackerCollections > CaloSetup::getCollections ( edm::Event e)
overridevirtual

Implements l1t::PackingSetup.

Definition at line 67 of file CaloSetup.cc.

Referenced by ~CaloSetup().

68 {
69  return std::unique_ptr<UnpackerCollections>(new CaloCollections(e));
70 }
PackerMap CaloSetup::getPackers ( int  fed,
unsigned int  fw 
)
overridevirtual

Implements l1t::PackingSetup.

Definition at line 30 of file CaloSetup.cc.

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

Referenced by ~CaloSetup().

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

Implements l1t::PackingSetup.

Definition at line 73 of file CaloSetup.cc.

References DEFINE_L1T_PACKING_SETUP, l1t::UnpackerFactory::get(), funct::m, and l1t::UnpackerFactory::make().

Referenced by ~CaloSetup().

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

Implements l1t::PackingSetup.

Definition at line 14 of file CaloSetup.cc.

Referenced by ~CaloSetup().

15 {
16  return std::unique_ptr<PackerTokens>(new CaloTokens(cfg, cc));
17 }
void CaloSetup::registerProducts ( edm::stream::EDProducerBase prod)
overridevirtual

Implements l1t::PackingSetup.

Definition at line 52 of file CaloSetup.cc.

Referenced by ~CaloSetup().

53 {
54  prod.produces<L1CaloEmCollection>();
55  prod.produces<CaloSpareBxCollection>("HFBitCounts");
56  prod.produces<CaloSpareBxCollection>("HFRingSums");
57  prod.produces<L1CaloRegionCollection>();
58  prod.produces<CaloTowerBxCollection>();
59  prod.produces<EGammaBxCollection>();
60  prod.produces<EtSumBxCollection>();
61  prod.produces<JetBxCollection>();
62  prod.produces<TauBxCollection>("rlxTaus");
63  prod.produces<TauBxCollection>("isoTaus");
64 }
std::vector< L1CaloEmCand > L1CaloEmCollection
std::vector< L1CaloRegion > L1CaloRegionCollection