11def TileTopoClusterCfg(flags, **kwargs):
12
13 acc = ComponentAccumulator()
14
15 kwargs.setdefault('name', 'TileTopoClusterAlg')
16 kwargs.setdefault('ClustersOutputName', 'TileTopoCluster')
17
18 from TileGeoModel.TileGMConfig import TileGMCfg
19 acc.merge(TileGMCfg(flags))
20
21 from LArGeoAlgsNV.LArGMConfig import LArGMCfg
22 acc.merge(LArGMCfg(flags))
23
24 from CaloTools.CaloNoiseCondAlgConfig import CaloNoiseCondAlgCfg
25
26 acc.merge(CaloNoiseCondAlgCfg(flags, 'totalNoise'))
27
28
29 from AthenaConfiguration.ComponentFactory import CompFactory
30 topoClusterMaker = CompFactory.CaloTopoClusterMaker()
31 topoClusterMaker.CellsName = 'AllCalo'
32 topoClusterMaker.CalorimeterNames = ['TILE']
33
34
35 topoClusterMaker.SeedSamplingNames = ['TileBar0', 'TileBar1', 'TileBar2',
36 'TileExt0', 'TileExt1', 'TileExt2',
37 'TileGap1', 'TileGap2', 'TileGap3']
38
39 topoClusterMaker.NeighborOption = 'super3D'
40 topoClusterMaker.RestrictHECIWandFCalNeighbors = False
41 topoClusterMaker.CellThresholdOnEorAbsEinSigma = 0.0
42 topoClusterMaker.NeighborThresholdOnEorAbsEinSigma = 2.0
43 topoClusterMaker.SeedThresholdOnEorAbsEinSigma = 4.0
44
45 topoClusterMaker.SeedCutsInAbsE = True
46 topoClusterMaker.ClusterCutsInAbsEt = True
47 topoClusterMaker.ClusterEtorAbsEtCut = 0.0 * MeV
48 topoClusterMaker.TwoGaussianNoise = flags.Calo.TopoCluster.doTwoGaussianNoise
49
50 kwargs['ClusterMakerTools'] = [topoClusterMaker]
51
52
53 topoClusterSpliter = CompFactory.CaloTopoClusterSplitter()
54 topoClusterSpliter.SamplingNames = ['TileBar0', 'TileBar1', 'TileBar2',
55 'TileExt0', 'TileExt1', 'TileExt2' ,
56 'TileGap1', 'TileGap2', 'TileGap3']
57
58 topoClusterSpliter.ShareBorderCells = True
59 topoClusterSpliter.RestrictHECIWandFCalNeighbors = False
60
61 kwargs['ClusterMakerTools'] += [topoClusterSpliter]
62
63
64 clsuterMomentsMaker = CompFactory.CaloClusterMomentsMaker()
65 clsuterMomentsMaker.MaxAxisAngle = 30 * deg
66 clsuterMomentsMaker.MomentsNames = ['FIRST_PHI'
67 , 'FIRST_ETA'
68 , 'SECOND_R'
69 , 'SECOND_LAMBDA'
70 , 'DELTA_PHI'
71 , 'DELTA_THETA'
72 , 'DELTA_ALPHA'
73 , 'CENTER_X'
74 , 'CENTER_Y'
75 , 'CENTER_Z'
76 , 'CENTER_MAG'
77 , 'CENTER_LAMBDA'
78 , 'LATERAL'
79 , 'LONGITUDINAL'
80 , 'FIRST_ENG_DENS'
81 , 'ENG_FRAC_EM'
82 , 'ENG_FRAC_MAX'
83 , 'ENG_FRAC_CORE'
84 , 'FIRST_ENG_DENS'
85 , 'SECOND_ENG_DENS'
86 , 'ISOLATION'
87 , 'ENG_BAD_CELLS'
88 , 'N_BAD_CELLS'
89 , 'N_BAD_CELLS_CORR'
90 , 'BAD_CELLS_CORR_E'
91 , 'BADLARQ_FRAC'
92 , 'ENG_POS'
93 , 'SIGNIFICANCE'
94 , 'CELL_SIGNIFICANCE'
95 , 'CELL_SIG_SAMPLING'
96 , 'AVG_LAR_Q'
97 , 'AVG_TILE_Q'
98 , 'PTD'
99 , 'MASS']
100
101
102 kwargs['ClusterCorrectionTools'] = [clsuterMomentsMaker]
103
104 acc.addEventAlgo(CompFactory.CaloClusterMaker(**kwargs), primary = True)
105
106 return acc
107
108
109