ATLAS Offline Software
Loading...
Searching...
No Matches
run_gep.py
Go to the documentation of this file.
2# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3#
4
5if __name__ == '__main__':
6 import sys
7
8
11 from AthenaCommon.Logging import logging
12 local_log = logging.getLogger('run_gep')
13 info = local_log.info
14 error = local_log.error
15
16 import argparse
17 p = argparse.ArgumentParser()
18 p.add_argument('-i', '--input',
19 metavar='KEY',
20 default='ttbar',
21 help='Key of the input from TrigValInputs to be used, default=%(default)s')
22 p.add_argument('-e', '--execute',
23 action='store_true',
24 help='After building the configuration, also process a few events')
25 p.add_argument('-n', '--nevents',
26 metavar='N',
27 type=int,
28 default=25,
29 help='Number of events to process if --execute is used, default=%(default)s')
30 p.add_argument('-g', '--gepInput',
31 metavar='N',
32 type=bool,
33 default=False,
34 help='use input files previously used for GEP jobs')
35 p.add_argument('-f', '--gepInputRun3',
36 action='store_true',
37 help='use Run3 (with jFexJetRoI) input file')
38
39 p.add_argument('-c', '--clusterAlgs',
40 default='WFS',
41 help='commma separated list of stategies for GepClusterAlg: [WFS, Calo420]')
42
43 p.add_argument('-j', '--jetAlgs',
44 default='Cone',
45 help='commma separated list of stategies for GepJetAlg:[Cone, ModAntikT]')
46
47 p.add_argument('-ett', '--enableTopoTower',
48 action='store_true',
49 help='Enable GepTopoTower algorithm'
50 )
51
52 p.add_argument('-ect', '--enableCellTower',
53 action='store_true',
54 help='Enable GepCellTower algorithm'
55 )
56
57 p.add_argument('-etct', '--enableTCTower',
58 action='store_true',
59 help='Enable GepTCTower algorithm'
60 )
61
62 p.add_argument('-cell', '--cellCollection',
63 default='GepCells',
64 help='commma separated list of input cell Collection for CellTower algorithm: [GepCells,CaloCells]')
65
66 p.add_argument('-pu', '--puSupAlgs',
67 default='',
68 help='comma separated list of PU suppression algorithms: [EtaSK]')
69
70 args = p.parse_args()
71
72 clusterAlgNames = args.clusterAlgs.split(',')
73 jetAlgNames = args.jetAlgs.split(',')
74 enable_topo_tower = args.enableTopoTower # Boolean flag
75 enable_tc_tower = args.enableTCTower # Boolean flag
76 enable_cell_tower = args.enableCellTower # Boolean flag
77 cellCollectionName = args.cellCollection
78 puSuppressionAlgNames = args.puSupAlgs.split(',') if args.puSupAlgs else ['']
79 info('GEP clusterAlgs: ' + str(clusterAlgNames))
80 info('GEP jetAlgs: ' + str(jetAlgNames))
81 info('GEP puSuppressionAlgs: ' + str(puSuppressionAlgNames))
82
83 # Print Tower statuses
84 info(f'GEP TopoTower enabled: {"Yes" if enable_topo_tower else "No"}')
85 info(f'GEP TCTower enabled: {"Yes" if enable_tc_tower else "No"}')
86 info(f'GEP CellTower enabled: {"Yes" if enable_cell_tower else "No"}')
87
88 # Print which cell collection is being used
89 info(f'GEP CellTower collection: {cellCollectionName}')
90
91
94 from AthenaConfiguration.AllConfigFlags import initConfigFlags
95 from TrigValTools.TrigValSteering import Input
96
97 assert not (args.gepInput and args.gepInputRun3)
98
99 flags = initConfigFlags()
100
101 if args.gepInput:
102 ifile = (
103 "/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/RecExRecoTest/mc20e_13TeV/"
104 "valid1.410000.PowhegPythiaEvtGen_P2012_ttbar_hdamp172p5_nonallhad.ESD.e4993_s3227_r12689/myESD.pool.root")
105 flags.Input.Files = [ifile]
106 elif args.gepInputRun3:
107 # ifile = (
108 # '/afs/cern.ch/work/m/martyniu/public/forPeter/'
109 # 'mc21.601229.PhPy8EG_A14_ttbar_hdamp258p75_SingleLep.recon.AOD.e8357_e7400_s3775_r13614_r13614/'
110 #'AOD.29004489._000039.pool.root.1')
111
112 ifile = '/afs/cern.ch/work/m/martyniu/public/forPeter/RDO/tmp.RDO'
113 flags.Input.Files = [ifile]
114 else:
115 flags.Input.Files = Input.get_input(args.input).paths
116
117 if not flags.Input.isMC:
118 from AthenaConfiguration.TestDefaults import defaultGeometryTags
119 flags.GeoModel.AtlasVersion = defaultGeometryTags.autoconfigure(flags)
120
121 info('Command line args: ' + str(args))
122
123 flags.Output.AODFileName = 'AOD.pool.root'
124 flags.Common.isOnline = not flags.Input.isMC
125 flags.Exec.MaxEvents = args.nevents
126 flags.Concurrency.NumThreads = 1
127 flags.Concurrency.NumConcurrentEvents = 1
128 flags.Scheduler.ShowDataDeps = True
129 flags.Scheduler.CheckDependencies = True
130 flags.Scheduler.ShowDataFlow = True
131 flags.Trigger.EDMVersion = 3
132 flags.Trigger.doLVL1 = True
133 flags.Trigger.enableL1CaloPhase1 = True
134
135 # Enable only calo for this test
136 from AthenaConfiguration.DetectorConfigFlags import setupDetectorFlags
137 setupDetectorFlags(flags, ['LAr','Tile','MBTS'], toggle_geometry=True)
138
139 flags.lock()
140 flags.dump()
141
142
145 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
146 acc = MainServicesCfg(flags)
147
148 from AthenaConfiguration.Enums import Format
149 if flags.Input.Format == Format.POOL:
150 from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
151 acc.merge(PoolReadCfg(flags))
152 else:
153 from TriggerJobOpts.TriggerByteStreamConfig import ByteStreamReadCfg
154 acc.merge(ByteStreamReadCfg(flags))
155
156 from TrigConfigSvc.TrigConfigSvcCfg import L1ConfigSvcCfg, generateL1Menu, createL1PrescalesFileFromMenu
157 acc.merge(L1ConfigSvcCfg(flags))
158 generateL1Menu(flags)
159 createL1PrescalesFileFromMenu(flags)
160
161 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
162 FexEDMList = [
163 'xAOD::eFexEMRoIContainer#L1_eEMRoI','xAOD::eFexEMRoIAuxContainer#L1_eEMRoIAux.',
164 'xAOD::eFexTauRoIContainer#L1_eTauRoI','xAOD::eFexTauRoIAuxContainer#L1_eTauRoIAux.',
165 'xAOD::jFexTauRoIContainer#L1_jFexTauRoI','xAOD::jFexTauRoIAuxContainer#L1_jFexTauRoIAux.',
166 'xAOD::jFexSRJetRoIContainer#L1_jFexSRJetRoI','xAOD::jFexSRJetRoIAuxContainer#L1_jFexSRJetRoIAux.',
167 'xAOD::jFexLRJetRoIContainer#L1_jFexLRJetRoI','xAOD::jFexLRJetRoIAuxContainer#L1_jFexLRJetRoIAux.',
168 'xAOD::jFexMETRoIContainer#L1_jFexMETRoI','xAOD::jFexMETRoIAuxContainer#L1_jFexMETRoIAux.',
169 'xAOD::jFexSumETRoIContainer#L1_jFexSumETRoI','xAOD::jFexSumETRoIAuxContainer#L1_jFexSumETRoIAux.',
170 'xAOD::gFexJetRoIContainer#L1_gFexSRJetRoI','xAOD::gFexJetRoIAuxContainer#L1_gFexSRJetRoIAux.',
171 'xAOD::gFexJetRoIContainer#L1_gFexLRJetRoI','xAOD::gFexJetRoIAuxContainer#L1_gFexLRJetRoIAux.',
172 'xAOD::gFexJetRoIContainer#L1_gFexRhoRoI','xAOD::gFexJetRoIAuxContainer#L1_gFexRhoRoIAux.',
173 'xAOD::gFexGlobalRoIContainer#L1_gScalarEJwoj','xAOD::gFexGlobalRoIAuxContainer#L1_gScalarEJwojAux.',
174 'xAOD::gFexGlobalRoIContainer#L1_gMETComponentsJwoj','xAOD::gFexGlobalRoIAuxContainer#L1_gMETComponentsJwojAux.',
175 'xAOD::gFexGlobalRoIContainer#L1_gMHTComponentsJwoj','xAOD::gFexGlobalRoIAuxContainer#L1_gMHTComponentsJwojAux.',
176 'xAOD::gFexGlobalRoIContainer#L1_gMSTComponentsJwoj','xAOD::gFexGlobalRoIAuxContainer#L1_gMSTComponentsJwojAux.',
177 'xAOD::gFexGlobalRoIContainer#L1_gMETComponentsNoiseCut','xAOD::gFexGlobalRoIAuxContainer#L1_gMETComponentsNoiseCutAux.',
178 'xAOD::gFexGlobalRoIContainer#L1_gMETComponentsRms','xAOD::gFexGlobalRoIAuxContainer#L1_gMETComponentsRmsAux.',
179 'xAOD::gFexGlobalRoIContainer#L1_gScalarENoiseCut','xAOD::gFexGlobalRoIAuxContainer#L1_gScalarENoiseCutAux.',
180 'xAOD::gFexGlobalRoIContainer#L1_gScalarERms','xAOD::gFexGlobalRoIAuxContainer#L1_gScalarERmsAux.',
181 ]
182 acc.merge(OutputStreamCfg(flags, 'AOD', ItemList=FexEDMList))
183
184
187
188 from L1CaloFEXSim.L1CaloFEXSimCfg import L1CaloFEXSimCfg
189 acc.merge(L1CaloFEXSimCfg(flags))
190
191 # Add in CellMaking, outputs a CaloCellContainer named AllCalo
192 from CaloRec.CaloCellMakerConfig import CaloCellMakerCfg
193 acc.merge(CaloCellMakerCfg(flags))
194
195
196
197 # add the creation of standard 420 Topoclusters
198 from CaloRec.CaloTopoClusterConfig import CaloTopoClusterCfg
199 calo_acc420 = CaloTopoClusterCfg(flags) # default clusters: 420
200 acc.merge(calo_acc420)
201
202 # Also create 422 topoclusters
203 # PS: cannot find a "civilised" way to set the calorimeter cell energy
204 # cut at 2*sigma cell noise, so do it by force.
205 # Note:
206 # Executing <ComponentAccumator>,printConfig(withDetails=True,
207 # summariseProps=True)
208 # helped to work this out.
209
210 # 1. set up cluster making with cell energy cut.
211 # 2. avoid container name clashes
212
213 doLCCalib = flags.Calo.TopoCluster.doTopoClusterLocalCalib
214 clustersname = 'CaloCalTopoClusters422' if doLCCalib else 'CaloTopoClusters422'
215 calo_acc422 = CaloTopoClusterCfg(flags,
216 clustersname=clustersname)
217
218 def getAlg422(cfg):
219 for comp in cfg.getSequence().Members:
220 if comp.name == 'CaloCalTopoClusters422Maker':
221 return comp
222 return None
223
225 if not hasattr(alg, 'ClusterMakerTools'):
226 return False
227
228 for tool in alg.ClusterMakerTools:
229 if tool.name == 'TopoMaker':
230 assert tool.CellThresholdOnEorAbsEinSigma == 0
231 tool.CellThresholdOnEorAbsEinSigma = 2.0
232 return True
233
234 return False
235
237 if not hasattr(alg, 'ClusterCorrectionTools'):
238 return False
239
240 for tool in alg.ClusterCorrectionTools:
241
242 if tool.name == 'CaloClusterSnapshot':
243 assert tool.OutputName == 'CaloTopoClusters'
244 if doLCCalib:
245 tool.OutputName = 'CaloCalTopoClusters422Snap'
246 else:
247 tool.OutputName = 'CaloTopoClusters422Snap'
248 return True
249
250 return False
251
252
253 alg = getAlg422(calo_acc422)
254 if alg is None:
255 error('no 422 cluster alg')
256 sys.exit(1)
257
258 assert fixMakerTool422(alg)
259 assert fixSnapshotTool422(alg)
260
261 acc.merge(calo_acc422)
262
263 from AthenaCommon.Constants import DEBUG
264 gepAlgs_output_level = DEBUG
265
266 from TrigGepPerf.GepClusterTimingAlgConfig import GepClusterTimingAlgCfg
267 acc.merge(GepClusterTimingAlgCfg(flags,
268 OutputLevel=gepAlgs_output_level))
269
270
276
277 # Produce the GEP cell map
278
279 # Defining the Energy encoding scheme used in GEP
280 NumberOfEnergyBits = 6 # Two bits for energy range, rest to encode energy
281 ValueOfLeastSignificantBit = 10 # in MeV
282 ValueG = 4 # Multiplier for high energy ranges
283
284 gepEnergyEncodingScheme = str(NumberOfEnergyBits)+"-"+str(ValueOfLeastSignificantBit)+"-"+str(ValueG)
285
286 from TrigGepPerf.GepCellsHandlerAlgConfig import GepCellsHandlerAlgCfg
287
288 gepcellhandler_cfg = GepCellsHandlerAlgCfg(
289 flags,
290 outputGepCellsKey="GepCells",
291 GEPEnergyEncodingScheme = gepEnergyEncodingScheme,
292 HardwareStyleEnergyEncoding = True,
293 TruncationOfOverflowingFEBs = True,
294 OutputLevel=gepAlgs_output_level)
295
296 info('gepclustering_cfg dump:')
297 gepcellhandler_cfg.printConfig(withDetails=True,
298 summariseProps=True)
299
300 acc.merge(gepcellhandler_cfg)
301
302 from TrigGepPerf.GepPi0AlgConfig import GepPi0AlgCfg
303 # currently caloCellsProducer can be caloCellsFromCaloCells or
304 # caloCellsFromCaloClusters
305 acc.merge(GepPi0AlgCfg(flags,
306 name='GepPi0Alg',
307 caloCellsProducer="caloCellsFromCaloCells",
308 OutputLevel=gepAlgs_output_level))
309
310 # PS not yet tested: topoclAlgs = ['Calo422']
311 known_cluster_algs = ['WFS', 'Calo420', 'Calo422']
312 for a in clusterAlgNames:
313 assert a in known_cluster_algs
314
315 known_jet_algs = ['Cone', 'ModAntikT']
316 for a in jetAlgNames:
317 assert a in known_jet_algs
318
319 # Create a number of Algorithms equal to the size of the product
320 # len(ClusterAlgs) x len(JetAlgs). Will eventually add in
321 # > 1 MET alg, and pileup suppression Algs.
322
323 caloclustercolls = {('Calo420', False) : 'CaloTopoClusters',
324 ('Calo420', True) : 'CaloCalTopoClusters',
325 ('Calo422', False) : 'CaloTopoClusters422',
326 ('Calo422', True) : 'CaloCalTopoClusters422'}
327
328 # Add CellTower creation using GepCellTowerAlg
329 from TrigGepPerf.GepCellTowerAlgConfig import GepCellTowerAlgCfg
330
331 if enable_cell_tower:
332 cell_tower_key = 'GEPCellTower'
333 alg_name = 'GepCellTowerAlg'
334
335 # Configure GepCellTowerAlg
336 gep_cell_tower_cfg = GepCellTowerAlgCfg(
337 flags,
338 outputCellTowerKey=cell_tower_key,
339 gepCellMapKey=cellCollectionName,
340 OutputLevel=gepAlgs_output_level)
341
342 info('Configuring GepCellTowerAlg')
343 gep_cell_tower_cfg.printConfig(withDetails=True, summariseProps=True)
344
345 # Merge the configuration
346 acc.merge(gep_cell_tower_cfg)
347
348 for cluster_alg in clusterAlgNames:
349 caloClustersKey = caloclustercolls.get((cluster_alg, doLCCalib), None)
350 if caloClustersKey is None:
351 from TrigGepPerf.GepClusteringAlgConfig import GepClusteringAlgCfg
352
353 caloClustersKey='GEP'+cluster_alg+'Clusters'
354 gepclustering_cfg = GepClusteringAlgCfg(
355 flags,
356 TopoClAlg=cluster_alg,
357 gepCellMapKey="GepCells",
358 outputCaloClustersKey=caloClustersKey,
359 OutputLevel=gepAlgs_output_level)
360
361
362 info('gepclustering_cfg dump:')
363 gepclustering_cfg.printConfig(withDetails=True,
364 summariseProps=True)
365
366 acc.merge(gepclustering_cfg)
367
368 if enable_topo_tower:
369 from TrigGepPerf.GepTopoTowerAlgConfig import GepTopoTowerAlgCfg
370 alg_name='GepTopoTower'+ cluster_alg +'Alg'
371 acc.merge(GepTopoTowerAlgCfg(
372 flags,
373 name=alg_name,
374 caloClustersKey=caloClustersKey,
375 outputCaloClustersKey='GEP'+ cluster_alg +'TopoTower',
376 gepCellMapKey="GepCells",
377 OutputLevel=gepAlgs_output_level))
378
379 if enable_tc_tower:
380 from TrigGepPerf.GepTCTowerAlgConfig import GepTCTowerAlgCfg
381 alg_name='GepTCTower'+ cluster_alg +'Alg'
382 acc.merge(GepTCTowerAlgCfg(
383 flags,
384 name=alg_name,
385 caloClustersKey=caloClustersKey,
386 outputCaloClustersKey='GEP'+ cluster_alg +'TCTower',
387 OutputLevel=gepAlgs_output_level))
388
389 for puSuppressionAlg in puSuppressionAlgNames:
390
391 puLabel = puSuppressionAlg
392
393 # Apply EtaSoftKiller PU suppression if requested
394 if puLabel == 'EtaSK':
395 from TrigGepPerf.GepEtaSoftKillerAlgConfig import GepEtaSoftKillerAlgCfg
396
397 puClustersKey = 'GEP' + cluster_alg + puLabel + 'Clusters'
398 acc.merge(GepEtaSoftKillerAlgCfg(
399 flags,
400 name='GepEtaSK' + cluster_alg + 'Alg',
401 inputClustersKey=caloClustersKey,
402 outputClustersKey=puClustersKey,
403 OutputLevel=gepAlgs_output_level))
404
405 if enable_topo_tower:
406 puTopoTowerKey = 'GEP' + cluster_alg + puLabel + 'TopoTower'
407 acc.merge(GepEtaSoftKillerAlgCfg(
408 flags,
409 name='GepEtaSK' + cluster_alg + 'TopoTowerAlg',
410 inputClustersKey='GEP' + cluster_alg + 'TopoTower',
411 outputClustersKey=puTopoTowerKey,
412 OutputLevel=gepAlgs_output_level))
413
414 if enable_tc_tower:
415 puTcTowerKey = 'GEP' + cluster_alg + puLabel + 'TCTower'
416 acc.merge(GepEtaSoftKillerAlgCfg(
417 flags,
418 name='GepEtaSK' + cluster_alg + 'TCTowerAlg',
419 inputClustersKey='GEP' + cluster_alg + 'TCTower',
420 outputClustersKey=puTcTowerKey,
421 OutputLevel=gepAlgs_output_level))
422
423 if enable_cell_tower:
424 puCellTowerKey = 'GEP' + puLabel + 'CellTower'
425 acc.merge(GepEtaSoftKillerAlgCfg(
426 flags,
427 name='GepEtaSKCellTowerAlg',
428 inputClustersKey=cell_tower_key,
429 outputClustersKey=puCellTowerKey,
430 OutputLevel=gepAlgs_output_level))
431 else:
432 puCellTowerKey = ''
433 else:
434 puClustersKey = caloClustersKey
435 puTopoTowerKey = 'GEP' + cluster_alg + 'TopoTower'
436 puTcTowerKey = 'GEP' + cluster_alg + 'TCTower'
437 puCellTowerKey = cell_tower_key if enable_cell_tower else ''
438
439 for jetAlg in jetAlgNames:
440
441 from TrigGepPerf.GepJetAlgConfig import GepJetAlgCfg
442 alg_name='Gep' + cluster_alg + puLabel + jetAlg + 'JetAlg'
443 acc.merge(GepJetAlgCfg(
444 flags,
445 name=alg_name,
446 jetAlgName=jetAlg,
447 caloClustersKey=puClustersKey,
448 outputJetsKey='GEP' + cluster_alg + puLabel + jetAlg + 'Jets',
449 OutputLevel=gepAlgs_output_level))
450
451 info('\nGepJetAlg properties dump\n')
452 info(str(acc.getEventAlgo(alg_name)._properties))
453
454 # Custom jets for TopoTowers using the correct key
455 if enable_topo_tower:
456 ttalg_name = 'Gep' + cluster_alg + puLabel + 'TopoTower' + jetAlg + 'JetAlg'
457 acc.merge(GepJetAlgCfg(
458 flags,
459 name=ttalg_name,
460 jetAlgName=jetAlg,
461 caloClustersKey=puTopoTowerKey,
462 outputJetsKey='GEP' + cluster_alg + puLabel + 'TopoTower' + jetAlg + 'Jets',
463 OutputLevel=gepAlgs_output_level))
464
465 info('\nGepJetAlg properties dump for TopoTowers\n')
466 info(str(acc.getEventAlgo(ttalg_name)._properties))
467
468 # Custom jets for TCTowers using the correct key
469 if enable_tc_tower:
470 tctalg_name = 'Gep' + cluster_alg + puLabel + 'TCTower' + jetAlg + 'JetAlg'
471 acc.merge(GepJetAlgCfg(
472 flags,
473 name=tctalg_name,
474 jetAlgName=jetAlg,
475 caloClustersKey=puTcTowerKey,
476 outputJetsKey='GEP' + cluster_alg + puLabel + 'TCTower' + jetAlg + 'Jets',
477 OutputLevel=gepAlgs_output_level))
478
479 info('\nGepJetAlg properties dump for TCTowers\n')
480 info(str(acc.getEventAlgo(tctalg_name)._properties))
481
482 # CellTowers
483 if enable_cell_tower:
484 ctalg_name = 'Gep' + puLabel + 'CellTower' + jetAlg + 'JetAlg'
485 acc.merge(GepJetAlgCfg(
486 flags,
487 name=ctalg_name,
488 jetAlgName=jetAlg,
489 caloClustersKey=puCellTowerKey,
490 outputJetsKey='GEP' + puLabel + 'CellTower' + jetAlg + 'Jets',
491 OutputLevel=gepAlgs_output_level))
492
493 info('\nGepJetAlg properties dump for CellTower\n')
494 info(str(acc.getEventAlgo(ctalg_name)._properties))
495
496 from TrigGepPerf.GepMETAlgConfig import GepMETAlgCfg
497 alg_name='GepMET' + cluster_alg + puLabel + 'Alg'
498 acc.merge(GepMETAlgCfg(
499 flags,
500 name=alg_name,
501 caloClustersKey=puClustersKey,
502 outputMETKey='GEP' + cluster_alg + puLabel + 'MET',
503 OutputLevel=gepAlgs_output_level))
504
505 # MET for TopoTowers using the correct key
506 if enable_topo_tower:
507 ttMETalg_name = 'GepMET' + cluster_alg + puLabel + 'TopoTower' + 'Alg'
508 acc.merge(GepMETAlgCfg(
509 flags,
510 name=ttMETalg_name,
511 caloClustersKey=puTopoTowerKey,
512 outputMETKey='GEP' + cluster_alg + puLabel + 'TopoTower' + 'MET',
513 OutputLevel=gepAlgs_output_level))
514
515 # MET for TCTowers using the correct key
516 if enable_tc_tower:
517 tctMETalg_name = 'GepMET' + cluster_alg + puLabel + 'TCTower' + 'Alg'
518 acc.merge(GepMETAlgCfg(
519 flags,
520 name=tctMETalg_name,
521 caloClustersKey=puTcTowerKey,
522 outputMETKey='GEP' + cluster_alg + puLabel + 'TCTower' + 'MET',
523 OutputLevel=gepAlgs_output_level))
524
525 # MET for CellTower using the correct key
526 if enable_cell_tower:
527 ctMETalg_name = 'GepMET' + puLabel + 'CellTowerAlg'
528 acc.merge(GepMETAlgCfg(
529 flags,
530 name=ctMETalg_name,
531 caloClustersKey=puCellTowerKey,
532 outputMETKey='GEP' + puLabel + 'CellTowerMET',
533 OutputLevel=gepAlgs_output_level))
534
535 from TrigGepPerf.GepMETPufitAlgConfig import GepMETPufitAlgCfg
536 alg_name='GepMET' + cluster_alg + puLabel + 'PufitAlg'
537 acc.merge(GepMETPufitAlgCfg(
538 flags,
539 name=alg_name,
540 caloClustersKey=puClustersKey,
541 outputMETPufitKey='GEP' + cluster_alg + puLabel + 'METPufit',
542 OutputLevel=gepAlgs_output_level))
543
544 if enable_topo_tower:
545 ttPufitMETalg_name = 'GepMET' + cluster_alg + puLabel + 'TopoTower' + 'PufitAlg'
546 acc.merge(GepMETPufitAlgCfg(
547 flags,
548 name=ttPufitMETalg_name,
549 caloClustersKey=puTopoTowerKey,
550 outputMETKey='GEP' + cluster_alg + puLabel + 'TopoTower' + 'METPufit',
551 OutputLevel=gepAlgs_output_level))
552
553 if enable_tc_tower:
554 tctPufitMETalg_name = 'GepMET' + cluster_alg + puLabel + 'TCTower' + 'PufitAlg'
555 acc.merge(GepMETPufitAlgCfg(
556 flags,
557 name=tctPufitMETalg_name,
558 caloClustersKey=puTcTowerKey,
559 outputMETKey='GEP' + cluster_alg + puLabel + 'TCTower' + 'METPufit',
560 OutputLevel=gepAlgs_output_level))
561
562 if enable_cell_tower:
563 ctPufitMETalg_name = 'GepMET' + puLabel + 'CellTowerPufitAlg'
564 acc.merge(GepMETPufitAlgCfg(
565 flags,
566 name=ctPufitMETalg_name,
567 caloClustersKey=puCellTowerKey,
568 outputMETKey='GEP' + puLabel + 'CellTowerMETPufit',
569 OutputLevel=gepAlgs_output_level))
570
571
574 with open("L1Sim.pkl", "wb") as f:
575 acc.store(f)
576 f.close()
577
578 if args.execute:
579 sc = acc.run()
580 if sc.isFailure():
581 exit(1)
getAlg422(cfg)
Definition run_gep.py:218
fixMakerTool422(alg)
Definition run_gep.py:224
fixSnapshotTool422(alg)
Definition run_gep.py:236