Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Functions | Variables
CreateMisalignmentITk Namespace Reference

Functions

def blockFolder (ca, folder)
 
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

◆ blockFolder()

def CreateMisalignmentITk.blockFolder (   ca,
  folder 
)

Definition at line 18 of file CreateMisalignmentITk.py.

18 def blockFolder(ca,folder):
19  "Block use of specified conditions DB folder so data can be read from elsewhere"
20  from IOVDbSvc.IOVDbSvcConfig import IOVDbSvcCfg
21  ca.merge(IOVDbSvcCfg(flags))
22  iovdbsvc=ca.getService("IOVDbSvc")
23  # check existing list of folders and remove it if found
24  for i in range(0,len(iovdbsvc.Folders)):
25  if (iovdbsvc.Folders[i].find(folder)>=0):
26  del iovdbsvc.Folders[i]
27  break
28  condInputLoader=ca.getCondAlgo("CondInputLoader")
29  for i in range(0, len(condInputLoader.Load)):
30  if (folder in condInputLoader.Load[i][-1] ):
31  del condInputLoader.Load[i]
32  break
33 
34 

◆ CreateMis()

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

Definition at line 87 of file CreateMisalignmentITk.py.

87 def CreateMis(flags,name="CreateITkMisalignAlg",**kwargs):
88  #
89  #--------------------------------------------------------------
90  # Geometry section
91  #--------------------------------------------------------------
92  misalignmentOnTopOfExistingSet = False
93  readDBPoolFile = False
94 
95  createFreshDB = not(readDBPoolFile or misalignmentOnTopOfExistingSet)
96 
97  MisalignMode = kwargs.pop('MisalignMode',11)
98 
99  shiftInMicrons = 100
100 
101  if MisalignMode in [11, 12, 31]:
102  shiftInMicrons = 500
103  outFiles = 'MisalignmentSet%s' % (MisalignMode)
104  misalignModeMap = {0:'no Misalignment',
105  1: 'misalignment by 6 parameters',
106  2: 'random misalignment',
107  3: 'IBL-stave temperature dependent bowing',
108  11: 'R deltaR (radial expansion)', 12: 'Phi deltaR (ellipse)',13: 'Z deltaR (funnel)',
109  21: 'R deltaPhi (curl)', 22: 'Phi deltaPhi (clamshell) ',23:'Z deltaPhi (twist)',
110  31: 'R deltaZ (telescope)',32:'Phi deltaZ (skew)',33:'Z deltaZ (z-expansion)'}
111 
112 
113  acc=MainServicesCfg(flags)
114  print ("\n CreateMisalignAlg: Creation of misalignment mode %s: %s \n" % (int(MisalignMode),misalignModeMap.get(int(MisalignMode),'unknown')))
115  kwargs.setdefault("ASCIIFilenameBase",outFiles)
116  kwargs.setdefault("SQLiteTag",'MisalignmentMode_'+str(misalignModeMap.get(int(MisalignMode),'unknown')))
117  kwargs.setdefault("MisalignMode",int(MisalignMode))
118  kwargs.setdefault("Translation",bool(str(kwargs.pop('Translation','True'))=='True'))
119  kwargs.setdefault("Rotation",bool(str(kwargs.pop('Rotation','True'))=='True'))
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("DBKey",outputAlignFolder)
131  kargsTool.setdefault("forceUserDBConfig",True)
132  if writeDBPoolFile:
133  print("Writing DB Pool File")
134  InDetCondStream=CompFactory.AthenaOutputStreamTool("CondStream_write",OutputFile = outFiles+'.pool.root')
135  InDetCondStream.PoolContainerPrefix="<type>"
136  InDetCondStream.TopLevelContainerName=""
137  InDetCondStream.SubLevelBranchName="<key>"
138  kargsTool.setdefault("CondStream",InDetCondStream)
139  dbTool = acc.popToolsAndMerge(ITkAlignDBTool(flags,**kargsTool))
140 
141  kwargs.setdefault("IDAlignDBTool",dbTool)
142 
143  cfg=CreateITkMisalignAlgCfg(flags,name=name,**kwargs)
144 
145  acc.merge(cfg)
146  if writeDBPoolFile:
147  print("To be writen DB pool File")
148 
149  return acc
150 

◆ getFlags()

def CreateMisalignmentITk.getFlags ( **  kwargs)

Definition at line 35 of file CreateMisalignmentITk.py.

35 def getFlags(**kwargs):
36  flags=initConfigFlags()
37 
38  flags.Input.isMC = True
39 
40  flags.Input.Files = []
41 
42  from AthenaConfiguration.TestDefaults import defaultGeometryTags,defaultConditionsTags
43  flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN4
44  flags.GeoModel.Align.Dynamic = False
45 
46  flags.ITk.Geometry.isAlignable = True
47 
48  flags.ITk.Geometry.AllLocal = False
49  detectors = [
50  "ITkPixel",
51  "ITkStrip",
52  "Bpipe"
53  ]
54  setupDetectorFlags(flags, custom_list=detectors, toggle_geometry=True)
55  flags.TrackingGeometry.MaterialSource = "Input"
56 
57 
58  #Define the output database file name and add it to the flags
59  if 'MisalignMode' not in kwargs.keys():
60  MisalignMode = 11 # Radial
61  else:
62  MisalignMode=int(kwargs.get('MisalignMode',11))
63  if 'Translation' not in kwargs.keys():
64  Translation = True
65  else:
66  Translation=bool(kwargs.get('Translation','True')=='True')
67  if not Translation:
68  print ("Translation not set to \"True\" - disabling generation of translations")
69  if 'Rotation' not in kwargs.keys():
70  Rotation = True
71  else:
72  Rotation=bool(kwargs.get('Rotation','True')=='True')
73  if not Rotation:
74  print ("Rotation not set to \"True\" - disabling generation of rotations")
75  databaseFilename = 'MisalignmentSet%s.db' % (MisalignMode)
76  flags.IOVDb.DBConnection="sqlite://;schema=%s;dbname=OFLCOND" % (databaseFilename)
77  flags.IOVDb.GlobalTag = defaultConditionsTags.RUN4_MC
78 
79 
80  # This should run serially for the moment.
81  flags.Concurrency.NumThreads = 1
82  flags.Concurrency.NumConcurrentEvents = 1
83  flags.lock()
84 
85  return flags
86 

Variable Documentation

◆ acc

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

Definition at line 162 of file CreateMisalignmentITk.py.

◆ flags

def CreateMisalignmentITk.flags = getFlags(**kwargs)

Definition at line 159 of file CreateMisalignmentITk.py.

◆ kwargs

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

Definition at line 153 of file CreateMisalignmentITk.py.

◆ sc

def CreateMisalignmentITk.sc = acc.run(10)

Definition at line 166 of file CreateMisalignmentITk.py.

CreateMisalignmentITk.CreateMis
def CreateMis(flags, name="CreateITkMisalignAlg", **kwargs)
Definition: CreateMisalignmentITk.py:87
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
InDetAlignAlgsConfig.CreateITkMisalignAlgCfg
def CreateITkMisalignAlgCfg(flags, name="CreateITkMisalignAlg", **kwargs)
Definition: InDetAlignAlgsConfig.py:6
CreateMisalignmentITk.getFlags
def getFlags(**kwargs)
Definition: CreateMisalignmentITk.py:35
python.LArMinBiasAlgConfig.int
int
Definition: LArMinBiasAlgConfig.py:59
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:260
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
python.IOVDbSvcConfig.IOVDbSvcCfg
def IOVDbSvcCfg(flags, **kwargs)
Definition: IOVDbSvcConfig.py:28
print
void print(char *figname, TCanvas *c1)
Definition: TRTCalib_StrawStatusPlots.cxx:25
CreateMisalignmentITk.blockFolder
def blockFolder(ca, folder)
Definition: CreateMisalignmentITk.py:18
python.DetectorConfigFlags.setupDetectorFlags
def setupDetectorFlags(flags, custom_list=None, use_metadata=False, toggle_geometry=False, validate_only=False, keep_beampipe=False)
Definition: DetectorConfigFlags.py:291
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
xAOD::bool
setBGCode setTAP setLVL2ErrorBits bool
Definition: TrigDecision_v1.cxx:60