8def LArGMCfg(flags):
9 result=GeoModelCfg(flags)
10
11 tool = CompFactory.LArDetectorToolNV(ApplyAlignments=flags.LAr.doAlign, EnableMBTS=flags.Detector.GeometryMBTS)
12 if flags.Common.ProductionStep != ProductionStep.Simulation and flags.Common.ProductionStep != ProductionStep.FastChain:
13 tool.GeometryConfig = "RECO"
14
15 result.getPrimary().DetectorTools += [ tool ]
16
17 if flags.LAr.doAlign:
18 if flags.Input.isMC:
19
20 if not flags.GeoModel.Align.LegacyConditionsAccess:
21 result.merge(addFolders(flags,"/LAR/Align","LAR_OFL",className="DetCondKeyTrans"))
22 result.merge(addFolders(flags,"/LAR/LArCellPositionShift","LAR_OFL",className="CaloRec::CaloCellPositionShift"))
23 else:
24 result.merge(addFolders(flags,"/LAR/Align","LAR_OFL"))
25 result.merge(addFolders(flags,"/LAR/LArCellPositionShift","LAR_OFL"))
26 else:
27 result.merge(addFolders(flags,"/LAR/Align","LAR_ONL",className="DetCondKeyTrans"))
28 result.merge(addFolders(flags,"/LAR/LArCellPositionShift","LAR_ONL",className="CaloRec::CaloCellPositionShift"))
29
30 if not flags.GeoModel.Align.LegacyConditionsAccess:
31 result.addCondAlgo(CompFactory.LArAlignCondAlg())
32 result.addCondAlgo(CompFactory.CaloAlignCondAlg())
33 AthReadAlg_ExtraInputs =
set()
34 caloCellsInInput = "CaloCellContainer" in [i.split('#')[0] for i in flags.Input.TypedCollections]
35 sCellsInInput = False
36 caloCellKeys = []
37 if caloCellsInInput:
38 from SGComps.AddressRemappingConfig import AddressRemappingCfg
39 result.merge(AddressRemappingCfg())
40
41 caloCellKeys = [i.split('#')[1] for i in flags.Input.TypedCollections if "CaloCellContainer"==i.split('#')[0] ]
42 for key in caloCellKeys:
43 if key != 'AllCalo':
44 sCellsInInput = True
45
46 AthReadAlg_ExtraInputs.add(('CaloDetDescrManager', 'ConditionStore+CaloDetDescrManager'))
47 if (flags.GeoModel.Run >= LHCPeriod.Run3 and flags.Detector.GeometryTile) or sCellsInInput:
48
49 from TileGeoModel.TileGMConfig import TileGMCfg
50 result.merge(TileGMCfg(flags))
51 result.addCondAlgo(CompFactory.CaloSuperCellAlignCondAlg())
52 AthReadAlg_ExtraInputs.add(('CaloSuperCellDetDescrManager', 'ConditionStore+CaloSuperCellDetDescrManager'))
53
54
55 if caloCellsInInput:
56 for key in caloCellKeys:
57 AthReadAlg=CompFactory.AthReadAlg
58 AthReadAlg_CaloCellCont = AthReadAlg (f'AthReadAlg_{key}',
59 Key = f'CaloCellContainer/{key}',
60 Aliases = [],
61 ExtraInputs = AthReadAlg_ExtraInputs)
62 result.addCondAlgo(AthReadAlg_CaloCellCont)
63 else:
64
65 if not flags.GeoModel.Align.LegacyConditionsAccess:
66 result.addCondAlgo(CompFactory.CaloAlignCondAlg(LArAlignmentStore="",CaloCellPositionShiftFolder=""))
67 if flags.GeoModel.Run >= LHCPeriod.Run3 and flags.Detector.GeometryTile and flags.Common.ProductionStep != ProductionStep.Overlay:
68
69 from TileGeoModel.TileGMConfig import TileGMCfg
70 result.merge(TileGMCfg(flags))
71 result.addCondAlgo(CompFactory.CaloSuperCellAlignCondAlg())
72
73 return result
74