Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates to L1T packer needed to simultaneously pack GT inputs and GMT/Calo ouputs #14326

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 0 additions & 2 deletions EventFilter/L1TRawToDigi/interface/PackerTokens.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ namespace edm {

namespace l1t {
class PackerTokens {
public:
PackerTokens(const edm::ParameterSet&, edm::ConsumesCollector&) {};
};
}

Expand Down
5 changes: 4 additions & 1 deletion EventFilter/L1TRawToDigi/python/gtStage2Raw_cfi.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@
"L1TDigiToRaw",
Setup = cms.string("stage2::GTSetup"),
# TowerInputLabel = cms.InputTag("simCaloStage2Digis"),
InputLabel = cms.InputTag("simGtStage2Digis"),
GtInputLabel = cms.InputTag("simGtStage2Digis"),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mulhearn - these aren't available for data... whats the timescale for making the real digis?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mulhearn clariifies - its the digi->raw here..

ExtInputLabel = cms.InputTag("simGtStage2Digis"),
CaloInputLabel = cms.InputTag("simCaloStage2Digis"),
GmtInputLabel = cms.InputTag("simGmtStage2Digis"),
FedId = cms.int32(1404),
FWId = cms.uint32(1),
lenSlinkHeader = cms.untracked.int32(8),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

namespace l1t {
namespace stage1 {
CaloTokens::CaloTokens(const edm::ParameterSet& cfg, edm::ConsumesCollector& cc) : PackerTokens(cfg, cc)
CaloTokens::CaloTokens(const edm::ParameterSet& cfg, edm::ConsumesCollector& cc)
{
auto tag = cfg.getParameter<edm::InputTag>("InputLabel");
auto tautag = cfg.getParameter<edm::InputTag>("TauInputLabel");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

namespace l1t {
namespace stage2 {
BMTFTokens::BMTFTokens(const edm::ParameterSet& cfg, edm::ConsumesCollector& cc) : PackerTokens(cfg, cc)
BMTFTokens::BMTFTokens(const edm::ParameterSet& cfg, edm::ConsumesCollector& cc)
{
auto ouputTag = cfg.getParameter<edm::InputTag>("InputLabel");
auto inputTagPh = cfg.getParameter<edm::InputTag>("InputLabel");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ namespace l1t {
namespace stage2 {
class BMTFTokens : public PackerTokens {
public:
BMTFTokens(const edm::ParameterSet&, edm::ConsumesCollector&);
BMTFTokens(const edm::ParameterSet&, edm::ConsumesCollector&);

inline const edm::EDGetTokenT<RegionalMuonCandBxCollection>& getOutputMuonToken() const {return outputMuonToken_;};
inline const edm::EDGetTokenT<L1MuDTChambPhContainer>& getInputMuonTokenPh() const {return inputMuonTokenPh_;};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@ namespace l1t {
// Use board id 1 for packing
res[{1, 1}] = {
// PackerFactory::get()->make("stage2::CaloTowerPacker"),
PackerFactory::get()->make("stage2::EGammaPacker"),
PackerFactory::get()->make("stage2::EtSumPacker"),
PackerFactory::get()->make("stage2::JetPacker"),
PackerFactory::get()->make("stage2::TauPacker")
PackerFactory::get()->make("stage2::CaloEGammaPacker"),
PackerFactory::get()->make("stage2::CaloEtSumPacker"),
PackerFactory::get()->make("stage2::CaloJetPacker"),
PackerFactory::get()->make("stage2::CaloTauPacker")
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

namespace l1t {
namespace stage2 {
CaloTokens::CaloTokens(const edm::ParameterSet& cfg, edm::ConsumesCollector& cc) : PackerTokens(cfg, cc)
CaloTokens::CaloTokens(const edm::ParameterSet& cfg, edm::ConsumesCollector& cc)
{
auto towtag = cfg.getParameter<edm::InputTag>("TowerInputLabel");
auto tag = cfg.getParameter<edm::InputTag>("InputLabel");
Expand Down
12 changes: 2 additions & 10 deletions EventFilter/L1TRawToDigi/src/implementations_stage2/CaloTokens.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,18 @@
#include "DataFormats/L1Trigger/interface/Jet.h"
#include "DataFormats/L1Trigger/interface/Tau.h"

#include "EventFilter/L1TRawToDigi/interface/PackerTokens.h"
#include "CommonTokens.h"

namespace l1t {
namespace stage2 {
class CaloTokens : public PackerTokens {
class CaloTokens : public CommonTokens {
public:
CaloTokens(const edm::ParameterSet&, edm::ConsumesCollector&);

inline const edm::EDGetTokenT<CaloTowerBxCollection>& getCaloTowerToken() const { return towerToken_; };
inline const edm::EDGetTokenT<EGammaBxCollection>& getEGammaToken() const { return egammaToken_; };
inline const edm::EDGetTokenT<EtSumBxCollection>& getEtSumToken() const { return etSumToken_; };
inline const edm::EDGetTokenT<JetBxCollection>& getJetToken() const { return jetToken_; };
inline const edm::EDGetTokenT<TauBxCollection>& getTauToken() const { return tauToken_; };

private:
edm::EDGetTokenT<CaloTowerBxCollection> towerToken_;
edm::EDGetTokenT<EGammaBxCollection> egammaToken_;
edm::EDGetTokenT<EtSumBxCollection> etSumToken_;
edm::EDGetTokenT<JetBxCollection> jetToken_;
edm::EDGetTokenT<TauBxCollection> tauToken_;
};
}
}
Expand Down
34 changes: 34 additions & 0 deletions EventFilter/L1TRawToDigi/src/implementations_stage2/CommonTokens.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#ifndef CommonTokens_h
#define CommonTokens_h

#include "DataFormats/L1Trigger/interface/EGamma.h"
#include "DataFormats/L1Trigger/interface/EtSum.h"
#include "DataFormats/L1Trigger/interface/Jet.h"
#include "DataFormats/L1Trigger/interface/Tau.h"
#include "DataFormats/L1Trigger/interface/Muon.h"

#include "EventFilter/L1TRawToDigi/interface/PackerTokens.h"

namespace l1t {
namespace stage2 {
class CommonTokens : public PackerTokens {
public:
inline const edm::EDGetTokenT<EGammaBxCollection>& getEGammaToken() const { return egammaToken_; };
inline const edm::EDGetTokenT<EtSumBxCollection>& getEtSumToken() const { return etSumToken_; };
inline const edm::EDGetTokenT<JetBxCollection>& getJetToken() const { return jetToken_; };
inline const edm::EDGetTokenT<TauBxCollection>& getTauToken() const { return tauToken_; };
inline const edm::EDGetTokenT<MuonBxCollection>& getMuonToken() const { return muonToken_; };

protected:
edm::EDGetTokenT<EGammaBxCollection> egammaToken_;
edm::EDGetTokenT<EtSumBxCollection> etSumToken_;
edm::EDGetTokenT<JetBxCollection> jetToken_;
edm::EDGetTokenT<TauBxCollection> tauToken_;
edm::EDGetTokenT<MuonBxCollection> muonToken_;
};
}
}

#endif


Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,18 @@ namespace l1t {
namespace stage2 {
class EGammaPacker : public Packer {
public:
EGammaPacker(int b1, int b2) : b1_(b1), b2_(b2) {}
virtual Blocks pack(const edm::Event&, const PackerTokens*) override;
int b1_, b2_;
};

class GTEGammaPacker : public EGammaPacker {
public:
GTEGammaPacker() : EGammaPacker(8,10) {}
};
class CaloEGammaPacker : public EGammaPacker {
public:
CaloEGammaPacker() : EGammaPacker(9,11) {}
};
}
}
Expand All @@ -23,7 +34,7 @@ namespace stage2 {
EGammaPacker::pack(const edm::Event& event, const PackerTokens* toks)
{
edm::Handle<EGammaBxCollection> egs;
event.getByToken(static_cast<const CaloTokens*>(toks)->getEGammaToken(), egs);
event.getByToken(static_cast<const CommonTokens*>(toks)->getEGammaToken(), egs);

std::vector<uint32_t> load1, load2;

Expand Down Expand Up @@ -54,11 +65,12 @@ namespace stage2 {

while (load2.size()<l1t::stage2::layer2::demux::nOutputFramePerBX) load2.push_back(0);

return {Block(9, load1), Block(11, load2)};
return {Block(b1_, load1), Block(b2_, load2)};

}

}
}

DEFINE_L1T_PACKER(l1t::stage2::EGammaPacker);
DEFINE_L1T_PACKER(l1t::stage2::GTEGammaPacker);
DEFINE_L1T_PACKER(l1t::stage2::CaloEGammaPacker);
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

namespace l1t {
namespace stage2 {
EMTFTokens::EMTFTokens(const edm::ParameterSet& cfg, edm::ConsumesCollector& cc) : PackerTokens(cfg, cc)
EMTFTokens::EMTFTokens(const edm::ParameterSet& cfg, edm::ConsumesCollector& cc)
{
auto tag = cfg.getParameter<edm::InputTag>("InputLabel");

Expand Down
21 changes: 17 additions & 4 deletions EventFilter/L1TRawToDigi/src/implementations_stage2/EtSumPacker.cc
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,22 @@
#include "L1TStage2Layer2Constants.h"

namespace l1t {
namespace stage2 {
namespace stage2 {
class EtSumPacker : public Packer {
public:
EtSumPacker(int b1) : b1_(b1) {}
virtual Blocks pack(const edm::Event&, const PackerTokens*) override;
int b1_;
};
class GTEtSumPacker : public EtSumPacker {
public:
GTEtSumPacker() : EtSumPacker(20) {}
};
class CaloEtSumPacker : public EtSumPacker {
public:
CaloEtSumPacker() : EtSumPacker(21) {}
};

}
}

Expand All @@ -23,7 +34,7 @@ namespace stage2 {
EtSumPacker::pack(const edm::Event& event, const PackerTokens* toks)
{
edm::Handle<EtSumBxCollection> etSums;
event.getByToken(static_cast<const CaloTokens*>(toks)->getEtSumToken(), etSums);
event.getByToken(static_cast<const CommonTokens*>(toks)->getEtSumToken(), etSums);

uint32_t et_word = 0;
uint32_t ht_word = 0;
Expand All @@ -50,9 +61,11 @@ namespace stage2 {
load.push_back(mht_word);
while (load.size()<l1t::stage2::layer2::demux::nOutputFramePerBX) load.push_back(0);

return {Block(21, load)};
return {Block(b1_, load)};
}
}
}

DEFINE_L1T_PACKER(l1t::stage2::EtSumPacker);
DEFINE_L1T_PACKER(l1t::stage2::CaloEtSumPacker);
DEFINE_L1T_PACKER(l1t::stage2::GTEtSumPacker);

Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ namespace l1t {
// Use amc_no and board id 1 for packing
res[{1, 1}] = {
PackerFactory::get()->make("stage2::RegionalMuonGMTPacker"),
PackerFactory::get()->make("stage2::MuonPacker"),
PackerFactory::get()->make("stage2::GMTMuonPacker"),
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

namespace l1t {
namespace stage2 {
GMTTokens::GMTTokens(const edm::ParameterSet& cfg, edm::ConsumesCollector& cc) : PackerTokens(cfg, cc)
GMTTokens::GMTTokens(const edm::ParameterSet& cfg, edm::ConsumesCollector& cc)
{
auto bmtfTag = cfg.getParameter<edm::InputTag>("BMTFInputLabel");
auto omtfTag = cfg.getParameter<edm::InputTag>("OMTFInputLabel");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,22 @@
#include "DataFormats/L1TMuon/interface/RegionalMuonCand.h"
#include "DataFormats/L1Trigger/interface/Muon.h"

#include "EventFilter/L1TRawToDigi/interface/PackerTokens.h"
#include "CommonTokens.h"

namespace l1t {
namespace stage2 {
class GMTTokens : public PackerTokens {
class GMTTokens : public CommonTokens {
public:
GMTTokens(const edm::ParameterSet&, edm::ConsumesCollector&);

inline const edm::EDGetTokenT<RegionalMuonCandBxCollection>& getRegionalMuonCandTokenBMTF() const { return regionalMuonCandTokenBMTF_; };
inline const edm::EDGetTokenT<RegionalMuonCandBxCollection>& getRegionalMuonCandTokenOMTF() const { return regionalMuonCandTokenOMTF_; };
inline const edm::EDGetTokenT<RegionalMuonCandBxCollection>& getRegionalMuonCandTokenEMTF() const { return regionalMuonCandTokenEMTF_; };
inline const edm::EDGetTokenT<MuonBxCollection>& getMuonToken() const { return muonToken_; };

private:
edm::EDGetTokenT<RegionalMuonCandBxCollection> regionalMuonCandTokenBMTF_;
edm::EDGetTokenT<RegionalMuonCandBxCollection> regionalMuonCandTokenOMTF_;
edm::EDGetTokenT<RegionalMuonCandBxCollection> regionalMuonCandTokenEMTF_;
edm::EDGetTokenT<MuonBxCollection> muonToken_;
};
}
}
Expand Down
53 changes: 29 additions & 24 deletions EventFilter/L1TRawToDigi/src/implementations_stage2/GTSetup.cc
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,12 @@ namespace l1t {
return std::unique_ptr<PackerTokens>(new GTTokens(cfg, cc));
};

virtual void fillDescription(edm::ParameterSetDescription& desc) override {};
virtual void fillDescription(edm::ParameterSetDescription& desc) override {
desc.addOptional<edm::InputTag>("GtInputLabel")->setComment("for stage2");
desc.addOptional<edm::InputTag>("ExtInputLabel")->setComment("for stage2");
desc.addOptional<edm::InputTag>("GmtInputLabel")->setComment("for stage2");
desc.addOptional<edm::InputTag>("CaloInputLabel")->setComment("for stage2");
};

virtual PackerMap getPackers(int fed, unsigned int fw) override {
PackerMap res;
Expand All @@ -25,13 +30,13 @@ namespace l1t {
// Use board id 1 for packing
res[{1, 1}] = {

//PackerFactory::get()->make("stage2::MuonPacker"),
//PackerFactory::get()->make("stage2::EGammaPacker"),
//PackerFactory::get()->make("stage2::EtSumPacker"),
//PackerFactory::get()->make("stage2::JetPacker"),
//PackerFactory::get()->make("stage2::TauPacker"),
PackerFactory::get()->make("stage2::GlobalAlgBlkPacker"),
//PackerFactory::get()->make("stage2::GlobalExtBlkPacker")
PackerFactory::get()->make("stage2::GTMuonPacker"),
PackerFactory::get()->make("stage2::GTEGammaPacker"),
PackerFactory::get()->make("stage2::GTEtSumPacker"),
PackerFactory::get()->make("stage2::GTJetPacker"),
PackerFactory::get()->make("stage2::GTTauPacker"),
PackerFactory::get()->make("stage2::GlobalAlgBlkPacker"),
//PackerFactory::get()->make("stage2::GlobalExtBlkPacker")
};
}

Expand All @@ -56,11 +61,11 @@ namespace l1t {

virtual UnpackerMap getUnpackers(int fed, int board, int amc, unsigned int fw) override {

//auto muon_unp = UnpackerFactory::get()->make("stage2::MuonUnpacker");
//auto egamma_unp = UnpackerFactory::get()->make("stage2::EGammaUnpacker");
//auto etsum_unp = UnpackerFactory::get()->make("stage2::EtSumUnpacker");
//auto jet_unp = UnpackerFactory::get()->make("stage2::JetUnpacker");
//auto tau_unp = UnpackerFactory::get()->make("stage2::TauUnpacker");
auto muon_unp = UnpackerFactory::get()->make("stage2::MuonUnpacker");
auto egamma_unp = UnpackerFactory::get()->make("stage2::EGammaUnpacker");
auto etsum_unp = UnpackerFactory::get()->make("stage2::EtSumUnpacker");
auto jet_unp = UnpackerFactory::get()->make("stage2::JetUnpacker");
auto tau_unp = UnpackerFactory::get()->make("stage2::TauUnpacker");
auto alg_unp = UnpackerFactory::get()->make("stage2::GlobalAlgBlkUnpacker");
auto ext_unp = UnpackerFactory::get()->make("stage2::GlobalExtBlkUnpacker");

Expand All @@ -70,17 +75,17 @@ namespace l1t {
if (fed == 1404) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

better if this magic number ended up in the FedRawData header file that has these numbers already


// From the rx buffers
//res[0] = muon_unp;
//res[2] = muon_unp;
//res[4] = muon_unp;
//res[6] = muon_unp;
//res[8] = egamma_unp;
//res[10] = egamma_unp;
//res[12] = jet_unp;
//res[14] = jet_unp;
//res[16] = tau_unp;
//res[18] = tau_unp;
//res[20] = etsum_unp;
res[0] = muon_unp;
res[2] = muon_unp;
res[4] = muon_unp;
res[6] = muon_unp;
res[8] = egamma_unp;
res[10] = egamma_unp;
res[12] = jet_unp;
res[14] = jet_unp;
res[16] = tau_unp;
res[18] = tau_unp;
res[20] = etsum_unp;
res[24] = ext_unp;
//res[22] = empty link no data
res[26] = ext_unp;
Expand Down
23 changes: 14 additions & 9 deletions EventFilter/L1TRawToDigi/src/implementations_stage2/GTTokens.cc
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,22 @@

namespace l1t {
namespace stage2 {
GTTokens::GTTokens(const edm::ParameterSet& cfg, edm::ConsumesCollector& cc) : PackerTokens(cfg, cc)
GTTokens::GTTokens(const edm::ParameterSet& cfg, edm::ConsumesCollector& cc)
{
auto tag = cfg.getParameter<edm::InputTag>("InputLabel");
auto gttag = cfg.getParameter<edm::InputTag>("GtInputLabel");
auto exttag = cfg.getParameter<edm::InputTag>("ExtInputLabel");
auto calotag = cfg.getParameter<edm::InputTag>("CaloInputLabel");
auto muontag = cfg.getParameter<edm::InputTag>("GmtInputLabel");

muonToken_ = cc.consumes<MuonBxCollection>(tag);
egammaToken_ = cc.consumes<EGammaBxCollection>(tag);
etSumToken_ = cc.consumes<EtSumBxCollection>(tag);
jetToken_ = cc.consumes<JetBxCollection>(tag);
tauToken_ = cc.consumes<TauBxCollection>(tag);
algToken_ = cc.consumes<GlobalAlgBlkBxCollection>(tag);
extToken_ = cc.consumes<GlobalExtBlkBxCollection>(tag);
//cout << "DEBUG: GmtInputLabel" << muontag << "\n";

muonToken_ = cc.consumes<MuonBxCollection>(muontag);
egammaToken_ = cc.consumes<EGammaBxCollection>(calotag);
etSumToken_ = cc.consumes<EtSumBxCollection>(calotag);
jetToken_ = cc.consumes<JetBxCollection>(calotag);
tauToken_ = cc.consumes<TauBxCollection>(calotag);
algToken_ = cc.consumes<GlobalAlgBlkBxCollection>(gttag);
extToken_ = cc.consumes<GlobalExtBlkBxCollection>(exttag);

}
}
Expand Down