ATLAS Offline Software
TrigT1CaloSimRun2Config.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 from TrigT1CaloSim.TrigT1CaloSimConf import LVL1__Run2TriggerTowerMaker
4 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
5 from AthenaConfiguration.ComponentFactory import CompFactory
6 from AthenaConfiguration.Enums import Format
7 
8 class Run2TriggerTowerMakerBase (LVL1__Run2TriggerTowerMaker):
9  __slots__ = []
10  def __init__(self, name):
11  super( Run2TriggerTowerMakerBase, self ).__init__( name )
12  self.DigiEngine = "%s_Digitization"%name
13 
15  """ Baseline Run2 TriggerTower configuration:
16  - with pedestal correction
17  - noise cuts
18  """
19  __slots__ = []
20  def __init__(self, name):
21  super(Run2TriggerTowerMaker, self).__init__(name)
22  self.CellType = 3 # TTL1 input
23  self.ZeroSuppress = True
24 
25  from SGComps.AddressRemappingSvc import addInputRename
26  addInputRename ( 'xAOD::TriggerTowerContainer', 'xAODTriggerTowers_rerun', 'xAODTriggerTowers')
27 
29  """ Run2 TriggerTower configuration for 25ns running """
30  __slots__ = []
31  def __init__(self, name = "Run2TriggerTowerMaker"):
32  super(Run2TriggerTowerMaker25ns, self).__init__(name)
33 
35  """ Run2 TriggerTower configuration for 50ns running """
36  __slots__ = []
37  def __init__(self, name = "Run2TriggerTowerMaker"):
38  super(Run2TriggerTowerMaker50ns, self).__init__(name)
39 
40 
42  L1CaloFolders = {}
43  L1CaloFolders['PprChanCalib'] = '/TRIGGER/L1Calo/V2/Calibration/Physics/PprChanCalib'
44  L1CaloFolders['PprChanDefaults'] = '/TRIGGER/L1Calo/V2/Configuration/PprChanDefaults'
45  # Different folders for data and MC
46  ver = 'V2' if flags.Input.isMC else 'V1'
47  L1CaloFolders['DisabledTowers'] = f'/TRIGGER/L1Calo/{ver}/Conditions/DisabledTowers'
48  L1CaloFolders['PpmDeadChannels'] = f'/TRIGGER/L1Calo/{ver}/Calibration/PpmDeadChannels'
49 
50  # TODO decide what is needed form below items, (likely only needed when re-running on the data)
51  #L1CaloFolderList += ['/TRIGGER/L1Calo/V1/Conditions/RunParameters']
52  #L1CaloFolderList += ['/TRIGGER/L1Calo/V1/Conditions/DerivedRunPars']
53  #L1CaloFolderList += ['/TRIGGER/Receivers/Conditions/VgaDac']
54  #L1CaloFolderList += ['/TRIGGER/Receivers/Conditions/Strategy']
55 
56  from IOVDbSvc.IOVDbSvcConfig import addFolders
57  db = 'TRIGGER_ONL' if not flags.Input.isMC else 'TRIGGER_OFL'
58  return addFolders(flags, list(L1CaloFolders.values()), db), L1CaloFolders
59 
60 
61 def Run2TriggerTowerMakerCfg(flags, name='Run2TriggerTowerMaker25ns'):
62  '''
63  Basic setup of tower maker cfg for new JO
64  WARNING: need to add dependencies on digi flags (as above) that are missing as of now
65  '''
66 
67  acc = ComponentAccumulator()
68  # TODO this is only needed when re-running
69  # from SGComps.AddressRemappingConfig import InputRenameCfg
70  # acc.merge(InputRenameCfg('xAOD::TriggerTowerContainer', 'xAODTriggerTowers_rerun', 'xAODTriggerTowers'))
71 
72  # Configure conditions used by R2TTMaker
73  from CaloConditions.CaloConditionsConfig import CaloTTIdMapCfg
74  from TileConditions.TileInfoLoaderConfig import TileInfoLoaderCfg
75  acc.merge(CaloTTIdMapCfg(flags))
76  acc.merge(TileInfoLoaderCfg(flags))
77  condFoldersAcc, condFolders = L1CaloCondFoldersCfg(flags)
78  acc.merge(condFoldersAcc)
79 
80  # R2TTMaker reads TTL1 containers from input POOL file (RDO, ESD, ...)
81  if flags.Input.Format is Format.POOL:
82  ttl1Containers = [
83  ('LArTTL1Container', 'LArTTL1EM'),
84  ('LArTTL1Container', 'LArTTL1HAD'),
85  ('TileTTL1Container', 'TileTTL1Cnt'),
86  ]
87  from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
88  acc.merge(SGInputLoaderCfg(flags, Load=ttl1Containers))
89 
90  # R2TTMaker reads L1Menu in BeginRun incident, so needs L1ConfigSvc
91  from TrigConfigSvc.TrigConfigSvcCfg import L1ConfigSvcCfg
92  acc.merge(L1ConfigSvcCfg(flags))
93 
94  # R2TTMaker needs the mu information available as EventInfo decoration
95  from LumiBlockComps.LumiBlockMuWriterConfig import LumiBlockMuWriterCfg
96  acc.merge(LumiBlockMuWriterCfg(flags))
97 
98  alg = CompFactory.LVL1.Run2TriggerTowerMaker(name,
99  DigiEngine = "{}_Digitization".format(name),
100  # TODO make these settings flags dependent
101  CellType = 3,
102  inputTTLocation = 'unused',
103  TriggerTowerLocationRerun = 'also_unused',
104  ZeroSuppress = True,
105  ChanCalibFolderKey = condFolders['PprChanCalib'],
106  ChanDefaultsFolderKey = condFolders['PprChanDefaults'],
107  DisabledTowersFolderKey = condFolders['DisabledTowers'],
108  DeadChannelsFolderKey = condFolders['PpmDeadChannels'],
109  #ExtraInputs = {'LArTTL1Container#LArTTL1EM', 'LArTTL1Container#LArTTL1HAD', 'TileTTL1Container#TileTTL1Cnt'}
110  )
111  acc.addEventAlgo(alg)
112 
113  return acc
114 
115 
116 
118  '''
119  Configures Legacy 1 calo in new JO style
120  '''
121  acc = ComponentAccumulator()
122  from AtlasGeoModel.GeoModelConfig import GeoModelCfg
123  acc.merge (GeoModelCfg (flags))
124 
125  from CaloConditions.CaloConditionsConfig import CaloTriggerTowerCfg,LArTTCellMapCfg,CaloTTIdMapCfg
126  acc.merge(CaloTriggerTowerCfg(flags))
127  acc.merge(LArTTCellMapCfg(flags))
128  acc.merge(CaloTTIdMapCfg(flags))
129 
130  from LArGeoAlgsNV.LArGMConfig import LArGMCfg
131  from TileGeoModel.TileGMConfig import TileGMCfg
132 
133  acc.merge(LArGMCfg(flags))
134  acc.merge(TileGMCfg(flags))
135 
136  # necessary conditions
137  from LArBadChannelTool.LArBadChannelConfig import LArBadChannelCfg, LArBadFebCfg
138  acc.merge(LArBadChannelCfg(flags))
139  acc.merge(LArBadFebCfg(flags))
140 
141  from TileConditions.TileInfoLoaderConfig import TileInfoLoaderCfg
142  acc.merge(TileInfoLoaderCfg(flags))
143 
144  from TileGeoModel.TileGMConfig import TileGMCfg
145  acc.merge(TileGMCfg(flags))
146 
147  from TileConditions.TileEMScaleConfig import TileEMScaleCondAlgCfg
148  acc.merge( TileEMScaleCondAlgCfg(flags) )
149 
150  from TrigConfigSvc.TrigConfigSvcCfg import L1ConfigSvcCfg
151  acc.merge(L1ConfigSvcCfg(flags))
152 
153  if not flags.Input.isMC:
154  from TrigT1CaloByteStream.LVL1CaloRun2ByteStreamConfig import LVL1CaloRun2ReadBSCfg
155  acc.merge(LVL1CaloRun2ReadBSCfg(flags))
156 
157  if flags.Input.isMC:
158  acc.merge(Run2TriggerTowerMakerCfg(flags))
159  acc.addEventAlgo(CompFactory.LVL1.Run2CPMTowerMaker('CPMTowerMaker'))
160  acc.addEventAlgo(CompFactory.LVL1.Run2JetElementMaker('JetElementMaker'))
161 
162  acc.addEventAlgo(CompFactory.LVL1.CPMSim('CPMSim'))
163  acc.addEventAlgo(CompFactory.LVL1.JEMJetSim('JEMJetSim'))
164  acc.addEventAlgo(CompFactory.LVL1.JEMEnergySim('JEMEnergySim'))
165  acc.addEventAlgo(CompFactory.LVL1.CPCMX('CPCMX'))
166  acc.addEventAlgo(CompFactory.LVL1.JetCMX('JetCMX'))
167  acc.addEventAlgo(CompFactory.LVL1.EnergyCMX('EnergyCMX'))
168  acc.addEventAlgo(CompFactory.LVL1.RoIROD('RoIROD'))
169  if flags.Input.isMC:
170  acc.addEventAlgo(CompFactory.LVL1.TrigT1MBTS())
171  return acc
172 
173 if __name__ == '__main__':
174  import sys
175 
176  from AthenaConfiguration.MainServicesConfig import MainServicesCfg
177  from AthenaConfiguration.AllConfigFlags import initConfigFlags
178 
179  flags = initConfigFlags()
180  flags.Input.Files = ['/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TriggerTest/valid1.410000.PowhegPythiaEvtGen_P2012_ttbar_hdamp172p5_nonallhad.merge.RDO.e4993_s3214_r11315/RDO.17533168._000001.pool.root.1']
181  flags.Common.isOnline=False
182  flags.Exec.MaxEvents=25
183  flags.Concurrency.NumThreads = 1
184  flags.Concurrency.NumConcurrentEvents=1
185  flags.fillFromArgs()
186  flags.lock()
187 
188  acc = MainServicesCfg(flags)
189  from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
190  acc.merge(PoolReadCfg(flags))
191 
192  from TrigConfigSvc.TrigConfigSvcCfg import generateL1Menu
193  generateL1Menu(flags)
194 
195  from AthenaCommon.CFElements import seqAND
196  acc.addSequence(seqAND('L1CaloLegacySimSeq'), parentName='AthAlgSeq')
197  acc.merge(L1CaloLegacySimCfg(flags), sequenceName='L1CaloLegacySimSeq')
198 
199  acc.printConfig(withDetails=True, summariseProps=True, printDefaults=True)
200  with open("L1CaloSim.pkl", "wb") as p:
201  acc.store(p)
202  p.close()
203 
204  sys.exit(acc.run().isFailure())
python.CaloConditionsConfig.CaloTriggerTowerCfg
def CaloTriggerTowerCfg(flags)
Definition: CaloConditionsConfig.py:8
TrigT1CaloSimRun2Config.Run2TriggerTowerMaker50ns.__init__
def __init__(self, name="Run2TriggerTowerMaker")
Definition: TrigT1CaloSimRun2Config.py:37
TrigT1CaloSimRun2Config.L1CaloCondFoldersCfg
def L1CaloCondFoldersCfg(flags)
Definition: TrigT1CaloSimRun2Config.py:41
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
vtune_athena.format
format
Definition: vtune_athena.py:14
TrigT1CaloSimRun2Config.Run2TriggerTowerMaker.ZeroSuppress
ZeroSuppress
Definition: TrigT1CaloSimRun2Config.py:23
TrigT1CaloSimRun2Config.Run2TriggerTowerMaker25ns.__init__
def __init__(self, name="Run2TriggerTowerMaker")
Definition: TrigT1CaloSimRun2Config.py:31
python.TrigConfigSvcCfg.generateL1Menu
def generateL1Menu(flags)
Definition: TrigConfigSvcCfg.py:184
python.LArBadChannelConfig.LArBadChannelCfg
def LArBadChannelCfg(configFlags, tag=None, isSC=False)
Definition: LArBadChannelConfig.py:8
LVL1CaloRun2ByteStreamConfig.LVL1CaloRun2ReadBSCfg
def LVL1CaloRun2ReadBSCfg(flags, forRoIBResultToxAOD=False)
Definition: LVL1CaloRun2ByteStreamConfig.py:121
TrigT1CaloSimRun2Config.Run2TriggerTowerMaker25ns
Definition: TrigT1CaloSimRun2Config.py:28
TrigT1CaloSimRun2Config.Run2TriggerTowerMaker.__init__
def __init__(self, name)
Definition: TrigT1CaloSimRun2Config.py:20
python.LumiBlockMuWriterConfig.LumiBlockMuWriterCfg
def LumiBlockMuWriterCfg(flags, name='LumiBlockMuWriter', seqName="AthAlgSeq")
Definition: LumiBlockMuWriterConfig.py:14
TrigT1CaloSimRun2Config.Run2TriggerTowerMakerBase.__init__
def __init__(self, name)
Definition: TrigT1CaloSimRun2Config.py:10
python.TileInfoLoaderConfig.TileInfoLoaderCfg
def TileInfoLoaderCfg(flags, **kwargs)
Definition: TileInfoLoaderConfig.py:12
python.LArBadChannelConfig.LArBadFebCfg
def LArBadFebCfg(configFlags, tag=None)
Definition: LArBadChannelConfig.py:45
python.CFElements.seqAND
def seqAND(name, subs=[])
Definition: CFElements.py:25
TrigT1CaloSimRun2Config.L1CaloLegacySimCfg
def L1CaloLegacySimCfg(flags)
Definition: TrigT1CaloSimRun2Config.py:117
python.CaloConditionsConfig.LArTTCellMapCfg
def LArTTCellMapCfg(flags)
Definition: CaloConditionsConfig.py:17
SGInputLoaderConfig.SGInputLoaderCfg
def SGInputLoaderCfg(flags, Load=None, **kwargs)
Definition: SGInputLoaderConfig.py:7
TrigT1CaloSimRun2Config.Run2TriggerTowerMaker
Definition: TrigT1CaloSimRun2Config.py:14
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:256
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
python.IOVDbSvcConfig.addFolders
def addFolders(flags, folderStrings, detDb=None, className=None, extensible=False, tag=None, db=None, modifiers='')
Definition: IOVDbSvcConfig.py:72
TrigT1CaloSimRun2Config.Run2TriggerTowerMaker50ns
Definition: TrigT1CaloSimRun2Config.py:34
LArGMConfig.LArGMCfg
def LArGMCfg(flags)
Definition: LArGMConfig.py:8
python.TileEMScaleConfig.TileEMScaleCondAlgCfg
def TileEMScaleCondAlgCfg(flags, **kwargs)
Definition: TileEMScaleConfig.py:10
TrigT1CaloSimRun2Config.Run2TriggerTowerMakerBase
Definition: TrigT1CaloSimRun2Config.py:8
TrigT1CaloSimRun2Config.Run2TriggerTowerMakerBase.DigiEngine
DigiEngine
Definition: TrigT1CaloSimRun2Config.py:12
python.TrigConfigSvcCfg.L1ConfigSvcCfg
def L1ConfigSvcCfg(flags)
Definition: TrigConfigSvcCfg.py:198
Trk::open
@ open
Definition: BinningType.h:40
TrigT1CaloSimRun2Config.Run2TriggerTowerMakerCfg
def Run2TriggerTowerMakerCfg(flags, name='Run2TriggerTowerMaker25ns')
Definition: TrigT1CaloSimRun2Config.py:61
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
TrigT1CaloSimRun2Config.Run2TriggerTowerMaker.CellType
CellType
Definition: TrigT1CaloSimRun2Config.py:22
python.CaloConditionsConfig.CaloTTIdMapCfg
def CaloTTIdMapCfg(flags)
Definition: CaloConditionsConfig.py:31
python.PoolReadConfig.PoolReadCfg
def PoolReadCfg(flags)
Definition: PoolReadConfig.py:69
TileGMConfig.TileGMCfg
def TileGMCfg(flags)
Definition: TileGMConfig.py:7