Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
TRT_DriftCircleToolConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
2 # Configuration of TRT_DriftCircleTool package
3 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4 from AthenaConfiguration.ComponentFactory import CompFactory
5 from AthenaConfiguration.Enums import BeamType
6 
7 
8 def TRTDriftTimes(flags):
9  from collections import namedtuple
10  from AthenaCommon.SystemOfUnits import ns
11  driftTimes = namedtuple(
12  "driftTimes", ("LowGate", "HighGate", "LowGateArgon", "HighGateArgon"))
13  if flags.Beam.Type is BeamType.Cosmics:
14  return driftTimes(LowGate=19.0*ns,
15  HighGate=44.0*ns,
16  LowGateArgon=19.0*ns,
17  HighGateArgon=44.0*ns)
18  if not flags.Input.isMC:
19  return driftTimes(LowGate=17.1875*ns,
20  HighGate=45.3125*ns,
21  LowGateArgon=18.75*ns,
22  HighGateArgon=43.75*ns)
23  # MC
24  return driftTimes(LowGate=14.0625*ns, # 4.5*3.125 ns
25  HighGate=42.1875*ns, # LowGate + 9*3.125 ns
26  LowGateArgon=14.0625*ns,
27  HighGateArgon=42.1875*ns)
28 
29 
31  flags, name="InDetTRT_DriftCircleTool", usePhase=False, **kwargs):
32  from TRT_ConditionsAlgs.TRT_ConditionsAlgsConfig import TRTAlignCondAlgCfg
33  acc = TRTAlignCondAlgCfg(flags)
34 
35  if "TRTDriftFunctionTool" not in kwargs:
36  from InDetConfig.TRT_DriftFunctionToolConfig import (
37  TRT_DriftFunctionToolCfg)
38  kwargs.setdefault("TRTDriftFunctionTool", acc.popToolsAndMerge(
40 
41  if "ConditionsSummaryTool" not in kwargs:
42  from TRT_ConditionsServices.TRT_ConditionsServicesConfig import (
43  TRT_StrawStatusSummaryToolCfg)
44  kwargs.setdefault("ConditionsSummaryTool", acc.popToolsAndMerge(
46 
47  kwargs.setdefault("UseConditionsStatus", True)
48  kwargs.setdefault("useDriftTimeHTCorrection", True)
49  kwargs.setdefault("useDriftTimeToTCorrection", True)
50 
51  if usePhase:
52  acc.setPrivateTools(
53  CompFactory.InDet.TRT_DriftCircleToolCosmics(name, **kwargs))
54  return acc
55 
56  kwargs.setdefault("UseConditionsHTStatus", True)
57  kwargs.setdefault("SimpleOutOfTimePileupSupression", False)
58  kwargs.setdefault("SimpleOutOfTimePileupSupressionArgon", False)
59  kwargs.setdefault("RejectIfFirstBit", False)
60  kwargs.setdefault("RejectIfFirstBitArgon", False)
61  kwargs.setdefault("ValidityGateSuppression",
62  flags.Beam.BunchSpacing<=25 and
63  flags.Beam.Type is BeamType.Collisions)
64  kwargs.setdefault("ValidityGateSuppressionArgon",
65  flags.Beam.BunchSpacing<=25 and
66  flags.Beam.Type is BeamType.Collisions)
67 
68  gains = TRTDriftTimes(flags)
69  kwargs.setdefault("LowGate", gains.LowGate)
70  # see discussion in MR !45402 why these are not Argon specific settings
71  kwargs.setdefault("LowGateArgon", gains.LowGate)
72  kwargs.setdefault("HighGate", gains.HighGate)
73  kwargs.setdefault("HighGateArgon", gains.HighGate)
74 
75  from AthenaCommon.SystemOfUnits import ns
76  MinTrailingEdge = 11.0*ns
77  MaxDriftTime = 60.0*ns
78  kwargs.setdefault("MinTrailingEdge", MinTrailingEdge)
79  kwargs.setdefault("MinTrailingEdgeArgon", MinTrailingEdge)
80  kwargs.setdefault("MaxDriftTime", MaxDriftTime)
81  kwargs.setdefault("MaxDriftTimeArgon", MaxDriftTime)
82 
83  acc.setPrivateTools(CompFactory.InDet.TRT_DriftCircleTool(name, **kwargs))
84  return acc
85 
86 
88  flags, name="InDetTRT_NoTime_DriftCircleTool", **kwargs):
89  acc = ComponentAccumulator()
90 
91  if "TRTDriftFunctionTool" not in kwargs:
92  from InDetConfig.TRT_DriftFunctionToolConfig import (
93  TRT_NoTime_DriftFunctionToolCfg)
94  kwargs.setdefault("TRTDriftFunctionTool", acc.popToolsAndMerge(
96 
97  acc.setPrivateTools(acc.popToolsAndMerge(
98  TRT_DriftCircleToolCfg(flags, name, **kwargs)))
99  return acc
100 
101 
103  flags, name="InDetTRT_Phase_DriftCircleTool", **kwargs):
104  acc = ComponentAccumulator()
105 
106  if "TRTDriftFunctionTool" not in kwargs:
107  from InDetConfig.TRT_DriftFunctionToolConfig import (
108  TRT_Phase_DriftFunctionToolCfg)
109  kwargs.setdefault("TRTDriftFunctionTool", acc.popToolsAndMerge(
111 
112  acc.setPrivateTools(acc.popToolsAndMerge(
113  TRT_DriftCircleToolCfg(flags, name, usePhase=True, **kwargs)))
114  return acc
python.TRT_DriftCircleToolConfig.TRT_DriftCircleToolCfg
def TRT_DriftCircleToolCfg(flags, name="InDetTRT_DriftCircleTool", usePhase=False, **kwargs)
Definition: TRT_DriftCircleToolConfig.py:30
python.TRT_DriftFunctionToolConfig.TRT_Phase_DriftFunctionToolCfg
def TRT_Phase_DriftFunctionToolCfg(flags, name="InDetTRT_Phase_DriftFunctionTool", **kwargs)
Definition: TRT_DriftFunctionToolConfig.py:61
SystemOfUnits
python.TRT_ConditionsServicesConfig.TRT_StrawStatusSummaryToolCfg
def TRT_StrawStatusSummaryToolCfg(flags, name="TRT_StrawStatusSummaryTool", **kwargs)
Definition: TRT_ConditionsServicesConfig.py:23
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.TRT_DriftFunctionToolConfig.TRT_NoTime_DriftFunctionToolCfg
def TRT_NoTime_DriftFunctionToolCfg(flags, name="InDetTRT_NoTime_DriftFunctionTool", **kwargs)
Definition: TRT_DriftFunctionToolConfig.py:56
python.TRT_DriftCircleToolConfig.TRT_Phase_DriftCircleToolCfg
def TRT_Phase_DriftCircleToolCfg(flags, name="InDetTRT_Phase_DriftCircleTool", **kwargs)
Definition: TRT_DriftCircleToolConfig.py:102
python.TRT_DriftCircleToolConfig.TRTDriftTimes
def TRTDriftTimes(flags)
Definition: TRT_DriftCircleToolConfig.py:8
python.TRT_DriftFunctionToolConfig.TRT_DriftFunctionToolCfg
def TRT_DriftFunctionToolCfg(flags, name="InDetTRT_DriftFunctionTool", **kwargs)
Definition: TRT_DriftFunctionToolConfig.py:6
python.TRT_DriftCircleToolConfig.TRT_NoTime_DriftCircleToolCfg
def TRT_NoTime_DriftCircleToolCfg(flags, name="InDetTRT_NoTime_DriftCircleTool", **kwargs)
Definition: TRT_DriftCircleToolConfig.py:87
python.TRT_ConditionsAlgsConfig.TRTAlignCondAlgCfg
def TRTAlignCondAlgCfg(flags, name="TRTAlignCondAlg", **kwargs)
Definition: TRT_ConditionsAlgsConfig.py:8