ATLAS Offline Software
Loading...
Searching...
No Matches
StgcMonitorAlgorithm Namespace Reference

Functions

 sTgcMonitoringConfig (inputFlags, NSW_PadTrigKey='')

Variables

 parser = argparse.ArgumentParser()
 default
 type
 int
 help
 nargs
 None
 args = parser.parse_args()
 flags = initConfigFlags()
 Files
 HISTFileName
 GeometrysTGC
 useTrigger
 GlobalTag
 cfg = MainServicesCfg(flags)
 sTgcMonitorAcc = sTgcMonitoringConfig(flags)
 OutputLevel

Function Documentation

◆ sTgcMonitoringConfig()

StgcMonitorAlgorithm.sTgcMonitoringConfig ( inputFlags,
NSW_PadTrigKey = '' )
Function to configures some algorithms in the monitoring system.

Definition at line 9 of file StgcMonitorAlgorithm.py.

9def sTgcMonitoringConfig(inputFlags,NSW_PadTrigKey=''):
10 '''Function to configures some algorithms in the monitoring system.'''
11
13 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
14 result = ComponentAccumulator()
15
16 # Make sure muon geometry is configured
17 from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
18 result.merge(MuonGeoModelCfg(inputFlags))
19
20 # The following class will make a sequence, configure algorithms, and link them to GenericMonitoringTools
21
22 from AthenaMonitoring import AthMonitorCfgHelper
23 helper = AthMonitorCfgHelper(inputFlags, 'StgcAthMonitorCfg')
24
25 # Adding an algorithm to the helper.
26 sTgcMonAlg = helper.addAlgorithm(CompFactory.sTgcRawDataMonAlg,'sTgcMonAlg')
27 sTgcMonAlg.cutPt = 15000.
28 sTgcMonAlg.cutEtaDown = 1.3
29 sTgcMonAlg.cutEtaUp = 2.4
30 sTgcMonAlg.minDeltaR = 0.1
31 sTgcMonAlg.cutTriggerPhiId = 63
32 sTgcMonAlg.cutTriggerBandId = 255
33 sTgcMonAlg.NSW_PadTriggerDataKey = NSW_PadTrigKey
34
35 globalPath = 'Muon/MuonRawDataMonitoring/STG/'
36
37 # Layered and occupancy histograms
38 tech = ['pad', 'strip', 'wire']
39 side = ['A', 'C']
40 size = ['L', 'S']
41 stationEtaMax = 3
42 sectorMax = 16
43 layerMax = 8
44
45 # Custom labels
46 # Pad trigger occupancy
47 columnLabels = [columnLabels_AL, columnLabels_AS, columnLabels_CL, columnLabels_CS]
48
49 # Shifter
50 OverviewGroup = helper.addGroup(sTgcMonAlg, 'Overview', globalPath + 'Shifter/Overview')
51 OverviewGroup.defineHistogram('muonRecoTriggerMatch,etaRecoMuonEff,phiRecoMuonEff;padTrigger_Efficiency_per_etaPhi', type = 'TEfficiency', title = '; #eta (reco); #phi (reco); Pad trigger efficiency wrt. reco. muon', path = '', xbins = 100, xmin = -3., xmax = 3., ybins = 100, ymin = -math.pi, ymax = math.pi, opt = 'kAlwaysCreate')
52 OverviewGroup.defineHistogram('etaRecoMuon,phiRecoMuon;recoMuon_Map_per_etaPhi', type = 'TH2F', title = '; #eta (reco); #phi (reco); Entries', path = '', xbins = 100, xmin = -3., xmax = 3., ybins = 100, ymin = -math.pi, ymax = math.pi, opt = 'kAlwaysCreate')
53 OverviewGroup.defineHistogram('etaPadTrigger,phiPadTrigger;padTrigger_Map_per_etaPhi', type = 'TH2F', title = '; #eta (trig); #phi (trig); Entries', path = '', xbins = 100, xmin = -3., xmax = 3., ybins = 100, ymin = -math.pi, ymax = math.pi, opt = 'kAlwaysCreate')
54 OverviewGroup.defineHistogram('etaPadTrigger;padTrigger_Map_per_eta', type = 'TH1F', title = '; #eta (trig); Entries', path = '', xbins = 100, xmin = -3., xmax = 3., opt = 'kAlwaysCreate')
55
56 #OccupancyShifterGroup = helper.addGroup(sTgcMonAlg, 'OccupancyShifter', globalPath + 'Expert/Occupancy/')
57 sTgcTimingGroup = helper.addGroup(sTgcMonAlg, 'sTgcTiming', globalPath + 'Expert/Timing/')
58 LBShifterGroup = helper.addGroup(sTgcMonAlg, 'LBShifterGroup', globalPath + 'Shifter/OccupancyGlobal/')
59 sTgcPadTriggerShifterGroup = helper.addGroup(sTgcMonAlg, 'padTriggerShifter', globalPath + 'Shifter/')
60 OverviewGroup.defineHistogram('lb,sector;OccupancySector_vs_LB', type = 'TH2F', title = '; LB; Sector; Number of triggers', path = '', xbins = 100, xmin = -0.5, xmax = 99.5, ybins = 2*sectorMax + 1, ymin = -sectorMax - 0.5, ymax = sectorMax + 0.5, opt = 'kAlwaysCreate,kAddBinsDynamically', weight = 'numberOfTriggers')
61
62 # Expert
63 OccupancyGroup = helper.addGroup(sTgcMonAlg, 'Occupancy', globalPath + 'Expert/Occupancy')
64 LBExpertGroup = helper.addGroup(sTgcMonAlg, 'LBExpertGroup', globalPath + 'Expert/Lumiblock/')
65 sTgcPadTriggerExpertGroup = helper.addGroup(sTgcMonAlg, 'padTriggerExpert', globalPath + 'Expert/')
66 sTgcPadTriggerExpertGroup.defineHistogram('sector,hitPfebs;OccupancypFEB_vs_Sector', type = 'TH2F', title = '; Sector; Hit pFEB; Pad Trigger hits associated to reco muons', path = 'PadTrigger/Hits', xbins = 2*sectorMax + 1, xmin = -sectorMax - 0.5, xmax = sectorMax + 0.5, ybins = 25, ymin = -0.5, ymax = 24.5, opt = 'kAlwaysCreate')
67 sTgcPadTriggerExpertGroup.defineHistogram('sector,hitRelBCID;relBCID_vs_Sector', type = 'TH2F', title = '; Sector; Hit relBCID; Pad Trigger hits associated to reco muons', path = 'PadTrigger/Hits', xbins = 2*sectorMax + 1, xmin = -sectorMax - 0.5, xmax = sectorMax + 0.5, ybins = 7, ymin = -0.5, ymax = 6.5, opt = 'kAlwaysCreate')
68 sTgcPadTriggerExpertGroup.defineHistogram('lb,relBCID;RelBCID_vs_LB', type = 'TH2F', title = '; LB; Trigger relBCID; Pad Trigger hits', path = 'PadTrigger/Triggers', xbins = 100, xmin = -0.5, xmax = 99.5, ybins = 7, ymin = -0.5, ymax = 6.5, opt = 'kAlwaysCreate,kAddBinsDynamically')
69 padTriggerOccupancyGroup = helper.addGroup(sTgcMonAlg, 'padTriggerOccupancy', globalPath + 'Expert/PadTrigger/Hits/')
70
71 for tIdx in tech:
72 OccupancyGroup.defineHistogram(f'{tIdx}Sector,{tIdx}Feb;Feb_vs_sector_{tIdx}', type = 'TH2F', title = ';Sector; FEB; Hits', path = f'{tIdx[0].capitalize()+tIdx[1:]}', xbins = 33, xmin = -16.5, xmax = 16.5, ybins = 24, ymin = -0.5, ymax = 23.5, ylabels = FebLabels, opt='kAlwaysCreate')
73 LBShifterGroup.defineHistogram(f'{tIdx}Lb,{tIdx}Sector;Summary_LB_vs_Sector_{tIdx}',type = 'TH2F',title = ';LB; Sector; Hits', path = '', xbins = 100, xmin = -0.5, xmax = 99.5, ybins = 33, ymin = -16.5, ymax = 16.5, opt = 'kAlwaysCreate, kAddBinsDynamically')
74
75 layerCounter=0
76 for layerIndex in range(1, layerMax + 1):
77 layerCounter+=1
78 sTgcPadTriggerExpertGroup.defineHistogram(f'stripTrackSectorSided_layer_{layerIndex},stripTrackClusterSize_layer_{layerIndex};Strip_cluster_size_ontrk_per_sector_Layer{layerIndex}', type = 'TH2F', title = f'L{layerIndex}; Sector; Strip Cluster Size (on-track); Hits', path = 'StripClusterSize', xbins = 2*sectorMax + 1, xmin = -sectorMax - 0.5, xmax = sectorMax + 0.5, ybins = 13, ymin = -0.5, ymax = 12.5, opt = 'kAlwaysCreate')
79 sTgcTimingGroup.defineHistogram(f'padTrackSectorSided_layer_{layerIndex},padTrackTiming_layer_{layerIndex};All_pad_timing_per_sector_Layer{layerIndex}', type = 'TH2F', title = f'L{layerIndex}; Sector; Pad Timing (on-track) [ns]; Hits', path = 'Pad/Layer', xbins = 2*sectorMax + 1, xmin = -sectorMax - 0.5, xmax = sectorMax + 0.5, ybins = 225, ymin = -100., ymax = 125., opt = 'kAlwaysCreate')
80 sTgcTimingGroup.defineHistogram(f'stripTrackSectorSided_layer_{layerIndex},stripTrackTiming_layer_{layerIndex};All_strip_timing_per_sector_Layer{layerIndex}', type = 'TH2F', title = f'L{layerIndex}; Sector; Strip Cluster Timing (on-track) [ns]; Hits', path = 'Strip/Layer', xbins = 2*sectorMax + 1, xmin = -sectorMax - 0.5, xmax = sectorMax + 0.5, ybins = 225, ymin = -100., ymax = 125., opt = 'kAlwaysCreate')
81 sTgcTimingGroup.defineHistogram(f'wireGroupTrackSectorSided_layer_{layerIndex},wireGroupTrackTiming_layer_{layerIndex};All_wire_timing_per_sector_Layer{layerIndex}', type = 'TH2F', title = f'L{layerIndex}; Sector; Wire Group timing (on-track) [ns]; Hits', path = 'Wire/Layer', xbins = 2*sectorMax + 1, xmin = -sectorMax - 0.5, xmax = sectorMax + 0.5, ybins = 225, ymin = -100., ymax = 125., opt = 'kAlwaysCreate')
82 OccupancyGroup.defineHistogram(f'sector_layer_{layerIndex},padNumber_layer_{layerIndex};Pad_ch_occupancy_per_sector_Layer{layerIndex}', type = 'TH2F', title = f'L{layerIndex}; Sector; Pad Number; Hits', path = 'Pad', xbins = 2*sectorMax + 1, xmin = -sectorMax - 0.5, xmax = sectorMax + 0.5, ybins = 317, ymin = 0., ymax = 317., opt = 'kAlwaysCreate')
83 OccupancyGroup.defineHistogram(f'sector_layer_{layerIndex},stripNumber_layer_{layerIndex};Strip_ch_occupancy_per_sector_Layer{layerIndex}', type = 'TH2F', title = f'L{layerIndex}; Sector; Strip Number; Hits', path = 'Strip', xbins = 2*sectorMax + 1, xmin = -sectorMax - 0.5, xmax = sectorMax + 0.5, ybins = 1130, ymin = 0., ymax = 1130., opt = 'kAlwaysCreate')
84 OccupancyGroup.defineHistogram(f'wireGroupNumber_layer_{layerIndex},stationEta_layer_{layerIndex};Wire_ch_occupancy_per_sector_Layer{layerIndex}', type = 'TH2F', title = f'L{layerIndex}; Wire Group Number; Quad; Hits', path = 'Wire', xbins = 58*sectorMax + 1, xmin = -0.5, xmax = 58*sectorMax + 0.5, xlabels = wireGroupNumberLabel, ybins = 2*stationEtaMax + 1, ymin = -stationEtaMax - 0.5, ymax = stationEtaMax + 0.5, opt = 'kAlwaysCreate')
85
86 columnLabelsCounter=0
87 sizeCounter=0
88 for sizeIndex in size:
89 sizeCounter+=1
90 for sideIndex in side:
91 padTriggerOccupancyGroup.defineHistogram(f'padPhi_{sideIndex}_{sizeIndex}_layer_{layerIndex},padEta_{sideIndex}_{sizeIndex}_layer_{layerIndex};padEtaPhiOcc_{layerIndex}{sideIndex}{sizeIndex}', type = 'TH2F', title = f'{layerIndex}{sideIndex}{sizeIndex}; Pad column; Pad row; Hits', path = 'padTriggerOccupancy', xbins = 71, xmin = 0.5, xmax = 71.5, xlabels = columnLabels[columnLabelsCounter], ybins = 56, ymin = 0.5, ymax = 56.5, ylabels = rowLabels, opt = 'kAlwaysCreate')
92 columnLabelsCounter += 1
93 if sizeCounter==1:
94 sTgcPadTriggerShifterGroup.defineHistogram(f'hitLayer,xPosStrip_{sideIndex}_layer_{layerIndex},yPosStrip_{sideIndex}_layer_{layerIndex};strip_efficiency_per_mm_squared_Wheel{sideIndex}_layer{layerIndex}', type = 'TEfficiency', title = f'{sideIndex}L{layerIndex}; sTgc-GlobalX-Strip (on track) [mm]; sTgc-GlobalY-Strip (on track) [mm]; Efficiency sTGC strip {sideIndex}L{layerIndex}', path = 'StripEfficiency', xbins = 500, xmin = -5000., xmax = 5000., ybins = 500, ymin = -5000., ymax = 5000., opt = 'kAlwaysCreate')
95 if layerCounter==1:
96 sTgcPadTriggerExpertGroup.defineHistogram(f'phiIds_{sideIndex}_{sizeIndex},bandIds_{sideIndex}_{sizeIndex};bandIds_vs_phiIds_Side{sideIndex}_Size{sizeIndex}', type = 'TH2F', title = f'{sideIndex}{sizeIndex}; Trigger phiID; Trigger bandID; Pad Trigger hits', path = 'PadTrigger/Triggers', xbins = 65, xmin = -32.5, xmax = 32.5, ybins = 101, ymin = -0.5, ymax = 100.5, opt = 'kAlwaysCreate')
97
98 sideCounter=0
99 for sideIndex in side:
100 sideCounter+=1
101
102 sectorCounter=0
103 for sectorIndex in range(1, sectorMax + 1):
104 sectorCounter+=1
105 efficiencyGlobalRgroup = helper.addGroup(sTgcMonAlg, f'rPosStrip_{sideIndex}{sectorIndex}', globalPath + 'Expert/Efficiency/')
106 sTgcPadTriggerExpertGroup.defineHistogram(f'lb_{sideIndex}_sector_{sectorIndex},bandIds_{sideIndex}_sector_{sectorIndex};OccupancyBandId_vs_LB_Side{sideIndex}_Sector{sectorIndex}', type = 'TH2F', title = f'{sideIndex}' + f'{sectorIndex}'.zfill(2) + '; LB; Trigger bandID; number of triggers', path = 'PadTrigger/Triggers/OccupancyBandIDvsLB', xbins = 100, xmin = -0.5, xmax = 99.5, ybins = 101, ymin = -0.5, ymax = 100.5, opt = 'kAlwaysCreate,kAddBinsDynamically', weight = f'numberOfTriggers_{sideIndex}_sector_{sectorIndex}')
107 sTgcPadTriggerExpertGroup.defineHistogram(f'phiIds_{sideIndex}_sector_{sectorIndex},bandIds_{sideIndex}_sector_{sectorIndex};bandIds_vs_phiIds_Side{sideIndex}_Sector{sectorIndex}', type = 'TH2F', title = f'{sideIndex}' + f'{sectorIndex}'.zfill(2) + '; Trigger phiID; Trigger bandID; Pad Trigger hits', path = 'PadTrigger/Triggers/OccupancyBandIDvsPhiId', xbins = 65, xmin = -32.5, xmax = 32.5, ybins = 101, ymin = -0.5, ymax = 100.5, opt = 'kAlwaysCreate')
108 sTgcPadTriggerExpertGroup.defineHistogram(f'lb_{sideIndex}_sector_{sectorIndex},relBCID_{sideIndex}_sector_{sectorIndex};RelBCID_vs_LB_Side{sideIndex}_Sector{sectorIndex}', type = 'TH2F', title = f'{sideIndex}' + f'{sectorIndex}'.zfill(2) + '; LB; Trigger relBCID; Pad Trigger hits', path = 'PadTrigger/Triggers/RelBCIDvsLB', xbins = 100, xmin = -0.5, xmax = 99.5, ybins = 7, ymin = -0.5, ymax = 6.5, opt = 'kAlwaysCreate,kAddBinsDynamically')
109 sTgcPadTriggerExpertGroup.defineHistogram(f'relBCID_{sideIndex}_sector_{sectorIndex},phiIds_{sideIndex}_sector_{sectorIndex};Trigger_PhiID_vs_RelBCID_Side{sideIndex}_Sector{sectorIndex}', type = 'TH2F', title = f'{sideIndex}' + f'{sectorIndex}'.zfill(2) + '; Trigger relBCID; Trigger phiID; Pad Trigger hits', path = 'PadTrigger/Triggers/PhiIDvsRelBCID', xbins = 7, xmin = -0.5, xmax = 6.5, ybins = 65, ymin = -32.5, ymax = 32.5, opt = 'kAlwaysCreate')
110 sTgcPadTriggerExpertGroup.defineHistogram(f'relBCID_{sideIndex}_sector_{sectorIndex},bandID_{sideIndex}_sector_{sectorIndex};Trigger_BandID_vs_RelBCID_Side{sideIndex}_Sector{sectorIndex}', type = 'TH2F', title = f'{sideIndex}' + f'{sectorIndex}'.zfill(2) + '; Trigger relBCID; Trigger bandID; Pad Trigger hits', path = 'PadTrigger/Triggers/BandIDvsRelBCID', xbins = 7, xmin = -0.5, xmax = 6.5, ybins = 101, ymin = -0.5, ymax = 100.5, opt = 'kAlwaysCreate')
111 sTgcPadTriggerExpertGroup.defineHistogram(f'hitRelBCID_{sideIndex}_sector_{sectorIndex},hitPfebs_{sideIndex}_sector_{sectorIndex};pFEB_vs_relBCID_Side{sideIndex}_Sector{sectorIndex}', type = 'TH2F', title = f'{sideIndex}' + f'{sectorIndex}'.zfill(2) + '; Hit relBCID; Hit pFEB; Pad Trigger hits associated to reco muons', path = 'PadTrigger/Hits/PFEBvsRelBCID', xbins = 7, xmin = -0.5, xmax = 6.5, ybins = 25, ymin = -0.5, ymax = 24.5, opt = 'kAlwaysCreate')
112
113 for tIdx in tech:
114 LBExpertGroup.defineHistogram(f'{tIdx}LBsector{sideIndex}{sectorIndex},{tIdx}FEBsector{sideIndex}{sectorIndex};LB_vs_FEB_perSector_{tIdx}_{sideIndex}'+f'{sectorIndex}'.zfill(2), type = 'TH2F', title = 'FEB vs LB; LB; FEB', path = f'{tIdx[0].capitalize()+tIdx[1:]}'+'/Side'+f'{sideIndex}', xbins = 100, xmin = -0.5, xmax = 99.5, ybins = 24, ymin = -0.5, ymax = 23.5, ylabels = FebLabels, opt = 'kAlwaysCreate,kAddBinsDynamically')
115 outdir = sideIndex+f'{sectorIndex}'.zfill(2)
116 OccupancyGroup.defineHistogram(f'{tIdx}layer_{sideIndex}{sectorIndex},{tIdx}quad_{sideIndex}{sectorIndex};{tIdx}_quad_occupancy_per_layer_{sideIndex}{sectorIndex}'.zfill(2), type = 'TH2F', title = f'{tIdx} layers vs quad; Layer; Quad; Hits', path = f'{tIdx[0].capitalize()+tIdx[1:]}'+'/Side'+f'{sideIndex}', xbins = layerMax, xmin = 0.5, xmax = layerMax + 0.5, ybins = stationEtaMax, ymin = 0.5, ymax = stationEtaMax + 0.5, opt = 'kAlwaysCreate')
117 sTgcTimingGroup.defineHistogram(f'{tIdx}Timing{sideIndex}{sectorIndex},{tIdx}FEB{sideIndex}{sectorIndex};{tIdx}_timing_{outdir}', type = 'TH2F', title = f'{tIdx} FEBs vs Timing; Time [ns]; FEB; Hits', path = f'{tIdx[0].capitalize()+tIdx[1:]}/Sector', xbins = 9, xmin = -112.5, xmax = 112.5, ybins = 24, ymin = -0.5, ymax = 23.5, ylabels = FebLabels, opt = 'kAlwaysCreate')
118
119 stationEtaCounter=0
120 for stationEtaIndex in range(1, stationEtaMax + 1):
121 stationEtaCounter+=1
122 padChargeGroup = helper.addGroup(sTgcMonAlg, f'padCharge_{sideIndex}{sectorIndex}_quad_{stationEtaIndex}', globalPath + f'Expert/Charge/Pad/{sideIndex}' + f'{sectorIndex}'.zfill(2))
123 stripChargeGroup = helper.addGroup(sTgcMonAlg, f'stripCharge_{sideIndex}{sectorIndex}_quad_{stationEtaIndex}', globalPath + f'Expert/Charge/Strip/{sideIndex}' + f'{sectorIndex}'.zfill(2))
124 wireGroupChargeGroup = helper.addGroup(sTgcMonAlg, f'wireGroupCharge_{sideIndex}{sectorIndex}_quad_{stationEtaIndex}', globalPath + f'Expert/Charge/Wire/{sideIndex}' + f'{sectorIndex}'.zfill(2))
125 residualGroup = helper.addGroup(sTgcMonAlg, f'sTgcResiduals_{sideIndex}{sectorIndex}_quad_{stationEtaIndex}', globalPath + f'Expert/Residuals/{sideIndex}' + f'{sectorIndex}'.zfill(2)+'/')
126
127 if sideCounter==1 and sectorCounter==1:
128 sTgcPadTimingExpertGroup = helper.addGroup(sTgcMonAlg, f'padTiming_quad_{stationEtaIndex}', globalPath + 'Expert/Timing/Pad')
129 sTgcStripTimingExpertGroup = helper.addGroup(sTgcMonAlg, f'stripTiming_quad_{stationEtaIndex}', globalPath + 'Expert/Timing/Strip')
130 sTgcWireTimingExpertGroup = helper.addGroup(sTgcMonAlg, f'wireTiming_quad_{stationEtaIndex}', globalPath + 'Expert/Timing/Wire')
131
132 for layerIndex in range(1, layerMax + 1):
133 padChargeGroup.defineHistogram(f'padTrackCharge_{sideIndex}_quad_{stationEtaIndex}_sector_{sectorIndex}_layer_{layerIndex};All_pad_charge_in_Q{stationEtaIndex}_Layer{layerIndex}', type = 'TH1F', title = f'{sideIndex}' + f'{sectorIndex}'.zfill(2) + f'L{layerIndex}Q{stationEtaIndex}; Pad Charge (on-track) [fC]; Number of Entries', path = f'Q{stationEtaIndex}', xbins = 100, xmin = 0., xmax = 1000., opt = 'kAlwaysCreate')
134 stripChargeGroup.defineHistogram(f'stripTrackCharge_{sideIndex}_quad_{stationEtaIndex}_sector_{sectorIndex}_layer_{layerIndex};All_strip_charge_in_Q{stationEtaIndex}_Layer{layerIndex}', type = 'TH1F', title = f'{sideIndex}' + f'{sectorIndex}'.zfill(2) + f'L{layerIndex}Q{stationEtaIndex}; Strip Cluster Charge (on-track) [fC]; Number of Entries', path = f'Q{stationEtaIndex}', xbins = 120, xmin = 0., xmax = 1200., opt = 'kAlwaysCreate')
135 wireGroupChargeGroup.defineHistogram(f'wireGroupTrackCharge_{sideIndex}_quad_{stationEtaIndex}_sector_{sectorIndex}_layer_{layerIndex};All_wire_charge_in_Q{stationEtaIndex}_Layer{layerIndex}', type = 'TH1F', title = f'{sideIndex}' + f'{sectorIndex}'.zfill(2) + f'L{layerIndex}Q{stationEtaIndex}; Wire Group Charge (on-track) [fC]; Number of Entries', path = f'Q{stationEtaIndex}', xbins = 100, xmin = 0., xmax = 1000., opt = 'kAlwaysCreate')
136 residualGroup.defineHistogram(f'residual_{sideIndex}_quad_{stationEtaIndex}_sector_{sectorIndex}_layer_{layerIndex};Residuals_in_Q{stationEtaIndex}_Layer{layerIndex}', type = 'TH1F', title = f'{sideIndex}' + f'{sectorIndex}'.zfill(2) + f'L{layerIndex}Q{stationEtaIndex}; Residual [mm]; Number of Entries', path = f'Q{stationEtaIndex}', xbins = 1000, xmin = -2., xmax = 2., opt = 'kAlwaysCreate')
137
138 if stationEtaCounter==1:
139 efficiencyGlobalRgroup.defineHistogram(f'hitLayer,rPosStrip_{sideIndex}_sector_{sectorIndex}_layer_{layerIndex};Efficiency_per_Radius_Layer{layerIndex}', type = 'TEfficiency', title = f'{sideIndex}' + f'{sectorIndex}'.zfill(2) + f'L{layerIndex}; sTgc-GlobalR-Strip (on track) [mm]' + f'; Efficiency sTGC strip {sideIndex}' + f'{sectorIndex}'.zfill(2) + f'L{layerIndex}', path = f'{sideIndex}' + f'{sectorIndex}'.zfill(2), xbins = 100, xmin = 0., xmax = 5000., opt = 'kAlwaysCreate')
140
141 if sideCounter==1 and sectorCounter==1:
142 sTgcPadTimingExpertGroup.defineHistogram(f'padTrackSectorSided_quad_{stationEtaIndex}_layer_{layerIndex},padTrackTiming_quad_{stationEtaIndex}_layer_{layerIndex};All_pad_timing_in_Q{stationEtaIndex}_Layer{layerIndex}', type = 'TH2F', title = f'Q{stationEtaIndex}L{layerIndex}; Sector; Pad Timing (on-track) [ns]; Hits', path = f'Q{stationEtaIndex}', xbins = 2*sectorMax + 1, xmin = -sectorMax - 0.5, xmax = sectorMax + 0.5, ybins = 201, ymin = -75.5, ymax = 125.5, opt = 'kAlwaysCreate')
143 sTgcStripTimingExpertGroup.defineHistogram(f'stripTrackSectorSided_quad_{stationEtaIndex}_layer_{layerIndex},stripTrackTiming_quad_{stationEtaIndex}_layer_{layerIndex};All_strip_timing_in_Q{stationEtaIndex}_Layer{layerIndex}', type = 'TH2F', title = f'Q{stationEtaIndex}L{layerIndex}; Sector; Strip Cluster Timing (on-track) [ns]; Hits', path = f'Q{stationEtaIndex}', xbins = 2*sectorMax + 1, xmin = -sectorMax - 0.5, xmax = sectorMax + 0.5, ybins = 201, ymin = -75.5, ymax = 125.5, opt = 'kAlwaysCreate')
144 sTgcWireTimingExpertGroup.defineHistogram(f'wireTrackSectorSided_quad_{stationEtaIndex}_layer_{layerIndex},wireTrackTiming_quad_{stationEtaIndex}_layer_{layerIndex};All_wire_timing_in_Q{stationEtaIndex}_Layer{layerIndex}', type = 'TH2F', title = f'Q{stationEtaIndex}L{layerIndex}; Sector; Wire Group Timing (on-track) [ns]; Hits', path = f'Q{stationEtaIndex}', xbins = 2*sectorMax + 1, xmin = -sectorMax - 0.5, xmax = sectorMax + 0.5, ybins = 201, ymin = -75.5, ymax = 125.5, opt = 'kAlwaysCreate')
145
146 acc = helper.result()
147 result.merge(acc)
148 return result
149

Variable Documentation

◆ args

StgcMonitorAlgorithm.args = parser.parse_args()

Definition at line 158 of file StgcMonitorAlgorithm.py.

◆ cfg

StgcMonitorAlgorithm.cfg = MainServicesCfg(flags)

Definition at line 177 of file StgcMonitorAlgorithm.py.

◆ default

StgcMonitorAlgorithm.default

Definition at line 155 of file StgcMonitorAlgorithm.py.

◆ Files

StgcMonitorAlgorithm.Files

Definition at line 161 of file StgcMonitorAlgorithm.py.

◆ flags

StgcMonitorAlgorithm.flags = initConfigFlags()

Definition at line 160 of file StgcMonitorAlgorithm.py.

◆ GeometrysTGC

StgcMonitorAlgorithm.GeometrysTGC

Definition at line 166 of file StgcMonitorAlgorithm.py.

◆ GlobalTag

StgcMonitorAlgorithm.GlobalTag

Definition at line 168 of file StgcMonitorAlgorithm.py.

◆ help

StgcMonitorAlgorithm.help

Definition at line 155 of file StgcMonitorAlgorithm.py.

◆ HISTFileName

StgcMonitorAlgorithm.HISTFileName

Definition at line 164 of file StgcMonitorAlgorithm.py.

◆ int

StgcMonitorAlgorithm.int

Definition at line 155 of file StgcMonitorAlgorithm.py.

◆ nargs

StgcMonitorAlgorithm.nargs

Definition at line 156 of file StgcMonitorAlgorithm.py.

◆ None

StgcMonitorAlgorithm.None

Definition at line 156 of file StgcMonitorAlgorithm.py.

◆ OutputLevel

StgcMonitorAlgorithm.OutputLevel

Definition at line 180 of file StgcMonitorAlgorithm.py.

◆ parser

StgcMonitorAlgorithm.parser = argparse.ArgumentParser()

Definition at line 154 of file StgcMonitorAlgorithm.py.

◆ sTgcMonitorAcc

StgcMonitorAlgorithm.sTgcMonitorAcc = sTgcMonitoringConfig(flags)

Definition at line 179 of file StgcMonitorAlgorithm.py.

◆ type

StgcMonitorAlgorithm.type

Definition at line 155 of file StgcMonitorAlgorithm.py.

◆ useTrigger

StgcMonitorAlgorithm.useTrigger

Definition at line 167 of file StgcMonitorAlgorithm.py.