Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
154 changes: 154 additions & 0 deletions dqmgui/layouts/p2tkmc_relval-layouts.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
def phase2tkmclayout(i, p, *rows): i["MCLayouts/Phase2Tk/" + p] = DQMItem(layout=rows)

# Loop for histograms in IT & OT barrels & endcaps
# These file names shouldn't change
top_files = ["TrackerPhase2ITClusterV/",
"TrackerPhase2ITRecHitV/",
"TrackerPhase2ITTrackingRecHitV/",
"TrackerPhase2OTClusterV/",
"TrackerPhase2OTRecHitV/",
"TrackerPhase2OTTrackingRecHitV/"]
common_structures = ["Barrel/", "EndCap_Side1/", "EndCap_Side2/"]
IT_structures = ["FPix/", "EPix/"]
OT_structures = ["TEDD_1/", "TEDD_2/"]
TEDD_rings = [15, 12]
layout_name_parts = ["IT ", "OT ", "Clusters ", "RecHit ", "TrackingRecHit ", "L1 Track ",
"Barrel ", "Layer ", "MINUS ", "PLUS ", "FPix ", "EPix ", "Ring ", "TEDD1 ", "TEDD2 "]

# If you want to book different values, you'll have to add them here, and then edit the "for histogram in histogram_names[a:b]:" lines
histogram_names = ["Delta_X_Pixel", "Delta_Y_Pixel", "Delta_Y_vs_DeltaX", "Delta_X", "Delta_Y", "Delta_X_Strip", "Delta_Y_Strip"]

for f_index, file in enumerate(top_files): # Loop through our top folders
layout = []
layout_num = 00 # Layouts are numbered with three digits, with the first indicating the top folder. Use f"{layout_num:02}" to force 2 digits
for s_index, structure in enumerate(common_structures): # Loop through our "common" tracker structures

# ----- OUTER TRACKER ------
if f_index > 2:
# ----- OUTER TRACKER BARREL -----
if structure == common_structures[0]:
layout_desc_template = layout_name_parts[1] + layout_name_parts[f_index-1] + layout_name_parts[6]
# ---- STRIPS ----
for histogram in histogram_names[5:7]:
layout_name = str(f_index) + f"{layout_num:02}" + " - " + layout_desc_template + histogram
for layer in range(6): # One layout = One histogram * 6 layers (for strips)
layout.append([{"path":(file + structure + "Layer" + str(layer+1) + "/" + histogram), "description":(layout_desc_template + layout_name_parts[7] + str(layer+1) + " " + histogram)}])
phase2tkmclayout(dqmitems, layout_name, (layout[0]+layout[1]), (layout[2]+layout[3]), (layout[4]+layout[5]))
layout_num += 1
layout = []

# ---- PIXELS ----
for histogram in histogram_names[0:2]:
layout_name = str(f_index) + f"{layout_num:02}" + " - " + layout_desc_template + histogram
for layer in range(3): # One layout = One histogram * 3 layers (for pixels)
layout.append([{"path":(file + structure + "Layer" + str(layer+1) + "/" + histogram), "description":(layout_desc_template + layout_name_parts[7] + str(layer+1) + " " + histogram)}])
phase2tkmclayout(dqmitems, layout_name, (layout[0]+layout[1]), layout[2])
layout_num += 1
layout = []

# ----- OUTER TRACKER ENDCAPS -----
else:
for tedd in range(2):
layout_desc_template = layout_name_parts[1] + layout_name_parts[f_index-1] + layout_name_parts[s_index+7] + "Endcap " + layout_name_parts[13+tedd]
for layer in range(TEDD_rings[tedd]): # One layout = Four histograms * 1 layer
layout_name = OT_structures[tedd] + structure + str(f_index) + f"{layout_num:02}" + " - " + layout_desc_template + histogram # There are a lot of TEDD histos so we put them in a folder
# ---- STRIPS ----
for histogram in histogram_names[5:7]:
layout.append([{"path":(file + structure + OT_structures[tedd] + "Ring" + str(layer+1) + "/" + histogram), "description":(layout_desc_template + layout_name_parts[12] + str(layer+1) + " " + histogram)}])
# ---- PIXELS ----
if (layer < TEDD_rings[tedd]-5):
for histogram in histogram_names[0:2]:
layout.append([{"path":(file + structure + OT_structures[tedd] + "Ring" + str(layer+1) + "/" + histogram), "description":(layout_desc_template + layout_name_parts[12] + str(layer+1) + " " + histogram)}])
phase2tkmclayout(dqmitems, layout_name, (layout[0]+layout[1]), (layout[2]+layout[3]))
else:
phase2tkmclayout(dqmitems, layout_name, (layout[0]+layout[1]))
layout_num += 1
layout = []

# ----- INNER TRACKER -----
else:
# For IT, the histogram names change between clust/rechit/tracking
# So this selects which ones we use based on the top file index
if f_index == 0:
lower = 0
upper = 2
elif f_index == 1:
lower = 2
upper = 3
elif f_index == 2:
lower = 3
upper = 5

# ----- INNER TRACKER BARREL -----
if structure == common_structures[0]:
layout_desc_template = layout_name_parts[0] + layout_name_parts[2+f_index] + layout_name_parts[6]
for histogram in histogram_names[lower:upper]:
layout_name = str(f_index) + f"{layout_num:02}" + " - " + layout_desc_template + histogram
for layer in range(4): # One layout = One histogram * 4 layers
layout.append([{"path":(file + structure + "Layer" + str(layer+1) + "/" + histogram), "description":(layout_desc_template + layout_name_parts[7] + str(layer+1) + " " + histogram)}])
phase2tkmclayout(dqmitems, layout_name, (layout[0]+layout[1]), (layout[2]+layout[3]))
layout_num += 1
layout = []

# ----- INNER TRACKER ENDCAPS -----
else:
for histogram in histogram_names[lower:upper]:
for efpix in range(2):
layout_desc_template = layout_name_parts[0] + layout_name_parts[2+f_index] + layout_name_parts[s_index+7] + "Endcap " + layout_name_parts[10+efpix]
layout_name = str(f_index) + f"{layout_num:02}" + " - " + layout_desc_template + histogram
for layer in range(4+efpix): # One layout = One histogram * 4/5 rings, depending on FPix or EPix
layout.append([{"path":(file + structure + IT_structures[efpix] + "Ring" + str(layer+1) + "/" + histogram), "description":(layout_desc_template + layout_name_parts[12] + str(layer+1) + " " + histogram)}])
if efpix == 0:
phase2tkmclayout(dqmitems, layout_name, (layout[0]+layout[1]), (layout[2]+layout[3]))
else:
phase2tkmclayout(dqmitems, layout_name, (layout[0]+layout[1]), (layout[2]+layout[3]), layout[4])
layout_num += 1
layout = []

# ----- END BARREL/ENDCAP LOOP ------

# L1 TRACK
top_folder_name = "TrackerPhase2OTL1TrackV/"
layout_num = 00
sub_folders = ["Extended_L1TF/Displaced", "Extended_L1TF/Prompt", "Nominal_L1TF"]

l1t_histogram_names = ["FinalEfficiency/EtaEfficiency", "FinalResolution/EtaResolution",
"FinalEfficiency/d0Efficiency", "FinalResolution/d0Resolution",
"FinalEfficiency/z0Efficiency", "FinalResolution/z0Resolution",
"FinalEfficiency/LxyEfficiency",
"FinalResolution/PhiResolution"]

l1t_layout_names = ["Eta Efficiency & Resolution", "",
"d0 Efficiency & Resolution", "",
"z0 Efficiency & Resolution", "",
"Lxy Efficiency",
"Phi Resolution"]

layout = []
for folder in sub_folders:
for h_index, histogram in enumerate(l1t_histogram_names[0:6]):
path = top_folder_name + folder + "/" + histogram
layout_name = "6" + f"{layout_num:02}" + " - OT " + folder.replace("/", " ") + " " + l1t_layout_names[h_index-1]

if (h_index%2==1):
if folder != "Nominal_L1TF":
path = path + "_" + folder.lower()[14:]
layout_num += 1
layout.append([{"path":(path), "description":(histogram)}])
phase2tkmclayout(dqmitems, layout_name, (layout[0] + layout[1]))
layout = []

else:
layout.append([{"path":(path), "description":(histogram)}])

layout_name = "6" + f"{layout_num:02}" + " - OT " + folder.replace("/", " ") + " " + l1t_layout_names[6]
phase2tkmclayout(dqmitems, layout_name, [{"path":(top_folder_name + folder + "/" + l1t_histogram_names[6]), "description":(l1t_histogram_names[6])}])
layout_num += 1
layout_name = "6" + f"{layout_num:02}" + " - OT " + folder.replace("/", " ") + " " + l1t_layout_names[7]
path = top_folder_name + folder + "/" + l1t_histogram_names[7]
if folder != "Nominal_L1TF":
path = path + "_" + folder.lower()[14:]
phase2tkmclayout(dqmitems, layout_name, [{"path":(path), "description":(l1t_histogram_names[7])}])
layout_num += 1


1 change: 1 addition & 0 deletions dqmgui/server-conf-relval.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
LAYOUTS += glob("%s/layouts/shift_%s_relval_layout.py" % (CONFIGDIR, "pflow"))
LAYOUTS += glob("%s/layouts/%smc_relval-layouts.py" % (CONFIGDIR, "ecal"))
LAYOUTS += glob("%s/layouts/%smc_relval-layouts.py" % (CONFIGDIR, "tk"))
LAYOUTS += glob("%s/layouts/%smc_relval-layouts.py" % (CONFIGDIR, "p2tk"))
LAYOUTS += glob("%s/layouts/%smc_relval-layouts.py" % (CONFIGDIR, "pflow"))
LAYOUTS += glob("%s/layouts/%s_relval-layouts.py" % (CONFIGDIR, "hlt"))
LAYOUTS += glob("%s/layouts/%s_relval-layouts.py" % (CONFIGDIR, "ecal"))
Expand Down
89 changes: 71 additions & 18 deletions dqmgui/workspaces-relval.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,24 +95,77 @@
'MCLayouts/Tk/04 - TrackingMCTruth',
'MCLayouts/Tk/05 - TrackingRecHits',
)
server.workspace('DQMContent', 31, 'Monte Carlo', 'MC Tk Phase-2' , '^(TrackerPhase2.*/|SiOuter.*)', 'MCLayouts/PhaseTk')
server.workspace('DQMContent', 31, 'Monte Carlo', 'MC Ecal' , '^Ecal.*/', 'MCLayouts/Ecal')
server.workspace('DQMContent', 32, 'Monte Carlo', 'MC Hcal' , '(^Hcal(|NoiseRatesD|RecHitsD|DigisV|HitsV)|^CaloTowersD)/', 'MCLayouts/Hcal')
server.workspace('DQMContent', 33, 'Monte Carlo', 'MC DT' , '^DT/', '')
server.workspace('DQMContent', 34, 'Monte Carlo', 'MC CSC' , '^CSC/', '')
server.workspace('DQMContent', 35, 'Monte Carlo', 'MC RPC' , '^RPC/', '')
server.workspace('DQMContent', 36, 'Monte Carlo', 'MC Tracking' , '^Tracking/', '')
server.workspace('DQMContent', 37, 'Monte Carlo', 'MC L1T', '^L1T/', '')
server.workspace('DQMContent', 38, 'Monte Carlo', 'MC L1TEMU', '^L1TEMU/', '')
server.workspace('DQMContent', 39, 'Monte Carlo', 'MC HLT', '^HLT/', '')
server.workspace('DQMContent', 40, 'Monte Carlo', 'MC Electron' , '^Electron/', '')
server.workspace('DQMContent', 41, 'Monte Carlo', 'MC Photon' , '^Photon/', '')
server.workspace('DQMContent', 42, 'Monte Carlo', 'MC Muon' , '^Muon/', '')
server.workspace('DQMContent', 43, 'Monte Carlo', 'MC Jet' , '^Jet/', '')
server.workspace('DQMContent', 44, 'Monte Carlo', 'MC MET' , '^MET/', '')
server.workspace('DQMContent', 45, 'Monte Carlo', 'MC BTag' , '^BTag/', '')
server.workspace('DQMContent', 46, 'Monte Carlo', 'MC Tau' , '^.*Tau.*/', 'RecoTauV/Layouts')
server.workspace('DQMContent', 47, 'Monte Carlo', 'MC PFlow' , '^ParticleFlow/', 'MCLayouts/PFlow',
server.workspace('DQMContent', 31, 'Monte Carlo', 'MC Tk Phase-2' , '^TrackerPhase2(OT|IT)(Cluster|L1Track|RecHit|Stub|TrackingRecHit)V', 'MCLayouts/Phase2Tk',
"MCLayouts/Phase2Tk/000 - IT Clusters Barrel Delta_X_Pixel",
"MCLayouts/Phase2Tk/001 - IT Clusters Barrel Delta_Y_Pixel",
"MCLayouts/Phase2Tk/002 - IT Clusters MINUS Endcap FPix Delta_X_Pixel",
"MCLayouts/Phase2Tk/003 - IT Clusters MINUS Endcap EPix Delta_X_Pixel",
"MCLayouts/Phase2Tk/004 - IT Clusters MINUS Endcap FPix Delta_Y_Pixel",
"MCLayouts/Phase2Tk/005 - IT Clusters MINUS Endcap EPix Delta_Y_Pixel",
"MCLayouts/Phase2Tk/006 - IT Clusters PLUS Endcap FPix Delta_X_Pixel",
"MCLayouts/Phase2Tk/007 - IT Clusters PLUS Endcap EPix Delta_X_Pixel",
"MCLayouts/Phase2Tk/008 - IT Clusters PLUS Endcap FPix Delta_Y_Pixel",
"MCLayouts/Phase2Tk/009 - IT Clusters PLUS Endcap EPix Delta_Y_Pixel",
"MCLayouts/Phase2Tk/100 - IT RecHit Barrel Delta_Y_vs_DeltaX",
"MCLayouts/Phase2Tk/101 - IT RecHit MINUS Endcap FPix Delta_Y_vs_DeltaX",
"MCLayouts/Phase2Tk/102 - IT RecHit MINUS Endcap EPix Delta_Y_vs_DeltaX",
"MCLayouts/Phase2Tk/103 - IT RecHit PLUS Endcap FPix Delta_Y_vs_DeltaX",
"MCLayouts/Phase2Tk/104 - IT RecHit PLUS Endcap EPix Delta_Y_vs_DeltaX",
"MCLayouts/Phase2Tk/200 - IT TrackingRecHit Barrel Delta_X",
"MCLayouts/Phase2Tk/201 - IT TrackingRecHit Barrel Delta_Y",
"MCLayouts/Phase2Tk/202 - IT TrackingRecHit MINUS Endcap FPix Delta_X",
"MCLayouts/Phase2Tk/203 - IT TrackingRecHit MINUS Endcap EPix Delta_X",
"MCLayouts/Phase2Tk/204 - IT TrackingRecHit MINUS Endcap FPix Delta_Y",
"MCLayouts/Phase2Tk/205 - IT TrackingRecHit MINUS Endcap EPix Delta_Y",
"MCLayouts/Phase2Tk/206 - IT TrackingRecHit PLUS Endcap FPix Delta_X",
"MCLayouts/Phase2Tk/207 - IT TrackingRecHit PLUS Endcap EPix Delta_X",
"MCLayouts/Phase2Tk/208 - IT TrackingRecHit PLUS Endcap FPix Delta_Y",
"MCLayouts/Phase2Tk/209 - IT TrackingRecHit PLUS Endcap EPix Delta_Y",
"MCLayouts/Phase2Tk/300 - OT Clusters Barrel Delta_X_Strip",
"MCLayouts/Phase2Tk/301 - OT Clusters Barrel Delta_Y_Strip",
"MCLayouts/Phase2Tk/302 - OT Clusters Barrel Delta_X_Pixel",
"MCLayouts/Phase2Tk/303 - OT Clusters Barrel Delta_Y_Pixel",
"MCLayouts/Phase2Tk/400 - OT RecHit Barrel Delta_X_Strip",
"MCLayouts/Phase2Tk/401 - OT RecHit Barrel Delta_Y_Strip",
"MCLayouts/Phase2Tk/402 - OT RecHit Barrel Delta_X_Pixel",
"MCLayouts/Phase2Tk/403 - OT RecHit Barrel Delta_Y_Pixel",
"MCLayouts/Phase2Tk/500 - OT TrackingRecHit Barrel Delta_X_Strip",
"MCLayouts/Phase2Tk/501 - OT TrackingRecHit Barrel Delta_Y_Strip",
"MCLayouts/Phase2Tk/502 - OT TrackingRecHit Barrel Delta_X_Pixel",
"MCLayouts/Phase2Tk/503 - OT TrackingRecHit Barrel Delta_Y_Pixel",
"MCLayouts/Phase2Tk/600 - OT Extended_L1TF Displaced Eta Efficiency & Resolution",
"MCLayouts/Phase2Tk/601 - OT Extended_L1TF Displaced d0 Efficiency & Resolution",
"MCLayouts/Phase2Tk/602 - OT Extended_L1TF Displaced z0 Efficiency & Resolution",
"MCLayouts/Phase2Tk/603 - OT Extended_L1TF Displaced Lxy Efficiency",
"MCLayouts/Phase2Tk/604 - OT Extended_L1TF Displaced Phi Resolution",
"MCLayouts/Phase2Tk/605 - OT Extended_L1TF Prompt Eta Efficiency & Resolution",
"MCLayouts/Phase2Tk/606 - OT Extended_L1TF Prompt d0 Efficiency & Resolution",
"MCLayouts/Phase2Tk/607 - OT Extended_L1TF Prompt z0 Efficiency & Resolution",
"MCLayouts/Phase2Tk/608 - OT Extended_L1TF Prompt Lxy Efficiency",
"MCLayouts/Phase2Tk/609 - OT Extended_L1TF Prompt Phi Resolution",
"MCLayouts/Phase2Tk/610 - OT Nominal_L1TF Eta Efficiency & Resolution",
"MCLayouts/Phase2Tk/611 - OT Nominal_L1TF d0 Efficiency & Resolution",
"MCLayouts/Phase2Tk/612 - OT Nominal_L1TF z0 Efficiency & Resolution",
"MCLayouts/Phase2Tk/613 - OT Nominal_L1TF Lxy Efficiency",
"MCLayouts/Phase2Tk/614 - OT Nominal_L1TF Phi Resolution",)

server.workspace('DQMContent', 32, 'Monte Carlo', 'MC Ecal' , '^Ecal.*/', 'MCLayouts/Ecal')
server.workspace('DQMContent', 33, 'Monte Carlo', 'MC Hcal' , '(^Hcal(|NoiseRatesD|RecHitsD|DigisV|HitsV)|^CaloTowersD)/', 'MCLayouts/Hcal')
server.workspace('DQMContent', 34, 'Monte Carlo', 'MC DT' , '^DT/', '')
server.workspace('DQMContent', 35, 'Monte Carlo', 'MC CSC' , '^CSC/', '')
server.workspace('DQMContent', 36, 'Monte Carlo', 'MC RPC' , '^RPC/', '')
server.workspace('DQMContent', 37, 'Monte Carlo', 'MC Tracking' , '^Tracking/', '')
server.workspace('DQMContent', 38, 'Monte Carlo', 'MC L1T', '^L1T/', '')
server.workspace('DQMContent', 39, 'Monte Carlo', 'MC L1TEMU', '^L1TEMU/', '')
server.workspace('DQMContent', 40, 'Monte Carlo', 'MC HLT', '^HLT/', '')
server.workspace('DQMContent', 41, 'Monte Carlo', 'MC Electron' , '^Electron/', '')
server.workspace('DQMContent', 42, 'Monte Carlo', 'MC Photon' , '^Photon/', '')
server.workspace('DQMContent', 43, 'Monte Carlo', 'MC Muon' , '^Muon/', '')
server.workspace('DQMContent', 44, 'Monte Carlo', 'MC Jet' , '^Jet/', '')
server.workspace('DQMContent', 45, 'Monte Carlo', 'MC MET' , '^MET/', '')
server.workspace('DQMContent', 46, 'Monte Carlo', 'MC BTag' , '^BTag/', '')
server.workspace('DQMContent', 47, 'Monte Carlo', 'MC Tau' , '^.*Tau.*/', 'RecoTauV/Layouts')
server.workspace('DQMContent', 48, 'Monte Carlo', 'MC PFlow' , '^ParticleFlow/', 'MCLayouts/PFlow',
'MCLayouts/PFlow/01 - Jet Pt Resolution - Barrel',
'MCLayouts/PFlow/02 - Jet Pt Resolution - Endcap',
'MCLayouts/PFlow/03 - Jet Pt Resolution distribution - Barrel',
Expand Down