7 from AthenaMonitoring.AthMonitorCfgHelper
import AthMonitorCfgHelper
8 helper = AthMonitorCfgHelper(flags,
'CaloClusterCellMonAlgCfg')
10 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
11 cfg=ComponentAccumulator()
14 from LArGeoAlgsNV.LArGMConfig
import LArGMCfg
15 cfg.merge(LArGMCfg(flags))
16 from TileGeoModel.TileGMConfig
import TileGMCfg
17 cfg.merge(TileGMCfg(flags))
19 from DetDescrCnvSvc.DetDescrCnvSvcConfig
import DetDescrCnvSvcCfg
20 cfg.merge(DetDescrCnvSvcCfg(flags))
22 from LArCellRec.LArCollisionTimeConfig
import LArCollisionTimeCfg
23 cfg.merge(LArCollisionTimeCfg(flags))
26 from AthenaConfiguration.ComponentFactory
import CompFactory
27 lArCellMonAlg=CompFactory.CaloClusterCellMonAlg
29 algname=
'CaloClusterCellMonAlg'
30 from AthenaConfiguration.Enums
import BeamType
31 if flags.Beam.Type
is BeamType.Cosmics:
32 algname=algname+
'Cosmics'
35 flags.Beam.Type
is BeamType.Cosmics,
36 flags.Input.TriggerStream,
37 flags.Input.isMC, flags.Common.isOnline,
39 algo.useTrigger = flags.DQ.useTrigger
42 algo.rndmTriggerNames =
"L1_RD0, L1_RD0_FILLED, L1_RD0_EMPTY, L1_RD1, L1_RD1_NOISE, L1_RD1_HIST, L1_RD1_BGRP4, L1_RD1_BGRP5"
43 algo.caloTriggerNames =
"L1_EM[0-9]+, L1_HA[0-9]+, L1_J[0-9]+.*, L1_JB[0-9]+, L1_JF[0-9]+, L1_TE[0-9]+, L1_JE[0-9]+, L1_XE[0-9]+, L1_2EM[0-9]+, L1_2FJ[0-9]+, L1_2J[0-9]+,L1_3J[0-9]+.*,L1_4J[0-9]+.*,L1_5J[0-9]+,L1_6J[0-9]+,L1_FJ[0-9]+.*"
44 algo.minBiasTriggerNames =
"L1_RD0_FILLED, L1_MBTS_1, L1_MBTS_2, L1_MBTS_1_1"
45 algo.metTriggerNames =
"EF_xe[0-9]+.*"
46 algo.miscTriggerNames =
""
48 from AthenaMonitoring.AtlasReadyFilterConfig
import AtlasReadyFilterCfg
49 algo.ReadyFilterTool = cfg.popToolsAndMerge(AtlasReadyFilterCfg(flags))
51 if not flags.Input.isMC:
52 from AthenaMonitoring.BadLBFilterToolConfig
import LArBadLBFilterToolCfg
53 algo.BadLBTool=cfg.popToolsAndMerge(LArBadLBFilterToolCfg(flags))
55 cfg.merge(helper.result())
60def CaloClusterCellMonConfigCore(helper, algclass, flags, isCosmics=False, TriggerStream='CosmicCalo', isMC=False, isOnline=False, algname='CaloClusterCellMonAlg'):
63 CaloClusterCellMonAlg = helper.addAlgorithm(algclass, algname)
65 if not isCosmics
and not isMC:
66 CaloClusterCellMonAlg.useReadyFilterTool=
True
68 CaloClusterCellMonAlg.useReadyFilterTool=
False
71 CaloClusterCellMonAlg.useBadLBTool=
False
73 CaloClusterCellMonAlg.useBadLBTool=
True
75 if isCosmics
or TriggerStream!=
'physics_CosmicCalo':
76 CaloClusterCellMonAlg.useBeamBackgroundRemoval =
False
77 CaloClusterCellMonAlg.useLArCollisionFilterTool =
False
79 CaloClusterCellMonAlg.useBeamBackgroundRemoval =
True
80 CaloClusterCellMonAlg.useLArCollisionFilterTool =
True
83 CaloClusterCellMonAlg.useLArNoisyAlg =
False
85 CaloClusterCellMonAlg.useLArNoisyAlg =
True
87 GroupName=
"LArClusterCell"
88 CaloClusterCellMonAlg.MonGroupName = GroupName
90 CaloClusterCellMonAlg.EnableLumi =
True
95 binlabels=[
"TotalEvents",
"ATLAS Ready",
"with Good LAr LB",
"with No LAr Collision",
"with No Beam Background",
"with No Trigger Filter",
"with No LArError"]
98 CaloClusterCellMonAlg.rndmTriggerNames =
"L1_RD0, L1_RD0_FILLED, L1_RD0_EMPTY, L1_RD1, L1_RD1_NOISE, L1_RD1_HIST, L1_RD1_BGRP4, L1_RD1_BGRP5"
99 CaloClusterCellMonAlg.caloTriggerNames =
"L1_EM[0-9]+, L1_HA[0-9]+, L1_J[0-9]+.*, L1_JB[0-9]+, L1_JF[0-9]+, L1_TE[0-9]+, L1_JE[0-9]+, L1_XE[0-9]+, L1_2EM[0-9]+, L1_2FJ[0-9]+, L1_2J[0-9]+,L1_3J[0-9]+.*,L1_4J[0-9]+.*,L1_5J[0-9]+,L1_6J[0-9]+,L1_FJ[0-9]+.*"
100 CaloClusterCellMonAlg.minBiasTriggerNames =
"L1_RD0_FILLED, L1_MBTS_1, L1_MBTS_2, L1_MBTS_1_1"
101 CaloClusterCellMonAlg.metTriggerNames =
"EF_xe[0-9]+.*"
102 CaloClusterCellMonAlg.miscTriggerNames =
""
107 cellMonGroup = helper.addGroup(
108 CaloClusterCellMonAlg,
110 '/CaloMonitoring/CaloClusterCellMon/'
117 summ_hist_path=
'Summary/'
119 from CaloMonitoring.CaloMonAlgBase
import CaloBaseHistConfig
120 CaloBaseHistConfig(cellMonGroup,summ_hist_path,binlabels)
122 cellMonGroup.defineHistogram(
'trigType;nEvtsByTrigger',
123 title=
'Total Events: bin 0, RNDM Trigger: 1, Calo Trigger: 2, MinBias Trigger: 3, MET Trigger: 4, Misc Trigger: 5, Events Accepted 6 ',
124 type=
'TH1I', path=summ_hist_path,
125 xbins=lArCellBinningScheme.larCellSummary[
"xbins"][0], xmin=lArCellBinningScheme.larCellSummary[
"xbins"][1], xmax=lArCellBinningScheme.larCellSummary[
"xbins"][2],
126 xlabels=lArCellBinningScheme.larCellSummary[
"xlabels"])
129 cellMonGroup.defineHistogram(
'eventCounter',
130 title=
'Events events passed Trigger and Background removal for each threshold (for normalisation)',
131 type=
'TH1I', path=summ_hist_path,
135 cellMonGroup.defineHistogram(
'larhash',
136 title=
'Total number of LAr Cells contributing to clusters, per online-hash',
137 type=
'TH1I', path=summ_hist_path,
138 xbins=195072,xmin=-0.5,xmax=195072.5
141 cellMonGroup.defineHistogram(
'tilehash',
142 title=
'Total number of Tile PMTs contributing to clusters, per online-hash',
143 type=
'TH1I', path=summ_hist_path,
144 xbins=12602,xmin=-0.5,xmax=12601.5
147 for part
in CaloClusterCellMonAlg.LayerNames:
148 cellMonGroup.defineHistogram(
'celleta_'+part+
',cellphi_'+part+
';NClusteredCells_'+part,
149 title=
"Total number of cells contributing to clusters in (#eta,#phi) for "+part+
";cell #eta;cell #phi",
150 weight=
'NClusteredCells_'+part,
151 type=
'TH2I', path=
"ClusterCell/",
152 xbins = lArCellBinningScheme.etaRange[part],
153 ybins = lArCellBinningScheme.phiRange[part])
156 for part
in (
"TileBar0",
"TileBar1",
"TileBar2",
"TileGap0",
"TileGap1",
"TileGap2",
"TileExt0",
"TileExt1",
"TileExt2"):
157 for side
in (
"A",
"C"):
159 cellMonGroup.defineHistogram(
'celleta_'+part+
',cellphi_'+part+
';NClusteredCells_'+part,
160 title=
"Total number of cells contributing to clusters in (#eta,#phi) for "+part+
";cell #eta;cell #phi",
161 weight=
'NClusteredCells_'+part,
162 type=
'TH2I', path=
"ClusterCell/",
163 xbins = 17, xmin = -1.7, xmax = 1.7,
164 ybins = 64, ymin = -3.14, ymax = 3.14)
167 return CaloClusterCellMonAlg
195 from TrigConfigSvc.TrigConfigSvcCfg
import L1ConfigSvcCfg, HLTConfigSvcCfg, L1PrescaleCondAlgCfg, HLTPrescaleCondAlgCfg