10 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
11 from AthenaConfiguration.ComponentFactory
import CompFactory
12 from AthenaPython.PyAthenaComps
import Alg, StatusCode
21 ccc = ROOT.CaloCellContainer()
22 for i
in range (mgr.element_size()):
23 elt = mgr.get_element (ROOT.IdentifierHash (i))
25 cc = ROOT.CaloCell (elt, 0, 0, 0, 0)
27 ROOT.SetOwnership (cc,
False)
29 ccc.updateCaloIterators()
34 clc = ROOT.xAOD.CaloClusterContainer()
35 clc_store = ROOT.xAOD.CaloClusterAuxContainer()
36 clc.setStore (clc_store)
37 cellLinks = ROOT.CaloClusterCellLinkContainer()
38 ids = ROOT.vector(ROOT.IdentifierHash)()
41 cl = ROOT.xAOD.CaloCluster()
43 ROOT.SetOwnership (cl,
False)
48 cl.setClusterSize (ROOT.xAOD.CaloCluster.SW_37ele)
49 links = ROOT.CaloClusterCellLink (ccc)
50 cl.addCellLink (links)
51 ROOT.SetOwnership (links,
False)
53 mgr.cellsInZone (eta - 0.05, eta + 0.05, phi - 0.05, phi + 0.05, ids)
55 elt = mgr.get_element (hash)
58 idx = ccc.findIndex (hash)
60 print (
"??? Can't find cell with hash ", hash)
62 hashes.add (hash.value())
64 cl.setLink(cellLinks, ctx)
66 return (clc, clc_store, cellLinks)
71 ctx = self.getContext()
72 mgr = self.condStore[
'CaloDetDescrManager'].find (ctx.eventID())
73 ccc = make_calo_cells (mgr)
74 self.evtStore.record (ccc,
'AllCalo',
False)
78 (clc, clc_store, cellLinks) = make_clusters (mgr, ccc, cell_hashes, ctx)
79 self.evtStore.record (clc,
'Clusters',
False)
80 self.evtStore.record (clc_store,
'ClustersAux.',
False)
81 self.evtStore.record (cellLinks,
'Clusters_links',
False)
82 return StatusCode.Success
88 return (abs (elt.eta() - eta) < 3*0.025
and
89 abs (elt.phi() - phi) < 7*2*pi/256)
92 ctx = self.getContext()
93 mgr = self.condStore[
'CaloDetDescrManager'].find (ctx.eventID())
94 dec = self.evtStore[
'AllCalo_THINNED_StreamAOD.thinAlg']
97 for i
in range (dec.size()):
98 elt = mgr.get_element (ROOT.IdentifierHash (i))
99 if elt.getSampling() == 3:
102 if not dec.thinned(i):
107 if not dec.thinned(i):
108 assert i
in cell_hashes
110 assert i
not in cell_hashes
111 return StatusCode.Success
117 from LArGeoAlgsNV.LArGMConfig
import LArGMCfg
118 from TileGeoModel.TileGMConfig
import TileGMCfg
122 from LArCabling.LArCablingConfig
import LArOnOffIdMappingCfg
125 result.addEventAlgo (CreateDataAlg (
'CreateDataAlg'))
127 CaloThinCellsByClusterAlg=CompFactory.CaloThinCellsByClusterAlg
128 result.addEventAlgo (CaloThinCellsByClusterAlg (
'thinAlg',
129 StreamName =
'StreamAOD',
130 Clusters =
'Clusters',
131 SamplingCellsName = [
'EMB3']))
133 result.addEventAlgo (CheckThinningAlg (
'CheckThinningAlg'))
139 ROOT.xAOD.CaloClusterContainer_v1
142 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
143 from AthenaConfiguration.TestDefaults
import defaultTestFiles
145 flags.Input.Files = defaultTestFiles.RDO_RUN2
146 flags.Input.TimeStamps = [1000]
147 flags.Detector.GeometryLAr =
True
148 flags.Detector.GeometryTile =
True
149 flags.needFlagsCategory(
'Tile')
150 flags.needFlagsCategory(
'LAr')
153 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
156 from McEventSelector.McEventSelectorConfig
import McEventSelectorCfg
157 acc.merge (McEventSelectorCfg (flags))
159 acc.merge (testCfg (flags))