Add possiblity to use Geant4 transport instead of ATLAS tracking tools in FCS in G4
This MR adds the possibility to use the Geant4 transport instead of the ATLAS tracking tools required for transporting particles from the ID-Calo boundary through the calorimeter system for FastCaloSim. More specifically, it:
- adds a new tool
G4CaloTransportTool
that does the G4 transport - the tool relies on reading in a simplified calorimeter geometry which is read in G4AtlasAlg
- the simplified geometry is a GDML file located under
/cvmfs/atlas.cern.ch/repo/sw/database/GroupData/FastCaloSim/MC23/GeoFiles/v02/simplified_geo.gdml
(/eos/atlas/atlascerngroupdisk/asg-calib/FastCaloSim/MC23/
) - For now, the default behaviour will remain unchanged, but the calorimeter transport through the simplified geometry can be activated by simply providing the following preExec to the transform
--preExec AtlasG4Tf:flags.Sim.SimplifiedGeoPath=FastCaloSim/MC23/GeoFiles/v02/simplified_geo.gdml'
- the FastCaloSimCaloExtrapolation tool now also provides an interface to do the extrapolation without the transportation
Note: It was attempted to make the G4CaloTransportTool
thread safe by creating propagators for each unique thread with the ThreadLocalHolder. While this seems to work, there are still small MT vs. MT (ST) differences observed for 15 ttbar events. Nonetheless, it was discussed with @jchapman that this should go in first and then be discussed with the relevant Geant4 experts. Eventually, the tool should also become either part of the FastCaloSim standalone library or (ideally) directly part of Geant4.
To reproduce:
PATH_TO_SIMPLIFIED_GEO='FastCaloSim/MC23/GeoFiles/v02/simplified_geo.gdml'
export ATHENA_CORE_NUMBER=8
AtlasG4_tf.py \
--CA \
--multithreaded \
--randomSeed '10' \
--maxEvents '15' \
--skipEvents '0' \
--preInclude 'sim:Campaigns.MC21Simulation,SimuJobTransforms.FastCaloSim' \
--postInclude 'default:PyJobTransforms.UseFrontier' \
--inputEVNTFile "/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" \
--outputHITSFile="test.HITS.pool.root" \
--physicsList="FTFP_BERT_ATL" \
--conditionsTag "default:OFLCOND-MC21-SDR-RUN3-07" \
--geometryVersion="default:ATLAS-R3S-2021-03-00-00" \
--preExec AtlasG4Tf:flags.Sim.SimplifiedGeoPath=\'${PATH_TO_SIMPLIFIED_GEO}\' \
--imf False;
fyi @mumohdso