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

Change ScoutingNano event content #45820

Merged
merged 4 commits into from
Sep 6, 2024
Merged
Show file tree
Hide file tree
Changes from 3 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
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,13 @@ typedef SimpleFlatTableProducer<Run3ScoutingElectron> SimpleRun3ScoutingElectron
#include "DataFormats/Scouting/interface/Run3ScoutingTrack.h"
typedef SimpleFlatTableProducer<Run3ScoutingTrack> SimpleRun3ScoutingTrackFlatTableProducer;

#include "DataFormats/Scouting/interface/Run3ScoutingPFJet.h"
typedef SimpleFlatTableProducer<Run3ScoutingPFJet> SimpleRun3ScoutingPFJetFlatTableProducer;

#include "FWCore/Framework/interface/MakerMacros.h"
DEFINE_FWK_MODULE(SimpleRun3ScoutingVertexFlatTableProducer);
DEFINE_FWK_MODULE(SimpleRun3ScoutingPhotonFlatTableProducer);
DEFINE_FWK_MODULE(SimpleRun3ScoutingMuonFlatTableProducer);
DEFINE_FWK_MODULE(SimpleRun3ScoutingElectronFlatTableProducer);
DEFINE_FWK_MODULE(SimpleRun3ScoutingTrackFlatTableProducer);
DEFINE_FWK_MODULE(SimpleRun3ScoutingPFJetFlatTableProducer);
15 changes: 4 additions & 11 deletions PhysicsTools/NanoAOD/python/custom_run3scouting_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

# common tasks
particleTask = cms.Task(scoutingPFCands)
particleTableTask = cms.Task(particleScoutingTable)
ak4JetTableTask = cms.Task(ak4ScoutingJets,ak4ScoutingJetParticleNetJetTagInfos,ak4ScoutingJetParticleNetJetTags,ak4ScoutingJetTable)
ak8JetTableTask = cms.Task(ak8ScoutingJets,ak8ScoutingJetsSoftDrop,ak8ScoutingJetsSoftDropMass,ak8ScoutingJetEcfNbeta1,ak8ScoutingJetNjettiness,ak8ScoutingJetParticleNetJetTagInfos,ak8ScoutingJetParticleNetJetTags,ak8ScoutingJetParticleNetMassRegressionJetTags,ak8ScoutingJetTable)

Expand All @@ -25,7 +24,6 @@
## L1 decisions
gtStage2DigisScouting = gtStage2Digis.clone(InputLabel="hltFEDSelectorL1")
l1bitsScouting = l1bits.clone(src="gtStage2DigisScouting")
patTriggerScouting = patTrigger.clone(l1tAlgBlkInputTag="gtStage2DigisScouting",l1tExtBlkInputTag="gtStage2DigisScouting")

## L1 objects
from PhysicsTools.NanoAOD.l1trig_cff import *
Expand All @@ -42,22 +40,17 @@
l1TauScoutingTable.variables = cms.PSet(l1TauReducedVars)
l1EtSumScoutingTable.variables = cms.PSet(l1EtSumReducedVars)

selectedPatTriggerScouting = selectedPatTrigger.clone(src="patTriggerScouting")
slimmedPatTriggerScouting = slimmedPatTrigger.clone(src="selectedPatTriggerScouting")
unpackedPatTriggerScouting = unpackedPatTrigger.clone(patTriggerObjectsStandAlone="slimmedPatTriggerScouting")
triggerObjectTableScouting = triggerObjectTable.clone(src="unpackedPatTriggerScouting")

triggerTask = cms.Task(
gtStage2DigisScouting, l1MuScoutingTable, l1EGScoutingTable, l1TauScoutingTable, l1JetScoutingTable, l1EtSumScoutingTable,
unpackedPatTriggerScouting,triggerObjectTableScouting,l1bitsScouting
gtStage2DigisScouting, l1bitsScouting,
l1MuScoutingTable, l1EGScoutingTable, l1TauScoutingTable, l1JetScoutingTable, l1EtSumScoutingTable,
)
triggerSequence = cms.Sequence(L1TRawToDigi+patTriggerScouting+selectedPatTriggerScouting+slimmedPatTriggerScouting+cms.Sequence(triggerTask))
triggerSequence = cms.Sequence(L1TRawToDigi+cms.Sequence(triggerTask))

# MC tasks
genJetTask = cms.Task(ak4ScoutingJetMatchGen,ak4ScoutingJetExtTable,ak8ScoutingJetMatchGen,ak8ScoutingJetExtTable)
puTask = cms.Task(puTable)

nanoTableTaskCommon = cms.Task(photonScoutingTable,muonScoutingTableTask,electronScoutingTable,trackScoutingTable,primaryvertexScoutingTable,displacedvertexScoutingTableTask,rhoScoutingTable,metScoutingTable,particleTask,particleTableTask,ak4JetTableTask,ak8JetTableTask)
nanoTableTaskCommon = cms.Task(photonScoutingTable,muonScoutingTableTask,electronScoutingTable,primaryvertexScoutingTable,displacedvertexScoutingTableTask,jetScoutingTable,rhoScoutingTable,metScoutingTable,particleTask,ak4JetTableTask,ak8JetTableTask)

nanoSequenceCommon = cms.Sequence(triggerSequence,nanoTableTaskCommon)

Expand Down
51 changes: 40 additions & 11 deletions PhysicsTools/NanoAOD/python/run3scouting_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from PhysicsTools.NanoAOD.simpleCandidateFlatTableProducer_cfi import simpleCandidateFlatTableProducer

################
# Scouting photons, electrons, muons, tracks, primary vertices, displaced vertices, rho and MET
# Scouting photons, electrons, muons, tracks, primary vertices, displaced vertices, jets (clustered at HLT), rho and MET

photonScoutingTable = cms.EDProducer("SimpleRun3ScoutingPhotonFlatTableProducer",
src = cms.InputTag("hltScoutingEgammaPacker"),
Expand Down Expand Up @@ -141,7 +141,7 @@
nValidStripHits = Var('tk_nValidStripHits', 'int', doc='number of valid strip hits'),
nTrackerLayersWithMeasurement = Var('tk_nTrackerLayersWithMeasurement', 'int', doc='number of tracker layers with measurements'),
qoverp = Var('tk_qoverp', 'float', precision=10, doc='qoverp'),
_lambda = Var('tk_lambda', 'float', precision=10, doc='lambda'),
lambda_ = Var('tk_lambda', 'float', precision=10, doc='lambda'),
Copy link
Contributor

Choose a reason for hiding this comment

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

why keeping the trailing underscore at all ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

lambda is a keyword in python and I believe that was the reason initially to call it _lambda.

dxyError = Var('tk_dxy_Error', 'float', precision=10, doc='dxyError'),
dzError = Var('tk_dz_Error', 'float', precision=10, doc='dzError'),
qoverpError = Var('tk_qoverp_Error', 'float', precision=10, doc='qoverpError'),
Expand Down Expand Up @@ -208,6 +208,35 @@
)
)

jetScoutingTable = cms.EDProducer("SimpleRun3ScoutingPFJetFlatTableProducer",
src = cms.InputTag("hltScoutingPFPacker"),
cut = cms.string(""),
name = cms.string("ScoutingPFJet"),
doc = cms.string("PFJet scouting information"),
singleton = cms.bool(False),
extension = cms.bool(False),
variables = cms.PSet(
P3Vars,
m = Var('m', 'float', precision=10, doc='mass'),
jetArea = Var('jetArea', 'float', precision=10, doc='jet area'),
chargedHadronEnergy = Var('chargedHadronEnergy', 'float', precision=10, doc='charged hadron energy'),
neutralHadronEnergy = Var('neutralHadronEnergy', 'float', precision=10, doc='neutral hadron energy'),
photonEnergy = Var('photonEnergy', 'float', precision=10, doc='photon energy'),
electronEnergy = Var('electronEnergy', 'float', precision=10, doc='electron energy'),
muonEnergy = Var('muonEnergy', 'float', precision=10, doc='muon energy'),
HFHadronEnergy = Var('HFHadronEnergy', 'float', precision=10, doc='hadronic energy in HF'),
HFEMEnergy = Var('HFEMEnergy', 'float', precision=10, doc='electromagnetic energy in HF'),
chargedHadronMultiplicity = Var('chargedHadronMultiplicity', 'int', doc='number of charged hadrons in the jet'),
neutralHadronMultiplicity = Var('neutralHadronMultiplicity', 'int', doc='number of neutral hadrons in the jet'),
photonMultiplicity = Var('photonMultiplicity', 'int', doc='number of photons in the jet'),
electronMultiplicity = Var('electronMultiplicity', 'int', doc='number of electrons in the jet'),
muonMultiplicity = Var('muonMultiplicity', 'int', doc='number of muons in the jet'),
HFHadronMultiplicity = Var('HFHadronMultiplicity', 'int', doc='number of HF hadronic particles in the jet'),
HFEMMultiplicity = Var('HFEMMultiplicity', 'int', doc='number of HF electromagnetic particles in the jet'),
HOEnergy = Var('HOEnergy', 'float', precision=10, doc='hadronic energy in HO'),
)
)

rhoScoutingTable = cms.EDProducer("GlobalVariablesTableProducer",
name = cms.string(""),
variables = cms.PSet(
Expand Down Expand Up @@ -334,17 +363,17 @@

ak4ScoutingJetTable = cms.EDProducer("SimplePFJetFlatTableProducer",
src = cms.InputTag("ak4ScoutingJets"),
name = cms.string("ScoutingJet"),
name = cms.string("ScoutingCHSJetRecluster"),
cut = cms.string(""),
doc = cms.string("ScoutingJet"),
doc = cms.string("ak4 jets from re-clustering scouting PF candidates with CHS applied"),
Copy link
Contributor

Choose a reason for hiding this comment

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

Where is CHS applied to ak4ScoutingJets and ak8ScoutingJets? I see in

the default value of CHS is set to false.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thank you for catching this! There seems to be mismatch (whether CHS is applied or not) in private and cmssw code. I will rename them to PFJets.

singleton = cms.bool(False),
extension = cms.bool(False), # this is the main table
externalVariables = cms.PSet(
particleNet_prob_b = ExtVar(cms.InputTag('ak4ScoutingJetParticleNetJetTags:probb'), float, doc="ParticleNet probability of b", precision=10),
particleNet_prob_bb = ExtVar(cms.InputTag('ak4ScoutingJetParticleNetJetTags:probbb'), float, doc="ParticleNet probability of bb", precision=10),
particleNet_prob_c = ExtVar(cms.InputTag('ak4ScoutingJetParticleNetJetTags:probc'), float, doc="ParticleNet probability of c", precision=10),
particleNet_prob_cc = ExtVar(cms.InputTag('ak4ScoutingJetParticleNetJetTags:probcc'), float, doc="ParticleNet probability of cc", precision=10),
particlenet_prob_uds = ExtVar(cms.InputTag('ak4ScoutingJetParticleNetJetTags:probuds'), float, doc="particlenet probability of uds", precision=10),
particleNet_prob_uds = ExtVar(cms.InputTag('ak4ScoutingJetParticleNetJetTags:probuds'), float, doc="particlenet probability of uds", precision=10),
particleNet_prob_g = ExtVar(cms.InputTag('ak4ScoutingJetParticleNetJetTags:probg'), float, doc="ParticleNet probability of g", precision=10),
particleNet_prob_undef = ExtVar(cms.InputTag('ak4ScoutingJetParticleNetJetTags:probundef'), float, doc="ParticleNet probability of undef", precision=10),
),
Expand Down Expand Up @@ -374,7 +403,7 @@

ak4ScoutingJetExtTable = cms.EDProducer("SimpleCandidateFlatTableProducer",
src = cms.InputTag("ak4ScoutingJets"),
name = cms.string("ScoutingJet"),
name = cms.string("ScoutingCHSJetRecluster"),
cut = cms.string(""),
singleton = cms.bool(False),
extension = cms.bool(True),
Expand Down Expand Up @@ -455,7 +484,7 @@
src = cms.InputTag("ak8ScoutingJetParticleNetJetTagInfos"),
preprocess_json = cms.string("RecoBTag/Combined/data/Run3Scouting/ParticleNetAK8/General/V00/preprocess.json"),
model_path = cms.FileInPath("RecoBTag/Combined/data/Run3Scouting/ParticleNetAK8/General/V00/particle-net.onnx"),
flav_names = cms.vstring(["probHbb", "probHcc","probHqq", "probQCDall"]),
flav_names = cms.vstring([ "probQCDall", "probHbb", "probHcc", "probHqq"]),
debugMode = cms.untracked.bool(False),
)

Expand All @@ -471,9 +500,9 @@

ak8ScoutingJetTable = cms.EDProducer("SimplePFJetFlatTableProducer",
src = cms.InputTag("ak8ScoutingJets"),
name = cms.string("ScoutingFatJet"),
name = cms.string("ScoutingFatCHSJetRecluster"),
cut = cms.string(""),
doc = cms.string("ScoutingFatJet"),
doc = cms.string("ak8 jets from re-clustering scouting PF candidates with CHS applied"),
singleton = cms.bool(False),
extension = cms.bool(False), # this is the main table
externalVariables = cms.PSet(
Expand All @@ -486,10 +515,10 @@
tau3 = ExtVar(cms.InputTag('ak8ScoutingJetNjettiness:tau3'), float, doc="Nsubjettiness (3 axis)", precision=10),
tau4 = ExtVar(cms.InputTag('ak8ScoutingJetNjettiness:tau4'), float, doc="Nsubjettiness (4 axis)", precision=10),
particleNet_mass = ExtVar(cms.InputTag('ak8ScoutingJetParticleNetMassRegressionJetTags:mass'), float, doc="ParticleNet regressed mass", precision=10),
particleNet_prob_QCD = ExtVar(cms.InputTag('ak8ScoutingJetParticleNetJetTags:probQCDall'), float, doc="ParticleNet probability of QCD", precision=10),
particleNet_prob_Hbb = ExtVar(cms.InputTag('ak8ScoutingJetParticleNetJetTags:probHbb'), float, doc="ParticleNet probability of Hbb", precision=10),
particleNet_prob_Hcc = ExtVar(cms.InputTag('ak8ScoutingJetParticleNetJetTags:probHcc'), float, doc="ParticleNet probability of Hcc", precision=10),
particleNet_prob_Hqq = ExtVar(cms.InputTag('ak8ScoutingJetParticleNetJetTags:probHqq'), float, doc="ParticleNet probability of Hqq", precision=10),
particleNet_prob_QCD = ExtVar(cms.InputTag('ak8ScoutingJetParticleNetJetTags:probQCDall'), float, doc="ParticleNet probability of QCD", precision=10),
),
variables = cms.PSet(
P4Vars,
Expand Down Expand Up @@ -517,7 +546,7 @@

ak8ScoutingJetExtTable = cms.EDProducer("SimpleCandidateFlatTableProducer",
src = cms.InputTag("ak8ScoutingJets"),
name = cms.string("ScoutingFatJet"),
name = cms.string("ScoutingFatCHSJetRecluster"),
cut = cms.string(""),
singleton = cms.bool(False),
extension = cms.bool(True),
Expand Down