ATLAS Offline Software
Loading...
Searching...
No Matches
runTauOnly_EMPFlowML.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
13import sys
14
15def 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
25def _run():
26 from AthenaConfiguration.AllConfigFlags import initConfigFlags
27 flags = initConfigFlags()
28 # input
29 from AthenaConfiguration.TestDefaults import defaultTestFiles, defaultConditionsTags
30 flags.Exec.MaxEvents = 20
31 flags.Input.Files = defaultTestFiles.RDO_RUN3
32 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN3_MC
33 from AthenaConfiguration.Enums import ProductionStep
34 flags.Common.ProductionStep = ProductionStep.Reconstruction
35
36 # output
37 flags.Output.ESDFileName = "myESD.pool.root"
38 flags.Output.AODFileName = "myAOD.pool.root"
39
40 # uncomment given something like export ATHENA_CORE_NUMBER=2
41 # flags.Concurrency.NumThreads = 2
42
43 # Setup detector flags
44 from AthenaConfiguration.DetectorConfigFlags import setupDetectorFlags
45 setupDetectorFlags(flags, None, use_metadata=True,
46 toggle_geometry=True, keep_beampipe=True)
47
48 # Schedule Tau Reco
49 from tauRec.ConfigurationHelpers import StandaloneTauRecoFlags
50 StandaloneTauRecoFlags(flags)
51 flags.Tau.TauRec.SeedJetCollection = "AntiKt4EMPFlowMLJets"
52 flags.Tau.doTauEleRMRec = False
53
54 flags.lock()
55
56 from RecJobTransforms.RecoSteering import RecoSteering
57 acc = RecoSteering(flags)
58
59 # keep only tau containers
60 tauSpecialContent(flags,acc)
61
62 # Special message service configuration
63 from DigitizationConfig.DigitizationSteering import DigitizationMessageSvcCfg
64 acc.merge(DigitizationMessageSvcCfg(flags))
65
66 from AthenaConfiguration.Utils import setupLoggingLevels
67 setupLoggingLevels(flags, acc)
68
69 # Print reco domain status
70 from RecJobTransforms.RecoConfigFlags import printRecoFlags
71 printRecoFlags(flags)
72
73 # running
74 statusCode = acc.run()
75
76 return statusCode
77
78
79if __name__ == "__main__":
80 statusCode = None
81 statusCode = _run()
82 assert statusCode is not None, "Issue while running"
83 sys.exit(not statusCode.isSuccess())
84
85