/search.css" rel="stylesheet" type="text/css"/> /search.js">
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

Public Member Functions | Public Attributes | Static Public Attributes
XmlDetDescGen::AD::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 199 of file gen.py.


Constructor & Destructor Documentation

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

Definition at line 201 of file gen.py.

00202                                                                   :
00203         self.zpos=[]
00204         self.radius=[]
00205         self.corner=[]
00206         self.name = name
00207         self.corner=corner
00208         for zpos, radius in self.corner:
00209             self.zpos.append(zpos)
00210             self.radius.append(radius)
00211         self.nsec=len(corner)
00212         self.material=material
00213         self.parent = parent
00214         self.child = child
00215         self.params = []
00216         self.lv = None
00217         return


Member Function Documentation

def XmlDetDescGen::AD::gen::PolyCone::parameters (   self)
Build up the parameters for a polycone based on the zpos' and radii.

Definition at line 218 of file gen.py.

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

def XmlDetDescGen::AD::gen::PolyCone::logvol (   self)

Definition at line 367 of file gen.py.

00368                     :
00369         if self.lv: return self.lv
00370 
00371         from XmlDetDescGen.geometry import polyCone, Logvol, Physvol, PosXYZ
00372         from XmlDetDescGen.util import ExternalEntity
00373 
00374         pv = []
00375         if self.child:
00376             if self.name == "oav":
00377                 posZ = "OavThickness-(OavBrlHeight-OavBrlFlgThickness)/2"
00378                 if self.child.name == "lso":
00379                     posZ += "+LsoBrlHeight/2"
00380                 pv.append(Physvol("pv"+self.child.name.upper(),
00381                                   self.child.logvol(),
00382                                   PosXYZ(Z=posZ)))
00383             if self.name == "lso":
00384                 posZ = "OavBotRibHeight+IavBotVitHeight+IavBotRibHeight-LsoBrlHeight/2"
00385                 if self.child.name == "iav":
00386                     posZ += "+IavBrlHeight/2"
00387                 pv.append(Physvol("pv"+self.child.name.upper(),
00388                                   self.child.logvol(),
00389                                   PosXYZ(Z=posZ)))
00390             if self.name == "iav":
00391                 posZ = "IavBotThickness-IavBrlHeight/2"
00392                 if self.child.name == "gds":
00393                     posZ += "+GdsBrlHeight/2"
00394                 pv.append(Physvol("pv"+self.child.name.upper(),
00395                                   self.child.logvol(),
00396                                   PosXYZ(Z=posZ)))
00397             
00398         pv.append(ExternalEntity("HandWrittenPhysVols"))
00399 #        if self.name == 'gds':
00400 #            pv.append('${DD_AD_GDS_PV}')
00401         self.lv = Logvol("lv"+self.name.upper(),self.material,
00402                          polyCone(self.name,
00403                                   self.zpos,
00404                                   self.radius),
00405                          pv)
00406         return self.lv
00407 
# special case, child is not placed in center, handle separately

Member Data Documentation

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

Definition at line 200 of file gen.py.

Definition at line 201 of file gen.py.

Definition at line 201 of file gen.py.

Definition at line 201 of file gen.py.

Definition at line 201 of file gen.py.

Definition at line 201 of file gen.py.

Definition at line 201 of file gen.py.

Definition at line 201 of file gen.py.

Definition at line 201 of file gen.py.

Definition at line 201 of file gen.py.

Definition at line 201 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 Fri May 16 2014 09:56:07 for XmlDetDesc by doxygen 1.7.4