CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_10_patch2/src/Geometry/EcalCommonData/interface/DDEcalBarrelNewAlgo.h

Go to the documentation of this file.
00001 #ifndef DD_EcalBarrelNewAlgo_h
00002 #define DD_EcalBarrelNewAlgo_h
00003 
00004 #include <map>
00005 #include <string>
00006 #include <vector>
00007 #include "DetectorDescription/Base/interface/DDTypes.h"
00008 #include "DetectorDescription/Core/interface/DDName.h"
00009 #include "DetectorDescription/Algorithm/interface/DDAlgorithm.h"
00010 #include "DetectorDescription/Core/interface/DDMaterial.h"
00011 #include "DetectorDescription/Core/interface/DDSplit.h"
00012 #include "DetectorDescription/Core/interface/DDTransform.h"
00013 #include "Geometry/CaloGeometry/interface/EcalTrapezoidParameters.h"
00014 #include "CLHEP/Geometry/Transform3D.h" 
00015 
00016 class DDEcalBarrelNewAlgo : public DDAlgorithm {
00017  public:
00018 
00019       typedef EcalTrapezoidParameters Trap ;
00020       typedef HepGeom::Point3D<double>               Pt3D ;
00021       typedef HepGeom::Transform3D          Tf3D ;
00022       typedef HepGeom::ReflectZ3D           RfZ3D ;
00023       typedef HepGeom::Translate3D          Tl3D ;
00024       typedef HepGeom::Rotate3D             Ro3D ;
00025       typedef HepGeom::RotateZ3D            RoZ3D ;
00026       typedef HepGeom::RotateY3D            RoY3D ;
00027       typedef HepGeom::RotateX3D            RoX3D ;
00028 
00029       typedef CLHEP::Hep3Vector              Vec3 ;
00030       typedef CLHEP::HepRotation             Rota ;
00031 
00032       //Constructor and Destructor
00033       DDEcalBarrelNewAlgo();
00034       virtual ~DDEcalBarrelNewAlgo();
00035 
00036       void initialize(const DDNumericArguments      & nArgs,
00037                       const DDVectorArguments       & vArgs,
00038                       const DDMapArguments          & mArgs,
00039                       const DDStringArguments       & sArgs,
00040                       const DDStringVectorArguments & vsArgs);
00041       void execute(DDCompactView& cpv);
00042 
00043       DDMaterial ddmat(  const std::string& s ) const ;
00044       DDName     ddname( const std::string& s ) const ;
00045       DDRotation myrot(  const std::string& s,
00046                          const CLHEP::HepRotation& r ) const ;
00047       DDSolid    mytrap( const std::string& s,
00048                          const Trap&        t ) const ;
00049 
00050       const std::string&         idNameSpace() const { return m_idNameSpace   ; }
00051 
00052       // barrel parent volume
00053       DDName                     barName()     const { return ddname( m_BarName ) ; }
00054       DDMaterial                 barMat()      const { return ddmat(  m_BarMat  ) ; }
00055       const std::vector<double>& vecBarZPts()  const { return m_vecBarZPts        ; }
00056       const std::vector<double>& vecBarRMin()  const { return m_vecBarRMin        ; }
00057       const std::vector<double>& vecBarRMax()  const { return m_vecBarRMax        ; }
00058       const std::vector<double>& vecBarTran()  const { return m_vecBarTran        ; }
00059       const std::vector<double>& vecBarRota()  const { return m_vecBarRota        ; }
00060       const std::vector<double>& vecBarRota2() const { return m_vecBarRota2       ; }
00061       const std::vector<double>& vecBarRota3() const { return m_vecBarRota3       ; }
00062       double                     barPhiLo()    const { return m_BarPhiLo          ; }
00063       double                     barPhiHi()    const { return m_BarPhiHi          ; }
00064       double                     barHere()     const { return m_BarHere           ; }
00065 
00066       DDName                     spmName()     const { return ddname( m_SpmName ) ; } 
00067       DDMaterial                 spmMat()      const { return ddmat(  m_SpmMat  ) ; }
00068       const std::vector<double>& vecSpmZPts()  const { return m_vecSpmZPts ; }
00069       const std::vector<double>& vecSpmRMin()  const { return m_vecSpmRMin ; }
00070       const std::vector<double>& vecSpmRMax()  const { return m_vecSpmRMax ; }
00071       const std::vector<double>& vecSpmTran()  const { return m_vecSpmTran ; }
00072       const std::vector<double>& vecSpmRota()  const { return m_vecSpmRota ; }
00073       const std::vector<double>& vecSpmBTran() const { return m_vecSpmBTran ; }
00074       const std::vector<double>& vecSpmBRota() const { return m_vecSpmBRota ; }
00075       unsigned int               spmNPerHalf() const { return m_SpmNPerHalf ; }
00076       double                     spmLowPhi()   const { return m_SpmLowPhi ; }
00077       double                     spmDelPhi()   const { return m_SpmDelPhi ; }
00078       double                     spmPhiOff()   const { return m_SpmPhiOff ; }
00079       const std::vector<double>& vecSpmHere()  const { return m_vecSpmHere ; }
00080       DDName                     spmCutName()  const { return ddname( m_SpmCutName ) ; }
00081       double                     spmCutThick() const { return m_SpmCutThick ; }
00082       int                        spmCutShow()  const { return m_SpmCutShow ; } 
00083       double                     spmCutRM()    const { return m_SpmCutRM ; }
00084       double                     spmCutRP()    const { return m_SpmCutRP ; }
00085       const std::vector<double>& vecSpmCutTM() const { return m_vecSpmCutTM ; }
00086       const std::vector<double>& vecSpmCutTP() const { return m_vecSpmCutTP ; }
00087       double                     spmExpThick() const { return m_SpmExpThick ; }
00088       double                     spmExpWide()  const { return m_SpmExpWide ; }
00089       double                     spmExpYOff()  const { return m_SpmExpYOff ; }
00090       DDName                     spmSideName() const { return ddname( m_SpmSideName ) ; } 
00091       DDMaterial                 spmSideMat()  const { return ddmat(  m_SpmSideMat  ) ; }
00092       double                     spmSideHigh() const { return m_SpmSideHigh ; }
00093       double                     spmSideThick() const { return m_SpmSideThick ; }
00094       double                     spmSideYOffM() const { return m_SpmSideYOffM ; }
00095       double                     spmSideYOffP() const { return m_SpmSideYOffP ; }
00096 
00097       double                     nomCryDimAF()    const { return m_NomCryDimAF    ; } 
00098       double                     nomCryDimLZ()    const { return m_NomCryDimLZ    ; }
00099       const std::vector<double>& vecNomCryDimBF() const { return m_vecNomCryDimBF ; }
00100       const std::vector<double>& vecNomCryDimCF() const { return m_vecNomCryDimCF ; }
00101       const std::vector<double>& vecNomCryDimAR() const { return m_vecNomCryDimAR ; }
00102       const std::vector<double>& vecNomCryDimBR() const { return m_vecNomCryDimBR ; }
00103       const std::vector<double>& vecNomCryDimCR() const { return m_vecNomCryDimCR ; }
00104 
00105       double                     underAF()     const { return m_UnderAF ; }
00106       double                     underLZ()     const { return m_UnderLZ ; }
00107       double                     underBF()     const { return m_UnderBF ; }
00108       double                     underCF()     const { return m_UnderCF ; }
00109       double                     underAR()     const { return m_UnderAR ; }
00110       double                     underBR()     const { return m_UnderBR ; }
00111       double                     underCR()     const { return m_UnderCR ; }
00112 
00113       double                     wallThAlv()   const { return m_WallThAlv ; }
00114       double                     wrapThAlv()   const { return m_WrapThAlv ; }
00115       double                     clrThAlv()    const { return m_ClrThAlv  ; }
00116       const std::vector<double>& vecGapAlvEta() const { return m_vecGapAlvEta ; }
00117 
00118       double                     wallFrAlv()   const { return m_WallFrAlv ; }
00119       double                     wrapFrAlv()   const { return m_WrapFrAlv ; }
00120       double                     clrFrAlv()    const { return m_ClrFrAlv ; }
00121 
00122       double                     wallReAlv()   const { return m_WallReAlv ; }
00123       double                     wrapReAlv()   const { return m_WrapReAlv ; }
00124       double                     clrReAlv()    const { return m_ClrReAlv ; }
00125 
00126       unsigned int               nCryTypes()     const { return m_NCryTypes ; }
00127       unsigned int               nCryPerAlvEta() const { return m_NCryPerAlvEta ; }
00128 
00129       const std::string&         cryName()  const { return m_CryName ; } 
00130       const std::string&         clrName()  const { return m_ClrName ; } 
00131       const std::string&         wrapName() const { return m_WrapName ; } 
00132       const std::string&         wallName() const { return m_WallName ; } 
00133 
00134       DDMaterial                 cryMat()   const { return ddmat( m_CryMat ) ; } 
00135       DDMaterial                 clrMat()   const { return ddmat( m_ClrMat ) ; } 
00136       DDMaterial                 wrapMat()  const { return ddmat( m_WrapMat ) ; } 
00137       DDMaterial                 wallMat()  const { return ddmat( m_WallMat ) ; } 
00138       DDName                   capName () const { return ddname(m_capName) ; }
00139       double                   capHere () const { return m_capHere ; }
00140       DDMaterial               capMat  () const { return ddmat(m_capMat)  ; }
00141       double                   capXSize() const { return m_capXSize ; }
00142       double                   capYSize() const { return m_capYSize ; }
00143       double                   capThick() const { return m_capThick; }
00144 
00145       DDName                   cerName () const { return ddname(m_CERName) ; }
00146       DDMaterial               cerMat  () const { return ddmat(m_CERMat)  ; }
00147       double                   cerXSize() const { return m_CERXSize ; }
00148       double                   cerYSize() const { return m_CERYSize ; }
00149       double                   cerThick() const { return m_CERThick; }
00150 
00151       DDName                   bsiName () const { return ddname(m_BSiName) ; }
00152       DDMaterial               bsiMat  () const { return ddmat(m_BSiMat)  ; }
00153       double                   bsiXSize() const { return m_BSiXSize ; }
00154       double                   bsiYSize() const { return m_BSiYSize ; }
00155       double                   bsiThick() const { return m_BSiThick; }
00156 
00157       DDName                   atjName () const { return ddname(m_ATJName) ; }
00158       DDMaterial               atjMat  () const { return ddmat(m_ATJMat)  ; }
00159       double                   atjThick() const { return m_ATJThick; }
00160 
00161       DDName                   sglName () const { return ddname(m_SGLName) ; }
00162       DDMaterial               sglMat  () const { return ddmat(m_SGLMat)  ; }
00163       double                   sglThick() const { return m_SGLThick; }
00164 
00165       DDName                   aglName () const { return ddname(m_AGLName) ; }
00166       DDMaterial               aglMat  () const { return ddmat(m_AGLMat)  ; }
00167       double                   aglThick() const { return m_AGLThick; }
00168 
00169       DDName                   andName () const { return ddname(m_ANDName) ; }
00170       DDMaterial               andMat  () const { return ddmat(m_ANDMat)  ; }
00171       double                   andThick() const { return m_ANDThick; }
00172 
00173       DDName                   apdName () const { return ddname(m_APDName) ; }
00174       DDMaterial               apdMat  () const { return ddmat(m_APDMat)  ; }
00175       double                   apdSide () const { return m_APDSide ; }
00176       double                   apdThick() const { return m_APDThick; }
00177       double                   apdZ    () const { return m_APDZ    ; }
00178       double                   apdX1   () const { return m_APDX1   ; }
00179       double                   apdX2   () const { return m_APDX2   ; }
00180 
00181       double                     webHere()      const { return m_WebHere     ; }
00182       const std::string&         webPlName()    const { return m_WebPlName          ; }
00183       const std::string&         webClrName()   const { return m_WebClrName         ; }
00184       DDMaterial                 webPlMat()     const { return ddmat( m_WebPlMat )  ; } 
00185       DDMaterial                 webClrMat()    const { return ddmat( m_WebClrMat ) ; } 
00186       const std::vector<double>& vecWebPlTh()   const { return m_vecWebPlTh         ; }
00187       const std::vector<double>& vecWebClrTh()  const { return m_vecWebClrTh        ; } 
00188       const std::vector<double>& vecWebLength() const { return m_vecWebLength       ; } 
00189 
00190       double                          ilyHere()     const { return m_IlyHere     ; }
00191       const std::string&              ilyName()     const { return m_IlyName     ; }
00192       double                          ilyPhiLow()   const { return m_IlyPhiLow   ; }
00193       double                          ilyDelPhi()   const { return m_IlyDelPhi   ; }
00194       const std::vector<std::string>& vecIlyMat()   const { return m_vecIlyMat   ; }
00195       const std::vector<double>&      vecIlyThick() const { return m_vecIlyThick ; }
00196 
00197       const std::string&         ilyPipeName     () const { return m_IlyPipeName         ;}
00198       double                     ilyPipeHere     () const { return m_IlyPipeHere          ;}
00199       DDMaterial                 ilyPipeMat      () const { return ddmat(m_IlyPipeMat)           ;}
00200       double                     ilyPipeOD       () const { return m_IlyPipeOD            ;}
00201       double                     ilyPipeID       () const { return m_IlyPipeID            ;}
00202       const std::vector<double>& vecIlyPipeLength() const { return m_vecIlyPipeLength     ;}
00203       const std::vector<double>& vecIlyPipeType  () const { return m_vecIlyPipeType       ;}
00204       const std::vector<double>& vecIlyPipePhi   () const { return m_vecIlyPipePhi        ;}
00205       const std::vector<double>& vecIlyPipeZ     () const { return m_vecIlyPipeZ        ;}
00206 
00207       DDName                     ilyPTMName   () const { return ddname(m_IlyPTMName)  ;}
00208       double                     ilyPTMHere   () const { return m_IlyPTMHere   ;}
00209       DDMaterial                 ilyPTMMat    () const { return ddmat(m_IlyPTMMat)    ;}
00210       double                     ilyPTMWidth  () const { return m_IlyPTMWidth  ;}
00211       double                     ilyPTMLength () const { return m_IlyPTMLength ;}
00212       double                     ilyPTMHeight () const { return m_IlyPTMHeight ;}
00213       const std::vector<double>& vecIlyPTMZ   () const { return m_vecIlyPTMZ   ;}
00214       const std::vector<double>& vecIlyPTMPhi () const { return m_vecIlyPTMPhi ;}
00215 
00216       DDName                   ilyFanOutName  () const { return ddname(m_IlyFanOutName)  ;}
00217       double                   ilyFanOutHere  () const { return m_IlyFanOutHere  ;}
00218       DDMaterial               ilyFanOutMat   () const { return ddmat(m_IlyFanOutMat)   ;}
00219       double                   ilyFanOutWidth () const { return m_IlyFanOutWidth ;}
00220       double                   ilyFanOutLength() const { return m_IlyFanOutLength;}
00221       double                   ilyFanOutHeight() const { return m_IlyFanOutHeight;}
00222       const std::vector<double>& vecIlyFanOutZ  () const { return m_vecIlyFanOutZ  ;}
00223       const std::vector<double>& vecIlyFanOutPhi() const { return m_vecIlyFanOutPhi;}
00224       DDName                   ilyDiffName    () const { return ddname(m_IlyDiffName)    ;}
00225       DDMaterial               ilyDiffMat     () const { return ddmat(m_IlyDiffMat)    ;}
00226       double                   ilyDiffOff     () const { return m_IlyDiffOff     ;}
00227       double                   ilyDiffLength  () const { return m_IlyDiffLength  ;}
00228       DDName                   ilyBndlName    () const { return ddname(m_IlyBndlName)    ;}
00229       DDMaterial               ilyBndlMat     () const { return ddmat(m_IlyBndlMat)    ;}
00230       double                   ilyBndlOff     () const { return m_IlyBndlOff     ;}
00231       double                   ilyBndlLength  () const { return m_IlyBndlLength  ;}
00232       DDName                   ilyFEMName     () const { return ddname(m_IlyFEMName)     ;}
00233       DDMaterial               ilyFEMMat      () const { return ddmat(m_IlyFEMMat)      ;}
00234       double                   ilyFEMWidth    () const { return m_IlyFEMWidth    ;}
00235       double                   ilyFEMLength   () const { return m_IlyFEMLength   ;}
00236       double                   ilyFEMHeight   () const { return m_IlyFEMHeight   ;}
00237       const std::vector<double>& vecIlyFEMZ     () const { return m_vecIlyFEMZ     ;}
00238       const std::vector<double>& vecIlyFEMPhi   () const { return m_vecIlyFEMPhi   ;}
00239 
00240       DDName              hawRName() const { return ddname( m_HawRName ) ; }
00241       DDName              fawName()  const { return ddname( m_FawName  ) ; }
00242       double              fawHere( ) const { return m_FawHere ; }
00243       double              hawRHBIG() const { return m_HawRHBIG ; }
00244       double              hawRhsml() const { return m_HawRhsml ; }
00245       double              hawRCutY() const { return m_HawRCutY ; }
00246       double              hawRCutZ() const { return m_HawRCutZ ; }
00247       double              hawRCutDelY() const { return m_HawRCutDelY ; }
00248       double              hawYOffCry() const { return m_HawYOffCry ; }
00249 
00250       unsigned int        nFawPerSupm() const { return m_NFawPerSupm ; }
00251       double              fawPhiOff() const { return m_FawPhiOff ; }
00252       double              fawDelPhi() const { return m_FawDelPhi ; }
00253       double              fawPhiRot() const { return m_FawPhiRot ; }
00254       double              fawRadOff() const { return m_FawRadOff ; }
00255 
00256       double              gridHere()  const { return m_GridHere     ; }
00257       DDName              gridName()  const { return ddname( m_GridName ) ; }
00258       DDMaterial          gridMat()   const { return ddmat(  m_GridMat  ) ; }
00259       double              gridThick() const { return m_GridThick ; }
00260 
00261       double                    backHere()        const { return m_BackHere     ; }
00262       double                    backXOff()        const { return m_BackXOff ; } 
00263       double                    backYOff()        const { return m_BackYOff ; }
00264       DDName                    backSideName()    const { return ddname( m_BackSideName ) ; }
00265       double                    backSideHere()    const { return m_BackSideHere         ; } 
00266       double                    backSideLength()  const { return m_BackSideLength         ; } 
00267       double                    backSideHeight()  const { return m_BackSideHeight         ; }
00268       double                    backSideWidth()   const { return m_BackSideWidth          ; }
00269       double                    backSideYOff1()   const { return m_BackSideYOff1         ; }
00270       double                    backSideYOff2()   const { return m_BackSideYOff2          ; }
00271       double                    backSideAngle()   const { return m_BackSideAngle          ; }
00272       DDMaterial                backSideMat()     const { return ddmat( m_BackSideMat )   ; }
00273       DDName                    backPlateName()   const { return ddname( m_BackPlateName ) ; }
00274       double                    backPlateHere()   const { return m_BackPlateHere         ; } 
00275       double                    backPlateLength() const { return m_BackPlateLength   ; }
00276       double                    backPlateThick()  const { return m_BackPlateThick     ; }
00277       double                    backPlateWidth()  const { return m_BackPlateWidth     ; }
00278       DDMaterial                backPlateMat()    const { return ddmat( m_BackPlateMat ) ; }
00279       DDName                    backPlate2Name()   const { return ddname( m_BackPlate2Name ) ; }
00280       double                    backPlate2Thick()  const { return m_BackPlate2Thick     ; }
00281       DDMaterial                backPlate2Mat()    const { return ddmat( m_BackPlate2Mat ) ; }
00282       const std::string&        grilleName()      const { return m_GrilleName ; }
00283       double                    grilleThick()     const { return m_GrilleThick         ; }
00284       double                    grilleHere()      const { return m_GrilleHere          ; }
00285       double                    grilleWidth()     const { return m_GrilleWidth         ; }
00286       double                    grilleZSpace()    const { return m_GrilleZSpace         ; }
00287       DDMaterial                grilleMat()       const { return ddmat( m_GrilleMat )    ; }
00288       const std::vector<double>& vecGrilleHeight() const { return m_vecGrilleHeight      ; }
00289       const std::vector<double>& vecGrilleZOff()  const { return m_vecGrilleZOff        ; }
00290 
00291       DDName                   grEdgeSlotName    () const { return ddname(m_GrEdgeSlotName) ; }
00292       DDMaterial               grEdgeSlotMat     () const { return ddmat(m_GrEdgeSlotMat) ; }
00293       double                   grEdgeSlotHere    () const { return m_GrEdgeSlotHere    ; }
00294       double                   grEdgeSlotHeight  () const { return m_GrEdgeSlotHeight  ; }
00295       double                   grEdgeSlotWidth   () const { return m_GrEdgeSlotWidth   ; }
00296       const std::string&       grMidSlotName     () const { return m_GrMidSlotName     ; }
00297       DDMaterial               grMidSlotMat      () const { return ddmat(m_GrMidSlotMat) ; }
00298       double                   grMidSlotHere     () const { return m_GrMidSlotHere     ; }
00299       double                   grMidSlotWidth    () const { return m_GrMidSlotWidth    ; }
00300       double                   grMidSlotXOff     () const { return m_GrMidSlotXOff     ; }
00301       const std::vector<double>& vecGrMidSlotHeight() const { return m_vecGrMidSlotHeight; }
00302 
00303       double                    backPipeHere()    const { return m_BackPipeHere     ; }
00304       const std::string&        backPipeName()   const { return m_BackPipeName ; }
00305       const std::vector<double>& vecBackPipeDiam() const { return m_vecBackPipeDiam    ; }
00306       const std::vector<double>& vecBackPipeThick() const { return m_vecBackPipeThick    ; }
00307       DDMaterial                backPipeMat()    const { return ddmat( m_BackPipeMat ) ; }
00308       DDMaterial                backPipeWaterMat() const { return ddmat( m_BackPipeWaterMat ) ; }
00309       double                   backMiscHere()       const { return m_BackMiscHere     ; }
00310       const std::vector<double>& vecBackMiscThick() const { return m_vecBackMiscThick ; }
00311       const std::vector<std::string>& vecBackMiscName() const
00312                                   { return m_vecBackMiscName ; }
00313       const std::vector<std::string>& vecBackMiscMat() const
00314                                   { return m_vecBackMiscMat ; }
00315       double                     patchPanelHere()     const { return m_PatchPanelHere     ; }
00316       const std::vector<double>& vecPatchPanelThick() const { return m_vecPatchPanelThick ; }
00317       const std::vector<std::string>& vecPatchPanelNames() const
00318                                   { return m_vecPatchPanelNames ; }
00319       const std::vector<std::string>& vecPatchPanelMat() const
00320                                   { return m_vecPatchPanelMat ; }
00321       DDName                    patchPanelName()   const { return ddname( m_PatchPanelName ) ; }
00322 
00323       const std::vector<std::string>& vecBackCoolName() const { return m_vecBackCoolName       ;}
00324       double                   backCoolHere()       const { return m_BackCoolHere     ; }
00325       double                   backCoolBarWidth  () const { return m_BackCoolBarWidth      ;}
00326       double                   backCoolBarHeight () const { return m_BackCoolBarHeight     ;}
00327       DDMaterial               backCoolMat       () const { return ddmat(m_BackCoolMat)    ;}
00328       double                   backCoolBarHere()    const { return m_BackCoolBarHere     ; }
00329       DDName                   backCoolBarName   () const { return ddname(m_BackCoolBarName);}
00330       double                   backCoolBarThick  () const { return m_BackCoolBarThick      ;}
00331       DDMaterial               backCoolBarMat    () const { return ddmat(m_BackCoolBarMat) ;}
00332       DDName                   backCoolBarSSName () const { return ddname(m_BackCoolBarSSName);}
00333       double                   backCoolBarSSThick() const { return m_BackCoolBarSSThick    ;}
00334       DDMaterial               backCoolBarSSMat  () const { return ddmat(m_BackCoolBarSSMat) ;}
00335       DDName                   backCoolBarWaName () const { return ddname(m_BackCoolBarWaName);}
00336       double                   backCoolBarWaThick() const { return m_BackCoolBarWaThick    ;}
00337       DDMaterial               backCoolBarWaMat  () const { return ddmat(m_BackCoolBarWaMat) ;}
00338       double                   backCoolVFEHere()    const { return m_BackCoolVFEHere     ; }
00339       DDName                   backCoolVFEName   () const { return ddname(m_BackCoolVFEName) ;}
00340       DDMaterial               backCoolVFEMat    () const { return ddmat(m_BackCoolVFEMat) ;}
00341       DDName                   backVFEName       () const { return ddname(m_BackVFEName)   ;}
00342       DDMaterial               backVFEMat        () const { return ddmat(m_BackVFEMat) ;}
00343       const std::vector<double>& vecBackVFELyrThick() const { return m_vecBackVFELyrThick    ;}
00344       const std::vector<std::string>& vecBackVFELyrName () const { return m_vecBackVFELyrName     ;}
00345       const std::vector<std::string>& vecBackVFELyrMat  () const { return m_vecBackVFELyrMat      ;}
00346       const std::vector<double>& vecBackCoolNSec   () const { return m_vecBackCoolNSec       ;}
00347       const std::vector<double>& vecBackCoolSecSep () const { return m_vecBackCoolSecSep     ;}
00348       const std::vector<double>& vecBackCoolNPerSec() const { return m_vecBackCoolNPerSec    ;}
00349       double                   backCBStdSep      () const { return m_BackCBStdSep          ;}
00350 
00351       double                   backCoolTankHere()    const { return m_BackCoolTankHere     ; }
00352       const std::string&       backCoolTankName   () const { return m_BackCoolTankName ;}
00353       double                   backCoolTankWidth  () const { return m_BackCoolTankWidth  ;}
00354       double                   backCoolTankThick  () const { return m_BackCoolTankThick  ;}
00355       DDMaterial               backCoolTankMat    () const { return ddmat(m_BackCoolTankMat) ;}
00356       const std::string&       backCoolTankWaName () const { return m_BackCoolTankWaName ;}
00357       double                   backCoolTankWaWidth() const { return m_BackCoolTankWaWidth;}
00358       DDMaterial               backCoolTankWaMat  () const { return ddmat(m_BackCoolTankWaMat) ;}
00359       const std::string&       backBracketName    () const { return m_BackBracketName  ;}
00360       double                   backBracketHeight  () const { return m_BackBracketHeight  ;}
00361       DDMaterial               backBracketMat     () const { return ddmat(m_BackBracketMat)    ;}
00362       
00363       double                   dryAirTubeHere()     const { return m_DryAirTubeHere     ; }
00364       const std::string&       dryAirTubeName    () const { return m_DryAirTubeName   ;}
00365       double                   mBCoolTubeNum     () const { return m_MBCoolTubeNum   ;}
00366       double                   dryAirTubeInnDiam () const { return m_DryAirTubeInnDiam   ;}
00367       double                   dryAirTubeOutDiam () const { return m_DryAirTubeOutDiam   ;}
00368       DDMaterial               dryAirTubeMat     () const { return ddmat(m_DryAirTubeMat)      ;}
00369       double                   mBCoolTubeHere()     const { return m_MBCoolTubeHere     ; }
00370       const std::string&       mBCoolTubeName    () const { return m_MBCoolTubeName   ;}
00371       double                   mBCoolTubeInnDiam () const { return m_MBCoolTubeInnDiam   ;}
00372       double                   mBCoolTubeOutDiam () const { return m_MBCoolTubeOutDiam   ;}
00373       DDMaterial               mBCoolTubeMat     () const { return ddmat(m_MBCoolTubeMat)      ;}
00374       double                   mBManifHere()        const { return m_MBManifHere     ; }
00375       DDName                   mBManifName       () const { return ddname(m_MBManifName)        ;}
00376       double                   mBManifInnDiam    () const { return m_MBManifInnDiam      ;}
00377       double                   mBManifOutDiam    () const { return m_MBManifOutDiam      ;}
00378       DDMaterial               mBManifMat        () const { return ddmat(m_MBManifMat)         ;}
00379       double                   mBLyrHere()          const { return m_MBLyrHere     ; }
00380       const std::vector<double>&      vecMBLyrThick() const { return m_vecMBLyrThick       ;}
00381       const std::vector<std::string>& vecMBLyrName () const { return m_vecMBLyrName        ;}
00382       const std::vector<std::string>& vecMBLyrMat  () const { return m_vecMBLyrMat         ;}
00383 
00384 //----------
00385 
00386       double                   pincerRodHere      () const { return m_PincerRodHere      ;}
00387       DDName                   pincerRodName      () const { return ddname(m_PincerRodName)      ;}
00388       DDMaterial               pincerRodMat       () const { return ddmat(m_PincerRodMat)       ;}
00389       std::vector<double>      vecPincerRodAzimuth() const { return m_vecPincerRodAzimuth;}
00390       DDName                   pincerEnvName      () const { return ddname(m_PincerEnvName)      ;}
00391       DDMaterial               pincerEnvMat       () const { return ddmat(m_PincerEnvMat)       ;}
00392       double                   pincerEnvWidth     () const { return m_PincerEnvWidth     ;}
00393       double                   pincerEnvHeight    () const { return m_PincerEnvHeight    ;}
00394       double                   pincerEnvLength    () const { return m_PincerEnvLength    ;}
00395       std::vector<double>      vecPincerEnvZOff   () const { return m_vecPincerEnvZOff   ;}
00396                                                                                              
00397       DDName                   pincerBlkName      () const { return ddname(m_PincerBlkName)      ;}
00398       DDMaterial               pincerBlkMat       () const { return ddmat(m_PincerBlkMat)       ;}
00399       double                   pincerBlkLength    () const { return m_PincerBlkLength    ;}
00400                                                                                            
00401       DDName                   pincerShim1Name    () const { return ddname(m_PincerShim1Name)    ;}
00402       double                   pincerShimHeight   () const { return m_PincerShimHeight   ;}
00403       DDName                   pincerShim2Name    () const { return ddname(m_PincerShim2Name)    ;}
00404       DDMaterial               pincerShimMat      () const { return ddmat(m_PincerShimMat)      ;}
00405       double                   pincerShim1Width   () const { return m_PincerShim1Width   ;}
00406       double                   pincerShim2Width   () const { return m_PincerShim2Width   ;}
00407                                                                                          
00408       DDName                   pincerCutName      () const { return ddname(m_PincerCutName)      ;}
00409       DDMaterial               pincerCutMat       () const { return ddmat(m_PincerCutMat)      ;}
00410       double                   pincerCutWidth     () const { return m_PincerCutWidth    ;}
00411       double                   pincerCutHeight    () const { return m_PincerCutHeight    ;}
00412 
00413 protected:
00414 
00415 private:
00416 
00417       void web( unsigned int        iWeb,
00418                 double              bWeb,
00419                 double              BWeb,
00420                 double              LWeb,
00421                 double              theta,
00422                 const Pt3D&         corner,
00423                 const DDLogicalPart logPar,
00424                 double&             zee  ,
00425                 double              side,
00426                 double              front,
00427                 double              delta,
00428                 DDCompactView&      cpv );
00429 
00430       std::string         m_idNameSpace;            //Namespace of this and ALL sub-parts
00431 
00432       // Barrel volume
00433       std::string         m_BarName    ; // Barrel volume name
00434       std::string         m_BarMat     ; // Barrel material name
00435       std::vector<double> m_vecBarZPts ; // Barrel list of z pts
00436       std::vector<double> m_vecBarRMin ; // Barrel list of rMin pts
00437       std::vector<double> m_vecBarRMax ; // Barrel list of rMax pts
00438       std::vector<double> m_vecBarTran ; // Barrel translation
00439       std::vector<double> m_vecBarRota ; // Barrel rotation
00440       std::vector<double> m_vecBarRota2; // 2nd Barrel rotation
00441       std::vector<double> m_vecBarRota3; // 2nd Barrel rotation
00442       double              m_BarPhiLo   ; // Barrel phi lo
00443       double              m_BarPhiHi   ; // Barrel phi hi
00444       double              m_BarHere    ; // Barrel presence flag
00445       
00446       // Supermodule volume
00447       std::string         m_SpmName     ; // Supermodule volume name
00448       std::string         m_SpmMat      ; // Supermodule material name
00449       std::vector<double> m_vecSpmZPts  ; // Supermodule list of z pts
00450       std::vector<double> m_vecSpmRMin  ; // Supermodule list of rMin pts
00451       std::vector<double> m_vecSpmRMax  ; // Supermodule list of rMax pts
00452       std::vector<double> m_vecSpmTran  ; // Supermodule translation
00453       std::vector<double> m_vecSpmRota  ; // Supermodule rotation
00454       std::vector<double> m_vecSpmBTran ; // Base Supermodule translation
00455       std::vector<double> m_vecSpmBRota ; // Base Supermodule rotation
00456       unsigned int        m_SpmNPerHalf ; // # Supermodules per half detector
00457       double              m_SpmLowPhi   ; // Low   phi value of base supermodule
00458       double              m_SpmDelPhi   ; // Delta phi value of base supermodule
00459       double              m_SpmPhiOff   ; // Phi offset value supermodule
00460       std::vector<double> m_vecSpmHere  ; // Bit saying if a supermodule is present or not
00461       std::string         m_SpmCutName  ; // Name of cut box
00462       double              m_SpmCutThick ; // Box thickness
00463       int                 m_SpmCutShow  ; // Non-zero means show the box on display (testing only)
00464       std::vector<double> m_vecSpmCutTM ; // Translation for minus phi cut box
00465       std::vector<double> m_vecSpmCutTP ; // Translation for plus  phi cut box      
00466       double              m_SpmCutRM    ; // Rotation for minus phi cut box
00467       double              m_SpmCutRP    ; // Rotation for plus  phi cut box      
00468       double              m_SpmExpThick ; // Thickness (x) of supermodule expansion box
00469       double              m_SpmExpWide  ; // Width     (y) of supermodule expansion box
00470       double              m_SpmExpYOff  ; // Offset    (y) of supermodule expansion box
00471       std::string         m_SpmSideName ; // Supermodule Side Plate volume name
00472       std::string         m_SpmSideMat  ; // Supermodule Side Plate material name
00473       double              m_SpmSideHigh ; // Side plate height
00474       double              m_SpmSideThick; // Side plate thickness
00475       double              m_SpmSideYOffM; // Side plate Y offset on minus phi side
00476       double              m_SpmSideYOffP; // Side plate Y offset on plus  phi side
00477 
00478       double              m_NomCryDimAF    ; // Nominal crystal AF
00479       double              m_NomCryDimLZ    ; // Nominal crystal LZ
00480       std::vector<double> m_vecNomCryDimBF ; // Nominal crystal BF
00481       std::vector<double> m_vecNomCryDimCF ; // Nominal crystal CF
00482       std::vector<double> m_vecNomCryDimAR ; // Nominal crystal AR
00483       std::vector<double> m_vecNomCryDimBR ; // Nominal crystal BR
00484       std::vector<double> m_vecNomCryDimCR ; // Nominal crystal CR
00485 
00486       double              m_UnderAF ; // undershoot of AF
00487       double              m_UnderLZ ; // undershoot of LZ
00488       double              m_UnderBF ; // undershoot of BF
00489       double              m_UnderCF ; // undershoot of CF
00490       double              m_UnderAR ; // undershoot of AR
00491       double              m_UnderBR ; // undershoot of BR
00492       double              m_UnderCR ; // undershoot of CR
00493 
00494       double              m_WallThAlv ; // alveoli wall thickness
00495       double              m_WrapThAlv ; // wrapping thickness
00496       double              m_ClrThAlv  ; // clearance thickness (nominal)
00497       std::vector<double> m_vecGapAlvEta ; // Extra clearance after each alveoli perp to crystal axis
00498 
00499       double              m_WallFrAlv ; // alveoli wall frontage
00500       double              m_WrapFrAlv ; // wrapping frontage
00501       double              m_ClrFrAlv  ; // clearance frontage (nominal)
00502 
00503       double              m_WallReAlv ; // alveoli wall rearage
00504       double              m_WrapReAlv ; // wrapping rearage
00505       double              m_ClrReAlv  ; // clearance rearage (nominal)
00506 
00507       unsigned int        m_NCryTypes     ; // number of crystal shapes
00508       unsigned int        m_NCryPerAlvEta ; // number of crystals in eta per alveolus
00509 
00510       std::string         m_CryName  ; // string name of crystal volume
00511       std::string         m_ClrName  ; // string name of clearance volume
00512       std::string         m_WrapName ; // string name of wrap volume
00513       std::string         m_WallName ; // string name of wall volume
00514 
00515       std::string         m_CryMat  ; // string name of crystal material
00516       std::string         m_ClrMat  ; // string name of clearance material
00517       std::string         m_WrapMat ; // string name of wrap material
00518       std::string         m_WallMat ; // string name of wall material
00519 
00520       std::string              m_capName      ; // Capsule
00521       double                   m_capHere      ; // 
00522       std::string              m_capMat       ; // 
00523       double                   m_capXSize     ; // 
00524       double                   m_capYSize     ; // 
00525       double                   m_capThick     ; // 
00526 
00527       std::string              m_CERName      ; // Ceramic
00528       std::string              m_CERMat       ; // 
00529       double                   m_CERXSize     ; // 
00530       double                   m_CERYSize     ; // 
00531       double                   m_CERThick     ; // 
00532 
00533       std::string              m_BSiName      ; // Bulk Silicon
00534       std::string              m_BSiMat       ; // 
00535       double                   m_BSiXSize     ; // 
00536       double                   m_BSiYSize     ; // 
00537       double                   m_BSiThick     ; // 
00538 
00539       std::string              m_APDName      ; // APD
00540       std::string              m_APDMat       ; // 
00541       double                   m_APDSide      ; // 
00542       double                   m_APDThick     ; // 
00543       double                   m_APDZ         ; // 
00544       double                   m_APDX1        ; // 
00545       double                   m_APDX2        ; // 
00546 
00547       std::string              m_ATJName      ; // After-The-Junction
00548       std::string              m_ATJMat       ; // 
00549       double                   m_ATJThick     ; // 
00550 
00551       std::string              m_SGLName      ; // APD-Silicone glue
00552       std::string              m_SGLMat       ; // 
00553       double                   m_SGLThick     ; // 
00554 
00555       std::string              m_AGLName      ; // APD-Glue
00556       std::string              m_AGLMat       ; // 
00557       double                   m_AGLThick     ; // 
00558 
00559       std::string              m_ANDName      ; // APD-Non-Depleted
00560       std::string              m_ANDMat       ; // 
00561       double                   m_ANDThick     ; // 
00562 
00563       double              m_WebHere      ; // here flag
00564       std::string         m_WebPlName    ; // string name of web plate volume
00565       std::string         m_WebClrName   ; // string name of web clearance volume
00566       std::string         m_WebPlMat     ; // string name of web material
00567       std::string         m_WebClrMat    ; // string name of web clearance material
00568       std::vector<double> m_vecWebPlTh   ; // Thickness of web plates
00569       std::vector<double> m_vecWebClrTh  ; // Thickness of total web clearance
00570       std::vector<double> m_vecWebLength ; // Length of web plate
00571 
00572       double                   m_IlyHere      ; // here flag
00573       std::string              m_IlyName      ; // string name of inner layer volume
00574       double                   m_IlyPhiLow    ; // low phi of volumes
00575       double                   m_IlyDelPhi    ; // delta phi of ily
00576       std::vector<std::string> m_vecIlyMat    ; // materials of inner layer volumes
00577       std::vector<double>      m_vecIlyThick  ; // Thicknesses of inner layer volumes
00578 
00579       std::string              m_IlyPipeName          ; // Cooling pipes
00580       double                   m_IlyPipeHere          ; //
00581       std::string              m_IlyPipeMat           ; //
00582       double                   m_IlyPipeOD            ; //
00583       double                   m_IlyPipeID            ; //
00584       std::vector<double>      m_vecIlyPipeLength     ; //
00585       std::vector<double>      m_vecIlyPipeType       ; //
00586       std::vector<double>      m_vecIlyPipePhi        ; //
00587       std::vector<double>      m_vecIlyPipeZ          ; //
00588 
00589       std::string              m_IlyPTMName          ; // PTM
00590       double                   m_IlyPTMHere          ; //
00591       std::string              m_IlyPTMMat           ; //
00592       double                   m_IlyPTMWidth         ; //
00593       double                   m_IlyPTMLength        ; //
00594       double                   m_IlyPTMHeight        ; //
00595       std::vector<double>      m_vecIlyPTMZ          ; //
00596       std::vector<double>      m_vecIlyPTMPhi        ; //     
00597 
00598       std::string              m_IlyFanOutName          ; // FanOut
00599       double                   m_IlyFanOutHere          ; //
00600       std::string              m_IlyFanOutMat           ; //
00601       double                   m_IlyFanOutWidth         ; //
00602       double                   m_IlyFanOutLength        ; //
00603       double                   m_IlyFanOutHeight        ; //
00604       std::vector<double>      m_vecIlyFanOutZ          ; //
00605       std::vector<double>      m_vecIlyFanOutPhi        ; //     
00606       std::string              m_IlyDiffName            ; // Diffuser
00607       std::string              m_IlyDiffMat             ; //
00608       double                   m_IlyDiffOff             ; //
00609       double                   m_IlyDiffLength          ; //
00610       std::string              m_IlyBndlName            ; // Fiber bundle
00611       std::string              m_IlyBndlMat             ; //
00612       double                   m_IlyBndlOff             ; //
00613       double                   m_IlyBndlLength          ; //
00614       std::string              m_IlyFEMName             ; // FEM
00615       std::string              m_IlyFEMMat              ; //
00616       double                   m_IlyFEMWidth            ; //
00617       double                   m_IlyFEMLength           ; //
00618       double                   m_IlyFEMHeight           ; //
00619       std::vector<double>      m_vecIlyFEMZ             ; //
00620       std::vector<double>      m_vecIlyFEMPhi           ; //              
00621 
00622 
00623       std::string         m_HawRName ; // string name of half-alveolar wedge
00624       std::string         m_FawName  ; // string name of full-alveolar wedge
00625       double              m_FawHere  ; // here flag 
00626       double              m_HawRHBIG ; // height at big end of half alveolar wedge
00627       double              m_HawRhsml ; // height at small end of half alveolar wedge
00628       double              m_HawRCutY ; // x dim of hawR cut box
00629       double              m_HawRCutZ ; // y dim of hawR cut box
00630       double              m_HawRCutDelY ; // y offset of hawR cut box from top of HAW
00631       double              m_HawYOffCry  ; // Y offset of crystal wrt HAW at front
00632       unsigned int        m_NFawPerSupm ; // Number of Full Alv. Wedges per supermodule
00633       double              m_FawPhiOff ; // Phi offset for FAW placement
00634       double              m_FawDelPhi ; // Phi delta for FAW placement
00635       double              m_FawPhiRot ; // Phi rotation of FAW about own axis prior to placement
00636       double              m_FawRadOff ; // Radial offset for FAW placement
00637 
00638       double              m_GridHere  ; // here flag
00639       std::string         m_GridName  ; // Grid name
00640       std::string         m_GridMat   ; // Grid material
00641       double              m_GridThick ; // Grid Thickness
00642 
00643       double                   m_BackXOff        ; //
00644       double                   m_BackYOff        ; //
00645 
00646       double                   m_BackHere              ; // here flag
00647       std::string              m_BackSideName          ; // Back Sides
00648       double                   m_BackSideHere          ; //
00649       double                   m_BackSideLength        ; //
00650       double                   m_BackSideHeight        ; //
00651       double                   m_BackSideWidth         ; //
00652       double                   m_BackSideYOff1         ; //
00653       double                   m_BackSideYOff2         ; //
00654       double                   m_BackSideAngle         ; //
00655       std::string              m_BackSideMat           ; //
00656       std::string              m_BackPlateName    ; // back plate
00657       double                   m_BackPlateHere          ; //
00658       double                   m_BackPlateLength  ; //
00659       double                   m_BackPlateThick   ; //
00660       double                   m_BackPlateWidth   ; //
00661       std::string              m_BackPlateMat     ; //
00662       std::string              m_BackPlate2Name    ; // back plate2
00663       double                   m_BackPlate2Thick   ; //
00664       std::string              m_BackPlate2Mat     ; //
00665       std::string              m_GrilleName      ; // grille
00666       double                   m_GrilleHere      ; //
00667       double                   m_GrilleThick     ; //
00668       double                   m_GrilleWidth     ; //
00669       double                   m_GrilleZSpace    ; //
00670       std::string              m_GrilleMat       ; //
00671       std::vector<double>      m_vecGrilleHeight ; //
00672       std::vector<double>      m_vecGrilleZOff   ; //
00673 
00674       std::string              m_GrEdgeSlotName          ; // Slots in Grille
00675       std::string              m_GrEdgeSlotMat           ; //
00676       double                   m_GrEdgeSlotHere          ; //
00677       double                   m_GrEdgeSlotHeight        ; //
00678       double                   m_GrEdgeSlotWidth         ; //
00679 
00680       std::string              m_GrMidSlotName           ; // Slots in Grille
00681       std::string              m_GrMidSlotMat            ; //
00682       double                   m_GrMidSlotHere           ; //
00683       double                   m_GrMidSlotWidth          ; //
00684       double                   m_GrMidSlotXOff           ; //
00685       std::vector<double>      m_vecGrMidSlotHeight      ; //                  
00686 
00687       double                   m_BackPipeHere    ; // here flag
00688       std::string              m_BackPipeName    ; // 
00689       std::vector<double>      m_vecBackPipeDiam ; // pipes
00690       std::vector<double>      m_vecBackPipeThick ; // pipes
00691       std::string              m_BackPipeMat     ; //
00692       std::string              m_BackPipeWaterMat ; //
00693 
00694       std::vector<std::string> m_vecBackCoolName       ; // cooling circuits
00695       double                   m_BackCoolHere          ; // here flag
00696       double                   m_BackCoolBarHere       ; // here flag
00697       double                   m_BackCoolBarWidth      ; //
00698       double                   m_BackCoolBarHeight     ; //
00699       std::string              m_BackCoolMat           ;
00700       std::string              m_BackCoolBarName       ; // cooling bar
00701       double                   m_BackCoolBarThick      ; //
00702       std::string              m_BackCoolBarMat        ;
00703       std::string              m_BackCoolBarSSName     ; // cooling bar tubing
00704       double                   m_BackCoolBarSSThick    ; //
00705       std::string              m_BackCoolBarSSMat      ;
00706       std::string              m_BackCoolBarWaName     ; // cooling bar water
00707       double                   m_BackCoolBarWaThick    ; //
00708       std::string              m_BackCoolBarWaMat      ;
00709       double                   m_BackCoolVFEHere       ; // here flag
00710       std::string              m_BackCoolVFEName       ;
00711       std::string              m_BackCoolVFEMat        ;
00712       std::string              m_BackVFEName           ;
00713       std::string              m_BackVFEMat            ;
00714       std::vector<double>      m_vecBackVFELyrThick    ; //
00715       std::vector<std::string> m_vecBackVFELyrName     ; //
00716       std::vector<std::string> m_vecBackVFELyrMat      ; //
00717       std::vector<double>      m_vecBackCoolNSec       ; //
00718       std::vector<double>      m_vecBackCoolSecSep     ; //
00719       std::vector<double>      m_vecBackCoolNPerSec    ; //
00720       double                   m_BackMiscHere          ; // here flag
00721       std::vector<double>      m_vecBackMiscThick      ; // misc materials
00722       std::vector<std::string> m_vecBackMiscName       ; //
00723       std::vector<std::string> m_vecBackMiscMat        ; //
00724       double                   m_BackCBStdSep          ; //
00725 
00726       double                   m_PatchPanelHere        ; // here flag
00727       std::string              m_PatchPanelName        ; //
00728       std::vector<double>      m_vecPatchPanelThick    ; // patch panel materials
00729       std::vector<std::string> m_vecPatchPanelNames    ; //
00730       std::vector<std::string> m_vecPatchPanelMat      ; //
00731 
00732       double                   m_BackCoolTankHere    ; // here flag
00733       std::string              m_BackCoolTankName    ; // service tank
00734       double                   m_BackCoolTankWidth   ; //
00735       double                   m_BackCoolTankThick   ; //
00736       std::string              m_BackCoolTankMat     ; //
00737       std::string              m_BackCoolTankWaName  ; //
00738       double                   m_BackCoolTankWaWidth ; //
00739       std::string              m_BackCoolTankWaMat   ; //
00740       std::string              m_BackBracketName     ; //
00741       double                   m_BackBracketHeight   ; //
00742       std::string              m_BackBracketMat      ; //
00743 
00744       double                   m_DryAirTubeHere      ; // here flag
00745       std::string              m_DryAirTubeName      ; // dry air tube
00746       unsigned int             m_MBCoolTubeNum      ; //
00747       double                   m_DryAirTubeInnDiam   ; //
00748       double                   m_DryAirTubeOutDiam   ; //
00749       std::string              m_DryAirTubeMat       ; //
00750       double                   m_MBCoolTubeHere      ; // here flag
00751       std::string              m_MBCoolTubeName      ; // mothr bd cooling tube
00752       double                   m_MBCoolTubeInnDiam   ; //
00753       double                   m_MBCoolTubeOutDiam   ; //
00754       std::string              m_MBCoolTubeMat       ; //
00755       double                   m_MBManifHere         ; // here flag
00756       std::string              m_MBManifName         ; //mother bd manif
00757       double                   m_MBManifInnDiam      ; //
00758       double                   m_MBManifOutDiam      ; //
00759       std::string              m_MBManifMat          ; //
00760       double                   m_MBLyrHere           ; // here flag
00761       std::vector<double>      m_vecMBLyrThick       ; // mother bd lyrs
00762       std::vector<std::string> m_vecMBLyrName        ; //
00763       std::vector<std::string> m_vecMBLyrMat         ; //
00764 
00765 //-------------------------------------------------------------------
00766 
00767       double                   m_PincerRodHere      ; // here flag
00768       std::string              m_PincerRodName      ; // pincer rod
00769       std::string              m_PincerRodMat       ; // 
00770       std::vector<double>      m_vecPincerRodAzimuth; //
00771 
00772       std::string              m_PincerEnvName      ; // pincer envelope
00773       std::string              m_PincerEnvMat       ; // 
00774       double                   m_PincerEnvWidth     ; //
00775       double                   m_PincerEnvHeight    ; //
00776       double                   m_PincerEnvLength    ; //
00777       std::vector<double>      m_vecPincerEnvZOff   ; //
00778 
00779       std::string              m_PincerBlkName      ; // pincer block
00780       std::string              m_PincerBlkMat       ; // 
00781       double                   m_PincerBlkLength    ; //
00782 
00783       std::string              m_PincerShim1Name    ; // pincer shim
00784       double                   m_PincerShimHeight   ; //
00785       std::string              m_PincerShim2Name    ; // 
00786       std::string              m_PincerShimMat      ; // 
00787       double                   m_PincerShim1Width   ; //
00788       double                   m_PincerShim2Width   ; //
00789 
00790       std::string              m_PincerCutName      ; // pincer block
00791       std::string              m_PincerCutMat       ; // 
00792       double                   m_PincerCutWidth     ; //
00793       double                   m_PincerCutHeight    ; //
00794 
00795 }; 
00796 
00797 #endif