1 import FWCore.ParameterSet.Config
as cms
2 from DQMServices.Core.DQMEDHarvester
import DQMEDHarvester
6 tracksterLabels = [
'ticlTracksters'+iteration
for iteration
in ticlIterLabelsMerge]
7 tracksterLabels.extend([
'ticlSimTracksters',
'ticlSimTracksters_fromCPs'])
9 prefix =
'HGCAL/HGCalValidator/' 10 maxlayerzm = hgcalValidator.totallayers_to_monitor.value()
11 maxlayerzp = 2 * hgcalValidator.totallayers_to_monitor.value()
14 eff_layers = [
"effic_eta_layer{:02d} 'LayerCluster Efficiency vs #eta Layer{:02d} in z-' Num_CaloParticle_Eta_perlayer{:02d} Denom_CaloParticle_Eta_perlayer{:02d}".
format(i, i%maxlayerzm+1, i, i)
if (i<maxlayerzm)
else "effic_eta_layer{:02d} 'LayerCluster Efficiency vs #eta Layer{:02d} in z+' Num_CaloParticle_Eta_perlayer{:02d} Denom_CaloParticle_Eta_perlayer{:02d}".
format(i, i%maxlayerzm+1, i, i)
for i
in range(maxlayerzp) ]
15 eff_layers.extend([
"effic_phi_layer{:02d} 'LayerCluster Efficiency vs #phi Layer{:02d} in z-' Num_CaloParticle_Phi_perlayer{:02d} Denom_CaloParticle_Phi_perlayer{:02d}".
format(i, i%maxlayerzm+1, i, i)
if (i<maxlayerzm)
else "effic_phi_layer{:02d} 'LayerCluster Efficiency vs #phi Layer{:02d} in z+' Num_CaloParticle_Phi_perlayer{:02d} Denom_CaloParticle_Phi_perlayer{:02d}".
format(i, i%maxlayerzm+1, i, i)
for i
in range(maxlayerzp) ])
16 eff_layers.extend([
"duplicate_eta_layer{:02d} 'LayerCluster Duplicate(Split) Rate vs #eta Layer{:02d} in z-' NumDup_CaloParticle_Eta_perlayer{:02d} Denom_CaloParticle_Eta_perlayer{:02d}".
format(i, i%maxlayerzm+1, i, i)
if (i<maxlayerzm)
else "duplicate_eta_layer{:02d} 'LayerCluster Duplicate(Split) Rate vs #eta Layer{:02d} in z+' NumDup_CaloParticle_Eta_perlayer{:02d} Denom_CaloParticle_Eta_perlayer{:02d}".
format(i, i%maxlayerzm+1, i, i)
for i
in range(maxlayerzp) ])
17 eff_layers.extend([
"duplicate_phi_layer{:02d} 'LayerCluster Duplicate(Split) Rate vs #phi Layer{:02d} in z-' NumDup_CaloParticle_Phi_perlayer{:02d} Denom_CaloParticle_Phi_perlayer{:02d}".
format(i, i%maxlayerzm+1, i, i)
if (i<maxlayerzm)
else "duplicate_phi_layer{:02d} 'LayerCluster Duplicate(Split) Rate vs #phi Layer{:02d} in z+' NumDup_CaloParticle_Phi_perlayer{:02d} Denom_CaloParticle_Phi_perlayer{:02d}".
format(i, i%maxlayerzm+1, i, i)
for i
in range(maxlayerzp) ])
18 eff_layers.extend([
"fake_eta_layer{:02d} 'LayerCluster Fake Rate vs #eta Layer{:02d} in z-' Num_LayerCluster_Eta_perlayer{:02d} Denom_LayerCluster_Eta_perlayer{:02d} fake".
format(i, i%maxlayerzm+1, i, i)
if (i<maxlayerzm)
else "fake_eta_layer{:02d} 'LayerCluster Fake Rate vs #eta Layer{:02d} in z+' Num_LayerCluster_Eta_perlayer{:02d} Denom_LayerCluster_Eta_perlayer{:02d} fake".
format(i, i%maxlayerzm+1, i, i)
for i
in range(maxlayerzp) ])
19 eff_layers.extend([
"fake_phi_layer{:02d} 'LayerCluster Fake Rate vs #phi Layer{:02d} in z-' Num_LayerCluster_Phi_perlayer{:02d} Denom_LayerCluster_Phi_perlayer{:02d} fake".
format(i, i%maxlayerzm+1, i, i)
if (i<maxlayerzm)
else "fake_phi_layer{:02d} 'LayerCluster Fake Rate vs #phi Layer{:02d} in z+' Num_LayerCluster_Phi_perlayer{:02d} Denom_LayerCluster_Phi_perlayer{:02d} fake".
format(i, i%maxlayerzm+1, i, i)
for i
in range(maxlayerzp) ])
20 eff_layers.extend([
"merge_eta_layer{:02d} 'LayerCluster Merge Rate vs #eta Layer{:02d} in z-' NumMerge_LayerCluster_Eta_perlayer{:02d} Denom_LayerCluster_Eta_perlayer{:02d}".
format(i, i%maxlayerzm+1, i, i)
if (i<maxlayerzm)
else "merge_eta_layer{:02d} 'LayerCluster Merge Rate vs #eta Layer{:02d} in z+' NumMerge_LayerCluster_Eta_perlayer{:02d} Denom_LayerCluster_Eta_perlayer{:02d}".
format(i, i%maxlayerzm+1, i, i)
for i
in range(maxlayerzp) ])
21 eff_layers.extend([
"merge_phi_layer{:02d} 'LayerCluster Merge Rate vs #phi Layer{:02d} in z-' NumMerge_LayerCluster_Phi_perlayer{:02d} Denom_LayerCluster_Phi_perlayer{:02d}".
format(i, i%maxlayerzm+1, i, i)
if (i<maxlayerzm)
else "merge_phi_layer{:02d} 'LayerCluster Merge Rate vs #phi Layer{:02d} in z+' NumMerge_LayerCluster_Phi_perlayer{:02d} Denom_LayerCluster_Phi_perlayer{:02d}".
format(i, i%maxlayerzm+1, i, i)
for i
in range(maxlayerzp) ])
23 lcToCP_linking = hgcalValidator.label_LCToCPLinking._InputTag__moduleLabel
25 subDirs = cms.untracked.vstring(prefix + hgcalValidator.label_layerClusterPlots._InputTag__moduleLabel +
'/' + lcToCP_linking),
26 efficiency = cms.vstring(eff_layers),
27 resolution = cms.vstring(),
28 cumulativeDists = cms.untracked.vstring(),
29 noFlowDists = cms.untracked.vstring(),
30 outputFileName = cms.untracked.string(
""),
31 verbose = cms.untracked.uint32(4))
34 eff_simclusters = [
"effic_eta_layer{:02d} 'LayerCluster Efficiency vs #eta Layer{:02d} in z-' Num_SimCluster_Eta_perlayer{:02d} Denom_SimCluster_Eta_perlayer{:02d}".
format(i, i%maxlayerzm+1, i, i)
if (i<maxlayerzm)
else "effic_eta_layer{:02d} 'LayerCluster Efficiency vs #eta Layer{:02d} in z+' Num_SimCluster_Eta_perlayer{:02d} Denom_SimCluster_Eta_perlayer{:02d}".
format(i, i%maxlayerzm+1, i, i)
for i
in range(maxlayerzp) ]
35 eff_simclusters.extend([
"effic_phi_layer{:02d} 'LayerCluster Efficiency vs #phi Layer{:02d} in z-' Num_SimCluster_Phi_perlayer{:02d} Denom_SimCluster_Phi_perlayer{:02d}".
format(i, i%maxlayerzm+1, i, i)
if (i<maxlayerzm)
else "effic_phi_layer{:02d} 'LayerCluster Efficiency vs #phi Layer{:02d} in z+' Num_SimCluster_Phi_perlayer{:02d} Denom_SimCluster_Phi_perlayer{:02d}".
format(i, i%maxlayerzm+1, i, i)
for i
in range(maxlayerzp) ])
36 eff_simclusters.extend([
"duplicate_eta_layer{:02d} 'LayerCluster Duplicate(Split) Rate vs #eta Layer{:02d} in z-' NumDup_SimCluster_Eta_perlayer{:02d} Denom_SimCluster_Eta_perlayer{:02d}".
format(i, i%maxlayerzm+1, i, i)
if (i<maxlayerzm)
else "duplicate_eta_layer{:02d} 'LayerCluster Duplicate(Split) Rate vs #eta Layer{:02d} in z+' NumDup_SimCluster_Eta_perlayer{:02d} Denom_SimCluster_Eta_perlayer{:02d}".
format(i, i%maxlayerzm+1, i, i)
for i
in range(maxlayerzp) ])
37 eff_simclusters.extend([
"duplicate_phi_layer{:02d} 'LayerCluster Duplicate(Split) Rate vs #phi Layer{:02d} in z-' NumDup_SimCluster_Phi_perlayer{:02d} Denom_SimCluster_Phi_perlayer{:02d}".
format(i, i%maxlayerzm+1, i, i)
if (i<maxlayerzm)
else "duplicate_phi_layer{:02d} 'LayerCluster Duplicate(Split) Rate vs #phi Layer{:02d} in z+' NumDup_SimCluster_Phi_perlayer{:02d} Denom_SimCluster_Phi_perlayer{:02d}".
format(i, i%maxlayerzm+1, i, i)
for i
in range(maxlayerzp) ])
38 eff_simclusters.extend([
"fake_eta_layer{:02d} 'LayerCluster Fake Rate vs #eta Layer{:02d} in z-' Num_LayerCluster_in_SimCluster_Eta_perlayer{:02d} Denom_LayerCluster_in_SimCluster_Eta_perlayer{:02d} fake".
format(i, i%maxlayerzm+1, i, i)
if (i<maxlayerzm)
else "fake_eta_layer{:02d} 'LayerCluster Fake Rate vs #eta Layer{:02d} in z+' Num_LayerCluster_in_SimCluster_Eta_perlayer{:02d} Denom_LayerCluster_in_SimCluster_Eta_perlayer{:02d} fake".
format(i, i%maxlayerzm+1, i, i)
for i
in range(maxlayerzp) ])
39 eff_simclusters.extend([
"fake_phi_layer{:02d} 'LayerCluster Fake Rate vs #phi Layer{:02d} in z-' Num_LayerCluster_in_SimCluster_Phi_perlayer{:02d} Denom_LayerCluster_in_SimCluster_Phi_perlayer{:02d} fake".
format(i, i%maxlayerzm+1, i, i)
if (i<maxlayerzm)
else "fake_phi_layer{:02d} 'LayerCluster Fake Rate vs #phi Layer{:02d} in z+' Num_LayerCluster_in_SimCluster_Phi_perlayer{:02d} Denom_LayerCluster_in_SimCluster_Phi_perlayer{:02d} fake".
format(i, i%maxlayerzm+1, i, i)
for i
in range(maxlayerzp) ])
40 eff_simclusters.extend([
"merge_eta_layer{:02d} 'LayerCluster Merge Rate vs #eta Layer{:02d} in z-' NumMerge_LayerCluster_in_SimCluster_Eta_perlayer{:02d} Denom_LayerCluster_in_SimCluster_Eta_perlayer{:02d}".
format(i, i%maxlayerzm+1, i, i)
if (i<maxlayerzm)
else "merge_eta_layer{:02d} 'LayerCluster Merge Rate vs #eta Layer{:02d} in z+' NumMerge_LayerCluster_in_SimCluster_Eta_perlayer{:02d} Denom_LayerCluster_in_SimCluster_Eta_perlayer{:02d}".
format(i, i%maxlayerzm+1, i, i)
for i
in range(maxlayerzp) ])
41 eff_simclusters.extend([
"merge_phi_layer{:02d} 'LayerCluster Merge Rate vs #phi Layer{:02d} in z-' NumMerge_LayerCluster_in_SimCluster_Phi_perlayer{:02d} Denom_LayerCluster_in_SimCluster_Phi_perlayer{:02d}".
format(i, i%maxlayerzm+1, i, i)
if (i<maxlayerzm)
else "merge_phi_layer{:02d} 'LayerCluster Merge Rate vs #phi Layer{:02d} in z+' NumMerge_LayerCluster_in_SimCluster_Phi_perlayer{:02d} Denom_LayerCluster_in_SimCluster_Phi_perlayer{:02d}".
format(i, i%maxlayerzm+1, i, i)
for i
in range(maxlayerzp) ])
43 subdirsSim = [prefix + hgcalValidator.label_SimClusters._InputTag__moduleLabel +
'/'+iteration+
'/' for iteration
in tracksterLabels]
45 subDirs = cms.untracked.vstring(subdirsSim),
46 efficiency = cms.vstring(eff_simclusters),
47 resolution = cms.vstring(),
48 cumulativeDists = cms.untracked.vstring(),
49 noFlowDists = cms.untracked.vstring(),
50 outputFileName = cms.untracked.string(
""),
51 verbose = cms.untracked.uint32(4))
56 simDict = {
"CaloParticle":
"_Link",
"SimTrackster":
"_PR"}
57 metrics = {
"purity":[
"Purity",
"_"],
"effic":[
"Efficiency",
"Eff_"],
"fake":[
"Fake Rate",
"_"],
"duplicate":[
"Duplicate(Split)",
"Dup_"],
"merge":[
"Merge Rate",
"Merge_"]}
58 variables = {
"eta":[
"#eta",
""],
"phi":[
"#phi",
""],
"energy":[
"energy",
" [GeV]"],
"pt":[
"p_{T}",
" [GeV]"]}
60 for m
in list(metrics.keys())[:2]:
63 eff_tracksters.extend([m+
"_"+v+simDict[elem]+
" 'Trackster "+metrics[m][0]+
" vs "+variables[v][0]+
"' Num"+metrics[m][1]+elem+
"_"+V+
" Denom_"+elem+
"_"+V])
64 for m
in list(metrics.keys())[2:]:
65 fakerate =
" fake" if (m ==
"fake")
else "" 68 eff_tracksters.extend([m+
"_"+v+simDict[elem]+
" 'Trackster "+metrics[m][0]+
" vs "+variables[v][0]+
"' Num"+metrics[m][1]+
"Trackster_"+V+simDict[elem]+
" Denom_Trackster_"+V+simDict[elem]+fakerate])
70 tsToCP_linking = hgcalValidator.label_TSToCPLinking.value()
71 subdirsTracksters = [prefix+iteration+
'/'+tsToCP_linking
for iteration
in tracksterLabels]
73 tsToSTS_patternRec = hgcalValidator.label_TSToSTSPR.value()
74 subdirsTracksters.extend(prefix+iteration+
'/'+tsToSTS_patternRec
for iteration
in tracksterLabels)
77 subDirs = cms.untracked.vstring(subdirsTracksters),
78 efficiency = cms.vstring(eff_tracksters),
79 resolution = cms.vstring(),
80 cumulativeDists = cms.untracked.vstring(),
81 noFlowDists = cms.untracked.vstring(),
82 outputFileName = cms.untracked.string(
""),
83 verbose = cms.untracked.uint32(4)
86 neutrals = [
"photons",
"neutral_pions",
"neutral_hadrons"]
87 charged = [
"electrons",
"muons",
"charged_hadrons"]
88 subDirsCandidates = [prefix + hgcalValidator.ticlCandidates.value() +
"/" + c
for cands
in (neutrals, charged)
for c
in cands]
92 for var
in variables.keys():
93 eff_candidates.append(
"eff_"+c+
"_track_"+var+
" '"+c.replace(
"_",
" ")+
" candidates track efficiency vs "+var+
"' num_track_cand_vs_"+var+
"_"+c+
" den_cand_vs_"+var+
"_"+c)
94 eff_candidates.append(
"eff_"+c+
"_pid_"+var+
" '"+c.replace(
"_",
" ")+
" candidates track + pid efficiency vs "+var+
"' num_pid_cand_vs_"+var+
"_"+c+
" den_cand_vs_"+var+
"_"+c)
95 eff_candidates.append(
"eff_"+c+
"_energy_"+var+
" '"+c.replace(
"_",
" ")+
" candidates track + pid + energy efficiency vs "+var+
"' num_energy_cand_vs_"+var+
"_"+c+
" den_cand_vs_"+var+
"_"+c)
97 for var
in variables.keys():
98 eff_candidates.append(
"eff_"+n+
"_pid_"+var+
" '"+n.replace(
"_",
" ")+
" candidates pid efficiency vs "+var+
"' num_pid_cand_vs_"+var+
"_"+n+
" den_cand_vs_"+var+
"_"+n)
99 eff_candidates.append(
"eff_"+n+
"_energy_"+var+
" '"+n.replace(
"_",
" ")+
" candidates pid + energy efficiency vs "+var+
"' num_energy_cand_vs_"+var+
"_"+n+
" den_cand_vs_"+var+
"_"+n)
102 for var
in variables.keys():
103 eff_candidates.append(
"fake_"+c+
"_track_"+var+
" '"+c.replace(
"_",
" ")+
" candidates track fake vs "+var+
"' num_fake_track_cand_vs_"+var+
"_"+c+
" den_fake_cand_vs_"+var+
"_"+c)
104 eff_candidates.append(
"fake_"+c+
"_pid_"+var+
" '"+c.replace(
"_",
" ")+
" candidates track + pid fake vs "+var+
"' num_fake_pid_cand_vs_"+var+
"_"+c+
" den_fake_cand_vs_"+var+
"_"+c)
105 eff_candidates.append(
"fake_"+c+
"_energy_"+var+
" '"+c.replace(
"_",
" ")+
" candidates track + pid + energy fake vs "+var+
"' num_fake_energy_cand_vs_"+var+
"_"+c+
" den_fake_cand_vs_"+var+
"_"+c)
107 for var
in variables.keys():
108 eff_candidates.append(
"fake_"+n+
"_pid_"+var+
" '"+n.replace(
"_",
" ")+
" candidates pid fake vs "+var+
"' num_fake_pid_cand_vs_"+var+
"_"+n+
" den_fake_cand_vs_"+var+
"_"+n)
109 eff_candidates.append(
"fake_"+n+
"_energy_"+var+
" '"+n.replace(
"_",
" ")+
" candidates pid + energy fake vs "+var+
"' num_fake_energy_cand_vs_"+var+
"_"+n+
" den_fake_cand_vs_"+var+
"_"+n)
112 subDirs = cms.untracked.vstring(subDirsCandidates),
113 efficiency = cms.vstring(eff_candidates),
114 resolution = cms.vstring(),
115 cumulativeDists = cms.untracked.vstring(),
116 noFlowDists = cms.untracked.vstring(),
117 outputFileName = cms.untracked.string(
""),
118 verbose = cms.untracked.uint32(4)