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 11: 'R deltaR (radial expansion)', 12: 'Phi deltaR (ellipse)',13: 'Z deltaR (funnel)',
88 21: 'R deltaPhi (curl)', 22: 'Phi deltaPhi (clamshell) ',23:'Z deltaPhi (twist)',
89 31: 'R deltaZ (telescope)',32:'Phi deltaZ (skew)',33:'Z deltaZ (z-expansion)'}
90
91
92 local_translation_str = kwargs.pop('Local_Translation', '0.0,0.0,0.0')
93 local_rotation_str = kwargs.pop('Local_Rotation', '0.0,0.0,0.0')
94 Local_Translation = [float(x) for x in local_translation_str.split(',')]
95 Local_Rotation = [float(x) for x in local_rotation_str.split(',')]
96 translation_scale_str = kwargs.pop('Translation_Scale', '0.1,0.1,0.1')
97 rotation_scale_str = kwargs.pop('Rotation_Scale', '0.1,0.1,0.1')
98 Translation_Scale = [float(x) for x in translation_scale_str.split(',')]
99 Rotation_Scale = [float(x) for x in rotation_scale_str.split(',')]
100 acc=MainServicesCfg(flags)
101 print ("\n CreateMisalignAlg: Creation of misalignment mode %s: %s \n" % (int(MisalignMode),misalignModeMap.get(int(MisalignMode),'unknown')))
102 kwargs.setdefault("ASCIIFilenameBase",outFiles)
103 kwargs.setdefault("SQLiteTag",'MisalignmentMode_'+str(misalignModeMap.get(int(MisalignMode),'unknown')))
104 kwargs.setdefault("MisalignMode",int(MisalignMode))
105 kwargs.setdefault("Translation_Scale",Translation_Scale)
106 kwargs.setdefault("Rotation_Scale",Rotation_Scale)
107 kwargs.setdefault("Local_Translation",Local_Translation)
108 kwargs.setdefault("Local_Rotation",Local_Rotation)
109 kwargs.setdefault("Index", str(kwargs.pop('Index', '')))
110 kwargs.setdefault("MaxShift",shiftInMicrons)
111 kwargs.setdefault("CreateFreshDB",createFreshDB)
112 #Create and configure the AlignDB tool
113
114 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!
115
116 writeDBPoolFile=True #Activate or deactivate writing to outFiles + '.pool.root'
117 kargsTool={}
118 kargsTool.setdefault("SCTTwoSide",True)
119 kargsTool.setdefault("DBRoot",outputAlignFolder)
120 kargsTool.setdefault("forceUserDBConfig",True)
121 if writeDBPoolFile:
122 print("Writing DB Pool File")
123 InDetCondStream=CompFactory.AthenaOutputStreamTool("CondStream_write",OutputFile = outFiles+'.pool.root')
124 InDetCondStream.PoolContainerPrefix="<type>"
125 InDetCondStream.TopLevelContainerName=""
126 InDetCondStream.SubLevelBranchName="<key>"
127 kargsTool.setdefault("CondStream",InDetCondStream)
128 dbTool = acc.popToolsAndMerge(ITkAlignDBTool(flags,**kargsTool))
129
130 kwargs.setdefault("IDAlignDBTool",dbTool)
131
132 cfg=CreateITkMisalignAlgCfg(flags,name=name,**kwargs)
133
134 acc.merge(cfg)
135 if writeDBPoolFile:
136 print("To be writen DB pool File")
137
138 return acc
139
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 151 of file CreateMisalignmentITk.py.

◆ flags

CreateMisalignmentITk.flags = getFlags(**kwargs)

Definition at line 148 of file CreateMisalignmentITk.py.

◆ kwargs

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

Definition at line 142 of file CreateMisalignmentITk.py.

◆ sc

CreateMisalignmentITk.sc = acc.run(10)

Definition at line 155 of file CreateMisalignmentITk.py.