delattr(dil, 'back_to_back_cos_angle_min') delattr(dil, 'vertex_chi2_max') delattr(dil, 'dpt_over_pt_max') elif cut_name == 'OurNoIso': alldil.loose_cut = alldil.loose_cut.value().replace( ' && isolationR03.sumPt / innerTrack.pt < 0.10', '') elif 'MuPrescaled' in cut_name: alldil.loose_cut = alldil.loose_cut.value().replace( 'pt > %s' % offline_pt_threshold, 'pt > %s' % prescaled_offline_pt_threshold) assert alldil.tight_cut == trigger_match alldil.tight_cut = prescaled_trigger_match # Histos now just needs to know which leptons and dileptons to use. histos = HistosFromPAT.clone(lepton_src=cms.InputTag( leptons_name, 'muons'), dilepton_src=cms.InputTag(name)) # Add all these modules to the process and the path list. setattr(process, allname, alldil) setattr(process, name, dil) setattr(process, name + 'Histos', histos) path_list.append(alldil * dil * histos) # Finally, make the path for this set of cuts. pathname = 'path' + cut_name pobj = process.muonPhotonMatch * reduce(lambda x, y: x * y, path_list) if 'VBTF' not in cut_name and cut_name != 'Simple': pobj = process.goodDataFilter * pobj if 'MuPrescaled' in cut_name: pobj = process.PrescaleToCommon * pobj
alldil.electron_cut_mask = cms.uint32(0) alldil.loose_cut = 'isGlobalMuon && pt > 20.' alldil.tight_cut = '' dil.max_candidates = 100 dil.do_remove_overlap = False delattr(dil, 'back_to_back_cos_angle_min') delattr(dil, 'vertex_chi2_max') elif cut_name == 'OurNoIso': alldil.loose_cut = alldil.loose_cut.value().replace(' && isolationR03.sumPt / innerTrack.pt < 0.10', '') elif 'MuPrescaled' in cut_name: alldil.loose_cut = alldil.loose_cut.value().replace('pt > %s' % offline_pt_threshold, 'pt > %s' % prescaled_offline_pt_threshold) assert alldil.tight_cut == trigger_match alldil.tight_cut = prescaled_trigger_match # Histos now just needs to know which leptons and dileptons to use. histos = HistosFromPAT.clone(lepton_src = cms.InputTag(leptons_name, 'muons'), dilepton_src = cms.InputTag(name)) # Add all these modules to the process and the path list. setattr(process, allname, alldil) setattr(process, name, dil) setattr(process, name + 'Histos', histos) path_list.append(alldil * dil * histos) # Finally, make the path for this set of cuts. pathname = 'path' + cut_name pobj = process.muonPhotonMatch * reduce(lambda x,y: x*y, path_list) if 'VBTF' not in cut_name and cut_name != 'Simple': pobj = process.goodDataFilter * pobj if 'MuPrescaled' in cut_name: pobj = process.PrescaleToCommon * pobj path = cms.Path(pobj)
# Sanity check that the replaces above did something. for x in alldimus: if 'NoNo' in x: continue o = getattr(process, x) assert o.loose_cut.value() != loose_cut or o.tight_cut.value() != tight_cut process.p = cms.Path(process.goodDataFilter * process.muonPhotonMatch * process.leptons * reduce(lambda x,y: x*y, [getattr(process, x) for x in alldimus])) # For all the allDimuons producers, make dimuons producers, and # analyzers to make the histograms. for alld in alldimus: dimu = process.dimuons.clone(src = alld) name = alld.replace('allD', 'd') setattr(process, name, dimu) hists = HistosFromPAT.clone(dilepton_src = name, leptonsFromDileptons = True) setattr(process, name.replace('dimuons', ''), hists) process.p *= dimu * hists # Handle the cuts that have to be applied at the # Zprime2muCompositeCandidatePicker level. process.dimuonsNoB2B = process.dimuons.clone() process.dimuonsNoVtxProb = process.dimuons.clone() process.dimuonsNoDptPt = process.dimuons.clone() delattr(process.dimuonsNoB2B, 'back_to_back_cos_angle_min') delattr(process.dimuonsNoVtxProb, 'vertex_chi2_max') delattr(process.dimuonsNoDptPt, 'dpt_over_pt_max') process.p *= process.allDimuons for dimu in ['dimuonsNoB2B', 'dimuonsNoVtxProb', 'dimuonsNoDptPt']: hists = HistosFromPAT.clone(dilepton_src = dimu, leptonsFromDileptons = True) setattr(process, dimu.replace('dimuons', ''), hists)
#!/usr/bin/env python import FWCore.ParameterSet.Config as cms from SUSYBSMAnalysis.Zprime2muAnalysis.Zprime2muAnalysis_cfg import process from SUSYBSMAnalysis.Zprime2muAnalysis.HistosFromPAT_cfi import HistosFromPAT from SUSYBSMAnalysis.Zprime2muAnalysis.ResolutionUsingMC_cfi import ResolutionUsingMC levels = ['Global', 'TkOnly', 'TPFMS', 'Picky', 'TMR', 'TuneP', 'SigmaSwitch'] from SUSYBSMAnalysis.Zprime2muAnalysis.Zprime2muAnalysis_cff import rec_levels rec_levels(process, levels) useMC = True process.p = cms.Path(process.Zprime2muAnalysisSequence) for level in levels: lepton_src = cms.InputTag('leptons', level) dilepton_src = cms.InputTag('dimuons' + level) h = HistosFromPAT.clone(lepton_src=lepton_src, dilepton_src=dilepton_src) setattr(process, 'HistosFromPAT' + level, h) if useMC: r = ResolutionUsingMC.clone(lepton_src=lepton_src, dilepton_src=dilepton_src) setattr(process, 'ResolutionUsingMC' + level, r) process.p *= h * r
#!/usr/bin/env python import FWCore.ParameterSet.Config as cms from SUSYBSMAnalysis.Zprime2muAnalysis.Zprime2muAnalysis_cfg import process from SUSYBSMAnalysis.Zprime2muAnalysis.HistosFromPAT_cfi import HistosFromPAT from SUSYBSMAnalysis.Zprime2muAnalysis.ResolutionUsingMC_cfi import ResolutionUsingMC levels = ['Global', 'TkOnly', 'TPFMS', 'Picky', 'TMR', 'TuneP', 'SigmaSwitch'] from SUSYBSMAnalysis.Zprime2muAnalysis.Zprime2muAnalysis_cff import rec_levels rec_levels(process, levels) useMC = True process.p = cms.Path(process.Zprime2muAnalysisSequence) for level in levels: lepton_src = cms.InputTag('leptons', level) dilepton_src = cms.InputTag('dimuons' + level) h = HistosFromPAT.clone(lepton_src=lepton_src, dilepton_src=dilepton_src) setattr(process, 'HistosFromPAT' + level, h) if useMC: r = ResolutionUsingMC.clone(lepton_src=lepton_src, dilepton_src=dilepton_src) setattr(process, 'ResolutionUsingMC' + level, r) process.p *= h*r