1 """ComponentAccumulator config of tools for ISF_FastCaloSimParametrization
3 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
5 from AthenaConfiguration.ComponentFactory
import CompFactory
6 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
7 from IOVDbSvc.IOVDbSvcConfig
import addFolders
8 def ISF_HitAnalysisCfg(flags, name="ISF_HitAnalysis",
9 NTruthParticles=1, saveAllBranches=False,
10 doG4Hits=False, doClusterInfo=False,
11 outputGeoFileName=None, **kwargs):
14 from LArGeoAlgsNV.LArGMConfig
import LArGMCfg
16 kwargs.setdefault(
"CaloDetDescrManager",
"CaloDetDescrManager")
18 from TileConditions.TileSamplingFractionConfig
import TileSamplingFractionCondAlgCfg
20 kwargs.setdefault(
"TileSamplingFraction",
"TileSamplingFraction")
22 from TileConditions.TileCablingSvcConfig
import TileCablingSvcCfg
23 kwargs.setdefault(
"TileCablingSvc", result.getPrimaryAndMerge(
TileCablingSvcCfg(flags)))
25 kwargs.setdefault(
"NtupleFileName",
'ISF_HitAnalysis')
26 kwargs.setdefault(
"GeoFileName",
'ISF_Geometry')
27 histOutputArray = [
"ISF_HitAnalysis DATAFILE='%s' OPT='RECREATE'" % (flags.Output.HISTFileName)]
29 histOutputArray += [
"ISF_Geometry DATAFILE='%s' OPT='RECREATE'" % (outputGeoFileName)]
30 result.addService(CompFactory.THistSvc(Output=histOutputArray))
31 kwargs.setdefault(
"NTruthParticles", NTruthParticles)
33 from FastCaloSim.FastCaloSimFactoryNew
import NITimedExtrapolatorCfg
34 kwargs.setdefault(
"Extrapolator", result.addPublicTool(result.popToolsAndMerge(
NITimedExtrapolatorCfg(flags))))
35 kwargs.setdefault(
"CaloCoordinateTool", result.addPublicTool(CompFactory.TBCaloCoordinate(
"TBCaloCoordinate")))
36 kwargs.setdefault(
"CaloEntrance",
'InDet::Containers::InnerDetector')
39 kwargs.setdefault(
"CaloBoundaryR", 1148.0)
40 kwargs.setdefault(
"CaloBoundaryZ", 3550.0)
41 kwargs.setdefault(
"CaloMargin", 100)
42 kwargs.setdefault(
"SaveAllBranches", saveAllBranches)
43 kwargs.setdefault(
"DoAllCells",
False)
44 kwargs.setdefault(
"DoLayers",
True)
45 kwargs.setdefault(
"DoLayerSums",
True)
46 kwargs.setdefault(
"DoG4Hits", doG4Hits)
47 kwargs.setdefault(
"DoClusterInfo", doClusterInfo)
48 kwargs.setdefault(
"TimingCut", 999999)
50 from AthenaServices.PartPropSvcConfig
import PartPropSvcCfg
51 kwargs.setdefault(
'PartPropSvc', result.getPrimaryAndMerge(
PartPropSvcCfg(flags)))
53 result.merge(
addFolders(flags, [
"/Simulation/Parameters",
"/Digitization/Parameters"]))
55 result.addEventAlgo(CompFactory.ISF_HitAnalysis(name,**kwargs))
60 from FastCaloSim.FastCaloSimFactoryNew
import NITimedExtrapolatorCfg
62 kwargs.setdefault(
"CaloEntrance",
'InDet::Containers::InnerDetector')
63 acc.setPrivateTools(CompFactory.FastCaloSimCaloTransportation(name, **kwargs))
68 kwargs.setdefault(
"CaloBoundaryR", [1148.0, 120.0, 41.0])
69 kwargs.setdefault(
"CaloBoundaryZ", [3550.0, 4587.0, 4587.0])
72 acc.setPrivateTools(CompFactory.FastCaloSimCaloExtrapolation(name, **kwargs))
77 acc.setPrivateTools(CompFactory.FastCaloSimGeometryHelper(name, **kwargs))
82 kwargs.setdefault (
'NoVolumes',
True)
83 kwargs.setdefault(
"OutputCollectionNames", [
"DefaultCaloCellContainer"])
86 from ISF_FastCaloSimServices.ISF_FastCaloSimServicesConfig
import FastHitConvertToolCfg
87 kwargs.setdefault(
"FastHitConvertTool", acc.addPublicTool(acc.popToolsAndMerge(
FastHitConvertToolCfg(flags))))
88 acc.setPrivateTools(CompFactory.CaloCellContainerSDTool(name, **kwargs))
92 flags.Sim.RecordStepInfo=
True
93 from SimulationConfig.SimEnums
import VertexSource,LArParameterization,CalibrationRun
95 flags.Sim.VertexSource=VertexSource.AsGenerated
98 flags.Sim.MuonFieldOnlyInCalo=
False
100 flags.Sim.NRRThreshold=
False
101 flags.Sim.NRRWeight=
False
103 flags.Sim.PRRThreshold=
False
104 flags.Sim.PRRWeight=
False
106 flags.Sim.LArParameterization=LArParameterization.NoFrozenShowers
107 flags.Sim.CalibrationRun=CalibrationRun.DeadLAr
108 flags.GeoModel.Align.LegacyConditionsAccess =
False
111 from IOVDbSvc.IOVDbSvcConfig
import addOverride
112 cfg.merge(
addOverride(flags,
"/LAR/BadChannels/BadChannels", tag=
"LARBadChannelsBadChannels-MC-empty", db=
"COOLOFL_LAR/OFLP200"))
113 cfg.merge(
addOverride(flags,
"/TILE/OFL02/STATUS/ADC", tag=
"TileOfl02StatusAdc-EmptyBCh", db=
"COOLOFL_TILE/OFLP200"))
119 "ISF_FCS_Parametrization::FCS_StepInfoCollection#MergedEventSteps",
123 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
126 puAlg = cfg.getEventAlgo(
"StandardPileUpToolsAlg")
127 puAlg.PileUpTools[
"LArPileUpTool"].CrossTalk =
False
128 puAlg.PileUpTools[
"TileHitVecToCntTool"].HitTimeFlag = 1
129 puAlg.PileUpTools[
"TileHitVecToCntTool"].usePhotoStatistics =
False
131 cfg.getEventAlgo(
"TileDigitsMaker").IntegerDigits =
True
138 "ISF_FCS_Parametrization::FCS_StepInfoCollection#MergedEventSteps",
140 "McEventCollection#TruthEvent",
142 "TrackRecordCollection#CaloEntryLayer",
143 "TrackRecordCollection#MuonEntryLayer"
145 from OutputStreamAthenaPool.OutputStreamConfig
import addToESD
146 cfg.merge(
addToESD(flags, ESD_ItemList))