ATLAS Offline Software
JiveXMLConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4 from AthenaConfiguration.ComponentFactory import CompFactory
5 from AthenaConfiguration.Enums import Format
6 
7 
9  import os
10 
11  if "AtlasVersion" in os.environ:
12  return os.environ["AtlasVersion"]
13  if "AtlasBaseVersion" in os.environ:
14  return os.environ["AtlasBaseVersion"]
15  return "Unknown"
16 
17 
18 def getDataTypes(flags, haveRDO=False, readAOD=False):
19  data_types = [] # These need to match the tools added later
20  if flags.Detector.EnableID:
21  # General ID types
22  if flags.Detector.GeometryPixel and flags.Detector.GeometrySCT:
23  data_types += ["JiveXML::SiSpacePointRetriever/SiSpacePointRetriever"]
24  data_types += ["JiveXML::SiClusterRetriever/SiClusterRetriever"]
25  data_types += ["JiveXML::VertexRetriever/VertexRetriever"]
26  # These options will retrieve any available collection of segments/tracks from storegate
27  data_types += ["JiveXML::SegmentRetriever/SegmentRetriever"]
28  data_types += ["JiveXML::TrackRetriever/TrackRetriever"]
29 
30  if flags.Detector.EnablePixel and flags.Detector.GeometryPixel:
31  data_types += ["JiveXML::PixelClusterRetriever/PixelClusterRetriever"]
32  if haveRDO:
33  data_types += ["JiveXML::PixelRDORetriever/PixelRDORetriever"]
34  if flags.Detector.EnableTRT and flags.Detector.GeometryTRT:
35  data_types += ["JiveXML::TRTRetriever/TRTRetriever"]
36  if haveRDO and flags.Detector.EnableSCT and flags.Detector.GeometrySCT:
37  data_types += ["JiveXML::SCTRDORetriever/SCTRDORetriever"]
38 
39  if not flags.OnlineEventDisplays.OfflineTest:
40  # TODO this datatype is not yet understood by Atlantis
41  data_types += ["JiveXML::BeamSpotRetriever/BeamSpotRetriever"]
42 
43  # Truth (from TruthJiveXML_DataTypes.py)
44  if not readAOD:
45  data_types += ["JiveXML::TruthTrackRetriever/TruthTrackRetriever"]
46  data_types += ["JiveXML::TruthMuonTrackRetriever/TruthMuonTrackRetriever"]
47 
48  if flags.Detector.EnableCalo and flags.Detector.GeometryCalo:
49  # Taken from CaloJiveXML_DataTypes.py
50  # TODO find correct flag and check the LArDigitRetriever is doing what we want it to do
51  #if doLArDigits:
52  #data_types += ["JiveXML::LArDigitRetriever/LArDigitRetriever"]
53  #else:
54  if flags.Detector.EnableLAr and flags.Detector.GeometryLAr:
55  data_types += ["JiveXML::CaloFCalRetriever/CaloFCalRetriever"]
56  data_types += ["JiveXML::CaloHECRetriever/CaloHECRetriever"]
57  data_types += ["JiveXML::CaloLArRetriever/CaloLArRetriever"]
58  #end of else
59  if flags.Detector.EnableMBTS and flags.Detector.GeometryMBTS:
60  data_types += ["JiveXML::CaloMBTSRetriever/CaloMBTSRetriever"]
61  if flags.Detector.EnableTile and flags.Detector.GeometryTile:
62  data_types += ["JiveXML::CaloTileRetriever/CaloTileRetriever"]
63  data_types += ["JiveXML::CaloClusterRetriever/CaloClusterRetriever"]
64 
65  if flags.Detector.EnableMuon and flags.Detector.GeometryMuon:
66  # Taken from MuonJiveXML_DataTypes.py
67  if flags.Detector.EnableMDT and flags.Detector.GeometryMDT:
68  data_types += ["JiveXML::MdtPrepDataRetriever/MdtPrepDataRetriever"]
69  if flags.Detector.EnableTGC and flags.Detector.GeometryTGC:
70  data_types += ["JiveXML::TgcPrepDataRetriever/TgcPrepDataRetriever"]
71  data_types += ["JiveXML::sTgcPrepDataRetriever/sTgcPrepDataRetriever"]
72  if flags.Detector.EnableRPC and flags.Detector.GeometryRPC:
73  data_types += ["JiveXML::RpcPrepDataRetriever/RpcPrepDataRetriever"]
74  if flags.Detector.EnableCSC and flags.Detector.GeometryCSC:
75  data_types += ["JiveXML::CSCClusterRetriever/CSCClusterRetriever"]
76  data_types += ["JiveXML::CscPrepDataRetriever/CscPrepDataRetriever"]
77  if flags.Detector.EnableMM and flags.Detector.GeometryMM:
78  data_types += ["JiveXML::MMPrepDataRetriever/MMPrepDataRetriever"]
79  # TODO Not sure if below are still needed?
80  # data_types += ["JiveXML::TrigMuonROIRetriever/TrigMuonROIRetriever"]
81  # data_types += ["JiveXML::MuidTrackRetriever/MuidTrackRetriever]
82  # data_types += ["JiveXML::TrigRpcDataRetriever/TrigRpcDataRetriever"]
83 
84  # Taken from xAODJiveXML_DataTypes.py
85  data_types += ["JiveXML::xAODCaloClusterRetriever/xAODCaloClusterRetriever"]
86  data_types += ["JiveXML::xAODElectronRetriever/xAODElectronRetriever"]
87  data_types += ["JiveXML::xAODMissingETRetriever/xAODMissingETRetriever"]
88  data_types += ["JiveXML::xAODMuonRetriever/xAODMuonRetriever"]
89  data_types += ["JiveXML::xAODPhotonRetriever/xAODPhotonRetriever"]
90  data_types += ["JiveXML::xAODJetRetriever/xAODJetRetriever"]
91  data_types += ["JiveXML::xAODTauRetriever/xAODTauRetriever"]
92  data_types += ["JiveXML::xAODTrackParticleRetriever/xAODTrackParticleRetriever"]
93  data_types += ["JiveXML::xAODVertexRetriever/xAODVertexRetriever"]
94 
95  if flags.Reco.EnableTrigger:
96  # Taken from TrigJiveXML_DataTypes.py
97  data_types += ["JiveXML::LVL1ResultRetriever/LVL1ResultRetriever"]
98  data_types += ["JiveXML::TriggerInfoRetriever/TriggerInfoRetriever"]
99  data_types += ["JiveXML::xAODEmTauROIRetriever/xAODEmTauROIRetriever"]
100  data_types += ["JiveXML::xAODJetROIRetriever/xAODJetROIRetriever"]
101  data_types += ["JiveXML::xAODMuonROIRetriever/xAODMuonROIRetriever"]
102  data_types += ["JiveXML::xAODTriggerTowerRetriever/xAODTriggerTowerRetriever"]
103 
104  return data_types
105 
106 
107 def AlgoJiveXMLCfg(flags, name="AlgoJiveXML", **kwargs):
108  # This is based on a few old-style configuation files:
109  # JiveXML_RecEx_config.py
110  # JiveXML_jobOptionBase.py
111  result = ComponentAccumulator()
112 
113  kwargs.setdefault("AtlasRelease", getATLASVersion())
114  kwargs.setdefault("WriteToFile", True)
115 
116  kwargs.setdefault("WriteGeometry", False)
117  kwargs.setdefault("StreamToServerTool", None)
118 
119  # This next bit sets the data types, then we set the associated public tools
120  readAOD = False # FIXME - set this properly
121  readESD = False # FIXME - set this properly
122  haveRDO = (
123  flags.Input.Format is Format.BS or "StreamRDO" in flags.Input.ProcessingTags
124  )
125  kwargs.setdefault("DataTypes", getDataTypes(flags, haveRDO, readAOD))
126 
127  if not readAOD:
128  from JiveXML.TruthTrackRetrieverConfig import TruthTrackRetrieverCfg
129  result.merge(TruthTrackRetrieverCfg(flags))
130 
131  if haveRDO or readESD:
132  if flags.Detector.EnableID and flags.Detector.GeometryID:
133  from JiveXML.InDetRetrieversConfig import InDetRetrieversCfg
134  result.merge(InDetRetrieversCfg(flags))
135 
136  if flags.Detector.EnableCalo and flags.Detector.GeometryCalo:
137  from JiveXML.CaloRetrieversConfig import CaloRetrieversCfg
138  result.merge(CaloRetrieversCfg(flags))
139 
140  if flags.Detector.EnableMuon and flags.Detector.GeometryMuon:
141  from JiveXML.MuonRetrieversConfig import MuonRetrieversCfg
142  result.merge(MuonRetrieversCfg(flags))
143 
144  from JiveXML.xAODRetrieversConfig import xAODRetrieversCfg
145  result.merge(xAODRetrieversCfg(flags))
146 
147  from JiveXML.TriggerRetrieversConfig import TriggerRetrieversCfg
148  result.merge(TriggerRetrieversCfg(flags))
149 
150  the_alg = CompFactory.JiveXML.AlgoJiveXML(name="AlgoJiveXML", **kwargs)
151  result.addEventAlgo(the_alg, primary=True)
152  return result
InDetRetrieversConfig.InDetRetrieversCfg
def InDetRetrieversCfg(flags)
Definition: InDetRetrieversConfig.py:76
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
JiveXMLConfig.AlgoJiveXMLCfg
def AlgoJiveXMLCfg(flags, name="AlgoJiveXML", **kwargs)
Definition: JiveXMLConfig.py:107
TruthTrackRetrieverConfig.TruthTrackRetrieverCfg
def TruthTrackRetrieverCfg(flags, name="TruthTrackRetriever", **kwargs)
Definition: TruthTrackRetrieverConfig.py:6
MuonRetrieversConfig.MuonRetrieversCfg
def MuonRetrieversCfg(flags, **kwargs)
Definition: MuonRetrieversConfig.py:7
JiveXMLConfig.getATLASVersion
def getATLASVersion()
Definition: JiveXMLConfig.py:8
xAODRetrieversConfig.xAODRetrieversCfg
def xAODRetrieversCfg(flags)
Definition: xAODRetrieversConfig.py:7
TriggerRetrieversConfig.TriggerRetrieversCfg
def TriggerRetrieversCfg(flags)
Definition: TriggerRetrieversConfig.py:7
CaloRetrieversConfig.CaloRetrieversCfg
def CaloRetrieversCfg(flags, **kwargs)
Definition: CaloRetrieversConfig.py:8
JiveXMLConfig.getDataTypes
def getDataTypes(flags, haveRDO=False, readAOD=False)
Definition: JiveXMLConfig.py:18