How to run FATRAS, Digitization and Truth Tracking with a custom geometry
This twiki has been written to run FATRAS, FastDigitization and truth-seeded reconstruction using a general custom geometry.
Getting started
Setup 20.20.X-VAL:
Use latest stable release (replace rel_X with the correct release) from:
http://atlas-nightlies-browser.cern.ch/~platinum/nightlies/info?tp=g&nightly=20.20.X-VAL
asetup 20.20.X-VAL,rel_X,slc6,gcc48,opt,here,runtime
Building geometry
How to implement fast definitions of realistic detector layouts in the ATLAS TrackingGeometry is described here:
https://twiki.cern.ch/twiki/bin/view/Sandbox/CustomGeometryImplementationGuide
Running FATRAS
Once you have defined your geometry in the XML package you have to edit the jobOption (in the ISF_FatrasDetDescrAlpine package) that has to be pre-icluded when you run FATRAS.
Just check the ISF_FatrasDetDescrAlpine package out:
pkgco.py ISF_FatrasDetDescrAlpine
and edit the file
share/CustomGeometrySettings_preInclude.pyHere you have to define the layout you want to use and all its specification in order to build it correctly. The reference layout is ATLAS Run2 geometry.
If you want to run FATRAS, you must have an EVNT input file you want to process. In case you don't have it, I have one file available for you (single muons, pT = 100 GeV) ;-).
Add another pre-include jobOption in your area with the remaining specifications. It should contain at least these lines (You can name it
Sim_pre_jo.py
):
from AthenaCommon.DetFlags import DetFlags
DetFlags.ID_setOn()
DetFlags.TRT_setOff()
DetFlags.Calo_setOff()
DetFlags.Muon_setOff()
from TrkDetDescrSvc.TrkDetDescrJobProperties import TrkDetFlags
TrkDetFlags.MaterialSource = 'Input'
from AthenaCommon.AppMgr import ServiceMgr
ServiceMgr.MessageSvc.Format = "% F%50W%S%7W%R%T %0W%M"
# the magnetic field
from MagFieldServices import SetupField
from IOVDbSvc.CondDB import conddb
conddb.addOverride('/GLOBAL/BField/Map','BFieldMap-FullAsym-09-solTil')
You can also add a post-include jobOption to add VP1 (You can name it
Sim_post_jo.py
):
from VP1Algs.VP1AlgsConf import VP1Alg
topSequence += VP1Alg()
NB: To load correctly VP1 libraries you need to export the GL libraries first:
export LD_PRELOAD=/usr/lib64/libGL.so
Then run FATRAS:
Sim_tf.py --simulator 'Fatras_newExtrapolation_IDOnly' --randomSeed 0 --enableLooperKiller True --maxEvents 10 --skipEvents 0 --geometryVersion ATLAS-PX-ITK-00-00-00_VALIDATION --conditionsTag OFLCOND-SIM-00-00-00 --inputEVNTFile /afs/cern.ch/user/n/ncalace/public/EVNT.06603958._000029.pool.root.1 --outputHITSFile "Hits.pool.root" --preInclude "Simulation/ISF/ISF_Fatras/ISF_FatrasDetDescrAlpine/share/CustomGeometrySettings_preInclude.py,Sim_pre_jo.py" --postInclude "Sim_post_jo.py"
or
Sim_tf.py --simulator 'Fatras_newExtrapolation_IDOnly' --randomSeed 0 --enableLooperKiller True \
--maxEvents 10 --skipEvents 0 --geometryVersion ATLAS-PX-ITK-00-00-00_VALIDATION --conditionsTag OFLCOND-SIM-00-00-00 \
--inputEVNTFile /afs/cern.ch/user/n/ncalace/public/EVNT.06603958._000029.pool.root.1 --outputHITSFile "Hits.pool.root"\
--preInclude "Simulation/ISF/ISF_Fatras/ISF_FatrasDetDescrAlpine/share/CustomGeometrySettings_preInclude.py,Sim_pre_jo.py" \
--postInclude "Sim_post_jo.py"
Very Fast Digitization module and truth-seeded reconstruction
In order to run the very fast digitization module, you have to check out the FastSiDigitization package and compile it.
The jobOptions used to run are in the share folder of this package. In particular, you can use two jobOptions:
-
share/SiSmearing_noPU.py
--> To run digitization and produce clusters (for both Pixel and SCT).
-
share/SiSmearing_noPU_CompletedjO.py
--> To run digitization and truth-tracking in one step.
The commands are:
athena Simulation/ISF/ISF_Fatras/ISF_FatrasDetDescrAlpine/share/CustomGeometrySettings_preInclude.py InnerDetector/InDetDigitization/FastSiDigitization/share/SiSmearing_noPU.py
or
athena Simulation/ISF/ISF_Fatras/ISF_FatrasDetDescrAlpine/share/CustomGeometrySettings_preInclude.py InnerDetector/InDetDigitization/FastSiDigitization/share/SiSmearing_noPU.py
The truth-seeded reconstruction is configured to used the
Trk::KalmanFitter
with the
Trk::ExtrapolationEngine.
-- Main.NoemiCalace - 2015-07-01