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

Pr91x L1T integration v92.10 #18133

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
4d96a6c
Make FW algo version known to MuonUnpacker
thomreis Feb 3, 2017
6a0d244
Extend L1 muon data format with eta and phi coordinates propagated to…
thomreis Feb 3, 2017
6abde68
Make fed number known to muon unpacker
thomreis Feb 8, 2017
044515d
L1 muon unpacker for 2017 RAW data format
thomreis Feb 9, 2017
b0bff4f
Add eta and phi coordinates at vertex to uGMT emulator
thomreis Feb 9, 2017
1e59c6d
Update to read L1 prescales from dB
apana Feb 10, 2017
38d0733
Calculate deltas from unpacked RAW
thomreis Feb 10, 2017
4fee17e
Adapt L1 ntuples to new muon data format
thomreis Feb 10, 2017
4bee157
setup new muonUnpacker in GTsetup
thomreis Feb 10, 2017
c73a8b6
Set best estimate for FW version for switch to 2017 RAW format and fi…
thomreis Feb 10, 2017
040a5e5
cfi for when running uGT emulator
apana Feb 10, 2017
3b45254
Update to dump tower counts
apana Nov 23, 2016
82e3510
Post conflict cleanup: remove duplicate function declaration.
rekovic Feb 14, 2017
78564ac
new params config including 2017.02.16 JEC in functional form
Feb 16, 2017
f3c6b5c
Emulator fix to prevent attempted calibration of saturated jets
bundocka Feb 17, 2017
d88a5c9
First 2017 L1Tau LUTs
davignon Feb 17, 2017
2fae4bc
Add first 2017 eg LUTs
jbsauvan Feb 19, 2017
b179474
Rename caloStage2Params 2017_v1_1_inconsistent to 2017_v1_1 after all…
rekovic Feb 19, 2017
ee4bda7
Add customisation L1TSettingsToCaloStage2Params_2017_v1_1.
rekovic Feb 19, 2017
f89d5cf
Fixes to customiseSettings and tau LUT filename
bundocka Feb 19, 2017
80252f0
Make input and output width of extrapolation LUT variable. Add getter…
thomreis Jan 5, 2017
10bb48b
Use muon extrapolation LUTs with different input and output width
thomreis Jan 5, 2017
723b0c4
Eta extrapolation LUT changes
thomreis Jan 13, 2017
dddc4e7
New extrapolation LUTs with 5 bit eta + 7 bit pt input and 4 bit outp…
thomreis Feb 27, 2017
e0d605d
Setting more likely FW version for change to new LUT format. Make eta…
thomreis Feb 27, 2017
6175621
Use new phi extrapolation LUT with improved tune.
thomreis Feb 27, 2017
89741a3
corrected caloSetup to include latest unpacker
bundocka Mar 3, 2017
74cb840
Added new CaloParams using ECAL layer1 calibrations, using tower et b…
gomber Mar 14, 2017
fed015c
Add support for reading out of uGMT muon sets 2-6 to muon unpacker.
thomreis Mar 14, 2017
0b811b2
New Layer1 calibs (binned in tower eta) now in renamed caloStage2Para…
rekovic Mar 15, 2017
eca52c3
Add caloParams with unity HCAL SF
bundocka Mar 15, 2017
8e8dd4d
Updated HCAL calibrations using the tower et definition for binning
gomber Mar 16, 2017
e6a716c
Add a variable for the least significant byte to the l1t block header…
thomreis Mar 15, 2017
d13b83e
Use l1t block header function to get ZS flag.
thomreis Mar 15, 2017
c02b3e5
Final ECAl and HCAL calibrations using MC(mean)
gomber Mar 22, 2017
aab6b4e
Rename caloStage2Params_2017_v1_3 to caloStage2Params_2017_v1_3_incon…
rekovic Mar 22, 2017
316fe14
Corrected Et binning
gomber Mar 22, 2017
52a0909
Rename caloStage2Params_2017_v1_4_cfi to ...v1_4_inconsistent_cfi and…
rekovic Mar 22, 2017
59d99ca
Add data.
rekovic Mar 30, 2017
078404d
Post rebase fix.
rekovic Mar 30, 2017
8b6aead
Resolve segfault in L1TMuonProducer::sortMuons
Mar 22, 2017
4af6e09
Remove data.
rekovic Mar 30, 2017
2ec5cfa
Revert "cfi for when running uGT emulator"
rekovic Mar 30, 2017
8797e88
Revert "Update to read L1 prescales from dB"
rekovic Mar 30, 2017
fd039cb
Revert "Use l1t block header function to get ZS flag."
rekovic Mar 30, 2017
1ef59af
Revert "Add a variable for the least significant byte to the l1t bloc…
rekovic Mar 30, 2017
1c51739
Revert "Resolve segfault in L1TMuonProducer::sortMuons"
rekovic Mar 30, 2017
e6891a6
put back removed function when rebasing.
rekovic Apr 11, 2017
4680eae
Use an array for muon collections.
thomreis Apr 14, 2017
9e0706d
Move muon setters and getters to header.
thomreis Apr 14, 2017
f5e7157
uGT emulator changes for muon coordinates at the vertex.
thomreis Apr 5, 2017
b3bbbe7
simplifying string concatenation
thomreis Apr 19, 2017
2b8ff58
Add includes.
thomreis Apr 19, 2017
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
69 changes: 46 additions & 23 deletions DataFormats/L1Trigger/interface/Muon.h
Expand Up @@ -32,7 +32,11 @@ namespace l1t {
int isoSum = 0,
int dPhi = 0,
int dEta = 0,
int rank = 0);
int rank = 0,
int hwEtaAtVtx = 0,
int hwPhiAtVtx = 0,
double etaAtVtx = 0.,
double phiAtVtx = 0.);

Muon( const PolarLorentzVector& p4,
int pt=0,
Expand All @@ -48,35 +52,49 @@ namespace l1t {
int isoSum = 0,
int dPhi = 0,
int dEta = 0,
int rank = 0);
int rank = 0,
int hwEtaAtVtx = 0,
int hwPhiAtVtx = 0,
double etaAtVtx = 0.,
double phiAtVtx = 0.);

~Muon();

// set integer values
void setHwCharge(int charge);
void setHwChargeValid(int valid);
void setTfMuonIndex(int index);
void setHwTag(int tag);

void setHwIsoSum(int isoSum);
void setHwDPhiExtra(int dPhi);
void setHwDEtaExtra(int dEta);
void setHwRank(int rank);
// set values
inline void setHwCharge(int charge) { hwCharge_ = charge; };
inline void setHwChargeValid(int valid) { hwChargeValid_ = valid; };
inline void setTfMuonIndex(int index) { tfMuonIndex_ = index; };
inline void setHwTag(int tag) { hwTag_ = tag; };

inline void setHwEtaAtVtx(int hwEtaAtVtx) { hwEtaAtVtx_ = hwEtaAtVtx; };
inline void setHwPhiAtVtx(int hwPhiAtVtx) { hwPhiAtVtx_ = hwPhiAtVtx; };
inline void setEtaAtVtx(double etaAtVtx) { etaAtVtx_ = etaAtVtx; };
inline void setPhiAtVtx(double phiAtVtx) { phiAtVtx_ = phiAtVtx; };

inline void setHwIsoSum(int isoSum) { hwIsoSum_ = isoSum; };
inline void setHwDPhiExtra(int dPhi) { hwDPhiExtra_ = dPhi; };
inline void setHwDEtaExtra(int dEta) { hwDEtaExtra_ = dEta; };
inline void setHwRank(int rank) { hwRank_ = rank; };

inline void setDebug(bool debug) { debug_ = debug; };

void setDebug(bool debug);
// methods to retrieve values
inline int hwCharge() const { return hwCharge_; };
inline int hwChargeValid() const { return hwChargeValid_; };
inline int tfMuonIndex() const { return tfMuonIndex_; };
inline int hwTag() const { return hwTag_; };

// methods to retrieve integer values
int hwCharge() const;
int hwChargeValid() const;
int tfMuonIndex() const;
int hwTag() const;
inline int hwEtaAtVtx() const { return hwEtaAtVtx_; };
inline int hwPhiAtVtx() const { return hwPhiAtVtx_; };
inline double etaAtVtx() const { return etaAtVtx_; };
inline double phiAtVtx() const { return phiAtVtx_; };

int hwIsoSum() const;
int hwDPhiExtra() const;
int hwDEtaExtra() const;
int hwRank() const;
inline int hwIsoSum() const { return hwIsoSum_; };
inline int hwDPhiExtra() const { return hwDPhiExtra_; };
inline int hwDEtaExtra() const { return hwDEtaExtra_; };
inline int hwRank() const { return hwRank_; };

bool debug() const;
inline bool debug() const { return debug_; };

private:

Expand All @@ -93,6 +111,11 @@ namespace l1t {
int hwDEtaExtra_;
int hwRank_;

// muon coordinates at the vertex
int hwEtaAtVtx_;
int hwPhiAtVtx_;
double etaAtVtx_;
double phiAtVtx_;
};

}
Expand Down
137 changes: 25 additions & 112 deletions DataFormats/L1Trigger/src/Muon.cc
Expand Up @@ -10,7 +10,11 @@ l1t::Muon::Muon()
hwIsoSum_(0),
hwDPhiExtra_(0),
hwDEtaExtra_(0),
hwRank_(0)
hwRank_(0),
hwEtaAtVtx_(0),
hwPhiAtVtx_(0),
etaAtVtx_(0.),
phiAtVtx_(0.)
{

}
Expand All @@ -29,7 +33,11 @@ l1t::Muon::Muon( const LorentzVector& p4,
int isoSum,
int dPhi,
int dEta,
int rank )
int rank,
int hwEtaAtVtx,
int hwPhiAtVtx,
double etaAtVtx,
double phiAtVtx)
: L1Candidate(p4, pt, eta, phi, qual, iso),
hwCharge_(charge),
hwChargeValid_(chargeValid),
Expand All @@ -39,7 +47,11 @@ l1t::Muon::Muon( const LorentzVector& p4,
hwIsoSum_(isoSum),
hwDPhiExtra_(dPhi),
hwDEtaExtra_(dEta),
hwRank_(rank)
hwRank_(rank),
hwEtaAtVtx_(hwEtaAtVtx),
hwPhiAtVtx_(hwPhiAtVtx),
etaAtVtx_(etaAtVtx),
phiAtVtx_(phiAtVtx)
{

}
Expand All @@ -58,7 +70,11 @@ l1t::Muon::Muon( const PolarLorentzVector& p4,
int isoSum,
int dPhi,
int dEta,
int rank )
int rank,
int hwEtaAtVtx,
int hwPhiAtVtx,
double etaAtVtx,
double phiAtVtx)
: L1Candidate(p4, pt, eta, phi, qual, iso),
hwCharge_(charge),
hwChargeValid_(chargeValid),
Expand All @@ -68,7 +84,11 @@ l1t::Muon::Muon( const PolarLorentzVector& p4,
hwIsoSum_(isoSum),
hwDPhiExtra_(dPhi),
hwDEtaExtra_(dEta),
hwRank_(rank)
hwRank_(rank),
hwEtaAtVtx_(hwEtaAtVtx),
hwPhiAtVtx_(hwPhiAtVtx),
etaAtVtx_(etaAtVtx),
phiAtVtx_(phiAtVtx)
{

}
Expand All @@ -78,110 +98,3 @@ l1t::Muon::~Muon()

}

void
l1t::Muon::setHwCharge(int charge)
{
hwCharge_ = charge;
}

void
l1t::Muon::setHwChargeValid(int valid)
{
hwChargeValid_ = valid;
}

void
l1t::Muon::setHwTag(int tag)
{
hwTag_ = tag;
}

void
l1t::Muon::setTfMuonIndex(int index)
{
tfMuonIndex_ = index;
}

void
l1t::Muon::setHwIsoSum(int isoSum)
{
hwIsoSum_ = isoSum;
}

void
l1t::Muon::setHwDPhiExtra(int dPhi)
{
hwDPhiExtra_ = dPhi;
}

void
l1t::Muon::setHwDEtaExtra(int dEta)
{
hwDEtaExtra_ = dEta;
}

void
l1t::Muon::setHwRank(int rank)
{
hwRank_ = rank;
}

void
l1t::Muon::setDebug(bool debug)
{
debug_ = debug;
}

int
l1t::Muon::hwCharge() const
{
return hwCharge_;
}

int
l1t::Muon::hwChargeValid() const
{
return hwChargeValid_;
}

int
l1t::Muon::hwTag() const
{
return hwTag_;
}

int
l1t::Muon::tfMuonIndex() const
{
return tfMuonIndex_;
}

int
l1t::Muon::hwIsoSum() const
{
return hwIsoSum_;
}

int
l1t::Muon::hwDPhiExtra() const
{
return hwDPhiExtra_;
}

int
l1t::Muon::hwDEtaExtra() const
{
return hwDEtaExtra_;
}

int
l1t::Muon::hwRank() const
{
return hwRank_;
}

bool
l1t::Muon::debug() const
{
return debug_;
}
3 changes: 2 additions & 1 deletion DataFormats/L1Trigger/src/classes_def.xml
Expand Up @@ -80,7 +80,8 @@
<class name="l1t::TauVectorRef"/>
<class name="edm::Wrapper<l1t::TauVectorRef>"/>

<class name="l1t::Muon" ClassVersion="16">
<class name="l1t::Muon" ClassVersion="17">
<version ClassVersion="17" checksum="3946815604"/>
<version ClassVersion="16" checksum="1302394108"/>
<version ClassVersion="15" checksum="957467775"/>
<version ClassVersion="14" checksum="1302394108"/>
Expand Down
Expand Up @@ -76,6 +76,9 @@ namespace l1t {
if (fw >= 0x10010010) {
mp_unp = UnpackerFactory::get()->make("stage2::MPUnpacker_0x10010010");
}
if (fw >= 0x10010033) {
mp_unp = UnpackerFactory::get()->make("stage2::MPUnpacker_0x10010033");
}


UnpackerMap res;
Expand Down
Expand Up @@ -2,14 +2,19 @@

#include "GMTCollections.h"

#include <string>

namespace l1t {
namespace stage2 {
GMTCollections::~GMTCollections()
{
event_.put(std::move(regionalMuonCandsBMTF_), "BMTF");
event_.put(std::move(regionalMuonCandsOMTF_), "OMTF");
event_.put(std::move(regionalMuonCandsEMTF_), "EMTF");
event_.put(std::move(muons_), "Muon");
event_.put(std::move(muons_[0]), "Muon");
for (int i=1; i<6; ++i) {
event_.put(std::move(muons_[i]), ("MuonCopy"+std::to_string(i)).c_str());
}
event_.put(std::move(imdMuonsBMTF_), "imdMuonsBMTF");
event_.put(std::move(imdMuonsEMTFNeg_), "imdMuonsEMTFNeg");
event_.put(std::move(imdMuonsEMTFPos_), "imdMuonsEMTFPos");
Expand Down
Expand Up @@ -7,28 +7,33 @@
//#include "EventFilter/L1TRawToDigi/interface/UnpackerCollections.h"
#include "L1TObjectCollections.h"

#include <array>

namespace l1t {
namespace stage2 {
class GMTCollections : public L1TObjectCollections {
public:
GMTCollections(edm::Event& e) :
L1TObjectCollections(e),
regionalMuonCandsBMTF_(new RegionalMuonCandBxCollection()),
regionalMuonCandsOMTF_(new RegionalMuonCandBxCollection()),
regionalMuonCandsEMTF_(new RegionalMuonCandBxCollection()),
muons_(new MuonBxCollection()),
imdMuonsBMTF_(new MuonBxCollection()),
imdMuonsEMTFNeg_(new MuonBxCollection()),
imdMuonsEMTFPos_(new MuonBxCollection()),
imdMuonsOMTFNeg_(new MuonBxCollection()),
imdMuonsOMTFPos_(new MuonBxCollection()) {};
regionalMuonCandsBMTF_(std::make_unique<RegionalMuonCandBxCollection>()),
regionalMuonCandsOMTF_(std::make_unique<RegionalMuonCandBxCollection>()),
regionalMuonCandsEMTF_(std::make_unique<RegionalMuonCandBxCollection>()),
muons_(),
imdMuonsBMTF_(std::make_unique<MuonBxCollection>()),
imdMuonsEMTFNeg_(std::make_unique<MuonBxCollection>()),
imdMuonsEMTFPos_(std::make_unique<MuonBxCollection>()),
imdMuonsOMTFNeg_(std::make_unique<MuonBxCollection>()),
imdMuonsOMTFPos_(std::make_unique<MuonBxCollection>())
{
std::generate(muons_.begin(), muons_.end(), []{ return std::make_unique<MuonBxCollection>(); });
};

virtual ~GMTCollections();

inline RegionalMuonCandBxCollection* getRegionalMuonCandsBMTF() { return regionalMuonCandsBMTF_.get(); };
inline RegionalMuonCandBxCollection* getRegionalMuonCandsOMTF() { return regionalMuonCandsOMTF_.get(); };
inline RegionalMuonCandBxCollection* getRegionalMuonCandsEMTF() { return regionalMuonCandsEMTF_.get(); };
inline MuonBxCollection* getMuons() { return muons_.get(); };
inline MuonBxCollection* getMuons(const unsigned int copy) override { return muons_[copy].get(); };
inline MuonBxCollection* getImdMuonsBMTF() { return imdMuonsBMTF_.get(); };
inline MuonBxCollection* getImdMuonsEMTFNeg() { return imdMuonsEMTFNeg_.get(); };
inline MuonBxCollection* getImdMuonsEMTFPos() { return imdMuonsEMTFPos_.get(); };
Expand All @@ -39,7 +44,7 @@ namespace l1t {
std::unique_ptr<RegionalMuonCandBxCollection> regionalMuonCandsBMTF_;
std::unique_ptr<RegionalMuonCandBxCollection> regionalMuonCandsOMTF_;
std::unique_ptr<RegionalMuonCandBxCollection> regionalMuonCandsEMTF_;
std::unique_ptr<MuonBxCollection> muons_;
std::array<std::unique_ptr<MuonBxCollection>, 6> muons_;
std::unique_ptr<MuonBxCollection> imdMuonsBMTF_;
std::unique_ptr<MuonBxCollection> imdMuonsEMTFNeg_;
std::unique_ptr<MuonBxCollection> imdMuonsEMTFPos_;
Expand Down