ATLAS Offline Software
Loading...
Searching...
No Matches
python.CaloTopoClusterConfig Namespace Reference

Functions

 CaloCalibClusterTruthMapMakerTool (flags, name="CaloCalibClusterTruthMapMakerTool", **kwargs)
 CaloCalibHitDecoratorTool (flags, name="CaloCalibClusterDecoratorTool", **kwargs)
 CaloCalibHitDecoratorFullEnergyTool (flags, name="CaloCalibClusterDecoratorTool_Full", **kwargs)
 CaloCalibHitDecoratorToolOOC (flags, name="CaloCalibClusterDecoratorToolOOC", **kwargs)
 caloTopoCoolFolderCfg (flags)
 getTopoClusterLocalCalibTools (flags)
 getTopoMoments (flags)
 getTopoTruthMoments (flags)
 getTopoCalibMoments (flags)
 CaloTopoClusterToolCfg (flags, cellsname)
 CaloTopoClusterSplitterToolCfg (flags)
 CaloTopoClusterCfg (flags, cellsname="AllCalo", clustersname=None, clustersnapname="CaloTopoClusters")
 addSnapshot (topomaker, corrName, contName)
 CaloTopoClusterConfigTest (flags=None)

Variables

 stat = CaloTopoClusterConfigTest()
 refFile = find_datafile("CaloRec/CaloRec-00-00-01/TopoClusters.txt.ref",pathlist=os.getenv("DATAPATH").split(":"))

Function Documentation

◆ addSnapshot()

python.CaloTopoClusterConfig.addSnapshot ( topomaker,
corrName,
contName )

Definition at line 542 of file CaloTopoClusterConfig.py.

542def addSnapshot(topomaker, corrName,contName):
543 from AthenaCommon.Logging import logging
544 mlog = logging.getLogger('CaloTopoClusterConfig:addSnapshot')
545 corrTools=topomaker.ClusterCorrectionTools
546 newCorrTools=[]
547 found=False
548 for t in corrTools:
549 newCorrTools.append(t)
550 if (t.getName()==corrName):
551 newSnapshot=CompFactory.CaloClusterSnapshot("Snapshot_"+corrName,OutputName=contName,FinalClusterContainerName=topomaker.ClustersOutputName)
552 newCorrTools.append(newSnapshot)
553 found=True
554 if not found:
555 mlog.error("Did not find cluster correction tool %s", corrName)
556 else:
557 mlog.info("Added cluster snapshot after correction tool %s", corrName)
558 topomaker.ClusterCorrectionTools = newCorrTools
559 topomaker.ClusterCorrectionTools += [newSnapshot]
560 return
561
562# Run with python -m CaloRec.CaloTopoClusterConfig

◆ CaloCalibClusterTruthMapMakerTool()

python.CaloTopoClusterConfig.CaloCalibClusterTruthMapMakerTool ( flags,
name = "CaloCalibClusterTruthMapMakerTool",
** kwargs )

Definition at line 7 of file CaloTopoClusterConfig.py.

7def CaloCalibClusterTruthMapMakerTool(flags, name="CaloCalibClusterTruthMapMakerTool", **kwargs):
8
9 TruthMapMakerTool = CompFactory.CaloCalibClusterTruthMapMakerTool
10 truthMapTool = TruthMapMakerTool()
11
12 return truthMapTool
13
Tool creating lookup maps for calibration hit truth information.

◆ CaloCalibHitDecoratorFullEnergyTool()

python.CaloTopoClusterConfig.CaloCalibHitDecoratorFullEnergyTool ( flags,
name = "CaloCalibClusterDecoratorTool_Full",
** kwargs )

Definition at line 29 of file CaloTopoClusterConfig.py.

29def CaloCalibHitDecoratorFullEnergyTool(flags, name="CaloCalibClusterDecoratorTool_Full", **kwargs):
30
31 kwargs.setdefault(
32 "CaloClusterWriteDecorHandleKey_NLeadingTruthParticles",
33 "CaloTopoClusters." + flags.Calo.TopoCluster.CalibrationHitDecorationName + "_Full"
34 )
35 TruthAttributerTool = CompFactory.CaloCalibClusterTruthAttributerTool
36 truth_tool = TruthAttributerTool("CaloCalibClusterTruthAttributerTool")
37 DecoratorTool = CompFactory.CaloCalibClusterDecoratorTool
38 decoratorTool = DecoratorTool(name, TruthAttributerTool=truth_tool, **kwargs,ExtraInputs = {('CaloCellContainer','StoreGateSvc+AllCalo')})
39 decoratorTool.useCellWeights = True
40 decoratorTool.StoreFullTruthEnergy = True
41
42 return decoratorTool
43
44

◆ CaloCalibHitDecoratorTool()

python.CaloTopoClusterConfig.CaloCalibHitDecoratorTool ( flags,
name = "CaloCalibClusterDecoratorTool",
** kwargs )

Definition at line 14 of file CaloTopoClusterConfig.py.

14def CaloCalibHitDecoratorTool(flags, name="CaloCalibClusterDecoratorTool", **kwargs):
15
16 kwargs.setdefault(
17 "CaloClusterWriteDecorHandleKey_NLeadingTruthParticles",
18 "CaloTopoClusters." + flags.Calo.TopoCluster.CalibrationHitDecorationName + "_Visible"
19 )
20
21
22 TruthAttributerTool = CompFactory.CaloCalibClusterTruthAttributerTool
23 truth_tool = TruthAttributerTool("CaloCalibClusterTruthAttributerTool")
24 DecoratorTool = CompFactory.CaloCalibClusterDecoratorTool
25 decoratorTool = DecoratorTool(name,TruthAttributerTool=truth_tool,**kwargs,ExtraInputs = {('CaloCellContainer','StoreGateSvc+AllCalo')})
26 decoratorTool.useCellWeights = True
27 return decoratorTool
28

◆ CaloCalibHitDecoratorToolOOC()

python.CaloTopoClusterConfig.CaloCalibHitDecoratorToolOOC ( flags,
name = "CaloCalibClusterDecoratorToolOOC",
** kwargs )

Definition at line 45 of file CaloTopoClusterConfig.py.

45def CaloCalibHitDecoratorToolOOC(flags, name="CaloCalibClusterDecoratorToolOOC", **kwargs):
46
47 kwargs.setdefault(
48 "CaloClusterWriteDecorHandleKey_NLeadingTruthParticlesL",
49 "CaloTopoClusters." + flags.Calo.TopoCluster.CalibrationHitDecorationName + "_OOC_L",
50 )
51 kwargs.setdefault(
52 "CaloClusterWriteDecorHandleKey_NLeadingTruthParticlesT",
53 "CaloTopoClusters." + flags.Calo.TopoCluster.CalibrationHitDecorationName + "_OOC_T",
54 )
55
56 DecoratorTool = CompFactory.CaloCalibClusterDecoratorToolOOC
57 decoratorTool = DecoratorTool(name,**kwargs,ExtraInputs = {('CaloCellContainer','StoreGateSvc+AllCalo')})
58 decoratorTool.CalibrationHitContainerNames = [
59 "LArCalibrationHitInactive",
60 "LArCalibrationHitActive",
61 "TileCalibHitActiveCell",
62 "TileCalibHitInactiveCell"
63 ]
64 return decoratorTool
65
66
67
68
69
70
71

◆ CaloTopoClusterCfg()

python.CaloTopoClusterConfig.CaloTopoClusterCfg ( flags,
cellsname = "AllCalo",
clustersname = None,
clustersnapname = "CaloTopoClusters" )
Configures topo clustering

If output writing is enabled (ESD,AOD) the topo clusters are added to them

Definition at line 383 of file CaloTopoClusterConfig.py.

383def CaloTopoClusterCfg(flags, cellsname="AllCalo", clustersname=None, clustersnapname="CaloTopoClusters"):
384 """
385 Configures topo clustering
386
387 If output writing is enabled (ESD,AOD) the topo clusters are added to them
388 """
389 doLCCalib = flags.Calo.TopoCluster.doTopoClusterLocalCalib
390 if clustersname is None:
391 clustersname = "CaloCalTopoClusters" if doLCCalib else "CaloTopoClusters"
392
393
394 if clustersname=="CaloTopoClusters" and doLCCalib is True:
395 raise RuntimeError("Inconsistent arguments: Name must not be 'CaloTopoClusters' if doLCCalib is True")
396
397 result=ComponentAccumulator()
398
399 from LArGeoAlgsNV.LArGMConfig import LArGMCfg
400 from TileGeoModel.TileGMConfig import TileGMCfg
401 from CaloTools.CaloNoiseCondAlgConfig import CaloNoiseCondAlgCfg
402 # Schedule total noise cond alg
403 result.merge(CaloNoiseCondAlgCfg(flags,"totalNoise"))
404 # Schedule electronic noise cond alg (needed for LC weights)
405 result.merge(CaloNoiseCondAlgCfg(flags,"electronicNoise"))
406
407 CaloClusterMaker, CaloClusterSnapshot=CompFactory.getComps("CaloClusterMaker","CaloClusterSnapshot",)
408
409 result.merge(LArGMCfg(flags))
410
411 result.merge(TileGMCfg(flags))
412
413 TopoMaker = result.popToolsAndMerge( CaloTopoClusterToolCfg(flags, cellsname=cellsname))
414 TopoSplitter = result.popToolsAndMerge( CaloTopoClusterSplitterToolCfg(flags) )
415 #
416 # the following options are not set, since these are the default
417 # values
418 #
419 # NeighborOption = "super3D",
420 # NumberOfCellsCut = 4,
421 # EnergyCut = 500*MeV,
422
423 CaloTopoCluster=CaloClusterMaker(clustersname+"Maker")
424 CaloTopoCluster.ClustersOutputName=clustersname
425
426 CaloTopoCluster.ClusterMakerTools = [TopoMaker, TopoSplitter]
427
428 from CaloBadChannelTool.CaloBadChanToolConfig import CaloBadChanToolCfg
429 caloBadChanTool = result.popToolsAndMerge( CaloBadChanToolCfg(flags) )
430 CaloClusterBadChannelList=CompFactory.CaloClusterBadChannelList
431 BadChannelListCorr = CaloClusterBadChannelList(badChannelTool = caloBadChanTool)
432 CaloTopoCluster.ClusterCorrectionTools += [BadChannelListCorr]
433
434 momentsMaker=result.popToolsAndMerge(getTopoMoments(flags))
435 CaloTopoCluster.ClusterCorrectionTools += [momentsMaker]
436
437
438 if flags.Calo.TopoCluster.doCalibHitMoments:
439 calibHitsMomentsMaker=getTopoCalibMoments(flags)
440 CaloTopoCluster.ClusterCorrectionTools += [calibHitsMomentsMaker]
441 if clustersname == "CaloTopoClusters":
442 caloCalibTruthMapMaker = CaloCalibClusterTruthMapMakerTool(flags)
443 caloCalibDecorator = CaloCalibHitDecoratorTool(flags)
444 caloCalibDecoratorFullEnergy = CaloCalibHitDecoratorFullEnergyTool(flags)
445 caloCalibDecoratorOOC = CaloCalibHitDecoratorToolOOC(flags)
446 CaloTopoCluster.ClusterCorrectionTools += [caloCalibTruthMapMaker, caloCalibDecorator, caloCalibDecoratorFullEnergy,caloCalibDecoratorOOC]
447
448
449
450 if doLCCalib:
451 theCaloClusterSnapshot=CaloClusterSnapshot(OutputName=clustersnapname,SetCrossLinks=True,FinalClusterContainerName=clustersname)
452 CaloTopoCluster.ClusterCorrectionTools += [theCaloClusterSnapshot]
453 #if not clustersname:
454 CaloTopoCluster.ClusterCorrectionTools += getTopoClusterLocalCalibTools(flags)
455
456 from CaloRec.CaloTopoClusterConfig import caloTopoCoolFolderCfg
457 result.merge(caloTopoCoolFolderCfg(flags))
458
459
460 result.addEventAlgo(CaloTopoCluster,primary=True)
461
462 if CaloTopoCluster.ClustersOutputName in flags.Calo.TopoCluster.skipWriteList:
463 # don't add these clusters to ESD and AOD
464 return result
465
466
467 #Output config:
468 AODMoments=[ "SECOND_R"
469 ,"SECOND_LAMBDA"
470 ,"CENTER_MAG"
471 ,"CENTER_LAMBDA"
472 ,"FIRST_ENG_DENS"
473 ,"ENG_FRAC_MAX"
474 ,"ISOLATION"
475 ,"ENG_BAD_CELLS"
476 ,"N_BAD_CELLS"
477 ,"BADLARQ_FRAC"
478 ,"ENG_POS"
479 ,"SIGNIFICANCE"
480 ,"AVG_LAR_Q"
481 ,"AVG_TILE_Q"
482 ,"EM_PROBABILITY"
483 ,"BadChannelList"
484 ,"SECOND_TIME"
485 ,"NCELL_SAMPLING"]
486
487 if flags.Calo.TopoCluster.writeExtendedClusterMoments:
488 AODMoments += ["LATERAL"
489 ,"LONGITUDINAL"
490 ,"CELL_SIGNIFICANCE"
491 ,"PTD"
492 ,"MASS"]
493
494 if flags.Reco.EnableHI:
495 AODMoments += ["CELL_SIG_SAMPLING"]
496
497 if flags.Calo.TopoCluster.writeCalibHitClusterMoments:
498 AODMoments += ["ENG_CALIB_TOT"
499 ,"ENG_CALIB_OUT_L"
500 ,"ENG_CALIB_OUT_T"
501 ,"ENG_CALIB_EMB0"
502 ,"ENG_CALIB_EME0"
503 ,"ENG_CALIB_TILEG3"
504 ,"ENG_CALIB_DEAD_TOT"
505 ,"ENG_CALIB_DEAD_EMB0"
506 ,"ENG_CALIB_DEAD_TILE0"
507 ,"ENG_CALIB_DEAD_TILEG3"
508 ,"ENG_CALIB_DEAD_EME0"
509 ,"ENG_CALIB_DEAD_HEC0"
510 ,"ENG_CALIB_DEAD_FCAL"
511 ,"ENG_CALIB_DEAD_LEAKAGE"
512 ,"ENG_CALIB_DEAD_UNCLASS"
513 ,"ENG_CALIB_FRAC_EM"
514 ,"ENG_CALIB_FRAC_HAD"
515 ,"ENG_CALIB_FRAC_REST"]
516
517
518 from OutputStreamAthenaPool.OutputStreamConfig import addToAOD, addToESD
519 toESD = [f"xAOD::CaloClusterContainer#{CaloTopoCluster.ClustersOutputName}",
520 f"xAOD::CaloClusterAuxContainer#{CaloTopoCluster.ClustersOutputName}Aux.-sigmaWidth",
521 f"CaloClusterCellLinkContainer#{CaloTopoCluster.ClustersOutputName}_links"]
522 toAOD = [f"xAOD::CaloClusterContainer#{CaloTopoCluster.ClustersOutputName}",
523 f"CaloClusterCellLinkContainer#{CaloTopoCluster.ClustersOutputName}_links"]
524
525 AODMoments.append("CellLink") #Add data-link to cell-link container
526 if flags.Calo.TopoCluster.addCalibrationHitDecoration: #Add calib hit deco if requried
527 AODMoments.append(flags.Calo.TopoCluster.CalibrationHitDecorationName)
528
529 if flags.Calo.TopoCluster.addCPData:
530 AODMoments += ["ClusterWidthEta","ClusterWidthPhi"]
531
532 auxItems = f"xAOD::CaloClusterAuxContainer#{CaloTopoCluster.ClustersOutputName}Aux."
533 auxItems+= ".".join(AODMoments)
534
535 toAOD.append(auxItems)
536
537 result.merge(addToESD(flags, toESD))
538 result.merge(addToAOD(flags, toAOD))
539
540 return result
541
Top algorithm to reconstruct CaloCluster objects from CaloCell objects.

◆ CaloTopoClusterConfigTest()

python.CaloTopoClusterConfig.CaloTopoClusterConfigTest ( flags = None)

Definition at line 563 of file CaloTopoClusterConfig.py.

563def CaloTopoClusterConfigTest(flags=None):
564 if flags is None:
565 from AthenaConfiguration.AllConfigFlags import initConfigFlags
566 flags = initConfigFlags()
567 from AthenaConfiguration.TestDefaults import defaultTestFiles
568 flags.Input.Files = defaultTestFiles.ESD_RUN3_MC
569 flags.Output.ESDFileName="esdOut.pool.root"
570 flags.Exec.MaxEvents = 10
571 flags.fillFromArgs()
572 flags.lock()
573
574 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
575 cfg = MainServicesCfg(flags)
576
577 from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
578 cfg.merge(PoolReadCfg(flags))
579
580 topoAcc = CaloTopoClusterCfg(flags)
581 #topoAcc = CaloTopoClusterCfg(flags)
582 topoAlg = topoAcc.getPrimary()
583 topoAlg.ClustersOutputName = "CaloCalTopoClustersNew"
584 cfg.merge(topoAcc)
585
586
587 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
588 cfg.merge(OutputStreamCfg(flags,"xAOD", ItemList = ["xAOD::CaloClusterContainer#CaloCalTopoClusters*",
589 "xAOD::CaloClusterAuxContainer#*CaloCalTopoClusters*Aux.",
590 ]))
591
592 ThinNegativeEnergyCaloClustersAlg=CompFactory.ThinNegativeEnergyCaloClustersAlg
593 theNegativeEnergyCaloClustersThinner = ThinNegativeEnergyCaloClustersAlg(
594 "ThinNegativeEnergyCaloClustersAlg",
595 CaloClustersKey=topoAlg.ClustersOutputName,
596 ThinNegativeEnergyCaloClusters = True,
597 StreamName = 'StreamAOD'
598 )
599 cfg.addEventAlgo(theNegativeEnergyCaloClustersThinner,"AthAlgSeq")
600
601 cfg.addEventAlgo(CompFactory.ClusterDumper("TopoDumper",ContainerName=topoAlg.ClustersOutputName,FileName="TopoClusters.txt",
602 ReducedPrecision=True),sequenceName="AthAlgSeq")
603
604 return cfg.run().isSuccess()
605

◆ CaloTopoClusterSplitterToolCfg()

python.CaloTopoClusterConfig.CaloTopoClusterSplitterToolCfg ( flags)

Definition at line 354 of file CaloTopoClusterConfig.py.

354def CaloTopoClusterSplitterToolCfg(flags):
355 result=ComponentAccumulator()
356 TopoSplitter = CompFactory.CaloTopoClusterSplitter("TopoSplitter")
357 # cells from the following samplings will be able to form local
358 # maxima. The excluded samplings are PreSamplerB, EMB1,
359 # PreSamplerE, EME1, all Tile samplings, all HEC samplings and the
360 # two rear FCal samplings.
361 #
362 TopoSplitter.SamplingNames = ["EMB2", "EMB3",
363 "EME2", "EME3",
364 "FCAL0"]
365 # cells from the following samplings will also be able to form
366 # local maxima but only if they are not overlapping in eta and phi
367 # with local maxima in previous samplings from the primary list.
368 #
369 TopoSplitter.SecondarySamplingNames = ["EMB1","EME1",
370 "TileBar0","TileBar1","TileBar2",
371 "TileExt0","TileExt1","TileExt2",
372 "HEC0","HEC1","HEC2","HEC3",
373 "FCAL1","FCAL2"]
374 TopoSplitter.ShareBorderCells = True
375 TopoSplitter.RestrictHECIWandFCalNeighbors = False
376 TopoSplitter.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
377
378 TopoSplitter.UseGPUCriteria = flags.Calo.TopoCluster.UseGPUCompatibleCriteria
379
380 result.setPrivateTools(TopoSplitter)
381 return result
382

◆ CaloTopoClusterToolCfg()

python.CaloTopoClusterConfig.CaloTopoClusterToolCfg ( flags,
cellsname )

Definition at line 295 of file CaloTopoClusterConfig.py.

295def CaloTopoClusterToolCfg(flags, cellsname):
296 result=ComponentAccumulator()
297 # maker tools
298 TopoMaker = CompFactory.CaloTopoClusterMaker("TopoMaker")
299
300 TopoMaker.CellsName = cellsname
301 TopoMaker.CalorimeterNames=["LAREM",
302 "LARHEC",
303 "LARFCAL",
304 "TILE"]
305 # cells from the following samplings will be able to form
306 # seeds. By default no sampling is excluded
307 TopoMaker.SeedSamplingNames = ["PreSamplerB", "EMB1", "EMB2", "EMB3",
308 "PreSamplerE", "EME1", "EME2", "EME3",
309 "HEC0", "HEC1","HEC2", "HEC3",
310 "TileBar0", "TileBar1", "TileBar2",
311 "TileExt0", "TileExt1", "TileExt2",
312 "TileGap1", "TileGap2", "TileGap3",
313 "FCAL0", "FCAL1", "FCAL2"]
314 TopoMaker.NeighborOption = "super3D"
315 TopoMaker.RestrictHECIWandFCalNeighbors = False
316 TopoMaker.RestrictPSNeighbors = True
317 TopoMaker.CellThresholdOnEorAbsEinSigma = 0.0
318 TopoMaker.NeighborThresholdOnEorAbsEinSigma = 2.0
319 TopoMaker.SeedThresholdOnEorAbsEinSigma = 4.0
320
321 #timing
322 TopoMaker.SeedCutsInT = flags.Calo.TopoCluster.doTimeCut
323 TopoMaker.CutOOTseed = flags.Calo.TopoCluster.extendTimeCut and flags.Calo.TopoCluster.doTimeCut
324 TopoMaker.UseTimeCutUpperLimit = flags.Calo.TopoCluster.useUpperLimitForTimeCut
325 TopoMaker.TimeCutUpperLimit = flags.Calo.TopoCluster.timeCutUpperLimit
326 TopoMaker.XTalkEM2 = flags.Calo.TopoCluster.xtalkEM2
327 TopoMaker.XTalkEM2D = flags.Calo.TopoCluster.xtalkEM2D
328 TopoMaker.XTalkEM2n = flags.Calo.TopoCluster.xtalkEM2n
329 TopoMaker.XTalkEM3 = flags.Calo.TopoCluster.xtalkEM3
330 TopoMaker.XTalkEMEta = flags.Calo.TopoCluster.xtalkEMEta
331 TopoMaker.XTalkDeltaT = flags.Calo.TopoCluster.xtalkDeltaT
332 TopoMaker.XTalk2Eratio1 = flags.Calo.TopoCluster.xtalk2Eratio1
333 TopoMaker.XTalk2Eratio2 = flags.Calo.TopoCluster.xtalk2Eratio2
334 TopoMaker.XTalk3Eratio = flags.Calo.TopoCluster.xtalk3Eratio
335 TopoMaker.XTalkEtaEratio = flags.Calo.TopoCluster.xtalkEtaEratio
336 TopoMaker.XTalk2DEratio = flags.Calo.TopoCluster.xtalk2DEratio
337
338 # note E or AbsE
339 #
340 # the following properties must be set to TRUE in order to make double
341 # sided cuts on the seed and the cluster level
342 #
343 TopoMaker.SeedCutsInAbsE = True
344 TopoMaker.ClusterCutsInAbsEt = True
345 TopoMaker.ClusterEtorAbsEtCut = 0.0*MeV
346 # use 2-gaussian or single gaussian noise for TileCal
347 TopoMaker.TwoGaussianNoise = flags.Calo.TopoCluster.doTwoGaussianNoise
348
349 TopoMaker.UseGPUCriteria = flags.Calo.TopoCluster.UseGPUCompatibleCriteria
350
351 result.setPrivateTools(TopoMaker)
352 return result
353

◆ caloTopoCoolFolderCfg()

python.CaloTopoClusterConfig.caloTopoCoolFolderCfg ( flags)

Definition at line 72 of file CaloTopoClusterConfig.py.

72def caloTopoCoolFolderCfg(flags):
73 result=ComponentAccumulator()
74 from IOVDbSvc.IOVDbSvcConfig import addFolders
75 # rely on global tag for both MC and data; do not specify folder tags
76 # use CALO_OFL only for GEO>=18
77 hadCalibFolders = [
78 "HadCalibration2/CaloEMFrac",
79 "HadCalibration2/H1ClusterCellWeights",
80 "HadCalibration2/CaloOutOfCluster",
81 "HadCalibration2/CaloOutOfClusterPi0",
82 "HadCalibration2/CaloDMCorr2"
83 ]
84 hadCalibPrefix = "/CALO/"
85 hadCalibDB = "CALO_ONL"
86 if flags.Input.isMC:
87 hadCalibPrefix = "/CALO/Ofl/"
88 hadCalibDB = "CALO_OFL"
89 hadCalibFolders = [ hadCalibPrefix + foldername for foldername in hadCalibFolders ]
90 result.merge(addFolders(flags, hadCalibFolders, hadCalibDB, className="CaloLocalHadCoeff"))
91
92 return result
93

◆ getTopoCalibMoments()

python.CaloTopoClusterConfig.getTopoCalibMoments ( flags)

Definition at line 265 of file CaloTopoClusterConfig.py.

265def getTopoCalibMoments(flags):
266 CaloCalibClusterMomentsMaker2=CompFactory.CaloCalibClusterMomentsMaker2
267 TopoCalibMoments = CaloCalibClusterMomentsMaker2 ("TopoCalibMoments")
268 TopoCalibMoments.MomentsNames = ["ENG_CALIB_TOT"
269 ,"ENG_CALIB_OUT_L"
270 ,"ENG_CALIB_OUT_T"
271 ,"ENG_CALIB_EMB0"
272 ,"ENG_CALIB_EME0"
273 ,"ENG_CALIB_TILEG3"
274 ,"ENG_CALIB_DEAD_TOT"
275 ,"ENG_CALIB_DEAD_EMB0"
276 ,"ENG_CALIB_DEAD_TILE0"
277 ,"ENG_CALIB_DEAD_TILEG3"
278 ,"ENG_CALIB_DEAD_EME0"
279 ,"ENG_CALIB_DEAD_HEC0"
280 ,"ENG_CALIB_DEAD_FCAL"
281 ,"ENG_CALIB_DEAD_LEAKAGE"
282 ,"ENG_CALIB_DEAD_UNCLASS"
283 ,"ENG_CALIB_FRAC_EM"
284 ,"ENG_CALIB_FRAC_HAD"
285 ,"ENG_CALIB_FRAC_REST"]
286
287 TopoCalibMoments.CalibrationHitContainerNames = ["LArCalibrationHitInactive"
288 ,"LArCalibrationHitActive"
289 ,"TileCalibHitActiveCell"
290 ,"TileCalibHitInactiveCell"]
291 TopoCalibMoments.DMCalibrationHitContainerNames = ["LArCalibrationHitDeadMaterial"
292 ,"TileCalibHitDeadMaterial"]
293 return TopoCalibMoments
294

◆ getTopoClusterLocalCalibTools()

python.CaloTopoClusterConfig.getTopoClusterLocalCalibTools ( flags)

Definition at line 94 of file CaloTopoClusterConfig.py.

94def getTopoClusterLocalCalibTools(flags):
95 CaloLCClassificationTool, CaloLCWeightTool, CaloLCOutOfClusterTool, CaloLCDeadMaterialTool=CompFactory.getComps("CaloLCClassificationTool","CaloLCWeightTool","CaloLCOutOfClusterTool","CaloLCDeadMaterialTool",)
96 CaloClusterLocalCalib=CompFactory.CaloClusterLocalCalib
97 # Local cell weights
98 LCClassify = CaloLCClassificationTool("LCClassify")
99 LCClassify.ClassificationKey = "EMFracClassify"
100 LCClassify.UseSpread = False
101 LCClassify.MaxProbability = 0.5
102 # add the moments EM_PROBABILITY, HAD_WEIGHT, OOC_WEIGHT, DM_WEIGHT to the AOD:
103 LCClassify.StoreClassificationProbabilityInAOD = True
104 LCClassify.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
105
106 LCWeight = CaloLCWeightTool("LCWeight")
107 LCWeight.CorrectionKey = "H1ClusterCellWeights"
108 LCWeight.SignalOverNoiseCut = 2.0
109 # *****
110 LCWeight.UseHadProbability = True
111
112 LocalCalib = CaloClusterLocalCalib ("LocalCalib")
113 LocalCalib.ClusterClassificationTool = [LCClassify]
114 LocalCalib.ClusterRecoStatus = [1,2]
115 LocalCalib.LocalCalibTools = [LCWeight]
116 LocalCalib.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
117
118 # Out-of-cluster corrections
119 LCOut = CaloLCOutOfClusterTool("LCOut")
120 LCOut.CorrectionKey = "OOCCorrection"
121 LCOut.UseEmProbability = False
122 LCOut.UseHadProbability = True
123
124 OOCCalib = CaloClusterLocalCalib ("OOCCalib")
125 OOCCalib.ClusterRecoStatus = [1,2]
126 OOCCalib.LocalCalibTools = [LCOut]
127 OOCCalib.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
128
129 LCOutPi0 = CaloLCOutOfClusterTool("LCOutPi0")
130 LCOutPi0.CorrectionKey = "OOCPi0Correction"
131 LCOutPi0.UseEmProbability = True
132 LCOutPi0.UseHadProbability = False
133
134 OOCPi0Calib = CaloClusterLocalCalib ("OOCPi0Calib")
135 OOCPi0Calib.ClusterRecoStatus = [1,2]
136 OOCPi0Calib.LocalCalibTools = [LCOutPi0]
137
138 OOCPi0Calib.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
139
140 # Dead material corrections
141 LCDeadMaterial = CaloLCDeadMaterialTool("LCDeadMaterial")
142 LCDeadMaterial.HadDMCoeffKey = "HadDMCoeff2"
143 LCDeadMaterial.ClusterRecoStatus = 0
144 LCDeadMaterial.WeightModeDM = 2
145 LCDeadMaterial.UseHadProbability = True
146 LCDeadMaterial.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
147
148 DMCalib = CaloClusterLocalCalib ("DMCalib")
149 DMCalib.ClusterRecoStatus = [1,2]
150 DMCalib.LocalCalibTools = [LCDeadMaterial]
151
152 DMCalib.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
153
154 lccalibtools = [
155 LocalCalib,
156 OOCCalib,
157 OOCPi0Calib,
158 DMCalib]
159 return lccalibtools
160
classify clusters according to their probability to stem from an em object
dead material correction tool for local hadronic calibration
calculates out-of-cluster corrections based on cluster quantities
calculates hadronic cell weights based on cluster and cell quantities

◆ getTopoMoments()

python.CaloTopoClusterConfig.getTopoMoments ( flags)

Definition at line 161 of file CaloTopoClusterConfig.py.

161def getTopoMoments(flags):
162 result=ComponentAccumulator()
163 CaloClusterMomentsMaker=CompFactory.CaloClusterMomentsMaker
164 TopoMoments = CaloClusterMomentsMaker ("TopoMoments")
165 TopoMoments.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
166 from AthenaCommon.SystemOfUnits import deg
167 TopoMoments.MaxAxisAngle = 20*deg
168 TopoMoments.TwoGaussianNoise = flags.Calo.TopoCluster.doTwoGaussianNoise
169 TopoMoments.MinBadLArQuality = 4000
170 TopoMoments.MomentsNames = ["FIRST_PHI"
171 ,"FIRST_ETA"
172 ,"SECOND_R"
173 ,"SECOND_LAMBDA"
174 ,"DELTA_PHI"
175 ,"DELTA_THETA"
176 ,"DELTA_ALPHA"
177 ,"CENTER_X"
178 ,"CENTER_Y"
179 ,"CENTER_Z"
180 ,"CENTER_MAG"
181 ,"CENTER_LAMBDA"
182 ,"LATERAL"
183 ,"LONGITUDINAL"
184 ,"FIRST_ENG_DENS"
185 ,"ENG_FRAC_EM"
186 ,"ENG_FRAC_MAX"
187 ,"ENG_FRAC_CORE"
188 ,"FIRST_ENG_DENS"
189 ,"SECOND_ENG_DENS"
190 ,"ISOLATION"
191 ,"ENG_BAD_CELLS"
192 ,"N_BAD_CELLS"
193 ,"N_BAD_CELLS_CORR"
194 ,"BAD_CELLS_CORR_E"
195 ,"BADLARQ_FRAC"
196 ,"ENG_POS"
197 ,"SIGNIFICANCE"
198 ,"CELL_SIGNIFICANCE"
199 ,"CELL_SIG_SAMPLING"
200 ,"AVG_LAR_Q"
201 ,"AVG_TILE_Q"
202 ,"PTD"
203 ,"MASS"
204 ,"SECOND_TIME"
205 ,"NCELL_SAMPLING"
206 ]
207
208
209 if not flags.Common.isOnline:
210 from LArConfiguration.LArElecCalibDBConfig import LArElecCalibDBCfg
211 result.merge(LArElecCalibDBCfg(flags,["HVScaleCorr"]))
212 if flags.Input.isMC:
213 TopoMoments.LArHVFraction=CompFactory.LArHVFraction(HVScaleCorrKey="LArHVScaleCorr")
214 else:
215 TopoMoments.LArHVFraction=CompFactory.LArHVFraction(HVScaleCorrKey="LArHVScaleCorrRecomputed")
216 TopoMoments.MomentsNames += ["ENG_BAD_HV_CELLS"
217 ,"N_BAD_HV_CELLS"
218 ]
219
220 TopoMoments.UseGPUCriteria = flags.Calo.TopoCluster.UseGPUCompatibleCriteria
221
222 result.setPrivateTools(TopoMoments)
223 return result
224
225# a.k.a. DigiTruth

◆ getTopoTruthMoments()

python.CaloTopoClusterConfig.getTopoTruthMoments ( flags)

Definition at line 226 of file CaloTopoClusterConfig.py.

226def getTopoTruthMoments(flags):
227 CaloClusterMomentsMaker_DigiHSTruth=CompFactory.CaloClusterMomentsMaker_DigiHSTruth
228 TopoMoments_Truth = CaloClusterMomentsMaker_DigiHSTruth ("TopoMoments_Truth")
229 TopoMoments_Truth.WeightingOfNegClusters = flags.Calo.TopoCluster.doTreatEnergyCutAsAbsolute
230 from AthenaCommon.SystemOfUnits import deg
231 TopoMoments_Truth.MaxAxisAngle = 20*deg
232 TopoMoments_Truth.TwoGaussianNoise = flags.Calo.TopoCluster.doTwoGaussianNoise
233 TopoMoments_Truth.MinBadLArQuality = 4000
234 TopoMoments_Truth.MomentsNames = ["FIRST_PHI_DigiHSTruth"
235 ,"FIRST_ETA_DigiHSTruth"
236 ,"SECOND_R_DigiHSTruth"
237 ,"SECOND_LAMBDA_DigiHSTruth"
238 ,"DELTA_PHI_DigiHSTruth"
239 ,"DELTA_THETA_DigiHSTruth"
240 ,"DELTA_ALPHA_DigiHSTruth"
241 ,"CENTER_X_DigiHSTruth"
242 ,"CENTER_Y_DigiHSTruth"
243 ,"CENTER_Z_DigiHSTruth"
244 ,"CENTER_MAG_DigiHSTruth"
245 ,"CENTER_LAMBDA_DigiHSTruth"
246 ,"LATERAL_DigiHSTruth"
247 ,"LONGITUDINAL_DigiHSTruth"
248 ,"ENG_FRAC_CORE_DigiHSTruth"
249 ,"FIRST_ENG_DENS_DigiHSTruth"
250 ,"SECOND_ENG_DENS_DigiHSTruth"
251 ,"ISOLATION_DigiHSTruth"
252 ,"BAD_CELLS_CORR_E_DigiHSTruth"
253 ,"ENG_POS_DigiHSTruth"
254 ,"SIGNIFICANCE_DigiHSTruth"
255 ,"CELL_SIGNIFICANCE_DigiHSTruth"
256 ,"CELL_SIG_SAMPLING_DigiHSTruth"
257 ,"AVG_LAR_Q_DigiHSTruth"
258 ,"AVG_TILE_Q_DigiHSTruth"
259 ,"ENERGY_DigiHSTruth"
260 ,"PHI_DigiHSTruth"
261 ,"ETA_DigiHSTruth"
262 ]
263 return TopoMoments_Truth
264

Variable Documentation

◆ refFile

python.CaloTopoClusterConfig.refFile = find_datafile("CaloRec/CaloRec-00-00-01/TopoClusters.txt.ref",pathlist=os.getenv("DATAPATH").split(":"))

Definition at line 617 of file CaloTopoClusterConfig.py.

◆ stat

python.CaloTopoClusterConfig.stat = CaloTopoClusterConfigTest()

Definition at line 609 of file CaloTopoClusterConfig.py.