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