CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
DDEcalBarrelNewAlgo Class Reference

#include <DDEcalBarrelNewAlgo.h>

Inheritance diagram for DDEcalBarrelNewAlgo:

Public Types

typedef HepGeom::Point3D< double > Pt3D
 
typedef HepGeom::ReflectZ3D RfZ3D
 
typedef HepGeom::Rotate3D Ro3D
 
typedef CLHEP::HepRotation Rota
 
typedef HepGeom::RotateX3D RoX3D
 
typedef HepGeom::RotateY3D RoY3D
 
typedef HepGeom::RotateZ3D RoZ3D
 
typedef HepGeom::Transform3D Tf3D
 
typedef HepGeom::Translate3D Tl3D
 
typedef EcalTrapezoidParameters Trap
 
typedef CLHEP::Hep3Vector Vec3
 

Public Member Functions

DDMaterial aglMat () const
 
DDName aglName () const
 
double aglThick () const
 
DDMaterial andMat () const
 
DDName andName () const
 
double andThick () const
 
DDMaterial apdMat () const
 
DDName apdName () const
 
double apdSide () const
 
double apdThick () const
 
double apdX1 () const
 
double apdX2 () const
 
double apdZ () const
 
DDMaterial atjMat () const
 
DDName atjName () const
 
double atjThick () const
 
double backBracketHeight () const
 
DDMaterial backBracketMat () const
 
const std::string & backBracketName () const
 
double backCBStdSep () const
 
double backCoolBarHeight () const
 
double backCoolBarHere () const
 
DDMaterial backCoolBarMat () const
 
DDName backCoolBarName () const
 
DDMaterial backCoolBarSSMat () const
 
DDName backCoolBarSSName () const
 
double backCoolBarSSThick () const
 
double backCoolBarThick () const
 
DDMaterial backCoolBarWaMat () const
 
DDName backCoolBarWaName () const
 
double backCoolBarWaThick () const
 
double backCoolBarWidth () const
 
double backCoolHere () const
 
DDMaterial backCoolMat () const
 
double backCoolTankHere () const
 
DDMaterial backCoolTankMat () const
 
const std::string & backCoolTankName () const
 
double backCoolTankThick () const
 
DDMaterial backCoolTankWaMat () const
 
const std::string & backCoolTankWaName () const
 
double backCoolTankWaWidth () const
 
double backCoolTankWidth () const
 
double backCoolVFEHere () const
 
DDMaterial backCoolVFEMat () const
 
DDName backCoolVFEName () const
 
double backHere () const
 
double backMiscHere () const
 
double backPipeHere () const
 
DDMaterial backPipeMat () const
 
const std::string & backPipeName () const
 
DDMaterial backPipeWaterMat () const
 
DDMaterial backPlate2Mat () const
 
DDName backPlate2Name () const
 
double backPlate2Thick () const
 
double backPlateHere () const
 
double backPlateLength () const
 
DDMaterial backPlateMat () const
 
DDName backPlateName () const
 
double backPlateThick () const
 
double backPlateWidth () const
 
double backSideAngle () const
 
double backSideHeight () const
 
double backSideHere () const
 
double backSideLength () const
 
DDMaterial backSideMat () const
 
DDName backSideName () const
 
double backSideWidth () const
 
double backSideYOff1 () const
 
double backSideYOff2 () const
 
DDMaterial backVFEMat () const
 
DDName backVFEName () const
 
double backXOff () const
 
double backYOff () const
 
double barHere () const
 
DDMaterial barMat () const
 
DDName barName () const
 
double barPhiHi () const
 
double barPhiLo () const
 
DDMaterial bsiMat () const
 
DDName bsiName () const
 
double bsiThick () const
 
double bsiXSize () const
 
double bsiYSize () const
 
double capHere () const
 
DDMaterial capMat () const
 
DDName capName () const
 
double capThick () const
 
double capXSize () const
 
double capYSize () const
 
DDMaterial cerMat () const
 
DDName cerName () const
 
double cerThick () const
 
double cerXSize () const
 
double cerYSize () const
 
double clrFrAlv () const
 
DDMaterial clrMat () const
 
const std::string & clrName () const
 
double clrReAlv () const
 
double clrThAlv () const
 
DDMaterial cryMat () const
 
const std::string & cryName () const
 
 DDEcalBarrelNewAlgo ()
 
DDMaterial ddmat (const std::string &s) const
 
DDName ddname (const std::string &s) const
 
double dryAirTubeHere () const
 
double dryAirTubeInnDiam () const
 
DDMaterial dryAirTubeMat () const
 
const std::string & dryAirTubeName () const
 
double dryAirTubeOutDiam () const
 
void execute (DDCompactView &cpv) override
 
double fawDelPhi () const
 
double fawHere () const
 
DDName fawName () const
 
double fawPhiOff () const
 
double fawPhiRot () const
 
double fawRadOff () const
 
double grEdgeSlotHeight () const
 
double grEdgeSlotHere () const
 
DDMaterial grEdgeSlotMat () const
 
DDName grEdgeSlotName () const
 
double grEdgeSlotWidth () const
 
double gridHere () const
 
DDMaterial gridMat () const
 
DDName gridName () const
 
double gridThick () const
 
double grilleHere () const
 
DDMaterial grilleMat () const
 
const std::string & grilleName () const
 
double grilleThick () const
 
double grilleWidth () const
 
double grilleZSpace () const
 
double grMidSlotHere () const
 
DDMaterial grMidSlotMat () const
 
const std::string & grMidSlotName () const
 
double grMidSlotWidth () const
 
double grMidSlotXOff () const
 
double hawRCutDelY () const
 
double hawRCutY () const
 
double hawRCutZ () const
 
double hawRHBIG () const
 
double hawRhsml () const
 
DDName hawRName () const
 
double hawYOffCry () const
 
const std::string & idNameSpace () const
 
double ilyBndlLength () const
 
DDMaterial ilyBndlMat () const
 
DDName ilyBndlName () const
 
double ilyBndlOff () const
 
double ilyDelPhi () const
 
double ilyDiffLength () const
 
DDMaterial ilyDiffMat () const
 
DDName ilyDiffName () const
 
double ilyDiffOff () const
 
double ilyFanOutHeight () const
 
double ilyFanOutHere () const
 
double ilyFanOutLength () const
 
DDMaterial ilyFanOutMat () const
 
DDName ilyFanOutName () const
 
double ilyFanOutWidth () const
 
double ilyFEMHeight () const
 
double ilyFEMLength () const
 
DDMaterial ilyFEMMat () const
 
DDName ilyFEMName () const
 
double ilyFEMWidth () const
 
double ilyHere () const
 
const std::string & ilyName () const
 
double ilyPhiLow () const
 
double ilyPipeHere () const
 
double ilyPipeID () const
 
DDMaterial ilyPipeMat () const
 
const std::string & ilyPipeName () const
 
double ilyPipeOD () const
 
double ilyPTMHeight () const
 
double ilyPTMHere () const
 
double ilyPTMLength () const
 
DDMaterial ilyPTMMat () const
 
DDName ilyPTMName () const
 
double ilyPTMWidth () const
 
void initialize (const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs) override
 
double mBCoolTubeHere () const
 
double mBCoolTubeInnDiam () const
 
DDMaterial mBCoolTubeMat () const
 
const std::string & mBCoolTubeName () const
 
double mBCoolTubeNum () const
 
double mBCoolTubeOutDiam () const
 
double mBLyrHere () const
 
double mBManifHere () const
 
double mBManifInnDiam () const
 
DDMaterial mBManifMat () const
 
DDName mBManifName () const
 
double mBManifOutDiam () const
 
DDRotation myrot (const std::string &s, const CLHEP::HepRotation &r) const
 Create a DDRotation from a string converted to DDName and CLHEP::HepRotation converted to DDRotationMatrix. – Michael Case. More...
 
DDSolid mytrap (const std::string &s, const Trap &t) const
 
unsigned int nCryPerAlvEta () const
 
unsigned int nCryTypes () const
 
unsigned int nFawPerSupm () const
 
double nomCryDimAF () const
 
double nomCryDimLZ () const
 
double patchPanelHere () const
 
DDName patchPanelName () const
 
double pincerBlkLength () const
 
DDMaterial pincerBlkMat () const
 
DDName pincerBlkName () const
 
double pincerCutHeight () const
 
DDMaterial pincerCutMat () const
 
DDName pincerCutName () const
 
double pincerCutWidth () const
 
double pincerEnvHeight () const
 
double pincerEnvLength () const
 
DDMaterial pincerEnvMat () const
 
DDName pincerEnvName () const
 
double pincerEnvWidth () const
 
double pincerRodHere () const
 
DDMaterial pincerRodMat () const
 
DDName pincerRodName () const
 
DDName pincerShim1Name () const
 
double pincerShim1Width () const
 
DDName pincerShim2Name () const
 
double pincerShim2Width () const
 
double pincerShimHeight () const
 
DDMaterial pincerShimMat () const
 
DDMaterial sglMat () const
 
DDName sglName () const
 
double sglThick () const
 
DDName spmCutName () const
 
double spmCutRM () const
 
double spmCutRP () const
 
int spmCutShow () const
 
double spmCutThick () const
 
double spmDelPhi () const
 
double spmExpThick () const
 
double spmExpWide () const
 
double spmExpYOff () const
 
double spmLowPhi () const
 
DDMaterial spmMat () const
 
DDName spmName () const
 
unsigned int spmNPerHalf () const
 
double spmPhiOff () const
 
double spmSideHigh () const
 
DDMaterial spmSideMat () const
 
DDName spmSideName () const
 
double spmSideThick () const
 
double spmSideYOffM () const
 
double spmSideYOffP () const
 
double underAF () const
 
double underAR () const
 
double underBF () const
 
double underBR () const
 
double underCF () const
 
double underCR () const
 
double underLZ () const
 
const std::vector< std::string > & vecBackCoolName () const
 
const std::vector< double > & vecBackCoolNPerSec () const
 
const std::vector< double > & vecBackCoolNSec () const
 
const std::vector< double > & vecBackCoolSecSep () const
 
const std::vector< std::string > & vecBackMiscMat () const
 
const std::vector< std::string > & vecBackMiscName () const
 
const std::vector< double > & vecBackMiscThick () const
 
const std::vector< double > & vecBackPipeDiam () const
 
const std::vector< double > & vecBackPipeThick () const
 
const std::vector< std::string > & vecBackVFELyrMat () const
 
const std::vector< std::string > & vecBackVFELyrName () const
 
const std::vector< double > & vecBackVFELyrThick () const
 
const std::vector< double > & vecBarRMax () const
 
const std::vector< double > & vecBarRMin () const
 
const std::vector< double > & vecBarRota () const
 
const std::vector< double > & vecBarRota2 () const
 
const std::vector< double > & vecBarRota3 () const
 
const std::vector< double > & vecBarTran () const
 
const std::vector< double > & vecBarZPts () const
 
const std::vector< double > & vecGapAlvEta () const
 
const std::vector< double > & vecGrilleHeight () const
 
const std::vector< double > & vecGrilleZOff () const
 
const std::vector< double > & vecGrMidSlotHeight () const
 
const std::vector< double > & vecIlyFanOutPhi () const
 
const std::vector< double > & vecIlyFanOutZ () const
 
const std::vector< double > & vecIlyFEMPhi () const
 
const std::vector< double > & vecIlyFEMZ () const
 
const std::vector< std::string > & vecIlyMat () const
 
const std::vector< double > & vecIlyPipeLength () const
 
const std::vector< double > & vecIlyPipePhi () const
 
const std::vector< double > & vecIlyPipeType () const
 
const std::vector< double > & vecIlyPipeZ () const
 
const std::vector< double > & vecIlyPTMPhi () const
 
const std::vector< double > & vecIlyPTMZ () const
 
const std::vector< double > & vecIlyThick () const
 
const std::vector< std::string > & vecMBLyrMat () const
 
const std::vector< std::string > & vecMBLyrName () const
 
const std::vector< double > & vecMBLyrThick () const
 
const std::vector< double > & vecNomCryDimAR () const
 
const std::vector< double > & vecNomCryDimBF () const
 
const std::vector< double > & vecNomCryDimBR () const
 
const std::vector< double > & vecNomCryDimCF () const
 
const std::vector< double > & vecNomCryDimCR () const
 
const std::vector< std::string > & vecPatchPanelMat () const
 
const std::vector< std::string > & vecPatchPanelNames () const
 
const std::vector< double > & vecPatchPanelThick () const
 
std::vector< double > vecPincerEnvZOff () const
 
std::vector< double > vecPincerRodAzimuth () const
 
const std::vector< double > & vecSpmBRota () const
 
const std::vector< double > & vecSpmBTran () const
 
const std::vector< double > & vecSpmCutTM () const
 
const std::vector< double > & vecSpmCutTP () const
 
const std::vector< double > & vecSpmHere () const
 
const std::vector< double > & vecSpmRMax () const
 
const std::vector< double > & vecSpmRMin () const
 
const std::vector< double > & vecSpmRota () const
 
const std::vector< double > & vecSpmTran () const
 
const std::vector< double > & vecSpmZPts () const
 
const std::vector< double > & vecWebClrTh () const
 
const std::vector< double > & vecWebLength () const
 
const std::vector< double > & vecWebPlTh () const
 
double wallFrAlv () const
 
DDMaterial wallMat () const
 
const std::string & wallName () const
 
double wallReAlv () const
 
double wallThAlv () const
 
DDMaterial webClrMat () const
 
const std::string & webClrName () const
 
double webHere () const
 
DDMaterial webPlMat () const
 
const std::string & webPlName () const
 
double wrapFrAlv () const
 
DDMaterial wrapMat () const
 
const std::string & wrapName () const
 
double wrapReAlv () const
 
double wrapThAlv () const
 
 ~DDEcalBarrelNewAlgo () override
 

Private Member Functions

void web (unsigned int iWeb, double bWeb, double BWeb, double LWeb, double theta, const Pt3D &corner, const DDLogicalPart &logPar, double &zee, double side, double front, double delta, DDCompactView &cpv)
 

Private Attributes

std::string m_AGLMat
 
std::string m_AGLName
 
double m_AGLThick
 
std::string m_ANDMat
 
std::string m_ANDName
 
double m_ANDThick
 
std::string m_APDMat
 
std::string m_APDName
 
double m_APDSide
 
double m_APDThick
 
double m_APDX1
 
double m_APDX2
 
double m_APDZ
 
std::string m_ATJMat
 
std::string m_ATJName
 
double m_ATJThick
 
double m_BackBracketHeight
 
std::string m_BackBracketMat
 
std::string m_BackBracketName
 
double m_BackCBStdSep
 
double m_BackCoolBarHeight
 
double m_BackCoolBarHere
 
std::string m_BackCoolBarMat
 
std::string m_BackCoolBarName
 
std::string m_BackCoolBarSSMat
 
std::string m_BackCoolBarSSName
 
double m_BackCoolBarSSThick
 
double m_BackCoolBarThick
 
std::string m_BackCoolBarWaMat
 
std::string m_BackCoolBarWaName
 
double m_BackCoolBarWaThick
 
double m_BackCoolBarWidth
 
double m_BackCoolHere
 
std::string m_BackCoolMat
 
double m_BackCoolTankHere
 
std::string m_BackCoolTankMat
 
std::string m_BackCoolTankName
 
double m_BackCoolTankThick
 
std::string m_BackCoolTankWaMat
 
std::string m_BackCoolTankWaName
 
double m_BackCoolTankWaWidth
 
double m_BackCoolTankWidth
 
double m_BackCoolVFEHere
 
std::string m_BackCoolVFEMat
 
std::string m_BackCoolVFEName
 
double m_BackHere
 
double m_BackMiscHere
 
double m_BackPipeHere
 
std::string m_BackPipeMat
 
std::string m_BackPipeName
 
std::string m_BackPipeWaterMat
 
std::string m_BackPlate2Mat
 
std::string m_BackPlate2Name
 
double m_BackPlate2Thick
 
double m_BackPlateHere
 
double m_BackPlateLength
 
std::string m_BackPlateMat
 
std::string m_BackPlateName
 
double m_BackPlateThick
 
double m_BackPlateWidth
 
double m_BackSideAngle
 
double m_BackSideHeight
 
double m_BackSideHere
 
double m_BackSideLength
 
std::string m_BackSideMat
 
std::string m_BackSideName
 
double m_BackSideWidth
 
double m_BackSideYOff1
 
double m_BackSideYOff2
 
std::string m_BackVFEMat
 
std::string m_BackVFEName
 
double m_BackXOff
 
double m_BackYOff
 
double m_BarHere
 
std::string m_BarMat
 
std::string m_BarName
 
double m_BarPhiHi
 
double m_BarPhiLo
 
std::string m_BSiMat
 
std::string m_BSiName
 
double m_BSiThick
 
double m_BSiXSize
 
double m_BSiYSize
 
double m_capHere
 
std::string m_capMat
 
std::string m_capName
 
double m_capThick
 
double m_capXSize
 
double m_capYSize
 
std::string m_CERMat
 
std::string m_CERName
 
double m_CERThick
 
double m_CERXSize
 
double m_CERYSize
 
double m_ClrFrAlv
 
std::string m_ClrMat
 
std::string m_ClrName
 
double m_ClrReAlv
 
double m_ClrThAlv
 
std::string m_CryMat
 
std::string m_CryName
 
double m_DryAirTubeHere
 
double m_DryAirTubeInnDiam
 
std::string m_DryAirTubeMat
 
std::string m_DryAirTubeName
 
double m_DryAirTubeOutDiam
 
double m_FawDelPhi
 
double m_FawHere
 
std::string m_FawName
 
double m_FawPhiOff
 
double m_FawPhiRot
 
double m_FawRadOff
 
double m_GrEdgeSlotHeight
 
double m_GrEdgeSlotHere
 
std::string m_GrEdgeSlotMat
 
std::string m_GrEdgeSlotName
 
double m_GrEdgeSlotWidth
 
double m_GridHere
 
std::string m_GridMat
 
std::string m_GridName
 
double m_GridThick
 
double m_GrilleHere
 
std::string m_GrilleMat
 
std::string m_GrilleName
 
double m_GrilleThick
 
double m_GrilleWidth
 
double m_GrilleZSpace
 
double m_GrMidSlotHere
 
std::string m_GrMidSlotMat
 
std::string m_GrMidSlotName
 
double m_GrMidSlotWidth
 
double m_GrMidSlotXOff
 
double m_HawRCutDelY
 
double m_HawRCutY
 
double m_HawRCutZ
 
double m_HawRHBIG
 
double m_HawRhsml
 
std::string m_HawRName
 
double m_HawYOffCry
 
std::string m_idNameSpace
 
double m_IlyBndlLength
 
std::string m_IlyBndlMat
 
std::string m_IlyBndlName
 
double m_IlyBndlOff
 
double m_IlyDelPhi
 
double m_IlyDiffLength
 
std::string m_IlyDiffMat
 
std::string m_IlyDiffName
 
double m_IlyDiffOff
 
double m_IlyFanOutHeight
 
double m_IlyFanOutHere
 
double m_IlyFanOutLength
 
std::string m_IlyFanOutMat
 
std::string m_IlyFanOutName
 
double m_IlyFanOutWidth
 
double m_IlyFEMHeight
 
double m_IlyFEMLength
 
std::string m_IlyFEMMat
 
std::string m_IlyFEMName
 
double m_IlyFEMWidth
 
double m_IlyHere
 
std::string m_IlyName
 
double m_IlyPhiLow
 
double m_IlyPipeHere
 
double m_IlyPipeID
 
std::string m_IlyPipeMat
 
std::string m_IlyPipeName
 
double m_IlyPipeOD
 
double m_IlyPTMHeight
 
double m_IlyPTMHere
 
double m_IlyPTMLength
 
std::string m_IlyPTMMat
 
std::string m_IlyPTMName
 
double m_IlyPTMWidth
 
double m_MBCoolTubeHere
 
double m_MBCoolTubeInnDiam
 
std::string m_MBCoolTubeMat
 
std::string m_MBCoolTubeName
 
unsigned int m_MBCoolTubeNum
 
double m_MBCoolTubeOutDiam
 
double m_MBLyrHere
 
double m_MBManifHere
 
double m_MBManifInnDiam
 
std::string m_MBManifMat
 
std::string m_MBManifName
 
double m_MBManifOutDiam
 
unsigned int m_NCryPerAlvEta
 
unsigned int m_NCryTypes
 
unsigned int m_NFawPerSupm
 
double m_NomCryDimAF
 
double m_NomCryDimLZ
 
double m_PatchPanelHere
 
std::string m_PatchPanelName
 
double m_PincerBlkLength
 
std::string m_PincerBlkMat
 
std::string m_PincerBlkName
 
double m_PincerCutHeight
 
std::string m_PincerCutMat
 
std::string m_PincerCutName
 
double m_PincerCutWidth
 
double m_PincerEnvHeight
 
double m_PincerEnvLength
 
std::string m_PincerEnvMat
 
std::string m_PincerEnvName
 
double m_PincerEnvWidth
 
double m_PincerRodHere
 
std::string m_PincerRodMat
 
std::string m_PincerRodName
 
std::string m_PincerShim1Name
 
double m_PincerShim1Width
 
std::string m_PincerShim2Name
 
double m_PincerShim2Width
 
double m_PincerShimHeight
 
std::string m_PincerShimMat
 
std::string m_SGLMat
 
std::string m_SGLName
 
double m_SGLThick
 
std::string m_SpmCutName
 
double m_SpmCutRM
 
double m_SpmCutRP
 
int m_SpmCutShow
 
double m_SpmCutThick
 
double m_SpmDelPhi
 
double m_SpmExpThick
 
double m_SpmExpWide
 
double m_SpmExpYOff
 
double m_SpmLowPhi
 
std::string m_SpmMat
 
std::string m_SpmName
 
unsigned int m_SpmNPerHalf
 
double m_SpmPhiOff
 
double m_SpmSideHigh
 
std::string m_SpmSideMat
 
std::string m_SpmSideName
 
double m_SpmSideThick
 
double m_SpmSideYOffM
 
double m_SpmSideYOffP
 
double m_UnderAF
 
double m_UnderAR
 
double m_UnderBF
 
double m_UnderBR
 
double m_UnderCF
 
double m_UnderCR
 
double m_UnderLZ
 
std::vector< std::string > m_vecBackCoolName
 
std::vector< double > m_vecBackCoolNPerSec
 
std::vector< double > m_vecBackCoolNSec
 
std::vector< double > m_vecBackCoolSecSep
 
std::vector< std::string > m_vecBackMiscMat
 
std::vector< std::string > m_vecBackMiscName
 
std::vector< double > m_vecBackMiscThick
 
std::vector< double > m_vecBackPipeDiam
 
std::vector< double > m_vecBackPipeThick
 
std::vector< std::string > m_vecBackVFELyrMat
 
std::vector< std::string > m_vecBackVFELyrName
 
std::vector< double > m_vecBackVFELyrThick
 
std::vector< double > m_vecBarRMax
 
std::vector< double > m_vecBarRMin
 
std::vector< double > m_vecBarRota
 
std::vector< double > m_vecBarRota2
 
std::vector< double > m_vecBarRota3
 
std::vector< double > m_vecBarTran
 
std::vector< double > m_vecBarZPts
 
std::vector< double > m_vecGapAlvEta
 
std::vector< double > m_vecGrilleHeight
 
std::vector< double > m_vecGrilleZOff
 
std::vector< double > m_vecGrMidSlotHeight
 
std::vector< double > m_vecIlyFanOutPhi
 
std::vector< double > m_vecIlyFanOutZ
 
std::vector< double > m_vecIlyFEMPhi
 
std::vector< double > m_vecIlyFEMZ
 
std::vector< std::string > m_vecIlyMat
 
std::vector< double > m_vecIlyPipeLength
 
std::vector< double > m_vecIlyPipePhi
 
std::vector< double > m_vecIlyPipeType
 
std::vector< double > m_vecIlyPipeZ
 
std::vector< double > m_vecIlyPTMPhi
 
std::vector< double > m_vecIlyPTMZ
 
std::vector< double > m_vecIlyThick
 
std::vector< std::string > m_vecMBLyrMat
 
std::vector< std::string > m_vecMBLyrName
 
std::vector< double > m_vecMBLyrThick
 
std::vector< double > m_vecNomCryDimAR
 
std::vector< double > m_vecNomCryDimBF
 
std::vector< double > m_vecNomCryDimBR
 
std::vector< double > m_vecNomCryDimCF
 
std::vector< double > m_vecNomCryDimCR
 
std::vector< std::string > m_vecPatchPanelMat
 
std::vector< std::string > m_vecPatchPanelNames
 
std::vector< double > m_vecPatchPanelThick
 
std::vector< double > m_vecPincerEnvZOff
 
std::vector< double > m_vecPincerRodAzimuth
 
std::vector< double > m_vecSpmBRota
 
std::vector< double > m_vecSpmBTran
 
std::vector< double > m_vecSpmCutTM
 
std::vector< double > m_vecSpmCutTP
 
std::vector< double > m_vecSpmHere
 
std::vector< double > m_vecSpmRMax
 
std::vector< double > m_vecSpmRMin
 
std::vector< double > m_vecSpmRota
 
std::vector< double > m_vecSpmTran
 
std::vector< double > m_vecSpmZPts
 
std::vector< double > m_vecWebClrTh
 
std::vector< double > m_vecWebLength
 
std::vector< double > m_vecWebPlTh
 
double m_WallFrAlv
 
std::string m_WallMat
 
std::string m_WallName
 
double m_WallReAlv
 
double m_WallThAlv
 
std::string m_WebClrMat
 
std::string m_WebClrName
 
double m_WebHere
 
std::string m_WebPlMat
 
std::string m_WebPlName
 
double m_WrapFrAlv
 
std::string m_WrapMat
 
std::string m_WrapName
 
double m_WrapReAlv
 
double m_WrapThAlv
 

Detailed Description

Definition at line 16 of file DDEcalBarrelNewAlgo.h.

Member Typedef Documentation

Definition at line 20 of file DDEcalBarrelNewAlgo.h.

typedef HepGeom::ReflectZ3D DDEcalBarrelNewAlgo::RfZ3D

Definition at line 22 of file DDEcalBarrelNewAlgo.h.

typedef HepGeom::Rotate3D DDEcalBarrelNewAlgo::Ro3D

Definition at line 24 of file DDEcalBarrelNewAlgo.h.

typedef CLHEP::HepRotation DDEcalBarrelNewAlgo::Rota

Definition at line 30 of file DDEcalBarrelNewAlgo.h.

typedef HepGeom::RotateX3D DDEcalBarrelNewAlgo::RoX3D

Definition at line 27 of file DDEcalBarrelNewAlgo.h.

typedef HepGeom::RotateY3D DDEcalBarrelNewAlgo::RoY3D

Definition at line 26 of file DDEcalBarrelNewAlgo.h.

typedef HepGeom::RotateZ3D DDEcalBarrelNewAlgo::RoZ3D

Definition at line 25 of file DDEcalBarrelNewAlgo.h.

typedef HepGeom::Transform3D DDEcalBarrelNewAlgo::Tf3D

Definition at line 21 of file DDEcalBarrelNewAlgo.h.

typedef HepGeom::Translate3D DDEcalBarrelNewAlgo::Tl3D

Definition at line 23 of file DDEcalBarrelNewAlgo.h.

Definition at line 19 of file DDEcalBarrelNewAlgo.h.

typedef CLHEP::Hep3Vector DDEcalBarrelNewAlgo::Vec3

Definition at line 29 of file DDEcalBarrelNewAlgo.h.

Constructor & Destructor Documentation

DDEcalBarrelNewAlgo::DDEcalBarrelNewAlgo ( )

Definition at line 24 of file DDEcalBarrelNewAlgo.cc.

References LogDebug.

24  :
25  m_idNameSpace ( "" ),
26  m_BarName ( "" ),
27  m_BarMat ( "" ),
28  m_vecBarZPts ( ),
29  m_vecBarRMin ( ),
30  m_vecBarRMax ( ),
31  m_vecBarTran ( ),
32  m_vecBarRota ( ),
33  m_vecBarRota2 ( ),
34  m_vecBarRota3 ( ),
35  m_BarPhiLo (0),
36  m_BarPhiHi (0),
37  m_BarHere (0),
38  m_SpmName (""),
39  m_SpmMat (""),
40  m_vecSpmZPts (),
41  m_vecSpmRMin (),
42  m_vecSpmRMax (),
43  m_vecSpmTran (),
44  m_vecSpmRota (),
45  m_vecSpmBTran (),
46  m_vecSpmBRota (),
47  m_SpmNPerHalf (0),
48  m_SpmLowPhi (0),
49  m_SpmDelPhi (0),
50  m_SpmPhiOff (0),
51  m_vecSpmHere (),
52  m_SpmCutName (""),
53  m_SpmCutThick (0),
54  m_SpmCutShow (0),
55  m_vecSpmCutTM (),
56  m_vecSpmCutTP (),
57  m_SpmCutRM (0),
58  m_SpmCutRP (0),
59  m_SpmExpThick (0),
60  m_SpmExpWide (0),
61  m_SpmExpYOff (0),
62  m_SpmSideName (""),
63  m_SpmSideMat (""),
64  m_SpmSideHigh (0),
65  m_SpmSideThick (0),
66  m_SpmSideYOffM (0),
67  m_SpmSideYOffP (0),
68  m_NomCryDimAF (0),
69  m_NomCryDimLZ (0),
75  m_UnderAF (0),
76  m_UnderLZ (0),
77  m_UnderBF (0),
78  m_UnderCF (0),
79  m_UnderAR (0),
80  m_UnderBR (0),
81  m_UnderCR (0),
82  m_WallThAlv (0),
83  m_WrapThAlv (0),
84  m_ClrThAlv (0),
85  m_vecGapAlvEta (),
86  m_WallFrAlv (0),
87  m_WrapFrAlv (0),
88  m_ClrFrAlv (0),
89  m_WallReAlv (0),
90  m_WrapReAlv (0),
91  m_ClrReAlv (0),
92  m_NCryTypes (0),
93  m_NCryPerAlvEta (0),
94  m_CryName (""),
95  m_ClrName (""),
96  m_WrapName (""),
97  m_WallName (""),
98  m_CryMat (""),
99  m_ClrMat (""),
100  m_WrapMat (""),
101  m_WallMat (""),
102 
103  m_capName (""),
104  m_capHere (0),
105  m_capMat (""),
106  m_capXSize (0),
107  m_capYSize (0),
108  m_capThick (0),
109 
110  m_CERName (""),
111  m_CERMat (""),
112  m_CERXSize (0),
113  m_CERYSize (0),
114  m_CERThick (0),
115 
116  m_BSiName (""),
117  m_BSiMat (""),
118  m_BSiXSize (0),
119  m_BSiYSize (0),
120  m_BSiThick (0),
121 
122  m_APDName (""),
123  m_APDMat (""),
124  m_APDSide (0),
125  m_APDThick (0),
126  m_APDZ (0),
127  m_APDX1 (0),
128  m_APDX2 (0),
129 
130  m_ATJName (""),
131  m_ATJMat (""),
132  m_ATJThick (0),
133 
134  m_SGLName (""),
135  m_SGLMat (""),
136  m_SGLThick (0),
137 
138  m_AGLName (""),
139  m_AGLMat (""),
140  m_AGLThick (0),
141 
142  m_ANDName (""),
143  m_ANDMat (""),
144  m_ANDThick (0),
145 
146  m_WebHere (0),
147  m_WebPlName (""),
148  m_WebClrName (""),
149  m_WebPlMat (""),
150  m_WebClrMat (""),
151  m_vecWebPlTh (),
152  m_vecWebClrTh (),
153  m_vecWebLength (),
154  m_IlyHere (0),
155  m_IlyName (),
156  m_IlyPhiLow (0),
157  m_IlyDelPhi (0),
158  m_vecIlyMat (),
159  m_vecIlyThick (),
160  m_IlyPipeName (""),
161  m_IlyPipeHere (0),
162  m_IlyPipeMat (""),
163  m_IlyPipeOD (0),
164  m_IlyPipeID (0),
166  m_vecIlyPipeType (),
167  m_vecIlyPipePhi (),
168  m_vecIlyPipeZ (),
169  m_IlyPTMName (""),
170  m_IlyPTMHere (0),
171  m_IlyPTMMat (""),
172  m_IlyPTMWidth (0),
173  m_IlyPTMLength (0),
174  m_IlyPTMHeight (0),
175  m_vecIlyPTMZ (),
176  m_vecIlyPTMPhi (),
177  m_IlyFanOutName (""),
178  m_IlyFanOutHere (0),
179  m_IlyFanOutMat (""),
180  m_IlyFanOutWidth (0),
183  m_vecIlyFanOutZ (),
185  m_IlyDiffName (""),
186  m_IlyDiffMat (""),
187  m_IlyDiffOff (0),
188  m_IlyDiffLength (0),
189  m_IlyBndlName (""),
190  m_IlyBndlMat (""),
191  m_IlyBndlOff (0),
192  m_IlyBndlLength (0),
193  m_IlyFEMName (""),
194  m_IlyFEMMat (""),
195  m_IlyFEMWidth (0),
196  m_IlyFEMLength (0),
197  m_IlyFEMHeight (0),
198  m_vecIlyFEMZ (),
199  m_vecIlyFEMPhi (),
200  m_HawRName (""),
201  m_FawName (""),
202  m_FawHere (0),
203  m_HawRHBIG (0),
204  m_HawRhsml (0),
205  m_HawRCutY (0),
206  m_HawRCutZ (0),
207  m_HawRCutDelY (0),
208  m_HawYOffCry (0),
209  m_NFawPerSupm (0),
210  m_FawPhiOff (0),
211  m_FawDelPhi (0),
212  m_FawPhiRot (0),
213  m_FawRadOff (0),
214  m_GridHere (0),
215  m_GridName (""),
216  m_GridMat (""),
217  m_GridThick (0),
218  m_BackXOff (0),
219  m_BackYOff (0),
220  m_BackHere (0),
221  m_BackSideName (""),
222  m_BackSideHere (0),
223  m_BackSideLength (0),
224  m_BackSideHeight (0),
225  m_BackSideWidth (0),
226  m_BackSideYOff1 (0),
227  m_BackSideYOff2 (0),
228  m_BackSideAngle (0),
229  m_BackSideMat (""),
230  m_BackPlateName (""),
231  m_BackPlateHere (0),
232  m_BackPlateLength (0),
233  m_BackPlateThick (0),
234  m_BackPlateWidth (0),
235  m_BackPlateMat (""),
236  m_BackPlate2Name (""),
237  m_BackPlate2Thick (0),
238  m_BackPlate2Mat (""),
239  m_GrilleName (""),
240  m_GrilleHere (0),
241  m_GrilleThick (0),
242  m_GrilleWidth (0),
243  m_GrilleZSpace (0),
244  m_GrilleMat (""),
246  m_vecGrilleZOff (),
247  m_GrEdgeSlotName (""),
248  m_GrEdgeSlotMat (""),
249  m_GrEdgeSlotHere (0),
250  m_GrEdgeSlotHeight (0),
251  m_GrEdgeSlotWidth (0),
252  m_GrMidSlotName (""),
253  m_GrMidSlotMat (""),
254  m_GrMidSlotHere (0),
255  m_GrMidSlotWidth (0),
256  m_GrMidSlotXOff (0),
258  m_BackPipeHere (0),
259  m_BackPipeName (""),
262  m_BackPipeMat (""),
263  m_BackPipeWaterMat (""),
264 
266  m_BackCoolHere (0),
267  m_BackCoolBarHere (0),
268  m_BackCoolBarWidth (0),
270  m_BackCoolMat (""),
271  m_BackCoolBarName (""),
272  m_BackCoolBarThick (0),
273  m_BackCoolBarMat (""),
274  m_BackCoolBarSSName (""),
276  m_BackCoolBarSSMat (""),
277  m_BackCoolBarWaName (""),
279  m_BackCoolBarWaMat (""),
280  m_BackCoolVFEHere (0),
281  m_BackCoolVFEName (""),
282  m_BackCoolVFEMat (""),
283  m_BackVFEName (""),
284  m_BackVFEMat (""),
291 
292  m_BackMiscHere (0),
295  m_vecBackMiscMat (),
296  m_BackCBStdSep (0),
297  m_PatchPanelHere (0),
298  m_PatchPanelName (""),
302  m_BackCoolTankHere (0),
303  m_BackCoolTankName (""),
306  m_BackCoolTankMat (""),
309  m_BackCoolTankWaMat (""),
310  m_BackBracketName (""),
312  m_BackBracketMat (""),
313 
314  m_DryAirTubeHere (0),
315  m_DryAirTubeName (""),
316  m_MBCoolTubeNum (0),
319  m_DryAirTubeMat (""),
320  m_MBCoolTubeHere (0),
321  m_MBCoolTubeName (""),
324  m_MBCoolTubeMat (""),
325  m_MBManifHere (0),
326  m_MBManifName (""),
327  m_MBManifInnDiam (0),
328  m_MBManifOutDiam (0),
329  m_MBManifMat (""),
330  m_MBLyrHere (0),
331  m_vecMBLyrThick (0),
332  m_vecMBLyrName (),
333  m_vecMBLyrMat (),
334 
335 
336  m_PincerRodHere (0),
337  m_PincerRodName (""),
338  m_PincerRodMat (""),
340  m_PincerEnvName (""),
341  m_PincerEnvMat (""),
342  m_PincerEnvWidth (0),
343  m_PincerEnvHeight (0),
344  m_PincerEnvLength (0),
346  m_PincerBlkName (""),
347  m_PincerBlkMat (""),
348  m_PincerBlkLength (0),
349  m_PincerShim1Name (""),
350  m_PincerShimHeight (0),
351  m_PincerShim2Name (""),
352  m_PincerShimMat (""),
353  m_PincerShim1Width (0),
354  m_PincerShim2Width (0),
355  m_PincerCutName (""),
356  m_PincerCutMat (""),
357  m_PincerCutWidth (0),
359 
360 {
361  LogDebug("EcalGeom") << "DDEcalBarrelAlgo info: Creating an instance" ;
362 }
#define LogDebug(id)
std::vector< double > m_vecPincerEnvZOff
std::vector< double > m_vecIlyFEMZ
std::vector< double > m_vecNomCryDimCF
std::vector< std::string > m_vecBackVFELyrMat
std::vector< std::string > m_vecBackCoolName
std::vector< std::string > m_vecIlyMat
std::vector< double > m_vecSpmZPts
std::vector< double > m_vecSpmBTran
std::vector< double > m_vecBarTran
std::vector< double > m_vecBackMiscThick
std::vector< double > m_vecNomCryDimAR
std::vector< double > m_vecIlyFanOutZ
std::string m_BackCoolTankWaName
std::vector< double > m_vecIlyFanOutPhi
std::vector< std::string > m_vecBackMiscName
std::vector< double > m_vecBackCoolSecSep
std::vector< double > m_vecBarRota2
std::vector< double > m_vecNomCryDimBF
std::vector< double > m_vecWebClrTh
std::vector< double > m_vecBarRMin
std::vector< double > m_vecIlyPipePhi
std::vector< std::string > m_vecPatchPanelMat
std::vector< std::string > m_vecPatchPanelNames
std::vector< std::string > m_vecMBLyrName
std::vector< double > m_vecSpmBRota
std::vector< double > m_vecSpmRMax
std::vector< double > m_vecPincerRodAzimuth
std::vector< double > m_vecWebLength
std::vector< double > m_vecBarRota
std::vector< std::string > m_vecBackVFELyrName
std::vector< double > m_vecNomCryDimCR
std::vector< double > m_vecNomCryDimBR
std::vector< std::string > m_vecBackMiscMat
std::vector< double > m_vecBackCoolNSec
std::vector< double > m_vecIlyPipeType
std::vector< double > m_vecPatchPanelThick
std::vector< double > m_vecSpmCutTM
std::vector< double > m_vecBarRMax
std::vector< std::string > m_vecMBLyrMat
std::vector< double > m_vecBarRota3
std::vector< double > m_vecIlyPTMPhi
std::vector< double > m_vecWebPlTh
std::vector< double > m_vecBackVFELyrThick
std::vector< double > m_vecGrMidSlotHeight
std::vector< double > m_vecBackPipeDiam
std::vector< double > m_vecSpmTran
std::vector< double > m_vecGrilleHeight
std::vector< double > m_vecGapAlvEta
std::vector< double > m_vecMBLyrThick
std::vector< double > m_vecIlyPipeZ
std::vector< double > m_vecIlyThick
std::vector< double > m_vecGrilleZOff
std::vector< double > m_vecIlyPTMZ
std::vector< double > m_vecBarZPts
std::vector< double > m_vecSpmRota
std::vector< double > m_vecSpmCutTP
std::vector< double > m_vecIlyPipeLength
std::vector< double > m_vecSpmRMin
std::vector< double > m_vecBackPipeThick
std::vector< double > m_vecIlyFEMPhi
std::vector< double > m_vecSpmHere
std::vector< double > m_vecBackCoolNPerSec
DDEcalBarrelNewAlgo::~DDEcalBarrelNewAlgo ( )
override

Definition at line 364 of file DDEcalBarrelNewAlgo.cc.

364 {}

Member Function Documentation

DDMaterial DDEcalBarrelNewAlgo::aglMat ( ) const
inline

Definition at line 166 of file DDEcalBarrelNewAlgo.h.

References ddmat(), and m_AGLMat.

Referenced by execute().

166 { return ddmat(m_AGLMat) ; }
DDMaterial ddmat(const std::string &s) const
DDName DDEcalBarrelNewAlgo::aglName ( ) const
inline

Definition at line 165 of file DDEcalBarrelNewAlgo.h.

References ddname(), and m_AGLName.

Referenced by execute().

165 { return ddname(m_AGLName) ; }
DDName ddname(const std::string &s) const
double DDEcalBarrelNewAlgo::aglThick ( ) const
inline

Definition at line 167 of file DDEcalBarrelNewAlgo.h.

References m_AGLThick.

Referenced by execute().

167 { return m_AGLThick; }
DDMaterial DDEcalBarrelNewAlgo::andMat ( ) const
inline

Definition at line 170 of file DDEcalBarrelNewAlgo.h.

References ddmat(), and m_ANDMat.

Referenced by execute().

170 { return ddmat(m_ANDMat) ; }
DDMaterial ddmat(const std::string &s) const
DDName DDEcalBarrelNewAlgo::andName ( ) const
inline

Definition at line 169 of file DDEcalBarrelNewAlgo.h.

References ddname(), and m_ANDName.

Referenced by execute().

169 { return ddname(m_ANDName) ; }
DDName ddname(const std::string &s) const
double DDEcalBarrelNewAlgo::andThick ( ) const
inline

Definition at line 171 of file DDEcalBarrelNewAlgo.h.

References m_ANDThick.

Referenced by execute().

171 { return m_ANDThick; }
DDMaterial DDEcalBarrelNewAlgo::apdMat ( ) const
inline

Definition at line 174 of file DDEcalBarrelNewAlgo.h.

References ddmat(), and m_APDMat.

Referenced by execute().

174 { return ddmat(m_APDMat) ; }
DDMaterial ddmat(const std::string &s) const
DDName DDEcalBarrelNewAlgo::apdName ( ) const
inline

Definition at line 173 of file DDEcalBarrelNewAlgo.h.

References ddname(), and m_APDName.

Referenced by execute().

173 { return ddname(m_APDName) ; }
DDName ddname(const std::string &s) const
double DDEcalBarrelNewAlgo::apdSide ( ) const
inline

Definition at line 175 of file DDEcalBarrelNewAlgo.h.

References m_APDSide.

Referenced by execute().

175 { return m_APDSide ; }
double DDEcalBarrelNewAlgo::apdThick ( ) const
inline

Definition at line 176 of file DDEcalBarrelNewAlgo.h.

References m_APDThick.

Referenced by execute().

176 { return m_APDThick; }
double DDEcalBarrelNewAlgo::apdX1 ( ) const
inline

Definition at line 178 of file DDEcalBarrelNewAlgo.h.

References m_APDX1.

Referenced by execute().

178 { return m_APDX1 ; }
double DDEcalBarrelNewAlgo::apdX2 ( ) const
inline

Definition at line 179 of file DDEcalBarrelNewAlgo.h.

References m_APDX2.

Referenced by execute().

179 { return m_APDX2 ; }
double DDEcalBarrelNewAlgo::apdZ ( ) const
inline

Definition at line 177 of file DDEcalBarrelNewAlgo.h.

References m_APDZ.

Referenced by execute().

177 { return m_APDZ ; }
DDMaterial DDEcalBarrelNewAlgo::atjMat ( ) const
inline

Definition at line 158 of file DDEcalBarrelNewAlgo.h.

References ddmat(), and m_ATJMat.

Referenced by execute().

158 { return ddmat(m_ATJMat) ; }
DDMaterial ddmat(const std::string &s) const
DDName DDEcalBarrelNewAlgo::atjName ( ) const
inline

Definition at line 157 of file DDEcalBarrelNewAlgo.h.

References ddname(), and m_ATJName.

Referenced by execute().

157 { return ddname(m_ATJName) ; }
DDName ddname(const std::string &s) const
double DDEcalBarrelNewAlgo::atjThick ( ) const
inline

Definition at line 159 of file DDEcalBarrelNewAlgo.h.

References m_ATJThick.

Referenced by execute().

159 { return m_ATJThick; }
double DDEcalBarrelNewAlgo::backBracketHeight ( ) const
inline

Definition at line 360 of file DDEcalBarrelNewAlgo.h.

References m_BackBracketHeight.

Referenced by execute().

360 { return m_BackBracketHeight ;}
DDMaterial DDEcalBarrelNewAlgo::backBracketMat ( ) const
inline

Definition at line 361 of file DDEcalBarrelNewAlgo.h.

References ddmat(), and m_BackBracketMat.

Referenced by execute().

361 { return ddmat(m_BackBracketMat) ;}
DDMaterial ddmat(const std::string &s) const
const std::string& DDEcalBarrelNewAlgo::backBracketName ( ) const
inline

Definition at line 359 of file DDEcalBarrelNewAlgo.h.

References m_BackBracketName.

Referenced by execute().

359 { return m_BackBracketName ;}
double DDEcalBarrelNewAlgo::backCBStdSep ( ) const
inline

Definition at line 349 of file DDEcalBarrelNewAlgo.h.

References m_BackCBStdSep.

Referenced by execute().

349 { return m_BackCBStdSep ;}
double DDEcalBarrelNewAlgo::backCoolBarHeight ( ) const
inline

Definition at line 326 of file DDEcalBarrelNewAlgo.h.

References m_BackCoolBarHeight.

Referenced by execute().

326 { return m_BackCoolBarHeight ;}
double DDEcalBarrelNewAlgo::backCoolBarHere ( ) const
inline

Definition at line 328 of file DDEcalBarrelNewAlgo.h.

References m_BackCoolBarHere.

Referenced by execute().

328 { return m_BackCoolBarHere ; }
DDMaterial DDEcalBarrelNewAlgo::backCoolBarMat ( ) const
inline

Definition at line 331 of file DDEcalBarrelNewAlgo.h.

References ddmat(), and m_BackCoolBarMat.

Referenced by execute().

331 { return ddmat(m_BackCoolBarMat) ;}
DDMaterial ddmat(const std::string &s) const
DDName DDEcalBarrelNewAlgo::backCoolBarName ( ) const
inline

Definition at line 329 of file DDEcalBarrelNewAlgo.h.

References ddname(), and m_BackCoolBarName.

Referenced by execute().

329 { return ddname(m_BackCoolBarName);}
DDName ddname(const std::string &s) const
DDMaterial DDEcalBarrelNewAlgo::backCoolBarSSMat ( ) const
inline

Definition at line 334 of file DDEcalBarrelNewAlgo.h.

References ddmat(), and m_BackCoolBarSSMat.

Referenced by execute().

334 { return ddmat(m_BackCoolBarSSMat) ;}
DDMaterial ddmat(const std::string &s) const
DDName DDEcalBarrelNewAlgo::backCoolBarSSName ( ) const
inline

Definition at line 332 of file DDEcalBarrelNewAlgo.h.

References ddname(), and m_BackCoolBarSSName.

Referenced by execute().

332 { return ddname(m_BackCoolBarSSName);}
DDName ddname(const std::string &s) const
double DDEcalBarrelNewAlgo::backCoolBarSSThick ( ) const
inline

Definition at line 333 of file DDEcalBarrelNewAlgo.h.

References m_BackCoolBarSSThick.

Referenced by execute().

333 { return m_BackCoolBarSSThick ;}
double DDEcalBarrelNewAlgo::backCoolBarThick ( ) const
inline

Definition at line 330 of file DDEcalBarrelNewAlgo.h.

References m_BackCoolBarThick.

Referenced by execute().

330 { return m_BackCoolBarThick ;}
DDMaterial DDEcalBarrelNewAlgo::backCoolBarWaMat ( ) const
inline

Definition at line 337 of file DDEcalBarrelNewAlgo.h.

References ddmat(), and m_BackCoolBarWaMat.

Referenced by execute().

337 { return ddmat(m_BackCoolBarWaMat) ;}
DDMaterial ddmat(const std::string &s) const
DDName DDEcalBarrelNewAlgo::backCoolBarWaName ( ) const
inline

Definition at line 335 of file DDEcalBarrelNewAlgo.h.

References ddname(), and m_BackCoolBarWaName.

Referenced by execute().

335 { return ddname(m_BackCoolBarWaName);}
DDName ddname(const std::string &s) const
double DDEcalBarrelNewAlgo::backCoolBarWaThick ( ) const
inline

Definition at line 336 of file DDEcalBarrelNewAlgo.h.

References m_BackCoolBarWaThick.

Referenced by execute().

336 { return m_BackCoolBarWaThick ;}
double DDEcalBarrelNewAlgo::backCoolBarWidth ( ) const
inline

Definition at line 325 of file DDEcalBarrelNewAlgo.h.

References m_BackCoolBarWidth.

Referenced by execute().

325 { return m_BackCoolBarWidth ;}
double DDEcalBarrelNewAlgo::backCoolHere ( ) const
inline

Definition at line 324 of file DDEcalBarrelNewAlgo.h.

References m_BackCoolHere.

Referenced by execute().

324 { return m_BackCoolHere ; }
DDMaterial DDEcalBarrelNewAlgo::backCoolMat ( ) const
inline

Definition at line 327 of file DDEcalBarrelNewAlgo.h.

References ddmat(), and m_BackCoolMat.

327 { return ddmat(m_BackCoolMat) ;}
DDMaterial ddmat(const std::string &s) const
double DDEcalBarrelNewAlgo::backCoolTankHere ( ) const
inline

Definition at line 351 of file DDEcalBarrelNewAlgo.h.

References m_BackCoolTankHere.

Referenced by execute().

351 { return m_BackCoolTankHere ; }
DDMaterial DDEcalBarrelNewAlgo::backCoolTankMat ( ) const
inline

Definition at line 355 of file DDEcalBarrelNewAlgo.h.

References ddmat(), and m_BackCoolTankMat.

Referenced by execute().

355 { return ddmat(m_BackCoolTankMat) ;}
DDMaterial ddmat(const std::string &s) const
const std::string& DDEcalBarrelNewAlgo::backCoolTankName ( ) const
inline

Definition at line 352 of file DDEcalBarrelNewAlgo.h.

References m_BackCoolTankName.

Referenced by execute().

352 { return m_BackCoolTankName ;}
double DDEcalBarrelNewAlgo::backCoolTankThick ( ) const
inline

Definition at line 354 of file DDEcalBarrelNewAlgo.h.

References m_BackCoolTankThick.

Referenced by execute().

354 { return m_BackCoolTankThick ;}
DDMaterial DDEcalBarrelNewAlgo::backCoolTankWaMat ( ) const
inline

Definition at line 358 of file DDEcalBarrelNewAlgo.h.

References ddmat(), and m_BackCoolTankWaMat.

Referenced by execute().

358 { return ddmat(m_BackCoolTankWaMat) ;}
DDMaterial ddmat(const std::string &s) const
const std::string& DDEcalBarrelNewAlgo::backCoolTankWaName ( ) const
inline

Definition at line 356 of file DDEcalBarrelNewAlgo.h.

References m_BackCoolTankWaName.

Referenced by execute().

356 { return m_BackCoolTankWaName ;}
std::string m_BackCoolTankWaName
double DDEcalBarrelNewAlgo::backCoolTankWaWidth ( ) const
inline

Definition at line 357 of file DDEcalBarrelNewAlgo.h.

References m_BackCoolTankWaWidth.

Referenced by execute().

double DDEcalBarrelNewAlgo::backCoolTankWidth ( ) const
inline

Definition at line 353 of file DDEcalBarrelNewAlgo.h.

References m_BackCoolTankWidth.

Referenced by execute().

353 { return m_BackCoolTankWidth ;}
double DDEcalBarrelNewAlgo::backCoolVFEHere ( ) const
inline

Definition at line 338 of file DDEcalBarrelNewAlgo.h.

References m_BackCoolVFEHere.

Referenced by execute().

338 { return m_BackCoolVFEHere ; }
DDMaterial DDEcalBarrelNewAlgo::backCoolVFEMat ( ) const
inline

Definition at line 340 of file DDEcalBarrelNewAlgo.h.

References ddmat(), and m_BackCoolVFEMat.

Referenced by execute().

340 { return ddmat(m_BackCoolVFEMat) ;}
DDMaterial ddmat(const std::string &s) const
DDName DDEcalBarrelNewAlgo::backCoolVFEName ( ) const
inline

Definition at line 339 of file DDEcalBarrelNewAlgo.h.

References ddname(), and m_BackCoolVFEName.

Referenced by execute().

339 { return ddname(m_BackCoolVFEName) ;}
DDName ddname(const std::string &s) const
double DDEcalBarrelNewAlgo::backHere ( ) const
inline

Definition at line 261 of file DDEcalBarrelNewAlgo.h.

References m_BackHere.

Referenced by execute().

261 { return m_BackHere ; }
double DDEcalBarrelNewAlgo::backMiscHere ( ) const
inline

Definition at line 309 of file DDEcalBarrelNewAlgo.h.

References m_BackMiscHere.

Referenced by execute().

309 { return m_BackMiscHere ; }
double DDEcalBarrelNewAlgo::backPipeHere ( ) const
inline

Definition at line 303 of file DDEcalBarrelNewAlgo.h.

References m_BackPipeHere.

Referenced by execute().

303 { return m_BackPipeHere ; }
DDMaterial DDEcalBarrelNewAlgo::backPipeMat ( ) const
inline

Definition at line 307 of file DDEcalBarrelNewAlgo.h.

References ddmat(), and m_BackPipeMat.

Referenced by execute().

307 { return ddmat( m_BackPipeMat ) ; }
DDMaterial ddmat(const std::string &s) const
const std::string& DDEcalBarrelNewAlgo::backPipeName ( ) const
inline

Definition at line 304 of file DDEcalBarrelNewAlgo.h.

References m_BackPipeName.

Referenced by execute().

304 { return m_BackPipeName ; }
DDMaterial DDEcalBarrelNewAlgo::backPipeWaterMat ( ) const
inline

Definition at line 308 of file DDEcalBarrelNewAlgo.h.

References ddmat(), and m_BackPipeWaterMat.

Referenced by execute().

308 { return ddmat( m_BackPipeWaterMat ) ; }
DDMaterial ddmat(const std::string &s) const
DDMaterial DDEcalBarrelNewAlgo::backPlate2Mat ( ) const
inline

Definition at line 281 of file DDEcalBarrelNewAlgo.h.

References ddmat(), and m_BackPlate2Mat.

Referenced by execute().

281 { return ddmat( m_BackPlate2Mat ) ; }
DDMaterial ddmat(const std::string &s) const
DDName DDEcalBarrelNewAlgo::backPlate2Name ( ) const
inline

Definition at line 279 of file DDEcalBarrelNewAlgo.h.

References ddname(), and m_BackPlate2Name.

Referenced by execute().

279 { return ddname( m_BackPlate2Name ) ; }
DDName ddname(const std::string &s) const
double DDEcalBarrelNewAlgo::backPlate2Thick ( ) const
inline

Definition at line 280 of file DDEcalBarrelNewAlgo.h.

References m_BackPlate2Thick.

Referenced by execute().

280 { return m_BackPlate2Thick ; }
double DDEcalBarrelNewAlgo::backPlateHere ( ) const
inline

Definition at line 274 of file DDEcalBarrelNewAlgo.h.

References m_BackPlateHere.

Referenced by execute().

274 { return m_BackPlateHere ; }
double DDEcalBarrelNewAlgo::backPlateLength ( ) const
inline

Definition at line 275 of file DDEcalBarrelNewAlgo.h.

References m_BackPlateLength.

Referenced by execute().

275 { return m_BackPlateLength ; }
DDMaterial DDEcalBarrelNewAlgo::backPlateMat ( ) const
inline

Definition at line 278 of file DDEcalBarrelNewAlgo.h.

References ddmat(), and m_BackPlateMat.

Referenced by execute().

278 { return ddmat( m_BackPlateMat ) ; }
DDMaterial ddmat(const std::string &s) const
DDName DDEcalBarrelNewAlgo::backPlateName ( ) const
inline

Definition at line 273 of file DDEcalBarrelNewAlgo.h.

References ddname(), and m_BackPlateName.

Referenced by execute().

273 { return ddname( m_BackPlateName ) ; }
DDName ddname(const std::string &s) const
double DDEcalBarrelNewAlgo::backPlateThick ( ) const
inline

Definition at line 276 of file DDEcalBarrelNewAlgo.h.

References m_BackPlateThick.

Referenced by execute().

276 { return m_BackPlateThick ; }
double DDEcalBarrelNewAlgo::backPlateWidth ( ) const
inline

Definition at line 277 of file DDEcalBarrelNewAlgo.h.

References m_BackPlateWidth.

Referenced by execute().

277 { return m_BackPlateWidth ; }
double DDEcalBarrelNewAlgo::backSideAngle ( ) const
inline

Definition at line 271 of file DDEcalBarrelNewAlgo.h.

References m_BackSideAngle.

Referenced by execute().

271 { return m_BackSideAngle ; }
double DDEcalBarrelNewAlgo::backSideHeight ( ) const
inline

Definition at line 267 of file DDEcalBarrelNewAlgo.h.

References m_BackSideHeight.

Referenced by execute().

267 { return m_BackSideHeight ; }
double DDEcalBarrelNewAlgo::backSideHere ( ) const
inline

Definition at line 265 of file DDEcalBarrelNewAlgo.h.

References m_BackSideHere.

Referenced by execute().

265 { return m_BackSideHere ; }
double DDEcalBarrelNewAlgo::backSideLength ( ) const
inline

Definition at line 266 of file DDEcalBarrelNewAlgo.h.

References m_BackSideLength.

Referenced by execute().

266 { return m_BackSideLength ; }
DDMaterial DDEcalBarrelNewAlgo::backSideMat ( ) const
inline

Definition at line 272 of file DDEcalBarrelNewAlgo.h.

References ddmat(), and m_BackSideMat.

Referenced by execute().

272 { return ddmat( m_BackSideMat ) ; }
DDMaterial ddmat(const std::string &s) const
DDName DDEcalBarrelNewAlgo::backSideName ( ) const
inline

Definition at line 264 of file DDEcalBarrelNewAlgo.h.

References ddname(), and m_BackSideName.

Referenced by execute().

264 { return ddname( m_BackSideName ) ; }
DDName ddname(const std::string &s) const
double DDEcalBarrelNewAlgo::backSideWidth ( ) const
inline

Definition at line 268 of file DDEcalBarrelNewAlgo.h.

References m_BackSideWidth.

Referenced by execute().

268 { return m_BackSideWidth ; }
double DDEcalBarrelNewAlgo::backSideYOff1 ( ) const
inline

Definition at line 269 of file DDEcalBarrelNewAlgo.h.

References m_BackSideYOff1.

Referenced by execute().

269 { return m_BackSideYOff1 ; }
double DDEcalBarrelNewAlgo::backSideYOff2 ( ) const
inline

Definition at line 270 of file DDEcalBarrelNewAlgo.h.

References m_BackSideYOff2.

Referenced by execute().

270 { return m_BackSideYOff2 ; }
DDMaterial DDEcalBarrelNewAlgo::backVFEMat ( ) const
inline

Definition at line 342 of file DDEcalBarrelNewAlgo.h.

References ddmat(), and m_BackVFEMat.

Referenced by execute().

342 { return ddmat(m_BackVFEMat) ;}
DDMaterial ddmat(const std::string &s) const
DDName DDEcalBarrelNewAlgo::backVFEName ( ) const
inline

Definition at line 341 of file DDEcalBarrelNewAlgo.h.

References ddname(), and m_BackVFEName.

Referenced by execute().

341 { return ddname(m_BackVFEName) ;}
DDName ddname(const std::string &s) const
double DDEcalBarrelNewAlgo::backXOff ( ) const
inline

Definition at line 262 of file DDEcalBarrelNewAlgo.h.

References m_BackXOff.

Referenced by execute().

262 { return m_BackXOff ; }
double DDEcalBarrelNewAlgo::backYOff ( ) const
inline

Definition at line 263 of file DDEcalBarrelNewAlgo.h.

References m_BackYOff.

Referenced by execute().

263 { return m_BackYOff ; }
double DDEcalBarrelNewAlgo::barHere ( ) const
inline

Definition at line 64 of file DDEcalBarrelNewAlgo.h.

References m_BarHere.

Referenced by execute().

64 { return m_BarHere ; }
DDMaterial DDEcalBarrelNewAlgo::barMat ( ) const
inline

Definition at line 54 of file DDEcalBarrelNewAlgo.h.

References ddmat(), and m_BarMat.

Referenced by execute().

54 { return ddmat( m_BarMat ) ; }
DDMaterial ddmat(const std::string &s) const
DDName DDEcalBarrelNewAlgo::barName ( ) const
inline

Definition at line 53 of file DDEcalBarrelNewAlgo.h.

References ddname(), and m_BarName.

Referenced by execute().

53 { return ddname( m_BarName ) ; }
DDName ddname(const std::string &s) const
double DDEcalBarrelNewAlgo::barPhiHi ( ) const
inline

Definition at line 63 of file DDEcalBarrelNewAlgo.h.

References m_BarPhiHi.

Referenced by execute().

63 { return m_BarPhiHi ; }
double DDEcalBarrelNewAlgo::barPhiLo ( ) const
inline

Definition at line 62 of file DDEcalBarrelNewAlgo.h.

References m_BarPhiLo.

Referenced by execute().

62 { return m_BarPhiLo ; }
DDMaterial DDEcalBarrelNewAlgo::bsiMat ( ) const
inline

Definition at line 152 of file DDEcalBarrelNewAlgo.h.

References ddmat(), and m_BSiMat.

Referenced by execute().

152 { return ddmat(m_BSiMat) ; }
DDMaterial ddmat(const std::string &s) const
DDName DDEcalBarrelNewAlgo::bsiName ( ) const
inline

Definition at line 151 of file DDEcalBarrelNewAlgo.h.

References ddname(), and m_BSiName.

Referenced by execute().

151 { return ddname(m_BSiName) ; }
DDName ddname(const std::string &s) const
double DDEcalBarrelNewAlgo::bsiThick ( ) const
inline

Definition at line 155 of file DDEcalBarrelNewAlgo.h.

References m_BSiThick.

Referenced by execute().

155 { return m_BSiThick; }
double DDEcalBarrelNewAlgo::bsiXSize ( ) const
inline

Definition at line 153 of file DDEcalBarrelNewAlgo.h.

References m_BSiXSize.

Referenced by execute().

153 { return m_BSiXSize ; }
double DDEcalBarrelNewAlgo::bsiYSize ( ) const
inline

Definition at line 154 of file DDEcalBarrelNewAlgo.h.

References m_BSiYSize.

Referenced by execute().

154 { return m_BSiYSize ; }
double DDEcalBarrelNewAlgo::capHere ( ) const
inline

Definition at line 139 of file DDEcalBarrelNewAlgo.h.

References m_capHere.

Referenced by execute().

139 { return m_capHere ; }
DDMaterial DDEcalBarrelNewAlgo::capMat ( ) const
inline

Definition at line 140 of file DDEcalBarrelNewAlgo.h.

References ddmat(), and m_capMat.

Referenced by execute().

140 { return ddmat(m_capMat) ; }
DDMaterial ddmat(const std::string &s) const
DDName DDEcalBarrelNewAlgo::capName ( ) const
inline

Definition at line 138 of file DDEcalBarrelNewAlgo.h.

References ddname(), and m_capName.

Referenced by execute().

138 { return ddname(m_capName) ; }
DDName ddname(const std::string &s) const
double DDEcalBarrelNewAlgo::capThick ( ) const
inline

Definition at line 143 of file DDEcalBarrelNewAlgo.h.

References m_capThick.

Referenced by execute().

143 { return m_capThick; }
double DDEcalBarrelNewAlgo::capXSize ( ) const
inline

Definition at line 141 of file DDEcalBarrelNewAlgo.h.

References m_capXSize.

Referenced by execute().

141 { return m_capXSize ; }
double DDEcalBarrelNewAlgo::capYSize ( ) const
inline

Definition at line 142 of file DDEcalBarrelNewAlgo.h.

References m_capYSize.

Referenced by execute().

142 { return m_capYSize ; }
DDMaterial DDEcalBarrelNewAlgo::cerMat ( ) const
inline

Definition at line 146 of file DDEcalBarrelNewAlgo.h.

References ddmat(), and m_CERMat.

Referenced by execute().

146 { return ddmat(m_CERMat) ; }
DDMaterial ddmat(const std::string &s) const
DDName DDEcalBarrelNewAlgo::cerName ( ) const
inline

Definition at line 145 of file DDEcalBarrelNewAlgo.h.

References ddname(), and m_CERName.

Referenced by execute().

145 { return ddname(m_CERName) ; }
DDName ddname(const std::string &s) const
double DDEcalBarrelNewAlgo::cerThick ( ) const
inline

Definition at line 149 of file DDEcalBarrelNewAlgo.h.

References m_CERThick.

Referenced by execute().

149 { return m_CERThick; }
double DDEcalBarrelNewAlgo::cerXSize ( ) const
inline

Definition at line 147 of file DDEcalBarrelNewAlgo.h.

References m_CERXSize.

Referenced by execute().

147 { return m_CERXSize ; }
double DDEcalBarrelNewAlgo::cerYSize ( ) const
inline

Definition at line 148 of file DDEcalBarrelNewAlgo.h.

References m_CERYSize.

Referenced by execute().

148 { return m_CERYSize ; }
double DDEcalBarrelNewAlgo::clrFrAlv ( ) const
inline

Definition at line 120 of file DDEcalBarrelNewAlgo.h.

References m_ClrFrAlv.

Referenced by execute().

120 { return m_ClrFrAlv ; }
DDMaterial DDEcalBarrelNewAlgo::clrMat ( ) const
inline

Definition at line 135 of file DDEcalBarrelNewAlgo.h.

References ddmat(), and m_ClrMat.

Referenced by execute().

135 { return ddmat( m_ClrMat ) ; }
DDMaterial ddmat(const std::string &s) const
const std::string& DDEcalBarrelNewAlgo::clrName ( ) const
inline

Definition at line 130 of file DDEcalBarrelNewAlgo.h.

References m_ClrName.

Referenced by execute().

130 { return m_ClrName ; }
double DDEcalBarrelNewAlgo::clrReAlv ( ) const
inline

Definition at line 124 of file DDEcalBarrelNewAlgo.h.

References m_ClrReAlv.

Referenced by execute().

124 { return m_ClrReAlv ; }
double DDEcalBarrelNewAlgo::clrThAlv ( ) const
inline

Definition at line 115 of file DDEcalBarrelNewAlgo.h.

References m_ClrThAlv.

Referenced by execute().

115 { return m_ClrThAlv ; }
DDMaterial DDEcalBarrelNewAlgo::cryMat ( ) const
inline

Definition at line 134 of file DDEcalBarrelNewAlgo.h.

References ddmat(), and m_CryMat.

Referenced by execute().

134 { return ddmat( m_CryMat ) ; }
DDMaterial ddmat(const std::string &s) const
const std::string& DDEcalBarrelNewAlgo::cryName ( ) const
inline

Definition at line 129 of file DDEcalBarrelNewAlgo.h.

References m_CryName.

Referenced by execute().

129 { return m_CryName ; }
DDMaterial DDEcalBarrelNewAlgo::ddmat ( const std::string &  s) const
DDName DDEcalBarrelNewAlgo::ddname ( const std::string &  s) const

Definition at line 2876 of file DDEcalBarrelNewAlgo.cc.

References DDSplit(), m_idNameSpace, and groupFilesInBlocks::temp.

Referenced by aglName(), andName(), apdName(), atjName(), backCoolBarName(), backCoolBarSSName(), backCoolBarWaName(), backCoolVFEName(), backPlate2Name(), backPlateName(), backSideName(), backVFEName(), barName(), bsiName(), capName(), cerName(), ddmat(), execute(), fawName(), grEdgeSlotName(), gridName(), hawRName(), ilyBndlName(), ilyDiffName(), ilyFanOutName(), ilyFEMName(), ilyPTMName(), mBManifName(), myrot(), mytrap(), patchPanelName(), pincerBlkName(), pincerCutName(), pincerEnvName(), pincerRodName(), pincerShim1Name(), pincerShim2Name(), sglName(), spmCutName(), spmName(), and spmSideName().

2877 {
2878  const pair<std::string,std::string> temp ( DDSplit(s) ) ;
2879  if ( temp.second.empty() ) {
2880  return DDName( temp.first,
2881  m_idNameSpace ) ;
2882  } else {
2883  return DDName( temp.first, temp.second );
2884  }
2885 }
DDName is used to identify DDD entities uniquely.
Definition: DDName.h:15
std::pair< std::string, std::string > DDSplit(const std::string &n)
split into (name,namespace), separator = &#39;:&#39;
Definition: DDSplit.cc:3
double DDEcalBarrelNewAlgo::dryAirTubeHere ( ) const
inline

Definition at line 363 of file DDEcalBarrelNewAlgo.h.

References m_DryAirTubeHere.

Referenced by execute().

363 { return m_DryAirTubeHere ; }
double DDEcalBarrelNewAlgo::dryAirTubeInnDiam ( ) const
inline

Definition at line 366 of file DDEcalBarrelNewAlgo.h.

References m_DryAirTubeInnDiam.

Referenced by execute().

366 { return m_DryAirTubeInnDiam ;}
DDMaterial DDEcalBarrelNewAlgo::dryAirTubeMat ( ) const
inline

Definition at line 368 of file DDEcalBarrelNewAlgo.h.

References ddmat(), and m_DryAirTubeMat.

Referenced by execute().

368 { return ddmat(m_DryAirTubeMat) ;}
DDMaterial ddmat(const std::string &s) const
const std::string& DDEcalBarrelNewAlgo::dryAirTubeName ( ) const
inline

Definition at line 364 of file DDEcalBarrelNewAlgo.h.

References m_DryAirTubeName.

Referenced by execute().

364 { return m_DryAirTubeName ;}
double DDEcalBarrelNewAlgo::dryAirTubeOutDiam ( ) const
inline

Definition at line 367 of file DDEcalBarrelNewAlgo.h.

References m_DryAirTubeOutDiam.

Referenced by execute().

367 { return m_DryAirTubeOutDiam ;}
void DDEcalBarrelNewAlgo::execute ( DDCompactView cpv)
override

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!! Begin Back Cover Plate !!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!! End Back Cover Plate !!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!! Begin Back Side Plates !!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!! End Back Side Plates !!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!! Begin Mother Board Cooling Manifold Setup !!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!! End Mother Board Cooling Manifold Setup !!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!! Begin Loop over Grilles & MB Cooling Manifold !!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!! End Loop over Grilles & MB Cooling Manifold !!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!! Begin Cooling Bar Setup !!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!! End Cooling Bar Setup !!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!! Begin VFE Card Setup !!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!! End VFE Card Setup !!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!! Begin Cooling Bar + VFE Setup !!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!! End Cooling Bar + VFE Setup !!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!! Begin Placement of Readout & Cooling by Module !!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!! Begin Back Water Pipes !!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!! End Back Water Pipes !!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!! Begin Placement of Cooling + VFE Cards !!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!! End Placement of Cooling + VFE Cards !!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!! End Placement of Readout & Cooling by Module !!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!! Begin Patch Panel !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!! End Patch Panel !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!! Begin Pincers !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!! End Pincers !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Definition at line 742 of file DDEcalBarrelNewAlgo.cc.

References EcalTrapezoidParameters::a(), EcalTrapezoidParameters::A(), aglMat(), aglName(), aglThick(), andMat(), andName(), andThick(), apdMat(), apdName(), apdSide(), apdThick(), apdX1(), apdX2(), apdZ(), atjMat(), atjName(), atjThick(), EcalTrapezoidParameters::b(), backBracketHeight(), backBracketMat(), backBracketName(), backCBStdSep(), backCoolBarHeight(), backCoolBarHere(), backCoolBarMat(), backCoolBarName(), backCoolBarSSMat(), backCoolBarSSName(), backCoolBarSSThick(), backCoolBarThick(), backCoolBarWaMat(), backCoolBarWaName(), backCoolBarWaThick(), backCoolBarWidth(), backCoolHere(), backCoolTankHere(), backCoolTankMat(), backCoolTankName(), backCoolTankThick(), backCoolTankWaMat(), backCoolTankWaName(), backCoolTankWaWidth(), backCoolTankWidth(), backCoolVFEHere(), backCoolVFEMat(), backCoolVFEName(), backHere(), backMiscHere(), backPipeHere(), backPipeMat(), backPipeName(), backPipeWaterMat(), backPlate2Mat(), backPlate2Name(), backPlate2Thick(), backPlateHere(), backPlateLength(), backPlateMat(), backPlateName(), backPlateThick(), backPlateWidth(), backSideAngle(), backSideHeight(), backSideHere(), backSideLength(), backSideMat(), backSideName(), backSideWidth(), backSideYOff1(), backSideYOff2(), backVFEMat(), backVFEName(), backXOff(), backYOff(), barHere(), barMat(), barName(), barPhiHi(), barPhiLo(), pfBoostedDoubleSVAK8TagInfos_cfi::beta, EcalTrapezoidParameters::bl1(), reco::HaloData::both, DDSolidFactory::box(), bsiMat(), bsiName(), bsiThick(), bsiXSize(), bsiYSize(), capHere(), capMat(), capName(), capThick(), capXSize(), capYSize(), cerMat(), cerName(), cerThick(), cerXSize(), cerYSize(), clrFrAlv(), clrMat(), clrName(), clrReAlv(), clrThAlv(), funct::cos(), cryMat(), cryName(), ddmat(), ddname(), delta, dryAirTubeHere(), dryAirTubeInnDiam(), dryAirTubeMat(), dryAirTubeName(), dryAirTubeOutDiam(), EcalTrapezoidParameters::dz(), fawDelPhi(), fawHere(), fawName(), fawPhiOff(), fawPhiRot(), fawRadOff(), CustomPhysics_cfi::gamma, grEdgeSlotHeight(), grEdgeSlotHere(), grEdgeSlotMat(), grEdgeSlotName(), grEdgeSlotWidth(), gridHere(), gridMat(), gridName(), gridThick(), grilleHere(), grilleMat(), grilleName(), grilleThick(), grilleZSpace(), grMidSlotHere(), grMidSlotMat(), grMidSlotName(), grMidSlotWidth(), grMidSlotXOff(), EcalTrapezoidParameters::h(), EcalTrapezoidParameters::H(), EcalTrapezoidParameters::h1(), hawRCutDelY(), hawRCutY(), hawRCutZ(), hawRHBIG(), hawRhsml(), hawRName(), hawYOffCry(), ilyBndlLength(), ilyBndlMat(), ilyBndlName(), ilyBndlOff(), ilyDelPhi(), ilyDiffLength(), ilyDiffMat(), ilyDiffName(), ilyDiffOff(), ilyFanOutHeight(), ilyFanOutHere(), ilyFanOutLength(), ilyFanOutMat(), ilyFanOutName(), ilyFanOutWidth(), ilyFEMHeight(), ilyFEMLength(), ilyFEMMat(), ilyFEMName(), ilyFEMWidth(), ilyHere(), ilyName(), ilyPhiLow(), ilyPipeHere(), ilyPipeID(), ilyPipeMat(), ilyPipeName(), ilyPipeOD(), ilyPTMHeight(), ilyPTMHere(), ilyPTMLength(), ilyPTMMat(), ilyPTMName(), ilyPTMWidth(), EcalTrapezoidParameters::L(), LogDebug, M_PI_2, m_SpmName, mBCoolTubeHere(), mBCoolTubeInnDiam(), mBCoolTubeMat(), mBCoolTubeName(), mBCoolTubeNum(), mBCoolTubeOutDiam(), mBLyrHere(), mBManifHere(), mBManifInnDiam(), mBManifMat(), mBManifName(), mBManifOutDiam(), myrot(), mytrap(), DDName::name(), dataset::name, DDBase< N, C >::name(), nCryPerAlvEta(), nCryTypes(), nFawPerSupm(), nomCryDimAF(), nomCryDimLZ(), DDSolid::parameters(), class-composition::parent, patchPanelHere(), patchPanelName(), phi, pincerBlkLength(), pincerBlkMat(), pincerBlkName(), pincerCutHeight(), pincerCutMat(), pincerCutName(), pincerCutWidth(), pincerEnvHeight(), pincerEnvLength(), pincerEnvMat(), pincerEnvName(), pincerEnvWidth(), pincerRodHere(), pincerRodMat(), pincerRodName(), pincerShim1Name(), pincerShim1Width(), pincerShim2Name(), pincerShim2Width(), pincerShimHeight(), pincerShimMat(), DDSolidFactory::polycone(), DDCompactView::position(), diffTwoXMLs::r1, TCMET_cfi::radius, sglMat(), sglName(), sglThick(), funct::sin(), findQualityFiles::size, spmCutName(), spmCutRM(), spmCutRP(), spmCutShow(), spmCutThick(), spmDelPhi(), spmExpThick(), spmExpWide(), spmExpYOff(), spmLowPhi(), spmMat(), spmName(), spmNPerHalf(), spmPhiOff(), spmSideHigh(), spmSideMat(), spmSideName(), spmSideThick(), spmSideYOffM(), spmSideYOffP(), mathSSE::sqrt(), AlCaHLTBitMon_QueryRunRegistry::string, DDSolidFactory::subtraction(), theta(), DDSolidFactory::tubs(), underAF(), underAR(), underBF(), underBR(), underCF(), underLZ(), vecBackCoolName(), vecBackCoolNPerSec(), vecBackCoolNSec(), vecBackCoolSecSep(), vecBackMiscMat(), vecBackMiscName(), vecBackMiscThick(), vecBackPipeDiam(), vecBackPipeThick(), vecBackVFELyrMat(), vecBackVFELyrName(), vecBackVFELyrThick(), vecBarRMax(), vecBarRMin(), vecBarRota(), vecBarRota2(), vecBarRota3(), vecBarTran(), vecBarZPts(), vecGapAlvEta(), vecGrilleHeight(), vecGrilleZOff(), vecGrMidSlotHeight(), vecIlyFanOutPhi(), vecIlyFanOutZ(), vecIlyFEMPhi(), vecIlyFEMZ(), vecIlyMat(), vecIlyPipeLength(), vecIlyPipePhi(), vecIlyPipeType(), vecIlyPipeZ(), vecIlyPTMPhi(), vecIlyPTMZ(), vecIlyThick(), vecMBLyrMat(), vecMBLyrName(), vecMBLyrThick(), vecNomCryDimAR(), vecNomCryDimBF(), vecNomCryDimBR(), vecNomCryDimCF(), vecNomCryDimCR(), vecPatchPanelMat(), vecPatchPanelNames(), vecPatchPanelThick(), vecPincerEnvZOff(), vecPincerRodAzimuth(), vecSpmBRota(), vecSpmBTran(), vecSpmCutTM(), vecSpmCutTP(), vecSpmHere(), vecSpmRMax(), vecSpmRMin(), vecSpmRota(), vecSpmTran(), vecSpmZPts(), EcalTrapezoidParameters::vertexList(), wallFrAlv(), wallMat(), wallName(), wallReAlv(), wallThAlv(), web(), wrapFrAlv(), wrapMat(), wrapName(), wrapReAlv(), wrapThAlv(), x, geometryCSVtoXML::xx, y, geometryCSVtoXML::yy, z, and geometryCSVtoXML::zz.

743 {
744  LogDebug("EcalGeom") << "******** DDEcalBarrelAlgo execute!" << std::endl ;
745 
746  if( barHere() != 0 )
747  {
748  const unsigned int copyOne (1) ;
749  const unsigned int copyTwo (2) ;
750  // Barrel parent volume----------------------------------------------------------
751  cpv.position( DDLogicalPart( barName(), barMat(),
753  barName(), barPhiLo(), ( barPhiHi() - barPhiLo() ),
754  vecBarZPts(), vecBarRMin(), vecBarRMax())),
755  parent().name() ,
756  copyOne,
758  vecBarTran()[1],
759  vecBarTran()[2]),
760  myrot(barName().name()+"Rot",
761  Rota(Vec3(vecBarRota3()[0],
762  vecBarRota3()[1],
763  vecBarRota3()[2]),
764  vecBarRota3()[3])*
765  Rota(Vec3(vecBarRota2()[0],
766  vecBarRota2()[1],
767  vecBarRota2()[2]),
768  vecBarRota2()[3])*
769  Rota(Vec3(vecBarRota()[0],
770  vecBarRota()[1],
771  vecBarRota()[2]),
772  vecBarRota()[3]) ) ) ;
773  // End Barrel parent volume----------------------------------------------------------
774 
775 
776  // Supermodule parent------------------------------------------------------------
777 
778  const DDName spmcut1ddname ( ( 0 != spmCutShow() ) ?
779  spmName() : ddname( m_SpmName + "CUT1" ) ) ;
780  const DDSolid ddspm ( DDSolidFactory::polycone(
781  spmcut1ddname,
782  spmLowPhi(), spmDelPhi(),
783  vecSpmZPts(), vecSpmRMin(), vecSpmRMax())) ;
784 
785  const unsigned int indx ( vecSpmRMax().size()/2 ) ;
786 
787 
788  // Deal with the cut boxes first
789  const DDSolid spmCutBox ( DDSolidFactory::box(
790  spmCutName(),
791  1.05*(vecSpmRMax()[indx] - vecSpmRMin()[indx])/2.,
792  spmCutThick()/2.,
793  fabs( vecSpmZPts().back() - vecSpmZPts().front() )/2.+1*mm) ) ;
794  const std::vector<double>& cutBoxParms ( spmCutBox.parameters() ) ;
795  const DDLogicalPart spmCutLog ( spmCutName(), spmMat(), spmCutBox ) ;
796 
797  // Now the expansion box
798  const double xExp ( spmExpThick()/2. ) ;
799  const double yExp ( spmExpWide()/2. ) ;
800  const double zExp ( fabs( vecSpmZPts().back() -
801  vecSpmZPts().front() )/2.) ;
802  const DDName expName ( m_SpmName + "EXP" ) ;
803  const DDSolid spmExpBox ( DDSolidFactory::box(
804  expName ,
805  xExp ,
806  yExp ,
807  zExp )) ;
808  const DDTranslation expTra ( vecSpmRMax().back() - xExp, spmExpYOff(),
809  vecSpmZPts().front() + zExp ) ;
810  const DDLogicalPart expLog ( expName, spmMat(), spmExpBox ) ;
811 
812 /* const DDName unionName ( ddname( m_SpmName + "UNI" ) ) ;
813  if( 0 != spmCutShow() )
814  {
815  cpv.position( expLog, spmName(), copyOne, expTra, DDRotation() ) ;
816  }
817  else
818  {
819  const DDSolid unionSolid ( DDSolidFactory::unionSolid(
820  unionName,
821  spmcut1ddname, expName,
822  expTra, DDRotation() ) ) ;
823  }*/
824 
825 
826  // Supermodule side platess
827  const DDSolid sideSolid ( DDSolidFactory::box(
828  spmSideName(),
829  spmSideHigh()/2.,
830  spmSideThick()/2.,
831  fabs( vecSpmZPts()[1] - vecSpmZPts()[0] )/2.) ) ;
832  const std::vector<double>& sideParms ( sideSolid.parameters() ) ;
833  const DDLogicalPart sideLog ( spmSideName(), spmSideMat(), sideSolid ) ;
834 
835  DDSolid temp1 ;
836  DDSolid temp2 ;
837  for( unsigned int icopy(1); icopy <= 2; ++icopy )
838  {
839  const std::vector<double>& tvec ( 1==icopy ? vecSpmCutTM() : vecSpmCutTP() ) ;
840  const double rang ( 1==icopy ? spmCutRM() : spmCutRP() ) ;
841 
842  const Tl3D tr ( tvec[0], tvec[1], tvec[2] );
843  const RoZ3D ro ( rang ) ;
844  const Tf3D alltrot (
845  RoZ3D( 1==icopy ? spmLowPhi() : spmLowPhi()+spmDelPhi() )*
846  Tl3D( ( vecSpmRMax()[indx]+vecSpmRMin()[indx])/2.,
847  0,
848  (vecSpmZPts().front()+ vecSpmZPts().back())/2.)*
849  tr*ro) ;
850 
851  const DDRotation ddrot ( myrot(spmCutName().name() +
852  std::to_string(icopy),
853  alltrot.getRotation() ) ) ;
854  const DDTranslation ddtra ( alltrot.getTranslation() ) ;
855 
856 
857  const Tl3D trSide ( tvec[0],
858  tvec[1] + ( 1==icopy ? 1. : -1. )*( cutBoxParms[1]+sideParms[1] )
859  + ( 1==icopy ? spmSideYOffM() : spmSideYOffP() ),
860  tvec[2] );
861  const RoZ3D roSide ( rang ) ;
862  const Tf3D sideRot (
863  RoZ3D( 1==icopy ? spmLowPhi() : spmLowPhi()+spmDelPhi() )*
864  Tl3D( vecSpmRMin().front() + sideParms[0] ,
865  0,
866  vecSpmZPts().front()+ sideParms[2] )*
867  trSide*roSide) ;
868 
869  const DDRotation sideddrot ( myrot(spmSideName().name() +
870  std::to_string(icopy),
871  sideRot.getRotation() ) ) ;
872  const DDTranslation sideddtra ( sideRot.getTranslation() ) ;
873 
874  cpv.position( sideLog,
875  spmName(),
876  icopy,
877  sideddtra,
878  sideddrot ) ;
879 
880 
881  if( 0 != spmCutShow() ) // do this if we are "showing" the boxes
882  {
883  cpv.position( spmCutLog,
884  spmName(),
885  icopy,
886  ddtra,
887  ddrot ) ;
888  }
889  else // do this if we are subtracting the boxes
890  {
891  if( 1 == icopy )
892  {
893  temp1 = DDSolidFactory::subtraction( DDName( m_SpmName+"_T1" ),
894  spmcut1ddname, spmCutBox,
895  ddtra, ddrot ) ;
896  }
897  else
898  {
900  temp1, spmCutBox,
901  ddtra, ddrot ) ;
902  }
903  }
904  }
905 
906  const DDLogicalPart spmLog (spmName(), spmMat(),
907  ((0 != spmCutShow()) ? ddspm : temp2) ) ;
908 
909  const double dphi ( 360.*deg/(1.*spmNPerHalf() ) ) ;
910  for( unsigned int iphi (0); iphi<2*spmNPerHalf() ; ++iphi )
911  {
912  const double phi ( iphi*dphi + spmPhiOff() ) ; //- 0.000130/deg ) ;
913 
914  // this base rotation includes the base translation & rotation
915  // plus flipping for the negative z hemisphere, plus
916  // the phi rotation for this module
917  const Tf3D rotaBase ( RoZ3D( phi )*
918  ( iphi < spmNPerHalf() ? Ro3D() :
919  RoX3D( 180.*deg ) )*
920  Ro3D( vecSpmBRota()[3],
921  Vec3( vecSpmBRota()[0],
922  vecSpmBRota()[1],
923  vecSpmBRota()[2]))*
924  Tl3D( Vec3( vecSpmBTran()[0],
925  vecSpmBTran()[1],
926  vecSpmBTran()[2] ))) ;
927 
928  // here the individual rotations & translations of the supermodule
929  // are implemented on top of the overall "base" rotation & translation
930 
931  const unsigned int offr ( 4*iphi ) ;
932  const unsigned int offt ( 3*iphi ) ;
933 
934  const Ro3D r1 ( vecSpmRota()[ offr+3],
935  Vec3(vecSpmRota()[offr+0],
936  vecSpmRota()[offr+1],
937  vecSpmRota()[offr+2] ) ) ;
938 
939  const Tf3D rotaExtra ( r1*Tl3D( Vec3(vecSpmTran()[offt+0],
940  vecSpmTran()[offt+1],
941  vecSpmTran()[offt+2] ) ) ) ;
942 
943  const Tf3D both ( rotaExtra*rotaBase ) ;
944 
945  const DDRotation rota ( myrot( spmName().name()+std::to_string(phi/deg),
946  both.getRotation() ) );
947 
948  if( vecSpmHere()[iphi] != 0 )
949  {
950  // convert from CLHEP to DDTranslation & etc. -- Michael Case
951  DDTranslation myTran(both.getTranslation().x(), both.getTranslation().y(), both.getTranslation().z());
952  cpv.position( spmLog,
953  barName(),
954  iphi+1,
955  myTran,
956  rota ) ;
957  }
958  }
959  // End Supermodule parent------------------------------------------------------------
960 
961  // Begin Inner Layer volumes---------------------------------------------------------
962  const double ilyLength ( vecSpmZPts()[1] - vecSpmZPts()[0] ) ;
963  double ilyRMin ( vecSpmRMin()[0] ) ;
964  double ilyThick ( 0 ) ;
965  for( unsigned int ilyx ( 0 ) ; ilyx != vecIlyThick().size() ; ++ilyx )
966  {
967  ilyThick += vecIlyThick()[ilyx] ;
968  }
969  const DDName ilyDDName ( ddname( ilyName() ) ) ;
970  const DDSolid ilySolid ( DDSolidFactory::tubs( ilyDDName,
971  ilyLength/2,
972  ilyRMin,
973  ilyRMin + ilyThick,
974  ilyPhiLow(),
975  ilyDelPhi() ) ) ;
976  const DDLogicalPart ilyLog ( ilyDDName, spmMat(), ilySolid ) ;
977  cpv.position( ilyLog,
978  spmLog,
979  copyOne,
980  DDTranslation(0,0, ilyLength/2 ),
981  DDRotation() ) ;
982 
983  DDLogicalPart ilyPipeLog[200] ;
984 
985  if( 0 != ilyPipeHere() )
986  {
987  for( unsigned int iPipeType ( 0 ) ; iPipeType != vecIlyPipeLength().size(); ++iPipeType )
988  {
989  const DDName pName ( ddname( ilyPipeName() + "_" +
990  std::to_string(iPipeType+1) ) ) ;
991 
992  DDSolid ilyPipeSolid ( DDSolidFactory::tubs( pName ,
993  vecIlyPipeLength()[iPipeType]/2.,
994  0,
995  ilyPipeOD()/2,
996  0*deg, 360*deg ) ) ;
997  ilyPipeLog[iPipeType] = DDLogicalPart( pName, ilyPipeMat(), ilyPipeSolid ) ;
998 
999  const DDName pWaName ( ddname( ilyPipeName() + "Wa_" +
1000  std::to_string(iPipeType+1) ) ) ;
1001  DDSolid ilyPipeWaSolid ( DDSolidFactory::tubs( pWaName ,
1002  vecIlyPipeLength()[iPipeType]/2.,
1003  0,
1004  ilyPipeID()/2,
1005  0*deg, 360*deg ) ) ;
1006  const DDLogicalPart ilyPipeWaLog ( pWaName, backPipeWaterMat(), ilyPipeWaSolid ) ;
1007 
1008  cpv.position( ilyPipeWaLog,
1009  pName,
1010  copyOne,
1011  DDTranslation(0,0,0),
1012  DDRotation() ) ;
1013  }
1014  }
1015 
1016  DDSolid ilyPTMSolid ( DDSolidFactory::box( ilyPTMName(),
1017  ilyPTMHeight()/2.,
1018  ilyPTMWidth()/2.,
1019  ilyPTMLength()/2. ) ) ;
1020  const DDLogicalPart ilyPTMLog ( ilyPTMName(),
1021  ilyPTMMat(),
1022  ilyPTMSolid ) ;
1023 
1024  DDSolid ilyFanOutSolid ( DDSolidFactory::box( ilyFanOutName(),
1025  ilyFanOutHeight()/2.,
1026  ilyFanOutWidth()/2.,
1027  ilyFanOutLength()/2. ) ) ;
1028  const DDLogicalPart ilyFanOutLog ( ilyFanOutName(),
1029  ilyFanOutMat(),
1030  ilyFanOutSolid ) ;
1031 
1032  DDSolid ilyFEMSolid ( DDSolidFactory::box( ilyFEMName(),
1033  ilyFEMHeight()/2.,
1034  ilyFEMWidth()/2.,
1035  ilyFEMLength()/2. ) ) ;
1036  const DDLogicalPart ilyFEMLog ( ilyFEMName(),
1037  ilyFEMMat(),
1038  ilyFEMSolid ) ;
1039 
1040  DDSolid ilyDiffSolid ( DDSolidFactory::box( ilyDiffName(),
1041  ilyFanOutHeight()/2.,
1042  ilyFanOutWidth()/2.,
1043  ilyDiffLength()/2. ) ) ;
1044  const DDLogicalPart ilyDiffLog ( ilyDiffName(),
1045  ilyDiffMat(),
1046  ilyDiffSolid ) ;
1047 
1048  DDSolid ilyBndlSolid ( DDSolidFactory::box( ilyBndlName(),
1049  ilyFanOutHeight()/2.,
1050  ilyFanOutWidth()/2.,
1051  ilyBndlLength()/2. ) ) ;
1052  const DDLogicalPart ilyBndlLog ( ilyBndlName(),
1053  ilyBndlMat(),
1054  ilyBndlSolid ) ;
1055  cpv.position( ilyDiffLog,
1056  ilyFanOutName(),
1057  copyOne,
1058  DDTranslation(0,0, -ilyFanOutLength()/2 + ilyDiffLength()/2 + ilyDiffOff() ),
1059  DDRotation() ) ;
1060  cpv.position( ilyBndlLog,
1061  ilyFanOutName(),
1062  copyOne,
1063  DDTranslation(0,0, -ilyFanOutLength()/2 + ilyBndlLength()/2 + ilyBndlOff() ),
1064  DDRotation() ) ;
1065 
1066  for( unsigned int ily ( 0 ) ; ily != vecIlyThick().size() ; ++ily )
1067  {
1068  const double ilyRMax ( ilyRMin + vecIlyThick()[ily] ) ;
1069  const DDName xilyName ( ddname( ilyName() + std::to_string(ily) ) ) ;
1070  const DDSolid xilySolid ( DDSolidFactory::tubs( xilyName,
1071  ilyLength/2,
1072  ilyRMin,
1073  ilyRMax,
1074  ilyPhiLow(),
1075  ilyDelPhi() ) ) ;
1076 
1077  const DDLogicalPart xilyLog ( xilyName, ddmat(vecIlyMat()[ily]), xilySolid ) ;
1078 
1079  if( 0 != ilyHere() )
1080  {
1081  cpv.position( xilyLog,
1082  ilyLog,
1083  copyOne,
1084  DDTranslation(0,0,0),
1085  DDRotation() ) ;
1086 
1087  unsigned int copyNum[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} ;
1088 
1089  if( 10*mm < vecIlyThick()[ily] &&
1090  vecIlyThick().size() != (ily+1) &&
1091  0 != ilyPipeHere() )
1092  {
1093  if( 0 != ilyPTMHere() )
1094  {
1095  unsigned int ptmCopy ( 0 ) ;
1096  for( unsigned int ilyPTM ( 0 ) ; ilyPTM != vecIlyPTMZ().size() ; ++ilyPTM )
1097  {
1098  const double radius ( ilyRMax - 1*mm - ilyPTMHeight()/2. ) ;
1099  const double phi ( vecIlyPTMPhi()[ilyPTM] ) ;
1100  const double yy ( radius*sin(phi) ) ;
1101  const double xx ( radius*cos(phi) ) ;
1102  ++ptmCopy ;
1103  cpv.position( ilyPTMLog,
1104  xilyLog,
1105  ptmCopy,
1106  DDTranslation(xx,yy, vecIlyPTMZ()[ilyPTM] -ilyLength/2 ),
1107  myrot( ilyPTMLog.name().name() + "_rot" +
1108  std::to_string( ptmCopy ) , CLHEP::HepRotationZ( phi ) )) ;
1109  }
1110  }
1111  if( 0 != ilyFanOutHere() )
1112  {
1113  unsigned int fanOutCopy ( 0 ) ;
1114  for( unsigned int ilyFO ( 0 ) ; ilyFO != vecIlyFanOutZ().size() ; ++ilyFO )
1115  {
1116  const double radius ( ilyRMax - 1*mm - ilyFanOutHeight()/2. ) ;
1117  const double phi ( vecIlyFanOutPhi()[ilyFO] ) ;
1118  const double yy ( radius*sin(phi) ) ;
1119  const double xx ( radius*cos(phi) ) ;
1120  ++fanOutCopy ;
1121  cpv.position( ilyFanOutLog,
1122  xilyLog,
1123  fanOutCopy,
1124  DDTranslation(xx,yy, vecIlyFanOutZ()[ilyFO] -ilyLength/2 ),
1125  myrot( ilyFanOutLog.name().name() + "_rot" +
1126  std::to_string( fanOutCopy ) ,
1127  CLHEP::HepRotationZ( phi )*CLHEP::HepRotationY( 180*deg ) )) ;
1128  }
1129  unsigned int femCopy ( 0 ) ;
1130  for( unsigned int ilyFEM ( 0 ) ; ilyFEM != vecIlyFEMZ().size() ; ++ilyFEM )
1131  {
1132  const double radius ( ilyRMax - 1*mm - ilyFEMHeight()/2. ) ;
1133  const double phi ( vecIlyFEMPhi()[ilyFEM] ) ;
1134  const double yy ( radius*sin(phi) ) ;
1135  const double xx ( radius*cos(phi) ) ;
1136  ++femCopy ;
1137  cpv.position( ilyFEMLog,
1138  xilyLog,
1139  femCopy,
1140  DDTranslation(xx,yy, vecIlyFEMZ()[ilyFEM] -ilyLength/2 ),
1141  myrot( ilyFEMLog.name().name() + "_rot" +
1142  std::to_string( femCopy ) , CLHEP::HepRotationZ( phi ) )) ;
1143  }
1144  }
1145  for( unsigned int iPipe ( 0 ) ; iPipe != vecIlyPipePhi().size(); ++iPipe )
1146  {
1147  const unsigned int type ( static_cast<unsigned int> ( round( vecIlyPipeType()[iPipe] ) ) ) ;
1148 // std::cout<<" iPipe, type= " << iPipe << ", " << type << std::endl ;
1149  const double zz ( -ilyLength/2 + vecIlyPipeZ()[iPipe] +
1150  ( 9>type ? vecIlyPipeLength()[type]/2. : 0 ) ) ;
1151 
1152  for( unsigned int ly ( 0 ) ; ly != 2 ; ++ly )
1153  {
1154  const double radius ( 0 == ly ? ilyRMin + ilyPipeOD()/2. + 1*mm :
1155  ilyRMax - ilyPipeOD()/2. - 1*mm ) ;
1156  const double phi ( vecIlyPipePhi()[iPipe] ) ;
1157  const double yy ( radius*sin(phi) ) ;
1158  const double xx ( radius*cos(phi) ) ;
1159  ++copyNum[type],
1160  cpv.position( ilyPipeLog[type],
1161  xilyLog,
1162  copyNum[type],
1163  DDTranslation(xx,yy,zz),
1164  ( 9 > type ? DDRotation() :
1165  myrot( ilyPipeLog[type].name().name() + "_rot" +
1166  std::to_string( copyNum[type] ) , Rota( Vec3(xx,yy,0), 90*deg) ) ) ) ;
1167  }
1168  }
1169  }
1170  }
1171  ilyRMin = ilyRMax ;
1172  }
1173  // End Inner Layer volumes---------------------------------------------------------
1174 
1175  const DDName clyrName ( DDName( "ECLYR" ) ) ;
1176  std::vector<double> cri;
1177  std::vector<double> cro;
1178  std::vector<double> czz;
1179  czz.emplace_back( vecSpmZPts()[1] ) ;
1180  cri.emplace_back( vecSpmRMin()[0] ) ;
1181  cro.emplace_back( vecSpmRMin()[0] + 25*mm ) ;
1182  czz.emplace_back( vecSpmZPts()[2] ) ;
1183  cri.emplace_back( vecSpmRMin()[2] ) ;
1184  cro.emplace_back( vecSpmRMin()[2] + 10*mm ) ;
1185  const DDSolid clyrSolid ( DDSolidFactory::polycone( clyrName, -9.5*deg, 19*deg, czz,cri,cro) ) ;
1186  const DDLogicalPart clyrLog ( clyrName, ddmat(vecIlyMat()[4]), clyrSolid ) ;
1187  cpv.position( clyrLog, spmLog, copyOne, DDTranslation(0,0,0), DDRotation() ) ;
1188 
1189  // Begin Alveolar Wedge parent ------------------------------------------------------
1190 //----------------
1191 
1192  // the next few lines accumulate dimensions appropriate to crystal type 1
1193  // which we use to set some of the features of the half-alveolar wedge (hawR).
1194 
1195 // const double ANom1 ( vecNomCryDimAR()[0] ) ;
1196  const double BNom1 ( vecNomCryDimCR()[0] ) ;
1197  const double bNom1 ( vecNomCryDimCF()[0] ) ;
1198 // const double HNom1 ( vecNomCryDimBR()[0] ) ;
1199 // const double hNom1 ( vecNomCryDimBF()[0] ) ;
1200  const double sWall1( wallThAlv() ) ;
1201  const double fWall1( wallFrAlv() ) ;
1202 // const double rWall1( wallReAlv() ) ;
1203  const double sWrap1( wrapThAlv() ) ;
1204  const double fWrap1( wrapFrAlv() ) ;
1205 // const double rWrap1( wrapReAlv() ) ;
1206  const double sClr1 ( clrThAlv() ) ;
1207  const double fClr1 ( clrFrAlv() ) ;
1208 // const double rClr1 ( clrReAlv() ) ;
1209  const double LNom1 ( nomCryDimLZ() ) ;
1210  const double beta1 ( atan( ( BNom1 - bNom1 )/LNom1 ) ) ;
1211 // const double cosbeta1 ( cos( beta1 ) ) ;
1212  const double sinbeta1 ( sin( beta1 ) ) ;
1213 
1214  const double tana_hawR ( ( BNom1 - bNom1 )/LNom1 ) ;
1215 
1216  const double H_hawR ( hawRHBIG() ) ;
1217  const double h_hawR ( hawRhsml() ) ;
1218  const double a_hawR ( bNom1 + sClr1 + 2*sWrap1 + 2*sWall1
1219  - sinbeta1*( fClr1 + fWrap1 + fWall1 ) ) ;
1220  const double B_hawR ( a_hawR + H_hawR*tana_hawR ) ;
1221  const double b_hawR ( a_hawR + h_hawR*tana_hawR ) ;
1222  const double L_hawR ( vecSpmZPts()[2] ) ;
1223 
1224  const Trap trapHAWR (
1225  a_hawR/2., //double aHalfLengthXNegZLoY , // bl1, A/2
1226  a_hawR/2., //double aHalfLengthXPosZLoY , // bl2, a/2
1227  b_hawR/2., //double aHalfLengthXPosZHiY , // tl2, b/2
1228  H_hawR/2., //double aHalfLengthYNegZ , // h1, H/2
1229  h_hawR/2., //double aHalfLengthYPosZ , // h2, h/2
1230  L_hawR/2., //double aHalfLengthZ , // dz, L/2
1231  90*deg, //double aAngleAD , // alfa1
1232  0, //double aCoord15X , // x15
1233  0 //double aCoord15Y // y15
1234  ) ;
1235 
1236  const DDName hawRName1 ( ddname( hawRName().name() + "1") ) ;
1237  const DDSolid hawRSolid1 ( mytrap(hawRName1.name(), trapHAWR ) ) ;
1238  const DDLogicalPart hawRLog1 ( hawRName1, spmMat(), hawRSolid1 ) ;
1239 
1240  const double al1_fawR ( atan( ( B_hawR - a_hawR )/H_hawR ) + M_PI_2 ) ;
1241 
1242  // here is trap for Full Alveolar Wedge
1243  const Trap trapFAW (
1244  a_hawR, //double aHalfLengthXNegZLoY , // bl1, A/2
1245  a_hawR, //double aHalfLengthXPosZLoY , // bl2, a/2
1246  b_hawR, //double aHalfLengthXPosZHiY , // tl2, b/2
1247  H_hawR/2., //double aHalfLengthYNegZ , // h1, H/2
1248  h_hawR/2., //double aHalfLengthYPosZ , // h2, h/2
1249  L_hawR/2., //double aHalfLengthZ , // dz, L/2
1250  al1_fawR, //double aAngleAD , // alfa1
1251  0, //double aCoord15X , // x15
1252  0 //double aCoord15Y // y15
1253  ) ;
1254 
1255  const DDName fawName1 ( ddname( fawName().name() + "1") ) ;
1256  const DDSolid fawSolid1 ( mytrap( fawName1.name(), trapFAW ) ) ;
1257  const DDLogicalPart fawLog1 ( fawName1, spmMat(), fawSolid1 ) ;
1258 
1259  const Trap::VertexList vHAW ( trapHAWR.vertexList() ) ;
1260  const Trap::VertexList vFAW ( trapFAW.vertexList() ) ;
1261 
1262  const double hawBoxClr ( 1*mm ) ;
1263 
1264  // HAW cut box to cut off back end of wedge
1265  const DDName hawCutName ( ddname( hawRName().name() + "CUTBOX" ) ) ;
1266  const DDSolid hawCutBox ( DDSolidFactory::box(
1267  hawCutName,
1268  b_hawR/2 + hawBoxClr,
1269  hawRCutY()/2,
1270  hawRCutZ()/2 ) ) ;
1271  const std::vector<double>& hawBoxParms ( hawCutBox.parameters() ) ;
1272  const DDLogicalPart hawCutLog ( hawCutName, spmMat(), hawCutBox ) ;
1273 
1274  const Pt3D b1 ( hawBoxParms[0], hawBoxParms[1], hawBoxParms[2] ) ;
1275  const Pt3D b2 ( -hawBoxParms[0], hawBoxParms[1], hawBoxParms[2] ) ;
1276  const Pt3D b3 ( -hawBoxParms[0], hawBoxParms[1], -hawBoxParms[2] ) ;
1277 
1278  const double zDel ( sqrt( 4*hawBoxParms[2]*hawBoxParms[2]
1279  -(h_hawR-hawRCutDelY())*(h_hawR-hawRCutDelY()) ) ) ;
1280 
1281  const Tf3D hawCutForm (
1282  b1, b2, b3,
1283  vHAW[2] + Pt3D( hawBoxClr, -hawRCutDelY(), 0),
1284  vHAW[1] + Pt3D(-hawBoxClr, -hawRCutDelY(), 0),
1285  Pt3D( vHAW[0].x() -hawBoxClr, vHAW[0].y(), vHAW[0].z() - zDel ) ) ;
1286 
1287  const DDSolid hawRSolid ( DDSolidFactory::subtraction(
1288  hawRName(),
1289  hawRSolid1, hawCutBox,
1290  DDTranslation(hawCutForm.getTranslation().x(), hawCutForm.getTranslation().y(), hawCutForm.getTranslation().z()),
1291  myrot( hawCutName.name()+"R",
1292  hawCutForm.getRotation() ) ) ) ;
1293  const DDLogicalPart hawRLog ( hawRName(), spmMat(), hawRSolid ) ;
1294 
1295  // FAW cut box to cut off back end of wedge
1296  const DDName fawCutName ( ddname( fawName().name() + "CUTBOX") ) ;
1297  const DDSolid fawCutBox ( DDSolidFactory::box(
1298  fawCutName,
1299  2*hawBoxParms[0],
1300  hawBoxParms[1],
1301  hawBoxParms[2] ) ) ;
1302 
1303  const std::vector<double>& fawBoxParms ( fawCutBox.parameters() ) ;
1304  const DDLogicalPart fawCutLog ( fawCutName, spmMat(), fawCutBox ) ;
1305 
1306  const Pt3D bb1 ( fawBoxParms[0], fawBoxParms[1], fawBoxParms[2] ) ;
1307  const Pt3D bb2 ( -fawBoxParms[0], fawBoxParms[1], fawBoxParms[2] ) ;
1308  const Pt3D bb3 ( -fawBoxParms[0], fawBoxParms[1], -fawBoxParms[2] ) ;
1309 
1310  const Tf3D fawCutForm (
1311  bb1, bb2, bb3,
1312  vFAW[2] + Pt3D( 2*hawBoxClr,-5*mm,0),
1313  vFAW[1] + Pt3D(-2*hawBoxClr,-5*mm,0),
1314  Pt3D( vFAW[1].x()-2*hawBoxClr, vFAW[1].y()-trapFAW.h(), vFAW[1].z() - zDel ) ) ;
1315 
1316  const DDSolid fawSolid ( DDSolidFactory::subtraction(
1317  fawName(),
1318  fawSolid1, fawCutBox,
1319  DDTranslation(fawCutForm.getTranslation().x(), fawCutForm.getTranslation().y(), fawCutForm.getTranslation().z()) ,
1320  myrot( fawCutName.name()+"R",
1321  fawCutForm.getRotation() ) ) ) ;
1322  const DDLogicalPart fawLog ( fawName(), spmMat(), fawSolid ) ;
1323 
1324 
1325  const Tf3D hawRform ( vHAW[3], vHAW[0], vHAW[1], // HAW inside FAW
1326  vFAW[3], 0.5*(vFAW[0]+vFAW[3]), 0.5*(vFAW[1]+vFAW[2] ) ) ;
1327  cpv.position( hawRLog,
1328  fawLog,
1329  copyOne,
1330  DDTranslation(hawRform.getTranslation().x(), hawRform.getTranslation().y(), hawRform.getTranslation().z()),
1331  myrot( hawRName().name()+"R",
1332  hawRform.getRotation() ) ) ;
1333 
1334  cpv.position( hawRLog,
1335  fawLog,
1336  copyTwo,
1337  DDTranslation( -hawRform.getTranslation().x(),
1338  -hawRform.getTranslation().y(),
1339  -hawRform.getTranslation().z() ),
1340  myrot( hawRName().name()+"RotRefl",
1341  CLHEP::HepRotationY(180*deg)* // rotate about Y after refl thru Z
1342  CLHEP::HepRep3x3(1,0,0, 0,1,0, 0,0,-1) ) ) ;
1343 
1344 /* this for display of haw cut box instead of subtraction
1345  cpv.position( hawCutLog,
1346  hawRName,
1347  copyOne,
1348  hawCutForm.getTranslation(),
1349  myrot( hawCutName.name()+"R",
1350  hawCutForm.getRotation() ) ) ;
1351 */
1352 
1353  for( unsigned int iPhi ( 1 ); iPhi <= nFawPerSupm() ; ++iPhi )
1354  {
1355  const double rPhi ( fawPhiOff() + ( iPhi - 0.5 )*fawDelPhi() ) ;
1356 
1357  const Tf3D fawform ( RoZ3D( rPhi )*
1358  Tl3D( fawRadOff() + ( trapFAW.H() + trapFAW.h() )/4 ,
1359  0,
1360  trapFAW.L()/2 )*
1361  RoZ3D( -90*deg + fawPhiRot() ) ) ;
1362  if( fawHere() )
1363  cpv.position( fawLog,
1364  spmLog,
1365  iPhi,
1366  DDTranslation(fawform.getTranslation().x(), fawform.getTranslation().y(), fawform.getTranslation().z() ),
1367  myrot( fawName().name()+"_Rot" + std::to_string(iPhi),
1368  fawform.getRotation() ) ) ;
1369  }
1370 
1371  // End Alveolar Wedge parent ------------------------------------------------------
1372 
1373  // Begin Grid + Tablet insertion
1374 
1375  const double h_Grid ( gridThick() ) ;
1376 
1377  const Trap trapGrid (
1378  ( B_hawR - h_Grid*( B_hawR - a_hawR )/H_hawR )/2, // bl1, A/2
1379  ( b_hawR - h_Grid*( B_hawR - a_hawR )/H_hawR )/2, // bl2, a/2
1380  b_hawR/2., // tl2, b/2
1381  h_Grid/2., // h1, H/2
1382  h_Grid/2., // h2, h/2
1383  (L_hawR-8*cm)/2., // dz, L/2
1384  90*deg, // alfa1
1385  0, // x15
1386  H_hawR - h_hawR // y15
1387  ) ;
1388 
1389  const DDSolid gridSolid ( mytrap( gridName().name(), trapGrid ) ) ;
1390  const DDLogicalPart gridLog ( gridName(), gridMat(), gridSolid ) ;
1391 
1392  const Trap::VertexList vGrid ( trapGrid.vertexList() ) ;
1393 
1394  const Tf3D gridForm ( vGrid[4], vGrid[5], vGrid[6], // Grid inside HAW
1395  vHAW[5] - Pt3D(0,h_Grid,0), vHAW[5], vHAW[6] ) ;
1396 
1397  if( 0 != gridHere() )
1398  cpv.position( gridLog,
1399  hawRLog,
1400  copyOne,
1401  DDTranslation(gridForm.getTranslation().x(), gridForm.getTranslation().y(), gridForm.getTranslation().z() ),
1402  myrot( gridName().name()+"R",
1403  gridForm.getRotation() ) ) ;
1404 
1405  // End Grid + Tablet insertion
1406 
1407  // begin filling Wedge with crystal plus supports --------------------------
1408 
1409  const double aNom ( nomCryDimAF() ) ;
1410  const double LNom ( nomCryDimLZ() ) ;
1411 
1412  const double AUnd ( underAR() ) ;
1413  const double aUnd ( underAF() ) ;
1414 // const double BUnd ( underCR() ) ;
1415  const double bUnd ( underCF() ) ;
1416  const double HUnd ( underBR() ) ;
1417  const double hUnd ( underBF() ) ;
1418  const double LUnd ( underLZ() ) ;
1419 
1420  const double sWall ( wallThAlv() ) ;
1421  const double sWrap ( wrapThAlv() ) ;
1422  const double sClr ( clrThAlv() ) ;
1423 
1424  const double fWall ( wallFrAlv() ) ;
1425  const double fWrap ( wrapFrAlv() ) ;
1426  const double fClr ( clrFrAlv() ) ;
1427 
1428  const double rWall ( wallReAlv() ) ;
1429  const double rWrap ( wrapReAlv() ) ;
1430  const double rClr ( clrReAlv() ) ;
1431 
1432  // theta is angle in yz plane between z axis & leading edge of crystal
1433  double theta ( 90*deg ) ;
1434  double zee ( 0*mm ) ;
1435  double side ( 0*mm ) ;
1436  double zeta ( 0*deg ) ; // increment in theta for last crystal
1437 
1438  for( unsigned int cryType ( 1 ) ; cryType <= nCryTypes() ; ++cryType )
1439  {
1440  const std::string sType ( "_" +
1441  std::string( 10>cryType ? "0" : "") +
1442  std::to_string( cryType ) ) ;
1443 
1444  LogDebug("EcalGeom") << "Crytype=" << cryType ;
1445  const double ANom ( vecNomCryDimAR()[ cryType-1 ] ) ;
1446  const double BNom ( vecNomCryDimCR()[ cryType-1 ] ) ;
1447  const double bNom ( vecNomCryDimCF()[ cryType-1 ] ) ;
1448  const double HNom ( vecNomCryDimBR()[ cryType-1 ] ) ;
1449  const double hNom ( vecNomCryDimBF()[ cryType-1 ] ) ;
1450 
1451  const double alfCry ( 90*deg + atan( ( bNom - bUnd - aNom + aUnd )/
1452  ( hNom - hUnd ) ) ) ;
1453 
1454  const Trap trapCry (
1455  ( ANom - AUnd )/2., //double aHalfLengthXNegZLoY , // bl1, A/2
1456  ( aNom - aUnd )/2., //double aHalfLengthXPosZLoY , // bl2, a/2
1457  ( bNom - bUnd )/2., //double aHalfLengthXPosZHiY , // tl2, b/2
1458  ( HNom - HUnd )/2., //double aHalfLengthYNegZ , // h1, H/2
1459  ( hNom - hUnd )/2., //double aHalfLengthYPosZ , // h2, h/2
1460  ( LNom - LUnd )/2., //double aHalfLengthZ , // dz, L/2
1461  alfCry, //double aAngleAD , // alfa1
1462  aNom - aUnd - ANom + AUnd, //double aCoord15X , // x15
1463  hNom - hUnd - HNom + HUnd //double aCoord15Y // y15
1464  ) ;
1465 
1466  const DDName cryDDName ( cryName() + sType ) ;
1467  const DDSolid crySolid ( mytrap( cryDDName.name(), trapCry ) ) ;
1468  const DDLogicalPart cryLog ( cryDDName, cryMat(), crySolid ) ;
1469 
1470 
1471 //++++++++++++++++++++++++++++++++++ APD ++++++++++++++++++++++++++++++++++
1472  const unsigned int copyCap ( 1 ) ;
1473 
1474  const DDName capDDName ( capName().name() + sType ) ;
1475 
1476  DDSolid capSolid ( DDSolidFactory::box( capDDName,
1477  capXSize()/2.,
1478  capYSize()/2.,
1479  capThick()/2. ) ) ;
1480 
1481  const DDLogicalPart capLog ( capDDName, capMat(), capSolid ) ;
1482 
1483  const DDName sglDDName ( sglName().name() + sType ) ;
1484 
1485  DDSolid sglSolid ( DDSolidFactory::box( sglDDName,
1486  capXSize()/2.,
1487  capYSize()/2.,
1488  sglThick()/2. ) ) ;
1489 
1490  const DDLogicalPart sglLog ( sglDDName, sglMat(), sglSolid ) ;
1491 
1492  const unsigned int copySGL ( 1 ) ;
1493 
1494  const DDName cerDDName ( cerName().name() + sType ) ;
1495 
1496  DDSolid cerSolid ( DDSolidFactory::box( cerDDName,
1497  cerXSize()/2.,
1498  cerYSize()/2.,
1499  cerThick()/2. ) ) ;
1500 
1501  const DDLogicalPart cerLog ( cerDDName, cerMat(), cerSolid ) ;
1502 
1503  unsigned int copyCER ( 0 ) ;
1504 
1505 
1506  const DDName bsiDDName ( bsiName().name() + sType ) ;
1507 
1508  DDSolid bsiSolid ( DDSolidFactory::box( bsiDDName,
1509  bsiXSize()/2.,
1510  bsiYSize()/2.,
1511  bsiThick()/2. ) ) ;
1512 
1513  const DDLogicalPart bsiLog ( bsiDDName, bsiMat(), bsiSolid ) ;
1514 
1515  const unsigned int copyBSi ( 1 ) ;
1516 
1517  const DDName atjDDName ( atjName().name() + sType ) ;
1518 
1519  DDSolid atjSolid ( DDSolidFactory::box( atjDDName,
1520  apdSide()/2.,
1521  apdSide()/2.,
1522  atjThick()/2. ) ) ;
1523 
1524  const DDLogicalPart atjLog ( atjDDName, atjMat(), atjSolid ) ;
1525 
1526  const unsigned int copyATJ ( 1 ) ;
1527 
1528 
1529  const DDName aglDDName ( aglName().name() + sType ) ;
1530 
1531  DDSolid aglSolid ( DDSolidFactory::box( aglDDName,
1532  bsiXSize()/2.,
1533  bsiYSize()/2.,
1534  aglThick()/2. ) ) ;
1535 
1536  const DDLogicalPart aglLog ( aglDDName, aglMat(), aglSolid ) ;
1537 
1538  const unsigned int copyAGL ( 1 ) ;
1539 
1540 
1541  const DDName andDDName ( andName().name() + sType ) ;
1542 
1543  DDSolid andSolid ( DDSolidFactory::box( andDDName,
1544  apdSide()/2.,
1545  apdSide()/2.,
1546  andThick()/2. ) ) ;
1547 
1548  const DDLogicalPart andLog ( andDDName, andMat(), andSolid ) ;
1549 
1550  const unsigned int copyAND ( 1 ) ;
1551 
1552 
1553  const DDName apdDDName ( apdName().name() + sType ) ;
1554 
1555  DDSolid apdSolid ( DDSolidFactory::box( apdDDName,
1556  apdSide()/2.,
1557  apdSide()/2.,
1558  apdThick()/2. ) ) ;
1559 
1560  const DDLogicalPart apdLog ( apdDDName, apdMat(), apdSolid ) ;
1561 
1562  const unsigned int copyAPD ( 1 ) ;
1563 //++++++++++++++++++++++++++++++++++ END APD ++++++++++++++++++++++++++++++++++
1564 
1565 
1566  const double delta ( atan( ( HNom - hNom )/LNom ) ) ;
1567 //unused const double cosdelta ( cos( delta ) ) ;
1568  const double sindelta ( sin( delta ) ) ;
1569 
1570  const double gamma ( atan( ( ANom - aNom )/LNom ) ) ;
1571 //unused const double cosgamma ( cos( gamma ) ) ;
1572  const double singamma ( sin( gamma ) ) ;
1573 
1574  const double beta ( atan( ( BNom - bNom )/LNom ) ) ;
1575 //unused const double cosbeta ( cos( beta ) ) ;
1576  const double sinbeta ( sin( beta ) ) ;
1577 
1578  // Now clearance trap
1579  const double alfClr ( 90*deg + atan( ( bNom - aNom )/( hNom + sClr ) ) ) ;
1580 
1581  const Trap trapClr (
1582  ( ANom + sClr + rClr*singamma )/2., //double aHalfLengthXNegZLoY , // bl1, A/2
1583  ( aNom + sClr - fClr*singamma )/2., //double aHalfLengthXPosZLoY , // bl2, a/2
1584  ( bNom + sClr - fClr*sinbeta )/2., //double aHalfLengthXPosZHiY , // tl2, b/2
1585  ( HNom + sClr + rClr*sindelta )/2., //double aHalfLengthYNegZ , // h1, H/2
1586  ( hNom + sClr - fClr*sindelta )/2., //double aHalfLengthYPosZ , // h2, h/2
1587  ( LNom + fClr + rClr )/2., // dz, L/2
1588  alfClr, //double aAngleAD , // alfa1
1589  aNom - ANom , //double aCoord15X , // x15
1590  hNom - HNom //double aCoord15Y // y15
1591  ) ;
1592 
1593  const DDName clrDDName ( clrName() + sType ) ;
1594  const DDSolid clrSolid ( mytrap( clrDDName.name(), trapClr ) ) ;
1595  const DDLogicalPart clrLog ( clrDDName, clrMat(), clrSolid ) ;
1596 
1597  // Now wrap trap
1598 
1599  const double alfWrap ( 90*deg + atan( ( bNom - aNom )/
1600  ( hNom + sClr + 2*sWrap ) ) ) ;
1601 
1602  const Trap trapWrap (
1603  ( trapClr.A() + 2*sWrap + rWrap*singamma )/2, // bl1, A/2
1604  ( trapClr.a() + 2*sWrap - fWrap*singamma )/2, // bl2, a/2
1605  ( trapClr.b() + 2*sWrap - fWrap*sinbeta )/2, // tl2, b/2
1606  ( trapClr.H() + 2*sWrap + rWrap*sindelta )/2, // h1, H/2
1607  ( trapClr.h() + 2*sWrap - fWrap*sindelta )/2, // h2, h/2
1608  ( trapClr.L() + fWrap + rWrap )/2., // dz, L/2
1609  alfWrap, //double aAngleAD , // alfa1
1610  aNom - ANom - (cryType>9 ? 0 : 0.020*mm) ,
1611  hNom - HNom //double aCoord15Y // y15
1612  ) ;
1613 
1614  const DDName wrapDDName ( wrapName() + sType ) ;
1615  const DDSolid wrapSolid ( mytrap( wrapDDName.name(), trapWrap ) ) ;
1616  const DDLogicalPart wrapLog ( wrapDDName, wrapMat(), wrapSolid ) ;
1617 
1618  // Now wall trap
1619 
1620  const double alfWall ( 90*deg + atan( ( bNom - aNom )/
1621  ( hNom + sClr + 2*sWrap + 2*sWall ) ) ) ;
1622 
1623  const Trap trapWall (
1624  ( trapWrap.A() + 2*sWall + rWall*singamma )/2, // A/2
1625  ( trapWrap.a() + 2*sWall - fWall*singamma )/2, // a/2
1626  ( trapWrap.b() + 2*sWall - fWall*sinbeta )/2, // b/2
1627  ( trapWrap.H() + 2*sWall + rWall*sindelta )/2, // H/2
1628  ( trapWrap.h() + 2*sWall - fWall*sindelta )/2, // h/2
1629  ( trapWrap.L() + fWall + rWall )/2., // L/2
1630  alfWall, // alfa1
1631  aNom - ANom - (cryType<10? 0.150*mm : 0.100*mm ) ,
1632  hNom - HNom // y15
1633  ) ;
1634 
1635  const DDName wallDDName ( wallName() + sType ) ;
1636  const DDSolid wallSolid ( mytrap( wallDDName.name(), trapWall ) ) ;
1637  const DDLogicalPart wallLog ( wallDDName, wallMat(), wallSolid ) ;
1638 
1639 /* std::cout << "Traps:\n a: "
1640  << trapCry.a() << ", "
1641  << trapClr.a() << ", "
1642  << trapWrap.a() << ", "
1643  << trapWall.a() << "\n b: "
1644  << trapCry.b() << ", "
1645  << trapClr.b() << ", "
1646  << trapWrap.b() << ", "
1647  << trapWall.b() << "\n A: "
1648  << trapCry.A() << ", "
1649  << trapClr.A() << ", "
1650  << trapWrap.A() << ", "
1651  << trapWall.A() << "\n B: "
1652  << trapCry.B() << ", "
1653  << trapClr.B() << ", "
1654  << trapWrap.B() << ", "
1655  << trapWall.B() << "\n h: "
1656  << trapCry.h() << ", "
1657  << trapClr.h() << ", "
1658  << trapWrap.h() << ", "
1659  << trapWall.h() << "\n H: "
1660  << trapCry.H() << ", "
1661  << trapClr.H() << ", "
1662  << trapWrap.H() << ", "
1663  << trapWall.H() << "\n a1: "
1664  << trapCry.a1()/deg << ", "
1665  << trapClr.a1()/deg << ", "
1666  << trapWrap.a1()/deg << ", "
1667  << trapWall.a1()/deg << "\n a4: "
1668  << trapCry.a4()/deg << ", "
1669  << trapClr.a4()/deg << ", "
1670  << trapWrap.a4()/deg << ", "
1671  << trapWall.a4()/deg << "\n x15: "
1672  << trapCry.x15() << ", "
1673  << trapClr.x15() << ", "
1674  << trapWrap.x15() << ", "
1675  << trapWall.x15() << "\n y15: "
1676  << trapCry.y15() << ", "
1677  << trapClr.y15() << ", "
1678  << trapWrap.y15() << ", "
1679  << trapWall.y15()
1680  << std::endl ;
1681 */
1682  // Now for placement of cry within clr
1683  const Vec3 cryToClr ( 0, 0, ( rClr - fClr )/2 ) ;
1684 
1685  cpv.position( cryLog,
1686  clrLog,
1687  copyOne,
1688  DDTranslation ( 0, 0, ( rClr - fClr )/2 ), //SAME as cryToClr above.
1689  DDRotation() ) ;
1690 
1691  if( 0 != capHere() )
1692  {
1693  cpv.position( aglLog,
1694  bsiLog,
1695  copyAGL,
1696  DDTranslation( 0,
1697  0,
1698  - aglThick()/2. + bsiThick()/2. ),
1699  DDRotation() ) ;
1700 
1701  cpv.position( andLog,
1702  bsiLog,
1703  copyAND,
1704  DDTranslation( 0,
1705  0,
1706  - andThick()/2. - aglThick() + bsiThick()/2. ),
1707  DDRotation() ) ;
1708 
1709  cpv.position( apdLog,
1710  bsiLog,
1711  copyAPD,
1712  DDTranslation( 0,
1713  0,
1714  - apdThick()/2. - andThick()
1715  - aglThick() + bsiThick()/2. ),
1716  DDRotation() ) ;
1717 
1718  cpv.position( atjLog,
1719  bsiLog,
1720  copyATJ,
1721  DDTranslation( 0,
1722  0,
1723  - atjThick()/2. - apdThick() - andThick()
1724  - aglThick() + bsiThick()/2. ),
1725  DDRotation() ) ;
1726 
1727  cpv.position( bsiLog,
1728  cerLog,
1729  copyBSi,
1730  DDTranslation( 0,
1731  0,
1732  - bsiThick()/2. + cerThick()/2. ),
1733  DDRotation() ) ;
1734 
1735  cpv.position( sglLog,
1736  capLog,
1737  copySGL,
1738  DDTranslation( 0,
1739  0,
1740  - sglThick()/2. + capThick()/2. ),
1741  DDRotation() ) ;
1742 
1743  for( unsigned int ijkl ( 0 ) ; ijkl != 2 ; ++ijkl )
1744  {
1745  cpv.position( cerLog,
1746  capLog,
1747  ++copyCER,
1748  DDTranslation( trapCry.bl1() - ( 0 == ijkl ? apdX1() : apdX2() ),
1749  trapCry.h1() - apdZ(),
1750  - sglThick() - cerThick()/2. + capThick()/2. ),
1751  DDRotation() ) ;
1752  }
1753 
1754  cpv.position( capLog,
1755  clrLog,
1756  copyCap,
1757  DDTranslation( 0 ,
1758  0 ,
1759  - trapCry.dz() - capThick()/2. + (rClr - fClr)/2. ),
1760  DDRotation() ) ;
1761  }
1762 
1763 
1764  const Vec3 clrToWrap ( 0, 0, ( rWrap - fWrap )/2 ) ;
1765 
1766  cpv.position( clrLog,
1767  wrapLog,
1768  copyOne,
1769  DDTranslation ( 0, 0, ( rWrap - fWrap )/2 ), //SAME as cryToWrap
1770  DDRotation() ) ;
1771 
1772 
1773  // Now for placement of clr within wall
1774  const Vec3 wrapToWall1 ( 0, 0, ( rWall - fWall )/2 ) ;
1775  const Vec3 wrapToWall ( Vec3( (cryType>9?0:0.005*mm),0,0 )+wrapToWall1 ) ;
1776 
1777  cpv.position( wrapLog,
1778  wallLog,
1779  copyOne,
1780  DDTranslation ( Vec3( (cryType>9?0:0.005*mm),0,0 )+wrapToWall1 ), //SAME as wrapToWall
1781  DDRotation() ) ;
1782 
1783  const Trap::VertexList vWall ( trapWall.vertexList() ) ;
1784  const Trap::VertexList vCry ( trapCry.vertexList() ) ;
1785 
1786  const double sidePrime ( ( trapWall.a() - trapCry.a() )/2 ) ;
1787  const double frontPrime ( fWall + fWrap + fClr + LUnd/2 ) ;
1788 
1789  // define web plates with clearance ===========================================
1790 
1791  if( 1 == cryType ) // first web plate: inside clearance volume
1792  {
1793  web( 0,
1794  trapWall.b(),
1795  trapWall.B(),
1796  trapWall.L(),
1797  theta,
1798  vHAW[4] + Pt3D( 0, hawYOffCry(), 0 ),
1799  hawRLog,
1800  zee,
1801  sidePrime,
1802  frontPrime,
1803  delta, cpv ) ;
1804  zee += vecGapAlvEta()[0] ;
1805  }
1806 
1807  for( unsigned int etaAlv ( 1 ) ; etaAlv <= nCryPerAlvEta() ; ++etaAlv )
1808  {
1809  LogDebug("EcalGeom") << "theta=" << theta/deg
1810  << ", sidePrime=" << sidePrime << ", frontPrime=" << frontPrime
1811  << ", zeta="<<zeta<<", delta="<<delta<<", zee=" << zee;
1812 
1813  zee += 0.075*mm +
1814  ( side*cos(zeta) + trapWall.h() - sidePrime )/sin(theta) ;
1815 
1816  LogDebug("EcalGeom") << "New zee="<< zee ;
1817 
1818  // make transform for placing enclosed crystal
1819 
1820  const Pt3D trap2 ( vCry[2] + cryToClr + clrToWrap + wrapToWall ) ;
1821 
1822  const Pt3D trap3 ( trap2 + Pt3D( 0,
1823  -trapCry.h(),
1824  0 ) ) ;
1825  const Pt3D trap1 ( trap3 + Pt3D( -trapCry.a(),
1826  0,
1827  0 ) ) ;
1828 
1829  const Pt3D wedge3 ( vHAW[4] + Pt3D( sidePrime,
1830  hawYOffCry(),
1831  zee ) ) ;
1832  const Pt3D wedge2 ( wedge3 + Pt3D( 0,
1833  trapCry.h()*cos(theta),
1834  -trapCry.h()*sin(theta) ) ) ;
1835  const Pt3D wedge1 ( wedge3 + Pt3D( trapCry.a(),
1836  0,
1837  0 ) ) ;
1838 
1839  const Tf3D tForm1 ( trap1, trap2, trap3,
1840  wedge1, wedge2, wedge3 ) ;
1841 
1842  const double xx ( 0.050*mm ) ;
1843 
1844  const Tf3D tForm ( HepGeom::Translate3D(xx,0,0)*tForm1 ) ;
1845 
1846  cpv.position( wallLog,
1847  hawRLog,
1848  etaAlv,
1849  DDTranslation(tForm.getTranslation().x(), tForm.getTranslation().y(), tForm.getTranslation().z() ),
1850  myrot( wallLog.name().name() + "_" + std::to_string( etaAlv ),
1851  tForm.getRotation() ) ) ;
1852 
1853  theta -= delta ;
1854  side = sidePrime ;
1855  zeta = delta ;
1856  }
1857  if( 5 == cryType ||
1858  9 == cryType ||
1859  13 == cryType ||
1860  17 == cryType ) // web plates
1861  {
1862  const unsigned int webIndex ( cryType/4 ) ;
1863  zee += 0.5*vecGapAlvEta()[cryType]/sin(theta) ;
1864  web( webIndex,
1865  trapWall.a(),
1866  trapWall.A(),
1867  trapWall.L(),
1868  theta,
1869  vHAW[4] + Pt3D( 0, hawYOffCry(), 0 ),
1870  hawRLog,
1871  zee ,
1872  sidePrime,
1873  frontPrime,
1874  delta, cpv ) ;
1875  zee += 0.5*vecGapAlvEta()[cryType]/sin(theta) ;
1876  }
1877  else
1878  {
1879  if( 17 != cryType ) zee += vecGapAlvEta()[cryType]/sin(theta) ;
1880  }
1881  }
1882  // END filling Wedge with crystal plus supports --------------------------
1883 
1884 //------------------------------------------------------------------------
1885 //------------------------------------------------------------------------
1886 //------------------------------------------------------------------------
1887 //------------------------------------------------------------------------
1888 //**************** Material at outer radius of supermodule ***************
1889 //------------------------------------------------------------------------
1890 //------------------------------------------------------------------------
1891 //------------------------------------------------------------------------
1892 //------------------------------------------------------------------------
1893 
1894  if( 0 != backHere() )
1895  {
1896 
1902 
1903  const DDTranslation outtra ( backXOff() + backSideHeight()/2,
1904  backYOff(),
1905  backSideLength()/2 ) ;
1906 
1907  const double realBPthick ( backPlateThick() + backPlate2Thick() ) ;
1908 
1909  DDSolid backPlateSolid ( DDSolidFactory::box( backPlateName(),
1910  backPlateWidth()/2.,
1911  realBPthick/2.,
1912  backPlateLength()/2. ) ) ;
1913  const std::vector<double>& backPlateParms ( backPlateSolid.parameters() ) ;
1914  const DDLogicalPart backPlateLog ( backPlateName(),
1915  backPlateMat(),
1916  backPlateSolid ) ;
1917 
1918  const DDTranslation backPlateTra ( backSideHeight()/2 +
1919  backPlateParms[1],
1920  0*mm,
1921  backPlateParms[2] -
1922  backSideLength()/2 ) ;
1923 
1924  DDSolid backPlate2Solid ( DDSolidFactory::box( backPlate2Name(),
1925  backPlateWidth()/2.,
1926  backPlate2Thick()/2.,
1927  backPlateLength()/2. ) ) ;
1928 
1929  const DDLogicalPart backPlate2Log ( backPlate2Name(),
1930  backPlate2Mat(),
1931  backPlate2Solid ) ;
1932 
1933  const DDTranslation backPlate2Tra ( 0,
1934  -backPlateParms[1] + backPlate2Thick()/2., 0 ) ;
1935  if( 0 != backPlateHere() )
1936  {
1937  cpv.position( backPlate2Log,
1938  backPlateName(),
1939  copyOne,
1940  backPlate2Tra,
1941  DDRotation() ) ;
1942 
1943  cpv.position( backPlateLog,
1944  spmName(),
1945  copyOne,
1946  outtra + backPlateTra,
1947  myrot( backPlateName().name()+"Rot5",
1948  CLHEP::HepRotationZ(270*deg) ) ) ;
1949 
1950  }
1956 
1957 
1963 
1964  const Trap trapBS (
1965  backSideWidth()/2., //double aHalfLengthXNegZLoY , // bl1, A/2
1966  backSideWidth()/2., //double aHalfLengthXPosZLoY , // bl2, a/2
1967  backSideWidth()/4., //double aHalfLengthXPosZHiY , // tl2, b/2
1968  backSideHeight()/2., //double aHalfLengthYNegZ , // h1, H/2
1969  backSideHeight()/2., //double aHalfLengthYPosZ , // h2, h/2
1970  backSideLength()/2., //double aHalfLengthZ , // dz, L/2
1971  backSideAngle(), //double aAngleAD , // alfa1
1972  0, //double aCoord15X , // x15
1973  0 //double aCoord15Y // y15
1974  ) ;
1975 
1976  const DDSolid backSideSolid ( mytrap( backSideName().name(), trapBS ) ) ;
1977  const DDLogicalPart backSideLog ( backSideName(),
1978  backSideMat(),
1979  backSideSolid ) ;
1980 
1981  const DDTranslation backSideTra1 ( 0*mm,
1982  backPlateWidth()/2 + backSideYOff1(),
1983  1*mm ) ;
1984  if( 0 != backSideHere() )
1985  {
1986  cpv.position( backSideLog,
1987  spmName(),
1988  copyOne,
1989  outtra + backSideTra1,
1990  myrot( backSideName().name()+"Rot8",
1991  CLHEP::HepRotationX(180*deg)*CLHEP::HepRotationZ(90*deg) ) ) ;
1992 
1993  const DDTranslation backSideTra2( 0*mm,
1994  -backPlateWidth()/2 + backSideYOff2(),
1995  1*mm ) ;
1996  cpv.position( backSideLog,
1997  spmName(),
1998  copyTwo,
1999  outtra + backSideTra2,
2000  myrot( backSideName().name()+"Rot9",
2001  CLHEP::HepRotationZ(90*deg) ) ) ;
2002  }
2008 
2009 //=====================
2010  const double backCoolWidth ( backCoolBarWidth() + 2.*backCoolTankWidth() ) ;
2011 
2017 
2018  const double manifCut ( 2*mm ) ;
2019 
2020  DDSolid mBManifSolid ( DDSolidFactory::tubs( mBManifName() ,
2021  backCoolWidth/2. - manifCut,
2022  0,
2023  mBManifOutDiam()/2,
2024  0*deg, 360*deg ) ) ;
2025  const DDLogicalPart mBManifLog ( mBManifName(), mBManifMat(), mBManifSolid ) ;
2026 
2027  const DDName mBManifWaName ( ddname( mBManifName().name() + "Wa" ) ) ;
2028  DDSolid mBManifWaSolid ( DDSolidFactory::tubs( mBManifWaName ,
2029  backCoolWidth/2.-manifCut,
2030  0,
2031  mBManifInnDiam()/2,
2032  0*deg, 360*deg ) ) ;
2033  const DDLogicalPart mBManifWaLog ( mBManifWaName, backPipeWaterMat(),
2034  mBManifWaSolid ) ;
2035  cpv.position( mBManifWaLog,
2036  mBManifName(),
2037  copyOne,
2038  DDTranslation(0,0,0),
2039