Skip to content
Snippets Groups Projects
Commit 94ab614d authored by Blaz Leban's avatar Blaz Leban Committed by Adam Edward Barton
Browse files

Initial commit

AdditionalConfigNew.py:
	- replaced some EXISTING functions/imports with new configuration ones
	- dead link fix (atlas -> athena)
	- comment out function which is called nowhere

ISF_FastCaloSimParametrizationConfigNew.py
	- fix typos
	- fix an algorithm treatment
parent 29bc0763
No related branches found
No related tags found
No related merge requests found
# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
from RngComps.RandomServices import RNG
from IOVDbSvc.IOVDbSvcConfig import addFolders
from AthenaConfiguration.ComponentFactory import CompFactory
from TrkDetDescrSvc.TrkDetDescrJobProperties import TrkDetFlags
from ISF_FastCaloSimServices.ISF_FastCaloSimHelpers import AdditionalParticleParametrizationFileNames
# Initialize Athena logging
from AthenaCommon.Logging import logging
mlog = logging.getLogger('FastCaloSimFactory::configure:')
def NIMatEffUpdatorCfg(flags, name="ISF_NIMatEffUpdator", **kwargs):
return CompFactory.Trk.NIMatEffUpdator(name, **kwargs)
def NIPropagatorCfg(flags, name="ISF_NIPropagator", **kwargs):
mlog.info("Now configure the non-interacting propagator...")
kwargs.setdefault("MaterialEffects", False)
result = CompFactory.Trk.STEP_Propagator(name, **kwargs)
mlog.info("Configure non-interacting propagator finished.")
return result
def NITimedExtrapolatorCfg(flags, name="ISF_NITimedExtrapolator", **kwargs):
mlog.info("Now configure the TimedExtrapolator...")
kwargs.setdefault("MaterialEffectsUpdators", [NIMatEffUpdatorCfg(flags)])
kwargs.setdefault("ApplyMaterialEffects", False)
kwargs.setdefault("STEP_Propagator", NIPropagatorCfg(flags))
result = CompFactory.Trk.TimedExtrapolator(name, **kwargs)
mlog.info("Configure TimedExtrapolator finished.")
return result
# FastShowerCellBuilderTool
def FastShowerCellBuilderToolBaseCfg(flags, name, **kwargs):
acc = RNG(flags.Random.Engine)
acc.merge(addFolders(flags, "/GLOBAL/AtlfastII/FastCaloSimParam", "GLOBAL_OFL", tag="FastCaloSim_v2"))
localFileNameList = AdditionalParticleParametrizationFileNames()
localFileNameList.insert(0, "L1_L2_egamma_corr.config20.root")
kwargs.setdefault("AdditionalParticleParametrizationFileNames", localFileNameList)
kwargs.setdefault("RandomService", acc.getService("AthRNGSvc"))
kwargs.setdefault("RandomStreamName", "AthRNGSvc")
kwargs.setdefault("DoSimulWithInnerDetectorTruthOnly", True)
kwargs.setdefault("ID_cut_off_r", [1150])
kwargs.setdefault("ID_cut_off_z", [3490])
kwargs.setdefault("DoSimulWithInnerDetectorV14TruthCuts", True)
kwargs.setdefault("DoNewEnergyEtaSelection", True)
kwargs.setdefault("DoEnergyInterpolation", True)
kwargs.setdefault("use_Ekin_for_depositions", True)
kwargs.setdefault("McLocation", flags.Sim.FastShower.InputCollection)
kwargs.setdefault("ParticleParametrizationFileName", "")
kwargs.setdefault("Extrapolator", NITimedExtrapolatorCfg(flags))
# New kwarg from old FastCaloSimFactory
kwargs.setdefault("CaloEntrance", TrkDetFlags.InDetContainerName())
#######################################################################################################
#theFastShowerCellBuilderTool.Invisibles=[12, 14, 16, 1000022]
#########################################################################################################
acc.setPrivateTools(CompFactory.FastShowerCellBuilderTool(name, **kwargs))
return acc
def FastShowerCellBuilderToolCfg(flags, **kwargs):
acc = FastShowerCellBuilderToolBaseCfg(flags, name="ISF_FastShowerCellBuilderTool", **kwargs)
tool = acc.popPrivateTools()
try:
ParticleParametrizationFileName = tool.ParticleParametrizationFileName
except Exception:
ParticleParametrizationFileName = ""
# TODO: Always False since len(Add...) = 636
if ParticleParametrizationFileName == "" and len(tool.AdditionalParticleParametrizationFileNames) == 0:
ParticleParametrizationFileName = "FastCaloSim/v1/ParticleEnergyParametrization.root"
tool.ParticleParametrizationFileName = ParticleParametrizationFileName
# TODO: Do we need this: very long output?
mlog.info("ParticleParametrizationFile: %s", ParticleParametrizationFileName)
mlog.verbose("all values:")
mlog.verbose(tool)
acc.setPrivateTools(tool)
return acc
...@@ -3,14 +3,14 @@ ...@@ -3,14 +3,14 @@
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
""" """
from AthenaConfiguration.ComponentFactory import CompFactory from AthenaConfiguration.ComponentFactory import CompFactory
from FastCaloSim.FastCaloSimFactoryNew import NITimedExtrapolatorCfg
def FastCaloSimCaloExtrapolationCfg(flags, name="FastCaloSimCaloExtrapolation", **kwargs): def FastCaloSimCaloExtrapolationCfg(flags, name="FastCaloSimCaloExtrapolation", **kwargs):
kwargs.setdefault("CaloBoundaryR", [1148.0, 120.0, 41.0]) kwargs.setdefault("CaloBoundaryR", [1148.0, 120.0, 41.0])
kwargs.setdefault("CaloBoundaryZ", [3550.0, 4587.0, 4587.0]) kwargs.setdefault("CaloBoundaryZ", [3550.0, 4587.0, 4587.0])
kwargs.setdefault("CaloMargin", 100) kwargs.setdefault("CaloMargin", 100)
kwargs.setdefault("Extrapolator", "TimedExtrapolator") # TODO prevent circular import with AdditionalConfigNew kwargs.setdefault("Extrapolator", NITimedExtrapolatorCfg(flags))
kwargs.setdefault("CaloGeometryHelper", "FastCaloSimGeometryHelper") kwargs.setdefault("CaloGeometryHelper", FastCaloSimGeometryHelperCfg(flags))
kwargs.setdefault("CaloEntrance", "InDet::Containers::InnerDetector") kwargs.setdefault("CaloEntrance", "InDet::Containers::InnerDetector")
return CompFactory.FastCaloSimCaloExtrapolation(name, **kwargs) return CompFactory.FastCaloSimCaloExtrapolation(name, **kwargs)
......
...@@ -19,3 +19,5 @@ atlas_add_component( ISF_FastCaloSimServices ...@@ -19,3 +19,5 @@ atlas_add_component( ISF_FastCaloSimServices
# Install files from the package: # Install files from the package:
atlas_install_python_modules( python/*.py ) atlas_install_python_modules( python/*.py )
atlas_add_test( ISF_FastCaloSimServices_Config_test
SCRIPT test/FastCaloSimServices_test.py)
\ No newline at end of file
"""ComponentAccumulator additional configuration of tools for ISF_FastCaloSimServices """ComponentAccumulator helper configuration for ISF_FastCaloSimServices
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
""" """
from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
from AthenaConfiguration.ComponentFactory import CompFactory
from RngComps.RandomServices import RNG
from BarcodeServices.BarcodeServicesConfigNew import BarcodeSvcCfg
from SubDetectorEnvelopes.SubDetectorEnvelopesConfigNew import EnvelopeDefSvcCfg
from IOVDbSvc.IOVDbSvcConfig import addFolders
# TODO check this for new config
from ISF_Algorithms.collection_merger_helpers import generate_mergeable_collection_name
#TODO: Do we need this to be function or can it just be an array?
def AdditionalParticleParametrizationFileNames(): def AdditionalParticleParametrizationFileNames():
return [ return [
"DB=/GLOBAL/AtlfastII/FastCaloSimParam:2:EnergyResults/pdgid_211/EN_1000/eta_central", "DB=/GLOBAL/AtlfastII/FastCaloSimParam:2:EnergyResults/pdgid_211/EN_1000/eta_central",
...@@ -651,288 +642,3 @@ def AdditionalParticleParametrizationFileNames(): ...@@ -651,288 +642,3 @@ def AdditionalParticleParametrizationFileNames():
"DB=/GLOBAL/AtlfastII/FastCaloSimParam:2:ShapeResults/pdgid_211/EN_50000/calosample_17", "DB=/GLOBAL/AtlfastII/FastCaloSimParam:2:ShapeResults/pdgid_211/EN_50000/calosample_17",
"DB=/GLOBAL/AtlfastII/FastCaloSimParam:2:ShapeResults/pdgid_211/EN_50000/calosample_4", "DB=/GLOBAL/AtlfastII/FastCaloSimParam:2:ShapeResults/pdgid_211/EN_50000/calosample_4",
] ]
# definitions taken from file:
# FastSimulationJobTransforms/jobConfig.FastCaloSim_DB.py
def setAdditionalParticleParametrizationFileNames(FastShowerCellBuilderTool):
FastShowerCellBuilderTool.AdditionalParticleParametrizationFileNames = AdditionalParticleParametrizationFileNames()
def PunchThroughToolCfg(flags, name="ISF_PunchThroughTool", **kwargs):
acc = RNG(flags.Random.Engine)
kwargs.setdefault("RandomNumberService", acc.getService("AthRNGSvc"))
kwargs.setdefault("RandomStreamName", "AthRNGSvc") # TODO check
kwargs.setdefault("FilenameLookupTable", "CaloPunchThroughParametrisation.root")
kwargs.setdefault("PunchThroughInitiators", [211])
kwargs.setdefault("PunchThroughParticles", [ 2212, 211, 22, 11, 13])
kwargs.setdefault("DoAntiParticles" , [ False, True, False, True, True])
kwargs.setdefault("CorrelatedParticle" , [ 211, 2212, 11, 22, 0])
kwargs.setdefault("FullCorrelationEnergy", [100000., 100000., 100000., 100000., 0.])
kwargs.setdefault("MinEnergy" , [ 938.3, 135.6, 50., 50., 105.7])
kwargs.setdefault("MaxNumParticles" , [ -1, -1, -1, -1, -1])
kwargs.setdefault("EnergyFactor" , [ 1., 1., 1., 1., 1.])
acc_bar = BarcodeSvcCfg(flags)
kwargs.setdefault("BarcodeSvc", acc_bar.getPrimary())
acc.merge(acc_bar)
acc.merge(EnvelopeDefSvcCfg(flags))
kwargs.setdefault("EnvelopeDefSvc", acc.getService("AtlasGeometry_EnvelopeDefSvc"))
kwargs.setdefault("BeamPipeRadius", 500.)
acc.setPrivateTools(CompFactory.ISF.PunchThroughTool(name, **kwargs))
return acc
def EmptyCellBuilderToolCfg(flags, name="ISF_EmptyCellBuilderTool", **kwargs):
return CompFactory.EmptyCellBuilderTool(name, **kwargs)
def NIMatEffUpdatorCfg(flags, name="ISF_NIMatEffUpdator", **kwargs):
return CompFactory.Trk.NIMatEffUpdator(name, **kwargs)
def NIPropagatorCfg(flags, name="ISF_NIPropagator", **kwargs):
kwargs.setdefault("MaterialEffects", False)
return CompFactory.Trk.STEP_Propagator(name, **kwargs)
def NITimedExtrapolatorCfg(flags, name="ISF_NITimedExtrapolator", **kwargs):
kwargs.setdefault("MaterialEffectsUpdators", [NIMatEffUpdatorCfg(flags)])
kwargs.setdefault("ApplyMaterialEffects", False)
kwargs.setdefault("STEP_Propagator", NIPropagatorCfg(flags))
return CompFactory.Trk.TimedExtrapolator(name, **kwargs)
def TimedExtrapolatorCfg(flags, name="TimedExtrapolator", **kwargs):
kwargs.setdefault("MaterialEffectsUpdators", [NIMatEffUpdatorCfg(flags)])
kwargs.setdefault("ApplyMaterialEffects", False )
kwargs.setdefault("STEP_Propagator", NIPropagatorCfg(flags))
return CompFactory.Trk.TimedExtrapolator(name, **kwargs)
# FastShowerCellBuilderTool
def DefaultFastShowerCellBuilderToolCfg(flags, name, **kwargs):
acc = RNG(flags.Random.Engine)
kwargs.setdefault("RandomService", acc.getService("AthRNGSvc"))
kwargs.setdefault("RandomStreamName", "AthRNGSvc") # TODO check
kwargs.setdefault("DoSimulWithInnerDetectorTruthOnly", True)
kwargs.setdefault("ID_cut_off_r", [1150])
kwargs.setdefault("ID_cut_off_z", [3490])
kwargs.setdefault("DoSimulWithInnerDetectorV14TruthCuts", True)
kwargs.setdefault("DoNewEnergyEtaSelection", True)
kwargs.setdefault("DoEnergyInterpolation", True)
kwargs.setdefault("use_Ekin_for_depositions", True)
kwargs.setdefault("McLocation", flags.Sim.FastShower.InputCollection)
kwargs.setdefault("ParticleParametrizationFileName", "")
kwargs.setdefault("Extrapolator", NITimedExtrapolatorCfg(flags))
# TODO migrate
from FastCaloSim.FastCaloSimFactory import FastCaloSimFactory
return FastCaloSimFactory(name, **kwargs)
def FastShowerCellBuilderToolCfg(flags, name="ISF_FastShowerCellBuilderTool", **kwargs):
localFileNameList = AdditionalParticleParametrizationFileNames()
localFileNameList.insert(0,"L1_L2_egamma_corr.config20.root")
kwargs.setdefault("AdditionalParticleParametrizationFileNames", localFileNameList)
acc = addFolders(flags, "/GLOBAL/AtlfastII/FastCaloSimParam", "GLOBAL_OFL", tag="FastCaloSim_v2")
acc.setPrivateTools(DefaultFastShowerCellBuilderToolCfg(flags, name, **kwargs)) # TODO
return acc
def LegacyFastShowerCellBuilderToolCfg(flags, name="ISF_LegacyFastShowerCellBuilderTool", **kwargs):
acc = FastShowerCellBuilderToolCfg(flags, name, **kwargs)
FastShowerCellBuilderTool = acc.popPrivateTools()
FastShowerCellBuilderTool.Invisibles += [13]
acc.setPrivateTools(FastShowerCellBuilderTool)
return acc
def PileupFastShowerCellBuilderToolCfg(flags, name="ISF_PileupFastShowerCellBuilderTool", **kwargs):
# weights from: FIXME dead link
# http://acode-browser.usatlas.bnl.gov/lxr/source/atlas/Simulation/FastShower/FastCaloSim/FastCaloSim/FastCaloSim_CaloCell_ID.h
weightsfcs = [
### LAr presampler
#FirstSample=CaloCell_ID::PreSamplerB,
2.0,
### LAr barrel
#PreSamplerB=CaloCell_ID::PreSamplerB,
#EMB1=CaloCell_ID::EMB1,
#EMB2=CaloCell_ID::EMB2,
#EMB3=CaloCell_ID::EMB3,
2.0, 2.0, 2.0, 2.0,
### LAr EM endcap
#PreSamplerE=CaloCell_ID::PreSamplerE,
#EME1=CaloCell_ID::EME1,
#EME2=CaloCell_ID::EME2,
#EME3=CaloCell_ID::EME3,
2.0, 2.0, 2.0, 2.0,
### Hadronic end cap cal.
#HEC0=CaloCell_ID::HEC0,
#HEC1=CaloCell_ID::HEC1,
#HEC2=CaloCell_ID::HEC2,
#HEC3=CaloCell_ID::HEC3,
2.0, 2.0, 2.0, 2.0,
### Tile barrel
#TileBar0=CaloCell_ID::TileBar0,
#TileBar1=CaloCell_ID::TileBar1,
#TileBar2=CaloCell_ID::TileBar2,
1.0, 1.0, 1.0,
### Tile gap (ITC & scint)
#TileGap1=CaloCell_ID::TileGap1,
#TileGap2=CaloCell_ID::TileGap2,
#TileGap3=CaloCell_ID::TileGap3,
1.0, 1.0, 1.0,
### Tile extended barrel
#TileExt0=CaloCell_ID::TileExt0,
#TileExt1=CaloCell_ID::TileExt1,
#TileExt2=CaloCell_ID::TileExt2,
1.0, 1.0, 1.0,
### Forward EM endcap
#FCAL0=CaloCell_ID::FCAL0,
#FCAL1=CaloCell_ID::FCAL1,
#FCAL2=CaloCell_ID::FCAL2,
1.0, 1.0, 1.0,
### Beware of MiniFCAL! We don"t have it, so different numbers after FCAL2
#LastSample = CaloCell_ID::FCAL2,
#MaxSample = LastSample+1
1.0, 1.0,
]
kwargs.setdefault("sampling_energy_reweighting", weightsfcs )
return FastShowerCellBuilderToolCfg(flags, name, **kwargs)
# TODO
def FastHitConvertToolCfg(flags, name="ISF_FastHitConvertTool", **kwargs):
mergeable_collection_suffix = "_FastCaloSim"
EMB_hits_bare_collection_name = "LArHitEMB"
EMB_hits_merger_input_property = "LArEMBHits"
EMB_hits_collection_name = generate_mergeable_collection_name(
EMB_hits_bare_collection_name,
mergeable_collection_suffix,
EMB_hits_merger_input_property)
EMEC_hits_bare_collection_name = "LArHitEMEC"
EMEC_hits_merger_input_property = "LArEMECHits"
EMEC_hits_collection_name = generate_mergeable_collection_name(
EMEC_hits_bare_collection_name,
mergeable_collection_suffix,
EMEC_hits_merger_input_property)
FCAL_hits_bare_collection_name = "LArHitFCAL"
FCAL_hits_merger_input_property = "LArFCALHits"
FCAL_hits_collection_name = generate_mergeable_collection_name(
FCAL_hits_bare_collection_name,
mergeable_collection_suffix,
FCAL_hits_merger_input_property)
HEC_hits_bare_collection_name = "LArHitHEC"
HEC_hits_merger_input_property = "LArHECHits"
HEC_hits_collection_name = generate_mergeable_collection_name(
HEC_hits_bare_collection_name,
mergeable_collection_suffix,
HEC_hits_merger_input_property)
tile_hits_bare_collection_name = "TileHitVec"
tile_hits_merger_input_property = "TileHits"
tile_hits_collection_name = generate_mergeable_collection_name(
tile_hits_bare_collection_name,
mergeable_collection_suffix,
tile_hits_merger_input_property)
kwargs.setdefault("embHitContainername", EMB_hits_collection_name)
kwargs.setdefault("emecHitContainername", EMEC_hits_collection_name)
kwargs.setdefault("fcalHitContainername", FCAL_hits_collection_name)
kwargs.setdefault("hecHitContainername", HEC_hits_collection_name)
kwargs.setdefault("tileHitContainername", tile_hits_collection_name)
return CompFactory.FastHitConvertTool(name,**kwargs)
def CaloNoiseToolCfg(flags, name="ISF_FCS_CaloNoiseTool", **kwargs):
# TODO
from CaloTools.CaloNoiseToolDefault import CaloNoiseToolDefault
return CaloNoiseToolDefault(name, **kwargs)
def AddNoiseCellBuilderToolCfg(flags, name="ISF_AddNoiseCellBuilderTool", **kwargs):
# TODO
from FastCaloSim.AddNoiseCellBuilderToolDefault import AddNoiseCellBuilderToolDefault
return AddNoiseCellBuilderToolDefault(name, **kwargs)
def CaloCellContainerFinalizerToolCfg(flags, name="ISF_CaloCellContainerFinalizerTool", **kwargs):
return CompFactory.CaloCellContainerFinalizerTool(name, **kwargs)
def CaloCellContainerFCSFinalizerToolCfg(flags, name="ISF_CaloCellContainerFCSFinalizerTool", **kwargs):
return CompFactory.CaloCellContainerFCSFinalizerTool(name, **kwargs)
def FastHitConvAlgCfg(flags, name="ISF_FastHitConvAlg", **kwargs):
acc = ComponentAccumulator()
kwargs.setdefault("CaloCellsInputName" , flags.Sim.FastCalo.CaloCellsName)
# TODO: do we need this?
#from AthenaCommon.DetFlags import DetFlags
#if DetFlags.pileup.LAr_on() or DetFlags.pileup.Tile_on():
# kwargs.setdefault("doPileup", True)
#else:
# kwargs.setdefault("doPileup", False)
acc.addEventAlgo(CompFactory.FastHitConv(name, **kwargs))
return acc
def FastCaloToolBaseCfg(flags, name="ISF_FastCaloToolBase", **kwargs):
acc = ComponentAccumulator()
kwargs.setdefault("BatchProcessMcTruth" , False)
kwargs.setdefault("SimulateUndefinedBarcodeParticles", False)
kwargs.setdefault("CaloCellsOutputName" , flags.Sim.FastCalo.CaloCellsName)
kwargs.setdefault("PunchThroughTool" , acc.popToolsAndMerge(PunchThroughToolCfg(flags)))
kwargs.setdefault("DoPunchThroughSimulation" , False)
kwargs.setdefault("CaloCellMakerTools_setup" , [EmptyCellBuilderToolCfg(flags)])
tool = acc.popToolsAndMerge(FastShowerCellBuilderToolCfg(flags))
kwargs.setdefault("CaloCellMakerTools_simulate" , [tool])
# TODO
kwargs.setdefault("CaloCellMakerTools_release" , [#"ISF_AddNoiseCellBuilderTool",
CaloCellContainerFinalizerToolCfg(flags),
FastHitConvertToolCfg(flags)])
kwargs.setdefault("Extrapolator", NITimedExtrapolatorCfg(flags))
# FIXME not migrated. Remove or replace
# register the FastCaloSim random number streams
#from G4AtlasApps.SimFlags import simFlags
#if not simFlags.RandomSeedList.checkForExistingSeed(ISF_FastCaloSimFlags.RandomStreamName()):
#simFlags.RandomSeedList.addSeed( ISF_FastCaloSimFlags.RandomStreamName(), 98346412, 12461240)
return CompFactory.ISF.FastCaloTool(name, **kwargs)
def FastCaloToolCfg(flags, name="ISF_FastCaloTool", **kwargs):
return FastCaloToolBaseCfg(flags, name, **kwargs)
def FastCaloPileupToolCfg(flags, name="ISF_FastCaloPileupTool", **kwargs):
acc = ComponentAccumulator()
kwargs.setdefault("CaloCellsOutputName", flags.Sim.FastCalo.CaloCellsName + "PileUp")
tool = acc.popToolsAndMerge(PileupFastShowerCellBuilderToolCfg(flags))
kwargs.setdefault("CaloCellMakerTools_simulate", [tool])
acc.merge(FastCaloToolBaseCfg(name, **kwargs))
return acc
def LegacyAFIIFastCaloToolCfg(flags, name="ISF_LegacyAFIIFastCaloTool", **kwargs):
acc = ComponentAccumulator()
kwargs.setdefault("BatchProcessMcTruth", True)
tool = acc.popToolsAndMerge(LegacyFastShowerCellBuilderToolCfg(flags))
kwargs.setdefault("CaloCellMakerTools_simulate", [tool])
acc.merge(FastCaloToolBaseCfg(name, **kwargs))
return acc
def FastCaloSimV2ToolCfg(flags, name="ISF_FastCaloSimV2Tool", **kwargs):
acc = ComponentAccumulator()
kwargs.setdefault("CaloCellsOutputName", flags.Sim.FastCalo.CaloCellsName)
kwargs.setdefault("CaloCellMakerTools_setup", [EmptyCellBuilderToolCfg(flags)] )
kwargs.setdefault("CaloCellMakerTools_release", [CaloCellContainerFCSFinalizerToolCfg(flags),
FastHitConvertToolCfg(flags)])
kwargs.setdefault("FastCaloSimCaloExtrapolation", "FastCaloSimCaloExtrapolation") # tool TODO
kwargs.setdefault("ParamSvc", "ISF_FastCaloSimV2ParamSvc") # TODO
acc.merge(RNG(flags.Random.Engine))
kwargs.setdefault("RandomSvc", acc.getService("AthRNGSvc"))
kwargs.setdefault("RandomStream", "AthRNGSvc") # TODO check
kwargs.setdefault("PunchThroughTool", acc.popToolsAndMerge(PunchThroughToolCfg(flags)))
return CompFactory.ISF.FastCaloSimV2Tool(name, **kwargs)
...@@ -6,41 +6,297 @@ from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator ...@@ -6,41 +6,297 @@ from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
from AthenaConfiguration.ComponentFactory import CompFactory from AthenaConfiguration.ComponentFactory import CompFactory
from RngComps.RandomServices import RNG from RngComps.RandomServices import RNG
###################################################################################################
# Moved from AdditionalConfigNew
from ISF_FastCaloSimParametrization.ISF_FastCaloSimParametrizationConfigNew import FastCaloSimCaloExtrapolationCfg
from FastCaloSim.FastCaloSimFactoryNew import (NITimedExtrapolatorCfg,
FastShowerCellBuilderToolCfg)
def PunchThroughToolCfg(flags, name="ISF_PunchThroughTool", **kwargs):
from BarcodeServices.BarcodeServicesConfigNew import BarcodeSvcCfg
from SubDetectorEnvelopes.SubDetectorEnvelopesConfigNew import EnvelopeDefSvcCfg
acc = RNG(flags.Random.Engine)
kwargs.setdefault("RandomNumberService", acc.getService("AthRNGSvc"))
kwargs.setdefault("RandomStreamName", "AthRNGSvc") # TODO check
kwargs.setdefault("FilenameLookupTable", "CaloPunchThroughParametrisation.root")
kwargs.setdefault("PunchThroughInitiators", [211])
kwargs.setdefault("PunchThroughParticles", [ 2212, 211, 22, 11, 13])
kwargs.setdefault("DoAntiParticles" , [ False, True, False, True, True])
kwargs.setdefault("CorrelatedParticle" , [ 211, 2212, 11, 22, 0])
kwargs.setdefault("FullCorrelationEnergy", [100000., 100000., 100000., 100000., 0.])
kwargs.setdefault("MinEnergy" , [ 938.3, 135.6, 50., 50., 105.7])
kwargs.setdefault("MaxNumParticles" , [ -1, -1, -1, -1, -1])
kwargs.setdefault("EnergyFactor" , [ 1., 1., 1., 1., 1.])
acc_bar = BarcodeSvcCfg(flags)
kwargs.setdefault("BarcodeSvc", acc_bar.getPrimary())
acc.merge(acc_bar)
acc.merge(EnvelopeDefSvcCfg(flags))
kwargs.setdefault("EnvelopeDefSvc", acc.getService("AtlasGeometry_EnvelopeDefSvc"))
kwargs.setdefault("BeamPipeRadius", 500.)
acc.setPrivateTools(CompFactory.ISF.PunchThroughTool(name, **kwargs))
return acc
def EmptyCellBuilderToolCfg(flags, name="ISF_EmptyCellBuilderTool", **kwargs):
return CompFactory.EmptyCellBuilderTool(name, **kwargs)
def LegacyFastShowerCellBuilderToolCfg(flags, name="ISF_LegacyFastShowerCellBuilderTool", **kwargs):
acc = FastShowerCellBuilderToolCfg(flags, name, **kwargs)
FastShowerCellBuilderTool = acc.popPrivateTools()
FastShowerCellBuilderTool.Invisibles += [13]
acc.setPrivateTools(FastShowerCellBuilderTool)
return acc
def PileupFastShowerCellBuilderToolCfg(flags, name="ISF_PileupFastShowerCellBuilderTool", **kwargs):
# weights from:
# https://acode-browser.usatlas.bnl.gov/lxr/source/athena/Simulation/FastShower/FastCaloSim/FastCaloSim/FastCaloSim_CaloCell_ID.h
weightsfcs = [
### LAr presampler
#FirstSample=CaloCell_ID::PreSamplerB,
2.0,
### LAr barrel
#PreSamplerB=CaloCell_ID::PreSamplerB,
#EMB1=CaloCell_ID::EMB1,
#EMB2=CaloCell_ID::EMB2,
#EMB3=CaloCell_ID::EMB3,
2.0, 2.0, 2.0, 2.0,
### LAr EM endcap
#PreSamplerE=CaloCell_ID::PreSamplerE,
#EME1=CaloCell_ID::EME1,
#EME2=CaloCell_ID::EME2,
#EME3=CaloCell_ID::EME3,
2.0, 2.0, 2.0, 2.0,
### Hadronic end cap cal.
#HEC0=CaloCell_ID::HEC0,
#HEC1=CaloCell_ID::HEC1,
#HEC2=CaloCell_ID::HEC2,
#HEC3=CaloCell_ID::HEC3,
2.0, 2.0, 2.0, 2.0,
### Tile barrel
#TileBar0=CaloCell_ID::TileBar0,
#TileBar1=CaloCell_ID::TileBar1,
#TileBar2=CaloCell_ID::TileBar2,
1.0, 1.0, 1.0,
### Tile gap (ITC & scint)
#TileGap1=CaloCell_ID::TileGap1,
#TileGap2=CaloCell_ID::TileGap2,
#TileGap3=CaloCell_ID::TileGap3,
1.0, 1.0, 1.0,
### Tile extended barrel
#TileExt0=CaloCell_ID::TileExt0,
#TileExt1=CaloCell_ID::TileExt1,
#TileExt2=CaloCell_ID::TileExt2,
1.0, 1.0, 1.0,
### Forward EM endcap
#FCAL0=CaloCell_ID::FCAL0,
#FCAL1=CaloCell_ID::FCAL1,
#FCAL2=CaloCell_ID::FCAL2,
1.0, 1.0, 1.0,
### Beware of MiniFCAL! We don"t have it, so different numbers after FCAL2
#LastSample = CaloCell_ID::FCAL2,
#MaxSample = LastSample+1
1.0, 1.0,
]
kwargs.setdefault("sampling_energy_reweighting", weightsfcs )
return FastShowerCellBuilderToolCfg(flags, name, **kwargs)
def FastHitConvertToolCfg(flags, name="ISF_FastHitConvertTool", **kwargs):
from ISF_Algorithms.collection_merger_helpersNew import CollectionMergerCfg
acc = ComponentAccumulator()
mergeable_collection_suffix = "_FastCaloSim"
EMB_hits_bare_collection_name = "LArHitEMB"
EMB_hits_merger_input_property = "LArEMBHits"
acc1, EMB_hits_collection_name = CollectionMergerCfg(
flags,
EMB_hits_bare_collection_name,
mergeable_collection_suffix,
EMB_hits_merger_input_property)
acc.merge(acc1)
EMEC_hits_bare_collection_name = "LArHitEMEC"
EMEC_hits_merger_input_property = "LArEMECHits"
acc2, EMEC_hits_collection_name = CollectionMergerCfg(
flags,
EMEC_hits_bare_collection_name,
mergeable_collection_suffix,
EMEC_hits_merger_input_property)
acc.merge(acc2)
FCAL_hits_bare_collection_name = "LArHitFCAL"
FCAL_hits_merger_input_property = "LArFCALHits"
acc3, FCAL_hits_collection_name = CollectionMergerCfg(
flags,
FCAL_hits_bare_collection_name,
mergeable_collection_suffix,
FCAL_hits_merger_input_property)
acc.merge(acc3)
HEC_hits_bare_collection_name = "LArHitHEC"
HEC_hits_merger_input_property = "LArHECHits"
acc4, HEC_hits_collection_name = CollectionMergerCfg(
flags,
HEC_hits_bare_collection_name,
mergeable_collection_suffix,
HEC_hits_merger_input_property)
acc.merge(acc4)
tile_hits_bare_collection_name = "TileHitVec"
tile_hits_merger_input_property = "TileHits"
acc5, tile_hits_collection_name = CollectionMergerCfg(
flags,
tile_hits_bare_collection_name,
mergeable_collection_suffix,
tile_hits_merger_input_property)
acc.merge(acc5)
kwargs.setdefault("embHitContainername", EMB_hits_collection_name)
kwargs.setdefault("emecHitContainername", EMEC_hits_collection_name)
kwargs.setdefault("fcalHitContainername", FCAL_hits_collection_name)
kwargs.setdefault("hecHitContainername", HEC_hits_collection_name)
kwargs.setdefault("tileHitContainername", tile_hits_collection_name)
acc.setPrivateTools(CompFactory.FastHitConvertTool(name, **kwargs))
return acc
# TODO: do we need this - nowhere called?
# def CaloNoiseToolCfg(flags, name="ISF_FCS_CaloNoiseTool", **kwargs):
# from CaloTools.CaloNoiseToolDefault import CaloNoiseToolDefault
# return CaloNoiseToolDefault(name, **kwargs)
def AddNoiseCellBuilderToolCfg(flags, name="ISF_AddNoiseCellBuilderTool", **kwargs):
from FastCaloSim.AddNoiseCellBuilderToolConfig import AddNoiseCellBuilderToolCfg
return AddNoiseCellBuilderToolCfg(flags)
def CaloCellContainerFinalizerToolCfg(flags, name="ISF_CaloCellContainerFinalizerTool", **kwargs):
return CompFactory.CaloCellContainerFinalizerTool(name, **kwargs)
def CaloCellContainerFCSFinalizerToolCfg(flags, name="ISF_CaloCellContainerFCSFinalizerTool", **kwargs):
return CompFactory.CaloCellContainerFCSFinalizerTool(name, **kwargs)
def FastHitConvAlgCfg(flags, name="ISF_FastHitConvAlg", **kwargs):
acc = ComponentAccumulator()
kwargs.setdefault("CaloCellsInputName" , flags.Sim.FastCalo.CaloCellsName)
# TODO: do we need this?
#from AthenaCommon.DetFlags import DetFlags
#if DetFlags.pileup.LAr_on() or DetFlags.pileup.Tile_on():
# kwargs.setdefault("doPileup", True)
#else:
# kwargs.setdefault("doPileup", False)
acc.addEventAlgo(CompFactory.FastHitConv(name, **kwargs))
return acc
def FastCaloToolBaseCfg(flags, name="ISF_FastCaloTool", **kwargs):
acc = ComponentAccumulator()
kwargs.setdefault("BatchProcessMcTruth" , False)
kwargs.setdefault("SimulateUndefinedBarcodeParticles", False)
kwargs.setdefault("CaloCellsOutputName" , flags.Sim.FastCalo.CaloCellsName)
kwargs.setdefault("PunchThroughTool" , acc.popToolsAndMerge(PunchThroughToolCfg(flags)))
kwargs.setdefault("DoPunchThroughSimulation" , False)
kwargs.setdefault("CaloCellMakerTools_setup" , [EmptyCellBuilderToolCfg(flags)])
kwargs.setdefault("CaloCellMakerTools_simulate" , [acc.popToolsAndMerge(FastShowerCellBuilderToolCfg(flags))])
kwargs.setdefault("CaloCellMakerTools_release" , [# AddNoiseCellBuilderToolCfg(flags)",
CaloCellContainerFinalizerToolCfg(flags),
acc.popToolsAndMerge(FastHitConvertToolCfg(flags))])
kwargs.setdefault("Extrapolator", NITimedExtrapolatorCfg(flags))
# FIXME not migrated. Remove or replace
# register the FastCaloSim random number streams
#from G4AtlasApps.SimFlags import simFlags
#if not simFlags.RandomSeedList.checkForExistingSeed(ISF_FastCaloSimFlags.RandomStreamName()):
#simFlags.RandomSeedList.addSeed( ISF_FastCaloSimFlags.RandomStreamName(), 98346412, 12461240)
acc.setPrivateTools(CompFactory.ISF.FastCaloTool(name, **kwargs))
return acc
# TODO: Do we need this - can we only call FastCaloToolBaseCfg?
# def FastCaloToolCfg(flags, name="ISF_FastCaloTool", **kwargs):
# return FastCaloToolBaseCfg(flags, name, **kwargs)
def FastCaloPileupToolCfg(flags, name="ISF_FastCaloPileupTool", **kwargs):
acc = ComponentAccumulator()
kwargs.setdefault("CaloCellsOutputName", flags.Sim.FastCalo.CaloCellsName + "PileUp")
tool = acc.popToolsAndMerge(PileupFastShowerCellBuilderToolCfg(flags))
kwargs.setdefault("CaloCellMakerTools_simulate", [tool])
acc.merge(FastCaloToolBaseCfg(name, **kwargs))
return acc
def LegacyAFIIFastCaloToolCfg(flags, name="ISF_LegacyAFIIFastCaloTool", **kwargs):
acc = ComponentAccumulator()
kwargs.setdefault("BatchProcessMcTruth", True)
tool = acc.popToolsAndMerge(LegacyFastShowerCellBuilderToolCfg(flags))
kwargs.setdefault("CaloCellMakerTools_simulate", [tool])
acc.merge(FastCaloToolBaseCfg(name, **kwargs))
return acc
def FastCaloSimV2ToolCfg(flags, name="ISF_FastCaloSimV2Tool", **kwargs):
acc = ComponentAccumulator()
kwargs.setdefault("CaloCellsOutputName", flags.Sim.FastCalo.CaloCellsName)
kwargs.setdefault("CaloCellMakerTools_setup", [EmptyCellBuilderToolCfg(flags)] )
kwargs.setdefault("CaloCellMakerTools_release", [CaloCellContainerFCSFinalizerToolCfg(flags),
acc.popToolsAndMerge(FastHitConvertToolCfg(flags))])
kwargs.setdefault("FastCaloSimCaloExtrapolation", FastCaloSimCaloExtrapolationCfg(flags))
kwargs.setdefault("ParamSvc", acc.popToolsAndMerge(FastCaloSimV2ParamSvcCfg(flags)))
acc.merge(RNG(flags.Random.Engine))
kwargs.setdefault("RandomSvc", acc.getService("AthRNGSvc"))
kwargs.setdefault("RandomStream", "AthRNGSvc") # TODO check
kwargs.setdefault("PunchThroughTool", acc.popToolsAndMerge(PunchThroughToolCfg(flags)))
acc.setPrivateTools(CompFactory.ISF.FastCaloSimV2Tool(name, **kwargs))
return acc
###################################################################################################
# Config
def FastCaloSimSvcCfg(flags, name="ISF_FastCaloSimSvc", **kwargs): def FastCaloSimSvcCfg(flags, name="ISF_FastCaloSimSvc", **kwargs):
acc = ComponentAccumulator() acc = ComponentAccumulator()
kwargs.setdefault("SimulatorTool", "ISF_FastCaloTool") if "SimulatorTool" not in kwargs:
tool = acc.popToolsAndMerge(FastCaloToolBaseCfg(flags))
kwargs.setdefault("SimulatorTool", tool)
kwargs.setdefault("Identifier", "FastCaloSim") kwargs.setdefault("Identifier", "FastCaloSim")
acc.addService(CompFactory.ISF.LegacySimSvc(name, **kwargs)) acc.addService(CompFactory.ISF.LegacySimSvc(name, **kwargs))
return acc return acc
def FastCaloSimPileupSvcCfg(flags, name="ISF_FastCaloSimPileupSvc", **kwargs): def FastCaloSimPileupSvcCfg(flags, name="ISF_FastCaloSimPileupSvc", **kwargs):
kwargs.setdefault("SimulatorTool", "ISF_FastCaloPileupTool") acc1 = FastCaloPileupToolCfg(flags)
return FastCaloSimSvcCfg(flags, name, **kwargs) kwargs.setdefault("SimulatorTool", acc1.popPrivateTools())
acc = FastCaloSimSvcCfg(flags, name, **kwargs)
acc.merge(acc1)
return acc
def LegacyAFIIFastCaloSimSvcCfg(flags, name="ISF_LegacyAFIIFastCaloSimSvc", **kwargs): def LegacyAFIIFastCaloSimSvcCfg(flags, name="ISF_LegacyAFIIFastCaloSimSvc", **kwargs):
kwargs.setdefault("SimulatorTool", "ISF_LegacyAFIIFastCaloTool") acc1 = LegacyAFIIFastCaloToolCfg(flags)
return FastCaloSimSvcCfg(flags, name, **kwargs) kwargs.setdefault("SimulatorTool", acc1.popPrivateTools())
acc = FastCaloSimSvcCfg(flags, name, **kwargs)
acc.merge(acc1)
return acc
def FastHitConvAlgFastCaloSimSvcCfg(flags, name="ISF_FastHitConvAlgFastCaloSimSvc",**kwargs): def FastHitConvAlgFastCaloSimSvcCfg(flags, name="ISF_FastHitConvAlgFastCaloSimSvc",**kwargs):
acc = ComponentAccumulator() acc1 = FastHitConvAlgCfg(flags)
kwargs.setdefault("CaloCellMakerTools_release", ["ISF_AddNoiseCellBuilderTool", kwargs.setdefault("CaloCellMakerTools_release", [AddNoiseCellBuilderToolCfg(flags),
"ISF_CaloCellContainerFCSFinalizerTool"]) CaloCellContainerFCSFinalizerToolCfg(flags)])
# setup FastCaloSim hit converter and add it to the alg sequence: # setup FastCaloSim hit converter and add it to the alg sequence:
# -> creates HITS from reco cells # -> creates HITS from reco cells
from AthenaCommon.AlgSequence import AlgSequence acc = FastCaloSimSvcCfg(flags, name, **kwargs)
topSequence=AlgSequence() acc.merge(acc1)
from AthenaCommon.CfgGetter import getAlgorithm
topSequence+=getAlgorithm("ISF_FastHitConvAlg")
acc.merge(FastCaloSimSvcCfg(flags, name, **kwargs))
return acc return acc
def FastHitConvAlgLegacyAFIIFastCaloSimSvcCfg(flags, name="ISF_FastHitConvAlgLegacyAFIIFastCaloSimSvc", **kwargs): def FastHitConvAlgLegacyAFIIFastCaloSimSvcCfg(flags, name="ISF_FastHitConvAlgLegacyAFIIFastCaloSimSvc", **kwargs):
kwargs.setdefault("BatchProcessMcTruth", True) kwargs.setdefault("BatchProcessMcTruth", True) #TODO: This seems not to exist
return FastHitConvAlgFastCaloSimSvcCfg(flags, name, **kwargs) return FastHitConvAlgFastCaloSimSvcCfg(flags, name, **kwargs)
...@@ -50,18 +306,18 @@ def FastCaloSimPileupOTSvcCfg(flags, name="ISF_FastCaloSimPileupOTSvc", **kwargs ...@@ -50,18 +306,18 @@ def FastCaloSimPileupOTSvcCfg(flags, name="ISF_FastCaloSimPileupOTSvc", **kwargs
kwargs.setdefault("SimulateUndefinedBarcodeParticles", False) kwargs.setdefault("SimulateUndefinedBarcodeParticles", False)
kwargs.setdefault("Identifier", "FastCaloSim") kwargs.setdefault("Identifier", "FastCaloSim")
kwargs.setdefault("CaloCellsOutputName", flags.Sim.FastCalo.CaloCellsName + "PileUp") kwargs.setdefault("CaloCellsOutputName", flags.Sim.FastCalo.CaloCellsName + "PileUp")
kwargs.setdefault("PunchThroughTool", "ISF_PunchThroughTool") kwargs.setdefault("PunchThroughTool", acc.popToolsAndMerge(PunchThroughToolCfg(flags)))
kwargs.setdefault("DoPunchThroughSimulation", False) kwargs.setdefault("DoPunchThroughSimulation", False)
kwargs.setdefault("PUWeights_lar_bapre", flags.Sim.FastChain.PUWeights_lar_bapre) kwargs.setdefault("PUWeights_lar_bapre", flags.Sim.FastChain.PUWeights_lar_bapre)
kwargs.setdefault("PUWeights_lar_hec", flags.Sim.FastChain.PUWeights_lar_hec) kwargs.setdefault("PUWeights_lar_hec", flags.Sim.FastChain.PUWeights_lar_hec)
kwargs.setdefault("PUWeights_lar_em", flags.Sim.FastChain.PUWeights_lar_em) kwargs.setdefault("PUWeights_lar_em", flags.Sim.FastChain.PUWeights_lar_em)
kwargs.setdefault("PUWeights_tile", flags.Sim.FastChain.PUWeights_tile) kwargs.setdefault("PUWeights_tile", flags.Sim.FastChain.PUWeights_tile)
kwargs.setdefault("CaloCellMakerTools_setup", ["ISF_EmptyCellBuilderTool"]) kwargs.setdefault("CaloCellMakerTools_setup", [EmptyCellBuilderToolCfg(flags)])
kwargs.setdefault("CaloCellMakerTools_simulate", ["ISF_FastShowerCellBuilderTool"]) kwargs.setdefault("CaloCellMakerTools_simulate", [acc.popToolsAndMerge(FastShowerCellBuilderToolCfg(flags))])
kwargs.setdefault("CaloCellMakerTools_release", [#"ISF_AddNoiseCellBuilderTool", kwargs.setdefault("CaloCellMakerTools_release", [ # AddNoiseCellBuilderToolCfg(flags),
"ISF_CaloCellContainerFCSFinalizerTool", CaloCellContainerFCSFinalizerToolCfg(flags),
"ISF_FastHitConvertTool"]) acc.popToolsAndMerge(FastHitConvertToolCfg(flags))])
kwargs.setdefault("Extrapolator", "ISF_NITimedExtrapolator") kwargs.setdefault("Extrapolator", NITimedExtrapolatorCfg(flags))
# FIXME not migrated. Remove or replace # FIXME not migrated. Remove or replace
# register the FastCaloSim random number streams # register the FastCaloSim random number streams
#from G4AtlasApps.SimFlags import simFlags #from G4AtlasApps.SimFlags import simFlags
...@@ -73,15 +329,15 @@ def FastCaloSimPileupOTSvcCfg(flags, name="ISF_FastCaloSimPileupOTSvc", **kwargs ...@@ -73,15 +329,15 @@ def FastCaloSimPileupOTSvcCfg(flags, name="ISF_FastCaloSimPileupOTSvc", **kwargs
def FastCaloSimV2ParamSvcCfg(flags, name="ISF_FastCaloSimV2ParamSvc", **kwargs): def FastCaloSimV2ParamSvcCfg(flags, name="ISF_FastCaloSimV2ParamSvc", **kwargs):
acc = ComponentAccumulator() acc = ComponentAccumulator()
kwargs.setdefault("ParamsInputFilename", flags.Sim.FastCaloParamsInputFilename) kwargs.setdefault("ParamsInputFilename", flags.Sim.FastCalo.ParamsInputFilename)
kwargs.setdefault("ParamsInputObject", "SelPDGID") kwargs.setdefault("ParamsInputObject", "SelPDGID")
acc.addService(CompFactory.ISF.FastCaloSimV2ParamSvc(name, **kwargs)) acc.addService(CompFactory.ISF.FastCaloSimV2ParamSvc(name, **kwargs))
return acc return acc
def FastCaloSimSvcV2Cfg(flags, name="ISF_FastCaloSimSvcV2", **kwargs): def FastCaloSimV2SvcCfg(flags, name="ISF_FastCaloSimSvcV2", **kwargs):
acc = ComponentAccumulator() acc = ComponentAccumulator()
kwargs.setdefault("SimulatorTool", "ISF_FastCaloSimV2Tool") kwargs.setdefault("SimulatorTool", acc.popToolsAndMerge(FastCaloSimV2ToolCfg(flags)))
kwargs.setdefault("Identifier", "FastCaloSim") kwargs.setdefault("Identifier", "FastCaloSim")
acc.addService(CompFactory.ISF.LegacySimSvc(name, **kwargs)) acc.addService(CompFactory.ISF.LegacySimSvc(name, **kwargs))
return acc return acc
...@@ -89,12 +345,12 @@ def FastCaloSimSvcV2Cfg(flags, name="ISF_FastCaloSimSvcV2", **kwargs): ...@@ -89,12 +345,12 @@ def FastCaloSimSvcV2Cfg(flags, name="ISF_FastCaloSimSvcV2", **kwargs):
def DNNCaloSimSvcCfg(flags, name="ISF_DNNCaloSimSvc", **kwargs): def DNNCaloSimSvcCfg(flags, name="ISF_DNNCaloSimSvc", **kwargs):
acc = ComponentAccumulator() acc = ComponentAccumulator()
kwargs.setdefault("CaloCellsOutputName", flags.Sim.FastCaloCaloCellsName) kwargs.setdefault("CaloCellsOutputName", flags.Sim.FastCalo.CaloCellsName)
kwargs.setdefault("CaloCellMakerTools_setup", ["ISF_EmptyCellBuilderTool"]) kwargs.setdefault("CaloCellMakerTools_setup", [EmptyCellBuilderToolCfg(flags)])
kwargs.setdefault("CaloCellMakerTools_release", ["ISF_CaloCellContainerFinalizerTool", kwargs.setdefault("CaloCellMakerTools_release", [CaloCellContainerFinalizerToolCfg(flags),
"ISF_FastHitConvertTool"]) #DR needed ? acc.popToolsAndMerge(FastHitConvertToolCfg(flags))]) #DR needed ?
kwargs.setdefault("ParamsInputFilename", flags.Sim.FastCaloParamsInputFilename) kwargs.setdefault("ParamsInputFilename", flags.Sim.FastCalo.ParamsInputFilename)
kwargs.setdefault("FastCaloSimCaloExtrapolation", "FastCaloSimCaloExtrapolation") # tool TODO kwargs.setdefault("FastCaloSimCaloExtrapolation", FastCaloSimCaloExtrapolationCfg(flags))
# FIXME not migrated. Remove or replace # FIXME not migrated. Remove or replace
# register the FastCaloSim random number streams # register the FastCaloSim random number streams
......
#!/usr/bin/env python
"""Run tests for FastCaloSimServices configuration
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
"""
from AthenaCommon.Logging import log
from AthenaCommon.Constants import DEBUG
# log.setLevel(DEBUG)
from AthenaCommon.Configurable import Configurable
from AthenaConfiguration.AllConfigFlags import ConfigFlags
from AthenaConfiguration.MainServicesConfig import MainServicesCfg
from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
from AthenaPoolCnvSvc.PoolWriteConfig import PoolWriteCfg
from ISF_FastCaloSimServices.ISF_FastCaloSimServicesConfigNew import FastCaloSimV2ParamSvcCfg, FastCaloSimV2SvcCfg, DNNCaloSimSvcCfg, FastCaloSimPileupOTSvcCfg, FastCaloToolBaseCfg
# Set up new style config
Configurable.configurableRun3Behavior = True
# Configure
ConfigFlags.Input.Files = ['/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/SimCoreTests/valid1.410000.PowhegPythiaEvtGen_P2012_ttbar_hdamp172p5_nonallhad.evgen.EVNT.e4993.EVNT.08166201._000012.pool.root.1'] #defaultTestFiles.EVNT
ConfigFlags.Output.HITSFileName = "myHITSnew.pool.root"
ConfigFlags.Sim.CalibrationRun = "Off"
ConfigFlags.Sim.RecordStepInfo = False
ConfigFlags.Sim.CavernBG = "Signal"
ConfigFlags.Sim.ISFRun = True
ConfigFlags.Sim.BeamPipeSimMode = 'FastSim'
ConfigFlags.Sim.ReleaseGeoModel = False
ConfigFlags.GeoModel.AtlasVersion = 'ATLAS-R2-2015-03-01-00'
ConfigFlags.lock()
# Function tests
accAlg = FastCaloSimV2ParamSvcCfg(ConfigFlags)
accAlg.__init__()
accAlg = FastCaloSimV2SvcCfg(ConfigFlags)
accAlg.__init__()
accAlg = DNNCaloSimSvcCfg(ConfigFlags)
accAlg.__init__()
# # Construct our accumulator to run
# acc = MainServicesCfg(ConfigFlags)
# acc.merge(PoolReadCfg(ConfigFlags))
# acc.merge(PoolWriteCfg(ConfigFlags))
# # Dump config
# accAlg.addEventAlgo(CompFactory.JobOptsDumperAlg(FileName="FCS_TestConfig.txt"))
# accAlg.getService("StoreGateSvc").Dump = True
# accAlg.getService("ConditionStore").Dump = True
# accAlg.printConfig(withDetails=True, summariseProps = True)
# ConfigFlags.dump()
# # Execute and finish
# sc = accAlg.run(maxEvents=4)
# # Print and run
# f = open("test.pkl","wb")
# accAlg.store(f)
# f.close()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment