ATLAS Offline Software
Loading...
Searching...
No Matches
CreateMisalignmentITk Namespace Reference

Functions

 getFlags (**kwargs)
 CreateMis (flags, name="CreateITkMisalignAlg", **kwargs)

Variables

 kwargs = dict(arg.split('=') for arg in sys.argv[1:])
 flags = getFlags(**kwargs)
 acc = CreateMis(flags,**kwargs)
 sc = acc.run(10)

Function Documentation

◆ CreateMis()

CreateMisalignmentITk.CreateMis ( flags,
name = "CreateITkMisalignAlg",
** kwargs )

Definition at line 64 of file CreateMisalignmentITk.py.

64def CreateMis(flags,name="CreateITkMisalignAlg",**kwargs):
65 #
66 #--------------------------------------------------------------
67 # Geometry section
68 #--------------------------------------------------------------
69 misalignmentOnTopOfExistingSet = False
70 readDBPoolFile = False
71
72 createFreshDB = not(readDBPoolFile or misalignmentOnTopOfExistingSet)
73
74 MisalignMode = kwargs.pop('MisalignMode',11)
75
76 shiftInMicrons = 100
77
78 if MisalignMode in [11, 12, 31]:
79 shiftInMicrons = 500
80
81 outFiles = 'MisalignmentSet%s' % (MisalignMode)
82 misalignModeMap = {0:'no Misalignment',
83 1: 'misalignment by 6 parameters',
84 2: 'random misalignment',
85 3: 'IBL-stave temperature dependent bowing',
86 7: 'misalignment according to module indices',
87 41: 'ITk endcap beam-pipe z shift',
88 42: 'ITk pixel barrel layer bowing',
89 43: 'ITk barrel radial expansion',
90 11: 'R deltaR (radial expansion)', 12: 'Phi deltaR (ellipse)',13: 'Z deltaR (funnel)',
91 21: 'R deltaPhi (curl)', 22: 'Phi deltaPhi (clamshell) ',23:'Z deltaPhi (twist)',
92 31: 'R deltaZ (telescope)',32:'Phi deltaZ (skew)',33:'Z deltaZ (z-expansion)'}
93
94
95 local_translation_str = kwargs.pop('Local_Translation', '0.0,0.0,0.0')
96 local_rotation_str = kwargs.pop('Local_Rotation', '0.0,0.0,0.0')
97 Local_Translation = [float(x) for x in local_translation_str.split(',')]
98 Local_Rotation = [float(x) for x in local_rotation_str.split(',')]
99 translation_scale_str = kwargs.pop('Translation_Scale', '0.1,0.1,0.1')
100 rotation_scale_str = kwargs.pop('Rotation_Scale', '0.1,0.1,0.1')
101 Translation_Scale = [float(x) for x in translation_scale_str.split(',')]
102 Rotation_Scale = [float(x) for x in rotation_scale_str.split(',')]
103 acc=MainServicesCfg(flags)
104 print ("\n CreateMisalignAlg: Creation of misalignment mode %s: %s \n" % (int(MisalignMode),misalignModeMap.get(int(MisalignMode),'unknown')))
105 kwargs.setdefault("ASCIIFilenameBase",outFiles)
106 kwargs.setdefault("SQLiteTag",'MisalignmentMode_'+str(misalignModeMap.get(int(MisalignMode),'unknown')))
107 kwargs.setdefault("MisalignMode",int(MisalignMode))
108 kwargs.setdefault("TargetLayer", int(kwargs.pop('TargetLayer', 0)))
109 kwargs.setdefault("TargetLayerMax", int(kwargs.pop('TargetLayerMax', -999)))
110 kwargs.setdefault("IBLBowingTshift", float(kwargs.pop('IBLBowingTshift', 0.0)))
111 kwargs.setdefault("EndcapShiftConvention", kwargs.pop('EndcapShiftConvention', 'outward'))
112 kwargs.setdefault("RadialShift", float(kwargs.pop('RadialShift', 0.0)))
113 kwargs.setdefault("RadialShiftConvention", kwargs.pop('RadialShiftConvention', 'outward'))
114 kwargs.setdefault("RadialSubdetector", kwargs.pop('RadialSubdetector', 'Pixel'))
115 kwargs.setdefault("Translation_Scale",Translation_Scale)
116 kwargs.setdefault("Rotation_Scale",Rotation_Scale)
117 kwargs.setdefault("Local_Translation",Local_Translation)
118 kwargs.setdefault("Local_Rotation",Local_Rotation)
119 kwargs.setdefault("Index", str(kwargs.pop('Index', '')))
120 kwargs.setdefault("MaxShift",shiftInMicrons)
121 kwargs.setdefault("CreateFreshDB",createFreshDB)
122 #Create and configure the AlignDB tool
123
124 outputAlignFolder="/Indet/AlignITk" #The folder name from which initial misalignments should be read - currently may clash if this is the same is the input folder!
125
126 writeDBPoolFile=True #Activate or deactivate writing to outFiles + '.pool.root'
127 kargsTool={}
128 kargsTool.setdefault("SCTTwoSide",True)
129 kargsTool.setdefault("DBRoot",outputAlignFolder)
130 kargsTool.setdefault("forceUserDBConfig",True)
131 if writeDBPoolFile:
132 print("Writing DB Pool File")
133 InDetCondStream=CompFactory.AthenaOutputStreamTool("CondStream_write",OutputFile = outFiles+'.pool.root')
134 InDetCondStream.PoolContainerPrefix="<type>"
135 InDetCondStream.TopLevelContainerName=""
136 InDetCondStream.SubLevelBranchName="<key>"
137 kargsTool.setdefault("CondStream",InDetCondStream)
138 dbTool = acc.popToolsAndMerge(ITkAlignDBTool(flags,**kargsTool))
139
140 kwargs.setdefault("IDAlignDBTool",dbTool)
141
142 cfg=CreateITkMisalignAlgCfg(flags,name=name,**kwargs)
143
144 acc.merge(cfg)
145 if writeDBPoolFile:
146 print("To be writen DB pool File")
147
148 return acc
149
void print(char *figname, TCanvas *c1)

◆ getFlags()

CreateMisalignmentITk.getFlags ( ** kwargs)

Definition at line 20 of file CreateMisalignmentITk.py.

20def getFlags(**kwargs):
21 flags=initConfigFlags()
22
23 flags.Input.isMC = True
24
25 flags.Input.Files = []
26
27 from AthenaConfiguration.TestDefaults import defaultGeometryTags,defaultConditionsTags
28 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN4
29 flags.GeoModel.Align.Dynamic = False
30
31 flags.ITk.Geometry.isAlignable = True
32 flags.ITk.Align.alignITkPixel = True
33 flags.ITk.Align.alignITkStrip = True
34
35
36
37 flags.ITk.Geometry.AllLocal = False
38 detectors = [
39 "ITkPixel",
40 "ITkStrip",
41 "Bpipe"
42 ]
43 setupDetectorFlags(flags, custom_list=detectors, toggle_geometry=True)
44 flags.TrackingGeometry.MaterialSource = "Input"
45
46
47 #Define the output database file name and add it to the flags
48 if 'MisalignMode' not in kwargs.keys():
49 MisalignMode = 11 # Radial
50 else:
51 MisalignMode=int(kwargs.get('MisalignMode',11))
52 databaseFilename = 'MisalignmentSet%s.db' % (MisalignMode)
53 flags.IOVDb.DBConnection="sqlite://;schema=%s;dbname=OFLCOND" % (databaseFilename)
54 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN4_MC
55
56
57 # This should run serially for the moment.
58 flags.Concurrency.NumThreads = 1
59 flags.Concurrency.NumConcurrentEvents = 1
60 flags.lock()
61
62 return flags
63

Variable Documentation

◆ acc

CreateMisalignmentITk.acc = CreateMis(flags,**kwargs)

Definition at line 161 of file CreateMisalignmentITk.py.

◆ flags

CreateMisalignmentITk.flags = getFlags(**kwargs)

Definition at line 158 of file CreateMisalignmentITk.py.

◆ kwargs

dict CreateMisalignmentITk.kwargs = dict(arg.split('=') for arg in sys.argv[1:])

Definition at line 152 of file CreateMisalignmentITk.py.

◆ sc

CreateMisalignmentITk.sc = acc.run(10)

Definition at line 165 of file CreateMisalignmentITk.py.