Punchthrough AF3 implementation in FastG4
Implement AF3 punch-through simulation as part of the FastGeant4 (G4VFastSimulation).
Added option to toggle it on or off via --postExec
e.g. with doPunchThrough=False
(default to True).
Two PublicToolHandle(s) introduced to FastCaloSim.cxx (main driver code inheriting G4VFastSimulationModel
):
- PunchThroughG4Tool (interfaced via IPunchThroughG4Tool)
- PunchThroughG4Classifier (interfaced via IPunchThroughG4Classifier)
Added LibXml2
and introduce ROOT
into Simulation/G4Atlas/G4AtlasTools/CMakeLists.txt
to parse the xml and ROOT config files. At the moment, the punchthrough probability is calculated from classifier using network lwtnn
file (in the future there is plan to convert and use ONNX file directly as well).
ISF_InterfacesLib
is needed to get ISF_Interfaces/IGeoIDSvc.h (defined as ISF::GeoIDSvc) as this is still using 'm_geoIDSvc->identifyNextGeoID(amg3DPosVec,amg3DMomVec)` to check whether the particles point towards AtlasDetDescr::fAtlasCalo.
Minimum reproducibility/transform:
asetup Athena,24.0.68
AtlasG4_tf.py --CA --multithreaded --randomSeed '10' --maxEvents '20' --skipEvents '0' --preInclude 'sim:Campaigns.MC23aSimulationMultipleIoV,SimuJobTransforms.FastCaloSim' --postInclude 'default:PyJobTransforms.UseFrontier' --preExec 'AtlasG4Tf:doPunchThrough=True' --postExec 'from AthenaCommon.Constants import INFO,VERBOSE,DEBUG;from AthenaCommon.Logging import log;log.setLevel(VERBOSE);sim:cfg.addEventAlgo(CompFactory.JobOptsDumperAlg(FileName="CAConfig.txt"))' --inputEVNTFile '/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/CampaignInputs/mc21/EVNT/mc21_13p6TeV.601229.PhPy8EG_A14_ttbar_hdamp258p75_SingleLep.evgen.EVNT.e8453/EVNT.29328277._003902.pool.root.1' --outputHITSFile='test.MT.HITS.pool.root' --physicsList='FTFP_BERT_ATL' --conditionsTag 'default:OFLCOND-MC23-SDR-RUN3-01' --geometryVersion='default:ATLAS-R3S-2021-03-02-00' --verbose --imf False;