ATLAS Offline Software
Loading...
Searching...
No Matches
TileDigitizationConfig.py
Go to the documentation of this file.
1"""Combined Tile Digitization functions
2
3# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
4"""
5from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
6from AthenaConfiguration.Enums import ProductionStep
7from AthenaConfiguration.Enums import LHCPeriod
8from AthenaConfiguration.Enums import BeamType
9from TileConfiguration.TileConfigFlags import TileRunType
10
12 """Return ComponentAccumulator with standard Tile Trigger Digitization configuration"""
13
14 if flags.Beam.Type is BeamType.TestBeam:
15 return ComponentAccumulator()
16
17 from TileSimAlgs.TileHitToTTL1Config import TileHitToTTL1OutputCfg
18 acc = TileHitToTTL1OutputCfg(flags)
19
20 if flags.GeoModel.Run > LHCPeriod.Run1:
21 from TileSimAlgs.TileMuonReceiverConfig import TilePulseForTileMuonReceiverOutputCfg
22 acc.merge( TilePulseForTileMuonReceiverOutputCfg(flags) )
23
24 from TileSimAlgs.TileMuonReceiverDecisionConfig import TileMuonReceiverDecisionOutputCfg
25 acc.merge( TileMuonReceiverDecisionOutputCfg(flags) )
26
27 from TileL2Algs.TileL2Config import TileRawChannelToL2OutputCfg
28 acc.merge( TileRawChannelToL2OutputCfg(flags, streamName = 'RDO') )
29
30 return acc
31
32
34 """Return ComponentAccumulator with Overlay Tile Trigger Digitization configuration"""
35 acc = ComponentAccumulator()
36
37 if flags.GeoModel.Run > LHCPeriod.Run1:
38 from TileSimAlgs.TileMuonReceiverConfig import TilePulseForTileMuonReceiverOutputCfg
39 acc.merge( TilePulseForTileMuonReceiverOutputCfg(flags) )
40
41 from TileSimAlgs.TileMuonReceiverDecisionConfig import TileMuonReceiverDecisionOutputCfg
42 acc.merge( TileMuonReceiverDecisionOutputCfg(flags) )
43
44 from TileL2Algs.TileL2Config import TileRawChannelToL2OutputCfg
45 acc.merge( TileRawChannelToL2OutputCfg(flags, streamName = 'RDO') )
46
47 return acc
48
49
51 """Return ComponentAccumulator with standard Tile Digitization configuration"""
52
53 from TileSimAlgs.TileDigitsMakerConfig import TileDigitsMakerOutputCfg
54 acc = TileDigitsMakerOutputCfg(flags)
55
56 if flags.Common.ProductionStep != ProductionStep.PileUpPresampling and flags.Output.doWriteRDO:
57 from TileRecUtils.TileRawChannelMakerConfig import TileRawChannelMakerOutputCfg
58 acc.merge( TileRawChannelMakerOutputCfg(flags, streamName = 'RDO') )
59 else:
60 from TileRecUtils.TileRawChannelMakerConfig import TileRawChannelMakerCfg
61 acc.merge( TileRawChannelMakerCfg(flags) )
62
63 if flags.Digitization.EnableCaloHSTruthRecoInputs:
64 if flags.Output.doWriteRDO:
65 from TileRecUtils.TileRawChannelMakerConfig import TileRawChannelMakerDigiHSTruthOutputCfg
66 acc.merge( TileRawChannelMakerDigiHSTruthOutputCfg(flags, streamName = 'RDO') )
67 else:
68 from TileRecUtils.TileRawChannelMakerConfig import TileRawChannelMakerDigiHSTruthCfg
69 acc.merge( TileRawChannelMakerDigiHSTruthCfg(flags) )
70
71 return acc
72
73
74
75if __name__ == "__main__":
76
77 from AthenaConfiguration.AllConfigFlags import initConfigFlags
78 from AthenaConfiguration.TestDefaults import defaultConditionsTags, defaultTestFiles
79 from AthenaCommon.Logging import log
80 from AthenaCommon.Constants import DEBUG
81
82 # Test setup
83 log.setLevel(DEBUG)
84
85 flags = initConfigFlags()
86 flags.Input.Files = defaultTestFiles.HITS_RUN2
87 flags.Tile.RunType = TileRunType.PHY
88 flags.Output.RDOFileName = 'myRDO-TileDigitization.pool.root'
89 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN2_MC
90 flags.Digitization.PileUp = False
91
92 flags.fillFromArgs()
93
94 flags.lock()
95 flags.dump()
96
97 # Construct our accumulator to run
98 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
99 acc = MainServicesCfg(flags)
100
101 from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
102 acc.merge(PoolReadCfg(flags))
103
104 if 'EventInfo' not in flags.Input.Collections:
105 from xAODEventInfoCnv.xAODEventInfoCnvConfig import EventInfoCnvAlgCfg
106 acc.merge(EventInfoCnvAlgCfg(flags,
107 inputKey='McEventInfo',
108 outputKey='EventInfo'))
109
110 acc.merge( TileDigitizationCfg(flags) )
111 acc.merge( TileTriggerDigitizationCfg(flags) )
112
113 acc.printConfig(withDetails = True, summariseProps = True)
114 acc.store( open('TileDigitization.pkl','wb') )
115
116 sc = acc.run(maxEvents=3)
117 # Success should be 0
118 import sys
119 sys.exit(not sc.isSuccess())