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