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:]
69 if sd == path[1:]:
70
71 firstsd = True
72 else:
73 firstsd = False
74
75 if sd=="":
76
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
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
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
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
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
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
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
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
124
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
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
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
159