1 """Define methods to construct a configured TRT R-t calibration algorithm
3 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
5 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
6 from AthenaConfiguration.ComponentFactory
import CompFactory
9 def TRT_CalibrationMgrCfg(flags,name='TRT_CalibrationMgr',calibconstants='', Hittuple='', caltag='' ,**kwargs) :
12 kwargs.setdefault(
"DoCalibrate",
False)
13 kwargs.setdefault(
"DoRefit",
False)
15 if "AlignTrkTools" not in kwargs:
16 from TRT_CalibTools.TRTCalibToolsConfig
import (
17 FillAlignTrkInfoCfg, FillAlignTRTHitsCfg)
18 kwargs.setdefault(
"AlignTrkTools", [
22 if "FitTools" not in kwargs:
23 from TRT_CalibTools.TRTCalibToolsConfig
import FitToolCfg
24 kwargs.setdefault(
"FitTools", [acc.popToolsAndMerge(
FitToolCfg(flags))])
26 if "TrackFitter" not in kwargs:
27 from TrkConfig.CommonTrackFitterConfig
import InDetStandaloneTrackFitterCfg
28 kwargs.setdefault(
"TrackFitter", acc.popToolsAndMerge(
31 if "TrackSelectorTool" not in kwargs:
32 from InDetConfig.InDetTrackSelectorToolConfig
import TRT_InDetDetailedTrackSelectorToolCfg
35 if "TRTCalibrator" not in kwargs:
36 from TRT_CalibTools.TRTCalibratorConfig
import TRTCalibratorCfg
39 kwargs.setdefault(
"TRTCalibrator",[acc.addPublicTool(acc.popToolsAndMerge(
TRTCalibratorCfg(flags)))])
42 kwargs.setdefault(
"TRTCalibrator",[acc.addPublicTool(acc.popToolsAndMerge(
TRTCalibratorCfg(flags, Hittuple=Hittuple, calTag=caltag)))])
48 from IOVDbSvc.IOVDbSvcConfig
import addOverride
49 acc.merge(
addOverride( flags,
"/TRT/Calib/T0",
"unused_condDBT0",
"key" ))
50 acc.merge(
addOverride( flags,
"/TRT/Calib/RT",
"unused_condDBRT",
"key" ))
52 from TRT_ConditionsAlgs.TRT_ConditionsAlgsConfig
import TRTCondWriteCfg
56 acc.addEventAlgo(CompFactory.TRTCalibrationMgr(name, **kwargs))
65 from TRT_ConditionsServices.TRT_ConditionsServicesConfig
import TRT_StrawStatusSummaryToolCfg
68 from InDetConfig.TRT_TrackHoleSearchConfig
import TRTTrackHoleSearchToolCfg
71 from IOVDbSvc.IOVDbSvcConfig
import addOverride
72 acc.merge(
addOverride(flags,
'/TRT/Cond/Status',
'TRTCondStatus-empty-00-00'))
74 acc.addEventAlgo(CompFactory.InDet.TRT_StrawStatus(name,**kwargs))
80 from AthenaConfiguration.DetectorConfigFlags
import setupDetectorFlags
84 flags.Reco.EnableTau=
False
85 flags.Reco.EnableCombinedMuon=
False
86 flags.Reco.EnableMet=
False
87 flags.Reco.EnableTrigger =
False
88 flags.Reco.EnableEgamma=
False
89 flags.Reco.EnableCaloRinger=
False
90 flags.Reco.EnableCaloExtension=
False
93 flags.Detector.EnableMuon=
False
94 flags.Detector.EnableCalo=
False
97 flags.DQ.doMonitoring=
False
98 flags.DQ.Steering.InDet.doPerfMon=
False
99 flags.DQ.Steering.InDet.doGlobalMon=
False
100 flags.DQ.Steering.doPixelMon=
False
101 flags.DQ.Steering.doSCTMon=
False
104 flags.Tracking.doCaloSeededBrem=
False
105 flags.Tracking.doCaloSeededAmbi=
False
106 flags.Tracking.doTRTSegments=
False
107 flags.Tracking.doTRTStandalone=
False
108 flags.Tracking.doBackTracking=
False
111 if __name__ ==
'__main__':
113 import glob, argparse
114 parser = argparse.ArgumentParser(prog=
'python -m TRT_CalibAlgs.TRTCalibrationMgrConfig',
115 description=
"""Run R-t TRT calibration.\n\n
116 Example: python -m TRT_CalibAlgs.TRTCalibrationMgrConfig --filesInput "/path/to/files/data22*" --evtMax 10""")
118 parser.add_argument(
'--evtMax' ,type=int,default=1,help=
"Number of events.")
119 parser.add_argument(
'--filesInput' , nargs=
'+', default=[],help=
"Input files. RAW data")
120 parser.add_argument(
'--fileOutput' , default=
"basic.root" ,help=
"Output file name. Flat Ntuple")
121 parser.add_argument(
'--doCalibrator',action=
'store_true' ,help=
"Run the calibrator to obtain the constants")
122 parser.add_argument(
'--dbconst', default=
"" ,help=
"Input file constants for writer")
123 args = parser.parse_args()
125 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
128 from AthenaConfiguration.TestDefaults
import defaultGeometryTags, defaultTestFiles, defaultConditionsTags
129 if not args.filesInput:
130 flags.Input.Files = defaultTestFiles.RAW_RUN3
132 flags.Input.Files = [file
for x
in args.filesInput
for file
in glob.glob(x)]
134 flags.Output.HISTFileName = args.fileOutput
135 flags.Exec.MaxEvents = args.evtMax
137 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN3
138 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN3_DATA
143 flags.Exec.OutputLevel = 3
146 flags = flags.cloneAndReplace(
147 "Tracking.ActiveConfig",
148 f
"Tracking.{flags.Tracking.PrimaryPassConfig.value}Pass",
157 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
160 from ByteStreamCnvSvc.ByteStreamConfig
import ByteStreamReadCfg
163 from InDetConfig.TrackRecoConfig
import InDetTrackRecoCfg
172 with open(
"TRTCalibConfigCA.pkl",
"wb")
as f:
178 sys.exit(
not acc.run().isSuccess())