ATLAS Offline Software
FastTRT_DigitizationConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
2 
3 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4 from AthenaConfiguration.ComponentFactory import CompFactory
5 
6 from DigitizationConfig.PileUpMergeSvcConfig import PileUpMergeSvcCfg, PileUpXingFolderCfg
7 
8 # The earliest bunch crossing time for which interactions will be sent
9 # to the FastTRT Digitization code.
11  return -50
12 
13 
14 # The latest bunch crossing time for which interactions will be sent
15 # to the FastTRT Digitization code.
17  return 50
18 
19 
20 def FastTRTRangeCfg(flags, name="FastTRTRange", **kwargs):
21  #this is the time of the xing in ns
22  kwargs.setdefault('FirstXing', FastTRT_FirstXing() )
23  kwargs.setdefault('LastXing', FastTRT_LastXing() )
24  kwargs.setdefault('CacheRefreshFrequency', 1.0 ) #default 0 no dataproxy reset
25  kwargs.setdefault('ItemList', ["TRTUncompressedHitCollection#TRTUncompressedHits"] )
26  return PileUpXingFolderCfg(flags, name, **kwargs)
27 
28 
29 def BasicTRTFastDigitizationToolCfg(flags, name, **kwargs):
30  acc = ComponentAccumulator()
31  from IOVDbSvc.IOVDbSvcConfig import addFolders, addFoldersSplitOnline
32  acc.merge(addFoldersSplitOnline(flags, "TRT", "/TRT/Onl/Calib/errors", "/TRT/Calib/errors"))
33  acc.merge(addFoldersSplitOnline(flags, "TRT","/TRT/Onl/Calib/PID_vector", "/TRT/Calib/PID_vector"))
34  acc.merge(addFolders(flags, "TRT_OFL", "/TRT/Calib/ToT/ToTVectors"))
35  acc.merge(addFolders(flags, "TRT_OFL", "/TRT/Calib/ToT/ToTValue"))
36  if flags.Digitization.DoXingByXingPileUp:
37  kwargs.setdefault("FirstXing", FastTRT_FirstXing())
38  kwargs.setdefault("LastXing", FastTRT_LastXing())
39  from RngComps.RngCompsConfig import AthRNGSvcCfg
40  kwargs.setdefault("RndmSvc", acc.getPrimaryAndMerge(AthRNGSvcCfg(flags)).name)
41  kwargs.setdefault("RandomStreamName", "FastTRTDigitization")
42  tool = CompFactory.TRTFastDigitizationTool(name,**kwargs)
43  acc.setPrivateTools(tool)
44  return acc
45 
46 
47 def TRTFastDigitizationToolCfg(flags, name="TRTFastDigitizationTool",**kwargs):
48  acc = ComponentAccumulator()
49  intervals = []
50  if not flags.Digitization.DoXingByXingPileUp:
51  intervals += [acc.popToolsAndMerge(FastTRTRangeCfg(flags))]
52  kwargs.setdefault("MergeSvc", acc.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)).name)
53  kwargs.setdefault("trtDriftCircleContainer", "TRT_DriftCircles")
54  kwargs.setdefault("trtPrdMultiTruthCollection", "PRD_MultiTruthTRT")
55  kwargs.setdefault("HardScatterSplittingMode", 0)
56  acc.setPrivateTools(BasicTRTFastDigitizationToolCfg(flags, name,**kwargs))
57  return acc
58 
59 
60 def TRTFastDigitizationToolHS(flags, name="TRTFastDigitizationToolHS",**kwargs):
61  acc = ComponentAccumulator()
62  intervals = []
63  if not flags.Digitization.DoXingByXingPileUp:
64  intervals += [acc.popToolsAndMerge(FastTRTRangeCfg(flags))]
65  kwargs.setdefault("MergeSvc", acc.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)).name)
66  kwargs.setdefault("OnlyUseContainerName", True)
67  kwargs.setdefault("trtDriftCircleContainer", "TRT_DriftCircles")
68  kwargs.setdefault("trtPrdMultiTruthCollection", "PRD_MultiTruthTRT")
69  kwargs.setdefault("HardScatterSplittingMode", 1)
70  acc.setPrivateTools(BasicTRTFastDigitizationToolCfg(flags, name,**kwargs))
71  return acc
72 
73 
74 def TRTFastDigitizationToolPU(flags, name="TRTFastDigitizationToolPU",**kwargs):
75  acc = ComponentAccumulator()
76  intervals = []
77  if not flags.Digitization.DoXingByXingPileUp:
78  intervals += [acc.popToolsAndMerge(FastTRTRangeCfg(flags))]
79  kwargs.setdefault("MergeSvc", acc.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)).name)
80  kwargs.setdefault("trtDriftCircleContainer", "TRT_PU_DriftCircles")
81  kwargs.setdefault("trtPrdMultiTruthCollection", "PRD_MultiTruthTRT_PU")
82  kwargs.setdefault("HardScatterSplittingMode", 2)
83  acc.setPrivateTools(BasicTRTFastDigitizationToolCfg(flags, name,**kwargs))
84  return acc
85 
86 
87 def TRTFastDigitizationToolSplitNoMergePU(flags, name="TRTFastDigitizationToolSplitNoMergePU",**kwargs):
88  acc = ComponentAccumulator()
89  intervals = []
90  if not flags.Digitization.DoXingByXingPileUp:
91  intervals += [acc.popToolsAndMerge(FastTRTRangeCfg(flags))]
92  kwargs.setdefault("MergeSvc", acc.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)).name)
93  kwargs.setdefault("trtHitCollectionName", "PileupTRTUncompressedHits")
94  kwargs.setdefault("trtDriftCircleContainer", "TRT_PU_DriftCircles")
95  kwargs.setdefault("trtPrdMultiTruthCollection", "PRD_MultiTruthTRT_PU")
96  kwargs.setdefault("HardScatterSplittingMode", 0)
97  acc.setPrivateTools(BasicTRTFastDigitizationToolCfg(flags, name,**kwargs))
98  return acc
FastTRT_DigitizationConfig.TRTFastDigitizationToolHS
def TRTFastDigitizationToolHS(flags, name="TRTFastDigitizationToolHS", **kwargs)
Definition: FastTRT_DigitizationConfig.py:60
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
FastTRT_DigitizationConfig.TRTFastDigitizationToolSplitNoMergePU
def TRTFastDigitizationToolSplitNoMergePU(flags, name="TRTFastDigitizationToolSplitNoMergePU", **kwargs)
Definition: FastTRT_DigitizationConfig.py:87
FastTRT_DigitizationConfig.FastTRTRangeCfg
def FastTRTRangeCfg(flags, name="FastTRTRange", **kwargs)
Definition: FastTRT_DigitizationConfig.py:20
FastTRT_DigitizationConfig.TRTFastDigitizationToolPU
def TRTFastDigitizationToolPU(flags, name="TRTFastDigitizationToolPU", **kwargs)
Definition: FastTRT_DigitizationConfig.py:74
FastTRT_DigitizationConfig.FastTRT_LastXing
def FastTRT_LastXing()
Definition: FastTRT_DigitizationConfig.py:16
FastTRT_DigitizationConfig.TRTFastDigitizationToolCfg
def TRTFastDigitizationToolCfg(flags, name="TRTFastDigitizationTool", **kwargs)
Definition: FastTRT_DigitizationConfig.py:47
python.IOVDbSvcConfig.addFolders
def addFolders(flags, folderStrings, detDb=None, className=None, extensible=False, tag=None, db=None, modifiers='')
Definition: IOVDbSvcConfig.py:72
python.IOVDbSvcConfig.addFoldersSplitOnline
def addFoldersSplitOnline(flags, detDb, onlineFolders, offlineFolders, className=None, extensible=False, addMCString='_OFL', splitMC=False, tag=None, forceDb=None, modifiers='')
Definition: IOVDbSvcConfig.py:153
python.PileUpMergeSvcConfig.PileUpXingFolderCfg
def PileUpXingFolderCfg(flags, name="PileUpXingFolder", **kwargs)
Definition: PileUpMergeSvcConfig.py:35
python.PileUpMergeSvcConfig.PileUpMergeSvcCfg
def PileUpMergeSvcCfg(flags, name="PileUpMergeSvc", Intervals=[], **kwargs)
Definition: PileUpMergeSvcConfig.py:10
FastTRT_DigitizationConfig.BasicTRTFastDigitizationToolCfg
def BasicTRTFastDigitizationToolCfg(flags, name, **kwargs)
Definition: FastTRT_DigitizationConfig.py:29
FastTRT_DigitizationConfig.FastTRT_FirstXing
def FastTRT_FirstXing()
Definition: FastTRT_DigitizationConfig.py:10
RngCompsConfig.AthRNGSvcCfg
def AthRNGSvcCfg(flags, name="AthRNGSvc")
Definition: RngCompsConfig.py:51