16def TrigSPTRK(configFlags, highGranularity=False):
17
18 from AthenaMonitoring import AthMonitorCfgHelper
19
20 monConfig = AthMonitorCfgHelper(configFlags, "HLTMBSPTRKMonAlg")
21
22 from AthenaConfiguration.ComponentFactory import CompFactory
23
24 alg = monConfig.addAlgorithm(CompFactory.HLTMinBiasTrkMonAlg, "HLTMBSPTRKMonAlg")
25
26 from InDetTrackSelectionTool.InDetTrackSelectionToolConfig import (
27 InDetTrackSelectionTool_LoosePrimary_Cfg)
28 trkSel = monConfig.resobj.popToolsAndMerge(InDetTrackSelectionTool_LoosePrimary_Cfg(configFlags))
29 alg.TrackSelectionTool = trkSel
30
31 ZFinderCollection = 'HLT_vtx_z'
32 if ZFinderCollection in configFlags.Input.Collections:
33 log.info("Enabled z finder data reading")
34 alg.zFinderDataKey = ZFinderCollection
35
36 from TrigConfigSvc.TriggerConfigAccess import getHLTMonitoringAccess
37 monAccess = getHLTMonitoringAccess(configFlags)
38
39 spChains = getMinBiasChains(monAccess, '(pix|hmt)')
40 spTrkChains = getMinBiasChains(monAccess, '(sptrk|excl|hmt|_mb_sp_)')
41
42 log.info(f'Monitoring {len(spChains)} SpacePoints chains')
43 log.debug([name for name, _ in spChains])
44 log.info(f'Monitoring {len(spTrkChains)} Tracking chains')
45 log.debug([name for name, _ in spTrkChains])
46
47 alg.triggerListTrackingMon = [name for name, _ in spTrkChains]
48 alg.triggerListSpacePointsMon = [name for name, _ in spChains]
49
50
51 nbins = 400 if highGranularity else 50
52 nTrkMax = 400
53 nSctCl = 5000
54 nPixBar = 2000
55 nPixEC = 500
56
57 for chain, group in spChains:
58 mbSpGroup = monConfig.addGroup(alg, f'{chain}_SpacePoints', topPath=f"HLT/MinBiasMon/{group}/SpacePoints/{chain}/")
59
60 mbSpGroup.defineHistogram("PixelCL;PixelCLNarrowRange", title="Number of SP in whole Pixels detector for all events", xbins=100, xmin=0, xmax=100)
61 mbSpGroup.defineHistogram("PixelCL;PixelCLWideRange", title="Number of SP in whole Pixels detector for all events", xbins=250, xmin=0, xmax=nPixBar)
62 mbSpGroup.defineHistogram("PixBarr_SP", title="Number of SP for all events in Barrel", xbins=250, xmin=0, xmax=nPixBar)
63 mbSpGroup.defineHistogram("PixECA_SP", title="Number of SP for all events in ECA", xbins=250, xmin=0, xmax=nPixEC)
64 mbSpGroup.defineHistogram("PixECC_SP", title="Number of SP for all events in ECC", xbins=250, xmin=0, xmax=nPixEC)
65 mbSpGroup.defineHistogram("SctTot;SctTotNarrowRange", title="Number of SP in whole SCT detector for all events", xbins=100, xmin=0, xmax=100)
66 mbSpGroup.defineHistogram("SctTot;SctTotWideRange", title="Number of SP in whole SCT detector for all events", xbins=250, xmin=0, xmax=nSctCl)
67 mbSpGroup.defineHistogram("SctBarr_SP", title="Number of SCT_SP for all events in Barrel", xbins=250, xmin=0, xmax=nSctCl)
68 mbSpGroup.defineHistogram("SctECA_SP", title="Number of SCT_SP for all events in ECA", xbins=250, xmin=0, xmax=nSctCl)
69 mbSpGroup.defineHistogram("SctECC_SP", title="Number of SCT_SP for all events in ECC", xbins=250, xmin=0, xmax=nSctCl)
70 mbSpGroup.defineHistogram("SctECA_SP,SctECC_SP", type="TH2F", title=";SctECA_SP;SctECC_SP", xbins=nbins, xmin=0, xmax=nSctCl, ybins=nbins, ymin=0, ymax=nSctCl)
71 mbSpGroup.defineHistogram("PixECA_SP,PixECC_SP", type="TH2F", title=";PixECA_SP;PixECC_SP", xbins=nbins, xmin=0, xmax=nPixEC, ybins=nbins, ymin=0, ymax=nPixEC)
72 mbSpGroup.defineHistogram("SctBarr_SP,PixBarr_SP", type="TH2F", title=";SctBarr_SP;PixBarr_SP", xbins=nbins, xmin=0, xmax=nSctCl, ybins=nbins, ymin=0, ymax=nPixBar)
73 mbSpGroup.defineHistogram("SctECA_SP,PixECA_SP", type="TH2F", title=";SctECA_SP;PixECA_SP", xbins=nbins, xmin=0, xmax=nSctCl, ybins=nbins, ymin=0, ymax=nPixEC)
74 mbSpGroup.defineHistogram("SctECC_SP,PixECC_SP", type="TH2F", title=";SctECC_SP;PixECC_SP", xbins=nbins, xmin=0, xmax=nSctCl, ybins=nbins, ymin=0, ymax=nPixEC)
75 mbSpGroup.defineHistogram("SctTot,PixelCL", type="TH2F", title=";Number of SP in whole SCT detector for all events;Number of SP in whole Pixels detector for all events", xbins=nbins, xmin=0, xmax=4000, ybins=nbins, ymin=0, ymax=4000)
76
77 for chain, group in spTrkChains:
78 mbSpTrkGroup = monConfig.addGroup(alg, f'{chain}_Tracking', topPath=f"HLT/MinBiasMon/{group}/Tracking/{chain}/")
79
80
81 mbSpTrkGroup.defineHistogram("nTrkOffline", title="Number of tracks reconstructed offline;track counts", xbins=200, xmin=-1, xmax=400)
82 mbSpTrkGroup.defineHistogram("nTrkOffline;nTrkOfflineLowMult", title="Number of tracks reconstructed offline;track counts", xbins=50, xmin=-1, xmax=50)
83 mbSpTrkGroup.defineHistogram("nTrkOnline;nTrkOnlineLowMult", title="Number of tracks reconstructed online;track counts", xbins=50, xmin=-1, xmax=50)
84
85 mbSpTrkGroup.defineHistogram("trkPt", cutmask="trkMask", title="Offline selected tracks pt;p_{T} [GeV]", xbins=100, xmin=0, xmax=5)
86 mbSpTrkGroup.defineHistogram("trkEta", cutmask="trkMask", title="Offline selected tracks eta;#eta", xbins=50, xmin=-2.5, xmax=2.5)
87 mbSpTrkGroup.defineHistogram("trkPhi", cutmask="trkMask", title="Offline selected tracks phi;#phi", xbins=64, xmin=-math.pi, xmax=math.pi)
88 mbSpTrkGroup.defineHistogram("trkHits", title="Offline selected tracks, hits per track;number of hits", xbins=15, xmin=-0.5, xmax=15 - 0.5)
89
90 mbSpTrkGroup.defineHistogram("onlTrkPt", title="Online tracks pt;p_{T} [GeV]", xbins=100, xmin=0, xmax=5)
91 mbSpTrkGroup.defineHistogram("onlTrkEta", title="Online tracks eta;#eta", xbins=50, xmin=-2.5, xmax=2.5)
92 mbSpTrkGroup.defineHistogram("onlTrkPhi", title="Online tracks phi;#phi", xbins=64, xmin=-math.pi, xmax=math.pi)
93 mbSpTrkGroup.defineHistogram("onlTrkHits", title="Online hits per track;number of hits", xbins=15, xmin=-0.5, xmax=15 - 0.5)
94 mbSpTrkGroup.defineHistogram("onlTrkZ0", title="Online track z_{0};z_{0}[mm]", xbins=40, xmin=-200, xmax=200)
95 mbSpTrkGroup.defineHistogram("onlTrkD0", title="Online track d_{0};d_{0}[mm]", xbins=40, xmin=-20, xmax=20)
96
97 mbSpTrkGroup.defineHistogram("trkD0", cutmask="trkMask", title="Offline selected tracks D0;d_{0} [mm]", xbins=40, xmin=-20, xmax=20)
98 mbSpTrkGroup.defineHistogram("trkZ0wrtPV", cutmask="trkMask", title="Offline selected tracks Z0 wrt PV;z_{0}[mm]", xbins=40, xmin=-20, xmax=20)
99 mbSpTrkGroup.defineHistogram("trkZ0", cutmask="trkMask", title="Offline selected tracks Z0;z_{0}[mm]", xbins=40, xmin=-200, xmax=200)
100
101 mbSpTrkGroup.defineHistogram("onlineOfflineVtxDelta", title=";(offline - online) vertex z[mm]", xbins=200, xmin=-200, xmax=200)
102
103
104 mbSpTrkGroup.defineHistogram('trkEta,trkPt', cutmask='trkMask', type='TH2F', title='Offline selected tracks pT/eta correlation;#eta;p_{T} [GeV]', xbins=50, xmin=-2.5, xmax=2.5, ybins=50, ymin=0, ymax=5)
105 mbSpTrkGroup.defineHistogram('onlTrkEta,onlTrkPt', type='TH2F', title='Online tracks pT/eta correlation;#eta;p_{T} [GeV]', xbins=50, xmin=-2.5, xmax=2.5, ybins=50, ymin=0, ymax=5)
106
107 mbSpTrkGroup.defineHistogram('trkEta,trkPhi', cutmask='trkMask', type='TH2F', title='Offline selected tracks eta/phi correlation;#eta;#varphi', xbins=50, xmin=-2.5, xmax=2.5, ybins=50, ymin=-math.pi, ymax=math.pi)
108 mbSpTrkGroup.defineHistogram('onlTrkEta,onlTrkPhi', type='TH2F', title='Online tracks eta/phi correlation;#eta;#varphi', xbins=50, xmin=-2.5, xmax=2.5, ybins=50, ymin=-math.pi, ymax=math.pi)
109
110 mbSpTrkGroup.defineHistogram("nTrkOnline,nTrkOffline", type="TH2F", title=";N online tracks;N offline tracks", xbins=nbins, xmin=0, xmax=nTrkMax, ybins=nbins, ymin=0, ymax=nTrkMax)
111 mbSpTrkGroup.defineHistogram("nTrkOfflineVtx,nTrkOffline", type="TH2F", title=";N offline tracks with Vtx cut;N offline tracks", xbins=nbins, xmin=0, xmax=nTrkMax, ybins=nbins, ymin=0, ymax=nTrkMax)
112 mbSpTrkGroup.defineHistogram("nTrkOnline,zFinderWeight", type="TH2F", title=";N online tracks;ZFinder weight", xbins=nbins, xmin=0, xmax=nTrkMax, ybins=nbins, ymin=0, ymax=nTrkMax)
113 mbSpTrkGroup.defineHistogram("nTrkOffline,zFinderWeight", type="TH2F", title=";N online tracks;ZFinder weight", xbins=nbins, xmin=0, xmax=nTrkMax, ybins=nbins, ymin=0, ymax=nTrkMax)
114 mbSpTrkGroup.defineHistogram("nTrkOfflineVtx,zFinderWeight", type="TH2F", title=";N offline tracks with Vtx cut;ZFinder weight", xbins=nbins, xmin=0, xmax=nTrkMax, ybins=nbins, ymin=0, ymax=nTrkMax)
115 mbSpTrkGroup.defineHistogram("nTrkOfflineVtx,nTrkOnlineVtx", type="TH2F", title=";N offline tracks with Vtx cut;N online tracks with Vtx cut;", xbins=nbins, xmin=0, xmax=nTrkMax, ybins=nbins, ymin=0, ymax=nTrkMax)
116
117
118 mbSpTrkGroup.defineHistogram("nTrkOnline", title="Number of tracks reconstructed online;track counts", xbins=200, xmin=-1, xmax=400)
119 mbSpTrkGroup.defineHistogram("nTrkRatio", title="Number of tracks reconstructed online/offline;track counts online/offline", xbins=200, xmin=-1, xmax=4)
120 mbSpTrkGroup.defineHistogram("trkSelOfflineRatio", title="Number of tracks reconstructed offline(selected)/offline; N sel/all", xbins=200, xmin=0.1, xmax=1.9)
121
122 return monConfig.result()
123
124