80 void endJob()
override;
91 std::shared_ptr<Stage1Layer2MainProcessor>
m_fw;
109 produces<BXVector<EGamma>>();
110 produces<BXVector<Tau>>(
"rlxTaus");
111 produces<BXVector<Tau>>(
"isoTaus");
112 produces<BXVector<Jet>>();
113 produces<BXVector<Jet>>(
"preGtJets");
114 produces<BXVector<EtSum>>();
115 produces<BXVector<CaloSpare>>(
"HFRingSums");
116 produces<BXVector<CaloSpare>>(
"HFBitCounts");
148 LogDebug(
"l1t|stage 1 jets") <<
"L1TStage1Layer2Producer::produce function called...\n";
159 int bxFirst = caloRegions->getFirstBX();
160 int bxLast = caloRegions->getLastBX();
172 egammas->setBXRange(bxFirst, bxLast);
173 taus->setBXRange(bxFirst, bxLast);
174 isoTaus->setBXRange(bxFirst, bxLast);
175 jets->setBXRange(bxFirst, bxLast);
176 preGtJets->setBXRange(bxFirst, bxLast);
177 etsums->setBXRange(bxFirst, bxLast);
178 hfSums->setBXRange(bxFirst, bxLast);
179 hfCounts->setBXRange(bxFirst, bxLast);
183 for(
int i = bxFirst;
i <= bxLast; ++
i)
186 std::vector<CaloRegion> *localRegions =
new std::vector<CaloRegion>();
187 std::vector<CaloEmCand> *localEmCands =
new std::vector<CaloEmCand>();
190 std::vector<EGamma> *localEGammas =
new std::vector<EGamma>();
191 std::vector<Tau> *localTaus =
new std::vector<Tau>();
192 std::vector<Tau> *localIsoTaus =
new std::vector<Tau>();
193 std::vector<Jet> *localJets =
new std::vector<Jet>();
194 std::vector<Jet> *localPreGtJets =
new std::vector<Jet>();
195 std::vector<EtSum> *localEtSums =
new std::vector<EtSum>();
197 localHfSums->setType(CaloSpare::HFRingSum);
199 localHfCounts->
setType(CaloSpare::HFBitCount);
202 for(std::vector<CaloRegion>::const_iterator region = caloRegions->begin(
i);
203 region != caloRegions->end(
i); ++region)
204 localRegions->push_back(*region);
205 for(std::vector<CaloEmCand>::const_iterator emcand = caloEmCands->begin(
i);
206 emcand != caloEmCands->end(
i); ++emcand)
207 localEmCands->push_back(*emcand);
210 m_fw->processEvent(*localEmCands, *localRegions,
211 localEGammas, localTaus, localIsoTaus, localJets, localPreGtJets, localEtSums,
212 localHfSums, localHfCounts);
215 for(std::vector<EGamma>::const_iterator eg = localEGammas->begin(); eg != localEGammas->end(); ++eg)
216 egammas->push_back(
i, *eg);
217 for(std::vector<Tau>::const_iterator
tau = localTaus->begin();
tau != localTaus->end(); ++
tau)
218 taus->push_back(
i, *
tau);
219 for(std::vector<Tau>::const_iterator isotau = localIsoTaus->begin(); isotau != localIsoTaus->end(); ++isotau)
220 isoTaus->push_back(
i, *isotau);
221 for(std::vector<Jet>::const_iterator
jet = localJets->begin();
jet != localJets->end(); ++
jet)
222 jets->push_back(
i, *
jet);
223 for(std::vector<Jet>::const_iterator
jet = localPreGtJets->begin();
jet != localPreGtJets->end(); ++
jet)
224 preGtJets->push_back(
i, *
jet);
225 for(std::vector<EtSum>::const_iterator etsum = localEtSums->begin(); etsum != localEtSums->end(); ++etsum)
226 etsums->push_back(
i, *etsum);
227 hfSums->push_back(
i, *localHfSums);
228 hfCounts->push_back(
i, *localHfCounts);
236 delete localPreGtJets;
239 delete localHfCounts;
267 unsigned long long id = 0;
270 if (
id != m_paramsCacheId) {
272 m_paramsCacheId =
id;
279 m_params->~CaloParamsHelper();
282 LogDebug(
"L1TDebug") << *m_params << std::endl;
285 edm::LogError(
"l1t|caloStage1") <<
"Could not retrieve params from Event Setup" << std::endl;
291 if (
id != m_configCacheId) {
292 m_configCacheId =
id;
300 edm::LogError(
"l1t|caloStage1") <<
"Could not retrieve config from Event Setup" << std::endl;
303 m_config.UpdatePayload(configHandle.
product());
313 LogDebug(
"l1t|stage 1 jets") <<
"L1TStage1Layer2Producer::beginRun function called...\n";
318 m_params->setEmScale(*emScale);
322 m_params->setJetScale(*jetScale);
326 m_params->setHtMissScale(*HtMissScale);
331 m_params->setHfRingScale(*HfRingScale);
369 int ifwv=m_config.fwv();
373 LogDebug(
"l1t|stage1firmware") <<
"L1TStage1Layer2Producer -- Running HI implementation\n";
375 }
else if (ifwv == 2){
376 LogDebug(
"l1t|stage1firmware") <<
"L1TStage1Layer2Producer -- Running pp implementation\n";
378 }
else if (ifwv == 3){
379 LogDebug(
"l1t|stage1firmware") <<
"L1TStage1Layer2Producer -- Running SimpleHW implementation\n";
382 LogError(
"l1t|stage1firmware") <<
"L1TStage1Layer2Producer -- Unknown implementation.\n";
388 m_fw = m_factory.create(ifwv ,m_params);
392 LogError(
"l1t|stage1firmware") <<
"L1TStage1Layer2Producer: firmware could not be configured.\n";
void endRun(Run const &iR, EventSetup const &iE) override
T getParameter(std::string const &) const
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
bool getByToken(EDGetToken token, Handle< PROD > &result) const
std::string m_conditionsLabel
CaloParamsHelper * m_params
static void fillDescriptions(ConfigurationDescriptions &descriptions)
unsigned long long m_paramsCacheId
void setType(CaloSpareType type)
L1TStage1Layer2Producer(const ParameterSet &)
CaloConfigHelper m_config
#define DEFINE_FWK_MODULE(type)
void addDefault(ParameterSetDescription const &psetDescription)
~L1TStage1Layer2Producer() override
Stage1Layer2FirmwareFactory m_factory
std::shared_ptr< Stage1Layer2MainProcessor > m_fw
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
unsigned long long m_configCacheId
T const * product() const
void beginRun(Run const &iR, EventSetup const &iE) override
void produce(Event &, EventSetup const &) override