def addJESVariation(name, doJetVariation, metVariation): jetVariationMode = "all" module = getattr(process, name) module = module.clone() module.Tree.fill = False module.Tree.fillJetEnergyFractions = False # JES variation will make the fractions invalid JESs = "%02d" % int(JESVariation * 100) JESe = "%02d" % int(JESEtaVariation * 100) JESm = "%02d" % int(metVariation * 100) addJESVariationAnalysis(process, dataVersion, name, "JESPlus" + JESs + "eta" + JESe + "METPlus" + JESm, module, additionalCounters, JESVariation, JESEtaVariation, metVariation, doJetVariation) addJESVariationAnalysis( process, dataVersion, name, "JESMinus" + JESs + "eta" + JESe + "METPlus" + JESm, module, additionalCounters, -JESVariation, JESEtaVariation, metVariation, doJetVariation) addJESVariationAnalysis( process, dataVersion, name, "JESPlus" + JESs + "eta" + JESe + "METMinus" + JESm, module, additionalCounters, JESVariation, JESEtaVariation, -metVariation, doJetVariation) addJESVariationAnalysis( process, dataVersion, name, "JESMinus" + JESs + "eta" + JESe + "METMinus" + JESm, module, additionalCounters, -JESVariation, JESEtaVariation, -metVariation, doJetVariation)
def addJESVariation(name, doJetVariation, metVariation): jetVariationMode = "all" module = getattr(process, name) module = module.clone() module.Tree.fill = False module.Tree.fillJetEnergyFractions = False # JES variation will make the fractions invalid JESs = "%02d" % int(JESVariation * 100) JESe = "%02d" % int(JESEtaVariation * 100) JESm = "%02d" % int(metVariation * 100) addJESVariationAnalysis( process, dataVersion, name, "JESPlus" + JESs + "eta" + JESe + "METPlus" + JESm, module, additionalCounters, JESVariation, JESEtaVariation, metVariation, doJetVariation, ) addJESVariationAnalysis( process, dataVersion, name, "JESMinus" + JESs + "eta" + JESe + "METPlus" + JESm, module, additionalCounters, -JESVariation, JESEtaVariation, metVariation, doJetVariation, ) addJESVariationAnalysis( process, dataVersion, name, "JESPlus" + JESs + "eta" + JESe + "METMinus" + JESm, module, additionalCounters, JESVariation, JESEtaVariation, -metVariation, doJetVariation, ) addJESVariationAnalysis( process, dataVersion, name, "JESMinus" + JESs + "eta" + JESe + "METMinus" + JESm, module, additionalCounters, -JESVariation, JESEtaVariation, -metVariation, doJetVariation, )
def addJESVariation(name, doJetUnclusteredVariation): jetVariationMode="all" module = getattr(process, name) module = module.clone() module.Tree.fill = False module.Tree.fillJetEnergyFractions = False # JES variation will make the fractions invalid addJESVariationAnalysis(process, dataVersion, name, "TESPlus", module, additionalCounters, tauVariationSigma=1.0, postfix=PF2PATVersion) addJESVariationAnalysis(process, dataVersion, name, "TESMinus", module, additionalCounters, tauVariationSigma=-1.0, postfix=PF2PATVersion) if doJetUnclusteredVariation: # Do all variations beyond TES addJESVariationAnalysis(process, dataVersion, name, "JESPlus", module, additionalCounters, jetVariationSigma=1.0, postfix=PF2PATVersion) addJESVariationAnalysis(process, dataVersion, name, "JESMinus", module, additionalCounters, jetVariationSigma=-1.0, postfix=PF2PATVersion) #addJESVariationAnalysis(process, dataVersion, name, "JERPlus", module, additionalCounters, VariationSigma=1.0, postfix=PF2PATVersion) #addJESVariationAnalysis(process, dataVersion, name, "JERMinus", module, additionalCounters, VariationSigma=-1.0, postfix=PF2PATVersion) addJESVariationAnalysis(process, dataVersion, name, "METPlus", module, additionalCounters, unclusteredVariationSigma=1.0, postfix=PF2PATVersion) addJESVariationAnalysis(process, dataVersion, name, "METMinus", module, additionalCounters, unclusteredVariationSigma=-1.0, postfix=PF2PATVersion)
# The signal analysis with jet energy scale variation # # If the flag is true, create two paths for the variation in plus and # minus, and clone the signal analysis and counter modules to the # paths. The tau, jet and MET collections to adjust are taken from the # configuration of the golden analysis. The fragment below creates the # following histogram directories # EWKFakeTauAnalysisJESPlus05 # EWKFakeTauAnalysisJESMinus05 from HiggsAnalysis.HeavyChHiggsToTauNu.JetEnergyScaleVariation import addJESVariationAnalysis if doJESVariation: # In principle here could be more than two JES variation analyses JESs = "%02d" % int(JESVariation*100) JESe = "%02d" % int(JESEtaVariation*100) JESm = "%02d" % int(JESUnclusteredMETVariation*100) addJESVariationAnalysis(process, "EWKFakeTauAnalysis", "JESPlus"+JESs+"eta"+JESe+"METPlus"+JESm, process.EWKFakeTauAnalysis, additionalCounters, JESVariation, JESEtaVariation, JESUnclusteredMETVariation) addJESVariationAnalysis(process, "EWKFakeTauAnalysis", "JESMinus"+JESs+"eta"+JESe+"METPlus"+JESm, process.EWKFakeTauAnalysis, additionalCounters, -JESVariation, JESEtaVariation, JESUnclusteredMETVariation) addJESVariationAnalysis(process, "EWKFakeTauAnalysis", "JESPlus"+JESs+"eta"+JESe+"METMinus"+JESm, process.EWKFakeTauAnalysis, additionalCounters, JESVariation, JESEtaVariation, -JESUnclusteredMETVariation) addJESVariationAnalysis(process, "EWKFakeTauAnalysis", "JESMinus"+JESs+"eta"+JESe+"METMinus"+JESm, process.EWKFakeTauAnalysis, additionalCounters, -JESVariation, JESEtaVariation, -JESUnclusteredMETVariation) # Print tau discriminators from one tau from one event. Note that if # the path below is commented, the discriminators are not printed. process.tauDiscriminatorPrint = cms.EDAnalyzer("HPlusTauDiscriminatorPrintAnalyzer", src = process.EWKFakeTauAnalysis.tauSelection.src ) #process.tauDiscriminatorPrintPath = cms.Path( # process.commonSequence * # process.tauDiscriminatorPrint #) ################################################################################
# If the flag is true, create two paths for the variation in plus and # minus, and clone the alphat analysis and counter modules to the # paths. The tau, jet and MET collections to adjust are taken from the # configuration of the golden analysis. The fragment below creates the # following histogram directories # alphatAnalysisJESPlus05 # alphatAnalysisJESMinus05 from HiggsAnalysis.HeavyChHiggsToTauNu.JetEnergyScaleVariation import addJESVariationAnalysis if doJESVariation: # In principle here could be more than two JES variation analyses JESs = "%02d" % int(JESVariation * 100) JESe = "%02d" % int(JESEtaVariation * 100) JESm = "%02d" % int(JESUnclusteredMETVariation * 100) addJESVariationAnalysis(process, "alphatAnalysis", "JESPlus" + JESs + "eta" + JESe + "METPlus" + JESm, process.alphatAnalysis, additionalCounters, JESVariation, JESEtaVariation, JESUnclusteredMETVariation) addJESVariationAnalysis( process, "alphatAnalysis", "JESMinus" + JESs + "eta" + JESe + "METPlus" + JESm, process.alphatAnalysis, additionalCounters, -JESVariation, JESEtaVariation, JESUnclusteredMETVariation) addJESVariationAnalysis( process, "alphatAnalysis", "JESPlus" + JESs + "eta" + JESe + "METMinus" + JESm, process.alphatAnalysis, additionalCounters, JESVariation, JESEtaVariation, -JESUnclusteredMETVariation) addJESVariationAnalysis( process, "alphatAnalysis", "JESMinus" + JESs + "eta" + JESe + "METMinus" + JESm,
# minus, and clone the signal analysis and counter modules to the # paths. The tau, jet and MET collections to adjust are taken from the # configuration of the golden analysis. The fragment below creates the # following histogram directories # QCDMeasurement_PASJuly11CountersJESPlus05 # QCDMeasurement_PASJuly11CountersJESMinus05 from HiggsAnalysis.HeavyChHiggsToTauNu.JetEnergyScaleVariation import addJESVariationAnalysis if doJESVariation: # In principle here could be more than two JES variation analyses JESs = "%02d" % int(JESVariation*100) JESe = "%02d" % int(JESEtaVariation*100) JESm = "%02d" % int(JESUnclusteredMETVariation*100) module = process.QCDMeasurement_PASJuly11.clone() module.Tree.fill = False addJESVariationAnalysis(process, "QCDMeasurement_PASJuly11", "JESPlus"+JESs+"eta"+JESe+"METPlus"+JESm, module, additionalCounters, JESVariation, JESEtaVariation, JESUnclusteredMETVariation) addJESVariationAnalysis(process, "QCDMeasurement_PASJuly11", "JESMinus"+JESs+"eta"+JESe+"METPlus"+JESm, module, additionalCounters, -JESVariation, JESEtaVariation, JESUnclusteredMETVariation) addJESVariationAnalysis(process, "QCDMeasurement_PASJuly11", "JESPlus"+JESs+"eta"+JESe+"METMinus"+JESm, module, additionalCounters, JESVariation, JESEtaVariation, -JESUnclusteredMETVariation) addJESVariationAnalysis(process, "QCDMeasurement_PASJuly11", "JESMinus"+JESs+"eta"+JESe+"METMinus"+JESm, module, additionalCounters, -JESVariation, JESEtaVariation, -JESUnclusteredMETVariation) # Print tau discriminators from one tau from one event. Note that if # the path below is commented, the discriminators are not printed. process.tauDiscriminatorPrint = cms.EDAnalyzer("HPlusTauDiscriminatorPrintAnalyzer", src = process.QCDMeasurement_PASJuly11.tauSelection.src ) #process.tauDiscriminatorPrintPath = cms.Path( # process.patSequence * # process.tauDiscriminatorPrint #)
# If the flag is true, create two paths for the variation in plus and # minus, and clone the signal analysis and counter modules to the # paths. The tau, jet and MET collections to adjust are taken from the # configuration of the golden analysis. The fragment below creates the # following histogram directories # signalOptimisationJESPlus05 # signalOptimisationJESMinus05 from HiggsAnalysis.HeavyChHiggsToTauNu.JetEnergyScaleVariation import addJESVariationAnalysis if doJESVariation: # In principle here could be more than two JES variation analyses JESs = "%02d" % int(JESVariation * 100) JESe = "%02d" % int(JESEtaVariation * 100) JESm = "%02d" % int(JESUnclusteredMETVariation * 100) addJESVariationAnalysis(process, "signalOptimisation", "JESPlus" + JESs + "eta" + JESe + "METPlus" + JESm, process.signalOptimisation, additionalCounters, JESVariation, JESEtaVariation, JESUnclusteredMETVariation) addJESVariationAnalysis( process, "signalOptimisation", "JESMinus" + JESs + "eta" + JESe + "METPlus" + JESm, process.signalOptimisation, additionalCounters, -JESVariation, JESEtaVariation, JESUnclusteredMETVariation) addJESVariationAnalysis( process, "signalOptimisation", "JESPlus" + JESs + "eta" + JESe + "METMinus" + JESm, process.signalOptimisation, additionalCounters, JESVariation, JESEtaVariation, -JESUnclusteredMETVariation) addJESVariationAnalysis( process, "signalOptimisation", "JESMinus" + JESs + "eta" + JESe + "METMinus" + JESm,
def addJESVariation(name, doJetUnclusteredVariation): jetVariationMode = "all" module = getattr(process, name) module = module.clone() module.Tree.fill = False module.Tree.fillJetEnergyFractions = False # JES variation will make the fractions invalid addJESVariationAnalysis(process, dataVersion, name, "TESPlus", module, additionalCounters, tauVariationSigma=1.0, postfix=PF2PATVersion) addJESVariationAnalysis(process, dataVersion, name, "TESMinus", module, additionalCounters, tauVariationSigma=-1.0, postfix=PF2PATVersion) if doJetUnclusteredVariation: # Do all variations beyond TES addJESVariationAnalysis(process, dataVersion, name, "JESPlus", module, additionalCounters, jetVariationSigma=1.0, postfix=PF2PATVersion) addJESVariationAnalysis(process, dataVersion, name, "JESMinus", module, additionalCounters, jetVariationSigma=-1.0, postfix=PF2PATVersion) #addJESVariationAnalysis(process, dataVersion, name, "JERPlus", module, additionalCounters, VariationSigma=1.0, postfix=PF2PATVersion) #addJESVariationAnalysis(process, dataVersion, name, "JERMinus", module, additionalCounters, VariationSigma=-1.0, postfix=PF2PATVersion) addJESVariationAnalysis(process, dataVersion, name, "METPlus", module, additionalCounters, unclusteredVariationSigma=1.0, postfix=PF2PATVersion) addJESVariationAnalysis(process, dataVersion, name, "METMinus", module, additionalCounters, unclusteredVariationSigma=-1.0, postfix=PF2PATVersion)
# configuration of the golden analysis. The fragment below creates the # following histogram directories # signalOptimisationJESPlus05 # signalOptimisationJESMinus05 from HiggsAnalysis.HeavyChHiggsToTauNu.JetEnergyScaleVariation import addJESVariationAnalysis if doJESVariation: # In principle here could be more than two JES variation analyses JESs = "%02d" % int(JESVariation * 100) JESe = "%02d" % int(JESEtaVariation * 100) JESm = "%02d" % int(JESUnclusteredMETVariation * 100) addJESVariationAnalysis( process, "signalOptimisation", "JESPlus" + JESs + "eta" + JESe + "METPlus" + JESm, process.signalOptimisation, additionalCounters, JESVariation, JESEtaVariation, JESUnclusteredMETVariation, ) addJESVariationAnalysis( process, "signalOptimisation", "JESMinus" + JESs + "eta" + JESe + "METPlus" + JESm, process.signalOptimisation, additionalCounters, -JESVariation, JESEtaVariation, JESUnclusteredMETVariation, ) addJESVariationAnalysis(