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