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)
示例#2
0
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,
    )
示例#3
0
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,
示例#8
0
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)
示例#9
0
# 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(