Skip to content

Commit 41e8446

Browse files
authored
Merge pull request #48963 from missirol/devel_l1tZDCEtSumsEmul
fix emulation of L1T ZDC EtSums
2 parents 9aa7268 + 94a8190 commit 41e8446

17 files changed

+454
-711
lines changed

DQM/Integration/python/clients/hcal_dqm_sourceclient-live_cfg.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -125,12 +125,9 @@
125125

126126
process.emulTPDigisForZDC = process.emulTPDigis.clone(inputUpgradeLabel = cms.VInputTag("hcalDigis", "hcalDigis:ZDC"))
127127

128-
#inserting zdc emulator after tp digis
129-
process.etSumZdcProducer = cms.EDProducer('L1TZDCProducer',
130-
hcalTPDigis = cms.InputTag("emulTPDigisForZDC"),
131-
bxFirst = cms.int32(-2),
132-
bxLast = cms.int32(3)
133-
)
128+
# Emulation of L1T ZDC EtSums based on HCAL trigger primitives
129+
from L1Trigger.L1TZDC.l1tZDCEtSums_cfi import l1tZDCEtSums as _l1tZDCEtSums
130+
process.etSumZdcProducer = _l1tZDCEtSums.clone(hcalTPDigis = "emulTPDigisForZDC")
134131

135132
process.hcalDigis.InputLabel = rawTag
136133
process.emulTPDigisNoTDCCut = process.emulTPDigis.clone(

L1Trigger/L1TCalorimeter/plugins/BuildFile.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<use name="FWCore/Framework"/>
2+
<use name="FWCore/MessageLogger"/>
23
<use name="FWCore/PluginManager"/>
34
<use name="FWCore/ParameterSet"/>
45
<use name="FWCore/Utilities"/>
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
#include "FWCore/Framework/interface/global/EDAnalyzer.h"
2+
#include "FWCore/Framework/interface/Event.h"
3+
#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
4+
#include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
5+
#include "FWCore/Utilities/interface/EDGetToken.h"
6+
#include "FWCore/Utilities/interface/InputTag.h"
7+
#include "FWCore/MessageLogger/interface/MessageLogger.h"
8+
9+
#include "DataFormats/L1Trigger/interface/EtSum.h"
10+
11+
#include <unordered_set>
12+
#include <vector>
13+
14+
class L1TEtSumsPrinter : public edm::global::EDAnalyzer<> {
15+
public:
16+
explicit L1TEtSumsPrinter(const edm::ParameterSet&);
17+
18+
static void fillDescriptions(edm::ConfigurationDescriptions&);
19+
20+
private:
21+
void analyze(edm::StreamID, edm::Event const&, edm::EventSetup const&) const override;
22+
23+
edm::EDGetTokenT<l1t::EtSumBxCollection> const srcToken_;
24+
std::unordered_set<int> const etSumTypes_;
25+
};
26+
27+
L1TEtSumsPrinter::L1TEtSumsPrinter(const edm::ParameterSet& iConfig)
28+
: srcToken_{consumes(iConfig.getParameter<edm::InputTag>("src"))}, etSumTypes_{[](std::vector<int> const& vInts) {
29+
return std::unordered_set<int>{vInts.begin(), vInts.end()};
30+
}(iConfig.getParameter<std::vector<int>>("etSumTypes"))} {}
31+
32+
void L1TEtSumsPrinter::analyze(edm::StreamID, edm::Event const& iEvent, edm::EventSetup const&) const {
33+
auto const& etSums = iEvent.get(srcToken_);
34+
auto const& moduleLabel = moduleDescription().moduleLabel();
35+
for (int ibx = etSums.getFirstBX(); ibx <= etSums.getLastBX(); ++ibx) {
36+
auto const size = etSums.size(ibx);
37+
for (uint idx = 0; idx < size; ++idx) {
38+
auto const& etSum = etSums.at(ibx, idx);
39+
if ((not etSumTypes_.empty()) and etSumTypes_.find(etSum.getType()) == etSumTypes_.end()) {
40+
continue;
41+
}
42+
43+
edm::LogPrint("L1TEtSumsPrinter") << "[" << moduleLabel << "] etSums[" << ibx << "][" << idx
44+
<< "] (type, hwPt) = (" << etSum.getType() << ", " << etSum.hwPt() << ")";
45+
}
46+
}
47+
}
48+
49+
void L1TEtSumsPrinter::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
50+
edm::ParameterSetDescription desc;
51+
desc.add<edm::InputTag>("src", edm::InputTag("gtStage2Digis:EtSum"))
52+
->setComment("Input collection of type l1t::EtSumBxCollection");
53+
desc.add<std::vector<int>>("etSumTypes", {})
54+
->setComment("If not empty, only the specified l1t::EtSumType values are considered");
55+
descriptions.add("l1tEtSumsPrinter", desc);
56+
}
57+
58+
#include "FWCore/Framework/interface/MakerMacros.h"
59+
DEFINE_FWK_MODULE(L1TEtSumsPrinter);

L1Trigger/L1TZDC/README.md

Lines changed: 0 additions & 112 deletions
This file was deleted.

L1Trigger/L1TZDC/plugins/BuildFile.xml

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
1-
<use name="FWCore/Framework"/>
2-
<use name="FWCore/ParameterSet"/>
3-
<use name="FWCore/Utilities"/>
4-
<use name="FWCore/ServiceRegistry"/>
51
<use name="CommonTools/UtilAlgos"/>
62
<use name="DataFormats/HcalDigi"/>
73
<use name="DataFormats/L1Trigger"/>
8-
<use name="DataFormats/L1TCalorimeter"/>
9-
<use name="CondFormats/L1TObjects"/>
10-
<use name="CondFormats/DataRecord"/>
4+
<use name="FWCore/Framework"/>
5+
<use name="FWCore/MessageLogger"/>
6+
<use name="FWCore/ParameterSet"/>
7+
<use name="FWCore/ServiceRegistry"/>
8+
<use name="FWCore/Utilities"/>
119
<use name="L1Trigger/L1TCalorimeter"/>
1210
<library file="*.cc" name="L1TriggerL1TZDCPlugins">
1311
<flags EDM_PLUGIN="1"/>

L1Trigger/L1TZDC/plugins/L1TZDCAnalyzer.cc renamed to L1Trigger/L1TZDC/plugins/L1TZDCEtSumsAnalyzer.cc

Lines changed: 18 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,16 @@
22
//Modified by Chris McGinn to instead work for just ZDC etSums
33
//Contact at [email protected] or cfmcginn @ github for bugs
44

5-
#include "FWCore/Framework/interface/Event.h"
6-
#include "FWCore/Framework/interface/MakerMacros.h"
7-
#include "FWCore/Framework/interface/one/EDAnalyzer.h"
8-
9-
#include "FWCore/ParameterSet/interface/ParameterSet.h"
10-
11-
#include "FWCore/ServiceRegistry/interface/Service.h"
125
#include "CommonTools/UtilAlgos/interface/TFileService.h"
136

14-
#include "CondFormats/L1TObjects/interface/CaloParams.h"
15-
#include "CondFormats/DataRecord/interface/L1TCaloParamsRcd.h"
16-
17-
#include "DataFormats/L1TCalorimeter/interface/CaloTower.h"
18-
#include "DataFormats/L1TCalorimeter/interface/CaloCluster.h"
19-
#include "DataFormats/L1Trigger/interface/EGamma.h"
20-
#include "DataFormats/L1Trigger/interface/Tau.h"
21-
#include "DataFormats/L1Trigger/interface/Jet.h"
227
#include "DataFormats/L1Trigger/interface/EtSum.h"
238

9+
#include "FWCore/Framework/interface/Event.h"
10+
#include "FWCore/Framework/interface/one/EDAnalyzer.h"
11+
#include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
12+
#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
13+
#include "FWCore/ServiceRegistry/interface/Service.h"
14+
2415
//For the output
2516
#include "TTree.h"
2617
//string for some branch handling
@@ -32,10 +23,10 @@
3223

3324
namespace l1t {
3425

35-
class L1TZDCAnalyzer : public edm::one::EDAnalyzer<edm::one::SharedResources> {
26+
class L1TZDCEtSumsAnalyzer : public edm::one::EDAnalyzer<edm::one::SharedResources> {
3627
public:
37-
explicit L1TZDCAnalyzer(const edm::ParameterSet&);
38-
~L1TZDCAnalyzer() override = default;
28+
explicit L1TZDCEtSumsAnalyzer(const edm::ParameterSet&);
29+
~L1TZDCEtSumsAnalyzer() override = default;
3930

4031
static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
4132

@@ -73,7 +64,7 @@ namespace l1t {
7364
//
7465
// constructors and destructor
7566
//
76-
L1TZDCAnalyzer::L1TZDCAnalyzer(const edm::ParameterSet& iConfig)
67+
L1TZDCEtSumsAnalyzer::L1TZDCEtSumsAnalyzer(const edm::ParameterSet& iConfig)
7768
: doHistos_(iConfig.getUntrackedParameter<bool>("doHistos", true)) {
7869
usesResource(TFileService::kSharedResource);
7970
//now do what ever initialization is needed
@@ -84,15 +75,15 @@ namespace l1t {
8475
edm::InputTag sumTag = iConfig.getParameter<edm::InputTag>("etSumTag");
8576
sumToken_ = consumes<l1t::EtSumBxCollection>(sumTag);
8677

87-
edm::LogInfo("L1TZDCAnalyzer") << "Processing " << sumTag.label() << std::endl;
78+
edm::LogInfo("L1TZDCEtSumsAnalyzer") << "Processing " << sumTag.label() << std::endl;
8879
}
8980

9081
//
9182
// member functions
9283
//
9384

9485
// ------------ method called for each event ------------
95-
void L1TZDCAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) {
86+
void L1TZDCEtSumsAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) {
9687
using namespace edm;
9788

9889
// Handle<EtSumBxCollection> sums;
@@ -114,26 +105,25 @@ namespace l1t {
114105
}
115106

116107
// ------------ method called once each job just before starting event loop ------------
117-
void L1TZDCAnalyzer::beginJob() {
108+
void L1TZDCEtSumsAnalyzer::beginJob() {
118109
etSumZdcTree_ = fs_->make<TTree>("etSumZdcTree", "");
119110
etSumZdcTree_->Branch("etSumZdcP", etSumZdcP_, ("etSumZdcP[" + std::to_string(maxBPX_) + "]/F").c_str());
120111
etSumZdcTree_->Branch("etSumZdcM", etSumZdcM_, ("etSumZdcM[" + std::to_string(maxBPX_) + "]/F").c_str());
121112
}
122113

123114
// ------------ method called once each job just after ending the event loop ------------
124-
void L1TZDCAnalyzer::endJob() {}
115+
void L1TZDCEtSumsAnalyzer::endJob() {}
125116

126117
// ------------ method fills 'descriptions' with the allowed parameters for the module ------------
127-
void L1TZDCAnalyzer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
118+
void L1TZDCEtSumsAnalyzer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
128119
edm::ParameterSetDescription desc;
129-
130120
desc.add<edm::InputTag>("etSumTag", edm::InputTag("l1tZDCEtSums", ""));
131-
descriptions.add("l1tZDCAnalyzer", desc);
121+
descriptions.add("l1tZDCEtSumsAnalyzer", desc);
132122
}
133123

134124
} // namespace l1t
135125

136126
using namespace l1t;
137127

138-
//define this as a plug-in
139-
DEFINE_FWK_MODULE(L1TZDCAnalyzer);
128+
#include "FWCore/Framework/interface/MakerMacros.h"
129+
DEFINE_FWK_MODULE(L1TZDCEtSumsAnalyzer);

0 commit comments

Comments
 (0)