ATLAS Offline Software
Loading...
Searching...
No Matches
HIRecConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaCommon.Logging import logging
5__log = logging.getLogger('HIRecConfig')
6
7
8def HIRecCfg(flags):
9 '''Configures entire HI reconstruction'''
10 acc = ComponentAccumulator()
11
12
13 if flags.HeavyIon.doGlobal:
14 from HIGlobal.HIGlobalConfig import HIGlobalRecCfg
15 acc.merge(HIGlobalRecCfg(flags))
16
17 if flags.HeavyIon.doJet:
18 from HIJetRec.HIJetRecConfigCA import HIJetRecCfg
19 acc.merge(HIJetRecCfg(flags))
20 if flags.Input.isMC or flags.Overlay.DataOverlay:
21 from JetRecConfig.JetRecConfig import JetRecCfg
22 from JetRecConfig.JetRecoSteering import addJetsToOutputCfg
23 from JetRecConfig.StandardSmallRJets import AntiKt4Truth, AntiKt2Truth
24 jetdefs = [AntiKt4Truth,AntiKt2Truth]
25 for jd in jetdefs:
26 acc.merge(JetRecCfg(flags, jd))
27 acc.merge(addJetsToOutputCfg(flags, jetdefs, toAOD=True, toESD=False))
28
29 if flags.HeavyIon.Egamma.doSubtractedClusters:
30 from HIJetRec.HIEgammaRecConfigCA import (
31 HIEgammaRecCfg)
32 acc.merge(HIEgammaRecCfg(flags))
33
34 return acc
35
36
37
38if __name__ == "__main__":
39 from AthenaConfiguration.AllConfigFlags import initConfigFlags
40 from AthenaConfiguration.TestDefaults import defaultTestFiles, defaultGeometryTags
41 flags = initConfigFlags()
42
43# testing for Run 2:
44 # flags.Input.Files = [defaultTestFiles.d + "/RecJobTransformTests/data18_hi.00367384.physics_HardProbes.daq.RAW._lb0145._SFO-8._0001.data"]
45 # flags.IOVDb.GlobalTag = "CONDBR2-BLKPA-RUN2-09"
46 # flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
47
48# testing for Run 3:
49 flags.Input.Files = [defaultTestFiles.d + "/RecJobTransformTests/data22_hi/RAWFiles/data22_hi.00440101.physics_MinBias.daq.RAW/data22_hi.00440101.physics_MinBias.daq.RAW._lb0214._SFO-11._0001.data"]
50 flags.IOVDb.GlobalTag = "CONDBR2-BLKPA-2022-09"
51 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN3
52
53# set more flags:
54 flags.Exec.MaxEvents=5
55 flags.Exec.SkipEvents=0
56 flags.Concurrency.NumThreads=1
57 flags.Output.doWriteAOD = True
58 flags.Output.AODFileName = "myAOD.pool.root"
59 flags.Output.doWriteESD = True
60 flags.Output.ESDFileName = "myESD.pool.root"
61
62 flags.Trigger.triggerConfig = "DB"
63
64 from HIRecConfig.HIModeFlags import HImode
65 HImode(flags)
66
67# enables unit tests to switch only parts of reco such as (note the absence of spaces around equal signs):
68
69 flags.fillFromArgs()
70
71 flags.lock()
72
73
74 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
75 acc = MainServicesCfg(flags)
76
77 from ByteStreamCnvSvc.ByteStreamConfig import ByteStreamReadCfg
78 acc.merge(ByteStreamReadCfg(flags))
79 if flags.Reco.EnableBeamSpotDecoration:
80 from xAODEventInfoCnv.xAODEventInfoCnvConfig import EventInfoBeamSpotDecoratorAlgCfg
81 acc.merge(EventInfoBeamSpotDecoratorAlgCfg(flags))
82 if flags.HeavyIon.redoTracking:
83 from InDetConfig.TrackRecoConfig import InDetTrackRecoCfg
84 acc.merge(InDetTrackRecoCfg(flags))
85 if flags.HeavyIon.redoEgamma:
86 from egammaConfig.egammaSteeringConfig import EGammaSteeringCfg
87 acc.merge(EGammaSteeringCfg(flags))
88
89
90
91 from JetRecConfig.JetRecConfig import JetRecCfg
92 from JetRecConfig.StandardSmallRJets import AntiKt4EMTopo
93 EMjet = AntiKt4EMTopo.clone()
94 EMjet.ghostdefs = ["Track"]
95 acc.merge(JetRecCfg(flags,EMjet))
96
97 acc.merge(HIRecCfg(flags))
98
99
100 from AthenaPoolCnvSvc.PoolWriteConfig import PoolWriteCfg
101 acc.merge(PoolWriteCfg(flags))
102
103# debug output level can be switched for particular algorithms:
104 # from AthenaCommon.Constants import DEBUG
105 # acc.foreach_component("*HISubtractedCellMakerTool*").OutputLevel=DEBUG
106 # acc.foreach_component("*HICellCopyTool*").OutputLevel=DEBUG
107
108 acc.printConfig(withDetails=True, summariseProps=True)
109
110 flags.dump()
111
112
113 import sys
114 sys.exit(acc.run().isFailure())