ATLAS Offline Software
Loading...
Searching...
No Matches
ISF_FastCaloSimParametrizationConfig.py
Go to the documentation of this file.
1"""ComponentAccumulator config of tools for ISF_FastCaloSimParametrization
2
3Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
4"""
5from AthenaConfiguration.ComponentFactory import CompFactory
6from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
7from IOVDbSvc.IOVDbSvcConfig import addFolders
8def ISF_HitAnalysisCfg(flags, name="ISF_HitAnalysis",
9 NTruthParticles=1, saveAllBranches=False,
10 doG4Hits=False, doClusterInfo=False,
11 outputGeoFileName=None, **kwargs):
12 result = ComponentAccumulator()
13
14 from LArGeoAlgsNV.LArGMConfig import LArGMCfg
15 result.merge( LArGMCfg(flags) )
16 kwargs.setdefault("CaloDetDescrManager", "CaloDetDescrManager")
17
18 from TileConditions.TileSamplingFractionConfig import TileSamplingFractionCondAlgCfg
19 result.merge( TileSamplingFractionCondAlgCfg(flags) )
20 kwargs.setdefault("TileSamplingFraction", "TileSamplingFraction")
21
22 from TileConditions.TileCablingSvcConfig import TileCablingSvcCfg
23 kwargs.setdefault("TileCablingSvc", result.getPrimaryAndMerge(TileCablingSvcCfg(flags)))
24
25 kwargs.setdefault("NtupleFileName", 'ISF_HitAnalysis')
26 kwargs.setdefault("GeoFileName", 'ISF_Geometry')
27 histOutputArray = ["ISF_HitAnalysis DATAFILE='%s' OPT='RECREATE'" % (flags.Output.HISTFileName)] # FIXME top level directory name
28 if outputGeoFileName:
29 histOutputArray += ["ISF_Geometry DATAFILE='%s' OPT='RECREATE'" % (outputGeoFileName)] # FIXME top level directory name
30 result.addService(CompFactory.THistSvc(Output=histOutputArray))
31 kwargs.setdefault("NTruthParticles", NTruthParticles)
32
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') #FIXME should this be configurable?
37 kwargs.setdefault("FastCaloSimCaloExtrapolation", result.addPublicTool(result.popToolsAndMerge(FastCaloSimCaloExtrapolationCfg(flags))))
38
39 kwargs.setdefault("CaloBoundaryR", 1148.0)
40 kwargs.setdefault("CaloBoundaryZ", 3550.0) #before: 3475.0
41 kwargs.setdefault("CaloMargin", 100) #=10cm
42 kwargs.setdefault("SaveAllBranches", saveAllBranches) #FIXME
43 kwargs.setdefault("DoAllCells", False)
44 kwargs.setdefault("DoLayers", True)
45 kwargs.setdefault("DoLayerSums", True)
46 kwargs.setdefault("DoG4Hits", doG4Hits) #FIXME
47 kwargs.setdefault("DoClusterInfo", doClusterInfo) #FIXME
48 kwargs.setdefault("TimingCut", 999999)
49
50 result.merge(addFolders(flags, ["/Simulation/Parameters", "/Digitization/Parameters"]))
51
52 result.addEventAlgo(CompFactory.ISF_HitAnalysis(name,**kwargs))
53 return result
54
55def FastCaloSimCaloTransportationCfg(flags, name="FastCaloSimCaloTransportation", **kwargs):
56 acc = ComponentAccumulator()
57 from FastCaloSim.FastCaloSimFactoryNew import NITimedExtrapolatorCfg
58 kwargs.setdefault("Extrapolator", acc.addPublicTool(acc.popToolsAndMerge(NITimedExtrapolatorCfg(flags))))
59 kwargs.setdefault("CaloEntrance", 'InDet::Containers::InnerDetector')
60 acc.setPrivateTools(CompFactory.FastCaloSimCaloTransportation(name, **kwargs))
61 return acc
62
63def FastCaloSimCaloExtrapolationCfg(flags, name="FastCaloSimCaloExtrapolation", **kwargs):
64 acc = ComponentAccumulator()
65 kwargs.setdefault("CaloBoundaryR", [1148.0, 120.0, 41.0])
66 kwargs.setdefault("CaloBoundaryZ", [3550.0, 4587.0, 4587.0])
67 kwargs.setdefault("CaloGeometryHelper", acc.addPublicTool(acc.popToolsAndMerge(FastCaloSimGeometryHelperCfg(flags))))
68 kwargs.setdefault("CaloTransportation", acc.addPublicTool(acc.popToolsAndMerge(FastCaloSimCaloTransportationCfg(flags))))
69 acc.setPrivateTools(CompFactory.FastCaloSimCaloExtrapolation(name, **kwargs))
70 return acc
71
72def FastCaloSimGeometryHelperCfg(flags, name="FastCaloSimGeometryHelper", **kwargs):
73 acc = ComponentAccumulator()
74 acc.setPrivateTools(CompFactory.FastCaloSimGeometryHelper(name, **kwargs))
75 return acc
76
77def CaloCellContainerSDCfg(flags, name='CaloCellContainerSD', **kwargs):
78 acc = ComponentAccumulator()
79 kwargs.setdefault ('NoVolumes', True)
80 kwargs.setdefault("OutputCollectionNames", ["DefaultCaloCellContainer"])
81 # Add ISF_FastHitConvertTool, which will also take care
82 # of creating mergable FastCaloSim HIT collections
83 from ISF_FastCaloSimServices.ISF_FastCaloSimServicesConfig import FastHitConvertToolCfg
84 kwargs.setdefault("FastHitConvertTool", acc.addPublicTool(acc.popToolsAndMerge(FastHitConvertToolCfg(flags))))
85 acc.setPrivateTools(CompFactory.CaloCellContainerSDTool(name, **kwargs))
86 return acc
87
89 flags.Sim.RecordStepInfo=True
90 from SimulationConfig.SimEnums import VertexSource,LArParameterization,CalibrationRun
91 #No vertex smearing
92 flags.Sim.VertexSource=VertexSource.AsGenerated
93 # Deactivated G4Optimizations
94 #MuonFieldOnlyInCalo
95 flags.Sim.MuonFieldOnlyInCalo=False
96 #NRR
97 flags.Sim.NRRThreshold=False
98 flags.Sim.NRRWeight=False
99 #PRR
100 flags.Sim.PRRThreshold=False
101 flags.Sim.PRRWeight=False
102 #Frozen Showers
103 flags.Sim.LArParameterization=LArParameterization.NoFrozenShowers
104 flags.Sim.CalibrationRun=CalibrationRun.DeadLAr
105 flags.GeoModel.Align.LegacyConditionsAccess = False
106
108 from IOVDbSvc.IOVDbSvcConfig import addOverride
109 cfg.merge(addOverride(flags, "/LAR/BadChannels/BadChannels", tag="LARBadChannelsBadChannels-MC-empty", db="COOLOFL_LAR/OFLP200"))
110 cfg.merge(addOverride(flags, "/TILE/OFL02/STATUS/ADC", tag="TileOfl02StatusAdc-EmptyBCh", db="COOLOFL_TILE/OFLP200"))
111
112
114 # TODO write an OutputStreamConfig.addToRDO method?
115 RDO_ItemList = [
116 "ISF_FCS_Parametrization::FCS_StepInfoCollection#MergedEventSteps",
117 "LArHitContainer#*",
118 "TileHitVector#*"
119 ]
120 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
121 cfg.merge(OutputStreamCfg(flags, "RDO", RDO_ItemList))
122
123 puAlg = cfg.getEventAlgo("StandardPileUpToolsAlg")
124 puAlg.PileUpTools["LArPileUpTool"].CrossTalk = False
125 puAlg.PileUpTools["TileHitVecToCntTool"].HitTimeFlag = 1
126 puAlg.PileUpTools["TileHitVecToCntTool"].usePhotoStatistics = False
127
128 cfg.getEventAlgo("TileDigitsMaker").IntegerDigits = True
129
131
132
134 ESD_ItemList = [
135 "ISF_FCS_Parametrization::FCS_StepInfoCollection#MergedEventSteps",
136 "LArHitContainer#*",
137 "McEventCollection#TruthEvent",
138 "TileHitVector#*",
139 "TrackRecordCollection#CaloEntryLayer",
140 "TrackRecordCollection#MuonEntryLayer"
141 ]
142 from OutputStreamAthenaPool.OutputStreamConfig import addToESD
143 cfg.merge(addToESD(flags, ESD_ItemList))
144
FastCaloSimGeometryHelperCfg(flags, name="FastCaloSimGeometryHelper", **kwargs)
FastCaloSimCaloExtrapolationCfg(flags, name="FastCaloSimCaloExtrapolation", **kwargs)
CaloCellContainerSDCfg(flags, name='CaloCellContainerSD', **kwargs)
ISF_HitAnalysisCfg(flags, name="ISF_HitAnalysis", NTruthParticles=1, saveAllBranches=False, doG4Hits=False, doClusterInfo=False, outputGeoFileName=None, **kwargs)
FastCaloSimCaloTransportationCfg(flags, name="FastCaloSimCaloTransportation", **kwargs)