1 import FWCore.ParameterSet.Config
as cms
19 from Configuration.Eras.Modifier_run2_miniAOD_80XLegacy_cff
import run2_miniAOD_80XLegacy
20 from Configuration.Eras.Modifier_run2_nanoAOD_92X_cff
import run2_nanoAOD_92X
21 from Configuration.Eras.Modifier_run2_nanoAOD_94X2016_cff
import run2_nanoAOD_94X2016
23 nanoMetadata = cms.EDProducer(
"UniqueStringProducer",
25 tag = cms.string(
"untagged"),
29 linkedObjects = cms.EDProducer(
"PATObjectCrossLinker",
30 jets=cms.InputTag(
"finalJets"),
31 muons=cms.InputTag(
"finalMuons"),
32 electrons=cms.InputTag(
"finalElectrons"),
33 taus=cms.InputTag(
"finalTaus"),
34 photons=cms.InputTag(
"finalPhotons"),
37 simpleCleanerTable = cms.EDProducer(
"NanoAODSimpleCrossCleaner",
38 name=cms.string(
"cleanmask"),
39 doc=cms.string(
"simple cleaning mask with priority to leptons"),
40 jets=cms.InputTag(
"linkedObjects",
"jets"),
41 muons=cms.InputTag(
"linkedObjects",
"muons"),
42 electrons=cms.InputTag(
"linkedObjects",
"electrons"),
43 taus=cms.InputTag(
"linkedObjects",
"taus"),
44 photons=cms.InputTag(
"linkedObjects",
"photons"),
45 jetSel=cms.string(
"pt>15"),
46 muonSel=cms.string(
"isPFMuon && innerTrack.validFraction >= 0.49 && ( isGlobalMuon && globalTrack.normalizedChi2 < 3 && combinedQuality.chi2LocalPosition < 12 && combinedQuality.trkKink < 20 && segmentCompatibility >= 0.303 || segmentCompatibility >= 0.451 )"),
47 electronSel=cms.string(
""),
48 tauSel=cms.string(
""),
49 photonSel=cms.string(
""),
50 jetName=cms.string(
"Jet"),muonName=cms.string(
"Muon"),electronName=cms.string(
"Electron"),
51 tauName=cms.string(
"Tau"),photonName=cms.string(
"Photon")
54 btagSFdir=
"PhysicsTools/NanoAOD/data/btagSF/" 56 btagWeightTable = cms.EDProducer(
"BTagSFProducer",
57 src = cms.InputTag(
"linkedObjects",
"jets"),
58 cut = cms.string(
"pt > 25. && abs(eta) < 2.5"),
59 discNames = cms.vstring(
60 "pfCombinedInclusiveSecondaryVertexV2BJetTags",
61 "pfDeepCSVJetTags:probb+pfDeepCSVJetTags:probbb",
62 "pfCombinedMVAV2BJetTags" 64 discShortNames = cms.vstring(
69 weightFiles = cms.vstring(
70 btagSFdir+
"CSVv2_94XSF_V2_B_F.csv",
71 btagSFdir+
"DeepCSV_94XSF_V2_B_F.csv",
74 operatingPoints = cms.vstring(
"3",
"3",
"3"),
75 measurementTypesB = cms.vstring(
"iterativefit",
"iterativefit",
"iterativefit"),
76 measurementTypesC = cms.vstring(
"iterativefit",
"iterativefit",
"iterativefit"),
77 measurementTypesUDSG = cms.vstring(
"iterativefit",
"iterativefit",
"iterativefit"),
78 sysTypes = cms.vstring(
"central",
"central",
"central")
81 run2_miniAOD_80XLegacy.toModify(btagWeightTable,
82 cut = cms.string(
"pt > 25. && abs(eta) < 2.4"),
83 weightFiles = cms.vstring(
84 btagSFdir+
"CSVv2_Moriond17_B_H.csv",
86 btagSFdir+
"cMVAv2_Moriond17_B_H.csv" 90 run2_nanoAOD_92X.toModify(btagWeightTable,
91 weightFiles = cms.vstring(
98 genWeightsTable = cms.EDProducer(
"GenWeightsTableProducer",
99 genEvent = cms.InputTag(
"generator"),
100 lheInfo = cms.InputTag(
"externalLHEProducer"),
101 preferredPDFs = cms.VPSet(
102 cms.PSet( name = cms.string(
"PDF4LHC15_nnlo_30_pdfas"), lhaid = cms.uint32(91400) ),
103 cms.PSet( name = cms.string(
"NNPDF31_nnlo_hessian_pdfas"), lhaid = cms.uint32(306000) ),
104 cms.PSet( name = cms.string(
"NNPDF30_nlo_as_0118"), lhaid = cms.uint32(260000) ),
105 cms.PSet( name = cms.string(
"NNPDF30_lo_as_0130"), lhaid = cms.uint32(262000) ),
106 cms.PSet( name = cms.string(
"NNPDF30_nlo_nf_4_pdfas"), lhaid = cms.uint32(292000) ),
107 cms.PSet( name = cms.string(
"NNPDF30_nlo_nf_5_pdfas"), lhaid = cms.uint32(292200) ),
109 namedWeightIDs = cms.vstring(),
110 namedWeightLabels = cms.vstring(),
111 lheWeightPrecision = cms.int32(14),
112 maxPdfWeights = cms.uint32(150),
113 debug = cms.untracked.bool(
False),
115 lheInfoTable = cms.EDProducer(
"LHETablesProducer",
116 lheInfo = cms.InputTag(
"externalLHEProducer"),
117 precision = cms.int32(14),
118 storeLHEParticles = cms.bool(
True)
121 l1bits=cms.EDProducer(
"L1TriggerResultsConverter", src=cms.InputTag(
"gtStage2Digis"), legacyL1=cms.bool(
False))
123 nanoSequence = cms.Sequence(
124 nanoMetadata + jetSequence + muonSequence + tauSequence + electronSequence+photonSequence+vertexSequence+metSequence+
127 jetTables + muonTables + tauTables + electronTables + photonTables + globalTables +vertexTables+ metTables+simpleCleanerTable + triggerObjectTables + isoTrackTables +
130 nanoSequenceMC = cms.Sequence(genParticleSequence + particleLevelSequence + nanoSequence + jetMC + muonMC + electronMC + photonMC + tauMC + metMC + ttbarCatMCProducers + globalTablesMC + btagWeightTable + genWeightsTable + genParticleTables + particleLevelTables + lheInfoTable + ttbarCategoryTable )
136 print "Updating process to run DeepCSV btag on legacy 80X datasets" 139 jetSource = cms.InputTag(
'slimmedJets'),
140 jetCorrections = (
'AK4PFchs', cms.vstring([
'L1FastJet',
'L2Relative',
'L3Absolute',
'L2L3Residual']),
'None'),
141 btagDiscriminators = [
'pfDeepCSVJetTags:probb',
'pfDeepCSVJetTags:probbb',
'pfDeepCSVJetTags:probc'],
144 process.load(
"Configuration.StandardSequences.MagneticField_cff")
145 process.looseJetId.src=
"selectedUpdatedPatJets" 146 process.tightJetId.src=
"selectedUpdatedPatJets" 147 process.tightJetIdLepVeto.src=
"selectedUpdatedPatJets" 148 process.bJetVars.src=
"selectedUpdatedPatJets" 149 process.slimmedJetsWithUserData.src=
"selectedUpdatedPatJets" 150 process.qgtagger80x.srcJets=
"selectedUpdatedPatJets" 152 patAlgosToolsTask .
add(process.updatedPatJets)
153 patAlgosToolsTask .
add(process.patJetCorrFactors)
154 process.additionalendpath = cms.EndPath(patAlgosToolsTask)
157 print "Updating process to run DeepFlavour btag on legacy 80X datasets" 160 jetSource = cms.InputTag(
'slimmedJets'),
161 jetCorrections = (
'AK4PFchs', cms.vstring([
'L1FastJet',
'L2Relative',
'L3Absolute',
'L2L3Residual']),
'None'),
162 btagDiscriminators = [
'pfDeepFlavourJetTags:probb',
'pfDeepFlavourJetTags:probbb',
'pfDeepFlavourJetTags:problepb'],
165 process.load(
"Configuration.StandardSequences.MagneticField_cff")
166 process.looseJetId.src=
"selectedUpdatedPatJets" 167 process.tightJetId.src=
"selectedUpdatedPatJets" 168 process.tightJetIdLepVeto.src=
"selectedUpdatedPatJets" 169 process.bJetVars.src=
"selectedUpdatedPatJets" 170 process.slimmedJetsWithUserData.src=
"selectedUpdatedPatJets" 171 process.qgtagger80x.srcJets=
"selectedUpdatedPatJets" 172 process.pfDeepFlavourJetTags.graph_path =
'RecoBTag/Combined/data/DeepFlavourV03_10X_training/constant_graph.pb' 173 process.pfDeepFlavourJetTags.lp_names = [
"cpf_input_batchnorm/keras_learning_phase"]
175 patAlgosToolsTask .
add(process.updatedPatJets)
176 patAlgosToolsTask .
add(process.patJetCorrFactors)
177 process.additionalendpath = cms.EndPath(patAlgosToolsTask)
182 run2_miniAOD_80XLegacy.toModify(process, nanoAOD_addDeepBTagFor80X)
183 run2_nanoAOD_94X2016.toModify(process, nanoAOD_addDeepFlavourTagFor94X2016)
189 if hasattr(process,
'calibratedPatElectrons80X'):
190 process.calibratedPatElectrons80X.isMC = cms.bool(
False)
191 process.calibratedPatPhotons80X.isMC = cms.bool(
False)
196 if hasattr(process,
'calibratedPatElectrons80X'):
197 process.calibratedPatElectrons80X.isMC = cms.bool(
True)
198 process.calibratedPatPhotons80X.isMC = cms.bool(
True)
202 _80x_sequence = nanoSequence.copy()
204 _80x_sequence.remove(isoTrackTable)
205 _80x_sequence.remove(isoTrackSequence)
207 _80x_sequence.insert(_80x_sequence.index(jetSequence), extraFlagsProducers)
208 _80x_sequence.insert(_80x_sequence.index(l1bits)+1, extraFlagsTable)
210 run2_miniAOD_80XLegacy.toReplaceWith( nanoSequence, _80x_sequence)
def nanoAOD_addDeepBTagFor80X(process)
def nanoAOD_customizeMC(process)
def nanoAOD_customizeCommon(process)
def nanoAOD_addDeepFlavourTagFor94X2016(process)
void add(std::map< std::string, TH1 * > &h, TH1 *hist)
def getPatAlgosToolsTask(process)
def nanoAOD_customizeData(process)