File indexing completed on 2024-11-25 02:29:52
0001
0002
0003
0004 import sys
0005 oldargv = sys.argv[:]
0006 sys.argv = [ '-b-' ]
0007 import ROOT
0008 ROOT.gROOT.SetBatch(True)
0009 sys.argv = oldargv
0010
0011
0012 ROOT.gSystem.Load("libFWCoreFWLite.so");
0013 ROOT.gSystem.Load("libDataFormatsFWLite.so");
0014 ROOT.FWLiteEnabler.enable()
0015
0016
0017 import FWCore.ParameterSet.Config as cms
0018
0019
0020 from DataFormats.FWLite import Handle, Events
0021 from RecoEgamma.ElectronIdentification.VIDElectronSelector import VIDElectronSelector
0022
0023
0024 from RecoEgamma.ElectronIdentification.Identification.cutBasedElectronID_PHYS14_PU20bx25_V2_cff import cutBasedElectronID_PHYS14_PU20bx25_V2_standalone_tight
0025
0026 selectElectron = VIDElectronSelector(cutBasedElectronID_PHYS14_PU20bx25_V2_standalone_tight)
0027 print('Initialized VID Selector for Electrons')
0028 print(selectElectron)
0029
0030 from PhysicsTools.SelectorUtils.trivialCutFlow_cff import trivialCutFlow
0031 testExprEval = VIDElectronSelector(trivialCutFlow)
0032 print('test expression evaluator')
0033 print(testExprEval)
0034
0035
0036 print('Initialized VID Photon MVA Selector')
0037 from RecoEgamma.PhotonIdentification.VIDPhotonSelector import VIDPhotonSelector
0038 from RecoEgamma.PhotonIdentification.Identification.mvaPhotonID_Spring15_50ns_nonTrig_V0_cff import mvaPhoID_Spring15_50ns_nonTrig_V0_wp90
0039 selectPhoton = VIDPhotonSelector(mvaPhoID_Spring15_50ns_nonTrig_V0_wp90)
0040 print(selectPhoton)
0041
0042
0043 from RecoMuon.MuonIdentification.VIDMuonSelector import VIDMuonSelector
0044 from RecoMuon.MuonIdentification.Identification.globalMuonPromptTight_V0_cff import globalMuonPromptTight_V0
0045 from RecoMuon.MuonIdentification.Identification.cutBasedMuonId_MuonPOG_V0_cff import *
0046
0047 selectMuons = [VIDMuonSelector(globalMuonPromptTight_V0)]
0048 for selectMuon in [cutBasedMuonId_MuonPOG_V0_loose, cutBasedMuonId_MuonPOG_V0_medium, cutBasedMuonId_MuonPOG_V0_tight,
0049 cutBasedMuonId_MuonPOG_V0_soft, cutBasedMuonId_MuonPOG_V0_highpt]:
0050 for cf in selectMuon.cutFlow:
0051 cf.vertexSrc = "offlineSlimmedPrimaryVertices"
0052 selectMuons.append(VIDMuonSelector(selectMuon))
0053 print('Initialized VID Selector for Muons')
0054 print(selectMuon)
0055
0056
0057 events = Events("root://eoscms//eos/cms/store/relval/CMSSW_7_4_0_pre9_ROOT6/DoubleMu/MINIAOD/GR_R_74_V8A_RelVal_zMu2011A-v1/00000/06961B48-CFD1-E411-8B87-002618943971.root")
0058
0059 muons, muonLabel = Handle("std::vector<pat::Muon>"), "slimmedMuons::".split(":")
0060 electrons, electronLabel = Handle("std::vector<pat::Electron>"), "slimmedElectrons::".split(":")
0061 photons, photonLabel = Handle("std::vector<pat::Photon>"), "slimmedPhotons::".split(":")
0062
0063 for iev,event in enumerate(events):
0064
0065 if iev > 10: break
0066 event.getByLabel(muonLabel[0],muonLabel[1],muonLabel[2], muons)
0067 event.getByLabel(electronLabel[0],electronLabel[1],electronLabel[2], electrons)
0068 event.getByLabel(photonLabel[0],photonLabel[1],photonLabel[2],photons)
0069
0070 print("\nEvent %d: run %6d, lumi %4d, event %12d" % (iev,event.eventAuxiliary().run(),
0071 event.eventAuxiliary().luminosityBlock(),
0072 event.eventAuxiliary().event()))
0073
0074
0075 for i,mu in enumerate(muons.product()):
0076 if mu.pt() < 5 or not mu.isLooseMuon(): continue
0077 print("muon %2d: pt %4.1f, POG loose id %d." % (
0078 i, mu.pt(), mu.isLooseMuon()))
0079 for selectMuon in selectMuons:
0080 selectMuon(muons.product(),i,event)
0081 print(selectMuon)
0082
0083
0084 for i,el in enumerate(electrons.product()):
0085 if el.pt() < 5: continue
0086 print("elec %2d: pt %4.1f, supercluster eta %+5.3f, sigmaIetaIeta %.3f (%.3f with full5x5 shower shapes), pass conv veto %d" % (
0087 i, el.pt(), el.superCluster().eta(), el.sigmaIetaIeta(), el.full5x5_sigmaIetaIeta(), el.passConversionVeto()))
0088 passfail_byvalue = selectElectron(el,event)
0089 passfail = selectElectron(electrons.product(),i,event)
0090 print(selectElectron)
0091 testExprEval(electrons.product(),i,event)
0092 print(testExprEval)
0093
0094 cf_result = selectElectron.cutFlowResult()
0095 for i in range(cf_result.cutFlowSize()):
0096 print('%d : %s : %d'%(i,cf_result.getNameAtIndex(i),cf_result.getCutResultByName(cf_result.getNameAtIndex(i))))
0097 print(passfail, passfail_byvalue)
0098 print(cf_result.cutFlowPassed())
0099 print("{0:b}".format(selectElectron.bitMap()))
0100 masked_cf_ints = cf_result.getCutFlowResultMasking([2,3,4,9])
0101 masked_cf_strs = cf_result.getCutFlowResultMasking(['GsfEleDEtaInCut_0',
0102 'GsfEleDPhiInCut_0',
0103 'GsfEleFull5x5SigmaIEtaIEtaCut_0',
0104 'GsfEleEffAreaPFIsoCut_0'])
0105 print(masked_cf_ints.cutFlowPassed(), masked_cf_strs.cutFlowPassed())
0106
0107 for i,ph in enumerate(photons.product()):
0108 print("pho %2d: pt %4.1f, supercluster eta %+5.3f, sigmaIetaIeta %.3f (%.3f with full5x5 shower shapes)" % (
0109 i, ph.pt(), ph.superCluster().eta(), ph.sigmaIetaIeta(), ph.full5x5_sigmaIetaIeta()))
0110 passfail_byvalue = selectPhoton(ph,event)
0111 for uf in ph.userFloatNames():
0112 print(uf)
0113 for ui in ph.userIntNames():
0114 print(ui)
0115 print(passfail_byvalue)
0116 print(selectPhoton)
0117
0118
0119
0120 print('test validation framework')
0121
0122 selectElectronValid = VIDElectronSelector(cutBasedElectronID_PHYS14_PU20bx25_V2_standalone_tight)
0123 selectMuonValid = VIDMuonSelector(globalMuonPromptTight_V0)
0124
0125 from PhysicsTools.SelectorUtils.VIDSelectorValidator import VIDSelectorValidator
0126 electron_validator = VIDSelectorValidator(selectElectronValid,'std::vector<pat::Electron>','slimmedElectrons')
0127 muon_validator = VIDSelectorValidator(selectMuonValid,'std::vector<pat::Muon>','slimmedMuons')
0128
0129 signal_files = []
0130 background_files = []
0131 mix_files = ['root://eoscms//eos/cms/store/relval/CMSSW_7_4_0_pre9_ROOT6/DoubleMu/MINIAOD/GR_R_74_V8A_RelVal_zMu2011A-v1/00000/06961B48-CFD1-E411-8B87-002618943971.root']
0132
0133 electron_validator.setMixFiles(mix_files)
0134 muon_validator.setMixFiles(mix_files)
0135
0136 electron_validator.runValidation()
0137 muon_validator.runValidation()
0138