File indexing completed on 2024-11-26 02:34:37
0001
0002
0003
0004 import FWCore.ParameterSet.Config as cms
0005 process = cms.Process("validation")
0006
0007 import FWCore.ParameterSet.VarParsing as VarParsing
0008 options = VarParsing.VarParsing ('analysis')
0009
0010
0011 process.load("Configuration.StandardSequences.MagneticField_cff")
0012 process.load("Configuration.StandardSequences.GeometryRecoDB_cff")
0013 process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
0014 process.load("Configuration.StandardSequences.Reconstruction_cff")
0015
0016 options.register ('jets',
0017 "ak4PFJetsCHS",
0018 VarParsing.VarParsing.multiplicity.singleton,
0019 VarParsing.VarParsing.varType.string,
0020 "jet collection to use")
0021
0022 options.parseArguments()
0023
0024 whichJets = options.jets
0025 applyJEC = True
0026 corrLabel = "ak4PFCHS"
0027 from Configuration.AlCa.GlobalTag import GlobalTag
0028 tag = GlobalTag(process.GlobalTag, 'auto:run2_mc', '')
0029 useTrigger = False
0030 triggerPath = "HLT_PFJet80_v*"
0031 runOnMC = True
0032
0033
0034 flavPlots = "allbcldusg"
0035
0036
0037 print("jet collcetion asked : ", whichJets)
0038 print("JEC applied?", applyJEC, ", correction:", corrLabel)
0039 print("trigger will be used ? : ", useTrigger, ", Trigger paths:", triggerPath)
0040 print("is it MC ? : ", runOnMC, ", Flavours:", flavPlots)
0041 print("Global Tag : ", tag.globaltag)
0042
0043
0044 process.load("DQMServices.Components.DQMEnvironment_cfi")
0045 process.load("DQMServices.Core.DQM_cfg")
0046
0047 process.load("JetMETCorrections.Configuration.JetCorrectors_cff")
0048 process.load("CommonTools.ParticleFlow.goodOfflinePrimaryVertices_cfi")
0049 process.load("RecoJets.JetAssociationProducers.ak4JTA_cff")
0050 process.load("RecoBTag.Configuration.RecoBTag_cff")
0051 process.load("PhysicsTools.JetMCAlgos.HadronAndPartonSelector_cfi")
0052 process.load("PhysicsTools.JetMCAlgos.AK4PFJetsMCFlavourInfos_cfi")
0053 process.load("PhysicsTools.JetMCAlgos.CaloJetsMCFlavour_cfi")
0054 process.load("PhysicsTools.PatAlgos.mcMatchLayer0.jetMatch_cfi")
0055 process.JECseq = cms.Sequence(getattr(process,corrLabel+"L1FastL2L3CorrectorChain"))
0056
0057 newjetID=cms.InputTag(whichJets)
0058 process.ak4JetFlavourInfos.jets = newjetID
0059 process.ak4JetFlavourInfos.hadronFlavourHasPriority = cms.bool(True)
0060 process.AK4byRef.jets = newjetID
0061 if not "ak4PFJetsCHS" in whichJets:
0062 process.ak4JetTracksAssociatorAtVertexPF.jets = newjetID
0063 process.pfImpactParameterTagInfos.jets = newjetID
0064 process.softPFMuonsTagInfos.jets = newjetID
0065 process.softPFElectronsTagInfos.jets = newjetID
0066 process.patJetGenJetMatch.src = newjetID
0067
0068 process.btagSequence = cms.Sequence(
0069 process.ak4JetTracksAssociatorAtVertexPF *
0070 process.btagging
0071 )
0072 process.jetSequences = cms.Sequence(process.goodOfflinePrimaryVertices * process.btagSequence)
0073
0074
0075 print("inputTag : ", process.ak4JetTracksAssociatorAtVertexPF.jets)
0076
0077
0078 if runOnMC:
0079 process.flavourSeq = cms.Sequence(
0080 process.selectedHadronsAndPartons *
0081 process.ak4JetFlavourInfos
0082 )
0083 process.load("Validation.RecoB.bTagAnalysis_cfi")
0084 process.bTagValidation.jetMCSrc = 'ak4JetFlavourInfos'
0085 if "Calo" in whichJets:
0086 process.bTagValidation.caloJetMCSrc = 'AK4byValAlgo'
0087 process.bTagValidation.useOldFlavourTool = True
0088 process.flavourSeq = cms.Sequence(
0089 process.myPartons *
0090 process.AK4Flavour
0091 )
0092 process.bTagValidation.applyPtHatWeight = False
0093 process.bTagValidation.doJetID = True
0094 process.bTagValidation.doJEC = applyJEC
0095 process.bTagValidation.JECsourceMC = cms.InputTag(corrLabel+"L1FastL2L3Corrector")
0096 process.bTagValidation.flavPlots = flavPlots
0097 process.bTagHarvestMC.flavPlots = flavPlots
0098
0099 process.bTagValidation.genJetsMatched = cms.InputTag("patJetGenJetMatch")
0100 process.bTagValidation.doPUid = cms.bool(True)
0101 process.ak4GenJetsForPUid = cms.EDFilter("GenJetSelector",
0102 src = cms.InputTag("ak4GenJets"),
0103 cut = cms.string('pt > 8.'),
0104 filter = cms.bool(False)
0105 )
0106 process.patJetGenJetMatch.matched = cms.InputTag("ak4GenJetsForPUid")
0107 process.patJetGenJetMatch.maxDeltaR = cms.double(0.25)
0108 process.patJetGenJetMatch.resolveAmbiguities = cms.bool(True)
0109 else:
0110 process.load("DQMOffline.RecoB.bTagAnalysisData_cfi")
0111 process.bTagAnalysis.doJEC = applyJEC
0112 process.bTagAnalysis.JECsourceData = cms.InputTag(corrLabel+"L1FastL2L3ResidualCorrector")
0113 process.JECseq *= (getattr(process,corrLabel+"ResidualCorrector") * getattr(process,corrLabel+"L1FastL2L3ResidualCorrector"))
0114
0115 process.maxEvents = cms.untracked.PSet(
0116 input = cms.untracked.int32(-1)
0117 )
0118 process.source = cms.Source("PoolSource",
0119 fileNames = cms.untracked.vstring()
0120 )
0121
0122 from HLTrigger.HLTfilters.hltHighLevel_cfi import *
0123 if useTrigger:
0124 process.bTagHLT = hltHighLevel.clone(TriggerResultsTag = "TriggerResults::HLT", HLTPaths = ["HLT_PFJet40_v*"])
0125 process.bTagHLT.HLTPaths = [triggerPath]
0126
0127 if runOnMC:
0128 process.dqmSeq = cms.Sequence(process.ak4GenJetsForPUid * process.patJetGenJetMatch * process.flavourSeq * process.bTagValidation * process.bTagHarvestMC * process.dqmSaver)
0129 else:
0130 process.dqmSeq = cms.Sequence(process.bTagAnalysis * process.bTagHarvest * process.dqmSaver)
0131
0132 if useTrigger:
0133 process.plots = cms.Path(process.bTagHLT * process.JECseq * process.jetSequences * process.dqmSeq)
0134 else:
0135 process.plots = cms.Path(process.JECseq * process.jetSequences * process.dqmSeq)
0136
0137 process.dqmEnv.subSystemFolder = 'BTAG'
0138 process.dqmSaver.producer = 'DQM'
0139 process.dqmSaver.workflow = '/POG/BTAG/BJET'
0140 process.dqmSaver.convention = 'Offline'
0141 process.dqmSaver.saveByRun = cms.untracked.int32(-1)
0142 process.dqmSaver.saveAtJobEnd =cms.untracked.bool(True)
0143 process.dqmSaver.forceRunNumber = cms.untracked.int32(1)
0144 process.PoolSource.fileNames = [
0145
0146 ]
0147
0148
0149 process.load("FWCore.MessageLogger.MessageLogger_cfi")
0150 process.MessageLogger.cerr.FwkReport.reportEvery = 100
0151
0152 process.GlobalTag = tag
0153