Public Member Functions | |
def | __init__ |
def | parameters |
def | logvol |
Public Attributes | |
name | |
radius | |
height | |
material | |
parent | |
child | |
params | |
lv |
Definition at line 102 of file gen.py.
def gen::CylinderSelf::__init__ | ( | self, | ||
name, | ||||
radius, | ||||
height, | ||||
material, | ||||
parent = None , |
||||
child = None | ||||
) |
def gen::CylinderSelf::parameters | ( | self | ) |
Definition at line 114 of file gen.py.
00114 : 00115 """ 00116 Build up the parameters for a cylinder based on thicknesses and parent values. 00117 """ 00118 if self.params: return self.params 00119 00120 from XmlDetDescGen.parameter import Parameter 00121 00122 ts = [] 00123 ps = [] 00124 for thing,size in [("Radius",self.radius), 00125 ("Height",self.height)]: 00126 t = Parameter("AD%s%s"%(self.name,thing), 00127 size, 00128 "%s for %s"%(thing,self.name.upper())) 00129 ts.append(t) 00130 if self.name=="sst": 00131 p = [Parameter("ADsstBotRibHeight", 00132 "430*mm", 00133 "Height for %s bottom ribs."%(self.name.upper())), 00134 Parameter("SstFotHeight", 00135 "10*mm", 00136 "Height for %s feet."%(self.name.upper())), 00137 Parameter("SstBotThickness", 00138 "20*mm", 00139 "%s bottom thickness."%(self.name.upper())), 00140 Parameter("SstLidThickness", 00141 "15*mm", 00142 "%s bottom thickness."%(self.name.upper())) 00143 ] 00144 ps.extend(p) 00145 00146 if self.name=="oil": 00147 p = [Parameter("ADrftBotHeight", 00148 "30*mm", 00149 "Height for the bottom reflector in %s." 00150 %(self.name.upper())) 00151 ] 00152 ps.extend(p) 00153 00154 self.params = ts + ps return self.params
def gen::CylinderSelf::logvol | ( | self | ) |
Definition at line 155 of file gen.py.
00157 : 00158 if self.lv: return self.lv 00159 00160 from XmlDetDescGen.geometry import Tubs,Logvol,Physvol,PosXYZ 00161 from XmlDetDescGen.util import ExternalEntity 00162 00163 pv = [] 00164 if self.child: 00165 if self.name == 'sst': 00166 pv.append(Physvol("pv"+self.child.name.upper(), 00167 self.child.logvol(), 00168 PosXYZ(0, 0,"(SstFotHeight+SstBotThickness-SstLidThickness)/2"))) 00169 elif self.name == 'oil': 00170 pv.append(Physvol("pv"+self.child.name.upper(), 00171 self.child.logvol(), 00172 #PosXYZ(0, 0, "ADrftBotHeight+ADsstBotRibHeight-ADoilHeight/2"))) 00173 PosXYZ(0, 0, "ADrftBotHeight+ADsstBotRibHeight-ADoilHeight/2+(OavBrlHeight-OavBrlFlgThickness)/2"))) 00174 else: 00175 pv.append(Physvol("pv"+self.child.name.upper(), 00176 self.child.logvol())) 00177 00178 if self.name == 'oil': 00179 pv.append(Physvol('pvAdPmtArray', 00180 '/dd/Geometry/AdPmts/lvAdPmtArray')) 00181 00182 pv.append(ExternalEntity("HandWrittenPhysVols")) 00183 00184 self.lv = Logvol("lv"+self.name.upper(),self.material, 00185 Tubs(self.name, 00186 'AD%sHeight'%self.name, 00187 'AD%sRadius'%self.name), 00188 pv) return self.lv