ATLAS Offline Software
ISF_FastCaloSimParametrizationConfig.py
Go to the documentation of this file.
1 """ComponentAccumulator config of tools for ISF_FastCaloSimParametrization
2 
3 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
4 """
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):
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  from AthenaServices.PartPropSvcConfig import PartPropSvcCfg
51  kwargs.setdefault('PartPropSvc', result.getPrimaryAndMerge(PartPropSvcCfg(flags)))
52 
53  result.merge(addFolders(flags, ["/Simulation/Parameters", "/Digitization/Parameters"]))
54 
55  result.addEventAlgo(CompFactory.ISF_HitAnalysis(name,**kwargs))
56  return result
57 
58 def FastCaloSimCaloTransportationCfg(flags, name="FastCaloSimCaloTransportation", **kwargs):
59  acc = ComponentAccumulator()
60  from FastCaloSim.FastCaloSimFactoryNew import NITimedExtrapolatorCfg
61  kwargs.setdefault("Extrapolator", acc.addPublicTool(acc.popToolsAndMerge(NITimedExtrapolatorCfg(flags))))
62  kwargs.setdefault("CaloEntrance", 'InDet::Containers::InnerDetector')
63  acc.setPrivateTools(CompFactory.FastCaloSimCaloTransportation(name, **kwargs))
64  return acc
65 
66 def FastCaloSimCaloExtrapolationCfg(flags, name="FastCaloSimCaloExtrapolation", **kwargs):
67  acc = ComponentAccumulator()
68  kwargs.setdefault("CaloBoundaryR", [1148.0, 120.0, 41.0])
69  kwargs.setdefault("CaloBoundaryZ", [3550.0, 4587.0, 4587.0])
70  kwargs.setdefault("CaloGeometryHelper", acc.addPublicTool(acc.popToolsAndMerge(FastCaloSimGeometryHelperCfg(flags))))
71  kwargs.setdefault("CaloTransportation", acc.addPublicTool(acc.popToolsAndMerge(FastCaloSimCaloTransportationCfg(flags))))
72  acc.setPrivateTools(CompFactory.FastCaloSimCaloExtrapolation(name, **kwargs))
73  return acc
74 
75 def FastCaloSimGeometryHelperCfg(flags, name="FastCaloSimGeometryHelper", **kwargs):
76  acc = ComponentAccumulator()
77  acc.setPrivateTools(CompFactory.FastCaloSimGeometryHelper(name, **kwargs))
78  return acc
79 
80 def CaloCellContainerSDCfg(flags, name='CaloCellContainerSD', **kwargs):
81  acc = ComponentAccumulator()
82  kwargs.setdefault ('NoVolumes', True)
83  kwargs.setdefault("OutputCollectionNames", ["DefaultCaloCellContainer"])
84  # Add ISF_FastHitConvertTool, which will also take care
85  # of creating mergable FastCaloSim HIT collections
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))
89  return acc
90 
92  flags.Sim.RecordStepInfo=True
93  from SimulationConfig.SimEnums import VertexSource,LArParameterization,CalibrationRun
94  #No vertex smearing
95  flags.Sim.VertexSource=VertexSource.AsGenerated
96  # Deactivated G4Optimizations
97  #MuonFieldOnlyInCalo
98  flags.Sim.MuonFieldOnlyInCalo=False
99  #NRR
100  flags.Sim.NRRThreshold=False
101  flags.Sim.NRRWeight=False
102  #PRR
103  flags.Sim.PRRThreshold=False
104  flags.Sim.PRRWeight=False
105  #Frozen Showers
106  flags.Sim.LArParameterization=LArParameterization.NoFrozenShowers
107  flags.Sim.CalibrationRun=CalibrationRun.DeadLAr
108  flags.GeoModel.Align.LegacyConditionsAccess = False
109 
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"))
114 
115 
117  # TODO write an OutputStreamConfig.addToRDO method?
118  RDO_ItemList = [
119  "ISF_FCS_Parametrization::FCS_StepInfoCollection#MergedEventSteps",
120  "LArHitContainer#*",
121  "TileHitVector#*"
122  ]
123  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
124  cfg.merge(OutputStreamCfg(flags, "RDO", RDO_ItemList))
125 
126  puAlg = cfg.getEventAlgo("StandardPileUpToolsAlg")
127  puAlg.PileUpTools["LArPileUpTool"].CrossTalk = False
128  puAlg.PileUpTools["TileHitVecToCntTool"].HitTimeFlag = 1
129  puAlg.PileUpTools["TileHitVecToCntTool"].usePhotoStatistics = False
130 
131  cfg.getEventAlgo("TileDigitsMaker").IntegerDigits = True
132 
134 
135 
137  ESD_ItemList = [
138  "ISF_FCS_Parametrization::FCS_StepInfoCollection#MergedEventSteps",
139  "LArHitContainer#*",
140  "McEventCollection#TruthEvent",
141  "TileHitVector#*",
142  "TrackRecordCollection#CaloEntryLayer",
143  "TrackRecordCollection#MuonEntryLayer"
144  ]
145  from OutputStreamAthenaPool.OutputStreamConfig import addToESD
146  cfg.merge(addToESD(flags, ESD_ItemList))
147 
ISF_FastCaloSimParametrizationConfig.PostIncludeISF_FastCaloSimParametrizationDigi
def PostIncludeISF_FastCaloSimParametrizationDigi(flags, cfg)
Definition: ISF_FastCaloSimParametrizationConfig.py:116
ISF_FastCaloSimServicesConfig.FastHitConvertToolCfg
def FastHitConvertToolCfg(flags, name="ISF_FastHitConvertTool", **kwargs)
Definition: ISF_FastCaloSimServicesConfig.py:53
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
ISF_FastCaloSimParametrizationConfig.FastCaloSimGeometryHelperCfg
def FastCaloSimGeometryHelperCfg(flags, name="FastCaloSimGeometryHelper", **kwargs)
Definition: ISF_FastCaloSimParametrizationConfig.py:75
ISF_FastCaloSimParametrizationConfig.FastCaloSimCaloTransportationCfg
def FastCaloSimCaloTransportationCfg(flags, name="FastCaloSimCaloTransportation", **kwargs)
Definition: ISF_FastCaloSimParametrizationConfig.py:58
python.OutputStreamConfig.OutputStreamCfg
def OutputStreamCfg(flags, streamName, ItemList=[], MetadataItemList=[], disableEventTag=False, trigNavThinningSvc=None, takeItemsFromInput=False, extendProvenanceRecord=True, keepProvenanceTagsRegEx=None, AcceptAlgs=[], HelperTools=[])
Definition: OutputStreamConfig.py:16
python.TileSamplingFractionConfig.TileSamplingFractionCondAlgCfg
def TileSamplingFractionCondAlgCfg(flags, **kwargs)
Definition: TileSamplingFractionConfig.py:9
ISF_FastCaloSimParametrizationConfig.FastCaloSimCaloExtrapolationCfg
def FastCaloSimCaloExtrapolationCfg(flags, name="FastCaloSimCaloExtrapolation", **kwargs)
Definition: ISF_FastCaloSimParametrizationConfig.py:66
ISF_FastCaloSimParametrizationConfig.ISF_FastCaloSimParametrization_SimPreInclude
def ISF_FastCaloSimParametrization_SimPreInclude(flags)
Definition: ISF_FastCaloSimParametrizationConfig.py:91
python.PartPropSvcConfig.PartPropSvcCfg
def PartPropSvcCfg(flags, **kwargs)
Definition: PartPropSvcConfig.py:6
python.IOVDbSvcConfig.addFolders
def addFolders(flags, folderStrings, detDb=None, className=None, extensible=False, tag=None, db=None, modifiers='')
Definition: IOVDbSvcConfig.py:86
LArGMConfig.LArGMCfg
def LArGMCfg(flags)
Definition: LArGMConfig.py:8
python.OutputStreamConfig.addToESD
def addToESD(flags, itemOrList, **kwargs)
Definition: OutputStreamConfig.py:135
python.IOVDbSvcConfig.addOverride
def addOverride(flags, folder, tag, tagType="tag", db=None)
Definition: IOVDbSvcConfig.py:238
FastCaloSimFactoryNew.NITimedExtrapolatorCfg
def NITimedExtrapolatorCfg(flags, name="ISF_NITimedExtrapolator", **kwargs)
Definition: FastCaloSimFactoryNew.py:9
ISF_FastCaloSimParametrizationConfig.PostIncludeISF_FastCaloSimParametrizationConditions
def PostIncludeISF_FastCaloSimParametrizationConditions(flags, cfg)
Definition: ISF_FastCaloSimParametrizationConfig.py:110
ISF_FastCaloSimParametrizationConfig.PostIncludeISF_FastCaloSimParametrizationReco
def PostIncludeISF_FastCaloSimParametrizationReco(flags, cfg)
Definition: ISF_FastCaloSimParametrizationConfig.py:136
ISF_FastCaloSimParametrizationConfig.CaloCellContainerSDCfg
def CaloCellContainerSDCfg(flags, name='CaloCellContainerSD', **kwargs)
Definition: ISF_FastCaloSimParametrizationConfig.py:80
python.TileCablingSvcConfig.TileCablingSvcCfg
def TileCablingSvcCfg(flags)
Definition: TileCablingSvcConfig.py:11