ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
InnerDetector
InDetConfig
python
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
30
def
TRT_DriftCircleToolCfg
(
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(
39
TRT_DriftFunctionToolCfg(flags)))
40
41
if
"ConditionsSummaryTool"
not
in
kwargs:
42
from
TRT_ConditionsServices.TRT_ConditionsServicesConfig
import
(
43
TRT_StrawStatusSummaryToolCfg)
44
kwargs.setdefault(
"ConditionsSummaryTool"
, acc.popToolsAndMerge(
45
TRT_StrawStatusSummaryToolCfg(flags)))
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
87
def
TRT_NoTime_DriftCircleToolCfg
(
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(
95
TRT_NoTime_DriftFunctionToolCfg(flags)))
96
97
acc.setPrivateTools(acc.popToolsAndMerge(
98
TRT_DriftCircleToolCfg
(flags, name, **kwargs)))
99
return
acc
100
101
102
def
TRT_Phase_DriftCircleToolCfg
(
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(
110
TRT_Phase_DriftFunctionToolCfg(flags)))
111
112
acc.setPrivateTools(acc.popToolsAndMerge(
113
TRT_DriftCircleToolCfg
(flags, name, usePhase=
True
, **kwargs)))
114
return
acc
python.TRT_DriftCircleToolConfig.TRT_Phase_DriftCircleToolCfg
TRT_Phase_DriftCircleToolCfg(flags, name="InDetTRT_Phase_DriftCircleTool", **kwargs)
Definition
TRT_DriftCircleToolConfig.py:103
python.TRT_DriftCircleToolConfig.TRT_DriftCircleToolCfg
TRT_DriftCircleToolCfg(flags, name="InDetTRT_DriftCircleTool", usePhase=False, **kwargs)
Definition
TRT_DriftCircleToolConfig.py:31
python.TRT_DriftCircleToolConfig.TRT_NoTime_DriftCircleToolCfg
TRT_NoTime_DriftCircleToolCfg(flags, name="InDetTRT_NoTime_DriftCircleTool", **kwargs)
Definition
TRT_DriftCircleToolConfig.py:88
python.TRT_DriftCircleToolConfig.TRTDriftTimes
TRTDriftTimes(flags)
Definition
TRT_DriftCircleToolConfig.py:8
Generated on
for ATLAS Offline Software by
1.17.0