1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
'''
Client config file for Scouting Muon DQM. Harvester to compute the efficiencies
for the Tag and Probe (hltScoutingMuonPackerVtx and hltScoutingMuonPackerNoVtx
collections, read in ScoutingMuonTagProbeAnalyzer_cfi.py) and compute the efficiencies
of the L1 seeds.
Author: Javier Garcia de Castro, email:javigdc@bu.edu
'''
import FWCore.ParameterSet.Config as cms
from DQMServices.Core.DQMEDHarvester import DQMEDHarvester
from HLTriggerOffline.Scouting.ScoutingMuonTriggerAnalyzer_cfi import *
#Harvester to measure efficiency for hltScoutingMuonPackerNoVtx collection (Tag and Probe method)
#Inputs for the efficiency vstring are (name, title, xlabel, ylabel, numerator histogram, denominator histogram)
muonEfficiencyNoVtx = DQMEDHarvester("DQMGenericClient",
subDirs = cms.untracked.vstring("/HLT/ScoutingOffline/Muons/NoVtx"),
verbose = cms.untracked.uint32(0), # Set to 2 for all messages
resolution = cms.vstring(),
efficiency = cms.vstring(
"effic_muonPt 'efficiency vs pt; Muon pt [GeV]; efficiency' resonanceJ_numerator_Probe_sctMuon_Pt resonanceJ_denominator_Probe_sctMuon_Pt",
"effic_muonEta 'efficiency vs eta; Muon eta; efficiency' resonanceJ_numerator_Probe_sctMuon_Eta resonanceJ_denominator_Probe_sctMuon_Eta",
"effic_muonPhi 'efficiency vs phi; Muon phi; efficiency' resonanceJ_numerator_Probe_sctMuon_Phi resonanceJ_denominator_Probe_sctMuon_Phi",
"effic_muondxy 'efficiency vs dxy; Muon dxy; efficiency' resonanceJ_numerator_Probe_sctMuon_dxy resonanceJ_denominator_Probe_sctMuon_dxy",
"effic_muonInvMass 'efficiency vs inv mass; Muon inv mass [GeV]; efficiency' resonanceJ_numerator_sctMuon_Invariant_Mass resonanceJ_denominator_sctMuon_Invariant_Mass",
"effic_muonNormChisq 'efficiency vs normChi2; Muon normChi2; efficiency' resonanceJ_numerator_Probe_sctMuon_NormChisq resonanceJ_denominator_Probe_sctMuon_NormChisq",
"effic_muonTrkdz 'efficiency vs Trkdz; Muon trkdz; efficiency' resonanceJ_numerator_Probe_sctMuon_Trk_dz resonanceJ_denominator_Probe_sctMuon_Trkdz",
"effic_muonTrkdxy 'efficiency vs Trkdxy; Muon trkdxy; efficiency' resonanceJ_numerator_Probe_sctMuon_Trk_dxy resonanceJ_denominator_Probe_sctMuon_Trkdxy",
"effic_muonlxy 'efficiency vs lxy; Muon lxy; efficiency' resonanceJ_numerator_Vertex_Lxy resonanceJ_denominator_Vertex_Lxy",
"effic_muonVertexYerror 'efficiency vs VertexYerror; Muon Vertex Yerror; efficiency' resonanceJ_numerator_Vertex_Yerror resonanceJ_denominator_Vertex_Yerror",
"effic_muonVertexXerror 'efficiency vs VertexXerror; Muon Vertex Xerror; efficiency' resonanceJ_numerator_Vertex_Xerror resonanceJ_denominator_Vertex_Xerror",
"effic_muonVertexChi2 'efficiency vs Vertexchi2; Muon Vertex chi2; efficiency' resonanceJ_numerator_Vertex_chi2 resonanceJ_denominator_Vertex_chi2",
"effic_muonVertexYerror 'efficiency vs z; Muon Vertex z; efficiency' resonanceJ_numerator_Vertex_z resonanceJ_denominator_Vertex_z",
"effic_muontype 'efficiency vs type; Muon type; efficiency' resonanceJ_numerator_Probe_sctMuon_type resonanceJ_denominator_Probe_sctMuon_type",
"effic_muoncharge 'efficiency vs charge; Muon charge; efficiency' resonanceJ_numerator_Probe_sctMuon_charge resonanceJ_denominator_Probe_sctMuon_charge",
"effic_muonecalIso 'efficiency vs ecalIso; Muon ecalIso; efficiency' resonanceJ_numerator_Probe_sctMuon_ecalIso resonanceJ_denominator_Probe_sctMuon_ecalIso",
"effic_muonhcalIso 'efficiency vs hcalIso; Muon hcalIso; efficiency' resonanceJ_numerator_Probe_sctMuon_hcalIso resonanceJ_denominator_Probe_sctMuon_hcalIso",
"effic_muontrackIso 'efficiency vs trackIso; Muon trackIso; efficiency' resonanceJ_numerator_Probe_sctMuon_trackIso resonanceJ_denominator_Probe_sctMuon_trackIso",
"effic_nValidStandAloneMuonHits 'efficiency vs nValidStandAloneMuonHits; nValidStandAloneMuonHits; efficiency' resonanceJ_numerator_Probe_sctMuon_nValidStandAloneMuonHits resonanceJ_denominator_Probe_sctMuon_nValidStandAloneMuonHits",
"effic_nStandAloneMuonMatchedStations 'efficiency vs nStandAloneMuonMatchedStations; nStandAloneMuonMatchedStations; efficiency' resonanceJ_numerator_Probe_sctMuon_nStandAloneMuonMatchedStations resonanceJ_denominator_Probe_sctMuon_nStandAloneMuonMatchedStations",
"effic_nValidRecoMuonHits 'efficiency vs nValidRecoMuonHits; nValidRecoMuonHits; efficiency' resonanceJ_numerator_Probe_sctMuon_nValidRecoMuonHits resonanceJ_denominator_Probe_sctMuon_nValidRecoMuonHits",
"effic_nRecoMuonChambers 'efficiency vs nRecoMuonChambers; nRecoMuonChambers; efficiency' resonanceJ_numerator_Probe_sctMuon_nRecoMuonChambers resonanceJ_denominator_Probe_sctMuon_nRecoMuonChambers",
"effic_nRecoMuonChambersCSCorDT 'efficiency vs nRecoMuonChambersCSCorDT; nRecoMuonChambersCSCorDT; efficiency' resonanceJ_numerator_Probe_sctMuon_nRecoMuonChambersCSCorDT resonanceJ_denominator_Probe_sctMuon_nRecoMuonChambersCSCorDT",
"effic_nRecoMuonMatches 'efficiency vs nRecoMuonMatches; nRecoMuonMatches; efficiency' resonanceJ_numerator_Probe_sctMuon_nRecoMuonMatches resonanceJ_denominator_Probe_sctMuon_nRecoMuonMatches",
"effic_nRecoMuonMatchedStations 'efficiency vs nRecoMuonMatchedStations; nRecoMuonMatchedStations; efficiency' resonanceJ_numerator_Probe_sctMuon_nRecoMuonMatchedStations resonanceJ_denominator_Probe_sctMuon_nRecoMuonMatchedStations",
"effic_nRecoMuonExpectedMatchedStations 'efficiency vs nRecoMuonExpectedMatchedStations; nRecoMuonExpectedMatchedStations; efficiency' resonanceJ_numerator_Probe_sctMuon_nRecoMuonExpectedMatchedStations resonanceJ_denominator_Probe_sctMuon_nRecoMuonExpectedMatchedStations",
"effic_nRecoMuonMatchedRPCLayers 'efficiency vs nRecoMuonMatchedRPCLayers; nRecoMuonMatchedRPCLayers; efficiency' resonanceJ_numerator_Probe_sctMuon_nRecoMuonMatchedRPCLayers resonanceJ_denominator_Probe_sctMuon_nRecoMuonMatchedRPCLayers",
"effic_recoMuonRPClayerMask 'efficiency vs recoMuonRPClayerMask; recoMuonRPClayerMask; efficiency' resonanceJ_numerator_Probe_sctMuon_recoMuonRPClayerMask resonanceJ_denominator_Probe_sctMuon_recoMuonRPClayerMask",
"effic_nValidPixelHits 'efficiency vs nValidPixelHits; nValidPixelHits; efficiency' resonanceJ_numerator_Probe_sctMuon_nValidPixelHits resonanceJ_denominator_Probe_sctMuon_nValidPixelHits",
"effic_nValidStripHits 'efficiency vs nValidStripHits; nValidStripHits; efficiency' resonanceJ_numerator_Probe_sctMuon_nValidStripHits resonanceJ_denominator_Probe_sctMuon_nValidStripHits",
"effic_nPixelLayersWithMeasurement 'efficiency vs nPixelLayersWithMeasurement; nPixelLayersWithMeasurement; efficiency' resonanceJ_numerator_Probe_sctMuon_nPixelLayersWithMeasurement resonanceJ_denominator_Probe_sctMuon_nPixelLayersWithMeasurement",
"effic_nTrackerLayersWithMeasurement 'efficiency vs nTrackerLayersWithMeasurement; nTrackerLayersWithMeasurement; efficiency' resonanceJ_numerator_Probe_sctMuon_nTrackerLayersWithMeasurement resonanceJ_denominator_Probe_sctMuon_nTrackerLayersWithMeasurement",
"effic_trk_chi2 'efficiency vs trk_chi2; trk_chi2; efficiency' resonanceJ_numerator_Probe_sctMuon_trk_chi2 resonanceJ_denominator_Probe_sctMuon_trk_chi2",
"effic_trk_ndof 'efficiency vs trk_ndof; trk_ndof; efficiency' resonanceJ_numerator_Probe_sctMuon_trk_ndof resonanceJ_denominator_Probe_sctMuon_trk_ndof",
"effic_trk_lambda 'efficiency vs trk_lambda; trk_lambda; efficiency' resonanceJ_numerator_Probe_sctMuon_trk_lambda resonanceJ_denominator_Probe_sctMuon_trk_lambda",
"effic_trk_pt 'efficiency vs trk_pt; trk_pt; efficiency' resonanceJ_numerator_Probe_sctMuon_trk_pt resonanceJ_denominator_Probe_sctMuon_trk_pt",
"effic_trk_eta 'efficiency vs trk_eta; trk_eta; efficiency' resonanceJ_numerator_Probe_sctMuon_trk_eta resonanceJ_denominator_Probe_sctMuon_trk_eta",
"effic_trk_dxyError 'efficiency vs trk_dxyError; trk_dxyError; efficiency' resonanceJ_numerator_Probe_sctMuon_trk_dxyError resonanceJ_denominator_Probe_sctMuon_trk_dxyError",
"effic_trk_dzError 'efficiency vs trk_dzError; trk_dzError; efficiency' resonanceJ_numerator_Probe_sctMuon_trk_dzError resonanceJ_denominator_Probe_sctMuon_trk_dzError",
"effic_trk_qoverpError 'efficiency vs trk_qoverpError; trk_qoverpError; efficiency' resonanceJ_numerator_Probe_sctMuon_trk_qoverpError resonanceJ_denominator_Probe_sctMuon_trk_qoverpError",
"effic_trk_lambdaError 'efficiency vs trk_lambdaError; trk_lambdaError; efficiency' resonanceJ_numerator_Probe_sctMuon_trk_lambdaError resonanceJ_denominator_Probe_sctMuon_trk_lambdaError",
"effic_trk_phiError 'efficiency vs trk_phiError; trk_phiError; efficiency' resonanceJ_numerator_Probe_sctMuon_trk_phiError resonanceJ_denominator_Probe_sctMuon_trk_phiError",
"effic_trk_dsz 'efficiency vs trk_dsz; trk_dsz; efficiency' resonanceJ_numerator_Probe_sctMuon_trk_dsz resonanceJ_denominator_Probe_sctMuon_trk_dsz",
"effic_trk_dszError 'efficiency vs trk_dszError; trk_dszError; efficiency' resonanceJ_numerator_Probe_sctMuon_trk_dszError resonanceJ_denominator_Probe_sctMuon_trk_dszError",
"effic_ndof 'efficiency vs ndof; ndof; efficiency' resonanceJ_numerator_Probe_sctMuon_ndof resonanceJ_denominator_Probe_sctMuon_ndof",
"effic_trk_vx 'efficiency vs trk_vx; trk_vx; efficiency' resonanceJ_numerator_Probe_sctMuon_trk_vx resonanceJ_denominator_Probe_sctMuon_trk_vx",
"effic_trk_vy 'efficiency vs trk_vy; trk_vy; efficiency' resonanceJ_numerator_Probe_sctMuon_trk_vy resonanceJ_denominator_Probe_sctMuon_trk_vy",
"effic_trk_vz 'efficiency vs trk_vz; trk_vz; efficiency' resonanceJ_numerator_Probe_sctMuon_trk_vz resonanceJ_denominator_Probe_sctMuon_trk_vz",
"effic_vertex_x 'efficiency vs vertex_x; vertex x; efficiency' resonanceJ_numerator_Probe_sctMuon_x resonanceJ_denominator_Probe_sctMuon_x",
"effic_vertex_y 'efficiency vs vertex_y; vertex y; efficiency' resonanceJ_numerator_Probe_sctMuon_y resonanceJ_denominator_Probe_sctMuon_y",
"effic_vertex_Zerror 'efficiency vs Zerror; vertex Zerror; efficiency' resonanceJ_numerator_Probe_sctMuon_Zerror resonanceJ_denominator_Probe_sctMuon_Zerror",
"effic_tracksSize 'efficiency vs tracksSize; tracksSize; efficiency' resonanceJ_numerator_Probe_sctMuon_tracksSize resonanceJ_denominator_Probe_sctMuon_tracksSize",
),
)
#To declare muonEfficiencyVtx, clone muonEfficiencyNoVtx and change only the output subDir
muonEfficiencyVtx = muonEfficiencyNoVtx.clone()
muonEfficiencyVtx.subDirs = cms.untracked.vstring("/HLT/ScoutingOffline/Muons/Vtx")
#L1 seeds efficiency measurement
allSeeds = SingleMuL1 + DoubleMuL1
efficiencyList = ["effic_pt1_%s '%s; Leading muon pt [GeV]; L1 efficiency' h_pt1_numerator_%s h_pt1_denominator"%(seed,seed, seed) for seed in allSeeds]+\
["effic_eta1_%s '%s; Leading muon eta; L1 efficiency' h_eta1_numerator_%s h_eta1_denominator"%(seed,seed, seed) for seed in allSeeds]+\
["effic_phi1_%s '%s; Leading muon phi; L1 efficiency' h_phi1_numerator_%s h_phi1_denominator"%(seed,seed, seed) for seed in allSeeds]+\
["effic_dxy1_%s '%s; Leading muon dxy; L1 efficiency' h_dxy1_numerator_%s h_dxy1_denominator"%(seed,seed, seed) for seed in allSeeds]+\
["effic_pt2_%s '%s; Subleading muon pt [GeV]; L1 efficiency' h_pt2_numerator_%s h_pt2_denominator"%(seed,seed, seed) for seed in allSeeds]+\
["effic_eta2_%s '%s; Subleading muon eta; L1 efficiency' h_eta2_numerator_%s h_eta2_denominator"%(seed,seed, seed) for seed in allSeeds]+\
["effic_phi2_%s '%s; Subleading muon phi; L1 efficiency' h_phi2_numerator_%s h_phi2_denominator"%(seed,seed, seed) for seed in allSeeds]+\
["effic_dxy2_%s '%s; Subleading muon dxy; L1 efficiency' h_dxy2_numerator_%s h_dxy2_denominator"%(seed,seed, seed) for seed in allSeeds]+\
["effic_invMass_%s '%s; Invariant Mass; L1 efficiency' h_invMass_numerator_%s h_invMass_denominator"%(seed,seed, seed) for seed in allSeeds]
muonTriggerEfficiency = DQMEDHarvester("DQMGenericClient",
subDirs = cms.untracked.vstring("/HLT/ScoutingOffline/Muons/L1Efficiency"),
verbose = cms.untracked.uint32(0), # Set to 2 for all messages
resolution = cms.vstring(),
efficiency = cms.vstring( efficiencyList ),
)
|