ATLAS Offline Software
TRT_ElectronPidToolsConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
3 from AthenaConfiguration.ComponentFactory import CompFactory
4 
5 
6 def TRT_LocalOccupancyCfg(flags, name="TRT_LocalOccupancy", **kwargs):
8  from TRT_ConditionsServices.TRT_ConditionsServicesConfig import TRT_CalDbToolCfg
9  CalDbTool = acc.popToolsAndMerge(TRT_CalDbToolCfg(flags))
10  acc.addPublicTool(CalDbTool) # public as it is has many clients to save some memory
11  kwargs.setdefault("TRTCalDbTool", CalDbTool)
12 
13  from TRT_ConditionsAlgs.TRT_ConditionsAlgsConfig import TRTStrawStatusCondAlgCfg, TRTStrawCondAlgCfg
14  acc.merge(TRTStrawStatusCondAlgCfg(flags))
15  acc.merge(TRTStrawCondAlgCfg(flags))
16 
17  kwargs.setdefault("isTrigger", False)
18 
19  if "TRT_DriftCircleCollection" not in kwargs:
20  # TODO: Drift circles
21  pass
22 
23  acc.setPrivateTools(CompFactory.InDet.TRT_LocalOccupancy(name, **kwargs))
24  return acc
25 
26 def TrigTRT_LocalOccupancyCfg(flags, name="TrigTRT_LocalOccupancy", **kwargs):
27  acc = ComponentAccumulator()
28 
29  kwargs.setdefault("isTrigger", True)
30  kwargs.setdefault("TRT_DriftCircleCollection", "TRT_TrigDriftCircles")
31 
32  acc.setPrivateTools(acc.popToolsAndMerge(TRT_LocalOccupancyCfg(flags,name,**kwargs)))
33  return acc
34 
35 
36 def TRT_OverlayLocalOccupancyCfg(flags, name="TRT_OverlayLocalOccupancy", **kwargs):
37  """Return a ComponentAccumulator for overlay TRT_LocalOccupancy Tool"""
38  kwargs.setdefault("TRT_DriftCircleCollection", "")
39  from TRT_ConditionsAlgs.TRT_ConditionsAlgsConfig import TRTStrawStatusCondAlgCfg
40  acc = TRTStrawStatusCondAlgCfg(flags, StrawStatusHTSummaryWriteKey="")
41  acc.setPrivateTools(acc.popToolsAndMerge(TRT_LocalOccupancyCfg(flags, name, **kwargs)))
42  return acc
43 
44 
45 def TRTOccupancyIncludeCfg(flags, name="TRTOccupancyInclude", **kwargs):
46  acc = ComponentAccumulator()
47  tool = acc.popToolsAndMerge(TRT_LocalOccupancyCfg(flags))
48  acc.addPublicTool(tool)
49  kwargs.setdefault("TRT_LocalOccupancyTool", tool)
50  acc.addEventAlgo(CompFactory.TRTOccupancyInclude(name, **kwargs))
51  return acc
52 
53 
54 def __TRT_dEdxToolBaseCfg(flags, name, **kwargs):
55  """internal function to avoid code duplication,
56  it does not deal with LumiBlockMuWriterCfg dependancy correctly
57  """
58 
59  from TRT_ConditionsAlgs.TRT_ConditionsAlgsConfig import TRTToTCondAlgCfg
60  acc = TRTToTCondAlgCfg(flags)
61 
62  kwargs.setdefault("TRT_dEdx_isData", not flags.Input.isMC)
63 
64  acc.setPrivateTools(CompFactory.TRT_ToT_dEdx(name,**kwargs))
65  return acc
66 
67 
68 def TRT_dEdxToolCfg(flags, name="TRT_dEdxTool", **kwargs):
69  acc = ComponentAccumulator()
70 
71  if not flags.Input.isMC:
72  from LumiBlockComps.LumiBlockMuWriterConfig import LumiBlockMuWriterCfg
73  acc.merge(LumiBlockMuWriterCfg(flags))
74 
75  if "TRT_LocalOccupancyTool" not in kwargs:
76  kwargs.setdefault("TRT_LocalOccupancyTool", acc.popToolsAndMerge(
77  TRT_LocalOccupancyCfg(flags)))
78 
79  if "AssociationTool" not in kwargs:
80  from InDetConfig.InDetAssociationToolsConfig import (
81  InDetPrdAssociationToolCfg)
82  kwargs.setdefault("AssociationTool", acc.popToolsAndMerge(
84 
85  acc.setPrivateTools(acc.popToolsAndMerge(
86  __TRT_dEdxToolBaseCfg(flags, name, **kwargs)))
87  return acc
88 
89 
90 def TrigTRT_dEdxToolCfg(flags, name="TrigTRT_dEdxTool", **kwargs):
91  """trigger version should not add LumiBlockMuWriterCfg to views as it is scheduled globally"""
92 
93  acc = ComponentAccumulator()
94 
95  if "TRT_LocalOccupancyTool" not in kwargs:
96  kwargs.setdefault("TRT_LocalOccupancyTool", acc.popToolsAndMerge(TrigTRT_LocalOccupancyCfg(flags)))
97 
98  if "AssociationTool" not in kwargs:
99  from InDetConfig.InDetAssociationToolsConfig import TrigPrdAssociationToolCfg
100  kwargs.setdefault("AssociationTool", acc.popToolsAndMerge(TrigPrdAssociationToolCfg(flags)))
101 
102  acc.setPrivateTools(acc.popToolsAndMerge(__TRT_dEdxToolBaseCfg(flags, name, **kwargs)))
103  return acc
104 
105 def TRT_ElectronPidToolCfg(flags, name="TRT_ElectronPidTool", **kwargs):
106  from TRT_ConditionsAlgs.TRT_ConditionsAlgsConfig import TRTHTCondAlgCfg, TRTPIDNNCondAlgCfg
107  acc = TRTHTCondAlgCfg(flags)
108 
109  kwargs.setdefault("CalculateNNPid", True)
110 
111  if kwargs["CalculateNNPid"]:
112  acc.merge(TRTPIDNNCondAlgCfg(flags))
113 
114  if "TRTStrawSummaryTool" not in kwargs:
115  from TRT_ConditionsServices.TRT_ConditionsServicesConfig import TRT_StrawStatusSummaryToolCfg
116  StrawStatusTool = acc.popToolsAndMerge(TRT_StrawStatusSummaryToolCfg(flags))
117  acc.addPublicTool(StrawStatusTool) # public as it is has many clients to save some memory
118  kwargs.setdefault("TRTStrawSummaryTool", StrawStatusTool)
119 
120  if "TRT_LocalOccupancyTool" not in kwargs:
121  kwargs.setdefault("TRT_LocalOccupancyTool", acc.popToolsAndMerge(TRT_LocalOccupancyCfg(flags)))
122 
123  if "TRT_ToT_dEdx_Tool" not in kwargs:
124  kwargs.setdefault("TRT_ToT_dEdx_Tool", acc.popToolsAndMerge(TRT_dEdxToolCfg(flags)))
125 
126  acc.setPrivateTools(CompFactory.InDet.TRT_ElectronPidToolRun2(name, **kwargs))
127  return acc
128 
129 def TrigTRT_ElectronPidToolCfg(flags, name="InDetTrigTRT_ElectronPidTool", **kwargs):
130 
131  acc = ComponentAccumulator()
132 
133  from TRT_ConditionsServices.TRT_ConditionsServicesConfig import TRT_StrawStatusSummaryToolCfg
134  StrawStatusTool = acc.popToolsAndMerge(TRT_StrawStatusSummaryToolCfg(flags,name="InDetTrigTRTStrawStatusSummaryTool"))
135  acc.addPublicTool(StrawStatusTool) # public as it is has many clients to save some memory
136  kwargs.setdefault("TRTStrawSummaryTool", StrawStatusTool)
137 
138  kwargs.setdefault("TRT_LocalOccupancyTool", acc.popToolsAndMerge(TrigTRT_LocalOccupancyCfg(flags)))
139  kwargs.setdefault("TRT_ToT_dEdx_Tool", acc.popToolsAndMerge(TrigTRT_dEdxToolCfg(flags)))
140 
141  kwargs.setdefault("CalculateNNPid", False)
142 
143  acc.setPrivateTools(acc.popToolsAndMerge(TRT_ElectronPidToolCfg(flags,name,**kwargs)))
144  return acc
145 
146 def GSFBuildTRT_ElectronPidToolCfg(flags, name="GSFBuildTRT_ElectronPidTool", isTrigger=False, **kwargs):
147  kwargs.setdefault("CalculateNNPid", False)
148  kwargs.setdefault("MinimumTrackPtForNNPid", 0.)
149  if isTrigger:
150  return TrigTRT_ElectronPidToolCfg(flags, name="TrigGSFBuildTRT_ElectronPidTool", **kwargs)
151  else:
152  return TRT_ElectronPidToolCfg(flags, name, **kwargs)
153 
154 
python.TRT_ElectronPidToolsConfig.TRT_dEdxToolCfg
def TRT_dEdxToolCfg(flags, name="TRT_dEdxTool", **kwargs)
Definition: TRT_ElectronPidToolsConfig.py:68
python.TRT_ElectronPidToolsConfig.TrigTRT_ElectronPidToolCfg
def TrigTRT_ElectronPidToolCfg(flags, name="InDetTrigTRT_ElectronPidTool", **kwargs)
Definition: TRT_ElectronPidToolsConfig.py:129
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.TRT_ElectronPidToolsConfig.TrigTRT_dEdxToolCfg
def TrigTRT_dEdxToolCfg(flags, name="TrigTRT_dEdxTool", **kwargs)
Definition: TRT_ElectronPidToolsConfig.py:90
python.TRT_ElectronPidToolsConfig.TRTOccupancyIncludeCfg
def TRTOccupancyIncludeCfg(flags, name="TRTOccupancyInclude", **kwargs)
Definition: TRT_ElectronPidToolsConfig.py:45
python.TRT_ConditionsAlgsConfig.TRTToTCondAlgCfg
def TRTToTCondAlgCfg(flags, name="TRTToTCondAlg", **kwargs)
Definition: TRT_ConditionsAlgsConfig.py:82
python.InDetAssociationToolsConfig.InDetPrdAssociationToolCfg
def InDetPrdAssociationToolCfg(flags, name='InDetPrdAssociationTool', **kwargs)
Definition: InDetAssociationToolsConfig.py:14
python.TRT_ElectronPidToolsConfig.TRT_LocalOccupancyCfg
def TRT_LocalOccupancyCfg(flags, name="TRT_LocalOccupancy", **kwargs)
Definition: TRT_ElectronPidToolsConfig.py:6
python.TRT_ElectronPidToolsConfig.__TRT_dEdxToolBaseCfg
def __TRT_dEdxToolBaseCfg(flags, name, **kwargs)
Definition: TRT_ElectronPidToolsConfig.py:54
python.TRT_ConditionsServicesConfig.TRT_StrawStatusSummaryToolCfg
def TRT_StrawStatusSummaryToolCfg(flags, name="TRT_StrawStatusSummaryTool", forceLegacyAccess=False, **kwargs)
Definition: TRT_ConditionsServicesConfig.py:23
python.TRT_ConditionsAlgsConfig.TRTPIDNNCondAlgCfg
def TRTPIDNNCondAlgCfg(flags, name="TRTPIDNNCondAlg", **kwargs)
Definition: TRT_ConditionsAlgsConfig.py:103
python.LumiBlockMuWriterConfig.LumiBlockMuWriterCfg
def LumiBlockMuWriterCfg(flags, name='LumiBlockMuWriter', seqName="AthAlgSeq")
Definition: LumiBlockMuWriterConfig.py:14
python.TRT_ConditionsAlgsConfig.TRTHTCondAlgCfg
def TRTHTCondAlgCfg(flags, name="TRTHTCondAlg", **kwargs)
Definition: TRT_ConditionsAlgsConfig.py:94
python.TRT_ElectronPidToolsConfig.TrigTRT_LocalOccupancyCfg
def TrigTRT_LocalOccupancyCfg(flags, name="TrigTRT_LocalOccupancy", **kwargs)
Definition: TRT_ElectronPidToolsConfig.py:26
python.TRT_ElectronPidToolsConfig.GSFBuildTRT_ElectronPidToolCfg
def GSFBuildTRT_ElectronPidToolCfg(flags, name="GSFBuildTRT_ElectronPidTool", isTrigger=False, **kwargs)
Definition: TRT_ElectronPidToolsConfig.py:146
python.TRT_ElectronPidToolsConfig.TRT_OverlayLocalOccupancyCfg
def TRT_OverlayLocalOccupancyCfg(flags, name="TRT_OverlayLocalOccupancy", **kwargs)
Definition: TRT_ElectronPidToolsConfig.py:36
python.InDetAssociationToolsConfig.TrigPrdAssociationToolCfg
def TrigPrdAssociationToolCfg(flags, name='InDetTrigPrdAssociationTool', **kwargs)
Definition: InDetAssociationToolsConfig.py:22
python.TRT_ConditionsAlgsConfig.TRTStrawStatusCondAlgCfg
def TRTStrawStatusCondAlgCfg(flags, name="TRTStrawStatusCondAlg", **kwargs)
Definition: TRT_ConditionsAlgsConfig.py:29
python.TRT_ConditionsAlgsConfig.TRTStrawCondAlgCfg
def TRTStrawCondAlgCfg(flags, name="TRTStrawCondAlg", **kwargs)
Definition: TRT_ConditionsAlgsConfig.py:46
python.TRT_ElectronPidToolsConfig.TRT_ElectronPidToolCfg
def TRT_ElectronPidToolCfg(flags, name="TRT_ElectronPidTool", **kwargs)
Definition: TRT_ElectronPidToolsConfig.py:105
python.TRT_ConditionsServicesConfig.TRT_CalDbToolCfg
def TRT_CalDbToolCfg(flags, name="TRT_CalDbTool", **kwags)
Definition: TRT_ConditionsServicesConfig.py:9