SND@LHC Software
Loading...
Searching...
No Matches
conditionsDatabase.snd_conDB Namespace Reference

Functions

 local2Global (n)
 
 add_info (path, node, level, currentlevel, print_sub_det_info=False)
 

Variables

int debug = 0
 
str fname = "~/snd-soft-23april-2021/sndsw/geofile_full.conical.Pythia8-TGeant4.root"
 
 fgeom = ROOT.TFile.Open(fname)
 
 fGeo = fgeom.FAIRGeom
 
 top = fGeo.GetTopVolume()
 
int currentlevel = 1
 
int level = 5
 
 api_factory = APIFactory()
 
 conditionsDB = api_factory.construct_DB_API("/home/eric/snd-soft-23april-2021/sndsw/conditionsDatabase/config.yml")
 
 result = conditionsDB.list_detectors()
 
int j = 0
 
list results = []
 
 conditions = conditionsDB.get_conditions_by_tag(sd,'Geo')
 
list resultss = []
 

Function Documentation

◆ add_info()

conditionsDatabase.snd_conDB.add_info (   path,
  node,
  level,
  currentlevel,
  print_sub_det_info = False 
)

Definition at line 55 of file snd_conDB.py.

55def add_info(path, node, level, currentlevel, print_sub_det_info=False):
56 sub_nodes = {}
57 fullInfo = {}
58 conditions_0={}
59 conditions_1={}
60 conditions={}
61 conditions_e0={}
62 conditions_p0={}
63 conditions_mu0={}
64 conditions_Scifi={}
65 for subnode in node.GetNodes():
66 name = subnode.GetName()
67 fullInfo[name] = local2Global(path + '/' + name)
68 sd = path[path.rfind('/')+1:] # want to know if we're inside a subdetector
69 if sd == path[1:]:
70 # it was the first
71 firstsd = True
72 else:
73 firstsd = False
74
75 if sd=="":
76 #print("path=",name,"sd=",sd)
77 conditionsDB.add_detector(name)
78 conditions= {'x':fullInfo[name]['boundingbox'][0],'y':fullInfo[name]['boundingbox'][1],'z':fullInfo[name]['boundingbox'][2]}
79 conditionsDB.add_condition(name, "xyz", "Geo", conditions,None,datetime.datetime.now(), datetime.datetime.max)
80 else:
81 if firstsd == False:
82 conditionsDB.add_detector(name , path[1:] )
83 if sd=="volVetoPlane_0" and name[:10]=="volVetoBar":
84 conditions_0[name]={'x':fullInfo[name]['boundingbox'][0],'y':fullInfo[name]['boundingbox'][1],'z':fullInfo[name]['boundingbox'][2]}
85 if name=="volVetoBar_6" :
86 #print ("adding conditions to",path[1:],"conditions_0",conditions_0)
87 conditionsDB.add_condition(path[1:], "barpositions", "Geo", conditions_0,None,datetime.datetime.now(), datetime.datetime.max)
88 if sd=="volVetoPlane_1" and name[:10]=="volVetoBar":
89 conditions_1[name]={'x':fullInfo[name]['boundingbox'][0],'y':fullInfo[name]['boundingbox'][1],'z':fullInfo[name]['boundingbox'][2]}
90 if name=="volVetoBar_6" :
91 #print ("adding conditions to",path[1:],"conditions_1",conditions_1)
92 conditionsDB.add_condition(path[1:], "barpositions", "Geo", conditions_1,None,datetime.datetime.now(), datetime.datetime.max)
93
94 if sd[:5]=="Brick" and name[:8]=="Emulsion":
95 conditions_e0[name]={'x':fullInfo[name]['boundingbox'][0],'y':fullInfo[name]['boundingbox'][1],'z':fullInfo[name]['boundingbox'][2]}
96 if name=="Emulsion_59" :
97 #print ("emulsion path",path[1:])
98 conditionsDB.add_condition(path[1:], "emulsionpositions", "Geo", conditions_e0,None,datetime.datetime.now(), datetime.datetime.max)
99
100 if sd[:5]=="Brick" and name[:10]=="volPassive":
101 conditions_p0[name]={'x':fullInfo[name]['boundingbox'][0],'y':fullInfo[name]['boundingbox'][1],'z':fullInfo[name]['boundingbox'][2]}
102 if name=="volPassive_58" :
103 #print ("tungsten path",path[1:])
104 conditionsDB.add_condition(path[1:], "tungsten positions", "Geo", conditions_p0,None,datetime.datetime.now(), datetime.datetime.max)
105
106 if sd[:13]=="volUpstreamDet" and name[:16]=="volMuUpstreamBar":
107 conditions_mu0[name]={'x':fullInfo[name]['boundingbox'][0],'y':fullInfo[name]['boundingbox'][1],'z':fullInfo[name]['boundingbox'][2]}
108 if name=="volMuUpstreamBar_hor_1009" :
109 #print ("emulsion path",path[1:])
110 conditionsDB.add_condition(path[1:], "mu upstream", "Geo", conditions_mu0,None,datetime.datetime.now(), datetime.datetime.max)
111
112 if sd[:15]=="volDownstreamDet" and name[:18]=="volMuDownstreamBar":
113 conditions_mu0[name]={'x':fullInfo[name]['boundingbox'][0],'y':fullInfo[name]['boundingbox'][1],'z':fullInfo[name]['boundingbox'][2]}
114 if name=="volMuDownstreamBar_ver_100059" :
115 #print ("emulsion path",path[1:])
116 conditionsDB.add_condition(path[1:], "mu downstream ", "Geo", conditions_mu0,None,datetime.datetime.now(), datetime.datetime.max)
117 if name[:5]=="Scifi":
118 conditions_Scifi[name]={'id':name[7:7]}
119 #print ("SciFi path",path[1:])
120 if name=="Scifi_4":
121 conditionsDB.add_condition(path[1:], "SciFi ", "Geo", conditions_Scifi,None,datetime.datetime.now(), datetime.datetime.max)
122 else:
123 #scifi structure not yet in geofile, add it by hand:
124 #print ("adding name",name,"sd",sd," to condb")
125 conditionsDB.add_detector(name , sd)
126 if name[:5]=="Scifi":
127 conditions_Scifi[name]={'id':name[6:]}
128 for l in range(2):
129 planesd="plane_"+str(l)
130 #print ("planesd",planesd,"name",name)
131 conditionsDB.add_detector( planesd,sd+"/"+name )
132 for m in range(3):
133 boardsd="board_"+str(m)
134 conditionsDB.add_detector(boardsd, sd+"/"+name+"/"+planesd)
135 for n in range(8):
136 tofpetsd="tofpet_"+str(n)
137 conditionsDB.add_detector(tofpetsd, sd+"/"+name+"/"+planesd+"/"+boardsd)
138 for o in range(64):
139 channelsd="channel_"+str(o)
140 conditionsDB.add_detector(channelsd, sd+"/"+name+"/"+planesd+"/"+boardsd+"/"+tofpetsd)
141
142 if name=="Scifi_4":
143 #print ("SciFi conditions=",conditions_Scifi)
144 conditionsDB.add_condition(path[1:], "SciFi ", "Geo", conditions_Scifi,None,datetime.datetime.now(), datetime.datetime.max)
145 else:
146 conditions= {'x':fullInfo[name]['boundingbox'][0],'y':fullInfo[name]['boundingbox'][1],'z':fullInfo[name]['boundingbox'][2]}
147 conditionsDB.add_condition(path[1:]+'/'+name, "xyz", "Geo", conditions,None,datetime.datetime.now(), datetime.datetime.max)
148
149
150 sub_nodes[name] = fullInfo[name]['origin'][2]
151 if currentlevel < level and fullInfo[name]['node'].GetNodes():
152 add_info(fullInfo[name]['path'], fullInfo[name]['node'], level, currentlevel + 1,
153 print_sub_det_info)
154
155 if currentlevel == 0:
156 print_sub_det_info = False
157
158# debug=0: data added to conddb
159# debug=1: data removed from conddb

◆ local2Global()

conditionsDatabase.snd_conDB.local2Global (   n)

Definition at line 19 of file snd_conDB.py.

19def local2Global(n):
20 Info={}
21 nav = ROOT.gGeoManager.GetCurrentNavigator()
22 nav.cd(n)
23 Info['node'] = nav.GetCurrentNode()
24 Info['path'] = n
25 tmp = Info['node'].GetVolume().GetShape()
26 Info['material'] = Info['node'].GetVolume().GetMaterial().GetName()
27 o = [tmp.GetOrigin()[0],tmp.GetOrigin()[1],tmp.GetOrigin()[2]]
28 Info['locorign'] = o
29 local = array('d',o)
30 globOrigin = array('d',[0,0,0])
31 nav.LocalToMaster(local,globOrigin)
32 Info['origin'] = globOrigin
33 shifts = [ [-tmp.GetDX()+o[0],o[1],o[2]],
34 [tmp.GetDX()+o[0],o[1],o[2]],
35 [o[0],-tmp.GetDY()+o[1],o[2]],
36 [o[0],tmp.GetDY()+o[1],o[2]],
37 [o[0],o[1],-tmp.GetDZ()+o[2]],[o[0],o[1],tmp.GetDZ()+o[2]]
38 ]
39 shifted = []
40 for s in shifts:
41 local = array('d',s)
42 glob = array('d',[0,0,0])
43 nav.LocalToMaster(local,glob)
44 shifted.append([glob[0],glob[1],glob[2]])
45 Info['boundingbox']={}
46 for j in range(3):
47 jmin = 1E30
48 jmax = -1E30
49 for s in shifted:
50 if s[j]<jmin: jmin = s[j]
51 if s[j]>jmax: jmax = s[j]
52 Info['boundingbox'][j]=[jmin,jmax]
53 return Info
54

Variable Documentation

◆ api_factory

conditionsDatabase.snd_conDB.api_factory = APIFactory()

Definition at line 175 of file snd_conDB.py.

◆ conditions

conditionsDatabase.snd_conDB.conditions = conditionsDB.get_conditions_by_tag(sd,'Geo')

Definition at line 205 of file snd_conDB.py.

◆ conditionsDB

conditionsDatabase.snd_conDB.conditionsDB = api_factory.construct_DB_API("/home/eric/snd-soft-23april-2021/sndsw/conditionsDatabase/config.yml")

Definition at line 178 of file snd_conDB.py.

◆ currentlevel

int conditionsDatabase.snd_conDB.currentlevel = 1

Definition at line 168 of file snd_conDB.py.

◆ debug

int conditionsDatabase.snd_conDB.debug = 0

Definition at line 160 of file snd_conDB.py.

◆ fGeo

conditionsDatabase.snd_conDB.fGeo = fgeom.FAIRGeom

Definition at line 165 of file snd_conDB.py.

◆ fgeom

conditionsDatabase.snd_conDB.fgeom = ROOT.TFile.Open(fname)

Definition at line 164 of file snd_conDB.py.

◆ fname

str conditionsDatabase.snd_conDB.fname = "~/snd-soft-23april-2021/sndsw/geofile_full.conical.Pythia8-TGeant4.root"

Definition at line 163 of file snd_conDB.py.

◆ j

int conditionsDatabase.snd_conDB.j = 0

Definition at line 197 of file snd_conDB.py.

◆ level

int conditionsDatabase.snd_conDB.level = 5

Definition at line 170 of file snd_conDB.py.

◆ result

conditionsDatabase.snd_conDB.result = conditionsDB.list_detectors()

Definition at line 196 of file snd_conDB.py.

◆ results

list conditionsDatabase.snd_conDB.results = []

Definition at line 203 of file snd_conDB.py.

◆ resultss

list conditionsDatabase.snd_conDB.resultss = []

Definition at line 213 of file snd_conDB.py.

◆ top

conditionsDatabase.snd_conDB.top = fGeo.GetTopVolume()

Definition at line 166 of file snd_conDB.py.