ATLAS Offline Software
Loading...
Searching...
No Matches
L1CaloFEXSimCfg Namespace Reference

Functions

 ReadSCellFromPoolFileCfg (flags, key='SCell')
 ReadSCellFromByteStreamCfg (flags, key='SCell', SCmask=True)
 eFEXTOBEtToolCfg (flags)
 TriggerTowersInputCfg (flags)
 L1CaloFEXSimCfg (flags, eFexTowerInputs=["L1_eFexDataTowers","L1_eFexEmulatedTowers"], deadMaterialCorrections=True, outputSuffix="", simulateAltTau=False)

Variables

 p = argparse.ArgumentParser()
 metavar
 default
 help
 action
 type
 args = p.parse_args()
 flags = initConfigFlags()
 isOnline
 Files
 AtlasVersion
 GlobalTag
 AODFileName
 MaxEvents
 NumThreads
 NumConcurrentEvents
 ShowDataDeps
 CheckDependencies
 ShowDataFlow
 EDMVersion
 doLVL1
 enableL1CaloPhase1
 triggerConfig
 toggle_geometry
 acc = MainServicesCfg(flags)
list FexEDMList
 OutputLevel
 sc = acc.run()
 Save and optionally run the configuration.

Function Documentation

◆ eFEXTOBEtToolCfg()

L1CaloFEXSimCfg.eFEXTOBEtToolCfg ( flags)
Configure the eFEX TOB Et Tool which recalculates isolation variables
The tool requires eTowers as inputs (add eTowerMaker algorithm)

Definition at line 47 of file L1CaloFEXSimCfg.py.

47def eFEXTOBEtToolCfg(flags):
48 """
49 Configure the eFEX TOB Et Tool which recalculates isolation variables
50 The tool requires eTowers as inputs (add eTowerMaker algorithm)
51 """
52 acc = ComponentAccumulator()
53
54 # had to comment this out for now, because it causes a clash with the eTowerMakerFromEfexTowers algorithm
55 # if that gets scheduled
56 #eTowerMakerAlg = CompFactory.LVL1.eTowerMakerFromSuperCells('eTowerMakerFromSuperCells')
57 #acc.addEventAlgo(eTowerMakerAlg)
58
59 eFEXTOBEtTool = CompFactory.LVL1.eFEXTOBEtTool
60 acc.setPrivateTools(eFEXTOBEtTool())
61
62 return acc
63

◆ L1CaloFEXSimCfg()

L1CaloFEXSimCfg.L1CaloFEXSimCfg ( flags,
eFexTowerInputs = ["L1_eFexDataTowers","L1_eFexEmulatedTowers"],
deadMaterialCorrections = True,
outputSuffix = "",
simulateAltTau = False )

Definition at line 76 of file L1CaloFEXSimCfg.py.

76def L1CaloFEXSimCfg(flags, eFexTowerInputs = ["L1_eFexDataTowers","L1_eFexEmulatedTowers"],deadMaterialCorrections=True, outputSuffix="", simulateAltTau=False):
77 from AthenaConfiguration.Enums import Format
78
79 if not simulateAltTau and flags.DQ.Environment == "tier0":
80 simulateAltTau = True # require alt RoI at tier0 while validating new BDT alg against heuristic
81
82 acc = ComponentAccumulator()
83
84 log = logging.getLogger('L1CaloFEXSimCfg')
85
86
87 # Configure SCell inputs
88 sCellType = flags.Trigger.L1.L1CaloSuperCellContainerName
89 if flags.Input.Format is Format.POOL:
90 # Read SCell directly from input RDO file unless not necessary
91 if 'L1_eFexEmulatedTowers' in eFexTowerInputs and "L1_eFexEmulatedTowers" not in flags.Input.Collections:
92 acc.merge(ReadSCellFromPoolFileCfg(flags,sCellType))
93 if flags.Input.isMC:
94 # wont have eFexDataTowers available so remove that if it appears in input list
95 eFexTowerInputs = [l for l in eFexTowerInputs if l != "L1_eFexDataTowers"]
96 else:
97 from AthenaConfiguration.Enums import LHCPeriod
98 if flags.GeoModel.Run is LHCPeriod.Run2:
99 # Run-2 data inputs, emulate SCells
100 from TrigT1CaloFexPerf.EmulationConfig import emulateSC_Cfg
101 acc.merge(emulateSC_Cfg(flags))
102 else:
103 # Run-3+ data inputs, decode SCells from ByteStream if needed
104 if 'L1_eFexEmulatedTowers' in eFexTowerInputs and "L1_eFexEmulatedTowers" not in flags.Input.Collections:
105 acc.merge(ReadSCellFromByteStreamCfg(flags,key=sCellType))
106
107 # Need also TriggerTowers as input .. so reconstruct if not in input collections already
108 if "xAODTriggerTowers" not in flags.Input.Collections:
109 acc.merge(TriggerTowersInputCfg(flags))
110
111 doV6Mapping=False # latome fex input mapping if different between v5 and v6 ... for now only switching to v6 in data
112 if not flags.Input.isMC and len(flags.Input.RunNumbers)>0: # in HLT reprocessing jobs, the runNumbers list will be empty ... have to default to v5 for now for these jobs
113 from LArConditionsCommon.LArRunFormat import getLArDTInfoForRun
114 runinfo = getLArDTInfoForRun(flags.Input.RunNumbers[0], connstring="COOLONL_LAR/CONDBR2")
115 doV6Mapping = (runinfo.FWversion()==6)
116
117 if doV6Mapping and len(flags.Input.RunNumbers)>0:
118 # add required dbOverride (don't do in athena HLT where we will rely on LAr/LATOME to have set it to the right thing)
119 from IOVDbSvc.IOVDbSvcConfig import addOverride
120 acc.merge( addOverride(flags,folder="/LAR/Identifier/LatomeMapping",tag="LARIdentifierLatomeMapping-fw6") )
121
122
123 if flags.Trigger.L1.doeFex:
124 if 'L1_eFexEmulatedTowers' in eFexTowerInputs and "L1_eFexEmulatedTowers" not in flags.Input.Collections:
125 builderAlg = CompFactory.LVL1.eFexTowerBuilder("L1_eFexEmulatedTowers",UseLATOMEv6Mapping=doV6Mapping,
126 CaloCellContainerReadKey=sCellType,ApplyMasking=not flags.Input.isMC) # builds the emulated towers to use as secondary input to eTowerMaker - name has to match what it gets called in other places to avoid conflict
127 if flags.Input.isMC: builderAlg.LArLatomeHeaderKey=""
128 elif doV6Mapping or len(flags.Input.RunNumbers)==0:
129 builderAlg.MappingFile='' # need to regenerate mapping on-the-fly for v6 or in athena hlt jobs
130 # if regenerating mapping file and this is data, we will need the LATOME headers, otherwise don't use them
131 from LArByteStream.LArRawSCDataReadingConfig import LArRawSCDataReadingCfg
132 acc.merge(LArRawSCDataReadingCfg(flags))
133
134 acc.addEventAlgo( builderAlg )
135
136 if eFexTowerInputs==[]:
137 # no input specified, so use the old eTowerMaker
138 eFEXInputs = CompFactory.LVL1.eTowerMakerFromSuperCells('eTowerMakerFromSuperCells',
139 eSuperCellTowerMapperTool = CompFactory.LVL1.eSuperCellTowerMapper('eSuperCellTowerMapper', SCell=sCellType))
140 else:
141 # if primary is DataTowers, check that caloInputs are enabled (if data towers not already available). If it isn't then skip this
142 if (not flags.Trigger.L1.doCaloInputs) and eFexTowerInputs[0] == "L1_eFexDataTowers" and ("L1_eFexDataTowers" not in flags.Input.Collections):
143 if len(eFexTowerInputs)==1:
144 log.fatal("Requested L1_eFexDataTowers but Trigger.L1.doCaloInputs is False, but not secondary collection given")
145 import sys
146 sys.exit(1)
147 log.warning("Requested L1_eFexDataTowers but Trigger.L1.doCaloInputs is False, falling back to secondary")
148 eFexTowerInputs[0] = eFexTowerInputs[1]
149 eFexTowerInputs[1] = ""
150 eFEXInputs = CompFactory.LVL1.eTowerMakerFromEfexTowers('eTowerMakerFromEfexTowers')
151 eFEXInputs.InputTowers = eFexTowerInputs[0]
152 eFEXInputs.SecondaryInputTowers = eFexTowerInputs[1] if len(eFexTowerInputs) > 1 else ""
153
154 eFEX = CompFactory.LVL1.eFEXDriver('eFEXDriver')
155 eFEX.eFEXSysSimTool = CompFactory.LVL1.eFEXSysSim('eFEXSysSimTool')
156 eFEX.eFEXSysSimTool.eFEXSimTool = CompFactory.LVL1.eFEXSim('eFEXSimTool')
157 eFEX.eFEXSysSimTool.eFEXSimTool.eFEXFPGATool = CompFactory.LVL1.eFEXFPGA('eFEXFPGATool')
158
159 # read algoVersions from menu and configure the algo tools
160 from TrigConfigSvc.TriggerConfigAccess import getL1MenuAccess
161 L1_menu = getL1MenuAccess(flags)
162
163 em_algoVersion = L1_menu.thresholdExtraInfo("eEM").get("algoVersion", 0)
164 tau_algoVersion = L1_menu.thresholdExtraInfo("eTAU").get("algoVersion", 0)
165
166 from PathResolver import PathResolver
167 bdtConfigJsonPath = PathResolver.FindCalibFile("Run3L1CaloSimulation/L1CaloFEXSim/eTAU/" + ("bdt_config_v17.json" if tau_algoVersion==2 else "bdt_config_v16.json"))
168
169 eFEX.eFEXSysSimTool.eFEXSimTool.eFEXFPGATool.eFEXegAlgoTool = CompFactory.LVL1.eFEXegAlgo('eFEXegAlgoTool',algoVersion=em_algoVersion,dmCorr=deadMaterialCorrections) # only dmCorrections in data for now
170 eFEX.eFEXSysSimTool.eFEXSimTool.eFEXFPGATool.eFEXtauAlgoTool = CompFactory.LVL1.eFEXtauAlgo("eFEXtauAlgo") # heuristic algorithm
171 eFEX.eFEXSysSimTool.eFEXSimTool.eFEXFPGATool.eFEXtauBDTAlgoTool = CompFactory.LVL1.eFEXtauBDTAlgo("eFEXtauBDTAlgo", BDTJsonConfigPath=bdtConfigJsonPath)
172 # To dump supercells as a decorator to the tau TOB, set
173 # eFEX.eFEXSysSimTool.eFEXSimTool.eFEXFPGATool.eFEXtauAlgoTool.DumpSuperCells = True
174 # and/or
175 # eFEX.eFEXSysSimTool.eFEXSimTool.eFEXFPGATool.eFEXtauBDTAlgoTool.DumpSuperCells = True
176
177
178
179
180 # load noise cuts and dm corrections when running on data
181 from IOVDbSvc.IOVDbSvcConfig import addFolders#, addFoldersSplitOnline
182
183 acc.merge(addFolders(flags,"/TRIGGER/L1Calo/V1/Calibration/EfexNoiseCuts","TRIGGER_OFL" if flags.Input.isMC else "TRIGGER_ONL",className="CondAttrListCollection"))
184 eFEXInputs.NoiseCutsKey = "/TRIGGER/L1Calo/V1/Calibration/EfexNoiseCuts"
185 acc.merge(addFolders(flags,"/TRIGGER/L1Calo/V1/Calibration/EfexEnergyCalib","TRIGGER_OFL" if flags.Input.isMC else "TRIGGER_ONL",className="CondAttrListCollection")) # dmCorr from DB!
186 eFEX.eFEXSysSimTool.eFEXSimTool.eFEXFPGATool.eFEXegAlgoTool.DMCorrectionsKey = "/TRIGGER/L1Calo/V1/Calibration/EfexEnergyCalib"
187
188 acc.addEventAlgo(eFEXInputs)
189 acc.addEventAlgo(eFEX)
190
191 if simulateAltTau:
192 eFEX.eFEXSysSimTool.Key_eFexAltTauOutputContainer="L1_eTauRoIAlt"
193 eFEX.eFEXSysSimTool.Key_eFexAltTauxTOBOutputContainer="L1_eTauxRoIAlt"
194
195
196 if flags.Trigger.L1.dojFex:
197
198 if flags.Input.Format is not Format.POOL:
199 from L1CaloFEXByteStream.L1CaloFEXByteStreamConfig import jFexInputByteStreamToolCfg
200 inputjFexTool = acc.popToolsAndMerge(jFexInputByteStreamToolCfg(flags, 'jFexInputBSDecoderTool'))
201
202 maybeMissingRobs = []
203 decoderTools = []
204
205 for module_id in inputjFexTool.ROBIDs:
206 maybeMissingRobs.append(module_id)
207
208 decoderTools += [inputjFexTool]
209 decoderAlg = CompFactory.L1TriggerByteStreamDecoderAlg(name="L1TriggerByteStreamDecoder", DecoderTools=[inputjFexTool], MaybeMissingROBs=maybeMissingRobs)
210 acc.addEventAlgo(decoderAlg)
211
212 if "L1_jFexEmulatedTowers" not in flags.Input.Collections:
213 from L1CaloFEXAlgos.FexEmulatedTowersConfig import jFexEmulatedTowersCfg
214 acc.merge(jFexEmulatedTowersCfg(flags))
215
216 from L1CaloFEXCond.L1CaloFEXCondConfig import jFexDBConfig
217 acc.merge(jFexDBConfig(flags))
218
219 jFEXInputs = CompFactory.LVL1.jTowerMakerFromJfexTowers('jTowerMakerFromJfexTowers')
220 jFEXInputs.IsMC = flags.Input.isMC
221 jFEXInputs.jSuperCellTowerMapperTool = CompFactory.LVL1.jSuperCellTowerMapper('jSuperCellTowerMapper', SCell=sCellType)
222 jFEXInputs.jSuperCellTowerMapperTool.SCellMasking = not flags.Input.isMC
223 # need to set an IsMC property on a tool deep inside the toolstack:
224 jFEX = CompFactory.LVL1.jFEXDriver('jFEXDriver',jFEXSysSimTool=CompFactory.LVL1.jFEXSysSim(
225 'jFEXSysSimTool',jFEXSimTool=CompFactory.LVL1.jFEXSim(
226 'LVL1::jFEXSim',jFEXFPGATool=CompFactory.LVL1.jFEXFPGA(
227 'LVL1::jFEXFPGA',jFEXLargeRJetAlgoTool="", # disables jLJ algorithm - will produce empty container
228 IjFEXFormTOBsTool=CompFactory.LVL1.jFEXFormTOBs(
229 'LVL1::jFEXFormTOBs',IsMC=flags.Input.isMC)))))
230 acc.addEventAlgo(jFEXInputs)
231 acc.addEventAlgo(jFEX)
232
233
234 if flags.Trigger.L1.dogFex:
235
236 if flags.Input.Format is not Format.POOL:
237 from L1CaloFEXByteStream.L1CaloFEXByteStreamConfig import gFexInputByteStreamToolCfg
238 inputgFexTool = acc.popToolsAndMerge(gFexInputByteStreamToolCfg(flags, 'gFexInputBSDecoderTool'))
239
240 maybeMissingRobs = []
241 decoderTools = []
242
243 for module_id in inputgFexTool.ROBIDs:
244 maybeMissingRobs.append(module_id)
245
246 decoderTools += [inputgFexTool]
247 decoderAlg = CompFactory.L1TriggerByteStreamDecoderAlg(name="L1TriggerByteStreamDecoder", DecoderTools=[inputgFexTool], MaybeMissingROBs=maybeMissingRobs)
248 acc.addEventAlgo(decoderAlg)
249
250 # only create emulated towers if not a POOL file or not EmulatedTowers collection
251 if not Format.POOL or "L1_gFexEmulatedTowers" not in flags.Input.Collections:
252 from L1CaloFEXAlgos.FexEmulatedTowersConfig import gFexEmulatedTowersCfg
253 acc.merge(gFexEmulatedTowersCfg(flags,name="L1_gFexEmulatedTowers"))
254
255 gFEXTowerSummer = CompFactory.LVL1.gFexTowerSummer('gFexTowerSummer')
256 gFEXTowerSummer.gFexDataTowers = "L1_gFexEmulatedTowers" if flags.Input.isMC else "L1_gFexDataTowers"
257 gFEXTowerSummer.gTowers200WriteKey = "L1_gFexEmulatedTowers200" if flags.Input.isMC else "L1_gFexDataTowers200"
258 gFEXTowerSummer.gTowers50WriteKey = "L1_gFexEmulatedTowers50" if flags.Input.isMC else "L1_gFexDataTowers50"
259 gFEXTowerSummer.gTowersEMWriteKey = ""
260 gFEXTowerSummer.gTowersHADWriteKey = ""
261 acc.addEventAlgo(gFEXTowerSummer)
262
263 gFEXInputs = CompFactory.LVL1.gTowerMakerFromGfexTowers('gTowerMakerFromGfexTowers')
264 gFEXInputs.InputDataTowers = "L1_gFexEmulatedTowers200" if flags.Input.isMC else "L1_gFexDataTowers200"
265 gFEXInputs.MyGTowers = "gTowerContainer"
266
267 gFEXInputs50 = CompFactory.LVL1.gTowerMakerFromGfexTowers('gTowerMakerFromGfexTowers50')
268 gFEXInputs50.InputDataTowers = "L1_gFexEmulatedTowers50" if flags.Input.isMC else "L1_gFexDataTowers50"
269 gFEXInputs50.MyGTowers = "gTower50Container"
270
271 from L1CaloFEXCond.L1CaloFEXCondConfig import gFexDBConfig
272 acc.merge(gFexDBConfig(flags))
273
274 gFEX = CompFactory.LVL1.gFEXDriver('gFEXDriver')
275 gFEX.gFEXSysSimTool = CompFactory.LVL1.gFEXSysSim('gFEXSysSimTool')
276 acc.addEventAlgo(gFEXInputs)
277 acc.addEventAlgo(gFEXInputs50)
278 acc.addEventAlgo(gFEX)
279
280 if flags.Trigger.doHLT:
281 # This will be the case when the offline simulation is actually being run as part of MC
282 # as opposed to running another pass of the simulation on either an MC or data file (e.g in DAOD)
283 # Check the RoI EDM containers are registered in HLT outputs
284 from TrigEDMConfig.TriggerEDM import recordable
285 def check(key):
286 assert key==recordable(key), f'recordable() check failed for {key}'
287 if flags.Trigger.L1.doeFex:
288 check(eFEX.eFEXSysSimTool.Key_eFexEMOutputContainer)
289 check(eFEX.eFEXSysSimTool.Key_eFexTauOutputContainer)
290 if (simulateAltTau):
291 check(eFEX.eFEXSysSimTool.Key_eFexAltTauOutputContainer)
292 if flags.Trigger.L1.dojFex:
293 check(jFEX.jFEXSysSimTool.Key_jFexSRJetOutputContainer)
294 check(jFEX.jFEXSysSimTool.Key_jFexLRJetOutputContainer)
295 check(jFEX.jFEXSysSimTool.Key_jFexTauOutputContainer)
296 check(jFEX.jFEXSysSimTool.Key_jFexSumETOutputContainer)
297 check(jFEX.jFEXSysSimTool.Key_jFexMETOutputContainer)
298 check(jFEX.jFEXSysSimTool.Key_jFexFwdElOutputContainer)
299 if flags.Trigger.L1.dogFex:
300 check(gFEX.gFEXSysSimTool.Key_gFexSRJetOutputContainer)
301 check(gFEX.gFEXSysSimTool.Key_gFexLRJetOutputContainer)
302 check(gFEX.gFEXSysSimTool.Key_gFexRhoOutputContainer)
303 check(gFEX.gFEXSysSimTool.Key_gScalarEJwojOutputContainer)
304 check(gFEX.gFEXSysSimTool.Key_gMETComponentsJwojOutputContainer)
305 check(gFEX.gFEXSysSimTool.Key_gMHTComponentsJwojOutputContainer)
306 check(gFEX.gFEXSysSimTool.Key_gMSTComponentsJwojOutputContainer)
307 check(gFEX.gFEXSysSimTool.Key_gMETComponentsNoiseCutOutputContainer)
308 check(gFEX.gFEXSysSimTool.Key_gMETComponentsRmsOutputContainer)
309 check(gFEX.gFEXSysSimTool.Key_gScalarENoiseCutOutputContainer)
310 check(gFEX.gFEXSysSimTool.Key_gScalarERmsOutputContainer)
311 else:
312 # Rename outputs for monitoring resimulation to avoid clash with standard SG keys
313 def getSimHandle(key):
314 """
315 Add 'Sim' to the standard handle path and include user-specified suffix
316 """
317 key += outputSuffix
318 if not key.endswith("Sim"): key += "Sim"
319 return key
320
321 if flags.Trigger.L1.doeFex:
322 eFEX.eFEXSysSimTool.Key_eFexEMOutputContainer=getSimHandle("L1_eEMRoI")
323 eFEX.eFEXSysSimTool.Key_eFexTauOutputContainer=getSimHandle("L1_eTauRoI")
324 eFEX.eFEXSysSimTool.Key_eFexEMxTOBOutputContainer=getSimHandle("L1_eEMxRoI")
325 eFEX.eFEXSysSimTool.Key_eFexTauxTOBOutputContainer=getSimHandle("L1_eTauxRoI")
326 if simulateAltTau:
327 eFEX.eFEXSysSimTool.Key_eFexAltTauOutputContainer=getSimHandle("L1_eTauRoIAlt")
328 eFEX.eFEXSysSimTool.Key_eFexAltTauxTOBOutputContainer=getSimHandle("L1_eTauxRoIAlt")
329
330 if flags.Trigger.L1.dojFex:
331 jFEX.jFEXSysSimTool.Key_jFexSRJetOutputContainer=getSimHandle("L1_jFexSRJetRoI")
332 jFEX.jFEXSysSimTool.Key_jFexLRJetOutputContainer=getSimHandle("L1_jFexLRJetRoI")
333 jFEX.jFEXSysSimTool.Key_jFexTauOutputContainer=getSimHandle("L1_jFexTauRoI")
334 jFEX.jFEXSysSimTool.Key_jFexSumETOutputContainer=getSimHandle("L1_jFexSumETRoI")
335 jFEX.jFEXSysSimTool.Key_jFexMETOutputContainer=getSimHandle("L1_jFexMETRoI")
336 jFEX.jFEXSysSimTool.Key_jFexFwdElOutputContainer=getSimHandle("L1_jFexFwdElRoI")
337 jFEX.jFEXSysSimTool.Key_xTobOutKey_jJ=getSimHandle("L1_jFexSRJetxRoI")
338 jFEX.jFEXSysSimTool.Key_xTobOutKey_jLJ=getSimHandle("L1_jFexLRJetxRoI")
339 jFEX.jFEXSysSimTool.Key_xTobOutKey_jTau=getSimHandle("L1_jFexTauxRoI")
340 jFEX.jFEXSysSimTool.Key_xTobOutKey_jEM=getSimHandle("L1_jFexFwdElxRoI")
341 if flags.Trigger.L1.dogFex:
342 gFEX.gFEXSysSimTool.Key_gFexSRJetOutputContainer=getSimHandle("L1_gFexSRJetRoI")
343 gFEX.gFEXSysSimTool.Key_gFexLRJetOutputContainer=getSimHandle("L1_gFexLRJetRoI")
344 gFEX.gFEXSysSimTool.Key_gFexRhoOutputContainer=getSimHandle("L1_gFexRhoRoI")
345 gFEX.gFEXSysSimTool.Key_gScalarEJwojOutputContainer=getSimHandle("L1_gScalarEJwoj")
346 gFEX.gFEXSysSimTool.Key_gMETComponentsJwojOutputContainer=getSimHandle("L1_gMETComponentsJwoj")
347 gFEX.gFEXSysSimTool.Key_gMHTComponentsJwojOutputContainer=getSimHandle("L1_gMHTComponentsJwoj")
348 gFEX.gFEXSysSimTool.Key_gMSTComponentsJwojOutputContainer=getSimHandle("L1_gMSTComponentsJwoj")
349 gFEX.gFEXSysSimTool.Key_gMETComponentsNoiseCutOutputContainer=getSimHandle("L1_gMETComponentsNoiseCut")
350 gFEX.gFEXSysSimTool.Key_gMETComponentsRmsOutputContainer=getSimHandle("L1_gMETComponentsRms")
351 gFEX.gFEXSysSimTool.Key_gScalarENoiseCutOutputContainer=getSimHandle("L1_gScalarENoiseCut")
352 gFEX.gFEXSysSimTool.Key_gScalarERmsOutputContainer=getSimHandle("L1_gScalarERms")
353
354 return acc
355
356
static std::string FindCalibFile(const std::string &logical_file_name)
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
Definition hcg.cxx:130

◆ ReadSCellFromByteStreamCfg()

L1CaloFEXSimCfg.ReadSCellFromByteStreamCfg ( flags,
key = 'SCell',
SCmask = True )

Definition at line 24 of file L1CaloFEXSimCfg.py.

24def ReadSCellFromByteStreamCfg(flags, key='SCell', SCmask=True):
25 acc=ComponentAccumulator()
26
27 # Geometry, conditions and cabling setup
28 from TileGeoModel.TileGMConfig import TileGMCfg
29 from LArGeoAlgsNV.LArGMConfig import LArGMCfg
30 from LArCabling.LArCablingConfig import LArLATOMEMappingCfg
31 from LArCabling.LArCablingConfig import LArOnOffIdMappingSCCfg
32 from LArCellRec.LArRAWtoSuperCellConfig import LArRAWtoSuperCellCfg
33 acc.merge(TileGMCfg(flags))
34 acc.merge(LArGMCfg(flags))
35 acc.merge(LArLATOMEMappingCfg(flags))
36 acc.merge(LArOnOffIdMappingSCCfg(flags))
37
38 # Conversion from ByteStream to LArRawSCContainer
39 decoderTool = CompFactory.LArLATOMEDecoder('LArLATOMEDecoder', ProtectSourceId = True)
40 decoderAlg = CompFactory.LArRawSCDataReadingAlg('LArRawSCDataReadingAlg', LATOMEDecoder=decoderTool)
41 acc.addEventAlgo(decoderAlg)
42
43 acc.merge(LArRAWtoSuperCellCfg(flags,mask=SCmask, SCellContainerOut=key) )
44
45 return acc
46

◆ ReadSCellFromPoolFileCfg()

L1CaloFEXSimCfg.ReadSCellFromPoolFileCfg ( flags,
key = 'SCell' )
Configure reading SCell container from a Pool file like RDO or ESD

Definition at line 8 of file L1CaloFEXSimCfg.py.

8def ReadSCellFromPoolFileCfg(flags, key='SCell'):
9 '''Configure reading SCell container from a Pool file like RDO or ESD'''
10 acc = ComponentAccumulator()
11
12 # Ensure SCell container is in the input file
13 # TODO this needs to be uncommented once all MC files used in tests contain SCells
14 # e.g. test_trig_mc_v1DevHI_build.py
15 # assert key in flags.Input.Collections or not flags.Input.Collections, 'MC input file is required to contain SCell container'
16
17 # Need geometry and conditions for the SCell converter from POOL
18 from LArGeoAlgsNV.LArGMConfig import LArGMCfg
19 acc.merge(LArGMCfg(flags))
20
21 return acc
22
23

◆ TriggerTowersInputCfg()

L1CaloFEXSimCfg.TriggerTowersInputCfg ( flags)
Configuration to provide TriggerTowers as input to the Fex simulation

Definition at line 64 of file L1CaloFEXSimCfg.py.

64def TriggerTowersInputCfg(flags):
65 '''Configuration to provide TriggerTowers as input to the Fex simulation'''
66 from AthenaConfiguration.Enums import Format
67 if flags.Input.Format is Format.POOL:
68 # For POOL files produce TT with R2TTMaker
69 from TrigT1CaloSim.TrigT1CaloSimRun2Config import Run2TriggerTowerMakerCfg
70 return Run2TriggerTowerMakerCfg(flags)
71 else:
72 # For RAW decode TT from ByteStream
73 from TrigT1CaloByteStream.LVL1CaloRun2ByteStreamConfig import LVL1CaloRun2ReadBSCfg
74 return LVL1CaloRun2ReadBSCfg(flags)
75

Variable Documentation

◆ acc

L1CaloFEXSimCfg.acc = MainServicesCfg(flags)

Definition at line 421 of file L1CaloFEXSimCfg.py.

◆ action

L1CaloFEXSimCfg.action

Definition at line 368 of file L1CaloFEXSimCfg.py.

◆ AODFileName

L1CaloFEXSimCfg.AODFileName

Definition at line 399 of file L1CaloFEXSimCfg.py.

◆ args

L1CaloFEXSimCfg.args = p.parse_args()

Definition at line 379 of file L1CaloFEXSimCfg.py.

◆ AtlasVersion

L1CaloFEXSimCfg.AtlasVersion

Definition at line 393 of file L1CaloFEXSimCfg.py.

◆ CheckDependencies

L1CaloFEXSimCfg.CheckDependencies

Definition at line 404 of file L1CaloFEXSimCfg.py.

◆ default

L1CaloFEXSimCfg.default

Definition at line 365 of file L1CaloFEXSimCfg.py.

◆ doLVL1

L1CaloFEXSimCfg.doLVL1

Definition at line 407 of file L1CaloFEXSimCfg.py.

◆ EDMVersion

L1CaloFEXSimCfg.EDMVersion

Definition at line 406 of file L1CaloFEXSimCfg.py.

◆ enableL1CaloPhase1

L1CaloFEXSimCfg.enableL1CaloPhase1

Definition at line 408 of file L1CaloFEXSimCfg.py.

◆ FexEDMList

list L1CaloFEXSimCfg.FexEDMList
Initial value:
1= [
2 'xAOD::eFexEMRoIContainer#L1_eEMRoI','xAOD::eFexEMRoIAuxContainer#L1_eEMRoIAux.',
3 'xAOD::eFexTauRoIContainer#L1_eTauRoI','xAOD::eFexTauRoIAuxContainer#L1_eTauRoIAux.',
4 'xAOD::jFexTauRoIContainer#L1_jFexTauRoI','xAOD::jFexTauRoIAuxContainer#L1_jFexTauRoIAux.',
5 'xAOD::jFexSRJetRoIContainer#L1_jFexSRJetRoI','xAOD::jFexSRJetRoIAuxContainer#L1_jFexSRJetRoIAux.',
6 'xAOD::jFexLRJetRoIContainer#L1_jFexLRJetRoI','xAOD::jFexLRJetRoIAuxContainer#L1_jFexLRJetRoIAux.',
7 'xAOD::jFexMETRoIContainer#L1_jFexMETRoI','xAOD::jFexMETRoIAuxContainer#L1_jFexMETRoIAux.',
8 'xAOD::jFexSumETRoIContainer#L1_jFexSumETRoI','xAOD::jFexSumETRoIAuxContainer#L1_jFexSumETRoIAux.',
9 'xAOD::gFexJetRoIContainer#L1_gFexSRJetRoI','xAOD::gFexJetRoIAuxContainer#L1_gFexSRJetRoIAux.',
10 'xAOD::gFexJetRoIContainer#L1_gFexLRJetRoI','xAOD::gFexJetRoIAuxContainer#L1_gFexLRJetRoIAux.',
11 'xAOD::gFexJetRoIContainer#L1_gFexRhoRoI','xAOD::gFexJetRoIAuxContainer#L1_gFexRhoRoIAux.',
12 'xAOD::gFexGlobalRoIContainer#L1_gScalarEJwoj','xAOD::gFexGlobalRoIAuxContainer#L1_gScalarEJwojAux.',
13 'xAOD::gFexGlobalRoIContainer#L1_gMETComponentsJwoj','xAOD::gFexGlobalRoIAuxContainer#L1_gMETComponentsJwojAux.',
14 'xAOD::gFexGlobalRoIContainer#L1_gMHTComponentsJwoj','xAOD::gFexGlobalRoIAuxContainer#L1_gMHTComponentsJwojAux.',
15 'xAOD::gFexGlobalRoIContainer#L1_gMSTComponentsJwoj','xAOD::gFexGlobalRoIAuxContainer#L1_gMSTComponentsJwojAux.',
16 'xAOD::gFexGlobalRoIContainer#L1_gMETComponentsNoiseCut','xAOD::gFexGlobalRoIAuxContainer#L1_gMETComponentsNoiseCutAux.',
17 'xAOD::gFexGlobalRoIContainer#L1_gMETComponentsRms','xAOD::gFexGlobalRoIAuxContainer#L1_gMETComponentsRmsAux.',
18 'xAOD::gFexGlobalRoIContainer#L1_gScalarENoiseCut','xAOD::gFexGlobalRoIAuxContainer#L1_gScalarENoiseCutAux.',
19 'xAOD::gFexGlobalRoIContainer#L1_gScalarERms','xAOD::gFexGlobalRoIAuxContainer#L1_gScalarERmsAux.',
20
21 ]

Definition at line 437 of file L1CaloFEXSimCfg.py.

◆ Files

L1CaloFEXSimCfg.Files

Definition at line 390 of file L1CaloFEXSimCfg.py.

◆ flags

L1CaloFEXSimCfg.flags = initConfigFlags()

Definition at line 388 of file L1CaloFEXSimCfg.py.

◆ GlobalTag

L1CaloFEXSimCfg.GlobalTag

Definition at line 395 of file L1CaloFEXSimCfg.py.

◆ help

L1CaloFEXSimCfg.help

Definition at line 366 of file L1CaloFEXSimCfg.py.

◆ isOnline

L1CaloFEXSimCfg.isOnline

Definition at line 389 of file L1CaloFEXSimCfg.py.

◆ MaxEvents

L1CaloFEXSimCfg.MaxEvents

Definition at line 400 of file L1CaloFEXSimCfg.py.

◆ metavar

L1CaloFEXSimCfg.metavar

Definition at line 364 of file L1CaloFEXSimCfg.py.

◆ NumConcurrentEvents

L1CaloFEXSimCfg.NumConcurrentEvents

Definition at line 402 of file L1CaloFEXSimCfg.py.

◆ NumThreads

L1CaloFEXSimCfg.NumThreads

Definition at line 401 of file L1CaloFEXSimCfg.py.

◆ OutputLevel

L1CaloFEXSimCfg.OutputLevel

Definition at line 466 of file L1CaloFEXSimCfg.py.

◆ p

L1CaloFEXSimCfg.p = argparse.ArgumentParser()

Definition at line 362 of file L1CaloFEXSimCfg.py.

◆ sc

L1CaloFEXSimCfg.sc = acc.run()

Save and optionally run the configuration.

Definition at line 476 of file L1CaloFEXSimCfg.py.

◆ ShowDataDeps

L1CaloFEXSimCfg.ShowDataDeps

Definition at line 403 of file L1CaloFEXSimCfg.py.

◆ ShowDataFlow

L1CaloFEXSimCfg.ShowDataFlow

Definition at line 405 of file L1CaloFEXSimCfg.py.

◆ toggle_geometry

L1CaloFEXSimCfg.toggle_geometry

Definition at line 413 of file L1CaloFEXSimCfg.py.

◆ triggerConfig

L1CaloFEXSimCfg.triggerConfig

Definition at line 409 of file L1CaloFEXSimCfg.py.

◆ type

L1CaloFEXSimCfg.type

Definition at line 372 of file L1CaloFEXSimCfg.py.