3 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
4 from AthenaConfiguration.ComponentFactory
import CompFactory
5 from AthenaConfiguration.Enums
import BeamType
9 from collections
import namedtuple
11 driftTimes = namedtuple(
12 "driftTimes", (
"LowGate",
"HighGate",
"LowGateArgon",
"HighGateArgon"))
13 if flags.Beam.Type
is BeamType.Cosmics:
14 return driftTimes(LowGate=19.0*ns,
17 HighGateArgon=44.0*ns)
18 if not flags.Input.isMC:
19 return driftTimes(LowGate=17.1875*ns,
21 LowGateArgon=18.75*ns,
22 HighGateArgon=43.75*ns)
24 return driftTimes(LowGate=14.0625*ns,
26 LowGateArgon=14.0625*ns,
27 HighGateArgon=42.1875*ns)
31 flags, name="InDetTRT_DriftCircleTool", usePhase=False, **kwargs):
32 from TRT_ConditionsAlgs.TRT_ConditionsAlgsConfig
import TRTAlignCondAlgCfg
35 if "TRTDriftFunctionTool" not in kwargs:
36 from InDetConfig.TRT_DriftFunctionToolConfig
import (
37 TRT_DriftFunctionToolCfg)
38 TRT_DriftFunctionTool = acc.popToolsAndMerge(
40 acc.addPublicTool(TRT_DriftFunctionTool)
41 kwargs.setdefault(
"TRTDriftFunctionTool", TRT_DriftFunctionTool)
43 if "ConditionsSummaryTool" not in kwargs:
44 from TRT_ConditionsServices.TRT_ConditionsServicesConfig
import (
45 TRT_StrawStatusSummaryToolCfg)
46 kwargs.setdefault(
"ConditionsSummaryTool", acc.popToolsAndMerge(
49 kwargs.setdefault(
"UseConditionsStatus",
True)
50 kwargs.setdefault(
"useDriftTimeHTCorrection",
True)
51 kwargs.setdefault(
"useDriftTimeToTCorrection",
True)
55 CompFactory.InDet.TRT_DriftCircleToolCosmics(name, **kwargs))
58 kwargs.setdefault(
"UseConditionsHTStatus",
True)
59 kwargs.setdefault(
"SimpleOutOfTimePileupSupression",
False)
60 kwargs.setdefault(
"SimpleOutOfTimePileupSupressionArgon",
False)
61 kwargs.setdefault(
"RejectIfFirstBit",
False)
62 kwargs.setdefault(
"RejectIfFirstBitArgon",
False)
63 kwargs.setdefault(
"ValidityGateSuppression",
64 flags.Beam.BunchSpacing<=25
and
65 flags.Beam.Type
is BeamType.Collisions)
66 kwargs.setdefault(
"ValidityGateSuppressionArgon",
67 flags.Beam.BunchSpacing<=25
and
68 flags.Beam.Type
is BeamType.Collisions)
71 kwargs.setdefault(
"LowGate", gains.LowGate)
73 kwargs.setdefault(
"LowGateArgon", gains.LowGate)
74 kwargs.setdefault(
"HighGate", gains.HighGate)
75 kwargs.setdefault(
"HighGateArgon", gains.HighGate)
78 MinTrailingEdge = 11.0*ns
79 MaxDriftTime = 60.0*ns
80 kwargs.setdefault(
"MinTrailingEdge", MinTrailingEdge)
81 kwargs.setdefault(
"MinTrailingEdgeArgon", MinTrailingEdge)
82 kwargs.setdefault(
"MaxDriftTime", MaxDriftTime)
83 kwargs.setdefault(
"MaxDriftTimeArgon", MaxDriftTime)
85 acc.setPrivateTools(CompFactory.InDet.TRT_DriftCircleTool(name, **kwargs))
90 flags, name="InDetTRT_NoTime_DriftCircleTool", **kwargs):
93 if "TRTDriftFunctionTool" not in kwargs:
94 from InDetConfig.TRT_DriftFunctionToolConfig
import (
95 TRT_NoTime_DriftFunctionToolCfg)
96 TRT_DriftFunctionTool = acc.popToolsAndMerge(
98 acc.addPublicTool(TRT_DriftFunctionTool)
99 kwargs.setdefault(
"TRTDriftFunctionTool", TRT_DriftFunctionTool)
101 acc.setPrivateTools(acc.popToolsAndMerge(
107 flags, name="InDetTRT_Phase_DriftCircleTool", **kwargs):
110 if "TRTDriftFunctionTool" not in kwargs:
111 from InDetConfig.TRT_DriftFunctionToolConfig
import (
112 TRT_Phase_DriftFunctionToolCfg)
113 TRT_DriftFunctionTool = acc.popToolsAndMerge(
115 acc.addPublicTool(TRT_DriftFunctionTool)
116 kwargs.setdefault(
"TRTDriftFunctionTool", TRT_DriftFunctionTool)
118 acc.setPrivateTools(acc.popToolsAndMerge(