Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions DPGAnalysis/Phase2L1TNanoAOD/python/l1tPh2GTtables_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,8 @@
hwQual = Var("hwQualityFlags_toInt()",int),
hwIso = Var("hwIsolationPT_toInt()",int),
## more physical values
## using the GT scales for HW to physicsal vonversion, see scales in https://github.com/cms-sw/cmssw/blob/master/L1Trigger/Phase2L1GT/python/l1tGTScales.py
iso = Var(f"hwIsolationPT_toInt()*{scale_parameter.isolationPT_lsb.value()}",float, doc = "absolute isolation"),
relIso = Var(f"hwIsolationPT_toInt()*{scale_parameter.isolationPT_lsb.value()} / pt",float, doc = "relative isolation")
iso = Var("isolationPT()",float, doc = "absolute isolation"),
relIso = Var("isolationPT()/pt",float, doc = "relative isolation")
)
)

Expand Down Expand Up @@ -198,7 +197,7 @@
# l1GTObjVars,
mht = Var("pt", float, doc="MHT pt"),
mhtPhi = Var("phi", float, doc="MHT phi"),
ht = Var(f"hwScalarSumPT_toInt()*{scale_parameter.scalarSumPT_lsb.value()}", float, doc="HT"), ## HACK via hw value!
ht = Var("scalarSumPT()", float, doc="HT"),
)
)

Expand Down
23 changes: 23 additions & 0 deletions DataFormats/L1Trigger/interface/P2GTCandidate.h
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,13 @@ namespace l1t {
return static_cast<int>(hwIsolationPT_);
}

double isolationPT() const {
if (!isolationPT_) {
throw std::invalid_argument("Object doesn't have isolationPT");
}
return isolationPT_;
}

hwQualityFlags_t hwQualityFlags() const {
if (!hwQualityFlags_) {
throw std::invalid_argument("Object doesn't have qualityFlags");
Expand Down Expand Up @@ -231,6 +238,13 @@ namespace l1t {
return static_cast<int>(hwScalarSumPT_);
}

double scalarSumPT() const {
if (!scalarSumPT_) {
throw std::invalid_argument("Object doesn't have scalarSumPT");
}
return scalarSumPT_;
}

hwNumber_of_tracks_t hwNumber_of_tracks() const {
if (!hwNumber_of_tracks_) {
throw std::invalid_argument("Object doesn't have number_of_tracks");
Expand Down Expand Up @@ -320,12 +334,20 @@ namespace l1t {
objectType_ == CL2JetsSC4 || objectType_ == CL2JetsSC8;
}

bool isEtSum() const { return objectType_ == GCTEtSum || objectType_ == GTTEtSum || objectType_ == CL2EtSum; }

bool isHtSum() const {
return objectType_ == GCTHtSum || objectType_ == GTTPromptHtSum || objectType_ == GTTDisplacedHtSum ||
objectType_ == CL2HtSum;
}

private:
Optional<int> hwPT_;
Optional<int> hwPhi_;
Optional<int> hwEta_;
Optional<int> hwZ0_;
Optional<int> hwIsolationPT_;
Optional<double> isolationPT_;
Optional<int> hwQualityFlags_;
Optional<int> hwQualityScore_;
Optional<int> hwCharge_;
Expand All @@ -336,6 +358,7 @@ namespace l1t {
Optional<int> hwSeed_pT_;
Optional<int> hwSeed_z0_;
Optional<int> hwScalarSumPT_;
Optional<double> scalarSumPT_;
Optional<int> hwNumber_of_tracks_;
Optional<int> hwNumber_of_displaced_tracks_;

Expand Down
4 changes: 3 additions & 1 deletion DataFormats/L1Trigger/src/classes_def.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@


<class name="l1t::io_v1::P2GTCandidate::Optional<int>"/>
<class name="l1t::io_v1::P2GTCandidate" ClassVersion="3">
<class name="l1t::io_v1::P2GTCandidate::Optional<double>"/>
<class name="l1t::io_v1::P2GTCandidate" ClassVersion="4">
<version ClassVersion="4" checksum="3737213310"/>
<version ClassVersion="3" checksum="1444610149"/>
</class>
<class name="l1t::P2GTCandidateCollection"/>
Expand Down
7 changes: 7 additions & 0 deletions L1Trigger/Phase2L1GT/plugins/L1GTProducer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,7 @@ namespace l1t {
gtObj.hwPT_ = htMiss.Et.V.to_int();
gtObj.hwPhi_ = obj.hwPhi();
gtObj.hwScalarSumPT_ = obj.hwPt();
gtObj.scalarSumPT_ = scales_.to_scalarSumPT(obj.hwPt());
gtObj.objectType_ = P2GTCandidate::GTTPromptHtSum;

outputCollection->push_back(gtObj);
Expand All @@ -262,6 +263,7 @@ namespace l1t {
gtObj.hwPT_ = htMiss.Et.V.to_int();
gtObj.hwPhi_ = obj.hwPhi();
gtObj.hwScalarSumPT_ = obj.hwPt();
gtObj.scalarSumPT_ = scales_.to_scalarSumPT(obj.hwPt());
gtObj.objectType_ = P2GTCandidate::GTTDisplacedHtSum;

outputCollection->push_back(gtObj);
Expand Down Expand Up @@ -357,6 +359,7 @@ namespace l1t {
gtObj.hwZ0_ = hwZ0;
gtObj.hwQualityFlags_ = obj.apQualFlags().to_int();
gtObj.hwIsolationPT_ = obj.apIso().to_int();
gtObj.isolationPT_ = scales_.to_isolationPT(obj.apIso().to_int());
gtObj.hwCharge_ = obj.apCharge().to_int();
gtObj.hwD0_ = obj.apD0().to_int();
gtObj.hwBeta_ = obj.apBeta().to_int();
Expand Down Expand Up @@ -427,6 +430,7 @@ namespace l1t {
gtObj.hwPhi_ = gtPhoton.v3.phi.V.to_int();
gtObj.hwEta_ = gtPhoton.v3.eta.V.to_int();
gtObj.hwIsolationPT_ = gtPhoton.isolationPT.V.to_int();
gtObj.isolationPT_ = scales_.to_isolationPT(gtPhoton.isolationPT.V.to_int());
gtObj.hwQualityFlags_ = gtPhoton.qualityFlags.V.to_int();
gtObj.objectType_ = P2GTCandidate::CL2Photons;

Expand All @@ -452,6 +456,7 @@ namespace l1t {
gtObj.hwEta_ = gtElectron.v3.eta.V.to_int();
gtObj.hwZ0_ = hwZ0;
gtObj.hwIsolationPT_ = gtElectron.isolationPT.V.to_int();
gtObj.isolationPT_ = scales_.to_isolationPT(gtElectron.isolationPT.V.to_int());
gtObj.hwQualityFlags_ = gtElectron.qualityFlags.V.to_int();
gtObj.hwQualityScore_ = gtElectron.idScore.V.to_int();
gtObj.hwCharge_ = gtElectron.charge.V.to_int();
Expand Down Expand Up @@ -500,6 +505,7 @@ namespace l1t {
gtObj.hwPT_ = sum.vector_pt.V.to_int();
gtObj.hwPhi_ = sum.vector_phi.V.to_int();
gtObj.hwScalarSumPT_ = sum.scalar_pt.V.to_int();
gtObj.scalarSumPT_ = scales_.to_scalarSumPT(sum.scalar_pt.V.to_int());
gtObj.objectType_ = P2GTCandidate::CL2EtSum;

outputCollection->push_back(gtObj);
Expand All @@ -517,6 +523,7 @@ namespace l1t {
gtObj.hwPT_ = mht.hwPt();
gtObj.hwPhi_ = mht.hwPhi();
gtObj.hwScalarSumPT_ = ht.hwPt();
gtObj.scalarSumPT_ = scales_.to_scalarSumPT(ht.hwPt());
gtObj.objectType_ = P2GTCandidate::CL2HtSum;

outputCollection->push_back(gtObj);
Expand Down