Skip to content

Commit

Permalink
use 8 or 16 bit integers where relevant
Browse files Browse the repository at this point in the history
  • Loading branch information
swertz committed Jan 11, 2023
1 parent 49026dd commit d5cd2f8
Show file tree
Hide file tree
Showing 18 changed files with 91 additions and 88 deletions.
5 changes: 3 additions & 2 deletions PhysicsTools/NanoAOD/plugins/CandMCMatchTableProducer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,8 @@ class CandMCMatchTableProducer : public edm::global::EDProducer<> {
iEvent.getByToken(genPartsToken_, genParts);
}

std::vector<int> key(ncand, -1), flav(ncand, 0);
std::vector<int16_t> key(ncand, -1);
std::vector<uint8_t> flav(ncand, 0);
for (unsigned int i = 0; i < ncand; ++i) {
//std::cout << "cand #" << i << ": pT = " << cands->ptrAt(i)->pt() << ", eta = " << cands->ptrAt(i)->eta() << ", phi = " << cands->ptrAt(i)->phi() << std::endl;
const auto& cand = candProd.ptrAt(i);
Expand Down Expand Up @@ -192,7 +193,7 @@ class CandMCMatchTableProducer : public edm::global::EDProducer<> {
};
}

tab->addColumn<int>(branchName_ + "Idx", key, "Index into genParticle list for " + doc_);
tab->addColumn<int16_t>(branchName_ + "Idx", key, "Index into genParticle list for " + doc_);
tab->addColumn<uint8_t>(branchName_ + "Flav",
flav,
"Flavour of genParticle (DressedLeptons for electrons) for " + doc_ + ": " + flavDoc_);
Expand Down
4 changes: 2 additions & 2 deletions PhysicsTools/NanoAOD/plugins/GenJetFlavourTableProducer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ void GenJetFlavourTableProducer::produce(edm::Event& iEvent, const edm::EventSet
const auto& jetFlavourInfosProd = iEvent.get(jetFlavourInfosToken_);

unsigned int ncand = 0;
std::vector<int> partonFlavour;
std::vector<int16_t> partonFlavour;
std::vector<uint8_t> hadronFlavour;

for (const reco::GenJet& jet : jetsProd) {
Expand All @@ -84,7 +84,7 @@ void GenJetFlavourTableProducer::produce(edm::Event& iEvent, const edm::EventSet
}

auto tab = std::make_unique<nanoaod::FlatTable>(ncand, name_, false, true);
tab->addColumn<int>("partonFlavour", partonFlavour, "flavour from parton matching");
tab->addColumn<int16_t>("partonFlavour", partonFlavour, "flavour from parton matching");
tab->addColumn<uint8_t>("hadronFlavour", hadronFlavour, "flavour from hadron ghost clustering");

iEvent.put(std::move(tab));
Expand Down
8 changes: 5 additions & 3 deletions PhysicsTools/NanoAOD/plugins/TriggerObjectTableProducer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -268,7 +268,9 @@ void TriggerObjectTableProducer::produce(edm::Event &iEvent, const edm::EventSet

unsigned int nobj = selected.size();
std::vector<float> pt(nobj, 0), eta(nobj, 0), phi(nobj, 0), l1pt(nobj, 0), l1pt_2(nobj, 0), l2pt(nobj, 0);
std::vector<int> id(nobj, 0), bits(nobj, 0), l1iso(nobj, 0), l1charge(nobj, 0);
std::vector<int16_t> l1charge(nobj, 0);
std::vector<uint16_t> id(nobj, 0);
std::vector<int> bits(nobj, 0), l1iso(nobj, 0);
for (unsigned int i = 0; i < nobj; ++i) {
const auto &obj = *selected[i].first;
const auto &sel = *selected[i].second;
Expand Down Expand Up @@ -314,13 +316,13 @@ void TriggerObjectTableProducer::produce(edm::Event &iEvent, const edm::EventSet
}

auto tab = std::make_unique<nanoaod::FlatTable>(nobj, name_, false, false);
tab->addColumn<int>("id", id, idDoc_);
tab->addColumn<uint16_t>("id", id, idDoc_);
tab->addColumn<float>("pt", pt, "pt", 12);
tab->addColumn<float>("eta", eta, "eta", 12);
tab->addColumn<float>("phi", phi, "phi", 12);
tab->addColumn<float>("l1pt", l1pt, "pt of associated L1 seed", 8);
tab->addColumn<int>("l1iso", l1iso, "iso of associated L1 seed");
tab->addColumn<int>("l1charge", l1charge, "charge of associated L1 seed");
tab->addColumn<int16_t>("l1charge", l1charge, "charge of associated L1 seed");
tab->addColumn<float>("l1pt_2", l1pt_2, "pt of associated secondary L1 seed", 8);
tab->addColumn<float>("l2pt", l2pt, "pt of associated 'L2' seed (i.e. HLT before tracking/PF)", 10);
tab->addColumn<int>("filterBits", bits, "extra bits of associated information: " + bitsDoc_);
Expand Down
8 changes: 4 additions & 4 deletions PhysicsTools/NanoAOD/plugins/VertexTableProducer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -125,8 +125,8 @@ void VertexTableProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSe
for (const auto& pv : *pvsIn)
if (goodPvCut_(pv))
goodPVs++;
pvTable->addColumnValue<int>("npvs", pvsIn->size(), "total number of reconstructed primary vertices");
pvTable->addColumnValue<int>(
pvTable->addColumnValue<uint8_t>("npvs", pvsIn->size(), "total number of reconstructed primary vertices");
pvTable->addColumnValue<uint8_t>(
"npvsGood", goodPVs, "number of good reconstructed primary vertices. selection:" + goodPvCutString_);
pvTable->addColumnValue<float>(
"score", pvsScoreProd.get(pvsIn.id(), 0), "main primary vertex score, i.e. sum pt2 of clustered objects", 8);
Expand All @@ -145,7 +145,7 @@ void VertexTableProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSe
const auto& svsProd = iEvent.get(svs_);
auto selCandSv = std::make_unique<PtrVector<reco::Candidate>>();
std::vector<float> dlen, dlenSig, pAngle, dxy, dxySig;
std::vector<int> charge;
std::vector<int16_t> charge;
VertexDistance3D vdist;
VertexDistanceXY vdistXY;

Expand Down Expand Up @@ -187,7 +187,7 @@ void VertexTableProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSe
svsTable->addColumn<float>("dxy", dxy, "2D decay length in cm", 10);
svsTable->addColumn<float>("dxySig", dxySig, "2D decay length significance", 10);
svsTable->addColumn<float>("pAngle", pAngle, "pointing angle, i.e. acos(p_SV * (SV - PV)) ", 10);
svsTable->addColumn<int>("charge", charge, "sum of the charge of the SV tracks", 10);
svsTable->addColumn<int16_t>("charge", charge, "sum of the charge of the SV tracks", 10);

iEvent.put(std::move(pvTable), "pv");
iEvent.put(std::move(otherPVsTable), "otherPVs");
Expand Down
6 changes: 3 additions & 3 deletions PhysicsTools/NanoAOD/python/boostedTaus_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
)
_boostedTauVarsBase = cms.PSet(P4Vars,
charge = Var("charge", int, doc="electric charge"),
jetIdx = Var("?hasUserCand('jet')?userCand('jet').key():-1", int, doc="index of the associated jet (-1 if none)"),
jetIdx = Var("?hasUserCand('jet')?userCand('jet').key():-1", "uint16", doc="index of the associated jet (-1 if none)"),
decayMode = Var("decayMode()",int),
leadTkPtOverTauPt = Var("leadChargedHadrCand.pt/pt ",float, doc="pt of the leading track divided by tau pt",precision=10),
leadTkDeltaEta = Var("leadChargedHadrCand.eta - eta ",float, doc="eta of the leading track, minus tau eta",precision=8),
Expand Down Expand Up @@ -55,7 +55,7 @@
#AntiEle MVA 2018 variables
_boostedTauVarsAntiEleMVA = cms.PSet(
rawAntiEle2018 = Var("tauID('againstElectronMVA6Raw')", float, doc= "Anti-electron MVA discriminator V6 raw output discriminator (2018)", precision=10),
rawAntiEleCat2018 = Var("tauID('againstElectronMVA6category')", int, doc="Anti-electron MVA discriminator V6 category (2018)"),
rawAntiEleCat2018 = Var("tauID('againstElectronMVA6category')", "int8", doc="Anti-electron MVA discriminator V6 category (2018)"),
idAntiEle2018 = _tauIdWPMask("againstElectron%sMVA6", choices=("VLoose","Loose","Medium","Tight","VTight"), doc= "Anti-electron MVA discriminator V6 (2018)")
)

Expand All @@ -80,7 +80,7 @@
idMVAnewDM2017v2 = _tauIdWPMask("by%sIsolationMVArun2017v2DBnewDMwLT2017", choices=("VVLoose","VLoose","Loose","Medium","Tight","VTight","VVTight"),doc="IsolationMVArun2DBnewDMwLT ID working point (2017v2)"),
idMVAoldDM2017v2 = _tauIdWPMask("by%sIsolationMVArun2017v2DBoldDMwLT2017",choices=("VVLoose","VLoose","Loose","Medium","Tight","VTight","VVTight"),doc="IsolationMVArun2DBoldDMwLT ID working point (2017v2)"),
rawAntiEle2018 = Var("tauID('againstElectronMVA6Raw2018')", float, doc= "Anti-electron MVA discriminator V6 raw output discriminator (2018)", precision=10),
rawAntiEleCat2018 = Var("tauID('againstElectronMVA6category2018')", int, doc="Anti-electron MVA discriminator V6 category (2018)"),
rawAntiEleCat2018 = Var("tauID('againstElectronMVA6category2018')", "int8", doc="Anti-electron MVA discriminator V6 category (2018)"),
idAntiEle2018 = _tauIdWPMask("againstElectron%sMVA62018", choices=("VLoose","Loose","Medium","Tight","VTight"), doc= "Anti-electron MVA discriminator V6 (2018)")
)

Expand Down
20 changes: 10 additions & 10 deletions PhysicsTools/NanoAOD/python/electrons_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -294,9 +294,9 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints):
name= cms.string("Electron"),
doc = cms.string("slimmedElectrons after basic selection (" + finalElectrons.cut.value()+")"),
variables = cms.PSet(CandVars,
jetIdx = Var("?hasUserCand('jet')?userCand('jet').key():-1", int, doc="index of the associated jet (-1 if none)"),
photonIdx = Var("?overlaps('photons').size()>0?overlaps('photons')[0].key():-1", int, doc="index of the first associated photon (-1 if none)"),
svIdx = Var("?hasUserCand('vertex')?userCand('vertex').key():-1", int, doc="index of matching secondary vertex"),
jetIdx = Var("?hasUserCand('jet')?userCand('jet').key():-1", "int16", doc="index of the associated jet (-1 if none)"),
photonIdx = Var("?overlaps('photons').size()>0?overlaps('photons')[0].key():-1", "int16", doc="index of the first associated photon (-1 if none)"),
svIdx = Var("?hasUserCand('vertex')?userCand('vertex').key():-1", "int16", doc="index of matching secondary vertex"),
energyErr = Var("p4Error('P4_COMBINATION')",float,doc="energy error of the cluster-track combination",precision=6),
dz = Var("dB('PVDZ')",float,doc="dz (with sign) wrt first PV, in cm",precision=10),
dzErr = Var("abs(edB('PVDZ'))",float,doc="dz uncertainty, in cm",precision=6),
Expand Down Expand Up @@ -326,11 +326,11 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints):
mvaNoIso_Fall17V2_WPL = Var("userInt('mvaNoIso_Fall17V2_WPL')",bool,doc="MVA noIso ID loose WP, Fall17V2"),
mvaHZZIso = Var("userFloat('mvaHZZIso')", float,doc="HZZ MVA Iso ID score"),

cutBased = Var("userInt('cutBasedID_veto')+userInt('cutBasedID_loose')+userInt('cutBasedID_medium')+userInt('cutBasedID_tight')",int,doc="cut-based ID RunIII Winter22 (0:fail, 1:veto, 2:loose, 3:medium, 4:tight)"),
cutBased_Fall17V2 = Var("userInt('cutBasedID_Fall17V2_veto')+userInt('cutBasedID_Fall17V2_loose')+userInt('cutBasedID_Fall17V2_medium')+userInt('cutBasedID_Fall17V2_tight')",int,doc="cut-based ID Fall17V2 (0:fail, 1:veto, 2:loose, 3:medium, 4:tight)"),
vidNestedWPBitmap = Var("userInt('VIDNestedWPBitmap')",int,doc=_bitmapVIDForEle_docstring),
vidNestedWPBitmap_Fall17V2 = Var("userInt('VIDNestedWPBitmap_Fall17V2')",int,doc=_bitmapVIDForEleFall17V2_docstring),
vidNestedWPBitmapHEEP = Var("userInt('VIDNestedWPBitmapHEEP')",int,doc=_bitmapVIDForEleHEEP_docstring),
cutBased = Var("userInt('cutBasedID_veto')+userInt('cutBasedID_loose')+userInt('cutBasedID_medium')+userInt('cutBasedID_tight')", "uint8", doc="cut-based ID RunIII Winter22 (0:fail, 1:veto, 2:loose, 3:medium, 4:tight)"),
cutBased_Fall17V2 = Var("userInt('cutBasedID_Fall17V2_veto')+userInt('cutBasedID_Fall17V2_loose')+userInt('cutBasedID_Fall17V2_medium')+userInt('cutBasedID_Fall17V2_tight')", "uint8", doc="cut-based ID Fall17V2 (0:fail, 1:veto, 2:loose, 3:medium, 4:tight)"),
vidNestedWPBitmap = Var("userInt('VIDNestedWPBitmap')", int, doc=_bitmapVIDForEle_docstring),
vidNestedWPBitmap_Fall17V2 = Var("userInt('VIDNestedWPBitmap_Fall17V2')", int, doc=_bitmapVIDForEleFall17V2_docstring),
vidNestedWPBitmapHEEP = Var("userInt('VIDNestedWPBitmapHEEP')", int, doc=_bitmapVIDForEleHEEP_docstring),
cutBased_HEEP = Var("userInt('cutBasedID_HEEP')",bool,doc="cut-based HEEP ID"),
miniPFRelIso_chg = Var("userFloat('miniIsoChg')/pt",float,doc="mini PF relative isolation, charged component"),
miniPFRelIso_all = Var("userFloat('miniIsoAll')/pt",float,doc="mini PF relative isolation, total (with scaled rho*EA PU Winter22V1 corrections)"),
Expand All @@ -348,7 +348,7 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints):
dr03EcalRecHitSumEt = Var("?pt>35?dr03EcalRecHitSumEt():0",float,doc="Non-PF Ecal isolation within a delta R cone of 0.3 with electron pt > 35 GeV",precision=8),
dr03HcalDepth1TowerSumEt = Var("?pt>35?dr03HcalTowerSumEt(1):0",float,doc="Non-PF Hcal isolation within a delta R cone of 0.3 with electron pt > 35 GeV",precision=8),
hoe = Var("hadronicOverEm()",float,doc="H over E",precision=8),
tightCharge = Var("isGsfCtfScPixChargeConsistent() + isGsfScPixChargeConsistent()",int,doc="Tight charge criteria (0:none, 1:isGsfScPixChargeConsistent, 2:isGsfCtfScPixChargeConsistent)"),
tightCharge = Var("isGsfCtfScPixChargeConsistent() + isGsfScPixChargeConsistent()", "uint8", doc="Tight charge criteria (0:none, 1:isGsfScPixChargeConsistent, 2:isGsfCtfScPixChargeConsistent)"),
convVeto = Var("passConversionVeto()",bool,doc="pass conversion veto"),
lostHits = Var("gsfTrack.hitPattern.numberOfLostHits('MISSING_INNER_HITS')","uint8",doc="number of missing inner hits"),
isPFcand = Var("pfCandidateRef().isNonnull()",bool,doc="electron is PF candidate"),
Expand All @@ -357,7 +357,7 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints):
),
externalVariables = cms.PSet(
mvaTTH = ExtVar(cms.InputTag("electronMVATTH"),float, doc="TTH MVA lepton ID score",precision=14),
fsrPhotonIdx = ExtVar(cms.InputTag("leptonFSRphotons:eleFsrIndex"),int, doc="Index of the lowest-dR/ET2 among associated FSR photons"),
fsrPhotonIdx = ExtVar(cms.InputTag("leptonFSRphotons:eleFsrIndex"), "int16", doc="Index of the lowest-dR/ET2 among associated FSR photons"),
),
)

Expand Down
4 changes: 2 additions & 2 deletions PhysicsTools/NanoAOD/python/fsrPhotons_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
variables = cms.PSet(P3Vars,
relIso03 = Var("userFloat('relIso03')",float,doc="relative isolation in a 0.3 cone without CHS"),
dROverEt2 = Var("userFloat('dROverEt2')",float,doc="deltaR to associated muon divided by photon et2"),
muonIdx = Var("?hasUserCand('associatedMuon')?userCand('associatedMuon').key():-1",int, doc="index of associated muon"),
electronIdx = Var("?hasUserCand('associatedElectron')?userCand('associatedElectron').key():-1",int, doc="index of associated electron")
muonIdx = Var("?hasUserCand('associatedMuon')?userCand('associatedMuon').key():-1", "int16", doc="index of associated muon"),
electronIdx = Var("?hasUserCand('associatedElectron')?userCand('associatedElectron').key():-1", "int16", doc="index of associated electron")
)
)

Expand Down
4 changes: 2 additions & 2 deletions PhysicsTools/NanoAOD/python/genparticles_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
mass = Var("?!((abs(pdgId)>=1 && abs(pdgId)<=5) || (abs(pdgId)>=11 && abs(pdgId)<=16) || pdgId==21 || pdgId==111 || abs(pdgId)==211 || abs(pdgId)==421 || abs(pdgId)==411 || (pdgId==22 && mass<1))?mass:0", float,precision="?((abs(pdgId)==6 || abs(pdgId)>1000000) && statusFlags().isLastCopy())?20:8",doc="Mass stored for all particles with the exception of quarks (except top), leptons/neutrinos, photons with mass < 1 GeV, gluons, pi0(111), pi+(211), D0(421), and D+(411). For these particles, you can lookup the value from PDG."),
pdgId = Var("pdgId", int, doc="PDG id"),
status = Var("status", int, doc="Particle status. 1=stable"),
genPartIdxMother = Var("?numberOfMothers>0?motherRef(0).key():-1", int, doc="index of the mother particle"),
genPartIdxMother = Var("?numberOfMothers>0?motherRef(0).key():-1", "int16", doc="index of the mother particle"),
statusFlags = (Var(
"statusFlags().isLastCopyBeforeFSR() * 16384 +"
"statusFlags().isLastCopy() * 8192 +"
Expand All @@ -57,7 +57,7 @@
"statusFlags().isTauDecayProduct() * 4 +"
"statusFlags().isDecayedLeptonHadron() * 2 +"
"statusFlags().isPrompt() * 1 ",
int, doc=("gen status flags stored bitwise, bits are: "
"uint8", doc=("gen status flags stored bitwise, bits are: "
"0 : isPrompt, "
"1 : isDecayedLeptonHadron, "
"2 : isTauDecayProduct, "
Expand Down
4 changes: 2 additions & 2 deletions PhysicsTools/NanoAOD/python/isotracks_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,10 @@
pfRelIso03_chg = Var("pfIsolationDR03().chargedHadronIso/pt",float,doc="PF relative isolation dR=0.3, charged component",precision=10),
pfRelIso03_all = Var("(pfIsolationDR03().chargedHadronIso + max(pfIsolationDR03().neutralHadronIso + pfIsolationDR03().photonIso - pfIsolationDR03().puChargedHadronIso/2,0.0))/pt",float,doc="PF relative isolation dR=0.3, total (deltaBeta corrections)",precision=10),
isPFcand = Var("packedCandRef().isNonnull()",bool,doc="if isolated track is a PF candidate"),
fromPV = Var("fromPV", int, doc="isolated track comes from PV"),
fromPV = Var("fromPV", "int16", doc="isolated track comes from PV"),
pdgId = Var("pdgId",int,doc="PDG id of PF cand"),
isHighPurityTrack = Var("isHighPurityTrack",bool,doc="track is high purity"),
charge = Var("charge", int, doc="electric charge"),
charge = Var("charge", "int16", doc="electric charge"),
),
externalVariables = cms.PSet(
miniPFRelIso_chg = ExtVar("isoForIsoTk:miniIsoChg",float,doc="mini PF relative isolation, charged component",precision=10),
Expand Down
12 changes: 6 additions & 6 deletions PhysicsTools/NanoAOD/python/jetMC_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@
name = cms.string("Jet"),
extension = cms.bool(True), # this is an extension table for the jets
variables = cms.PSet(
partonFlavour = Var("partonFlavour()", int, doc="flavour from parton matching"),
hadronFlavour = Var("hadronFlavour()", int, doc="flavour from hadron ghost clustering"),
genJetIdx = Var("?genJetFwdRef().backRef().isNonnull()?genJetFwdRef().backRef().key():-1", int, doc="index of matched gen jet"),
partonFlavour = Var("partonFlavour()", "int16", doc="flavour from parton matching"),
hadronFlavour = Var("hadronFlavour()", "uint8", doc="flavour from hadron ghost clustering"),
genJetIdx = Var("?genJetFwdRef().backRef().isNonnull()?genJetFwdRef().backRef().key():-1", "int16", doc="index of matched gen jet"),
)
)
genJetTable = simpleCandidateFlatTableProducer.clone(
Expand Down Expand Up @@ -89,8 +89,8 @@
variables = cms.PSet(
nBHadrons = Var("jetFlavourInfo().getbHadrons().size()", "uint8", doc="number of b-hadrons"),
nCHadrons = Var("jetFlavourInfo().getcHadrons().size()", "uint8", doc="number of c-hadrons"),
hadronFlavour = Var("hadronFlavour()", int, doc="flavour from hadron ghost clustering"),
genJetAK8Idx = Var("?genJetFwdRef().backRef().isNonnull() && genJetFwdRef().backRef().pt() > 100.?genJetFwdRef().backRef().key():-1", int, doc="index of matched gen AK8 jet"),
hadronFlavour = Var("hadronFlavour()", "uint8", doc="flavour from hadron ghost clustering"),
genJetAK8Idx = Var("?genJetFwdRef().backRef().isNonnull() && genJetFwdRef().backRef().pt() > 100.?genJetFwdRef().backRef().key():-1", "int16", doc="index of matched gen AK8 jet"),
)
)

Expand All @@ -110,7 +110,7 @@
variables = cms.PSet(
nBHadrons = Var("jetFlavourInfo().getbHadrons().size()", "uint8", doc="number of b-hadrons"),
nCHadrons = Var("jetFlavourInfo().getcHadrons().size()", "uint8", doc="number of c-hadrons"),
hadronFlavour = Var("hadronFlavour()", int, doc="flavour from hadron ghost clustering"),
hadronFlavour = Var("hadronFlavour()", "uint8", doc="flavour from hadron ghost clustering"),
)
)

Expand Down
Loading

0 comments on commit d5cd2f8

Please sign in to comment.