ATLAS Offline Software
FastSiDigitizationConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 
3 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4 from AthenaConfiguration.ComponentFactory import CompFactory
5 from DigitizationConfig.PileUpMergeSvcConfig import PileUpMergeSvcCfg, PileUpXingFolderCfg
6 
7 
8 # The earliest bunch crossing time for which interactions will be sent
9 # to the Fast Pixel Digitization code.
11  return 0
12 
13 
14 # The latest bunch crossing time for which interactions will be sent
15 # to the Fast Pixel Digitization code.
17  return 0
18 
19 
20 # The earliest bunch crossing time for which interactions will be sent
21 # to the Fast SCT Digitization code.
23  return 0
24 
25 
26 # The latest bunch crossing time for which interactions will be sent
27 # to the Fast SCT Digitization code.
29  return 0
30 
31 
32 def commonPixelFastDigitizationCfg(flags, name,**kwargs):
33  acc = ComponentAccumulator()
34  from InDetConfig.SiClusterizationToolConfig import ClusterMakerToolCfg
35  kwargs.setdefault("ClusterMaker", acc.popToolsAndMerge(ClusterMakerToolCfg(flags)))
36 
37  from RngComps.RngCompsConfig import AthRNGSvcCfg
38  kwargs.setdefault("RndmSvc", acc.getPrimaryAndMerge(AthRNGSvcCfg(flags)).name)
39  kwargs.setdefault("RndmEngine", "FastPixelDigitization")
40 
41  if flags.Digitization.DoXingByXingPileUp:
42  kwargs.setdefault("FirstXing", FastPixel_FirstXing())
43  kwargs.setdefault("LastXing", FastPixel_LastXing() )
44 
45  from PixelConditionsAlgorithms.PixelConditionsConfig import PixelConfigCondAlgCfg
46  acc.merge(PixelConfigCondAlgCfg(flags, name="PixelConfigCondAlg", ReadDeadMapKey = ""))
47 
48  from SiLorentzAngleTool.PixelLorentzAngleConfig import PixelLorentzAngleToolCfg
49  kwargs.setdefault("LorentzAngleTool", acc.popToolsAndMerge(PixelLorentzAngleToolCfg(flags)))
50 
51  acc.setPrivateTools(CompFactory.PixelFastDigitizationTool(name,**kwargs))
52  return acc
53 
54 
55 def commonSCT_FastDigitizationCfg(flags, name,**kwargs):
56  acc = ComponentAccumulator()
57  from InDetConfig.SiClusterizationToolConfig import ClusterMakerToolCfg
58  kwargs.setdefault("ClusterMaker", acc.popToolsAndMerge(ClusterMakerToolCfg(flags)))
59 
60  from RngComps.RngCompsConfig import AthRNGSvcCfg
61  kwargs.setdefault("RndmSvc", acc.getPrimaryAndMerge(AthRNGSvcCfg(flags)).name)
62  kwargs.setdefault("RndmEngine", "FastSCT_Digitization")
63 
64  if flags.Digitization.DoXingByXingPileUp:
65  kwargs.setdefault("FirstXing", FastSCT_FirstXing())
66  kwargs.setdefault("LastXing", FastSCT_LastXing() )
67 
68  from SiLorentzAngleTool.SCT_LorentzAngleConfig import SCT_LorentzAngleToolCfg
69  kwargs.setdefault("LorentzAngleTool", acc.popToolsAndMerge(SCT_LorentzAngleToolCfg(flags)))
70 
71  acc.setPrivateTools(CompFactory.SCT_FastDigitizationTool(name,**kwargs))
72  return acc
73 
74 
75 
76 def PixelFastDigitizationToolCfg(flags, name="PixelFastDigitizationTool", **kwargs):
77  acc = ComponentAccumulator()
78  intervals = []
79  if not flags.Digitization.DoXingByXingPileUp:
80  intervals += [acc.popToolsAndMerge(FastPixelRangeCfg(flags))]
81  kwargs.setdefault("MergeSvc", acc.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)).name)
82  kwargs.setdefault("HardScatterSplittingMode", 0)
83  acc.setPrivateTools(commonPixelFastDigitizationCfg(flags, name, **kwargs))
84  return acc
85 
86 
87 
88 def PixelFastDigitizationToolHSCfg(flags, name="PixelFastDigitizationToolHS", **kwargs):
89  acc = ComponentAccumulator()
90  intervals = []
91  if not flags.Digitization.DoXingByXingPileUp:
92  intervals += [acc.popToolsAndMerge(FastPixelRangeCfg(flags))]
93  kwargs.setdefault("MergeSvc", acc.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)).name)
94  kwargs.setdefault("HardScatterSplittingMode", 1)
95  acc.setPrivateTools(commonPixelFastDigitizationCfg(flags, name, **kwargs))
96  return acc
97 
98 
99 
100 def PixelFastDigitizationToolPUCfg(flags, name="PixelFastDigitizationToolPU", **kwargs):
101  acc = ComponentAccumulator()
102  intervals = []
103  if not flags.Digitization.DoXingByXingPileUp:
104  intervals += [acc.popToolsAndMerge(FastPixelRangeCfg(flags))]
105  kwargs.setdefault("MergeSvc", acc.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)).name)
106  kwargs.setdefault("PixelClusterContainerName", "Pixel_PU_Clusters")
107  kwargs.setdefault("TruthNamePixel", "PRD_MultiTruthPixel_PU")
108  kwargs.setdefault("HardScatterSplittingMode", 2)
109  acc.setPrivateTools(commonPixelFastDigitizationCfg(flags, name, **kwargs))
110  return acc
111 
112 
113 
114 def PixelFastDigitizationToolSplitNoMergePUCfg(flags, name="PixelFastDigitizationToolSplitNoMergePU", **kwargs):
115  acc = ComponentAccumulator()
116  intervals = []
117  if not flags.Digitization.DoXingByXingPileUp:
118  intervals += [acc.popToolsAndMerge(FastPixelRangeCfg(flags))]
119  kwargs.setdefault("MergeSvc", acc.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)).name)
120  kwargs.setdefault("InputObjectName", "PileupPixelHits")
121  kwargs.setdefault("PixelClusterContainerName", "PixelFast_PU_Clusters")
122  kwargs.setdefault("TruthNamePixel", "PRD_MultiTruthPixel_PU")
123  kwargs.setdefault("HardScatterSplittingMode", 0)
124  kwargs.setdefault("PixelClusterAmbiguitiesMapName", "PixelClusterAmbiguitiesMapPU")
125  acc.setPrivateTools(commonPixelFastDigitizationCfg(flags, name, **kwargs))
126  return acc
127 
128 
129 
130 def SCT_FastDigitizationToolCfg(flags, name="SCT_FastDigitizationTool", **kwargs):
131  acc = ComponentAccumulator()
132  intervals = []
133  if not flags.Digitization.DoXingByXingPileUp:
134  intervals += [acc.popToolsAndMerge(FastSCTRangeCfg(flags))]
135  kwargs.setdefault("MergeSvc", acc.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)).name)
136  kwargs.setdefault("HardScatterSplittingMode", 0)
137  acc.setPrivateTools(commonSCT_FastDigitizationCfg(flags, name, **kwargs))
138  return acc
139  return commonSCT_FastDigitizationCfg(flags, name,**kwargs)
140 
141 
142 
143 def SCT_FastDigitizationToolHSCfg(flags, name="SCT_FastDigitizationToolHS",**kwargs):
144  acc = ComponentAccumulator()
145  intervals = []
146  if not flags.Digitization.DoXingByXingPileUp:
147  intervals += [acc.popToolsAndMerge(FastSCTRangeCfg(flags))]
148  kwargs.setdefault("MergeSvc", acc.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)).name)
149  kwargs.setdefault("HardScatterSplittingMode", 1)
150  acc.setPrivateTools(commonSCT_FastDigitizationCfg(flags, name, **kwargs))
151  return acc
152 
153 
154 
155 def SCT_FastDigitizationToolPUCfg(flags, name="SCT_FastDigitizationToolPU",**kwargs):
156  acc = ComponentAccumulator()
157  intervals = []
158  if not flags.Digitization.DoXingByXingPileUp:
159  intervals += [acc.popToolsAndMerge(FastSCTRangeCfg(flags))]
160  kwargs.setdefault("MergeSvc", acc.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)).name)
161  kwargs.setdefault("SCT_ClusterContainerName", "SCT_PU_Clusters")
162  kwargs.setdefault("TruthNameSCT", "PRD_MultiTruthSCT_PU")
163  kwargs.setdefault("HardScatterSplittingMode", 2)
164  acc.setPrivateTools(commonSCT_FastDigitizationCfg(flags, name, **kwargs))
165  return acc
166 
167 
168 
169 def SCT_FastDigitizationToolSplitNoMergePUCfg(flags, name="SCT_FastDigitizationToolSplitNoMergePU",**kwargs):
170  acc = ComponentAccumulator()
171  intervals = []
172  if not flags.Digitization.DoXingByXingPileUp:
173  intervals += [acc.popToolsAndMerge(FastSCTRangeCfg(flags))]
174  kwargs.setdefault("MergeSvc", acc.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)).name)
175  kwargs.setdefault("InputObjectName", "PileupSCT_Hits")
176  kwargs.setdefault("SCT_ClusterContainerName", "SCT_PU_Clusters")
177  kwargs.setdefault("TruthNameSCT", "PRD_MultiTruthSCT_PU")
178  kwargs.setdefault("HardScatterSplittingMode", 0)
179  acc.setPrivateTools(commonSCT_FastDigitizationCfg(flags, name, **kwargs))
180  return acc
181 
182 
183 
184 def FastPixelRangeCfg(flags, name="FastPixelRange" , **kwargs):
185  kwargs.setdefault('FirstXing', FastPixel_FirstXing() )
186  kwargs.setdefault('LastXing', FastPixel_LastXing() )
187  kwargs.setdefault('CacheRefreshFrequency', 1.0 ) #default 0 no dataproxy reset
188  kwargs.setdefault('ItemList', ["SiHitCollection#PixelHits"] )
189  return PileUpXingFolderCfg(flags, name, **kwargs)
190 
191 
192 
193 def FastSCTRangeCfg(flags, name="FastSCTRange" , **kwargs):
194  #this is the time of the xing in ns
195  kwargs.setdefault('FirstXing', FastSCT_FirstXing() )
196  kwargs.setdefault('LastXing', FastSCT_LastXing() )
197  kwargs.setdefault('CacheRefreshFrequency', 1.0 ) #default 0 no dataproxy reset
198  kwargs.setdefault('ItemList', ["SiHitCollection#SCT_Hits"] )
199  return PileUpXingFolderCfg(flags, name, **kwargs)
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
FastSiDigitizationConfig.commonPixelFastDigitizationCfg
def commonPixelFastDigitizationCfg(flags, name, **kwargs)
Definition: FastSiDigitizationConfig.py:32
FastSiDigitizationConfig.FastSCTRangeCfg
def FastSCTRangeCfg(flags, name="FastSCTRange", **kwargs)
Definition: FastSiDigitizationConfig.py:193
FastSiDigitizationConfig.PixelFastDigitizationToolCfg
def PixelFastDigitizationToolCfg(flags, name="PixelFastDigitizationTool", **kwargs)
Definition: FastSiDigitizationConfig.py:76
FastSiDigitizationConfig.SCT_FastDigitizationToolHSCfg
def SCT_FastDigitizationToolHSCfg(flags, name="SCT_FastDigitizationToolHS", **kwargs)
Definition: FastSiDigitizationConfig.py:143
FastSiDigitizationConfig.PixelFastDigitizationToolHSCfg
def PixelFastDigitizationToolHSCfg(flags, name="PixelFastDigitizationToolHS", **kwargs)
Definition: FastSiDigitizationConfig.py:88
FastSiDigitizationConfig.PixelFastDigitizationToolPUCfg
def PixelFastDigitizationToolPUCfg(flags, name="PixelFastDigitizationToolPU", **kwargs)
Definition: FastSiDigitizationConfig.py:100
python.PixelLorentzAngleConfig.PixelLorentzAngleToolCfg
def PixelLorentzAngleToolCfg(flags, name="PixelLorentzAngleTool", **kwargs)
Definition: PixelLorentzAngleConfig.py:13
FastSiDigitizationConfig.FastSCT_LastXing
def FastSCT_LastXing()
Definition: FastSiDigitizationConfig.py:28
PixelConditionsConfig.PixelConfigCondAlgCfg
def PixelConfigCondAlgCfg(flags, name="PixelConfigCondAlg", **kwargs)
Definition: PixelConditionsConfig.py:11
FastSiDigitizationConfig.FastPixel_LastXing
def FastPixel_LastXing()
Definition: FastSiDigitizationConfig.py:16
FastSiDigitizationConfig.FastSCT_FirstXing
def FastSCT_FirstXing()
Definition: FastSiDigitizationConfig.py:22
FastSiDigitizationConfig.FastPixelRangeCfg
def FastPixelRangeCfg(flags, name="FastPixelRange", **kwargs)
Definition: FastSiDigitizationConfig.py:184
FastSiDigitizationConfig.commonSCT_FastDigitizationCfg
def commonSCT_FastDigitizationCfg(flags, name, **kwargs)
Definition: FastSiDigitizationConfig.py:55
FastSiDigitizationConfig.SCT_FastDigitizationToolPUCfg
def SCT_FastDigitizationToolPUCfg(flags, name="SCT_FastDigitizationToolPU", **kwargs)
Definition: FastSiDigitizationConfig.py:155
FastSiDigitizationConfig.PixelFastDigitizationToolSplitNoMergePUCfg
def PixelFastDigitizationToolSplitNoMergePUCfg(flags, name="PixelFastDigitizationToolSplitNoMergePU", **kwargs)
Definition: FastSiDigitizationConfig.py:114
python.SCT_LorentzAngleConfig.SCT_LorentzAngleToolCfg
def SCT_LorentzAngleToolCfg(flags, name="SCTLorentzAngleTool", **kwargs)
Definition: SCT_LorentzAngleConfig.py:10
FastSiDigitizationConfig.SCT_FastDigitizationToolSplitNoMergePUCfg
def SCT_FastDigitizationToolSplitNoMergePUCfg(flags, name="SCT_FastDigitizationToolSplitNoMergePU", **kwargs)
Definition: FastSiDigitizationConfig.py:169
FastSiDigitizationConfig.FastPixel_FirstXing
def FastPixel_FirstXing()
Definition: FastSiDigitizationConfig.py:10
python.SiClusterizationToolConfig.ClusterMakerToolCfg
def ClusterMakerToolCfg(flags, name="InDetClusterMakerTool", **kwargs)
Definition: SiClusterizationToolConfig.py:10
python.PileUpMergeSvcConfig.PileUpXingFolderCfg
def PileUpXingFolderCfg(flags, name="PileUpXingFolder", **kwargs)
Definition: PileUpMergeSvcConfig.py:35
FastSiDigitizationConfig.SCT_FastDigitizationToolCfg
def SCT_FastDigitizationToolCfg(flags, name="SCT_FastDigitizationTool", **kwargs)
Definition: FastSiDigitizationConfig.py:130
python.PileUpMergeSvcConfig.PileUpMergeSvcCfg
def PileUpMergeSvcCfg(flags, name="PileUpMergeSvc", Intervals=[], **kwargs)
Definition: PileUpMergeSvcConfig.py:10
RngCompsConfig.AthRNGSvcCfg
def AthRNGSvcCfg(flags, name="AthRNGSvc")
Definition: RngCompsConfig.py:51