ATLAS Offline Software
Loading...
Searching...
No Matches
RecordExtraInfoConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaConfiguration.Enums import ProductionStep
5
6from AthenaConfiguration.ComponentFactory import CompFactory
7from OutputStreamAthenaPool.OutputStreamConfig import addToAOD, addToESD
8
9spacePointKeys = [ "xAOD::BaseContainer#SpacePoints", "xAOD::AuxContainerBase#SpacePointsAux.x.y.z.tot.csize.module1.module2" ]
10mbtsBitsKeys = [ "xAOD::TrigT2MbtsBitsContainer#MBTSBits", "xAOD::TrigT2MbtsBitsAuxContainer#MBTSBitsAux." ]
11
12def _inRecoOrLater(flags):
13 return flags.Common.ProductionStep is ProductionStep.Reconstruction \
14 or flags.Common.ProductionStep is ProductionStep.Derivation
15
16def addSpacePoints(flags):
17 """
18 Adds Space Points data to the AOD/ESD output, if necessary schedule producer algorithm
19 """
20 acc = ComponentAccumulator()
21
22 if not _inRecoOrLater(flags):
23 return acc
24
25 acc.merge(addToAOD(flags, spacePointKeys))
26 acc.merge(addToESD(flags, spacePointKeys))
27
28 if spacePointKeys[0].split("#")[1] not in flags.Input.Collections:
29 copier = CompFactory.SpacePointCopier(maxTracks=20)
30 acc.addEventAlgo(copier)
31 return acc
32
33def addMBTS(flags):
34 """
35 Adds MBTS data to the AOD/ESD output, if necessary schedule producer algorithm
36 """
37 acc = ComponentAccumulator()
38 if not _inRecoOrLater(flags):
39 return acc
40
41 acc.merge(addToAOD(flags, mbtsBitsKeys))
42 acc.merge(addToESD(flags, mbtsBitsKeys))
43
44 if mbtsBitsKeys[0].split("#")[1] not in flags.Input.Collections:
45 copier = CompFactory.MBTSInfoCopier()
46 acc.addEventAlgo(copier)
47
48 return acc
49
51 """
52 Add detail of Topo clusters for UPC analyses
53 """
54 acc = ComponentAccumulator()
55 if not _inRecoOrLater(flags):
56 return acc
57 clusterDetails= ["xAOD::CaloClusterAuxContainer#CaloCalTopoClustersAux.SECOND_R.SECOND_LAMBDA.CENTER_MAG.CENTER_LAMBDA.FIRST_ENG_DENS.ENG_FRAC_MAX.ISOLATION.ENG_BAD_CELLS.N_BAD_CELLS.BADLARQ_FRAC.ENG_POS.AVG_LAR_Q.AVG_TILE_Q.EM_PROBABILITY.BadChannelList.CELL_SIGNIFICANCE.CELL_SIG_SAMPLING"]
58
59 acc.merge(addToAOD(flags, clusterDetails))
60 acc.merge(addToESD(flags, clusterDetails))
61 return acc
62
64 """
65 Add CaloClusters for peripheral events analysis
66 """
67 acc = ComponentAccumulator()
68 if not _inRecoOrLater(flags):
69 return acc
70
71 # Add the output container to AOD
72 containersToRecord = ["xAOD::CaloClusterContainer#PeripheralCaloCalTopoClusters", "xAOD::CaloClusterAuxContainer#PeripheralCaloCalTopoClustersAux."]
73 acc.merge(addToAOD(flags, containersToRecord))
74 acc.merge(addToESD(flags, containersToRecord))
75
76 copier = CompFactory.CaloClustersCopier()
77 acc.addEventAlgo(copier)
78 return acc
std::vector< std::string > split(const std::string &s, const std::string &t=":")
Definition hcg.cxx:177