76def CreateMis(flags, **kwargs):
77
78 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
79 from AthenaConfiguration.ComponentFactory import CompFactory
80 from HGTD_AlignGenTools.HGTD_AlignGenToolsConfig import HGTD_AlignDBToolCfg
81 from IOVDbSvc.IOVDbSvcConfig import IOVDbSvcCfg
82
83 acc = MainServicesCfg(flags)
84 acc.merge(IOVDbSvcCfg(flags))
85
86
87
88
89
90
91
92 histoSvc = CompFactory.THistSvc(
93 Output=[
94 "CREATEMISALIGN DATAFILE='HGTD_CreateMisalignment.root' " "TYPE='ROOT' OPT='RECREATE'"
95 ]
96 )
97
98 acc.addService(histoSvc)
99 acc.setAppProperty("HistogramPersistency", "ROOT")
100
101
102
103
104
105 kargsTool = {}
106 kargsTool.setdefault("DBRoot", "/HGTD/Align")
107
108 HGTDCondStream = CompFactory.AthenaOutputStreamTool(
109 "CondStream_write",
110 OutputFile="HGTD_Misalignment.pool.root"
111 )
112
113 HGTDCondStream.PoolContainerPrefix = "<type>"
114 HGTDCondStream.TopLevelContainerName = ""
115 HGTDCondStream.SubLevelBranchName = "<key>"
116
117 kargsTool.setdefault("CondStream", HGTDCondStream)
118
119 dbTool = acc.popToolsAndMerge(
120 HGTD_AlignDBToolCfg(flags, **kargsTool)
121 )
122
123 MisalignMode = int(kwargs.get("MisalignMode", 1))
124 createFreshDB = True
125 outFile = f"HGTD_MisalignmentMode{MisalignMode}"
126
128 print(
"==============================================")
129 print(f
" HGTD Misalignment Mode {MisalignMode}")
130 print(
"==============================================")
132
133
134
135
136
137 kwargs["MisalignMode"] = int(kwargs.get("MisalignMode", 1))
138 kwargs["ApplyTranslation"] = (str(kwargs.get("ApplyTranslation", "True")).lower() in ("true", "1", "yes"))
139 kwargs["ApplyRotation"] = (str(kwargs.get("ApplyRotation", "False")).lower() in ("true", "1", "yes"))
140
141 kwargs["ShiftX"] = float(kwargs.get("ShiftX", 0.05))
142 kwargs["ShiftY"] = float(kwargs.get("ShiftY", 0.0))
143 kwargs["ShiftZ"] = float(kwargs.get("ShiftZ", 0.0))
144
145 kwargs["SigmaX"] = float(kwargs.get("SigmaX", 0.01))
146 kwargs["SigmaY"] = float(kwargs.get("SigmaY", 0.01))
147 kwargs["SigmaZ"] = float(kwargs.get("SigmaZ", 0.01))
148
149 kwargs["MaxModules"] = int(kwargs.get("MaxModules", -1))
150 kwargs["TestHash"] = int(kwargs.get("TestHash", -1))
151
152 kwargs["DoDebugPrint"] = True
153 kwargs["WriteToDB"] = True
154 kwargs["CreateFreshDB"] = createFreshDB
155 kwargs["SQLiteTag"] = f"HGTD_MisalignmentMode_{MisalignMode}"
156 kwargs["OutputFile"] = outFile + ".txt"
157
158 alg_kwargs = dict(kwargs)
159 alg_kwargs.pop("GeometryFile", None)
160
161 alg_kwargs["RandomStream"] = kwargs.get(
162 "RandomStream",
163 "HGTDMisalignment"
164 )
165
166
167
168
169
170 from HGTD_AlignGenAlgs.HGTD_AlignAlgsConfig import (
171 HGTD_CreateMisalignAlgCfg
172 )
173
174 alg_kwargs["AlignDBTool"] = dbTool
175
176 acc.merge(
177 HGTD_CreateMisalignAlgCfg(
178 flags,
179 **alg_kwargs
180 )
181 )
182
183 return acc
184
185
186
187
void print(char *figname, TCanvas *c1)