ATLAS Offline Software
runTauOnly_EMPFlow.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 
3 # Simple script to run a
4 # Tau job
5 #
6 # Usefull for quick testing using EMPFlow jets for tau seeding
7 # run with
8 #
9 # athena --CA runTauOnly_EMPFlow.py
10 # or
11 # python runTauOnly_EMPFlow.py
12 
13 import sys
14 
15 def tauSpecialContent(flags,cfg):
16  from OutputStreamAthenaPool.OutputStreamConfig import outputStreamName
17  StreamAOD = cfg.getEventAlgo(outputStreamName("AOD"))
18  newList = [x for x in StreamAOD.ItemList if "Tau" in x]
19  StreamAOD.ItemList = newList
20 
21  StreamESD = cfg.getEventAlgo(outputStreamName("ESD"))
22  newList = [x for x in StreamESD.ItemList if "Tau" in x]
23  StreamESD.ItemList = newList
24 
25 def _run():
26  from AthenaConfiguration.AllConfigFlags import initConfigFlags
27  flags = initConfigFlags()
28  # input
29  from AthenaConfiguration.TestDefaults import defaultTestFiles
30  flags.Exec.MaxEvents = 20
31  flags.Input.Files = defaultTestFiles.RDO_RUN2
32  from AthenaConfiguration.Enums import ProductionStep
33  flags.Common.ProductionStep = ProductionStep.Reconstruction
34 
35  # output
36  flags.Output.ESDFileName = "myESD.pool.root"
37  flags.Output.AODFileName = "myAOD.pool.root"
38 
39  # uncomment given something like export ATHENA_CORE_NUMBER=2
40  # flags.Concurrency.NumThreads = 2
41 
42  # Setup detector flags
43  from AthenaConfiguration.DetectorConfigFlags import setupDetectorFlags
44  setupDetectorFlags(flags, None, use_metadata=True,
45  toggle_geometry=True, keep_beampipe=True)
46 
47  # Schedule Tau Reco
48  flags.Reco.EnableTrigger = False
49  flags.Reco.EnableCombinedMuon = True
50  flags.Reco.EnablePFlow = True
51  flags.Reco.EnableTau = True
52  flags.Reco.EnableJet = True
53  flags.Reco.EnableBTagging = False
54  flags.Reco.EnableCaloRinger = False
55  flags.Reco.PostProcessing.GeantTruthThinning = False
56  flags.Reco.PostProcessing.TRTAloneThinning = False
57  flags.Tau.TauRec.SeedJetCollection = "AntiKt4EMPFlowJets"
58  flags.lock()
59 
60  from RecJobTransforms.RecoSteering import RecoSteering
61  acc = RecoSteering(flags)
62 
63  # keep only tau containers
64  tauSpecialContent(flags,acc)
65 
66  # Special message service configuration
67  from DigitizationConfig.DigitizationSteering import DigitizationMessageSvcCfg
68  acc.merge(DigitizationMessageSvcCfg(flags))
69 
70  from AthenaConfiguration.Utils import setupLoggingLevels
71  setupLoggingLevels(flags, acc)
72 
73  # Print reco domain status
74  from RecJobTransforms.RecoConfigFlags import printRecoFlags
75  printRecoFlags(flags)
76 
77  # running
78  statusCode = acc.run()
79 
80  return statusCode
81 
82 
83 if __name__ == "__main__":
84  statusCode = None
85  statusCode = _run()
86  assert statusCode is not None, "Issue while running"
87  sys.exit(not statusCode.isSuccess())
88 
89 
AthenaPoolExample_WriteCond.outputStreamName
string outputStreamName
Definition: AthenaPoolExample_WriteCond.py:21
python.RecoSteering.RecoSteering
def RecoSteering(flags)
Definition: RecoSteering.py:6
python.RecoConfigFlags.printRecoFlags
def printRecoFlags(flags)
Definition: RecoConfigFlags.py:153
python.DigitizationSteering.DigitizationMessageSvcCfg
def DigitizationMessageSvcCfg(flags)
Definition: DigitizationSteering.py:217
python.Utils.setupLoggingLevels
def setupLoggingLevels(flags, ca)
Definition: Control/AthenaConfiguration/python/Utils.py:46
python.DetectorConfigFlags.setupDetectorFlags
def setupDetectorFlags(flags, custom_list=None, use_metadata=False, toggle_geometry=False, validate_only=False, keep_beampipe=False)
Definition: DetectorConfigFlags.py:286
runTauOnly_EMPFlow.tauSpecialContent
def tauSpecialContent(flags, cfg)
Definition: runTauOnly_EMPFlow.py:15
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
runTauOnly_EMPFlow._run
def _run()
Definition: runTauOnly_EMPFlow.py:25