cfgTools.addCategories(
    diphotonDumper,
    [  ## cuts are applied in cascade
        ## ("all","1"),
        ("EBHighR9",
         "max(abs(leadingPhoton.superCluster.eta),abs(subLeadingPhoton.superCluster.eta))<1.4442"
         "&& min(leadingPhoton.r9,subLeadingPhoton.r9)>0.94", 0),
        ("EBLowR9",
         "max(abs(leadingPhoton.superCluster.eta),abs(subLeadingPhoton.superCluster.eta))<1.4442",
         0),
        ("EEHighR9", "min(leadingPhoton.r9,subLeadingPhoton.r9)>0.94", 0),
        ("EELowR9", "1", 0),
    ],
    variables=[
        "mass",
        "pt",
        "leadPt                   :=leadingPhoton.pt",
        "subleadPt                :=subLeadingPhoton.pt",
        "leadEta                  :=leadingPhoton.eta",
        "subleadEta               :=subLeadingPhoton.eta",
        "leadR9                   :=leadingPhoton.r9",
        "subleadR9                :=subLeadingPhoton.r9",
        "leadScEta                :=leadingPhoton.superCluster.eta",
        "subleadScEta             :=subLeadingPhoton.superCluster.eta",
        "leadPhi                  :=leadingPhoton.phi",
        "subleadPhi               :=subLeadingPhoton.phi",
        "leadCShapeMVA            :=leadingPhoton.userFloat('cShapeMVA')",
        "subleadCShapeMVA         :=subLeadingPhoton.userFloat('cShapeMVA')",
        "minR9                    :=min(leadingPhoton.r9,subLeadingPhoton.r9)",
        "maxEta                   :=max(abs(leadingPhoton.superCluster.eta),abs(subLeadingPhoton.superCluster.eta))",
        "leadBlockChIso   := leadingView.pfChIso03WrtChosenVtx",
        "leadBlockPhoIso  := leadingPhoton.pfPhoIso03",
        "leadRndConeChIso := leadingView.extraChIsoWrtChoosenVtx('rnd03')",
        "leadRndConePhoIso:= leadingPhoton.extraPhoIso('rnd03')",
        "leadPhoIsoEA :=  map( abs(leadingPhoton.superCluster.eta) :: 0.,0.9,1.5,2.0,2.2,3. :: 0.21,0.2,0.14,0.22,0.31 )",
        "subleadPhoIsoEA :=  map( abs(subLeadingPhoton.superCluster.eta) :: 0.,0.9,1.5,2.0,2.2,3. :: 0.21,0.2,0.14,0.22,0.31 )",
        "leadMatchType            :=leadingPhoton.genMatchType",
        "leadGenIso               :=leadingPhoton.userFloat('genIso')",
        "subleadMatchType         :=subLeadingPhoton.genMatchType",
        "subleadGenIso            :=subLeadingPhoton.userFloat('genIso')",
        "leadChIso   := leadingPhoton.egChargedHadronIso",
        "leadPhoIso  := leadingPhoton.egPhotonIso",
        "leadNeutIso := leadingPhoton.egNeutralHadronIso",
        "leadHoE     := leadingPhoton.hadTowOverEm",
        "leadSigmaIeIe := (?leadingPhoton.r9>0.8||leadingPhoton.egChargedHadronIso<20||leadingPhoton.egChargedHadronIso/leadingPhoton.pt<0.3?leadingPhoton.full5x5_sigmaIetaIeta:leadingPhoton.sigmaIetaIeta)",
        "leadPixSeed  := leadingPhoton.hasPixelSeed",
        "leadPassEleVeto := leadingPhoton.passElectronVeto",
        "subleadBlockChIso   := subLeadingView.pfChIso03WrtChosenVtx",
        "subleadBlockPhoIso  := subLeadingPhoton.pfPhoIso03",
        "subleadRndConeChIso := subLeadingView.extraChIsoWrtChoosenVtx('rnd03')",
        "subleadRndConePhoIso:= subLeadingPhoton.extraPhoIso('rnd03')",
        "subleadChIso   := subLeadingPhoton.egChargedHadronIso",
        "subleadPhoIso  := subLeadingPhoton.egPhotonIso",
        "subleadNeutIso := subLeadingPhoton.egNeutralHadronIso",
        "subleadHoE     := subLeadingPhoton.hadTowOverEm",
        "subleadSigmaIeIe := (?subLeadingPhoton.r9>0.8||subLeadingPhoton.egChargedHadronIso<20||subLeadingPhoton.egChargedHadronIso/subLeadingPhoton.pt<0.3?subLeadingPhoton.full5x5_sigmaIetaIeta:subLeadingPhoton.sigmaIetaIeta)",
        "subleadPixSeed := subLeadingPhoton.hasPixelSeed",
        "subleadPassEleVeto := subLeadingPhoton.passElectronVeto",
    ],
    histograms=[
        "mass>>mass(1500,0,15000)", "leadPt>>leadPt(145,100,3000)",
        "subleadPt>>subleadPt(145,100,3000)",
        "leadEta>>leadEta(55,-2.75,2.75)",
        "subleadEta>>subleadEta(55,-2.75,2.75)",
        "leadBlockChIso>>leadBlockChIso(120,-10,50)",
        "leadBlockPhoIso>>leadBlockPhoIso(120,-10,50)",
        "leadChIso>>leadChIso(120,-10,50)",
        "leadPhoIso>>leadPhoIso(120,-10,50)",
        "leadNeutIso>>leadNeutIso(120,-10,50)", "leadHoE>>leadHoE(40,0,0.2)",
        "leadSigmaIeIe>>leadSigmaIeIe(50,0,5.e-2)",
        "leadPixSeed>>leadPixSeed(2,-0.5,1.5)",
        "subleadPassEleVeto>>subleadPassEleVeto(2,-0.5,1.5)",
        "subleadBlockChIso>>subleadBlockChIso(120,-10,50)",
        "subleadBlockPhoIso>>subleadBlockPhoIso(120,-10,50)",
        "subleadChIso>>subleadChIso(120,-10,50)",
        "subleadPhoIso>>subleadPhoIso(120,-10,50)",
        "subleadNeutIso>>subleadNeutIso(120,-10,50)",
        "subleadHoE>>subleadHoE(40,0,0.2)",
        "subleadSigmaIeIe>>subleadSigmaIeIe(50,0,5.e-2)",
        "subleadPixSeed>>subleadPixSeed(2,-0.5,1.5)",
        "subleadPassEleVeto>>subleadPassEleVeto(2,-0.5,1.5)",
        "subleadPt:leadPt>>ptSubVsLead(145,100,3000:145,100,3000)",
        "minR9>>minR9(110,0,1.1)", "maxEta>>maxEta(250,0,2.5)"
    ])
cfgTools.addCategories(process.mumugammaDumper,
                       ## categories definition
                       ## cuts are applied in cascade. Events getting to these categories have already failed the "Reject" selection
                       [("EB","abs(MMG_Photon.superCluster.eta)<1.5",0), ##
                        ("EE","abs(MMG_Photon.superCluster.eta)>1.5",0),##("EE","1",0), ## evereything elese is EB+EE
                        ],
                       ## variables to be dumped in trees/datasets. Same variables for all categories
                       ## if different variables wanted for different categories, can add categorie one by one with cfgTools.addCategory
                       variables=["Mass_mmg            :=mass",
                                  "Mass_mumu           :=DiMuPtr.mass", 
                                  "PT_mumu             :=DiMuPtr.pt", 
                                  "leadPt              :=DiMuPtr.leadingMuon.pt",
                                  "subleadPt           :=DiMuPtr.subleadingMuon.pt",
                                  "photonPT            :=MMG_Photon.pt",
                                  #"photonMVAOutput     :=MMG_Photon.PhoIdMvaDWrtVtx(Vertex)",
                                  "photonSCeta         :=MMG_Photon.superCluster.eta"
                                  #"evtrho              :=rho"
                                  ],
                         ## histograms to be plotted. 
                       ## the variables need to be defined first
                       histograms=["Mass_mmg>>mass(160,10,170)",
                                   "Mass_mumu>>mass_mumu(80,20,100)",
                                   "PT_mumu>>pt_mumu(100,0,100)",
                                   "Mass_mmg:Mass_mumu>>MmmgVsMmm(120,30,150:120,30,150)", 
                                   "subleadPt:leadPt>>ptSubVsLead(200,10,210:200,10,210)",
                                   #"evtrho>>eventRho(50, 0, 50)",
                                   "photonPT>>photonpt(100,10,110)",
                                   #"photonMVAOutput>>IDmva(80,0.2,1.0)",
                                   "photonSCeta>>scEta(50,-2.5,2.5)"
                                   #"maxEta>>maxEta[0.,0.1,0.2,0.3,0.4,0.6,0.8,1.0,1.2,1.4442,1.566,1.7,1.8,2.,2.2,2.3,2.5]"
                                   ]
                       )
        cats += [("VBFDiJet_%s"%syst,"leadingJet.pt>0&&%s"%systcutstring,0)]#,
                 #("excluded_%s"%syst,systcutstring,0)]
else:
    cats = [
                    ("VBFDiJet","leadingJet.pt>0",0)#,
                    #("excluded","1",0)
                    ]

cats += [
    ("VBFDiJet","leadingJet.pt>0",0)#,
    #("excluded","1",0)
    ]

cfgTools.addCategories(process.vbfTagDumper,
                       cats,
                       variables  = all_variables,
                       histograms = []
)

print cats


#process.vbfTagDumper.nameTemplate ="$PROCESS_$SQRTS_$LABEL_$SUBCAT_$CLASSNAME"
process.vbfTagDumper.nameTemplate = "$PROCESS_$SQRTS_$CLASSNAME_$SUBCAT_$LABEL"

customize.setDefault("maxEvents" , -1     ) # max-number of events
customize.setDefault("targetLumi", 1.00e+3  ) # define integrated lumi
customize(process)

from HLTrigger.HLTfilters.hltHighLevel_cfi import hltHighLevel
process.hltHighLevel = hltHighLevel.clone(HLTPaths = cms.vstring("HLT_Diphoton30_18_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass95_v1") )
cfgTools.addCategories(process.vbfTagDumper,
                       ## categories definition                                                                                                                                                                                  
                       [("all","1",0)
                    ],
                       ## variables to be dumped in trees/datasets. Same variables for all categories                                                                                                                            
                       variables=dipho_variables+
                       ["dRphoLeadJ    := min(deltaR(leadingJet.eta, leadingJet.phi, diPhoton.leadingPhoton.eta, diPhoton.leadingPhoton.phi), deltaR(leadingJet.eta, leadingJet.phi, diPhoton.subLeadingPhoton.eta, diPhoton.subLeadingPhoton.phi))",
                        "dRphoSubleadJ := min(deltaR(subLeadingJet.eta, subLeadingJet.phi, diPhoton.leadingPhoton.eta, diPhoton.leadingPhoton.phi), deltaR(subLeadingJet.eta, subLeadingJet.phi, diPhoton.subLeadingPhoton.eta, diPhoton.subLeadingPhoton.phi))",
                        "leadJPt       := leadingJet.pt",
                        "leadJEta      := leadingJet.eta",
                        "subleadJPt    := subLeadingJet.pt",
                        "subleadJEta   := leadingJet.eta",
                        "Mjj           := sqrt((leadingJet.energy+subLeadingJet.energy)^2-(leadingJet.px+subLeadingJet.px)^2-(leadingJet.py+subLeadingJet.py)^2-(leadingJet.pz+subLeadingJet.pz)^2)",
                        "dijet_dEta    := abs(leadingJet.eta - subLeadingJet.eta)",
                        "dijet_dPhi    := deltaPhi(leadingJet.phi, subLeadingJet.phi)",
                        "dijet_Zep     := VBFMVA.dijet_Zep",
                        "dijet_MVA     := VBFMVA.VBFMVAValue",
                        "vbfcat        := categoryNumber",
                        "genZ           :=tagTruth().genPV().z",
                        "vtxZ           :=diPhoton().vtx().z",
                        "dZ            :=abs(tagTruth().genPV().z-diPhoton().vtx().z)",
                        "leadQuarkPt                  := tagTruth().pt_Q1",
                        "matchingGenJetToLeadPt    := tagTruth().pt_genPartMatchingToJ1"
                        ],
                       histograms=["CMS_hgg_mass>>mass(160,100,180)",
                                   "subleadPt:leadPt>>ptLeadvsSub(180,20,200:180,20,200)",
                                   "diphoMVA>>diphoMVA(50,0,1)",
                                   "maxEta>>maxEta[0.,0.1,0.2,0.3,0.4,0.6,0.8,1.0,1.2,1.4442,1.566,1.7,1.8,2.,2.2,2.3,2.5]",
                                   "subleadJetPt:leadJetPt>>JetptLeadvsSub(8,20,100:8,20,100)",
                                   "VBFMVA>>VBFMVA(50,0,1)"
                                   ]
                       )
Beispiel #5
0
cfgTools.addCategories(
    process.dumper, [("All", "1", 0)],
    variables=[
        'mass', 'leadEnergy := leadingPhoton.p4.energy',
        'leadInitialEnergy := leadingPhoton.energyAtStep("initial")',
        'leadEnergy_corr := leadingPhoton.userFloat("afterDiffCorr_regr_E")',
        'leadEnergy_uncorr := leadingPhoton.userFloat("reco_E")',
        'leadPhoId := leadingView.phoIdMvaWrtChosenVtx',
        'leadPt := leadingPhoton.pt',
        'leadEta := leadingPhoton.superCluster().eta',
        'leadPhi := leadingPhoton.phi', 'leadR9 := leadingPhoton.full5x5_r9',
        'leadR9_uncorr := ? leadingPhoton.hasUserFloat("uncorr_r9")>0 ? leadingPhoton.userFloat("uncorr_r9") : -1.',
        'leadS4 := leadingPhoton.s4',
        'leadS4_uncorr := ? leadingPhoton.hasUserFloat("uncorr_s4")>0 ? leadingPhoton.userFloat("uncorr_s4") : -1',
        'leadSieie := leadingPhoton.full5x5_sigmaIetaIeta',
        'leadSieie_uncorr := ? leadingPhoton.hasUserFloat("uncorr_sieie")>0 ? leadingPhoton.userFloat("uncorr_sieie") : -1',
        'leadSieip := leadingPhoton.sieip',
        'leadSieip_uncorr := ? leadingPhoton.hasUserFloat("uncorr_sieip")>0 ? leadingPhoton.userFloat("uncorr_sieip") : -1',
        'leadEtaWidth := ? leadingPhoton.hasUserFloat("etaWidth")>0 ? leadingPhoton.userFloat("etaWidth") : -1',
        'leadEtaWidth_uncorr := ? leadingPhoton.hasUserFloat("uncorr_etaWidth")>0 ? leadingPhoton.userFloat("uncorr_etaWidth") : -1',
        'leadPhiWidth := ? leadingPhoton.hasUserFloat("phiWidth")>0 ? leadingPhoton.userFloat("phiWidth") : -1',
        'leadPhiWidth_uncorr := ? leadingPhoton.hasUserFloat("uncorr_phiWidth")>0 ? leadingPhoton.userFloat("uncorr_phiWidth") : -1',
        'leadPhoIso := leadingPhoton.pfPhoIso03',
        'leadPhoIso_uncorr := ? leadingPhoton.hasUserFloat("uncorr_pfPhoIso03")>0 ? leadingPhoton.userFloat("uncorr_pfPhoIso03") : -1',
        'subleadEnergy := subLeadingPhoton.p4.energy',
        'subleadInitialEnergy := subLeadingPhoton.energyAtStep("initial")',
        'subleadEnergy_corr := subLeadingPhoton.userFloat("afterDiffCorr_regr_E")',
        'subleadEnergy_uncorr := subLeadingPhoton.userFloat("reco_E")',
        'subleadPhoId := subLeadingView.phoIdMvaWrtChosenVtx',
        'subleadPt := subLeadingPhoton.pt',
        'subleadEta := subLeadingPhoton.superCluster().eta',
        'subleadPhi := subLeadingPhoton.phi',
        'subleadR9 := subLeadingPhoton.full5x5_r9',
        'subleadR9_uncorr := ? subLeadingPhoton.hasUserFloat("uncorr_r9")>0 ? subLeadingPhoton.userFloat("uncorr_r9") : -1',
        'subleadS4 := subLeadingPhoton.s4',
        'subleadS4_uncorr := ? subLeadingPhoton.hasUserFloat("uncorr_s4")>0 ? subLeadingPhoton.userFloat("uncorr_s4") : -1',
        'subleadSieie := subLeadingPhoton.full5x5_sigmaIetaIeta',
        'subleadSieie_uncorr := ? subLeadingPhoton.hasUserFloat("uncorr_sieie")>0 ? subLeadingPhoton.userFloat("uncorr_sieie") : -1',
        'subleadSieip := subLeadingPhoton.sieip',
        'subleadSieip_uncorr := ? subLeadingPhoton.hasUserFloat("uncorr_sieip")>0 ? subLeadingPhoton.userFloat("uncorr_sieip") : -1',
        'subleadEtaWidth := ? subLeadingPhoton.hasUserFloat("etaWidth")>0 ? subLeadingPhoton.userFloat("etaWidth") : -1',
        'subleadEtaWidth_uncorr := ? subLeadingPhoton.hasUserFloat("uncorr_etaWidth")>0 ? subLeadingPhoton.userFloat("uncorr_etaWidth") : -1',
        'subleadPhiWidth := ? subLeadingPhoton.hasUserFloat("phiWidth")>0 ? subLeadingPhoton.userFloat("phiWidth") : -1',
        'subleadPhiWidth_uncorr := ? subLeadingPhoton.hasUserFloat("uncorr_phiWidth")>0 ? subLeadingPhoton.userFloat("uncorr_phiWidth") : -1',
        'subleadPhoIso := subLeadingPhoton.pfPhoIso03',
        'subleadPhoIso_uncorr := ? subLeadingPhoton.hasUserFloat("uncorr_pfPhoIso03")>0 ? subLeadingPhoton.userFloat("uncorr_pfPhoIso03") : -1'
    ],
    histograms=[])
process.vertexViewDumper.dumpTrees = True
process.vertexViewDumper.dumpWorkspace = False
process.vertexViewDumper.quietRooFit = True

# interestng categories
cfgTools.addCategories(
    process.vertexViewDumper,
    ## categories definition
    ## cuts are applied in cascade. Events getting to these categories have already failed the "Reject" selection
    [("trueVertexes", "isClosestToGen", 0), ("puVertexes", "!isClosestToGen", 0)],
    ## variables to be dumped in trees/datasets. Same variables for all categories
    ## if different variables wanted for different categories, can add categorie one by one with cfgTools.addCategory
    variables=[
        "logSumPt2",
        "ptBal",
        "ptAsym",
        "nConv",
        "pullConv",
        "vx := pos.x",
        "vy := pos.y",
        "vx := pos.y",
        "dZtoGen",
    ],
    ## histograms to be plotted.
    ## the variables need to be defined first
    histograms=["dZtoGen>>dZtoGen(100,-10.,10.)", "logSumPt2>>logSumPt2(100,-2,10)"],
)


process.p1 = cms.Path(process.kinPreselDiPhotons * process.flashggSingleVertexViews * process.vertexViewDumper)

import flashgg.Taggers.dumperConfigTools as cfgTools
process.load("flashgg.Taggers.diphotoMVAWithZeeDumper_cff")
process.load("flashgg.Taggers.photonDumper_cfi")
process.load("flashgg.Taggers.diphotonDumper_cfi")
process.diphotonDumper.src = cms.InputTag("flashggZeeDiPhotons")

process.TFileService = cms.Service("TFileService",
                                   fileName=cms.string("histo.root"),
                                   closeFileFast=cms.untracked.bool(True))

#DIPHOTON MVA
cfgTools.addCategories(process.DiPhotonWithZeeMVADumper, [
    ("All", "1", 0),
],
                       variables=["dipho_mva:=mvaValue"],
                       histograms=[
                           "dipho_mva>>dipho_mva(100,-1,1)",
                       ])
# split tree, histogram and datasets by process
process.DiPhotonWithZeeMVADumper.nameTemplate = "zeevalidation_$SQRTS_$LABEL_$SUBCAT"

#cfgTools.addCategories(process.photonDumper,
#                       ## categories EB, EE
#                       [("EB", "abs(superCluster.eta)<1.479", 0),
#                        ("EE", "abs(superCluster.eta)>1.566",0)],
#                       variables=["chIsoRv := getpfChgIsoWrtChosenVtx03",
#                                  "chIsoWv := getpfChgIsoWrtWorstVtx03",
#                                  "phIso := getpfPhoIso03",
#                                  #"rho",
#                                  "sieie := full5x5_sigmaIetaIeta",
process.vbfTagDumper.dumpHistos = True
process.vbfTagDumper.dumpWorkspace = False

# use the trigger-diphoton-preselection
from PhysicsTools.PatAlgos.tools.helpers import massSearchReplaceAnyInputTag
massSearchReplaceAnyInputTag(process.flashggTagSequence,
                             cms.InputTag("flashggDiPhotons"),
                             cms.InputTag("flashggPreselectedDiPhotons"))

# get the variable list
import flashgg.Taggers.VBFTagVariables as var
all_variables = var.dijet_variables + var.dipho_variables + var.truth_variables

cfgTools.addCategories(process.vbfTagDumper,
                       [("VBFDiJet", "leadingJet.pt>0", 0),
                        ("excluded", "1", 0)],
                       variables=all_variables,
                       histograms=[])

#process.vbfTagDumper.nameTemplate ="$PROCESS_$SQRTS_$LABEL_$SUBCAT_$CLASSNAME"
process.vbfTagDumper.nameTemplate = "$PROCESS_$SQRTS_$CLASSNAME_$SUBCAT_$LABEL"

from flashgg.MetaData.JobConfig import customize
customize.setDefault("maxEvents", 1000)  # max-number of events
customize.setDefault("targetLumi", 2.11e+3)  # define integrated lumi
customize(process)

process.p1 = cms.Path(
    process.flashggTagSequence *
    #    process.flashggTagTester* # Uncommment if you what to test VBFtag
    process.vbfTagDumper)
# process.diphotonDumper.src = cms.InputTag("flashggDiPhotonSystematics")
process.diphotonDumper.src = cms.InputTag("flashggUpdatedIdMVADiPhotons")
# process.diphotonDumper.src = cms.InputTag("flashggDiPhotons")
process.diphotonDumper.dumpHistos = False
process.diphotonDumper.dumpTrees = True
process.diphotonDumper.dumpGlobalVariables = cms.untracked.bool(True)
process.diphotonDumper.globalVariables = process.globalVariables

process.TFileService = cms.Service(
    "TFileService", fileName=cms.string("histo.root"), closeFileFast=cms.untracked.bool(True)
)

# DIPHOTON MVA
cfgTools.addCategories(
    process.DiPhotonWithZeeMVADumper,
    [("All", "1", 0)],
    variables=["dipho_mva:=mvaValue"],
    histograms=["dipho_mva>>dipho_mva(100,-1,1)"],
)
# split tree, histogram and datasets by process
process.DiPhotonWithZeeMVADumper.nameTemplate = "zeevalidation_$SQRTS_$LABEL_$SUBCAT"


cfgTools.addCategories(
    process.diphotonDumper,
    ## categories definition
    ## cuts are applied in cascade. Events getting to these categories have already failed the "Reject" selection
    [
        (
            "All",
            """
(abs(leadingPhoton.superCluster.eta) < 2.5 && abs(subLeadingPhoton.superCluster.eta) < 2.5 && leadingPhoton.passElectronVeto==0) &&
                       "&& dijet_Mjj     > 250 && leadPho_PToM  > 0.5")

cfgTools.addCategories(process.VBFMVADumperNew,
                       [
                           ("VBFDiJet"           ,"dijet_LeadJPt > 0",0),
                           ("PreselectedVBFDiJet",preselection_cut   ,0),
                           ("expluded","1",0) # really importent to avoid having an error
                       ],
                       variables=[
                           "dijet_abs_dEta   :=  dijet_abs_dEta   ",
                           "dijet_leadEta    :=  dijet_leadEta    ",
                           "dijet_subleadEta :=  dijet_subleadEta ",
                           "dijet_LeadJPt    :=  dijet_LeadJPt    ",
                           "dijet_SubJPt     :=  dijet_SubJPt     ",
                           "dijet_Zep        :=  dijet_Zep        ",
                           "dijet_Mjj        :=  dijet_Mjj        ",
                           "dipho_PToM       :=  dipho_PToM       ",
                           "leadPho_PToM     :=  leadPho_PToM     ",
                           "sublPho_PToM     :=  sublPho_PToM     ",
                           "dijet_dPhi_trunc :=  dijet_dPhi_trunc ",
                           "vbfMvaResult_value      := vbfMvaResult_value",
                           "vbfMvaResult_value_bdt  := vbfMvaResult_value_bdt",
                           "vbfMvaResult_value_bdtg := vbfMvaResult_value_bdtg",
                       ],
                       histograms=[
                           "vbfMvaResult_value>>outputBDT(400,-1,1)",
                           "vbfMvaResult_value_bdt>>output_bdt(400,-1,1)",
                           "vbfMvaResult_value_bdtg>>output_bdtg(400,-1,1)",
                       ]
)
# split tree, histogram and datasets by process
process.VBFMVADumperNew.nameTemplate ="$PROCESS_$SQRTS_$LABEL_$SUBCAT"
Beispiel #11
0
process.diphotonDumper.src = cms.InputTag("flashggUpdatedIdMVADiPhotons")
#process.diphotonDumper.src = cms.InputTag("flashggDiPhotons")
process.diphotonDumper.dumpHistos = False
process.diphotonDumper.dumpTrees = True
process.diphotonDumper.dumpGlobalVariables = cms.untracked.bool(True)
process.diphotonDumper.globalVariables = process.globalVariables

process.TFileService = cms.Service("TFileService",
                                   fileName=cms.string("histo.root"),
                                   closeFileFast=cms.untracked.bool(True))

#DIPHOTON MVA
cfgTools.addCategories(process.DiPhotonWithZeeMVADumper, [
    ("All", "1", 0),
],
                       variables=["dipho_mva:=mvaValue"],
                       histograms=[
                           "dipho_mva>>dipho_mva(100,-1,1)",
                       ])
# split tree, histogram and datasets by process
process.DiPhotonWithZeeMVADumper.nameTemplate = "zeevalidation_$SQRTS_$LABEL_$SUBCAT"

cfgTools.addCategories(
    process.diphotonDumper,
    ## categories definition
    ## cuts are applied in cascade. Events getting to these categories have already failed the "Reject" selection
    [("All", """
(abs(leadingPhoton.superCluster.eta) < 2.5 && abs(subLeadingPhoton.superCluster.eta) < 2.5 && leadingPhoton.passElectronVeto==0) &&
                                        (leadingPhoton.pt > 33) &&
                                        (leadingPhoton.hadronicOverEm < 0.1) &&
                                        ((leadingPhoton.full5x5_r9 > 0.5 && leadingPhoton.isEB) || (leadingPhoton.full5x5_r9 > 0.8 && leadingPhoton.isEE)) &&
Beispiel #12
0
process.VBFMVADumperNew.dumpTrees = True
process.VBFMVADumperNew.dumpWorkspace = False
process.VBFMVADumperNew.quietRooFit = True

cfgTools.addCategories(
    process.VBFMVADumperNew,
    [  ## cuts are applied in cascade
        ("All", "dipho_PToM>=0", 0),
    ],
    variables=[
        "dijet_abs_dEta   :=  dijet_abs_dEta  ",
        "dijet_leadEta    :=  dijet_leadEta  ",
        "dijet_subleadEta :=  dijet_subleadEta  ",
        "dijet_LeadJPt    :=  dijet_LeadJPt    ",
        "dijet_SubJPt     :=  dijet_SubJPt     ",
        "dijet_Zep        :=  dijet_Zep        ",
        "dijet_Mjj        :=  dijet_Mjj        ",
        "dipho_PToM       :=  dipho_PToM     ",
        "leadPho_PToM     :=  leadPho_PToM     ",
        "sublPho_PToM     :=  sublPho_PToM     ",
        "dijet_dPhi_trunc :=  dijet_dPhi_trunc ",
        "vbfMvaResult_value := vbfMvaResult_value",
    ],
    histograms=[
        #"mvaresult>>VBFMVAValue(100,-1000,1000)",
        "vbfMvaResult_value>>VBFMVAValue(100,-1,1)",
        #"VBFMVAValue>>VBFMVAValue2(100,-1,1)",
    ])
# split tree, histogram and datasets by process
process.VBFMVADumperNew.nameTemplate = "$PROCESS_$SQRTS_$LABEL_$SUBCAT"

process.load("flashgg/Taggers/VBFDiPhoDiJetMVADumperNew_cff")
cfgTools.addCategories(diphotonDumper,
                       [## cuts are applied in cascade
                        ## ("all","1"),
                        ("EBHighR9","max(abs(leadingPhoton.superCluster.eta),abs(subLeadingPhoton.superCluster.eta))<1.4442"
                         "&& min(leadingPhoton.r9,subLeadingPhoton.r9)>0.94",0),
                        ("EBLowR9","max(abs(leadingPhoton.superCluster.eta),abs(subLeadingPhoton.superCluster.eta))<1.4442",0),
                        ("EEHighR9","min(leadingPhoton.r9,subLeadingPhoton.r9)>0.94",0),
                        ("EELowR9","1",0),
                        ],
                       variables=["mass","pt", 
                                  "leadPt                   :=leadingPhoton.pt",
                                  "subleadPt                :=subLeadingPhoton.pt",
                                  "leadEta                  :=leadingPhoton.eta",
                                  "subleadEta               :=subLeadingPhoton.eta",
                                  "leadR9                   :=leadingPhoton.r9",
                                  "subleadR9                :=subLeadingPhoton.r9",
                                  "leadScEta                :=leadingPhoton.superCluster.eta",
                                  "subleadScEta             :=subLeadingPhoton.superCluster.eta",
                                  "leadPhi                  :=leadingPhoton.phi",
                                  "subleadPhi               :=subLeadingPhoton.phi",
                                  "leadCShapeMVA            :=leadingPhoton.userFloat('cShapeMVA')",
                                  "subleadCShapeMVA         :=subLeadingPhoton.userFloat('cShapeMVA')",
                                  "minR9                    :=min(leadingPhoton.r9,subLeadingPhoton.r9)",
                                  "maxEta                   :=max(abs(leadingPhoton.superCluster.eta),abs(subLeadingPhoton.superCluster.eta))",
                                  
                                  "leadBlockChIso   := leadingView.pfChIso03WrtChosenVtx", 
                                  "leadBlockPhoIso  := leadingPhoton.pfPhoIso03", 
                                  "leadRndConeChIso := leadingView.extraChIsoWrtChoosenVtx('rnd03')",
                                  "leadRndConePhoIso:= leadingPhoton.extraPhoIso('rnd03')",
                                  
                                  "leadPhoIsoEA :=  map( abs(leadingPhoton.superCluster.eta) :: 0.,0.9,1.5,2.0,2.2,3. :: 0.21,0.2,0.14,0.22,0.31 )",
                                  "subleadPhoIsoEA :=  map( abs(subLeadingPhoton.superCluster.eta) :: 0.,0.9,1.5,2.0,2.2,3. :: 0.21,0.2,0.14,0.22,0.31 )",
                                  
                                  "leadMatchType            :=leadingPhoton.genMatchType",
                                  "leadGenIso               :=leadingPhoton.userFloat('genIso')",
                                  "subleadMatchType         :=subLeadingPhoton.genMatchType",
                                  "subleadGenIso            :=subLeadingPhoton.userFloat('genIso')",
                                  
                                  "leadChIso   := leadingPhoton.egChargedHadronIso", 
                                  "leadPhoIso  := leadingPhoton.egPhotonIso", 
                                  "leadNeutIso := leadingPhoton.egNeutralHadronIso",
                                  "leadHoE     := leadingPhoton.hadTowOverEm",
                                  "leadSigmaIeIe := (?leadingPhoton.r9>0.8||leadingPhoton.egChargedHadronIso<20||leadingPhoton.egChargedHadronIso/leadingPhoton.pt<0.3?leadingPhoton.full5x5_sigmaIetaIeta:leadingPhoton.sigmaIetaIeta)",
                                  "leadPixSeed  := leadingPhoton.hasPixelSeed",
                                  "leadPassEleVeto := leadingPhoton.passElectronVeto",
                                  
                                  
                                  "subleadBlockChIso   := subLeadingView.pfChIso03WrtChosenVtx", 
                                  "subleadBlockPhoIso  := subLeadingPhoton.pfPhoIso03", 
                                  "subleadRndConeChIso := subLeadingView.extraChIsoWrtChoosenVtx('rnd03')",
                                  "subleadRndConePhoIso:= subLeadingPhoton.extraPhoIso('rnd03')",
                                  
                                  "subleadChIso   := subLeadingPhoton.egChargedHadronIso", 
                                  "subleadPhoIso  := subLeadingPhoton.egPhotonIso", 
                                  "subleadNeutIso := subLeadingPhoton.egNeutralHadronIso",
                                  "subleadHoE     := subLeadingPhoton.hadTowOverEm",
                                  "subleadSigmaIeIe := (?subLeadingPhoton.r9>0.8||subLeadingPhoton.egChargedHadronIso<20||subLeadingPhoton.egChargedHadronIso/subLeadingPhoton.pt<0.3?subLeadingPhoton.full5x5_sigmaIetaIeta:subLeadingPhoton.sigmaIetaIeta)",
                                  "subleadPixSeed := subLeadingPhoton.hasPixelSeed",
                                  "subleadPassEleVeto := subLeadingPhoton.passElectronVeto",
                                  ],
                       histograms=["mass>>mass(1500,0,15000)",
                                   "leadPt>>leadPt(145,100,3000)",
                                   "subleadPt>>subleadPt(145,100,3000)",
                                   "leadEta>>leadEta(55,-2.75,2.75)",
                                   "subleadEta>>subleadEta(55,-2.75,2.75)",

                                   "leadBlockChIso>>leadBlockChIso(120,-10,50)",
                                   "leadBlockPhoIso>>leadBlockPhoIso(120,-10,50)",
                                   "leadChIso>>leadChIso(120,-10,50)",
                                   "leadPhoIso>>leadPhoIso(120,-10,50)",
                                   "leadNeutIso>>leadNeutIso(120,-10,50)",
                                   "leadHoE>>leadHoE(40,0,0.2)",
                                   "leadSigmaIeIe>>leadSigmaIeIe(50,0,5.e-2)",
                                   "leadPixSeed>>leadPixSeed(2,-0.5,1.5)",
                                   "subleadPassEleVeto>>subleadPassEleVeto(2,-0.5,1.5)",
                                   
                                   "subleadBlockChIso>>subleadBlockChIso(120,-10,50)",
                                   "subleadBlockPhoIso>>subleadBlockPhoIso(120,-10,50)",
                                   "subleadChIso>>subleadChIso(120,-10,50)",
                                   "subleadPhoIso>>subleadPhoIso(120,-10,50)",
                                   "subleadNeutIso>>subleadNeutIso(120,-10,50)",
                                   "subleadHoE>>subleadHoE(40,0,0.2)",
                                   "subleadSigmaIeIe>>subleadSigmaIeIe(50,0,5.e-2)",
                                   "subleadPixSeed>>subleadPixSeed(2,-0.5,1.5)",
                                   "subleadPassEleVeto>>subleadPassEleVeto(2,-0.5,1.5)",
                                   
                                   "subleadPt:leadPt>>ptSubVsLead(145,100,3000:145,100,3000)",
                                   "minR9>>minR9(110,0,1.1)",
                                   "maxEta>>maxEta(250,0,2.5)"
                                   ]
                       )
Beispiel #14
0
process.TTHDiLeptonTagDumper.nameTemplate = cms.untracked.string("$PROCESS_$SQRTS_$CLASSNAME_$SUBCAT_$LABEL")

#from PhysicsTools.PatAlgos.tools.helpers import massSearchReplaceAnyInputTag
#massSearchReplaceAnyInputTag(process.flashggTagSequence,cms.InputTag("flashggDiPhotons"),cms.InputTag("flashggPreselectedDiPhotons"))

import flashgg.Taggers.ttHTagVariables as var
if customize.processId == "Data":
	variables_ = var.generic_variables + var.dipho_variables
else:
	variables_ = var.generic_variables + var.dipho_variables


cfgTools.addCategories(process.TTHDiLeptonTagDumper,
                       ## categories definition  
			[	("all","1",0)
			],
			variables = variables_,
			histograms = []
                     )



process.TTHLeptonicDumper = createTagDumper("TTHLeptonicTag")
#process.load("flashgg.Taggers.tthDumper_cfi")
#process.flashggMuMuGamma.PhotonTag=cms.InputTag('flashggUpdatedIdMVAPhotons')
process.TTHLeptonicDumper.dumpTrees = True
process.TTHLeptonicDumper.dumpHistos = False
process.TTHLeptonicDumper.dumpWorkspace = False
process.TTHLeptonicDumper.nameTemplate = cms.untracked.string("$PROCESS_$SQRTS_$CLASSNAME_$SUBCAT_$LABEL")

#from PhysicsTools.PatAlgos.tools.helpers import massSearchReplaceAnyInputTag
Beispiel #15
0
process.DiPhotonMVADumperNew.dumpTrees = True
process.DiPhotonMVADumperNew.dumpWorkspace = False
process.DiPhotonMVADumperNew.quietRooFit = True

cfgTools.addCategories(process.DiPhotonMVADumperNew,
	[## cuts are applied in cascade
	 ("All","1",0)
	],
	variables=[
	"leadptom := leadptom ",
	"subleadptom := subleadptom ",
	"leadmva := leadmva ",
	"subleadmva := subleadmva ",
	"leadeta := leadeta ",
	"subleadeta := subleadeta ",
	"sigmarv := sigmarv",
	"sigmawv := sigmawv",
	"CosPhi := CosPhi",
	"vtxprob := vtxprob",
	"result := result",
	],
	histograms=[
	"result>>DiPhotonMVAValue(100,-1,1)",
	]
	)

# split tree, histogram and datasets by process
process.DiPhotonMVADumperNew.nameTemplate = "$PROCESS_$SQRTS_$LABEL_$SUBCAT"
process.load("flashgg/Taggers/DiPhotonMVADumper_cff")
process.DiPhotonMVADumper.dumpTrees = True
Beispiel #16
0
    "subleadEta       := diPhoton.subLeadingPhoton.eta",
    "subleadPhi       := diPhoton.subLeadingPhoton.phi",
    "sublead_sieie    := diPhoton.subLeadingPhoton.sigmaIetaIeta",
    "sublead_hoe      := diPhoton.subLeadingPhoton.hadronicOverEm",
    "sublead_sigmaEoE := diPhoton.subLeadingPhoton.sigEOverE",
    "sublead_ptoM     := diPhoton.subLeadingPhoton.pt/diPhoton.mass",
    "subleadR9        := diPhoton.subLeadingPhoton.r9",
    "leadIDMVA        := diPhoton.leadingView.phoIdMvaWrtChosenVtx",
    "subleadIDMVA     := diPhoton.subLeadingView.phoIdMvaWrtChosenVtx",
]

cfgTools.addCategories(
    process.untaggedDumper,
    ## categories definition
    [("all", "1", 0)],
    ## variables to be dumped in trees/datasets. Same variables for all categories
    variables=dipho_variables,

    ## histograms
    histograms=[])

## VBF ##
cfgTools.addCategories(
    process.vbfTagDumper,
    ## categories definition
    [("all", "1", 0)],
    ## variables to be dumped in trees/datasets. Same variables for all categories
    variables=dipho_variables + [
        "dRphoLeadJ    := min(deltaR(leadingJet.eta, leadingJet.phi, diPhoton.leadingPhoton.eta, diPhoton.leadingPhoton.phi), deltaR(leadingJet.eta, leadingJet.phi, diPhoton.subLeadingPhoton.eta, diPhoton.subLeadingPhoton.phi))",
        "dRphoSubleadJ := min(deltaR(subLeadingJet.eta, subLeadingJet.phi, diPhoton.leadingPhoton.eta, diPhoton.leadingPhoton.phi), deltaR(subLeadingJet.eta, subLeadingJet.phi, diPhoton.subLeadingPhoton.eta, diPhoton.subLeadingPhoton.phi))",
        "leadJPt       := leadingJet.pt",
                                   fileName = cms.string("test.root")
)


#
# analysis configuration
#

import flashgg.Taggers.dumperConfigTools as cfgTools
from flashgg.Taggers.genDiphotonDumper_cfi import genDiphotonDumper
cfgTools.addCategories(genDiphotonDumper,
                       [("EB","max(abs(leadingPhoton.eta),abs(subLeadingPhoton.eta))<1.4442",0),
                        ("EE","1",0)
                        ],
                       variables=["genMass := mass","pt",
                                  "genLeadPt := leadingPhoton.pt",
                                  "genSubeadPt := subLeadingPhoton.pt",
                                  ],
                       histograms=["genMass>>genmass(1500,0,15000)",
                                   ]
                       )


from diphotons.Analysis.DiPhotonAnalysis import DiPhotonAnalysis
analysis = DiPhotonAnalysis(None,
                            massCut=customize.massCut,ptLead=customize.ptLead,ptSublead=customize.ptSublead,scaling=customize.scaling, ## kinematic cuts
                            genIsoDefinition=("genIso",10.),
                            dataTriggers=[],
                            mcTriggers=[],
                            removeEEEE=customize.removeEEEE
                            )
Beispiel #18
0
cfgTools.addCategories(
    process.tthLeptonicTagDumper,
    ## categories definition
    [("all", "1", 0)],
    ## variables to be dumped in trees/datasets. Same variables for all categories
    variables=dipho_variables + [
        "n_ele    := electrons.size",
        "ele1_pt  := ?(electrons.size>0)? electrons.at(0).pt : -1",
        "ele2_pt  := ?(electrons.size>1)? electrons.at(1).pt : -1",
        "ele1_eta  := ?(electrons.size>0)? electrons.at(0).eta : -999",
        "ele2_eta  := ?(electrons.size>1)? electrons.at(1).eta : -999",
        "ele1_phi  := ?(electrons.size>0)? electrons.at(0).phi : -999",
        "ele2_phi  := ?(electrons.size>1)? electrons.at(1).phi : -999",
        "ele1_energy  := ?(electrons.size>0)? electrons.at(0).energy : -999",
        "ele2_energy  := ?(electrons.size>1)? electrons.at(1).energy : -999",
        "n_muons  := muons.size",
        "muon1_pt := ?(muons.size>0)? muons.at(0).pt : -1",
        "muon2_pt := ?(muons.size>1)? muons.at(1).pt : -1",
        "muon1_eta := ?(muons.size>0)? muons.at(0).eta : -999",
        "muon2_eta := ?(muons.size>1)? muons.at(1).eta : -999",
        "muon1_phi := ?(muons.size>0)? muons.at(0).phi : -999",
        "muon2_phi := ?(muons.size>1)? muons.at(1).phi : -999",
        "muon1_energy := ?(muons.size>0)? muons.at(0).energy : -999",
        "muon2_energy := ?(muons.size>1)? muons.at(1).energy : -999",
        "n_bjets  := bJets.size",
        "n_jets   := jets.size",
        #"bjet1_pt := bJets.at(0).pt",
        #"bjet2_pt := ?bJets.size>1? bJets.at(1).pt : -1",
        #"bjet1_csv:= bJets.at(0).bDiscriminator('pfCombinedInclusiveSecondaryVertexV2BJetTags')",
        #"bjet2_csv:= ?bJets.size>1? bJets.at(1).bDiscriminator('pfCombinedInclusiveSecondaryVertexV2BJetTags') : -1",
        "Mjj      := ?(jets.size>1)?" +
        "sqrt((jets.at(0).energy+jets.at(1).energy)^2-(jets.at(0).px+jets.at(1).px)^2-(jets.at(0).py+jets.at(1).py)^2-(jets.at(0).pz+jets.at(1).pz)^2)"
        + ": -1",
        "MetPt  := MetPt",
        "MetPhi := MetPhi",
        "mT     := MT",
        "tthMVA := mvaRes",
        "jet_pt1                :=  ? jets.size()>0 ? jets[0].pt() : -100 ",
        "jet_eta1               :=  ? jets.size()>0 ? jets[0].eta() : -100 ",
        "jet_phi1               :=  ? jets.size()>0 ? jets[0].phi() : -100 ",
        "jet_bdiscriminant1     :=  ? jets.size()>0 ? jets[0].bDiscriminator('pfDeepCSVJetTags:probb') : -100",
        "jet_pt2                :=  ? jets.size()>1 ? jets[1].pt() : -100 ",
        "jet_eta2               :=  ? jets.size()>1 ? jets[1].eta() : -100 ",
        "jet_phi2               :=  ? jets.size()>1 ? jets[1].phi() : -100 ",
        "jet_bdiscriminant2     :=  ? jets.size()>1 ? jets[1].bDiscriminator('pfDeepCSVJetTags:probb') : -100",
        "jet_pt3                :=  ? jets.size()>2 ? jets[2].pt() : -100 ",
        "jet_eta3               :=  ? jets.size()>2 ? jets[2].eta() : -100 ",
        "jet_phi3               :=  ? jets.size()>2 ? jets[2].phi() : -100 ",
        "jet_bdiscriminant3     :=  ? jets.size()>2 ? jets[2].bDiscriminator('pfDeepCSVJetTags:probb') : -100 ",
        "jet_pt4                :=  ? jets.size()>3 ? jets[3].pt() : -100 ",
        "jet_eta4               :=  ? jets.size()>3 ? jets[3].eta() : -100 ",
        "jet_phi4               :=  ? jets.size()>3 ? jets[3].phi() : -100 ",
        "jet_bdiscriminant4     :=  ? jets.size()>3 ? jets[3].bDiscriminator('pfDeepCSVJetTags:probb') : -100 ",
        "jet_pt5                :=  ? jets.size()>4 ? jets[4].pt() : -100 ",
        "jet_eta5               :=  ? jets.size()>4 ? jets[4].eta() : -100 ",
        "jet_phi5               :=  ? jets.size()>4 ? jets[4].phi() : -100 ",
        "jet_bdiscriminant5     :=  ? jets.size()>4 ? jets[4].bDiscriminator('pfDeepCSVJetTags:probb') : -100 ",
        "jet_pt6                :=  ? jets.size()>5 ? jets[5].pt() : -100 ",
        "jet_eta6               :=  ? jets.size()>5 ? jets[5].eta() : -100 ",
        "jet_phi6               :=  ? jets.size()>5 ? jets[5].phi() : -100 ",
        "jet_bdiscriminant6     :=  ? jets.size()>5 ? jets[5].bDiscriminator('pfDeepCSVJetTags:probb') : -100 ",
        "jet_pt7                :=  ? jets.size()>6 ? jets[6].pt() : -100 ",
        "jet_eta7               :=  ? jets.size()>6 ? jets[6].eta() : -100 ",
        "jet_phi7               :=  ? jets.size()>6 ? jets[6].phi() : -100 ",
        "jet_bdiscriminant7     :=  ? jets.size()>6 ? jets[6].bDiscriminator('pfDeepCSVJetTags:probb') : -100 ",
        "jet_pt8                :=  ? jets.size()>7 ? jets[7].pt() : -100 ",
        "jet_eta8               :=  ? jets.size()>7 ? jets[7].eta() : -100 ",
        "jet_phi8               :=  ? jets.size()>7 ? jets[7].phi() : -100 ",
        "jet_bdiscriminant8     :=  ? jets.size()>7 ? jets[7].bDiscriminator('pfDeepCSVJetTags:probb') : -100 ",
        "jet_pt9                :=  ? jets.size()>8 ? jets[8].pt() : -100 ",
        "jet_eta9               :=  ? jets.size()>8 ? jets[8].eta() : -100 ",
        "jet_phi9               :=  ? jets.size()>8 ? jets[8].phi() : -100 ",
        "jet_bdiscriminant9     :=  ? jets.size()>8 ? jets[8].bDiscriminator('pfDeepCSVJetTags:probb') : -100 ",
        "jet_pt10                :=  ? jets.size()>9 ? jets[9].pt() : -100 ",
        "jet_eta10               :=  ? jets.size()>9 ? jets[9].eta() : -100 ",
        "jet_phi10               :=  ? jets.size()>9 ? jets[9].phi() : -100 ",
        "jet_bdiscriminant10     :=  ? jets.size()>9 ? jets[9].bDiscriminator('pfDeepCSVJetTags:probb') : -100 ",
        "jet_pt11                :=  ? jets.size()>10 ? jets[10].pt() : -100 ",
        "jet_eta11               :=  ? jets.size()>10 ? jets[10].eta() : -100 ",
        "jet_phi11               :=  ? jets.size()>10 ? jets[10].phi() : -100 ",
        "jet_bdiscriminant11     :=  ? jets.size()>10 ? jets[10].bDiscriminator('pfDeepCSVJetTags:probb') : -100 ",
        "jet_pt12                :=  ? jets.size()>11 ? jets[11].pt() : -100 ",
        "jet_eta12               :=  ? jets.size()>11 ? jets[11].eta() : -100 ",
        "jet_phi12               :=  ? jets.size()>11 ? jets[11].phi() : -100 ",
        "jet_bdiscriminant12     :=  ? jets.size()>11 ? jets[11].bDiscriminator('pfDeepCSVJetTags:probb') : -100 ",
        "jet_pt13                :=  ? jets.size()>12 ? jets[12].pt() : -100 ",
        "jet_eta13               :=  ? jets.size()>12 ? jets[12].eta() : -100 ",
        "jet_phi13               :=  ? jets.size()>12 ? jets[12].phi() : -100 ",
        "jet_bdiscriminant13     :=  ? jets.size()>12 ? jets[12].bDiscriminator('pfDeepCSVJetTags:probb') : -100 ",
        "jet_pt14                :=  ? jets.size()>13 ? jets[13].pt() : -100 ",
        "jet_eta14               :=  ? jets.size()>13 ? jets[13].eta() : -100 ",
        "jet_phi14               :=  ? jets.size()>13 ? jets[13].phi() : -100 ",
        "jet_bdiscriminant14     :=  ? jets.size()>13 ? jets[13].bDiscriminator('pfDeepCSVJetTags:probb') : -100 ",
        "jet_pt15                :=  ? jets.size()>14 ? jets[14].pt() : -100 ",
        "jet_eta15               :=  ? jets.size()>14 ? jets[14].eta() : -100 ",
        "jet_phi15               :=  ? jets.size()>14 ? jets[14].phi() : -100 ",
        "jet_bdiscriminant15     :=  ? jets.size()>14 ? jets[14].bDiscriminator('pfDeepCSVJetTags:probb') : -100 ",
        "jet_bbdiscriminant1  := ?(jets.size>0)? jets.at(0).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant2  := ?(jets.size>1)? jets.at(1).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant3  := ?(jets.size>2)? jets.at(2).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant4  := ?(jets.size>3)? jets.at(3).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant5  := ?(jets.size>4)? jets.at(4).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant6  := ?(jets.size>5)? jets.at(5).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant7  := ?(jets.size>6)? jets.at(6).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant8  := ?(jets.size>7)? jets.at(7).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant9  := ?(jets.size>8)? jets.at(8).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant10  := ?(jets.size>9)? jets.at(9).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant11  := ?(jets.size>10)? jets.at(10).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant12  := ?(jets.size>11)? jets.at(11).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant13  := ?(jets.size>12)? jets.at(12).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant14  := ?(jets.size>13)? jets.at(13).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant15  := ?(jets.size>14)? jets.at(14).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_cdiscriminant1  := ?(jets.size>0)? jets.at(0).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant2  := ?(jets.size>1)? jets.at(1).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant3  := ?(jets.size>2)? jets.at(2).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant4  := ?(jets.size>3)? jets.at(3).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant5  := ?(jets.size>4)? jets.at(4).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant6  := ?(jets.size>5)? jets.at(5).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant7  := ?(jets.size>6)? jets.at(6).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant8  := ?(jets.size>7)? jets.at(7).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant9  := ?(jets.size>8)? jets.at(8).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant10  := ?(jets.size>9)? jets.at(9).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant11  := ?(jets.size>10)? jets.at(10).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant12  := ?(jets.size>11)? jets.at(11).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant13  := ?(jets.size>12)? jets.at(12).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant14  := ?(jets.size>13)? jets.at(13).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant15  := ?(jets.size>14)? jets.at(14).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_udsgdiscriminant1  := ?(jets.size>0)? jets.at(0).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant2  := ?(jets.size>1)? jets.at(1).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant3  := ?(jets.size>2)? jets.at(2).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant4  := ?(jets.size>3)? jets.at(3).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant5  := ?(jets.size>4)? jets.at(4).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant6  := ?(jets.size>5)? jets.at(5).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant7  := ?(jets.size>6)? jets.at(6).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant8  := ?(jets.size>7)? jets.at(7).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant9  := ?(jets.size>8)? jets.at(8).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant10  := ?(jets.size>9)? jets.at(9).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant11  := ?(jets.size>10)? jets.at(10).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant12  := ?(jets.size>11)? jets.at(11).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant13  := ?(jets.size>12)? jets.at(12).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant14  := ?(jets.size>13)? jets.at(13).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant15  := ?(jets.size>14)? jets.at(14).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_energy1  := ?(jets.size>0)? jets.at(0).energy : -1",
        "jet_energy2  := ?(jets.size>1)? jets.at(1).energy : -1",
        "jet_energy3  := ?(jets.size>2)? jets.at(2).energy : -1",
        "jet_energy4  := ?(jets.size>3)? jets.at(3).energy : -1",
        "jet_energy5  := ?(jets.size>4)? jets.at(4).energy : -1",
        "jet_energy6  := ?(jets.size>5)? jets.at(5).energy : -1",
        "jet_energy7  := ?(jets.size>6)? jets.at(6).energy : -1",
        "jet_energy8  := ?(jets.size>7)? jets.at(7).energy : -1",
        "jet_energy9  := ?(jets.size>8)? jets.at(8).energy : -1",
        "jet_energy10  := ?(jets.size>9)? jets.at(9).energy : -1",
        "jet_energy11  := ?(jets.size>10)? jets.at(10).energy : -1",
        "jet_energy12  := ?(jets.size>11)? jets.at(11).energy : -1",
        "jet_energy13  := ?(jets.size>12)? jets.at(12).energy : -1",
        "jet_energy14  := ?(jets.size>13)? jets.at(13).energy : -1",
        "jet_energy15  := ?(jets.size>14)? jets.at(14).energy : -1",
        "lead_PhoGenPt := leadPhoGenPt",
        "lead_PhoGenEta := leadPhoGenEta",
        "lead_PhoGenPhi := leadPhoGenPhi",
        "lead_Prompt := leadPrompt",
        "lead_Mad := leadMad",
        "lead_Pythia := leadPythia",
        "lead_SimpleMomID := leadSimpleMomID",
        "lead_SimpleMomStatus := leadSimpleMomStatus",
        "lead_MomID := leadMomID",
        "lead_MomMomID := leadMomMomID",
        "lead_PassFrix := leadPassFrix",
        "lead_SmallestDr := leadSmallestDr",
        "sublead_PhoGenPt := subleadPhoGenPt",
        "sublead_PhoGenEta := subleadPhoGenEta",
        "sublead_PhoGenPhi := subleadPhoGenPhi",
        "sublead_Prompt := subleadPrompt",
        "sublead_Mad := subleadMad",
        "sublead_Pythia := subleadPythia",
        "sublead_SimpleMomID := subleadSimpleMomID",
        "sublead_SimpleMomStatus := subleadSimpleMomStatus",
        "sublead_MomID := subleadMomID",
        "sublead_MomMomID := subleadMomMomID",
        "sublead_PassFrix := subleadPassFrix",
        "sublead_SmallestDr := subleadSmallestDr",
    ],
    ## histograms
    histograms=[])
                 "subleadEt        := diPhoton.subLeadingPhoton.et",
                 "subleadEta       := diPhoton.subLeadingPhoton.eta",
                 "subleadPhi       := diPhoton.subLeadingPhoton.phi",
                 "sublead_sieie    := diPhoton.subLeadingPhoton.sigmaIetaIeta",
                 "sublead_hoe      := diPhoton.subLeadingPhoton.hadronicOverEm",
                 "sublead_sigmaEoE := diPhoton.subLeadingPhoton.sigEOverE",
                 "sublead_ptoM     := diPhoton.subLeadingPhoton.pt/diPhoton.mass",
                 "subleadR9        := diPhoton.subLeadingPhoton.r9",
                 "leadIDMVA        := diPhoton.leadingView.phoIdMvaWrtChosenVtx",
                 "subleadIDMVA     := diPhoton.subLeadingView.phoIdMvaWrtChosenVtx",]

cfgTools.addCategories(process.untaggedDumper,
                       ## categories definition
                       [("all","1",0)
                    ],                       
                       ## variables to be dumped in trees/datasets. Same variables for all categories
                       variables=dipho_variables,

                       ## histograms
                       histograms=[]
)
                       

## VBF ##
cfgTools.addCategories(process.vbfTagDumper,
                       ## categories definition
                       [("all","1",0)
                    ],                       
                       ## variables to be dumped in trees/datasets. Same variables for all categories
                       variables=dipho_variables+                       
                       ["dRphoLeadJ    := min(deltaR(leadingJet.eta, leadingJet.phi, diPhoton.leadingPhoton.eta, diPhoton.leadingPhoton.phi), deltaR(leadingJet.eta, leadingJet.phi, diPhoton.subLeadingPhoton.eta, diPhoton.subLeadingPhoton.phi))",
                        "dRphoSubleadJ := min(deltaR(subLeadingJet.eta, subLeadingJet.phi, diPhoton.leadingPhoton.eta, diPhoton.leadingPhoton.phi), deltaR(subLeadingJet.eta, subLeadingJet.phi, diPhoton.subLeadingPhoton.eta, diPhoton.subLeadingPhoton.phi))",
else:
    massCutEB,massCutEE = None,None
    massCut = float(customize.massCut)


if massCutEB or massCutEE:
    cfgTools.addCategory(diphotonDumper,"RejectLowMass",
                         "   (max(abs(leadingPhoton.superCluster.eta),abs(subLeadingPhoton.superCluster.eta))<1.4442 && mass <= %f)"
                         "|| (max(abs(leadingPhoton.superCluster.eta),abs(subLeadingPhoton.superCluster.eta))>1.566  && mass <= %f)" %
                                            (massCutEB,massCutEE),-1)
cfgTools.addCategories(diphotonDumper,
                       [## cuts are applied in cascade
                        ## ("all","1"),
                        ("EBHighR9","max(abs(leadingPhoton.superCluster.eta),abs(subLeadingPhoton.superCluster.eta))<1.4442"
                         "&& min(leadingPhoton.r9,subLeadingPhoton.r9)>0.94",0),
                        ("EBLowR9","max(abs(leadingPhoton.superCluster.eta),abs(subLeadingPhoton.superCluster.eta))<1.4442",0),
                        ("EEHighR9","min(leadingPhoton.r9,subLeadingPhoton.r9)>0.94",0),
                        ("EELowR9","1",0),
                        ],
                       variables=variables,
                       histograms=histograms
                       )

# single photon dumpoer
photonDumper.processId = "test"
photonDumper.dumpTrees = False
photonDumper.dumpWorkspace = False
photonDumper.quietRooFit = True
photonDumper.maxCandPerEvent=2
photonDumper.nameTemplate = "$PROCESS_$SQRTS_$LABEL_$SUBCAT"
cfgTools.addCategories(photonDumper,
                       [## cuts are applied in cascade
Beispiel #21
0
    process.flashggTagAndProbe.tagSelection = "%s && abs(eta) < 2.1 && pt > 30 && (?hasUserCand('eleMatch')?userCand('eleMatch').passTightId:0) && hasPixelSeed && full5x5_r9>0.8 && egChargedHadronIso < 20 && egChargedHadronIso/pt < 0.3" % matchTriggerPaths
    process.flashggTagAndProbe.probeSelection = "full5x5_r9>0.8 && egChargedHadronIso < 20 && egChargedHadronIso/pt < 0.3"
    process.flashggTagAndProbe.idSelection = cms.PSet(
        rho = highMassCiCPhotonsV2.rho,
        cut = highMassCiCPhotonsV2.cut,        
        variables = highMassCiCPhotonsV2.variables,
        categories = highMassCiCPhotonsV2.categories
        )
    from flashgg.Taggers.tagAndProbeDumper_cfi import tagAndProbeDumper
    tagAndProbeDumper.dumpTrees = True
    cfgTools.addCategories(tagAndProbeDumper,
                           [
                               ("Reject", "diPhoton.mass < 50 || diPhoton.mass > 130", -1),
                               ("All", "1", 0)
                               # ("EBHighR9", "abs(getProbe.superCluster.eta)<1.4442 && getProbe.full5x5_r9>0.94", 0),
                               # ("EBLowR9", "abs(getProbe.superCluster.eta)<1.4442 && getProbe.full5x5_r9<=0.94", 0),
                               # ("EEHighR9", "abs(getProbe.superCluster.eta)>1.566 && getProbe.full5x5_r9>0.94", 0),
                               # ("EELowR9", "abs(getProbe.superCluster.eta)>1.566 && getProbe.full5x5_r9<=0.94", 0)
                           ],
                           variables=dumpCfg.getTnPVariables(process.flashggTagAndProbe.idSelection.variables,variables),
                           histograms=[]
                           )    
    tnp_sequence = cms.Sequence(flashggTagAndProbe+tagAndProbeDumper)
    process.p = cms.Path(tnp_sequence)
    
# categories definition
if ":" in customize.massCut:
    massCutEB,massCutEE = map(float,customize.massCut.split(":"))
    massCut = min(massCutEB,massCutEE)
else:
    massCutEB,massCutEE = None,None
    massCut = float(customize.massCut)
Beispiel #22
0
cfgTools.addCategories(process.genDiphotonDumper,
    [ ("all","1",0),  # category definition: (<name>,<selection>,<num_subcats>)
                      ## ("EB","max(abs(leadingPhoton.eta),abs(subLeadingPhoton.eta))<1.4442",0),
                      ## ("EE","1",0)
        ],
    variables=[
        "mass",
        "pt",
        "rapidity",

        "leadPt  := leadingPhoton.pt",
        "leadEta := leadingPhoton.eta",
        "leadPhi := leadingPhoton.phi",

        "leadExtraType   := leadingExtra.type",
        "leadExtraGenIso := leadingExtra.genIso",
        
        "subLeadPt  := subLeadingPhoton.pt",
        "subLeadEta := subLeadingPhoton.eta",
        "subLeadPhi := subLeadingPhoton.phi",

        "subLeadExtraType   := subLeadingExtra.type",
        "subLeadExtraGenIso := subLeadingExtra.genIso",

        ],
    histograms=[
        "genMass>>genmass(1500,0,15000)",
        ## can directly draw 
        ]
    )
Beispiel #23
0
# interestng categories 
cfgTools.addCategories(process.diphotonDumper,
                       ## categories definition
                       ## cuts are applied in cascade. Events getting to these categories have already failed the "Reject" selection
                       [("EBHighR9","max(abs(leadingPhoton.superCluster.eta),abs(leadingPhoton.superCluster.eta))<1.4442"
                         "&& min(leadingPhoton.full5x5_r9,subLeadingPhoton.full5x5_r9)>0.94",0), ## EB high R9
                        ("EBLowR9","max(abs(leadingPhoton.superCluster.eta),abs(leadingPhoton.superCluster.eta))<1.4442",0), ## remaining EB is low R9
                        ("EEHighR9","min(leadingPhoton.full5x5_r9,subLeadingPhoton.full5x5_r9)>0.94",0), ## then EE high R9
                        ("EELowR9","1",0), ## evereything elese is EE low R9
                        ],
                       ## variables to be dumped in trees/datasets. Same variables for all categories
                       ## if different variables wanted for different categories, can add categorie one by one with cfgTools.addCategory
                       variables=["CMS_hgg_mass[320,100,180]:=mass", 
                                  "leadPt                   :=leadingPhoton.pt",
                                  "subleadPt                :=subLeadingPhoton.pt",
                                  "minR9                    :=min(leadingPhoton.full5x5_r9,subLeadingPhoton.full5x5_r9)",
                                  "maxEta                   :=max(abs(leadingPhoton.superCluster.eta),abs(leadingPhoton.superCluster.eta))",
                                  "leadIDMVA                :=leadingView.phoIdMvaWrtChosenVtx",
                                  "subleadIDMVA             :=subLeadingView.phoIdMvaWrtChosenVtx",
                                  ],
                       ## histograms to be plotted. 
                       ## the variables need to be defined first
                       histograms=["CMS_hgg_mass>>mass(320,100,180)",
                                   "subleadPt:leadPt>>ptSubVsLead(180,20,200:180,20,200)",
                                   "minR9>>minR9(110,0,1.1)",
                                   "maxEta>>maxEta[0.,0.1,0.2,0.3,0.4,0.6,0.8,1.0,1.2,1.4442,1.566,1.7,1.8,2.,2.2,2.3,2.5]"
                                   ]
                       )

Beispiel #24
0
cfgTools.addCategory(
    process.photonViewDumper,
    "Reject",
    "abs(photon.superCluster.eta)>=1.4442&&abs(photon.superCluster.eta)<=1.566||abs(photon.superCluster.eta)>=2.5",
    -1  ## if nSubcat is -1 do not store anythings
)

# interestng categories
cfgTools.addCategories(
    process.photonViewDumper,
    ## categories definition
    ## cuts are applied in cascade. Events getting to these categories have already failed the "Reject" selection
    [
        ("promptPhotons", "photon.genMatchType == 1", 0),
        ("fakePhotons", "photon.genMatchType != 1", 0),
    ],
    ## variables to be dumped in trees/datasets. Same variables for all categories
    ## if different variables wanted for different categories, can add categorie one by one with cfgTools.addCategory
    variables=variables,
    ## histograms to be plotted.
    ## the variables need to be defined first
    histograms=histograms,
)

process.p1 = cms.Path(
    process.flashggUpdatedIdMVADiPhotons * process.kinPreselDiPhotons *
    process.flashggSinglePhotonViews * process.photonViewDumper)

from flashgg.MetaData.JobConfig import customize
customize.setDefault("maxEvents", 10000)
customize(process)
#process.diphotonDumper.src = cms.InputTag("flashggUpdatedIdMVADiPhotons")
#process.diphotonDumper.src = cms.InputTag("flashggDiPhotons")
process.diphotonDumper.dumpHistos = False
process.diphotonDumper.dumpTrees  =  True
process.diphotonDumper.dumpGlobalVariables = cms.untracked.bool(True)
process.diphotonDumper.globalVariables = process.globalVariables

process.TFileService = cms.Service("TFileService",
                                   fileName = cms.string("histo.root"),
                                   closeFileFast = cms.untracked.bool(True)
                                   )

#DIPHOTON MVA
cfgTools.addCategories(process.DiPhotonWithZeeMVADumper,
                       [("All","1", 0),],
                       variables=["dipho_mva:=mvaValue"],
                       histograms=["dipho_mva>>dipho_mva(100,-1,1)",]
                       )
# split tree, histogram and datasets by process
process.DiPhotonWithZeeMVADumper.nameTemplate ="zeevalidation_$SQRTS_$LABEL_$SUBCAT"


cfgTools.addCategories(process.diphotonDumper,
                       ## categories definition
                       ## cuts are applied in cascade. Events getting to these categories have already failed the "Reject" selection
                       [("All","1", 0)
                        #("EB", "abs(superCluster.eta)<1.479", 0),
                        #("EE", "abs(superCluster.eta)>1.566",0)
                        ],
                       variables=["leadPhIso        := leadingPhoton.pfPhoIso03()",
                                  "leadPhIsoCorr    := leadingPhoton.pfPhoIso03Corr()",
Beispiel #26
0
cfgTools.addCategory(process.analyzer,
                     "Reject",
                     "abs(superCluster.eta)>=1.4442&&abs(superCluster.eta)<=1.566||abs(superCluster.eta)>=2.5",
                      -1 ## if nSubcat is -1 do not store anythings
                     )

# interestng categories 
cfgTools.addCategories(process.analyzer,
                       ## categories definition
                       ## cuts are applied in cascade. Events getting to these categories have already failed the "Reject" selection
                       [("promptPhotons","genMatchType == 1",0),
                        ("fakePhotons",  "genMatchType != 1",0),
                        ],
                       ## variables to be dumped in trees/datasets. Same variables for all categories
                       ## if different variables wanted for different categories, can add categorie one by one with cfgTools.addCategory
                       variables=["pt","energy","eta","phi","scEta:=superCluster.eta",
                                  "r9","chgIsoWrtWorstVtx := getpfChgIsoWrtWorstVtx03",
                                  "genIso := userFloat('genIso')", "eTrue := ? hasMatchedGenPhoton ? matchedGenPhoton.energy : 0"
                                  ],
                       ## histograms to be plotted. 
                       ## the variables need to be defined first
                       histograms=["r9>>r9(110,0,1.1)",
                                   "scEta>>scEta(100,-2.5,2.5)"
                                   ]
                       )


# customization for job splitting, lumi weighting, etc.
from flashgg.MetaData.JobConfig import customize
customize.setDefault("maxEvents",500)
customize.setDefault("targetLumi",1.e+4)
customize(process)
cfgTools.addCategories(process.photonViewDumper,
                       ## categories definition
                       ## cuts are applied in cascade. Events getting to these categories have already failed the "Reject" selection
                       [("promptPhotonsEB","abs(photon.superCluster.eta)<1.5 && photon.genMatchType == 1",0),
                        ("fakePhotonsEB",  "abs(photon.superCluster.eta)<1.5 && photon.genMatchType != 1",0),
                        ],
                       ## variables to be dumped in trees/datasets. Same variables for all categories
                       ## if different variables wanted for different categories, can add categorie one by one with cfgTools.addCategory
                       variables=variables,
                       ## histograms to be plotted. 
                       ## the variables need to be defined first
                       histograms=histograms,
                       ## compute MVA on the fly. More then one MVA can be tested at once
                       mvas = [ ("myMVA", 
                                 ["ph.scrawe:=photon.superCluster.rawEnergy",
                                  "ph.r9:=photon.r9",
                                  "ph.sigietaieta:=photon.sigmaIetaIeta",
                                  "ph.scetawidth:=photon.superCluster.etaWidth",
                                  "ph.scphiwidth:=photon.superCluster.phiWidth",
                                  "ph.idmva_CoviEtaiPhi:=photon.sieip",
                                  "ph.idmva_s4ratio:=photon.s4",
                                  "ph.idmva_GammaIso:=photon.pfPhoIso03",
                                  "ph.idmva_ChargedIso_selvtx:=pfChIso03WrtChosenVtx",
                                  "ph.idmva_ChargedIso_worstvtx:=photon.pfChgIsoWrtWorstVtx03",
                                  "ph.sceta:=photon.superCluster.eta",
                                  "rho:=global.rho"
                                  ],
                                 "BDT",
                                 "flashgg/MicroAOD/data/2013FinalPaper_PhotonID_Barrel_BDT_TrainRangePT15_8TeV.weights.xml",
                                 )
                                ]
                       )
process.TFileService = cms.Service("TFileService",
                                   fileName=cms.string("test.root"))

#
# analysis configuration
#

import flashgg.Taggers.dumperConfigTools as cfgTools
from flashgg.Taggers.genDiphotonDumper_cfi import genDiphotonDumper
cfgTools.addCategories(
    genDiphotonDumper,
    [("EB", "max(abs(leadingPhoton.eta),abs(subLeadingPhoton.eta))<1.4442", 0),
     ("EE", "1", 0)],
    variables=[
        "genMass := mass",
        "pt",
        "genLeadPt := leadingPhoton.pt",
        "genSubeadPt := subLeadingPhoton.pt",
    ],
    histograms=[
        "genMass>>genmass(1500,0,15000)",
    ])

from diphotons.Analysis.DiPhotonAnalysis import DiPhotonAnalysis
analysis = DiPhotonAnalysis(
    None,
    massCut=customize.massCut,
    ptLead=customize.ptLead,
    ptSublead=customize.ptSublead,
    scaling=customize.scaling,  ## kinematic cuts
    genIsoDefinition=("genIso", 10.),
Beispiel #29
0
cfgTools.addCategories(process.tagCandidateDumper,
                       ## categories definition
                       ## cuts are applied in cascade. Events getting to these categories have already failed the "Reject" selection
                       [("All", "1", 0)],
                       variables=["bdt_combined := combindedMVA", 
                                  "dijet_MVA := vbfMVA",
                                  "dipho_mva := diPhoMVAValue",
                                  "mass := diPhoton.mass",
                                  "cat := categoryNumber",
                                  "dipho_pt := diPhoton.pt",
                                  "dipho_phi := diPhoton.phi",
                                  "dipho_eta := diPhoton.eta",
                                  "dipho_PtoM := diPhoton.pt/diPhoton.mass",
                                  "cosphi := diPhotonMVA.CosPhi",
                                  "sigmaMrvoM := diPhotonMVA.sigmarv",
                                  "sigmaMwvoM := diPhotonMVA.sigmawv",
                                  # VTX 
                                  "vtxprob := diPhotonMVA.vtxprob",
                                  "ptbal := diPhoton.ptBal",
                                  "ptasym := diPhoton.ptAsym",
                                  "logspt2 := diPhoton.logSumPt2",
                                  "p2conv := diPhoton.pullConv",
                                  "nconv := diPhoton.nConv",
                                  "vtxmva := diPhoton.vtxProbMVA",
                                  "vtxdz := diPhoton.dZ1",
                                  "vtx_x := diPhoton.vtx.x", 
                                  "vtx_y := diPhoton.vtx.y", 
                                  "vtx_z := diPhoton.vtx.z", 
                                  "gv_x := diPhoton.genPV.x", 
                                  "gv_y := diPhoton.genPV.y", 
                                  "gv_z := diPhoton.genPV.z", 
                                  # Trigger
                                  "hlt1 := triggerBit(0)",
                                  "hlt2 := triggerBit(1)",
                                  "hlt3 := triggerBit(2)",
                                  ##MET ????
                                  # PHOTON 1 
                                  "genmatch1 := genMatchLead",
                                  "et1 := diPhoton.leadingPhoton.et",
                                  "eta1 := diPhoton.leadingPhoton.superCluster.eta",
                                  "phi1 := diPhoton.leadingPhoton.superCluster.phi",
                                  "r91 := diPhoton.leadingPhoton.full5x5_r9",
                                  "e1x31 :=  diPhoton.leadingPhoton.e1x3",
                                  "e2x51 :=  diPhoton.leadingPhoton.e2x5",
                                  "e3x31 :=  diPhoton.leadingPhoton.e3x3",
                                  "e5x51 :=  diPhoton.leadingPhoton.e5x5",                                  
                                  "sieie1 := diPhoton.leadingPhoton.full5x5_sigmaIetaIeta",
                                  "hoe1 := diPhoton.leadingPhoton.hadronicOverEm",
                                  "sigmaEoE1 := diPhoton.leadingPhoton.sigEOverE",
                                  "ptoM1 := diPhoton.leadingPhoton.pt / diPhoton.mass",
                                  "chiso1 := diPhoton.leadingView.pfChIso03WrtChosenVtx",
                                  "chisow1 := diPhoton.leadingPhoton.pfChgIsoWrtWorstVtx04",
                                  "phoiso1 := diPhoton.leadingPhoton.pfPhoIso03",
                                  "phoiso041 := diPhoton.leadingPhoton.pfPhoIso04",
                                  "ecaliso03_1 := diPhoton.leadingPhoton.ecalRecHitSumEtConeDR03",
                                  "hcaliso03_1 := diPhoton.leadingPhoton.hcalTowerSumEtConeDR03",
                                  "pfcluecal03_1 := diPhoton.leadingPhoton.ecalPFClusterIso",
                                  "pfcluhcal03_1 := diPhoton.leadingPhoton.hcalPFClusterIso",
                                  "trkiso03_1 := diPhoton.leadingPhoton.trkSumPtHollowConeDR03",
                                  "pfchiso2_1 := diPhoton.leadingView.pfChIso02WrtChosenVtx",
                                  "isEB1 := diPhoton.leadingPhoton.isEB",
                                  "csev1 := diPhoton.leadingPhoton.passElectronVeto",
                                  "haspixelseed1 := diPhoton.leadingPhoton.hasPixelSeed",
                                  "sieip1 := diPhoton.leadingPhoton.sieip",
                                  "etawidth1 := diPhoton.leadingPhoton.superCluster.etaWidth",
                                  "phiwidth1 := diPhoton.leadingPhoton.superCluster.phiWidth",
                                  "regrerr1 := diPhoton.leadingPhoton.sigEOverE * diPhoton.leadingPhoton.energy",
                                  "idmva1 := diPhoton.leadingView.phoIdMvaWrtChosenVtx",
                                  "s4ratio1 :=  diPhoton.leadingPhoton.s4",
                                  "effSigma1 :=  diPhoton.leadingPhoton.esEffSigmaRR",
                                  "scraw1 :=  diPhoton.leadingPhoton.superCluster.rawEnergy",
                                  "ese1 :=  diPhoton.leadingPhoton.superCluster.preshowerEnergy",                                  
                                  # PHOTON 2
                                  "genmatch2 := genMatchSubLead",
                                  "et2 := diPhoton.subLeadingPhoton.et",
                                  "eta2 := diPhoton.subLeadingPhoton.superCluster.eta",
                                  "phi2 := diPhoton.subLeadingPhoton.superCluster.phi",
                                  "r92 := diPhoton.subLeadingPhoton.full5x5_r9",
                                  "e1x32 :=  diPhoton.subLeadingPhoton.e1x3",
                                  "e2x52 :=  diPhoton.subLeadingPhoton.e2x5",
                                  "e3x32 :=  diPhoton.subLeadingPhoton.e3x3",
                                  "e5x52 :=  diPhoton.subLeadingPhoton.e5x5",                                  
                                  "sieie2 := diPhoton.subLeadingPhoton.full5x5_sigmaIetaIeta",
                                  "hoe2 := diPhoton.subLeadingPhoton.hadronicOverEm",
                                  "sigmaEoE2 := diPhoton.subLeadingPhoton.sigEOverE",
                                  "ptoM2 := diPhoton.subLeadingPhoton.pt / diPhoton.mass",
                                  "isEB2 := diPhoton.subLeadingPhoton.isEB",
                                  "chiso2 := diPhoton.subLeadingView.pfChIso03WrtChosenVtx",
                                  "chisow2 := diPhoton.subLeadingPhoton.pfChgIsoWrtWorstVtx04",
                                  "phoiso2 := diPhoton.subLeadingPhoton.pfPhoIso03",                                  
                                  "phoiso042 := diPhoton.subLeadingPhoton.pfPhoIso04",
                                  "ecaliso03_2 := diPhoton.subLeadingPhoton.ecalRecHitSumEtConeDR03",
                                  "hcaliso03_2 := diPhoton.subLeadingPhoton.hcalTowerSumEtConeDR03",
                                  "pfcluecal03_2 := diPhoton.leadingPhoton.ecalPFClusterIso",
                                  "pfcluhcal03_2 := diPhoton.leadingPhoton.hcalPFClusterIso",
                                  "trkiso03_2 := diPhoton.subLeadingPhoton.trkSumPtHollowConeDR03",
                                  "pfchiso2_2 := diPhoton.subLeadingView.pfChIso02WrtChosenVtx",
                                  "csev2 := diPhoton.subLeadingPhoton.passElectronVeto",
                                  "haspixelseed2 := diPhoton.subLeadingPhoton.hasPixelSeed",  
                                  "sieip2 := diPhoton.subLeadingPhoton.sieip",
                                  "etawidth2 := diPhoton.subLeadingPhoton.superCluster.etaWidth",
                                  "phiwidth2 := diPhoton.subLeadingPhoton.superCluster.phiWidth",
                                  "regrerr2 := diPhoton.subLeadingPhoton.sigEOverE* diPhoton.subLeadingPhoton.energy",
                                  "idmva2 := diPhoton.subLeadingView.phoIdMvaWrtChosenVtx",
                                  "s4ratio2 :=  diPhoton.subLeadingPhoton.s4",
                                  "effSigma2 :=  diPhoton.subLeadingPhoton.esEffSigmaRR",
                                  "scraw2 :=  diPhoton.subLeadingPhoton.superCluster.rawEnergy",
                                  "ese2 :=  diPhoton.subLeadingPhoton.superCluster.preshowerEnergy",
                                  # dijet
                                  "dijet_leadEta",
                                  "dijet_subleadEta",
                                  "dijet_dEta := dijet_abs_dEta",
                                  "dijet_LeadJPt",
                                  "dijet_SubJPt",
                                  "dijet_Zep",
                                  "dijet_dPhi := dijet_dipho_dphi",
                                  "dijet_Mjj",
                                  "dijet_minDRJetPho",
                                  ],
                       histograms=[]                                   
                       )
        cms.PSet(cut=cms.string("1"), selection=cms.VPSet(cms.VPSet()))))

# ----------------------------------------------------------------------------------------------------
# Configure tagAndProbeDumper

variables = dumpCfg.getCustomConfig('complete')
print(variables)

from flashgg.Validation.tagAndProbeDumper_cfi import tagAndProbeDumper
tagAndProbeDumper.dumpTrees = True
cfgTools.addCategories(
    tagAndProbeDumper,
    [("Reject", "diPhoton.mass < 50 || diPhoton.mass > 130", -1),
     ("All", "1", 0)
     # ("EBHighR9", "abs(getProbe.superCluster.eta)<1.4442 && getProbe.full5x5_r9>0.94", 0),
     # ("EBLowR9", "abs(getProbe.superCluster.eta)<1.4442 && getProbe.full5x5_r9<=0.94", 0),
     # ("EEHighR9", "abs(getProbe.superCluster.eta)>1.566 && getProbe.full5x5_r9>0.94", 0),
     # ("EELowR9", "abs(getProbe.superCluster.eta)>1.566 && getProbe.full5x5_r9<=0.94", 0)
     ],
    variables=variables,
    histograms=[])
tnp_sequence = cms.Sequence(flashggTagAndProbe + tagAndProbeDumper)

# ----------------------------------------------------------------------------------------------------
# Schedule process

if customize.options.doPhoIdInputsCorrections:
    process.p = cms.Path(process.flashggDifferentialPhoIdInputsCorrection *
                         process.flashggIdentifiedElectrons *
                         process.flashggDiPhotonSystematics * tnp_sequence)
else:
Beispiel #31
0
process.HHWWggCandidateDumper.dumpWorkspace = True  # Workspace

# If signal, if data

# Create histograms

cfgTools.addCategories(
    process.HHWWggCandidateDumper,
    [
        # Signal Categories
        # ("SL","(CMS_hgg_mass!=-99) && (CMS_hgg_mass>=100) && (CMS_hgg_mass<=180)",0), # for background model
        ("SL",
         "(CMS_hgg_mass!=-99) && (CMS_hgg_mass>=115) && (CMS_hgg_mass<=135)", 0
         ),  # for signal model 
        # ("SL","1",0), # All events # Not working for some reason

        # Data
        # ("All_HLT_Events","1",0), # All events that passed HLT
    ],

    # variables = all_variables,
    variables=Reco_Variables,
    # variables = Fit_Variables,
    # variables = RECO_GEN_Variables,
    histograms=[])

# Input file
process.source = cms.Source(
    "PoolSource",
    fileNames=cms.untracked.vstring(
Beispiel #32
0
cfgTools.addCategories(process.DiLeptonDiJetDumper,
											 ## categories definition
											 ## cuts are applied in cascade. Events getting to these categories have already failed the "Reject" selection
											 [("all","1",0)
											 # [("EBHighR9","max(abs(leadingPhoton.superCluster.eta),abs(leadingPhoton.superCluster.eta))<1.4442"
											 #   "&& min(leadingPhoton.r9,subLeadingPhoton.r9)>0.94",0), ## EB high R9
											 #  ("EBLowR9","max(abs(leadingPhoton.superCluster.eta),abs(leadingPhoton.superCluster.eta))<1.4442",0), ## remaining EB is low R9
											 #  ("EEHighR9","min(leadingPhoton.r9,subLeadingPhoton.r9)>0.94",0), ## then EE high R9
											 #  ("EELowR9","1",0), ## evereything elese is EE low R9
												],
											 ## variables to be dumped in trees/datasets. Same variables for all categories
											 ## if different variables wanted for different categories, can add categorie one by one with cfgTools.addCategory
											 variables=[ 
														"leadElePt                   := ? isEEJJ ? leadingEle.pt : -999",
														"leadMuonPt                  := ? isMMJJ ? leadingMuon.pt : -999",
														"leadLeptonPt                :=leadingLeptonPt", 
														"subLeadLeptonPt             :=subLeadingLeptonPt",
														"leadLeptonEta               :=leadingLeptonEta",
														"subLeadLeptonEta            :=subLeadingLeptonEta", 
														"leadLeptonPhi               :=leadingLeptonPhi",
														"subLeadLeptonPhi            :=subLeadingLeptonPhi",  
														"leadJetPt                   :=leadingJet.pt",
														"subLeadJetPt                :=subLeadingJet.pt",
														"leadJetEta                  :=leadingJet.eta",
														"subLeadJetEta               :=subLeadingJet.eta",
														"leadJetPhi                  :=leadingJet.phi",
														"subLeadJetPhi               :=subLeadingJet.phi",
														"diLeptonDiJetSumPt          :=sumPt",
														"diLeptonDiJetMass           :=invMass",
														"diLeptonMass                :=diLeptonInvMass",
														"isEEJJ                      :=isEEJJ",
														"isEETT                      :=isEETT",
														"isMMJJ                      :=isMMJJ",
														"isMMTT                      :=isMMTT"
														],
											 ## histograms to be plotted. 
											 ## the variables need to be defined first
											 histograms=[
														# # "subLeadLeptonPt:leadLeptonPt>>ptSubVsLead(180,20,200:180,20,200)",
														# "leadLeptonPt>>leadLeptonPt(100, 0, 2500)",
														# "subLeadLeptonPt>>subLeadLeptonPt(100, 0, 2500)",
														# "leadJetPt>>leadJetPt(100, 0, 2500)",
														# "subLeadJetPt>>subLeadJetPt(100, 0, 2500)",
														# "leadLeptonEta>>leadLeptonEta(100, -4, 4)",
														# "subLeadLeptonEta>>subLeadLeptonEta(100, -4, 4)",
														# "leadJetEta>>leadJetEta(100, -4, 4)",
														# "subLeadJetEta>>subLeadJetEta(100, -4, 4)",
														# "leadLeptonPhi>>leadLeptonPhi(100, -3.2, 3.2)",
														# "subLeadLeptonPhi>>subLeadLeptonPhi(100, -3.2, 3.2)",
														# "leadJetPhi>>leadJetPhi(100, -3.2, 3.2)",
														# "subLeadJetPhi>>subLeadJetPhi(100, -3.2, 3.2)",
														# "diLeptonDiJetMass>>diLeptonDiJetMass(500, 0, 6000)",
														# "diLeptonMass>>diLeptonMass(500, 0, 6400)"
														]
											 )
## define categories and associated objects to dump
cfgTools.addCategory(process.photonViewDumper,
                     "Reject",
                     "abs(photon.superCluster.eta)>=1.4442&&abs(photon.superCluster.eta)<=1.566||abs(photon.superCluster.eta)>=2.5",
                     -1 ## if nSubcat is -1 do not store anythings
                     )

# interestng categories 
cfgTools.addCategories(process.photonViewDumper,
                       ## categories definition
                       ## cuts are applied in cascade. Events getting to these categories have already failed the "Reject" selection
                       [("promptPhotons","photon.genMatchType == 1",0),
                        ("fakePhotons",  "photon.genMatchType != 1",0),
                        ],
                       ## variables to be dumped in trees/datasets. Same variables for all categories
                       ## if different variables wanted for different categories, can add categorie one by one with cfgTools.addCategory
                       variables=variables,
                       ## histograms to be plotted. 
                       ## the variables need to be defined first
                       histograms=histograms,
                       )

process.p1 = cms.Path(process.flashggUpdatedIdMVADiPhotons*
                      process.kinPreselDiPhotons*
                      process.flashggSinglePhotonViews*
                      process.photonViewDumper
                      )


from flashgg.MetaData.JobConfig import customize
cfgTools.addCategories(
    process.vbfTagDumper,
    ## categories definition
    [("all", "1", 0)],
    ## variables to be dumped in trees/datasets. Same variables for all categories
    variables=dipho_variables + [
        "dRphoLeadJ    := min(deltaR(leadingJet.eta, leadingJet.phi, diPhoton.leadingPhoton.eta, diPhoton.leadingPhoton.phi), deltaR(leadingJet.eta, leadingJet.phi, diPhoton.subLeadingPhoton.eta, diPhoton.subLeadingPhoton.phi))",
        "dRphoSubleadJ := min(deltaR(subLeadingJet.eta, subLeadingJet.phi, diPhoton.leadingPhoton.eta, diPhoton.leadingPhoton.phi), deltaR(subLeadingJet.eta, subLeadingJet.phi, diPhoton.subLeadingPhoton.eta, diPhoton.subLeadingPhoton.phi))",
        "leadJPt       := leadingJet.pt", "leadJEta      := leadingJet.eta",
        "subleadJPt    := subLeadingJet.pt", "subleadJEta   := leadingJet.eta",
        "Mjj           := sqrt((leadingJet.energy+subLeadingJet.energy)^2-(leadingJet.px+subLeadingJet.px)^2-(leadingJet.py+subLeadingJet.py)^2-(leadingJet.pz+subLeadingJet.pz)^2)",
        "dijet_dEta    := abs(leadingJet.eta - subLeadingJet.eta)",
        "dijet_dPhi    := deltaPhi(leadingJet.phi, subLeadingJet.phi)",
        "dijet_Zep     := VBFMVA.dijet_Zep",
        "dijet_MVA     := VBFMVA.VBFMVAValue",
        "vbfcat        := categoryNumber",
        "genZ           :=tagTruth().genPV().z",
        "vtxZ           :=diPhoton().vtx().z",
        "dZ            :=abs(tagTruth().genPV().z-diPhoton().vtx().z)",
        "leadQuarkPt                  := tagTruth().pt_Q1",
        "matchingGenJetToLeadPt    := tagTruth().pt_genPartMatchingToJ1"
    ],
    histograms=[
        "CMS_hgg_mass>>mass(160,100,180)",
        "subleadPt:leadPt>>ptLeadvsSub(180,20,200:180,20,200)",
        "diphoMVA>>diphoMVA(50,0,1)",
        "maxEta>>maxEta[0.,0.1,0.2,0.3,0.4,0.6,0.8,1.0,1.2,1.4442,1.566,1.7,1.8,2.,2.2,2.3,2.5]",
        "subleadJetPt:leadJetPt>>JetptLeadvsSub(8,20,100:8,20,100)",
        "VBFMVA>>VBFMVA(50,0,1)"
    ])
process.VBFMVADumperNew.dumpTrees = True
process.VBFMVADumperNew.dumpWorkspace = False
process.VBFMVADumperNew.quietRooFit = True

cfgTools.addCategories(process.VBFMVADumperNew,
			[## cuts are applied in cascade
			("All","dipho_PToM>=0",0),
			],
			variables=[
			"dijet_abs_dEta   :=  dijet_abs_dEta  ",
			"dijet_leadEta    :=  dijet_leadEta  ",
			"dijet_subleadEta :=  dijet_subleadEta  ",
			"dijet_LeadJPt    :=  dijet_LeadJPt    ",
			"dijet_SubJPt     :=  dijet_SubJPt     ",
			"dijet_Zep        :=  dijet_Zep        ",
			"dijet_Mjj        :=  dijet_Mjj        ",
			"dipho_PToM       :=  dipho_PToM     ",
			"leadPho_PToM     :=  leadPho_PToM     ",
			"sublPho_PToM     :=  sublPho_PToM     ",
			"dijet_dPhi_trunc :=  dijet_dPhi_trunc ",
			"vbfMvaResult_value := vbfMvaResult_value",
			],
			histograms=[
			#"mvaresult>>VBFMVAValue(100,-1000,1000)",
			"vbfMvaResult_value>>VBFMVAValue(100,-1,1)",
			#"VBFMVAValue>>VBFMVAValue2(100,-1,1)",
			]
			)
# split tree, histogram and datasets by process
process.VBFMVADumperNew.nameTemplate ="$PROCESS_$SQRTS_$LABEL_$SUBCAT"

process.load("flashgg/Taggers/VBFDiPhoDiJetMVADumperNew_cff")
Beispiel #36
0
    "dijet_dipho_dphi    :=  dijet_dipho_dphi ",
    "dijet_dipho_pt      :=  dijet_dipho_pt   ",
    "dijet_dy            :=  dijet_dy ",
    "minDRJetPho         :=  minDRJetPho ",
    "vbfMvaResult        :=  vbfMvaResult"
]

preselection_cut="dijet_LeadJPt>30 && dijet_SubJPt>20 && dijet_leadEta<4.7 && dijet_leadEta>-4.7 && dijet_leadEta<4.7 && dijet_leadEta>-4.7 && dijet_Mjj>250 && leadPho_PToM>0.5"
#
# ===============================================================================
# setup the dumpers
cfgTools.addCategories(process.VBFMVADumper,
                       [## cuts are applied in cascade
        #("PreselVBFDiJet","%s" % preselection_cut ,0),
        ("VBFDiJet"      ,"dijet_LeadJPt > 0"     ,0),
        ("excluded"      ,"1"                     ,0) # really importent to avoid having an error
                       ],
                       variables  = VBFMVAvariables, 
                       histograms = []
)

process.VBFMVADumper.nameTemplate ="$PROCESS_$SQRTS_$LABEL_$SUBCAT"
cfgTools.addCategories(process.VBFMVADumperPUPPI,
                       [## cuts are applied in cascade
        ("PreselVBFDiJet","%s" % preselection_cut ,0),
        ("VBFDiJet"      ,"dijet_LeadJPt > 0"     ,0),
        ("excluded"      ,"1"                     ,0)
                       ],
                       variables  = VBFMVAvariables, 
                       histograms = []
                       
process.vbfTagDumper.dumpTrees     = True
process.vbfTagDumper.dumpHistos    = True
process.vbfTagDumper.dumpWorkspace = False

# use the trigger-diphoton-preselection
from PhysicsTools.PatAlgos.tools.helpers import massSearchReplaceAnyInputTag
massSearchReplaceAnyInputTag(process.flashggTagSequence,cms.InputTag("flashggDiPhotons"),cms.InputTag("flashggPreselectedDiPhotons"))

# get the variable list
import flashgg.Taggers.VBFTagVariables as var
all_variables = var.dijet_variables + var.dipho_variables + var.truth_variables

cfgTools.addCategories(process.vbfTagDumper,
                       [
                           ("VBFDiJet","leadingJet.pt>0",0),
                           ("excluded","1",0)
                       ],
                       variables  = all_variables,
                       histograms = []
)

#process.vbfTagDumper.nameTemplate ="$PROCESS_$SQRTS_$LABEL_$SUBCAT_$CLASSNAME"
process.vbfTagDumper.nameTemplate = "$PROCESS_$SQRTS_$CLASSNAME_$SUBCAT_$LABEL"

from flashgg.MetaData.JobConfig import customize
customize.setDefault("maxEvents" ,1000)    # max-number of events
customize.setDefault("targetLumi",2.11e+3) # define integrated lumi
customize(process)

process.p1 = cms.Path(
    process.flashggTagSequence*
    #    process.flashggTagTester* # Uncommment if you what to test VBFtag
Beispiel #38
0
cfgTools.addCategories(
    process.tthLeptonicTagDumper,
    ## categories definition
    [("all", "1", 0)],
    ## variables to be dumped in trees/datasets. Same variables for all categories
    variables=dipho_variables + [
        "n_ele    := electrons.size",
        "ele1_pt  := ?(electrons.size>0)? electrons.at(0).pt : -1",
        "ele2_pt  := ?(electrons.size>1)? electrons.at(1).pt : -1",
        "n_muons  := muons.size",
        "muon1_pt := ?(muons.size>0)? muons.at(0).pt : -1",
        "muon2_pt := ?(muons.size>1)? muons.at(1).pt : -1",
        "n_bjets  := bJets.size",
        "n_jets   := jets.size",
        "bjet1_pt := bJets.at(0).pt",
        "bjet2_pt := ?bJets.size>1? bJets.at(1).pt : -1",
        "Mjj      := ?(jets.size>1)?" +
        "sqrt((jets.at(0).energy+jets.at(1).energy)^2-(jets.at(0).px+jets.at(1).px)^2-(jets.at(0).py+jets.at(1).py)^2-(jets.at(0).pz+jets.at(1).pz)^2)"
        + ": -1",
        "jet_pt1                :=  ? jets.size()>0 ? jets[0].pt() : -100 ",
        "jet_eta1               :=  ? jets.size()>0 ? jets[0].eta() : -100 ",
        "jet_phi1               :=  ? jets.size()>0 ? jets[0].phi() : -100 ",
        "jet_bdiscriminant1     :=  ? jets.size()>0 ? jets[0].bDiscriminator('pfCombinedInclusiveSecondaryVertexV2BJetTags') : -100",
        "jet_pt2                :=  ? jets.size()>1 ? jets[1].pt() : -100 ",
        "jet_eta2               :=  ? jets.size()>1 ? jets[1].eta() : -100 ",
        "jet_phi2               :=  ? jets.size()>1 ? jets[1].phi() : -100 ",
        "jet_bdiscriminant2     :=  ? jets.size()>1 ? jets[1].bDiscriminator('pfCombinedInclusiveSecondaryVertexV2BJetTags') : -100",
        "jet_pt3                :=  ? jets.size()>2 ? jets[2].pt() : -100 ",
        "jet_eta3               :=  ? jets.size()>2 ? jets[2].eta() : -100 ",
        "jet_phi3               :=  ? jets.size()>2 ? jets[2].phi() : -100 ",
        "jet_bdiscriminant3     :=  ? jets.size()>2 ? jets[2].bDiscriminator('pfCombinedInclusiveSecondaryVertexV2BJetTags') : -100 ",
        "jet_pt4                :=  ? jets.size()>3 ? jets[3].pt() : -100 ",
        "jet_eta4               :=  ? jets.size()>3 ? jets[3].eta() : -100 ",
        "jet_phi4               :=  ? jets.size()>3 ? jets[3].phi() : -100 ",
        "jet_bdiscriminant4     :=  ? jets.size()>3 ? jets[3].bDiscriminator('pfCombinedInclusiveSecondaryVertexV2BJetTags') : -100 ",
        "jet_pt5                :=  ? jets.size()>4 ? jets[4].pt() : -100 ",
        "jet_eta5               :=  ? jets.size()>4 ? jets[4].eta() : -100 ",
        "jet_phi5               :=  ? jets.size()>4 ? jets[4].phi() : -100 ",
        "jet_bdiscriminant5     :=  ? jets.size()>4 ? jets[4].bDiscriminator('pfCombinedInclusiveSecondaryVertexV2BJetTags') : -100 ",
    ],
    ## histograms
    histograms=[])
cfgTools.addCategories(
    process.tagDumper,
    [  ## cuts are applied in cascade
        ("All", "1", 0),
    ],
    variables=[
        "leadptom         := diPhotonMVA.leadptom  ",
        "subleadptom      := diPhotonMVA.subleadptom ",
        "leadmva          := diPhotonMVA.leadmva ",
        "subleadmva       := diPhotonMVA.subleadmva    ",
        "leadeta          := diPhotonMVA.leadeta     ",
        "subleadeta       := diPhotonMVA.subleadeta",
        "sigmarv          := diPhotonMVA.sigmarv",
        "sigmawv          := diPhotonMVA.sigmawv",
        "CosPhi           := diPhotonMVA.CosPhi",
        "vtxprob          := diPhotonMVA.vtxprob",
        "result           := diPhotonMVA.result",
        "mass             := diPhoton.mass",
        "pt               := diPhoton.pt",
        #                        "beamSpot         := diPhotonMVA.beamSpot",
        "leadSigEoE_unsm := ? diPhoton.leadingPhoton().hasUserFloat('unsmaeraedSigmaEoE')? diPhoton.leadingPhoton().userFloat('unsmaeraedSigmaEoE'):0",
        "subleadSigEoE_unsm := ? diPhoton.subLeadingPhoton().hasUserFloat('unsmaeraedSigmaEoE')? diPhoton.subLeadingPhoton().userFloat('unsmaeraedSigmaEoE'):0",
        "dz               := ?!tagTruth().isNull()?abs(tagTruth().genPV().z-diPhoton().vtx().z):0",
        "leadMatchType    := diPhoton.leadingPhoton().genMatchType()",
        "subleadMatchType := diPhoton.subLeadingPhoton().genMatchType()",
        "leadptgen := ?diPhoton.leadingPhoton().hasMatchedGenPhoton()?diPhoton.leadingPhoton().matchedGenPhoton().pt():0",
        "subleadptgen := ?diPhoton.subLeadingPhoton().hasMatchedGenPhoton()?diPhoton.subLeadingPhoton().matchedGenPhoton().pt():0",
        "leadSCeta    := diPhoton.leadingPhoton().superCluster().eta()",
        "subleadSCeta    := diPhoton.subLeadingPhoton().superCluster().eta()",
        "leadSCphi    := diPhoton.leadingPhoton().superCluster().phi()",
        "subleadSCphi    := diPhoton.subLeadingPhoton().superCluster().phi()",
        "leadR9    := diPhoton.leadingPhoton().r9()",
        "subleadR9    := diPhoton.subLeadingPhoton().r9()",
        "leadSigEOverE := diPhoton.leadingPhoton().sigEOverE()",
        "subleadSigEOverE := diPhoton.subLeadingPhoton().sigEOverE()",
        "massgen := diPhoton.genP4().mass()"
    ],
    histograms=[
        "result>>diphoMVAValue(100,-1,1)",
    ])
    "Reject",
    "abs(superCluster.eta)>=1.4442&&abs(superCluster.eta)<=1.566||abs(superCluster.eta)>=2.5",
    -1  ## if nSubcat is -1 do not store anythings
)

# interestng categories
cfgTools.addCategories(
    process.analyzer,
    ## categories definition
    ## cuts are applied in cascade. Events getting to these categories have already failed the "Reject" selection
    [
        ("promptPhotons", "genMatchType == 1", 0),
        ("fakePhotons", "genMatchType != 1", 0),
    ],
    ## variables to be dumped in trees/datasets. Same variables for all categories
    ## if different variables wanted for different categories, can add categorie one by one with cfgTools.addCategory
    variables=[
        "pt", "energy", "eta", "phi", "scEta:=superCluster.eta", "r9",
        "chgIsoWrtWorstVtx := getpfChgIsoWrtWorstVtx03",
        "genIso := userFloat('genIso')",
        "eTrue := ? hasMatchedGenPhoton ? matchedGenPhoton.energy : 0"
    ],
    ## histograms to be plotted.
    ## the variables need to be defined first
    histograms=["r9>>r9(110,0,1.1)", "scEta>>scEta(100,-2.5,2.5)"])

# customization for job splitting, lumi weighting, etc.
from flashgg.MetaData.JobConfig import customize
customize.setDefault("maxEvents", 500)
customize.setDefault("targetLumi", 1.e+4)
customize(process)
Beispiel #41
0
]
all_variables = var.dipho_variables + new_variables
if customize.processId != "Data":
    #    all_variables += var.truth_variables + matching_photon
    all_variables += matching_photon

cats = []
if doJetSystTrees:
    for syst in jetsystlabels:
        systcutstring = "hasSyst(\"%s\") " % syst
        cats += [("ZPlusJet_%s" % syst, systcutstring, 0)]

cats += [("ZPlusJet", "1", 0)]

cfgTools.addCategories(process.ZPlusJetTagDumper,
                       cats,
                       variables=all_variables,
                       histograms=[])

process.ZPlusJetTagDumper.nameTemplate = "$PROCESS_$SQRTS_$CLASSNAME_$SUBCAT_$LABEL"

customize.setDefault("maxEvents", 5000)  # max-number of events
customize.setDefault("targetLumi", 1.00e+3)  # define integrated lumi
customize(process)

from HLTrigger.HLTfilters.hltHighLevel_cfi import hltHighLevel
#process.hltHighLevel = hltHighLevel.clone(HLTPaths = cms.vstring("HLT_Diphoton30_18_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass95_v*") )
process.hltHighLevel = hltHighLevel.clone(
    HLTPaths=cms.vstring("HLT_Ele17_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v*"))
process.options = cms.untracked.PSet(wantSummary=cms.untracked.bool(True))

# ee bad supercluster filter on data
import flashgg.Taggers.dumperConfigTools as cfgTools
process.load("flashgg.Taggers.diphotoMVAWithZeeDumper_cff")
process.load("flashgg.Taggers.photonDumper_cfi")
process.load("flashgg.Taggers.diphotonDumper_cfi") 
process.diphotonDumper.src = cms.InputTag("flashggZeeDiPhotons")

process.TFileService = cms.Service("TFileService",
                                   fileName = cms.string("histo.root"),
                                   closeFileFast = cms.untracked.bool(True)
                                   )

#DIPHOTON MVA
cfgTools.addCategories(process.DiPhotonWithZeeMVADumper,
                       [("All","1", 0),],
                       variables=["dipho_mva:=getMVAValue"],
                       histograms=["dipho_mva>>dipho_mva(100,-1,1)",]
)
# split tree, histogram and datasets by process
process.DiPhotonWithZeeMVADumper.nameTemplate ="zeevalidation_$SQRTS_$LABEL_$SUBCAT"


#cfgTools.addCategories(process.photonDumper,
#                       ## categories EB, EE
#                       [("EB", "abs(superCluster.eta)<1.479", 0),
#                        ("EE", "abs(superCluster.eta)>1.566",0)],
#                       variables=["chIsoRv := getpfChgIsoWrtChosenVtx03",
#                                  "chIsoWv := getpfChgIsoWrtWorstVtx03",
#                                  "phIso := getpfPhoIso03",
#                                  #"rho", 
#                                  "sieie := full5x5_sigmaIetaIeta",
cfgTools.addCategories(
    process.tthLeptonicTagDumper,
    ## categories definition
    [("all", "1", 0)],
    ## variables to be dumped in trees/datasets. Same variables for all categories
    variables=dipho_variables + [
        "n_ele    := electrons.size",
        "ele1_pt  := ?(electrons.size>0)? electrons.at(0).pt : -1",
        "ele2_pt  := ?(electrons.size>1)? electrons.at(1).pt : -1",
        "ele1_eta  := ?(electrons.size>0)? electrons.at(0).eta : -999",
        "ele2_eta  := ?(electrons.size>1)? electrons.at(1).eta : -999",
        "ele1_phi  := ?(electrons.size>0)? electrons.at(0).phi : -999",
        "ele2_phi  := ?(electrons.size>1)? electrons.at(1).phi : -999",
        "ele1_energy  := ?(electrons.size>0)? electrons.at(0).energy : -999",
        "ele2_energy  := ?(electrons.size>1)? electrons.at(1).energy : -999",
        "n_muons  := muons.size",
        "muon1_pt := ?(muons.size>0)? muons.at(0).pt : -1",
        "muon2_pt := ?(muons.size>1)? muons.at(1).pt : -1",
        "muon1_eta := ?(muons.size>0)? muons.at(0).eta : -999",
        "muon2_eta := ?(muons.size>1)? muons.at(1).eta : -999",
        "muon1_phi := ?(muons.size>0)? muons.at(0).phi : -999",
        "muon2_phi := ?(muons.size>1)? muons.at(1).phi : -999",
        "muon1_energy := ?(muons.size>0)? muons.at(0).energy : -999",
        "muon2_energy := ?(muons.size>1)? muons.at(1).energy : -999",
        "tthMVA := mvaRes",
        "jet_pt1                :=  ? jets.size()>0 ? jets[0].pt() : -100 ",
        "jet_eta1               :=  ? jets.size()>0 ? jets[0].eta() : -100 ",
        "jet_phi1               :=  ? jets.size()>0 ? jets[0].phi() : -100 ",
        "jet_bdiscriminant1     :=  ? jets.size()>0 ? jets[0].bDiscriminator('pfDeepCSVJetTags:probb') : -100",
        "jet_pt2                :=  ? jets.size()>1 ? jets[1].pt() : -100 ",
        "jet_eta2               :=  ? jets.size()>1 ? jets[1].eta() : -100 ",
        "jet_phi2               :=  ? jets.size()>1 ? jets[1].phi() : -100 ",
        "jet_bdiscriminant2     :=  ? jets.size()>1 ? jets[1].bDiscriminator('pfDeepCSVJetTags:probb') : -100",
        "jet_pt3                :=  ? jets.size()>2 ? jets[2].pt() : -100 ",
        "jet_eta3               :=  ? jets.size()>2 ? jets[2].eta() : -100 ",
        "jet_phi3               :=  ? jets.size()>2 ? jets[2].phi() : -100 ",
        "jet_bdiscriminant3     :=  ? jets.size()>2 ? jets[2].bDiscriminator('pfDeepCSVJetTags:probb') : -100 ",
        "jet_pt4                :=  ? jets.size()>3 ? jets[3].pt() : -100 ",
        "jet_eta4               :=  ? jets.size()>3 ? jets[3].eta() : -100 ",
        "jet_phi4               :=  ? jets.size()>3 ? jets[3].phi() : -100 ",
        "jet_bdiscriminant4     :=  ? jets.size()>3 ? jets[3].bDiscriminator('pfDeepCSVJetTags:probb') : -100 ",
        "jet_pt5                :=  ? jets.size()>4 ? jets[4].pt() : -100 ",
        "jet_eta5               :=  ? jets.size()>4 ? jets[4].eta() : -100 ",
        "jet_phi5               :=  ? jets.size()>4 ? jets[4].phi() : -100 ",
        "jet_bdiscriminant5     :=  ? jets.size()>4 ? jets[4].bDiscriminator('pfDeepCSVJetTags:probb') : -100 ",
        "jet_pt6                :=  ? jets.size()>5 ? jets[5].pt() : -100 ",
        "jet_eta6               :=  ? jets.size()>5 ? jets[5].eta() : -100 ",
        "jet_phi6               :=  ? jets.size()>5 ? jets[5].phi() : -100 ",
        "jet_bdiscriminant6     :=  ? jets.size()>5 ? jets[5].bDiscriminator('pfDeepCSVJetTags:probb') : -100 ",
        "jet_pt7                :=  ? jets.size()>6 ? jets[6].pt() : -100 ",
        "jet_eta7               :=  ? jets.size()>6 ? jets[6].eta() : -100 ",
        "jet_phi7               :=  ? jets.size()>6 ? jets[6].phi() : -100 ",
        "jet_bdiscriminant7     :=  ? jets.size()>6 ? jets[6].bDiscriminator('pfDeepCSVJetTags:probb') : -100 ",
        "jet_pt8                :=  ? jets.size()>7 ? jets[7].pt() : -100 ",
        "jet_eta8               :=  ? jets.size()>7 ? jets[7].eta() : -100 ",
        "jet_phi8               :=  ? jets.size()>7 ? jets[7].phi() : -100 ",
        "jet_bdiscriminant8     :=  ? jets.size()>7 ? jets[7].bDiscriminator('pfDeepCSVJetTags:probb') : -100 ",
        "jet_pt9                :=  ? jets.size()>8 ? jets[8].pt() : -100 ",
        "jet_eta9               :=  ? jets.size()>8 ? jets[8].eta() : -100 ",
        "jet_phi9               :=  ? jets.size()>8 ? jets[8].phi() : -100 ",
        "jet_bdiscriminant9     :=  ? jets.size()>8 ? jets[8].bDiscriminator('pfDeepCSVJetTags:probb') : -100 ",
        "jet_pt10                :=  ? jets.size()>9 ? jets[9].pt() : -100 ",
        "jet_eta10               :=  ? jets.size()>9 ? jets[9].eta() : -100 ",
        "jet_phi10               :=  ? jets.size()>9 ? jets[9].phi() : -100 ",
        "jet_bdiscriminant10     :=  ? jets.size()>9 ? jets[9].bDiscriminator('pfDeepCSVJetTags:probb') : -100 ",
        "jet_pt11                :=  ? jets.size()>10 ? jets[10].pt() : -100 ",
        "jet_eta11               :=  ? jets.size()>10 ? jets[10].eta() : -100 ",
        "jet_phi11               :=  ? jets.size()>10 ? jets[10].phi() : -100 ",
        "jet_bdiscriminant11     :=  ? jets.size()>10 ? jets[10].bDiscriminator('pfDeepCSVJetTags:probb') : -100 ",
        "jet_pt12                :=  ? jets.size()>11 ? jets[11].pt() : -100 ",
        "jet_eta12               :=  ? jets.size()>11 ? jets[11].eta() : -100 ",
        "jet_phi12               :=  ? jets.size()>11 ? jets[11].phi() : -100 ",
        "jet_bdiscriminant12     :=  ? jets.size()>11 ? jets[11].bDiscriminator('pfDeepCSVJetTags:probb') : -100 ",
        "jet_pt13                :=  ? jets.size()>12 ? jets[12].pt() : -100 ",
        "jet_eta13               :=  ? jets.size()>12 ? jets[12].eta() : -100 ",
        "jet_phi13               :=  ? jets.size()>12 ? jets[12].phi() : -100 ",
        "jet_bdiscriminant13     :=  ? jets.size()>12 ? jets[12].bDiscriminator('pfDeepCSVJetTags:probb') : -100 ",
        "jet_pt14                :=  ? jets.size()>13 ? jets[13].pt() : -100 ",
        "jet_eta14               :=  ? jets.size()>13 ? jets[13].eta() : -100 ",
        "jet_phi14               :=  ? jets.size()>13 ? jets[13].phi() : -100 ",
        "jet_bdiscriminant14     :=  ? jets.size()>13 ? jets[13].bDiscriminator('pfDeepCSVJetTags:probb') : -100 ",
        "jet_pt15                :=  ? jets.size()>14 ? jets[14].pt() : -100 ",
        "jet_eta15               :=  ? jets.size()>14 ? jets[14].eta() : -100 ",
        "jet_phi15               :=  ? jets.size()>14 ? jets[14].phi() : -100 ",
        "jet_bdiscriminant15     :=  ? jets.size()>14 ? jets[14].bDiscriminator('pfDeepCSVJetTags:probb') : -100 ",
        "jet_bbdiscriminant1  := ?(jets.size>0)? jets.at(0).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant2  := ?(jets.size>1)? jets.at(1).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant3  := ?(jets.size>2)? jets.at(2).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant4  := ?(jets.size>3)? jets.at(3).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant5  := ?(jets.size>4)? jets.at(4).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant6  := ?(jets.size>5)? jets.at(5).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant7  := ?(jets.size>6)? jets.at(6).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant8  := ?(jets.size>7)? jets.at(7).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant9  := ?(jets.size>8)? jets.at(8).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant10  := ?(jets.size>9)? jets.at(9).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant11  := ?(jets.size>10)? jets.at(10).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant12  := ?(jets.size>11)? jets.at(11).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant13  := ?(jets.size>12)? jets.at(12).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant14  := ?(jets.size>13)? jets.at(13).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_bbdiscriminant15  := ?(jets.size>14)? jets.at(14).bDiscriminator('pfDeepCSVJetTags:probbb') : -1",
        "jet_cdiscriminant1  := ?(jets.size>0)? jets.at(0).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant2  := ?(jets.size>1)? jets.at(1).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant3  := ?(jets.size>2)? jets.at(2).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant4  := ?(jets.size>3)? jets.at(3).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant5  := ?(jets.size>4)? jets.at(4).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant6  := ?(jets.size>5)? jets.at(5).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant7  := ?(jets.size>6)? jets.at(6).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant8  := ?(jets.size>7)? jets.at(7).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant9  := ?(jets.size>8)? jets.at(8).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant10  := ?(jets.size>9)? jets.at(9).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant11  := ?(jets.size>10)? jets.at(10).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant12  := ?(jets.size>11)? jets.at(11).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant13  := ?(jets.size>12)? jets.at(12).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant14  := ?(jets.size>13)? jets.at(13).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_cdiscriminant15  := ?(jets.size>14)? jets.at(14).bDiscriminator('pfDeepCSVJetTags:probc') : -1",
        "jet_udsgdiscriminant1  := ?(jets.size>0)? jets.at(0).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant2  := ?(jets.size>1)? jets.at(1).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant3  := ?(jets.size>2)? jets.at(2).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant4  := ?(jets.size>3)? jets.at(3).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant5  := ?(jets.size>4)? jets.at(4).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant6  := ?(jets.size>5)? jets.at(5).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant7  := ?(jets.size>6)? jets.at(6).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant8  := ?(jets.size>7)? jets.at(7).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant9  := ?(jets.size>8)? jets.at(8).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant10  := ?(jets.size>9)? jets.at(9).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant11  := ?(jets.size>10)? jets.at(10).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant12  := ?(jets.size>11)? jets.at(11).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant13  := ?(jets.size>12)? jets.at(12).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant14  := ?(jets.size>13)? jets.at(13).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_udsgdiscriminant15  := ?(jets.size>14)? jets.at(14).bDiscriminator('pfDeepCSVJetTags:probudsg') : -1",
        "jet_energy1  := ?(jets.size>0)? jets.at(0).energy : -1",
        "jet_energy2  := ?(jets.size>1)? jets.at(1).energy : -1",
        "jet_energy3  := ?(jets.size>2)? jets.at(2).energy : -1",
        "jet_energy4  := ?(jets.size>3)? jets.at(3).energy : -1",
        "jet_energy5  := ?(jets.size>4)? jets.at(4).energy : -1",
        "jet_energy6  := ?(jets.size>5)? jets.at(5).energy : -1",
        "jet_energy7  := ?(jets.size>6)? jets.at(6).energy : -1",
        "jet_energy8  := ?(jets.size>7)? jets.at(7).energy : -1",
        "jet_energy9  := ?(jets.size>8)? jets.at(8).energy : -1",
        "jet_energy10  := ?(jets.size>9)? jets.at(9).energy : -1",
        "jet_energy11  := ?(jets.size>10)? jets.at(10).energy : -1",
        "jet_energy12  := ?(jets.size>11)? jets.at(11).energy : -1",
        "jet_energy13  := ?(jets.size>12)? jets.at(12).energy : -1",
        "jet_energy14  := ?(jets.size>13)? jets.at(13).energy : -1",
        "jet_energy15  := ?(jets.size>14)? jets.at(14).energy : -1",
    ],
    ## histograms
    histograms=[])
Beispiel #44
0
    "Reject",
    "   abs(superCluster.eta)>=1.4442&&abs(superCluster.eta)<=1.566 "
    "|| abs(superCluster.eta)>=2.5 "
    "|| pt<100",
    -1  ## if nSubcat is -1 do not store anythings
)

# interestng categories
cfgTools.addCategories(
    process.photonDumper,
    ## categories definition
    ## cuts are applied in cascade. Events getting to these categories have already failed the "Reject" selection
    [
        ("promptTree", "genMatchType == 1", 0),
        ("fakesTree", "genMatchType != 1", 0),
    ],
    ## variables to be dumped in trees/datasets. Same variables for all categories
    ## if different variables wanted for different categories, can add categorie one by one with cfgTools.addCategory
    variables=variables,
    ## histograms to be plotted.
    ## the variables need to be defined first
    histograms=histograms,
    ## compute MVA on the fly. More then one MVA can be tested at once
    mvas=None)

process.idleWatchdog = cms.EDAnalyzer(
    "IdleWatchdog",
    checkEvery=cms.untracked.int32(100),
    minIdleFraction=cms.untracked.double(0.5),
    tolerance=cms.untracked.int32(5))

process.p1 = cms.Path(
cfgTools.addCategories(process.tagDumper,
			[## cuts are applied in cascade
			("All","1",0),
			],
			variables=[
			"leadptom         := diPhotonMVA.leadptom  ",
			"subleadptom      := diPhotonMVA.subleadptom ",
			"leadmva          := diPhotonMVA.leadmva ",
			"subleadmva       := diPhotonMVA.subleadmva    ",
			"leadeta          := diPhotonMVA.leadeta     ",
			"subleadeta       := diPhotonMVA.subleadeta",
			"sigmarv          := diPhotonMVA.sigmarv",
     			"sigmawv          := diPhotonMVA.sigmawv",
			"CosPhi           := diPhotonMVA.CosPhi",
			"vtxprob          := diPhotonMVA.vtxprob",
			"result           := diPhotonMVA.result",
			"mass             := diPhoton.mass",
			"pt               := diPhoton.pt",
#                        "beamSpot         := diPhotonMVA.beamSpot",
                        "leadSigEoE_unsm := ? diPhoton.leadingPhoton().hasUserFloat('unsmaeraedSigmaEoE')? diPhoton.leadingPhoton().userFloat('unsmaeraedSigmaEoE'):0", 
                        "subleadSigEoE_unsm := ? diPhoton.subLeadingPhoton().hasUserFloat('unsmaeraedSigmaEoE')? diPhoton.subLeadingPhoton().userFloat('unsmaeraedSigmaEoE'):0", 
                        "dz               := ?!tagTruth().isNull()?abs(tagTruth().genPV().z-diPhoton().vtx().z):0",
                        "leadMatchType    := diPhoton.leadingPhoton().genMatchType()",
                        "subleadMatchType := diPhoton.subLeadingPhoton().genMatchType()",
                        "leadptgen := ?diPhoton.leadingPhoton().hasMatchedGenPhoton()?diPhoton.leadingPhoton().matchedGenPhoton().pt():0",
                        "subleadptgen := ?diPhoton.subLeadingPhoton().hasMatchedGenPhoton()?diPhoton.subLeadingPhoton().matchedGenPhoton().pt():0",
                        "leadSCeta    := diPhoton.leadingPhoton().superCluster().eta()",
                        "subleadSCeta    := diPhoton.subLeadingPhoton().superCluster().eta()",
                        "leadSCphi    := diPhoton.leadingPhoton().superCluster().phi()",
                        "subleadSCphi    := diPhoton.subLeadingPhoton().superCluster().phi()",
                        "leadR9    := diPhoton.leadingPhoton().r9()",
                        "subleadR9    := diPhoton.subLeadingPhoton().r9()",
                        "leadSigEOverE := diPhoton.leadingPhoton().sigEOverE()",
                        "subleadSigEOverE := diPhoton.subLeadingPhoton().sigEOverE()",
                        "massgen := diPhoton.genP4().mass()"
			],
			histograms=[
			"result>>diphoMVAValue(100,-1,1)",
			]
			)
Beispiel #46
0
cfgTools.addCategories(
    process.vhEtTagDumper,
    ## categories definition
    [("all", "1", 0)],
    ## variables to be dumped in trees/datasets. Same variables for all categories
    variables=dipho_variables + [
        "pfMET_rawPt        := met.uncorPt",
        "pfMET_rawPhi       := met.uncorPhi",
        "pfMET_rawSumEt     := met.uncorSumEt",
        "pfMET_corPt        := met.corPt",
        "pfMET_corPhi       := met.corPhi",
        "pfMET_corSumEt     := met.corSumEt",
        "caloMET_rawPt      := met.caloMETPt",
        "caloMET_rawPhi     := met.caloMETPhi",
        "caloMET_rawSumEt   := met.caloMETSumEt",
        #"genMET_pt          := met.genMET.pt",
        #"genMET_phi         := met.genMET.phi",
        #"genMET_sumEt       := met.genMET.sumEt",
        #"pfNeutralEMFraction := met.NeutralEMFraction",
        #"pfNeutralHadEtFraction := met.NeutralHadEtFraction",
        #"pfChargedEMEtFraction := met.ChargedEMEtFraction",
        #"pfChargedHadEtFraction := met.ChargedHadEtFraction",
        "hasZ := tagTruth().associatedZ",
        "hasW := tagTruth().associatedW",
        "VhasDaughters := tagTruth().VhasDaughters",
        "VhasNeutrinos := tagTruth().VhasNeutrinos",
        "VhasMissingLeptons := tagTruth().VhasMissingLeptons",
        "genZ := tagTruth().genPV().z",
        "Vpt := tagTruth().Vpt"
    ],
    histograms=[
        "mass>>mass(160,100,180)",
        "subleadPt:leadPt>>ptLeadvsSub(180,20,200:180,20,200)",
        "leadIDMVA>>leadIDMVA(50,0,1)",
        "subleadIDMVA>>subleadIDMVA(50,0,1)",
        "pfMET_rawPt>>pfMET_rawPt(250,0,500)",
        "pfMET_corPt>>pfMET_corPt(250,0,500)",
        "pfMET_rawSumEt>>pfMET_rawSumEt(400,200,2000)",
        "pfMET_corSumEt>>pfMET_corSumEt(400,200,2000)",
        "caloMET_rawPt>>caloMET_rawPt(250,0,500)",
        "caloMET_rawSumEt>>caloMET_rawSumEt(400,200,2000)",
        "pfMET_rawPhi>>pfMET_rawPhi(100,-3.14,3.14)",
        "pfMET_corPhi>>pfMET_corPhi(100,-3.14,3.14)",
        "caloMET_rawPhi>>caloMET_rawPhi(100,-3.14,3.14)",
        #"genMET_pt>>genMET_pt(250,0,500)",
        #"genMET_phi>>genMET_phi(100,-3.14,3.14)",
        #"genMET_sumEt>>genMET_sumEt(400,200,2000)"
    ])
Beispiel #47
0
cfgTools.addCategories(process.vhEtTagDumper,
                       ## categories definition                                                                                                                                                                                  
                       [("all","1",0)
                    ],
                       ## variables to be dumped in trees/datasets. Same variables for all categories                                                                                                                            
                       variables=dipho_variables+
                       ["pfMET_rawPt        := met.uncorPt",
                        "pfMET_rawPhi       := met.uncorPhi",
                        "pfMET_rawSumEt     := met.uncorSumEt",
                        "pfMET_corPt        := met.corPt",
                        "pfMET_corPhi       := met.corPhi",
                        "pfMET_corSumEt     := met.corSumEt",
                        "caloMET_rawPt      := met.caloMETPt",
                        "caloMET_rawPhi     := met.caloMETPhi",
                        "caloMET_rawSumEt   := met.caloMETSumEt",
                        #"genMET_pt          := met.genMET.pt",
                        #"genMET_phi         := met.genMET.phi",
                        #"genMET_sumEt       := met.genMET.sumEt",
                        "pfNeutralEMFraction := met.NeutralEMFraction",
                        "pfNeutralHadEtFraction := met.NeutralHadEtFraction",
                        "pfChargedEMEtFraction := met.ChargedEMEtFraction",
                        "pfChargedHadEtFraction := met.ChargedHadEtFraction"
                        ],
                       histograms=["mass>>mass(160,100,180)",
                                   "subleadPt:leadPt>>ptLeadvsSub(180,20,200:180,20,200)",
                                   "leadIDMVA>>leadIDMVA(50,0,1)",
                                   "subleadIDMVA>>subleadIDMVA(50,0,1)",
                                   "pfMET_rawPt>>pfMET_rawPt(250,0,500)",
                                   "pfMET_corPt>>pfMET_corPt(250,0,500)",
                                   "pfMET_rawSumEt>>pfMET_rawSumEt(400,200,2000)",
                                   "pfMET_corSumEt>>pfMET_corSumEt(400,200,2000)",
                                   "caloMET_rawPt>>caloMET_rawPt(250,0,500)",
                                   "caloMET_rawSumEt>>caloMET_rawSumEt(400,200,2000)",
                                   "pfMET_rawPhi>>pfMET_rawPhi(100,-3.14,3.14)",
                                   "pfMET_corPhi>>pfMET_corPhi(100,-3.14,3.14)",
                                   "caloMET_rawPhi>>caloMET_rawPhi(100,-3.14,3.14)",
                                   #"genMET_pt>>genMET_pt(250,0,500)",
                                   #"genMET_phi>>genMET_phi(100,-3.14,3.14)",
                                   #"genMET_sumEt>>genMET_sumEt(400,200,2000)"
                                  ]
                       )
Beispiel #48
0
#process.diphotonDumper.src = cms.InputTag("flashggUpdatedIdMVADiPhotons")
#process.diphotonDumper.src = cms.InputTag("flashggDiPhotons")
process.diphotonDumper.dumpHistos = False
process.diphotonDumper.dumpTrees  =  True
process.diphotonDumper.dumpGlobalVariables = cms.untracked.bool(True)
process.diphotonDumper.globalVariables = process.globalVariables

process.TFileService = cms.Service("TFileService",
                                   fileName = cms.string("histo.root"),
                                   closeFileFast = cms.untracked.bool(True)
                                   )

#DIPHOTON MVA
cfgTools.addCategories(process.DiPhotonWithZeeMVADumper,
                       [("All","1", 0),],
                       variables=["dipho_mva:=mvaValue"],
                       histograms=["dipho_mva>>dipho_mva(100,-1,1)",]
                       )
# split tree, histogram and datasets by process
process.DiPhotonWithZeeMVADumper.nameTemplate ="zeevalidation_$SQRTS_$LABEL_$SUBCAT"


cfgTools.addCategories(process.diphotonDumper,
                       ## categories definition
                       ## cuts are applied in cascade. Events getting to these categories have already failed the "Reject" selection
                       [("All","1", 0)
                        #("EB", "abs(superCluster.eta)<1.479", 0),
                        #("EE", "abs(superCluster.eta)>1.566",0)
                        ],
                       variables=["leadPhIso        := leadingPhoton.pfPhoIso03()",
                                  "leadNeuIso       := leadingPhoton.pfNeutIso03()",
			)
process.DiPhotonMVADumperNew.dumpTrees = True
process.DiPhotonMVADumperNew.dumpWorkspace = False
process.DiPhotonMVADumperNew.quietRooFit = True

cfgTools.addCategories(process.DiPhotonMVADumperNew,
			[## cuts are applied in cascade
			("All","1",0),
			],
			variables=[
			"leadptom   :=  leadptom  ",
			"subleadptom    :=  subleadptom ",
			"leadmva :=  leadmva ",
			"subleadmva    :=  subleadmva    ",
			"leadeta     :=  leadeta     ",
			"subleadeta  := subleadeta",
			"sigmarv  := sigmarv",
     			"sigmawv  := sigmawv",
			"CosPhi := CosPhi",
			"vtxprob := vtxprob",
			"result := result",
			],
			histograms=[
			"result>>diphoMVAValue(100,-1,1)",
			]
			)
# split tree, histogram and datasets by process
process.DiPhotonMVADumperNew.nameTemplate ="$PROCESS_$SQRTS_$LABEL_$SUBCAT"


# customization for job splitting, lumi weighting, etc.
                       "&& dijet_Mjj     > 250 && leadPho_PToM  > 0.5")

cfgTools.addCategories(process.VBFMVADumperPUPPI,
                       [## cuts are applied in cascade
                           ("VBFDiJet"           ,"dijet_LeadJPt > 0",0),
                           ("PreselectedVBFDiJet",preselection_cut   ,0),
                           ("expluded","1",0) # really importent to avoid having an error
                       ],
                       variables=[
                           "dijet_abs_dEta   := dijet_abs_dEta ",
                           "dijet_leadEta    := dijet_leadEta ",
                           "dijet_subleadEta := dijet_subleadEta ",
                           "dijet_LeadJPt    := dijet_LeadJPt ",
                           "dijet_SubJPt     := dijet_SubJPt ",
                           "dijet_Zep        := dijet_Zep ",
                           "dijet_Mjj        := dijet_Mjj ",
                           "dipho_PToM       := dipho_PToM ",
                           "leadPho_PToM     := leadPho_PToM ",
                           "sublPho_PToM     := sublPho_PToM ",
                           "dijet_dPhi_trunc := dijet_dPhi_trunc ",
                           "VBFMVAValue      := VBFMVAValue ",
                           "vbfMvaResult_value_bdt  := vbfMvaResult_value_bdt",
                           "vbfMvaResult_value_bdtg := vbfMvaResult_value_bdtg",
                       ],
                       histograms=[
                           "vbfMvaResult_value>>outputBDT(400,-1,1)",
                           "vbfMvaResult_value_bdt>>output_bdt(400,-1,1)",
                           "vbfMvaResult_value_bdtg>>output_bdtg(400,-1,1)",
                       ]
)

# split tree, histogram and datasets by process
Beispiel #51
0
cfgTools.addCategories(
    process.analyzer,
    ## categories definition
    ## cuts are applied in cascade. Events getting to these categories have already failed the "Reject" selection
    [
        ("EBHighR9",
         "max(abs(leadingPhoton.superCluster.eta),abs(leadingPhoton.superCluster.eta))<1.4442"
         "&& min(leadingPhoton.r9,subLeadingPhoton.r9)>0.94",
         0),  ## EB high R9
        ("EBLowR9",
         "max(abs(leadingPhoton.superCluster.eta),abs(leadingPhoton.superCluster.eta))<1.4442",
         0),  ## remaining EB is low R9
        ("EEHighR9", "min(leadingPhoton.r9,subLeadingPhoton.r9)>0.94",
         0),  ## then EE high R9
        ("EELowR9", "1", 0),  ## evereything elese is EE low R9
    ],
    ## variables to be dumped in trees/datasets. Same variables for all categories
    ## if different variables wanted for different categories, can add categorie one by one with cfgTools.addCategory
    variables=[
        "CMS_hgg_mass[320,100,180]:=mass",
        "leadPt                   :=leadingPhoton.pt",
        "subleadPt                :=subLeadingPhoton.pt",
        "minR9                    :=min(leadingPhoton.r9,subLeadingPhoton.r9)",
        "maxEta                   :=max(abs(leadingPhoton.superCluster.eta),abs(leadingPhoton.superCluster.eta))"
    ],
    ## histograms to be plotted.
    ## the variables need to be defined first
    histograms=[
        "CMS_hgg_mass>>mass(320,100,180)",
        "subleadPt:leadPt>>ptSubVsLead(180,20,200:180,20,200)",
        "minR9>>minR9(110,0,1.1)",
        "maxEta>>maxEta[0.,0.1,0.2,0.3,0.4,0.6,0.8,1.0,1.2,1.4442,1.566,1.7,1.8,2.,2.2,2.3,2.5]"
    ])
cfgTools.addCategories(
    process.mumugammaDumper,
    ## categories definition
    ## cuts are applied in cascade. Events getting to these categories have already failed the "Reject" selection
    [
        ("EB", "abs(MMG_Photon.superCluster.eta)<1.5", 0),  ##
        ("EE", "abs(MMG_Photon.superCluster.eta)>1.5",
         0),  ##("EE","1",0), ## evereything elese is EB+EE
    ],
    ## variables to be dumped in trees/datasets. Same variables for all categories
    ## if different variables wanted for different categories, can add categorie one by one with cfgTools.addCategory
    variables=[
        "Mass_mmg            :=mass",
        "Mass_mumu           :=DiMuPtr.mass",
        "PT_mumu             :=DiMuPtr.pt",
        "leadPt              :=DiMuPtr.leadingMuon.pt",
        "subleadPt           :=DiMuPtr.subleadingMuon.pt",
        "photonPT            :=MMG_Photon.pt",
        #"photonMVAOutput     :=MMG_Photon.PhoIdMvaDWrtVtx(Vertex)",
        "photonSCeta         :=MMG_Photon.superCluster.eta"
        #"evtrho              :=rho"
    ],
    ## histograms to be plotted.
    ## the variables need to be defined first
    histograms=[
        "Mass_mmg>>mass(160,10,170)",
        "Mass_mumu>>mass_mumu(80,20,100)",
        "PT_mumu>>pt_mumu(100,0,100)",
        "Mass_mmg:Mass_mumu>>MmmgVsMmm(120,30,150:120,30,150)",
        "subleadPt:leadPt>>ptSubVsLead(200,10,210:200,10,210)",
        #"evtrho>>eventRho(50, 0, 50)",
        "photonPT>>photonpt(100,10,110)",
        #"photonMVAOutput>>IDmva(80,0.2,1.0)",
        "photonSCeta>>scEta(50,-2.5,2.5)"
        #"maxEta>>maxEta[0.,0.1,0.2,0.3,0.4,0.6,0.8,1.0,1.2,1.4442,1.566,1.7,1.8,2.,2.2,2.3,2.5]"
    ])
Beispiel #53
0
process.vertexViewDumper.dumpTrees = True
process.vertexViewDumper.dumpWorkspace = False
process.vertexViewDumper.quietRooFit = True

# interestng categories
cfgTools.addCategories(
    process.vertexViewDumper,
    ## categories definition
    ## cuts are applied in cascade. Events getting to these categories have already failed the "Reject" selection
    [
        ("trueVertexes", "isClosestToGen", 0),
        ("puVertexes", "!isClosestToGen", 0),
    ],
    ## variables to be dumped in trees/datasets. Same variables for all categories
    ## if different variables wanted for different categories, can add categorie one by one with cfgTools.addCategory
    variables=[
        "logSumPt2", "ptBal", "ptAsym", "nConv", "pullConv", "vx := pos.x",
        "vy := pos.y", "vx := pos.y", "dZtoGen"
    ],
    ## histograms to be plotted.
    ## the variables need to be defined first
    histograms=[
        "dZtoGen>>dZtoGen(100,-10.,10.)",
        "logSumPt2>>logSumPt2(100,-2,10)",
    ])

process.p1 = cms.Path(process.kinPreselDiPhotons *
                      process.flashggSingleVertexViews *
                      process.vertexViewDumper)

from flashgg.MetaData.JobConfig import customize
Beispiel #54
0
                 "subleadPhi       := diPhoton.subLeadingPhoton.phi",
                 "sublead_sieie    := diPhoton.subLeadingPhoton.sigmaIetaIeta",
                 "sublead_hoe      := diPhoton.subLeadingPhoton.hadronicOverEm",
                 "sublead_sigmaEoE := diPhoton.subLeadingPhoton.sigEOverE",
                 "sublead_ptoM     := diPhoton.subLeadingPhoton.pt/diPhoton.mass",
                 "subleadR9        := diPhoton.subLeadingPhoton.r9",
                 "leadIDMVA        := diPhoton.leadingView.phoIdMvaWrtChosenVtx",
                 "subleadIDMVA     := diPhoton.subLeadingView.phoIdMvaWrtChosenVtx",]

## Untagged ##
cfgTools.addCategories(process.untaggedDumper,
                       ## categories definition
                       [("all","1",0)
                    ],                       
                       ## variables to be dumped in trees/datasets. Same variables for all categories
                       variables=dipho_variables,
                       

                       ## histograms
                       histograms=[]
)
                       

## VBF ##
cfgTools.addCategories(process.vbfTagDumper,
                       ## categories definition
                       [("all","1",0)
                    ],                       
                       ## variables to be dumped in trees/datasets. Same variables for all categories
                       variables=dipho_variables+                       
                       ["dRphoLeadJ    := min(deltaR(leadingJet.eta, leadingJet.phi, diPhoton.leadingPhoton.eta, diPhoton.leadingPhoton.phi), deltaR(leadingJet.eta, leadingJet.phi, diPhoton.subLeadingPhoton.eta, diPhoton.subLeadingPhoton.phi))",
    massCut = min(massCutEB,massCutEE)
else:
    massCutEB,massCutEE = None,None
    massCut = float(customize.massCut)

if massCutEB or massCutEE:
    cfgTools.addCategory(diphotonDumper,"RejectLowMass",
                         "   (max(abs(leadingPhoton.superCluster.eta),abs(subLeadingPhoton.superCluster.eta))<1.4442 && mass <= %f)"
                         "|| (max(abs(leadingPhoton.superCluster.eta),abs(subLeadingPhoton.superCluster.eta))>1.566  && mass <= %f)" %
                                            (massCutEB,massCutEE),-1)
cfgTools.addCategories(diphotonDumper,
                       [## cuts are applied in cascade
                        ## ("all","1"),
                        ("EBHighR9","max(abs(leadingPhoton.superCluster.eta),abs(subLeadingPhoton.superCluster.eta))<1.4442"
                         "&& min(leadingPhoton.r9,subLeadingPhoton.r9)>0.94",0),
                        ("EBLowR9","max(abs(leadingPhoton.superCluster.eta),abs(subLeadingPhoton.superCluster.eta))<1.4442",0),
                        ("EEHighR9","min(leadingPhoton.r9,subLeadingPhoton.r9)>0.94",0),
                        ("EELowR9","1",0),
                        ],
                       variables=variables,
                       histograms=histograms
                       )

# single photon dumper
photonDumper.processId = "test"
photonDumper.dumpTrees = False
photonDumper.dumpWorkspace = False
photonDumper.quietRooFit = True
photonDumper.maxCandPerEvent=2
photonDumper.nameTemplate = "$PROCESS_$SQRTS_$LABEL_$SUBCAT"
cfgTools.addCategories(photonDumper,
                       [## cuts are applied in cascade
Beispiel #56
0
cfgTools.addCategories(diphotonDumper,
                       [## cuts are applied in cascade
                        ("EBHighR9","max(abs(leadingPhoton.superCluster.eta),abs(subLeadingPhoton.superCluster.eta))<1.4442"
                         "&& min(leadingPhoton.r9,subLeadingPhoton.r9)>0.94",0),
                        ("EBLowR9","max(abs(leadingPhoton.superCluster.eta),abs(subLeadingPhoton.superCluster.eta))<1.4442",0),
                        ("EEHighR9","min(leadingPhoton.r9,subLeadingPhoton.r9)>0.94",0),
                        ("EELowR9","1",0),
                        ],
                       variables=["mass", 
                                  "leadPt                   :=leadingPhoton.pt",
                                  "subleadPt                :=subLeadingPhoton.pt",
                                  "leadCShapeMVA            :=leadingPhoton.userFloat('cShapeMVA')",
                                  "subleadCShapeMVA         :=subLeadingPhoton.userFloat('cShapeMVA')",
                                  "minR9                    :=min(leadingPhoton.r9,subLeadingPhoton.r9)",
                                  "maxEta                   :=max(abs(leadingPhoton.superCluster.eta),abs(subLeadingPhoton.superCluster.eta))",
                                  
                                  "leadBlockChIso   := leadingPhotonView.pfChIso03WrtChosenVtx", 
                                  "leadBlockPhoIso  := leadingPhotonView.pfPhoIso03", 
                                  "leadRndConeChIso := leadingPhotonView.extraChgIsoWrtChoosenVtx('rnd03')",
                                  "leadRndConePhoIso:= leadingPhoton.extraPhoIso('rnd03')",
                                  

                                  "leadChIso   := leadingPhoton.egChargedHadronIso", 
                                  "leadChIso   := leadingPhoton.egChargedHadronIso", 
                                  "leadPhoIso  := leadingPhoton.egPhotonIso", 
                                  "leadNeutIso := leadingPhoton.egNeutralHadronIso",
                                  "leadHoE     := leadingPhoton.hadTowOverEm",
                                  "leadSigmaIeIe := (?leadingPhoton.r9>0.8||leadingPhoton.egChargedHadronIso<20||leadingPhoton.egChargedHadronIso/leadingPhoton.pt<0.3?leadingPhoton.full5x5_sigmaIetaIeta:leadingPhoton.sigmaIetaIeta)",
                                  "leadPixSeed  := leadingPhoton.hasPixelSeed",
                                  "leadPassEleVeto := leadingPhoton.passElectronVeto",


                                  "subleadBlockChIso   := subLeadingPhotonView.pfChIso03WrtChosenVtx", 
                                  "subleadBlockPhoIso  := subLeadingPhotonView.pfPhoIso03", 
                                  "subleadRndConeChIso := subleadingPhotonView.extraChgIsoWrtChoosenVtx('rnd03')",
                                  "subleadRndConePhoIso:= subleadingPhoton.extraPhoIso('rnd03')",
                                  
                                  "subleadChIso   := subLeadingPhoton.egChargedHadronIso", 
                                  "subleadPhoIso  := subLeadingPhoton.egPhotonIso", 
                                  "subleadNeutIso := subLeadingPhoton.egNeutralHadronIso",
                                  "subleadHoE     := subLeadingPhoton.hadTowOverEm",
                                  "subleadSigmaIeIe := (?subLeadingPhoton.r9>0.8||subLeadingPhoton.egChargedHadronIso<20||subLeadingPhoton.egChargedHadronIso/subLeadingPhoton.pt<0.3?subLeadingPhoton.full5x5_sigmaIetaIeta:subLeadingPhoton.sigmaIetaIeta)",
                                  "subleadPixSeed := subLeadingPhoton.hasPixelSeed",
                                  "subleadPassEleVeto := subLeadingPhoton.passElectronVeto",
                                  ],
                       histograms=["mass>>mass(1500,0,15000)",
                                   "leadPt>>leadPt(145,100,3000)",
                                   "subleadPt>>subleadPt(145,100,3000)",
                                   
                                   "leadBlockChIso>>leadBlockChIso(60,-10,50)",
                                   "leadBlockPhoIso>>leadBlockPhoIso(60,-10,50)",
                                   "leadChIso>>leadChIso(60,-10,50)",
                                   "leadPhoIso>>leadPhoIso(60,-10,50)",
                                   "leadNeutIso>>leadNeutIso(60,-10,50)",
                                   "leadHoE>>leadHoE(40,0,0.2)",
                                   "leadSigmaIeIe>>leadSigmaIeIe(50,0,5.e-2)",
                                   "leadPixSeed>>leadPixSeed(2,-0.5,1.5)",
                                   "subleadPassEleVeto>>subleadPassEleVeto(2,-0.5,1.5)",

                                   "subleadBlockChIso>>subleadBlockChIso(60,-10,50)",
                                   "subleadBlockPhoIso>>subleadBlockPhoIso(60,-10,50)",
                                   "subleadChIso>>subleadChIso(60,-10,50)",
                                   "subleadPhoIso>>subleadPhoIso(60,-10,50)",
                                   "subleadNeutIso>>subleadNeutIso(60,-10,50)",
                                   "subleadHoE>>subleadHoE(40,0,0.2)",
                                   "subleadSigmaIeIe>>subleadSigmaIeIe(50,0,5.e-2)",
                                   "subleadPixSeed>>subleadPixSeed(2,-0.5,1.5)",
                                   "subleadPassEleVeto>>subleadPassEleVeto(2,-0.5,1.5)",
                                   
                                   "subleadPt:leadPt>>ptSubVsLead(145,100,3000:145,100,3000)",
                                   "minR9>>minR9(110,0,1.1)",
                                   "maxEta>>maxEta(250,0,2.5)"
                                   ]
                       )
Beispiel #57
0
                     "Reject",
                     "   abs(superCluster.eta)>=1.4442&&abs(superCluster.eta)<=1.566 "
                     "|| abs(superCluster.eta)>=2.5 "
                     "|| pt<100",
                     -1 ## if nSubcat is -1 do not store anythings
                     )

# interestng categories 
cfgTools.addCategories(process.photonDumper,
                       ## categories definition
                       ## cuts are applied in cascade. Events getting to these categories have already failed the "Reject" selection
                       [("promptTree","genMatchType == 1",0),
                        ("fakesTree",  "genMatchType != 1",0),
                        ],
                       ## variables to be dumped in trees/datasets. Same variables for all categories
                       ## if different variables wanted for different categories, can add categorie one by one with cfgTools.addCategory
                       variables=variables,
                       ## histograms to be plotted. 
                       ## the variables need to be defined first
                       histograms=histograms,
                       ## compute MVA on the fly. More then one MVA can be tested at once
                       mvas = None
                       )

process.idleWatchdog=cms.EDAnalyzer("IdleWatchdog",
                                    checkEvery = cms.untracked.int32(100),
                                    minIdleFraction = cms.untracked.double(0.5),
                                    tolerance = cms.untracked.int32(5)
                                    )

process.p1 = cms.Path(
                                   "VBFMVA>>VBFMVA(50,0,1)"
                                   ]
                    )

cfgTools.addCategories(process.diphotonDumper,
                    [("flashggVHtightTag",0),
                          ("flashggVHlooseTag",0),
                         ],
                                    variables=["CMS_hgg_mass[160,100,180]:=diPhoton().mass", 
                                  "leadPt                   :=diPhoton().leadingPhoton.pt",
                                  "subleadPt                :=diPhoton().subLeadingPhoton.pt",
                                               "diphoMVA                 :=diPhotonMVA().result",    
                                  "maxEta                   :=max(abs(diPhoton().leadingPhoton.superCluster.eta),abs(diPhoton().leadingPhoton.superCluster.eta))",
                                                 "nMuons                   :=getMuons().size()",
                                                 "nElectrons               :=getElectrons().size()",
                                                 "nJets                    :=getJets().size()",
                                             "genZ           :=tagTruth().genPV().z",
                                             "vtxZ           :=diPhoton().vtx().z",
                                             "dZ            :=abs(tagTruth().genPV().z-diPhoton().vtx().z)",
                                  ],
                       histograms=["CMS_hgg_mass>>mass(160,100,180)",
                                   "subleadPt:leadPt>>ptLeadvsSub(180,20,200:180,20,200)",
                                   "diphoMVA>>diphoMVA(50,0,1)",
                                   "maxEta>>maxEta[0.,0.1,0.2,0.3,0.4,0.6,0.8,1.0,1.2,1.4442,1.566,1.7,1.8,2.,2.2,2.3,2.5]",
                                   "nMuons:nElectrons>>nElectronsVsMuons(2,0,2:2,0,2)",
                                   "nJets>>nJets(5,0,5)"
                                   ]
                       )


cfgTools.addCategory(process.diphotonDumper,
                    "flashggVHhadronicTag",