Let’s assume we want to look into (not necessarily rerun!) the reconstruction transform used for a particular sample. This is a good way to become more familiarized, as you can use GetTfCommand.py
to get the transform used from its AMI tags. Depending on the sample, it will have a series of tags at the end of the sample name, defined by a letter and a four-digit number, like so:
The one we’re concerned about, of course, is the reconstruction tag, denoted with an rXXXX
. All datasets in ATLAS are described using these tags, and you can search, browse, and compare samples with either pyAMI or the web-based AMI browser. If you haven’t already, set up Athena
asetup Athena 22.0.40
Then we want to get the AMI tag for this particular sample, so do
GetTfCommand.py --AMI r8905
This will give you all of the necessary information – you should now have an output that looks like this:
Here, asetup AtlasOffline,21.0.11
shows which release was used to produce the sample, and
Input file arguments:
--inputLowPtMinbiasHitsFile 'myLowPtMinbiasHits' --inputHighPtMinbiasHitsFile 'myHighPtMinbiasHits'
shows extra input files that are/were needed to run this transform – here for digitization and to specify the minimum bias events for pileup overlay. The main part we are concerned about though, is
Reco_tf.py --digiSteeringConf 'StandardInTimeOnlyTruth' --conditionsTag 'default:OFLCOND-MC16-SDR-13' --pileupFinalBunch '6' --numberOfHighPtMinBias '0.312197744' --autoConfiguration 'everything' --numberOfLowPtMinBias '59.68780226' --steering 'doRDO_TRIG' --preInclude 'HITtoRDO:Digitization/ForceUseOfPileUpTools.py,SimulationJobOptions/preInclude.PileUpBunchTrainsMC15_2015_25ns_Config1.py,RunDependentSimData/configLumi_user.py' 'RDOtoRDOTrigger:RecExPers/RecoOutputMetadataList_jobOptions.py' --postExec 'all:CfgMgr.MessageSvc().setError+=["HepMcParticleLink"]' 'ESDtoAOD:fixedAttrib=[s if "CONTAINER_SPLITLEVEL = \\'99\\'" not in s else "" for s in svcMgr.AthenaPoolCnvSvc.PoolAttributes];svcMgr.AthenaPoolCnvSvc.PoolAttributes=fixedAttrib;xAODMaker__xAODTruthCnvAlg("GEN_AOD2xAOD",WriteInTimePileUpTruth=True)' 'RAWtoESD:xAODMaker__xAODTruthCnvAlg("GEN_AOD2xAOD",WriteInTimePileUpTruth=True)' 'ESDtoDPD:xAODMaker__xAODTruthCnvAlg("GEN_AOD2xAOD",WriteInTimePileUpTruth=True)' --postInclude 'default:PyJobTransforms/UseFrontier.py' --preExec 'all:rec.Commissioning.set_Value_and_Lock(True);from AthenaCommon.BeamFlags import jobproperties;jobproperties.Beam.numberOfCollisions.set_Value_and_Lock(20.0);from LArROD.LArRODFlags import larRODFlags;larRODFlags.NumberOfCollisions.set_Value_and_Lock(20);larRODFlags.nSamples.set_Value_and_Lock(4);larRODFlags.doOFCPileupOptimization.set_Value_and_Lock(True);larRODFlags.firstSample.set_Value_and_Lock(0);larRODFlags.useHighestGainAutoCorr.set_Value_and_Lock(True)' 'ESDtoAOD:TriggerFlags.AODEDMSet="AODFULL"' 'HITtoRDO:userRunLumiOverride={"run":284500, "lb":1, "starttstamp":1445203790, "mu":60.0}' --triggerConfig 'RDOtoRDOTrigger=MCRECO:DBF:TRIGGERDBMC:2094,36,102' --geometryVersion 'default:ATLAS-R2-2016-00-01-00' --numberOfCavernBkg '0'
This is the command to run Reco_tf.py for this particular sample– it’s a dizzying number of arguments! But don’t get intimidated – in the following section we’ll learn how to “decode” these instructions.