ATLAS Offline Software
Functions | Variables
CreateMisalignmentITk Namespace Reference

Functions

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

Variables

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

Function Documentation

◆ CreateMis()

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

Definition at line 74 of file CreateMisalignmentITk.py.

74 def CreateMis(flags,name="CreateITkMisalignAlg",**kwargs):
75  #
76  #--------------------------------------------------------------
77  # Geometry section
78  #--------------------------------------------------------------
79  misalignmentOnTopOfExistingSet = False
80  readDBPoolFile = False
81 
82  createFreshDB = not(readDBPoolFile or misalignmentOnTopOfExistingSet)
83 
84  MisalignMode = kwargs.pop('MisalignMode',11)
85 
86  shiftInMicrons = 100
87 
88  if MisalignMode in [11, 12, 31]:
89  shiftInMicrons = 500
90 
91  outFiles = 'MisalignmentSet%s' % (MisalignMode)
92  misalignModeMap = {0:'no Misalignment',
93  1: 'misalignment by 6 parameters',
94  2: 'random misalignment',
95  3: 'IBL-stave temperature dependent bowing',
96  7: 'misalignment according to module indices',
97  11: 'R deltaR (radial expansion)', 12: 'Phi deltaR (ellipse)',13: 'Z deltaR (funnel)',
98  21: 'R deltaPhi (curl)', 22: 'Phi deltaPhi (clamshell) ',23:'Z deltaPhi (twist)',
99  31: 'R deltaZ (telescope)',32:'Phi deltaZ (skew)',33:'Z deltaZ (z-expansion)'}
100 
101 
102  local_translation_str = kwargs.pop('Local_Translation', '0.0,0.0,0.0')
103  local_rotation_str = kwargs.pop('Local_Rotation', '0.0,0.0,0.0')
104  Local_Translation = [float(x) for x in local_translation_str.split(',')]
105  Local_Rotation = [float(x) for x in local_rotation_str.split(',')]
106  translation_scale_str = kwargs.pop('Translation_Scale', '0.1,0.1,0.1')
107  rotation_scale_str = kwargs.pop('Rotation_Scale', '0.1,0.1,0.1')
108  Translation_Scale = [float(x) for x in translation_scale_str.split(',')]
109  Rotation_Scale = [float(x) for x in rotation_scale_str.split(',')]
110  acc=MainServicesCfg(flags)
111  print ("\n CreateMisalignAlg: Creation of misalignment mode %s: %s \n" % (int(MisalignMode),misalignModeMap.get(int(MisalignMode),'unknown')))
112  kwargs.setdefault("ASCIIFilenameBase",outFiles)
113  kwargs.setdefault("SQLiteTag",'MisalignmentMode_'+str(misalignModeMap.get(int(MisalignMode),'unknown')))
114  kwargs.setdefault("MisalignMode",int(MisalignMode))
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 

◆ getFlags()

def CreateMisalignmentITk.getFlags ( **  kwargs)

Definition at line 20 of file CreateMisalignmentITk.py.

20 def 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  if MisalignMode == 2:
53  translation_scale_str = kwargs.pop('Translation_Scale', '0.1,0.1,0.1')
54  rotation_scale_str = kwargs.pop('Rotation_Scale', '0.1,0.1,0.1')
55  Translation_Scale = [float(x) for x in translation_scale_str.split(',')]
56  Rotation_Scale = [float(x) for x in rotation_scale_str.split(',')]
57  if MisalignMode == 7:
58  local_translation_str = kwargs.pop('Local_Translation', '0.0,0.0,0.0')
59  local_rotation_str = kwargs.pop('Local_Rotation', '0.0,0.0,0.0')
60  Local_Translation = [float(x) for x in local_translation_str.split(',')]
61  Local_Rotation = [float(x) for x in local_rotation_str.split(',')]
62  databaseFilename = 'MisalignmentSet%s.db' % (MisalignMode)
63  flags.IOVDb.DBConnection="sqlite://;schema=%s;dbname=OFLCOND" % (databaseFilename)
64  flags.IOVDb.GlobalTag = defaultConditionsTags.RUN4_MC
65 
66 
67  # This should run serially for the moment.
68  flags.Concurrency.NumThreads = 1
69  flags.Concurrency.NumConcurrentEvents = 1
70  flags.lock()
71 
72  return flags
73 

Variable Documentation

◆ acc

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

Definition at line 161 of file CreateMisalignmentITk.py.

◆ flags

def CreateMisalignmentITk.flags = getFlags(**kwargs)

Definition at line 158 of file CreateMisalignmentITk.py.

◆ kwargs

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

Definition at line 152 of file CreateMisalignmentITk.py.

◆ sc

def CreateMisalignmentITk.sc = acc.run(10)

Definition at line 165 of file CreateMisalignmentITk.py.

CreateMisalignmentITk.CreateMis
def CreateMis(flags, name="CreateITkMisalignAlg", **kwargs)
Definition: CreateMisalignmentITk.py:74
InDetAlignAlgsConfig.CreateITkMisalignAlgCfg
def CreateITkMisalignAlgCfg(flags, name="CreateITkMisalignAlg", **kwargs)
Definition: InDetAlignAlgsConfig.py:6
CreateMisalignmentITk.getFlags
def getFlags(**kwargs)
Definition: CreateMisalignmentITk.py:20
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:312
print
void print(char *figname, TCanvas *c1)
Definition: TRTCalib_StrawStatusPlots.cxx:26
python.DetectorConfigFlags.setupDetectorFlags
def setupDetectorFlags(flags, custom_list=None, use_metadata=False, toggle_geometry=False, validate_only=False, keep_beampipe=False)
Definition: DetectorConfigFlags.py:292
python.CaloAddPedShiftConfig.int
int
Definition: CaloAddPedShiftConfig.py:45
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
InDetAlignGenToolsConfig.ITkAlignDBTool
def ITkAlignDBTool(flags, name="ITkAlignDBTool", **kwargs)
Definition: InDetAlignGenToolsConfig.py:6
str
Definition: BTagTrackIpAccessor.cxx:11
python.LArMinBiasAlgConfig.float
float
Definition: LArMinBiasAlgConfig.py:65