| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

gen::PolyCone Class Reference

List of all members.

Public Member Functions

def __init__
def parameters
def logvol

Public Attributes

 zpos
 radius
 corner
 name
 nsec
 material
 parent
 child
 params
 lv

Static Public Attributes

list NAMES = ["oav","lso","iav","gds"]

Detailed Description

Definition at line 191 of file gen.py.


Member Function Documentation

def gen::PolyCone::__init__ (   self,
  name,
  corner,
  material,
  parent = None,
  child = None 
)

Definition at line 193 of file gen.py.

00193                                                                   :
00194         self.zpos=[]
00195         self.radius=[]
00196         self.corner=[]
00197         self.name = name
00198         self.corner=corner
00199         for zpos, radius in self.corner:
00200             self.zpos.append(zpos)
00201             self.radius.append(radius)
00202         self.nsec=len(corner)
00203         self.material=material
00204         self.parent = parent
00205         self.child = child
00206         self.params = []
00207         self.lv = None
00208         return
00209 
    def parameters(self):

def gen::PolyCone::parameters (   self  ) 

Definition at line 210 of file gen.py.

00210                         :
00211         """
00212         Build up the parameters for a polycone based on the zpos' and radii.
00213         """
00214         if self.params: return self.params
00215 
00216         from XmlDetDescGen.parameter import Parameter
00217 
00218         ts = []
00219         if self.name == "oav":
00220             t = [Parameter("OavThickness", "18*mm",
00221                            "Oav wall&lid thickness"),
00222                  Parameter("OavBrlHeight", "3982*mm",
00223                            "Oav barrel height"),
00224                  Parameter("OavBrlOutRadius", "2000*mm",
00225                            "Oav barrel outer radius"),
00226                  Parameter("OavBrlFlgThickness", "45*mm",
00227                            "Oav barrel flange thickness"),
00228                  Parameter("OavBrlFlgRadius", "2040*mm",
00229                            "Oav barrel flange radius"),
00230                  Parameter("OavLidFlgThickness", "39*mm",
00231                            "Oav lid flange thickness"),
00232                  Parameter("OavLidFlgWidth", "110*mm",
00233                            "Oav lid flange width"),
00234                  Parameter("OavLidConAngle", "3.*degree",
00235                            "Oav lid conical angle"),
00236                  Parameter("OavLidConBotRadius", 
00237                            "OavBrlFlgRadius-OavLidFlgWidth",
00238                            "Oav conical lid bottom radius"),
00239                  Parameter("OavLidConTopRadius", "125*mm",
00240                            "Oav conical lid top radius"),
00241                  Parameter("OavLidConHeight", 
00242                            "(OavLidConBotRadius-OavLidConTopRadius)*tan(OavLidConAngle)",
00243                            "Oav cone height from the turning point"),
00244                  Parameter("OavHeight", 
00245                            "OavBrlHeight+OavThickness/cos(OavLidConAngle)+OavLidConHeight", 
00246                            "Oav height to the top of the cone"),
00247                  Parameter("OavLidHeight", "OavHeight-OavBrlHeight",
00248                            "Oav lid height from barrel top to the cone top"),
00249                  Parameter("OavBotRibHeight", "197*mm",
00250                            "Oav bottom rib height")
00251                  ]
00252             ts.extend(t)
00253 
00254         if self.name == "lso":
00255             t = [Parameter("LsoBrlRadius", "OavBrlOutRadius - OavThickness",
00256                            "Lso barrel radius"),
00257                  Parameter("LsoBrlHeight", "OavBrlHeight-OavThickness",
00258                            "Lso barrel height"),
00259                  Parameter("LsoConBotRadius","OavLidConBotRadius",
00260                            "Lso cone bottom radius"),
00261                  Parameter("LsoConTopRadius", "OavLidConTopRadius",
00262                            "Lso cone top radius (same as the OAV lid top)"),
00263                  Parameter("LsoConTopTipRadius", "50*mm",
00264                            "The tip of LSO (with thickness of OAV lid flange) so LSO is filled to the very top of its container: OAV"),
00265                  Parameter("LsoConHeight", 
00266                            "(LsoConBotRadius-LsoConTopRadius)*tan(OavLidConAngle)",
00267                            "Lso cone height"),
00268                  Parameter("LsoHeight",
00269                            "LsoBrlHeight+OavThickness/cos(OavLidConAngle)+OavLidConHeight",
00270                            "Lso total height (till the bot of hub, or the very top of OAV)")
00271                  ]
00272             ts.extend(t)
00273 
00274         if self.name == "iav":
00275             t = [Parameter("IavBrlThickness", "10*mm",
00276                            "Iav barrel thickness"),
00277                  Parameter("ADiavRadiusThickness", "IavBrlThickness",
00278                            "Iav barrel thickness"),
00279                  Parameter("IavBotThickness", "15*mm",
00280                            "Iav bottom thickness"),
00281                  Parameter("ADiavHeightThickness", "IavBotThickness",
00282                            "Iav bottom thickness (close enough for top)"),
00283                  Parameter("IavBrlHeight", "3085*mm",
00284                            "Iav barrel height"),
00285                  Parameter("IavBrlOutRadius", "1560*mm",
00286                            "Iav barrel outer radius"),
00287                  Parameter("ADiavRadius", "IavBrlOutRadius",
00288                            "Iav barrel outer radius"),
00289                  Parameter("IavLidRadius","1565*mm",
00290                            "Iav lid radius"),
00291                  Parameter("IavLidThickness","15*mm",
00292                            "Iav lid thickness"),
00293                  Parameter("IavLidFlgThickness", "15*mm",
00294                            "Iav lid flange thickness"),
00295                  Parameter("IavLidConInrRadius", "1520*mm",
00296                            "Iav lid cone inside radius"),
00297                  Parameter("IavLidConAngle", "3.*degree",
00298                            "Iav lid conical angle"),
00299                  Parameter("IavLidConBotRadius", 
00300                            "IavLidConInrRadius+IavLidFlgThickness*tan(IavLidConAngle/2.)",
00301                            "Iav lid cone bottom radius"),
00302                  Parameter("IavLidConTopRadius", "100*mm",
00303                            "Iav lid cone top radius"),
00304                  Parameter("IavLidConHeight", 
00305                            "(IavLidConBotRadius-IavLidConTopRadius)*tan(IavLidConAngle)",
00306                            "Iav lid cone height"),
00307                  Parameter("IavBotRibHeight", "200*mm",
00308                            "Iav bottom rib height"),
00309                  Parameter("IavBotVitHeight", "45*mm",
00310                            "Iav bottom viton height"),
00311                  Parameter("IavCtrOflTubFlgHeight", "200*mm",
00312                            "Iav central overflow tube flange height"),
00313                  Parameter("IavCtrOflTubFlgThickness", "25*mm",
00314                            "Iav central overflow tube flange thickness"),
00315                  Parameter("IavCtrOflTubFlgRadius", "150*mm",
00316                            "Iav central overflow tube flange radius"),
00317                  Parameter("IavHeight", 
00318                            "IavBrlHeight+IavLidFlgThickness+IavLidConHeight", 
00319                            "Iav height to the top of the cone"),
00320                  Parameter("IavLidHeight", "IavHeight-IavBrlHeight",
00321                            "Iav lid height from barrel top the cone top")
00322                  ]
00323             ts.extend(t)
00324             
00325         if self.name == "gds":
00326             t = [Parameter("GdsConTopRadius", "75*mm",
00327                            "Gds cone top radius"),
00328                  Parameter("GdsConBotRadius", "IavLidConInrRadius",
00329                            "Gds cone bottom radius (same as IAV lid cone inner radius"),
00330                  Parameter("GdsBrlRadius", "IavBrlOutRadius-IavBrlThickness",
00331                            "Gds barrel radius"),
00332                  Parameter("GdsBrlHeight", "IavBrlHeight-IavBotThickness",
00333                            "Gds barrel height"),
00334                  Parameter("GdsConHeight", 
00335                            "(GdsConBotRadius-GdsConTopRadius)*tan(IavLidConAngle)",
00336                            "Gds cone height"),
00337                  Parameter("GdsHeight", 
00338                            "GdsBrlHeight+IavLidFlgThickness+IavLidConHeight",
00339                            "Gds total height (till the bot of IAV hub)")
00340                  ]
00341             ts.extend(t)
00342             
00343         i=0
00344         for zpos, radius in self.corner:
00345             i = i + 1
00346             t = Parameter("AD%sSec%szPos"%(self.name,i),
00347                           zpos,
00348                           "The %sth corner z pos of %s"%(i,self.name.upper()))
00349             ts.append(t)
00350             
00351             t = Parameter("AD%sSec%sRad"%(self.name,i),
00352                           radius,
00353                           "The %sth radius for %s"%(i,self.name.upper()))
00354             ts.append(t)
00355 
00356         self.params=ts
        return self.params

def gen::PolyCone::logvol (   self  ) 

Definition at line 357 of file gen.py.

00359                     :
00360         if self.lv: return self.lv
00361 
00362         from XmlDetDescGen.geometry import polyCone, Logvol, Physvol, PosXYZ
00363         from XmlDetDescGen.util import ExternalEntity
00364 
00365         pv = []
00366         if self.child:
00367             if self.name == "oav":
00368                 posZ = "OavThickness-(OavBrlHeight-OavBrlFlgThickness)/2"
00369                 if self.child.name == "lso":
00370                     posZ += "+LsoBrlHeight/2"
00371                 pv.append(Physvol("pv"+self.child.name.upper(),
00372                                   self.child.logvol(),
00373                                   PosXYZ(Z=posZ)))
00374             if self.name == "lso":
00375                 posZ = "OavBotRibHeight+IavBotVitHeight+IavBotRibHeight-LsoBrlHeight/2"
00376                 if self.child.name == "iav":
00377                     posZ += "+IavBrlHeight/2"
00378                 pv.append(Physvol("pv"+self.child.name.upper(),
00379                                   self.child.logvol(),
00380                                   PosXYZ(Z=posZ)))
00381             if self.name == "iav":
00382                 posZ = "IavBotThickness-IavBrlHeight/2"
00383                 if self.child.name == "gds":
00384                     posZ += "+GdsBrlHeight/2"
00385                 pv.append(Physvol("pv"+self.child.name.upper(),
00386                                   self.child.logvol(),
00387                                   PosXYZ(Z=posZ)))
00388 
00389         pv.append(ExternalEntity("HandWrittenPhysVols"))
00390 
00391         self.lv = Logvol("lv"+self.name.upper(),self.material,
00392                          polyCone(self.name,
00393                                   self.zpos,
00394                                   self.radius),
00395                          pv)
00396         return self.lv


Member Data Documentation

list gen::PolyCone::NAMES = ["oav","lso","iav","gds"] [static]

Definition at line 192 of file gen.py.

gen::PolyCone::zpos

Definition at line 194 of file gen.py.

gen::PolyCone::radius

Definition at line 195 of file gen.py.

gen::PolyCone::corner

Definition at line 196 of file gen.py.

gen::PolyCone::name

Definition at line 197 of file gen.py.

gen::PolyCone::nsec

Definition at line 202 of file gen.py.

gen::PolyCone::material

Definition at line 203 of file gen.py.

gen::PolyCone::parent

Definition at line 204 of file gen.py.

gen::PolyCone::child

Definition at line 205 of file gen.py.

gen::PolyCone::params

Definition at line 206 of file gen.py.

gen::PolyCone::lv

Definition at line 207 of file gen.py.


The documentation for this class was generated from the following file:
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:14:01 2011 for XmlDetDesc by doxygen 1.4.7