CMS 3D CMS Logo

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

#include <DDEcalEndcapAlgo.h>

Inheritance diagram for DDEcalEndcapAlgo:

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

DDName addTmp (DDName aName) const
 
DDName alvName (unsigned int i) const
 
const DDTranslationcryFCtr (unsigned int iRow, unsigned int iCol) const
 
DDName cryName () const
 
const DDTranslationcryRCtr (unsigned int iRow, unsigned int iCol) const
 
DDName cutBoxName () const
 
 DDEcalEndcapAlgo ()
 
DDMaterial ddmat (const std::string &s) const
 
DDName ddname (const std::string &s) const
 
void EECreateCR ()
 
void EECreateSC (const unsigned int iSCType, DDCompactView &cpv)
 
double eeCrysFront () const
 
double eeCrysLength () const
 
DDMaterial eeCrysMat () const
 
double eeCrysRear () const
 
std::vector< double > EEGetSCCtrs (const int iCol, const int iRow)
 
DDName EEGetSCName (const int iCol, const int iRow)
 
unsigned int EEGetSCType (const unsigned int iCol, const unsigned int iRow)
 
DDMaterial eeMat () const
 
double eenColumns () const
 
double eenCRSC () const
 
double eenSCCutaway () const
 
double eenSCquad () const
 
double eenSCTypes () const
 
double eePF45 () const
 
double eePFFifth () const
 
double eePFHalf () const
 
void EEPositionCRs (const DDName &pName, const DDTranslation &offset, const int iSCType, DDCompactView &cpv)
 
void EEPosSC (const int iCol, const int iRow, DDName EEDeeName)
 
DDMaterial eeQuaMat () const
 
DDName eeQuaName () const
 
double eeSCAFront () const
 
double eeSCALength () const
 
double eeSCARear () const
 
double eeSCAWall () const
 
double eeSCEFront () const
 
double eeSCELength () const
 
double eeSCERear () const
 
double eeSCHLength () const
 
double eeSCHSide () const
 
const std::vector< double > & eevecEECRCtrs () const
 
const std::vector< double > & eevecEESCCtrs () const
 
const std::vector< double > & eevecEESCCutaway () const
 
const std::vector< double > & eevecEESCProf () const
 
const std::vector< double > & eevecEEShape () const
 
DDMaterial eeWallMat () const
 
double eezOff () const
 
DDName envName (unsigned int i) const
 
void execute (DDCompactView &cpv) override
 
const std::string & idNameSpace () const
 
double iLength () const
 
void initialize (const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs) override
 
DDName intName (unsigned int i) const
 
double iXYOff () const
 
DDRotation myrot (const std::string &s, const DDRotationMatrix &r) const
 
const DDTranslationscrFCtr (unsigned int iRow, unsigned int iCol) const
 
const DDTranslationscrRCtr (unsigned int iRow, unsigned int iCol) const
 
const std::vector< double > & vecEESCLims () const
 
 ~DDEcalEndcapAlgo () override
 

Private Attributes

std::string m_alvName
 
DDTranslation m_cryFCtr [5][5]
 
std::string m_cryName
 
DDTranslation m_cryRCtr [5][5]
 
double m_cryZOff
 
std::string m_cutBoxName
 
const std::vector< double > * m_cutParms
 
double m_EECrysFront
 
double m_EECrysLength
 
std::string m_EECrysMat
 
double m_EECrysRear
 
std::string m_EEMat
 
double m_EEnColumns
 
double m_EEnCRSC
 
double m_EEnSCCutaway
 
double m_EEnSCquad
 
double m_EEnSCTypes
 
std::string m_EEQuaMat
 
std::string m_EEQuaName
 
double m_EESCAFront
 
double m_EESCALength
 
double m_EESCARear
 
double m_EESCAWall
 
double m_EESCEFront
 
double m_EESCELength
 
double m_EESCERear
 
double m_EESCHLength
 
double m_EESCHSide
 
std::string m_EEWallMat
 
double m_EEzOff
 
std::string m_envName
 
std::string m_idNameSpace
 
double m_iLength
 
std::string m_intName
 
double m_iXYOff
 
double m_PF45
 
double m_PFfifth
 
double m_PFhalf
 
DDTranslation m_scrFCtr [10][10]
 
DDTranslation m_scrRCtr [10][10]
 
std::vector< double > m_vecEECRCtrs
 
std::vector< double > m_vecEESCCtrs
 
std::vector< double > m_vecEESCCutaway
 
std::vector< double > m_vecEESCLims
 
std::vector< double > m_vecEESCProf
 
std::vector< double > m_vecEEShape
 
double m_zFront
 

Detailed Description

Definition at line 17 of file DDEcalEndcapAlgo.h.

Member Typedef Documentation

Definition at line 21 of file DDEcalEndcapAlgo.h.

typedef HepGeom::ReflectZ3D DDEcalEndcapAlgo::RfZ3D

Definition at line 23 of file DDEcalEndcapAlgo.h.

typedef HepGeom::Rotate3D DDEcalEndcapAlgo::Ro3D

Definition at line 25 of file DDEcalEndcapAlgo.h.

typedef CLHEP::HepRotation DDEcalEndcapAlgo::Rota

Definition at line 31 of file DDEcalEndcapAlgo.h.

typedef HepGeom::RotateX3D DDEcalEndcapAlgo::RoX3D

Definition at line 28 of file DDEcalEndcapAlgo.h.

typedef HepGeom::RotateY3D DDEcalEndcapAlgo::RoY3D

Definition at line 27 of file DDEcalEndcapAlgo.h.

typedef HepGeom::RotateZ3D DDEcalEndcapAlgo::RoZ3D

Definition at line 26 of file DDEcalEndcapAlgo.h.

typedef HepGeom::Transform3D DDEcalEndcapAlgo::Tf3D

Definition at line 22 of file DDEcalEndcapAlgo.h.

typedef HepGeom::Translate3D DDEcalEndcapAlgo::Tl3D

Definition at line 24 of file DDEcalEndcapAlgo.h.

Definition at line 20 of file DDEcalEndcapAlgo.h.

typedef CLHEP::Hep3Vector DDEcalEndcapAlgo::Vec3

Definition at line 30 of file DDEcalEndcapAlgo.h.

Constructor & Destructor Documentation

DDEcalEndcapAlgo::DDEcalEndcapAlgo ( )

Definition at line 25 of file DDEcalEndcapAlgo.cc.

References LogDebug.

25  :
26  m_idNameSpace ( "" ),
27  m_EEMat ( "" ),
28  m_EEzOff ( 0 ),
29  m_EEQuaName ( "" ),
30  m_EEQuaMat ( "" ),
31  m_EECrysMat ( "" ),
32  m_EEWallMat ( "" ),
33  m_EECrysLength ( 0 ) ,
34  m_EECrysRear ( 0 ) ,
35  m_EECrysFront ( 0 ) ,
36  m_EESCELength ( 0 ) ,
37  m_EESCERear ( 0 ) ,
38  m_EESCEFront ( 0 ) ,
39  m_EESCALength ( 0 ) ,
40  m_EESCARear ( 0 ) ,
41  m_EESCAFront ( 0 ) ,
42  m_EESCAWall ( 0 ) ,
43  m_EESCHLength ( 0 ) ,
44  m_EESCHSide ( 0 ) ,
45  m_EEnSCTypes ( 0 ) ,
46  m_vecEESCProf (),
47  m_EEnColumns ( 0 ),
48  m_vecEEShape (),
49  m_EEnSCCutaway ( 0 ) ,
51  m_EEnSCquad ( 0 ) ,
52  m_vecEESCCtrs(),
53  m_EEnCRSC ( 0 ) ,
54  m_vecEECRCtrs(),
55  m_cutParms ( nullptr ),
56  m_cutBoxName ( "" ),
57  m_envName ( "" ),
58  m_alvName ( "" ),
59  m_intName ( "" ),
60  m_cryName ( "" ),
61  m_PFhalf ( 0 ) ,
62  m_PFfifth ( 0 ) ,
63  m_PF45 ( 0 ) ,
64  m_vecEESCLims (),
65  m_iLength ( 0 ) ,
66  m_iXYOff ( 0 ) ,
67  m_cryZOff ( 0 ) ,
68  m_zFront ( 0 )
69 {
70  LogDebug("EcalGeom") << "DDEcalEndcapAlgo info: Creating an instance" ;
71 }
#define LogDebug(id)
std::string m_cutBoxName
std::string m_intName
std::string m_EEQuaMat
std::string m_idNameSpace
std::vector< double > m_vecEESCLims
std::string m_EECrysMat
std::string m_envName
std::string m_EEQuaName
std::string m_cryName
std::vector< double > m_vecEEShape
std::vector< double > m_vecEESCCtrs
std::vector< double > m_vecEECRCtrs
std::string m_EEWallMat
std::string m_alvName
const std::vector< double > * m_cutParms
std::vector< double > m_vecEESCCutaway
std::vector< double > m_vecEESCProf
DDEcalEndcapAlgo::~DDEcalEndcapAlgo ( )
override

Definition at line 73 of file DDEcalEndcapAlgo.cc.

73 {}

Member Function Documentation

DDName DDEcalEndcapAlgo::addTmp ( DDName  aName) const
inline

Definition at line 118 of file DDEcalEndcapAlgo.h.

References ddname(), and DDName::name().

Referenced by EECreateSC().

118 { return ddname( aName.name() + "Tmp" ) ; }
DDName ddname(const std::string &s) const
const std::string & name() const
Returns the name.
Definition: DDName.cc:53
DDName DDEcalEndcapAlgo::alvName ( unsigned int  i) const
inline

Definition at line 114 of file DDEcalEndcapAlgo.h.

References ddname(), and m_alvName.

Referenced by EECreateSC().

114 { return ddname( m_alvName + std::to_string(i) ) ; }
DDName ddname(const std::string &s) const
std::string m_alvName
const DDTranslation& DDEcalEndcapAlgo::cryFCtr ( unsigned int  iRow,
unsigned int  iCol 
) const
inline

Definition at line 120 of file DDEcalEndcapAlgo.h.

References m_cryFCtr.

Referenced by EEPositionCRs().

121  { return m_cryFCtr[iRow-1][iCol-1] ; }
DDTranslation m_cryFCtr[5][5]
DDName DDEcalEndcapAlgo::cryName ( ) const
inline

Definition at line 116 of file DDEcalEndcapAlgo.h.

References ddname(), and m_cryName.

Referenced by EECreateCR(), and EEPositionCRs().

116 { return ddname( m_cryName ) ; }
std::string m_cryName
DDName ddname(const std::string &s) const
const DDTranslation& DDEcalEndcapAlgo::cryRCtr ( unsigned int  iRow,
unsigned int  iCol 
) const
inline

Definition at line 123 of file DDEcalEndcapAlgo.h.

References m_cryRCtr.

Referenced by EEPositionCRs().

124  { return m_cryRCtr[iRow-1][iCol-1] ; }
DDTranslation m_cryRCtr[5][5]
DDName DDEcalEndcapAlgo::cutBoxName ( ) const
inline

Definition at line 108 of file DDEcalEndcapAlgo.h.

References ddname(), and m_cutBoxName.

Referenced by EECreateSC(), and execute().

108 { return ddname( m_cutBoxName ) ; }
std::string m_cutBoxName
DDName ddname(const std::string &s) const
DDMaterial DDEcalEndcapAlgo::ddmat ( const std::string &  s) const

Definition at line 154 of file DDEcalEndcapAlgo.cc.

References ddname().

Referenced by eeCrysMat(), eeMat(), eeQuaMat(), and eeWallMat().

155 {
156  return DDMaterial( ddname( s ) ) ;
157 }
DDMaterial is used to define and access material information.
Definition: DDMaterial.h:43
DDName ddname(const std::string &s) const
DDName DDEcalEndcapAlgo::ddname ( const std::string &  s) const

Definition at line 160 of file DDEcalEndcapAlgo.cc.

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

Referenced by addTmp(), alvName(), cryName(), cutBoxName(), ddmat(), eeQuaName(), envName(), intName(), and myrot().

161 {
162  const pair<std::string,std::string> temp ( DDSplit(s) ) ;
163  if ( temp.second.empty() ) {
164  return DDName( temp.first,
165  m_idNameSpace ) ;
166  } else {
167  return DDName( temp.first, temp.second );
168  }
169 }
DDName is used to identify DDD entities uniquely.
Definition: DDName.h:15
std::string m_idNameSpace
std::pair< std::string, std::string > DDSplit(const std::string &n)
split into (name,namespace), separator = &#39;:&#39;
Definition: DDSplit.cc:3
void DDEcalEndcapAlgo::EECreateCR ( )

Definition at line 443 of file DDEcalEndcapAlgo.cc.

References cryName(), eeCrysFront(), eeCrysLength(), eeCrysMat(), eeCrysRear(), mathSSE::sqrt(), and DDSolidFactory::trap().

Referenced by execute().

444 {
445  // EECreateCR Create endcap crystal logical volume
446 
447 // edm::LogInfo("EcalGeom") << "EECreateCR: = " << std::endl;
448 
449  DDSolid EECRSolid (DDSolidFactory::trap(
450  cryName(),
451  0.5*eeCrysLength(),
452  atan((eeCrysRear()-eeCrysFront())/(sqrt(2.)*eeCrysLength())),
453  45.*deg,
454  0.5*eeCrysFront(),0.5*eeCrysFront(),0.5*eeCrysFront(),0.*deg,
455  0.5*eeCrysRear(), 0.5*eeCrysRear(), 0.5*eeCrysRear(),0.*deg ) );
456 
457  DDLogicalPart part ( cryName(), eeCrysMat(), EECRSolid ) ;
458 }
A DDSolid represents the shape of a part.
Definition: DDSolid.h:39
DDName cryName() const
double eeCrysLength() const
double eeCrysRear() const
T sqrt(T t)
Definition: SSEVec.h:18
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
Definition: DDLogicalPart.h:93
double eeCrysFront() const
static DDSolid trap(const DDName &name, double pDz, double pTheta, double pPhi, double pDy1, double pDx1, double pDx2, double pAlp1, double pDy2, double pDx3, double pDx4, double pAlp2)
Definition: DDSolid.cc:792
DDMaterial eeCrysMat() const
part
Definition: HCALResponse.h:20
void DDEcalEndcapAlgo::EECreateSC ( const unsigned int  iSCType,
DDCompactView cpv 
)

Definition at line 285 of file DDEcalEndcapAlgo.cc.

References addTmp(), alvName(), cutBoxName(), PVValHelper::dxy, PVValHelper::dz, eeCrysRear(), eeMat(), eePF45(), eePFFifth(), eePFHalf(), EEPositionCRs(), eeSCAFront(), eeSCALength(), eeSCARear(), eeSCAWall(), eeSCEFront(), eeSCELength(), eeSCERear(), eeWallMat(), envName(), iLength(), intName(), iXYOff(), m_cutParms, myrot(), DDCompactView::position(), mathSSE::sqrt(), DDSolidFactory::subtraction(), and DDSolidFactory::trap().

Referenced by execute().

287 { // EECreateSCType Create SC logical volume of the given type
288 
289  DDRotation noRot ;
290 
291  DDLogicalPart eeSCELog;
292  DDLogicalPart eeSCALog;
293  DDLogicalPart eeSCILog;
294 
295 // edm::LogInfo("EcalGeom") << "EECreateSC: Creating SC envelope" << std::endl;
296 
297  const string anum ( std::to_string(iSCType) ) ;
298 
299  const double eFront ( 0.5*eeSCEFront() ) ;
300  const double eRear ( 0.5*eeSCERear() ) ;
301  const double eAng ( atan((eeSCERear()-eeSCEFront())/(sqrt(2.)*eeSCELength())) ) ;
302  const double ffived ( 45*deg ) ;
303  const double zerod ( 0*deg ) ;
304  DDSolid eeSCEnv ( DDSolidFactory::trap(
305  ( 1 == iSCType ? envName( iSCType ) : addTmp( envName( iSCType ) ) ),
306  0.5*eeSCELength(),
307  eAng,
308  ffived,
309  eFront,
310  eFront,
311  eFront,
312  zerod,
313  eRear,
314  eRear,
315  eRear,
316  zerod ) );
317 
318  const double aFront ( 0.5*eeSCAFront() ) ;
319  const double aRear ( 0.5*eeSCARear() ) ;
320  const double aAng ( atan((eeSCARear()-eeSCAFront())/(sqrt(2.)*eeSCALength())) ) ;
321  const DDSolid eeSCAlv ( DDSolidFactory::trap(
322  ( 1== iSCType ? alvName( iSCType ) : addTmp( alvName( iSCType ) ) ),
323  0.5*eeSCALength(),
324  aAng,
325  ffived,
326  aFront,
327  aFront,
328  aFront,
329  zerod,
330  aRear,
331  aRear,
332  aRear,
333  zerod ) );
334 
335  const double dwall ( eeSCAWall() ) ;
336  const double iFront ( aFront - dwall ) ;
337  const double iRear ( iFront ) ; //aRear - dwall ) ;
338  const double iLen ( iLength() ) ; //0.075*eeSCALength() ) ;
339  const DDSolid eeSCInt ( DDSolidFactory::trap(
340  ( 1==iSCType ? intName( iSCType ) : addTmp( intName( iSCType ) ) ),
341  iLen/2.,
342  atan((eeSCARear()-eeSCAFront())/(sqrt(2.)*eeSCALength())),
343  ffived,
344  iFront,
345  iFront,
346  iFront,
347  zerod,
348  iRear,
349  iRear,
350  iRear,
351  zerod ) );
352 
353  const double dz ( -0.5*( eeSCELength() - eeSCALength() ) ) ;
354  const double dxy ( 0.5* dz * (eeSCERear() - eeSCEFront())/eeSCELength() ) ;
355  const double zIOff ( -( eeSCALength() - iLen )/2. ) ;
356  const double xyIOff ( iXYOff() ) ;
357 
358  if( 1 == iSCType ) // standard SC in this block
359  {
360  eeSCELog = DDLogicalPart( envName( iSCType ), eeMat(), eeSCEnv );
361  eeSCALog = DDLogicalPart( alvName( iSCType ), eeWallMat(), eeSCAlv );
362  eeSCILog = DDLogicalPart( intName( iSCType ), eeMat(), eeSCInt );
363  }
364  else // partial SCs this block: create subtraction volumes as appropriate
365  {
366  const double half ( (*m_cutParms)[0] - eePFHalf() *eeCrysRear() ) ;
367  const double fifth ( (*m_cutParms)[0] + eePFFifth()*eeCrysRear() ) ;
368  const double fac ( eePF45() ) ;
369 
370  const double zmm ( 0*mm ) ;
371 
372  DDTranslation cutTra ( 2 == iSCType ? DDTranslation( zmm, half, zmm ) :
373  ( 3 == iSCType ? DDTranslation( half, zmm, zmm ) :
374  ( 4 == iSCType ? DDTranslation( zmm, -fifth, zmm ) :
375  ( 5 == iSCType ? DDTranslation( -half*fac, -half*fac, zmm ) :
376  DDTranslation( -fifth, zmm, zmm ) ) ) ) ) ;
377 
378  const CLHEP::HepRotationZ cutm ( ffived ) ;
379 
380  DDRotation cutRot ( 5 != iSCType ? noRot : myrot( "EECry5Rot",
381  DDRotationMatrix( cutm.xx(), cutm.xy(), cutm.xz(),
382  cutm.yx(), cutm.yy(), cutm.yz(),
383  cutm.zx(), cutm.zy(), cutm.zz() ) ) ) ;
384 
385  DDSolid eeCutEnv ( DDSolidFactory::subtraction( envName( iSCType ),
386  addTmp( envName( iSCType ) ),
387  cutBoxName(),
388  cutTra,
389  cutRot ) ) ;
390 
391  const DDTranslation extra ( dxy, dxy, dz ) ;
392 
393  DDSolid eeCutAlv ( DDSolidFactory::subtraction( alvName( iSCType ),
394  addTmp( alvName( iSCType ) ),
395  cutBoxName(),
396  cutTra - extra,
397  cutRot ) ) ;
398 
399  const double mySign ( iSCType < 4 ? +1. : -1. ) ;
400 
401  const DDTranslation extraI ( xyIOff + mySign*2*mm,
402  xyIOff + mySign*2*mm, zIOff ) ;
403 
404  DDSolid eeCutInt ( DDSolidFactory::subtraction( intName( iSCType ),
405  addTmp( intName( iSCType ) ),
406  cutBoxName(),
407  cutTra - extraI,
408  cutRot ) ) ;
409 
410  eeSCELog = DDLogicalPart( envName( iSCType ), eeMat() , eeCutEnv ) ;
411  eeSCALog = DDLogicalPart( alvName( iSCType ), eeWallMat(), eeCutAlv ) ;
412  eeSCILog = DDLogicalPart( intName( iSCType ), eeMat() , eeCutInt ) ;
413  }
414 
415 
416  cpv.position( eeSCALog, envName( iSCType ), iSCType*100 + 1, DDTranslation( dxy, dxy, dz ), noRot );
417  cpv.position( eeSCILog, alvName( iSCType ), iSCType*100 + 1, DDTranslation( xyIOff, xyIOff, zIOff), noRot );
418 
419  DDTranslation croffset( 0., 0., 0.) ;
420  EEPositionCRs( alvName( iSCType ), croffset, iSCType, cpv ) ;
421 
422 }
DDName cutBoxName() const
DDName addTmp(DDName aName) const
double eeSCEFront() const
void EEPositionCRs(const DDName &pName, const DDTranslation &offset, const int iSCType, DDCompactView &cpv)
ROOT::Math::Rotation3D DDRotationMatrix
A DDRotationMatrix is currently implemented with a ROOT Rotation3D.
DDName envName(unsigned int i) const
double iLength() const
double eeSCELength() const
double eeSCALength() const
A DDSolid represents the shape of a part.
Definition: DDSolid.h:39
DDRotation myrot(const std::string &s, const DDRotationMatrix &r) const
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Definition: DDTranslation.h:7
Represents a uniquely identifyable rotation matrix.
Definition: DDTransform.h:68
DDMaterial eeWallMat() const
double eeCrysRear() const
T sqrt(T t)
Definition: SSEVec.h:18
double eePF45() const
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
Definition: DDLogicalPart.h:93
static DDSolid trap(const DDName &name, double pDz, double pTheta, double pPhi, double pDy1, double pDx1, double pDx2, double pAlp1, double pDy2, double pDx3, double pDx4, double pAlp2)
Definition: DDSolid.cc:792
DDMaterial eeMat() const
static DDSolid subtraction(const DDName &name, const DDSolid &a, const DDSolid &b, const DDTranslation &t, const DDRotation &r)
Definition: DDSolid.cc:774
double eePFHalf() const
double eePFFifth() const
double eeSCAFront() const
void position(const DDLogicalPart &self, const DDLogicalPart &parent, const std::string &copyno, const DDTranslation &trans, const DDRotation &rot, const DDDivision *div=0)
double eeSCARear() const
DDName intName(unsigned int i) const
const std::vector< double > * m_cutParms
DDName alvName(unsigned int i) const
double eeSCAWall() const
double eeSCERear() const
double iXYOff() const
double DDEcalEndcapAlgo::eeCrysFront ( ) const
inline

Definition at line 86 of file DDEcalEndcapAlgo.h.

References m_EECrysFront.

Referenced by EECreateCR(), and EEPositionCRs().

86 { return m_EECrysFront ; }
double DDEcalEndcapAlgo::eeCrysLength ( ) const
inline

Definition at line 84 of file DDEcalEndcapAlgo.h.

References m_EECrysLength.

Referenced by EECreateCR(), and EEPositionCRs().

84 { return m_EECrysLength ; }
DDMaterial DDEcalEndcapAlgo::eeCrysMat ( ) const
inline

Definition at line 81 of file DDEcalEndcapAlgo.h.

References ddmat(), and m_EECrysMat.

Referenced by EECreateCR().

81 { return ddmat( m_EECrysMat ) ; }
DDMaterial ddmat(const std::string &s) const
std::string m_EECrysMat
double DDEcalEndcapAlgo::eeCrysRear ( ) const
inline

Definition at line 85 of file DDEcalEndcapAlgo.h.

References m_EECrysRear.

Referenced by EECreateCR(), EECreateSC(), and EEPositionCRs().

85 { return m_EECrysRear ; }
std::vector<double> DDEcalEndcapAlgo::EEGetSCCtrs ( const int  iCol,
const int  iRow 
)
DDName DDEcalEndcapAlgo::EEGetSCName ( const int  iCol,
const int  iRow 
)
unsigned int DDEcalEndcapAlgo::EEGetSCType ( const unsigned int  iCol,
const unsigned int  iRow 
)

Definition at line 425 of file DDEcalEndcapAlgo.cc.

References eenSCCutaway(), eevecEESCCutaway(), cuy::ii, and createfilelist::int.

Referenced by execute().

427 {
428  unsigned int iType = 1;
429  for( unsigned int ii = 0; ii < (unsigned int)( eenSCCutaway() ) ; ++ii )
430  {
431  if( ( eevecEESCCutaway()[ 3*ii ] == iCol ) &&
432  ( eevecEESCCutaway()[ 3*ii + 1 ] == iRow ) )
433  {
434  iType = int(eevecEESCCutaway()[3*ii+2]);
435 // edm::LogInfo("EcalGeom") << "EEGetSCType: col, row, type = "
436 // << iCol << " " << iRow << " " << iType << std::endl;
437  }
438  }
439  return iType;
440 }
double eenSCCutaway() const
ii
Definition: cuy.py:590
const std::vector< double > & eevecEESCCutaway() const
DDMaterial DDEcalEndcapAlgo::eeMat ( ) const
inline

Definition at line 75 of file DDEcalEndcapAlgo.h.

References ddmat(), and m_EEMat.

Referenced by EECreateSC().

75 { return ddmat( m_EEMat ) ; }
DDMaterial ddmat(const std::string &s) const
double DDEcalEndcapAlgo::eenColumns ( ) const
inline

Definition at line 98 of file DDEcalEndcapAlgo.h.

References m_EEnColumns.

Referenced by execute().

98 { return m_EEnColumns ; }
double DDEcalEndcapAlgo::eenCRSC ( ) const
inline

Definition at line 101 of file DDEcalEndcapAlgo.h.

References m_EEnCRSC.

101 { return m_EEnCRSC ; }
double DDEcalEndcapAlgo::eenSCCutaway ( ) const
inline

Definition at line 99 of file DDEcalEndcapAlgo.h.

References m_EEnSCCutaway.

Referenced by EEGetSCType().

99 { return m_EEnSCCutaway ; }
double DDEcalEndcapAlgo::eenSCquad ( ) const
inline

Definition at line 100 of file DDEcalEndcapAlgo.h.

References m_EEnSCquad.

Referenced by execute().

100 { return m_EEnSCquad ; }
double DDEcalEndcapAlgo::eenSCTypes ( ) const
inline

Definition at line 97 of file DDEcalEndcapAlgo.h.

References m_EEnSCTypes.

Referenced by EEPositionCRs(), and execute().

97 { return m_EEnSCTypes ; }
double DDEcalEndcapAlgo::eePF45 ( ) const
inline

Definition at line 111 of file DDEcalEndcapAlgo.h.

References m_PF45.

Referenced by EECreateSC().

111 { return m_PF45 ; }
double DDEcalEndcapAlgo::eePFFifth ( ) const
inline

Definition at line 110 of file DDEcalEndcapAlgo.h.

References m_PFfifth.

Referenced by EECreateSC().

110 { return m_PFfifth ; }
double DDEcalEndcapAlgo::eePFHalf ( ) const
inline

Definition at line 109 of file DDEcalEndcapAlgo.h.

References m_PFhalf.

Referenced by EECreateSC().

109 { return m_PFhalf ; }
void DDEcalEndcapAlgo::EEPositionCRs ( const DDName pName,
const DDTranslation offset,
const int  iSCType,
DDCompactView cpv 
)

Definition at line 461 of file DDEcalEndcapAlgo.cc.

References DDEcalEndcapTrap::centrePos(), cryFCtr(), cryName(), cryRCtr(), eeCrysFront(), eeCrysLength(), eeCrysRear(), eenSCTypes(), eevecEESCProf(), DDName::fullname(), m_cryZOff, DDEcalEndcapTrap::moveto(), myrot(), create_public_lumi_plots::ncol, DDCompactView::position(), and DDEcalEndcapTrap::rotation().

Referenced by EECreateSC().

465 {
466  // EEPositionCRs Position crystals within parent supercrystal interior volume
467 
468 // edm::LogInfo("EcalGeom") << "EEPositionCRs called " << std::endl;
469 
470  static const unsigned int ncol ( 5 ) ;
471 
472  if( iSCType > 0 &&
473  iSCType <= eenSCTypes() )
474  {
475  const unsigned int icoffset ( ( iSCType - 1 )*ncol - 1 ) ;
476 
477  // Loop over columns of SC
478  for( unsigned int icol ( 1 ); icol <= ncol ; ++icol )
479  {
480  // Get column limits for this SC type from xml input
481  const int ncrcol ( (int) eevecEESCProf()[ icoffset + icol ] ) ;
482 
483  const int imin ( 0 < ncrcol ? 1 : ( 0 > ncrcol ? ncol + ncrcol + 1 : 0 ) ) ;
484  const int imax ( 0 < ncrcol ? ncrcol : ( 0 > ncrcol ? ncol : 0 ) ) ;
485 
486  if( imax>0 )
487  {
488  // Loop over crystals in this row
489  for( int irow ( imin ); irow <= imax ; ++irow )
490  {
491 // edm::LogInfo("EcalGeom") << " type, col, row " << iSCType
492 // << " " << icol << " " << irow << std::endl;
493 
494  // Create crystal as a DDEcalEndcapTrap object and calculate rotation and
495  // translation required to position it in the SC.
496  DDEcalEndcapTrap crystal( 1, eeCrysFront(), eeCrysRear(), eeCrysLength() ) ;
497 
498  crystal.moveto( cryFCtr( icol, irow ) ,
499  cryRCtr( icol, irow ) );
500 
501  DDName rname ( "EECrRoC" + std::to_string( icol ) + "R" + std::to_string( irow ) ) ;
502 
503  cpv.position( cryName(),
504  pName,
505  100*iSCType + 10*( icol - 1 ) + ( irow - 1 ),
506  crystal.centrePos() - DDTranslation(0,0,m_cryZOff),
507  myrot( rname.fullname(), crystal.rotation() ) ) ;
508  }
509  }
510  }
511  }
512 }
DDName is used to identify DDD entities uniquely.
Definition: DDName.h:15
DDRotation myrot(const std::string &s, const DDRotationMatrix &r) const
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Definition: DDTranslation.h:7
DDName cryName() const
double eeCrysLength() const
const std::vector< double > & eevecEESCProf() const
double eeCrysRear() const
double eeCrysFront() const
const DDTranslation & cryRCtr(unsigned int iRow, unsigned int iCol) const
const DDTranslation & cryFCtr(unsigned int iRow, unsigned int iCol) const
void position(const DDLogicalPart &self, const DDLogicalPart &parent, const std::string &copyno, const DDTranslation &trans, const DDRotation &rot, const DDDivision *div=0)
double eenSCTypes() const
void DDEcalEndcapAlgo::EEPosSC ( const int  iCol,
const int  iRow,
DDName  EEDeeName 
)
DDMaterial DDEcalEndcapAlgo::eeQuaMat ( ) const
inline

Definition at line 79 of file DDEcalEndcapAlgo.h.

References ddmat(), and m_EEQuaMat.

79 { return ddmat( m_EEQuaMat ) ; }
DDMaterial ddmat(const std::string &s) const
std::string m_EEQuaMat
DDName DDEcalEndcapAlgo::eeQuaName ( ) const
inline

Definition at line 78 of file DDEcalEndcapAlgo.h.

References ddname(), and m_EEQuaName.

Referenced by execute().

78 { return ddname( m_EEQuaName ) ; }
std::string m_EEQuaName
DDName ddname(const std::string &s) const
double DDEcalEndcapAlgo::eeSCAFront ( ) const
inline

Definition at line 92 of file DDEcalEndcapAlgo.h.

References m_EESCAFront.

Referenced by EECreateSC().

92 { return m_EESCAFront ; }
double DDEcalEndcapAlgo::eeSCALength ( ) const
inline

Definition at line 90 of file DDEcalEndcapAlgo.h.

References m_EESCALength.

Referenced by EECreateSC().

90 { return m_EESCALength ; }
double DDEcalEndcapAlgo::eeSCARear ( ) const
inline

Definition at line 91 of file DDEcalEndcapAlgo.h.

References m_EESCARear.

Referenced by EECreateSC().

91 { return m_EESCARear ; }
double DDEcalEndcapAlgo::eeSCAWall ( ) const
inline

Definition at line 93 of file DDEcalEndcapAlgo.h.

References m_EESCAWall.

Referenced by EECreateSC().

93 { return m_EESCAWall ; }
double DDEcalEndcapAlgo::eeSCEFront ( ) const
inline

Definition at line 89 of file DDEcalEndcapAlgo.h.

References m_EESCEFront.

Referenced by EECreateSC(), and execute().

89 { return m_EESCEFront ; }
double DDEcalEndcapAlgo::eeSCELength ( ) const
inline

Definition at line 87 of file DDEcalEndcapAlgo.h.

References m_EESCELength.

Referenced by EECreateSC(), and execute().

87 { return m_EESCELength ; }
double DDEcalEndcapAlgo::eeSCERear ( ) const
inline

Definition at line 88 of file DDEcalEndcapAlgo.h.

References m_EESCERear.

Referenced by EECreateSC(), and execute().

88 { return m_EESCERear ; }
double DDEcalEndcapAlgo::eeSCHLength ( ) const
inline

Definition at line 94 of file DDEcalEndcapAlgo.h.

References m_EESCHLength.

94 { return m_EESCHLength ; }
double DDEcalEndcapAlgo::eeSCHSide ( ) const
inline

Definition at line 95 of file DDEcalEndcapAlgo.h.

References m_EESCHSide.

95 { return m_EESCHSide ; }
const std::vector<double>& DDEcalEndcapAlgo::eevecEECRCtrs ( ) const
inline

Definition at line 106 of file DDEcalEndcapAlgo.h.

References m_vecEECRCtrs.

Referenced by execute().

106 { return m_vecEECRCtrs ; }
std::vector< double > m_vecEECRCtrs
const std::vector<double>& DDEcalEndcapAlgo::eevecEESCCtrs ( ) const
inline

Definition at line 105 of file DDEcalEndcapAlgo.h.

References m_vecEESCCtrs.

Referenced by execute().

105 { return m_vecEESCCtrs ; }
std::vector< double > m_vecEESCCtrs
const std::vector<double>& DDEcalEndcapAlgo::eevecEESCCutaway ( ) const
inline

Definition at line 104 of file DDEcalEndcapAlgo.h.

References m_vecEESCCutaway.

Referenced by EEGetSCType().

104 { return m_vecEESCCutaway ; }
std::vector< double > m_vecEESCCutaway
const std::vector<double>& DDEcalEndcapAlgo::eevecEESCProf ( ) const
inline

Definition at line 102 of file DDEcalEndcapAlgo.h.

References m_vecEESCProf.

Referenced by EEPositionCRs().

102 { return m_vecEESCProf ; }
std::vector< double > m_vecEESCProf
const std::vector<double>& DDEcalEndcapAlgo::eevecEEShape ( ) const
inline

Definition at line 103 of file DDEcalEndcapAlgo.h.

References m_vecEEShape.

Referenced by execute().

103 { return m_vecEEShape ; }
std::vector< double > m_vecEEShape
DDMaterial DDEcalEndcapAlgo::eeWallMat ( ) const
inline

Definition at line 82 of file DDEcalEndcapAlgo.h.

References ddmat(), and m_EEWallMat.

Referenced by EECreateSC().

82 { return ddmat( m_EEWallMat ) ; }
DDMaterial ddmat(const std::string &s) const
std::string m_EEWallMat
double DDEcalEndcapAlgo::eezOff ( ) const
inline

Definition at line 76 of file DDEcalEndcapAlgo.h.

References m_EEzOff.

Referenced by execute().

76 { return m_EEzOff ; }
DDName DDEcalEndcapAlgo::envName ( unsigned int  i) const
inline

Definition at line 113 of file DDEcalEndcapAlgo.h.

References ddname(), and m_envName.

Referenced by EECreateSC(), and execute().

113 { return ddname( m_envName + std::to_string(i) ) ; }
std::string m_envName
DDName ddname(const std::string &s) const
void DDEcalEndcapAlgo::execute ( DDCompactView cpv)
override

Definition at line 174 of file DDEcalEndcapAlgo.cc.

References DDSolidFactory::box(), DDEcalEndcapTrap::centrePos(), cutBoxName(), EECreateCR(), EECreateSC(), EEGetSCType(), eenColumns(), eenSCquad(), eenSCTypes(), eeQuaName(), eeSCEFront(), eeSCELength(), eeSCERear(), eevecEECRCtrs(), eevecEESCCtrs(), eevecEEShape(), eezOff(), envName(), DDName::fullname(), createfilelist::int, m_cryFCtr, m_cryRCtr, m_cutParms, m_scrFCtr, m_scrRCtr, m_zFront, DDEcalEndcapTrap::moveto(), myrot(), dataset::name, DDSolid::parameters(), DDCompactView::position(), DDEcalEndcapTrap::rotation(), scrFCtr(), scrRCtr(), mathSSE::sqrt(), DDEcalEndcapTrap::translate(), and vecEESCLims().

175 {
176 // Position supercrystals in EE Quadrant
177 // Version: 1.00
178 // Created: 30 July 2007
179 // Last Mod:
180 //---------------------------------------------------------------------
181 
182 //********************************* cutbox for trimming edge SCs
183  const double cutWid ( eeSCERear()/sqrt(2.) ) ;
184  const DDSolid eeCutBox ( DDSolidFactory::box(
185  cutBoxName(),
186  cutWid,
187  cutWid,
188  eeSCELength()/sqrt(2.) ) ) ;
189  m_cutParms = &eeCutBox.parameters() ;
190 //**************************************************************
191 
192  const double zFix ( m_zFront - 3172*mm ) ; // fix for changing z offset
193 
194 //** fill supercrystal front and rear center positions from xml input
195  for( unsigned int iC ( 0 ) ; iC != (unsigned int) eenSCquad() ; ++iC )
196  {
197  const unsigned int iOff ( 8*iC ) ;
198  const unsigned int ix ( (unsigned int) eevecEESCCtrs()[ iOff + 0 ] ) ;
199  const unsigned int iy ( (unsigned int) eevecEESCCtrs()[ iOff + 1 ] ) ;
200 
201  assert( ix > 0 && ix < 11 && iy >0 && iy < 11 ) ;
202 
203  m_scrFCtr[ ix - 1 ][ iy - 1 ] = DDTranslation( eevecEESCCtrs()[ iOff + 2 ] ,
204  eevecEESCCtrs()[ iOff + 4 ] ,
205  eevecEESCCtrs()[ iOff + 6 ] + zFix ) ;
206 
207  m_scrRCtr[ ix - 1 ][ iy - 1 ] = DDTranslation( eevecEESCCtrs()[ iOff + 3 ] ,
208  eevecEESCCtrs()[ iOff + 5 ] ,
209  eevecEESCCtrs()[ iOff + 7 ] + zFix ) ;
210  }
211 
212 //** fill crystal front and rear center positions from xml input
213  for( unsigned int iC ( 0 ) ; iC != 25 ; ++iC )
214  {
215  const unsigned int iOff ( 8*iC ) ;
216  const unsigned int ix ( (unsigned int) eevecEECRCtrs()[ iOff + 0 ] ) ;
217  const unsigned int iy ( (unsigned int) eevecEECRCtrs()[ iOff + 1 ] ) ;
218 
219  assert( ix > 0 && ix < 6 && iy >0 && iy < 6 ) ;
220 
221  m_cryFCtr[ ix - 1 ][ iy - 1 ] = DDTranslation( eevecEECRCtrs()[ iOff + 2 ] ,
222  eevecEECRCtrs()[ iOff + 4 ] ,
223  eevecEECRCtrs()[ iOff + 6 ] ) ;
224 
225  m_cryRCtr[ ix - 1 ][ iy - 1 ] = DDTranslation( eevecEECRCtrs()[ iOff + 3 ] ,
226  eevecEECRCtrs()[ iOff + 5 ] ,
227  eevecEECRCtrs()[ iOff + 7 ] ) ;
228  }
229 
230  EECreateCR() ; // make a single crystal just once here
231 
232  for( unsigned int isc ( 0 ); isc<eenSCTypes() ; ++isc )
233  {
234  EECreateSC( isc+1, cpv );
235  }
236 
237  const std::vector<double>& colLimits ( eevecEEShape() );
238 //** Loop over endcap columns
239  for( int icol = 1; icol<=int(eenColumns()); icol++ )
240  {
241 //** Loop over SCs in column, using limits from xml input
242  for( int irow = int(colLimits[2*icol-2]);
243  irow <= int(colLimits[2*icol-1]) ; ++irow )
244  {
245  if( vecEESCLims()[0] <= icol &&
246  vecEESCLims()[1] >= icol &&
247  vecEESCLims()[2] <= irow &&
248  vecEESCLims()[3] >= irow )
249  {
250  // Find SC type (complete or partial) for this location
251  const unsigned int isctype ( EEGetSCType( icol, irow ) );
252 
253  // Create SC as a DDEcalEndcapTrap object and calculate rotation and
254  // translation required to position it in the endcap.
255  DDEcalEndcapTrap scrys( 1, eeSCEFront(), eeSCERear(), eeSCELength() ) ;
256 
257  scrys.moveto( scrFCtr( icol, irow ),
258  scrRCtr( icol, irow ) );
259  scrys.translate( DDTranslation( 0., 0., -eezOff() ) ) ;
260 
261  DDName rname ( envName( isctype ).name()
262  + std::to_string( icol ) + "R" + std::to_string( irow ) ) ;
263 /*
264  edm::LogInfo("EcalGeom") << "Quadrant, SC col/row "
265  << eeQuaName() << " " << icol << " / " << irow << std::endl
266  << " Limits " << int(colLimits[2*icol-2]) << "->" << int(colLimits[2*icol-1]) << std::endl
267  << " SC type = " << isctype << std::endl
268  << " Zoff, Scz = " << eezOff() << " " << sc1.z() << std::endl
269  << " Rotation " << rname << " " << scrys.rotation() << std::endl
270  << " Position " << sccentre << std::endl;
271 */
272  // Position SC in endcap
273  cpv.position( envName( isctype ),
274  eeQuaName(),
275  100*isctype + 10*(icol-1) + (irow-1),
276  scrys.centrePos(),
277  myrot( rname.fullname(), scrys.rotation() ) ) ;
278  }
279  }
280  }
281 }
DDName cutBoxName() const
DDTranslation m_cryFCtr[5][5]
const DDTranslation & scrRCtr(unsigned int iRow, unsigned int iCol) const
const std::vector< double > & eevecEESCCtrs() const
double eeSCEFront() const
DDTranslation m_scrRCtr[10][10]
DDName envName(unsigned int i) const
unsigned int EEGetSCType(const unsigned int iCol, const unsigned int iRow)
DDName is used to identify DDD entities uniquely.
Definition: DDName.h:15
DDName eeQuaName() const
double eeSCELength() const
A DDSolid represents the shape of a part.
Definition: DDSolid.h:39
DDRotation myrot(const std::string &s, const DDRotationMatrix &r) const
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Definition: DDTranslation.h:7
const std::vector< double > & vecEESCLims() const
T sqrt(T t)
Definition: SSEVec.h:18
DDTranslation m_scrFCtr[10][10]
double eenSCquad() const
static DDSolid box(const DDName &name, double xHalf, double yHalf, double zHalf)
Creates a box with side length 2*xHalf, 2*yHalf, 2*zHalf.
Definition: DDSolid.cc:704
const std::vector< double > & eevecEECRCtrs() const
double eezOff() const
DDTranslation m_cryRCtr[5][5]
double eenColumns() const
void position(const DDLogicalPart &self, const DDLogicalPart &parent, const std::string &copyno, const DDTranslation &trans, const DDRotation &rot, const DDDivision *div=0)
const DDTranslation & scrFCtr(unsigned int iRow, unsigned int iCol) const
double eenSCTypes() const
void EECreateSC(const unsigned int iSCType, DDCompactView &cpv)
const std::vector< double > & eevecEEShape() const
const std::vector< double > * m_cutParms
double eeSCERear() const
const std::string& DDEcalEndcapAlgo::idNameSpace ( ) const
inline

Definition at line 72 of file DDEcalEndcapAlgo.h.

References m_idNameSpace.

72 { return m_idNameSpace ; }
std::string m_idNameSpace
double DDEcalEndcapAlgo::iLength ( ) const
inline

Definition at line 134 of file DDEcalEndcapAlgo.h.

References m_iLength.

Referenced by EECreateSC().

134 { return m_iLength ; }
void DDEcalEndcapAlgo::initialize ( const DDNumericArguments nArgs,
const DDVectorArguments vArgs,
const DDMapArguments mArgs,
const DDStringArguments sArgs,
const DDStringVectorArguments vsArgs 
)
override

Definition at line 78 of file DDEcalEndcapAlgo.cc.

References m_alvName, m_cryName, m_cryZOff, m_cutBoxName, m_EECrysFront, m_EECrysLength, m_EECrysMat, m_EECrysRear, m_EEMat, m_EEnColumns, m_EEnCRSC, m_EEnSCCutaway, m_EEnSCquad, m_EEnSCTypes, m_EEQuaMat, m_EEQuaName, m_EESCAFront, m_EESCALength, m_EESCARear, m_EESCAWall, m_EESCEFront, m_EESCELength, m_EESCERear, m_EESCHLength, m_EESCHSide, m_EEWallMat, m_EEzOff, m_envName, m_idNameSpace, m_iLength, m_intName, m_iXYOff, m_PF45, m_PFfifth, m_PFhalf, m_vecEECRCtrs, m_vecEESCCtrs, m_vecEESCCutaway, m_vecEESCLims, m_vecEESCProf, m_vecEEShape, m_zFront, DDCurrentNamespace::ns(), and class-composition::parent.

82  {
83 
84 // edm::LogInfo("EcalGeom") << "DDEcalEndcapAlgo info: Initialize" ;
86  // TRICK!
87  m_idNameSpace = parent().name().ns();
88  // barrel parent volume
89  m_EEMat = sArgs["EEMat" ] ;
90  m_EEzOff = nArgs["EEzOff" ] ;
91 
92  m_EEQuaName = sArgs["EEQuaName" ] ;
93  m_EEQuaMat = sArgs["EEQuaMat" ] ;
94  m_EECrysMat = sArgs["EECrysMat" ] ;
95  m_EEWallMat = sArgs["EEWallMat" ] ;
96  m_EECrysLength = nArgs["EECrysLength" ] ;
97  m_EECrysRear = nArgs["EECrysRear" ] ;
98  m_EECrysFront = nArgs["EECrysFront" ] ;
99  m_EESCELength = nArgs["EESCELength" ] ;
100  m_EESCERear = nArgs["EESCERear" ] ;
101  m_EESCEFront = nArgs["EESCEFront" ] ;
102  m_EESCALength = nArgs["EESCALength" ] ;
103  m_EESCARear = nArgs["EESCARear" ] ;
104  m_EESCAFront = nArgs["EESCAFront" ] ;
105  m_EESCAWall = nArgs["EESCAWall" ] ;
106  m_EESCHLength = nArgs["EESCHLength" ] ;
107  m_EESCHSide = nArgs["EESCHSide" ] ;
108  m_EEnSCTypes = nArgs["EEnSCTypes"];
109  m_EEnColumns = nArgs["EEnColumns"];
110  m_EEnSCCutaway = nArgs["EEnSCCutaway"];
111  m_EEnSCquad = nArgs["EEnSCquad"];
112  m_EEnCRSC = nArgs["EEnCRSC"];
113  m_vecEESCProf = vArgs["EESCProf"];
114  m_vecEEShape = vArgs["EEShape"];
115  m_vecEESCCutaway = vArgs["EESCCutaway"];
116  m_vecEESCCtrs = vArgs["EESCCtrs"];
117  m_vecEECRCtrs = vArgs["EECRCtrs"];
118 
119  m_cutBoxName = sArgs["EECutBoxName" ] ;
120 
121  m_envName = sArgs["EEEnvName" ] ;
122  m_alvName = sArgs["EEAlvName" ] ;
123  m_intName = sArgs["EEIntName" ] ;
124  m_cryName = sArgs["EECryName" ] ;
125 
126  m_PFhalf = nArgs["EEPFHalf" ] ;
127  m_PFfifth = nArgs["EEPFFifth" ] ;
128  m_PF45 = nArgs["EEPF45" ] ;
129 
130  m_vecEESCLims = vArgs["EESCLims"];
131 
132  m_iLength = nArgs["EEiLength" ] ;
133 
134  m_iXYOff = nArgs["EEiXYOff" ] ;
135 
136  m_cryZOff = nArgs["EECryZOff"] ;
137 
138  m_zFront = nArgs["EEzFront"] ;
139 }
std::string m_cutBoxName
std::string m_intName
static std::string & ns()
std::string m_EEQuaMat
std::string m_idNameSpace
std::vector< double > m_vecEESCLims
std::string m_EECrysMat
std::string m_envName
std::string m_EEQuaName
std::string m_cryName
std::vector< double > m_vecEEShape
std::vector< double > m_vecEESCCtrs
std::vector< double > m_vecEECRCtrs
std::string m_EEWallMat
std::string m_alvName
std::vector< double > m_vecEESCCutaway
std::vector< double > m_vecEESCProf
DDName DDEcalEndcapAlgo::intName ( unsigned int  i) const
inline

Definition at line 115 of file DDEcalEndcapAlgo.h.

References ddname(), and m_intName.

Referenced by EECreateSC().

115 { return ddname( m_intName + std::to_string(i) ) ; }
std::string m_intName
DDName ddname(const std::string &s) const
double DDEcalEndcapAlgo::iXYOff ( ) const
inline

Definition at line 135 of file DDEcalEndcapAlgo.h.

References m_iXYOff.

Referenced by EECreateSC().

135 { return m_iXYOff ; }
DDRotation DDEcalEndcapAlgo::myrot ( const std::string &  s,
const DDRotationMatrix r 
) const

Definition at line 147 of file DDEcalEndcapAlgo.cc.

References ddname(), DDrot(), and m_idNameSpace.

Referenced by EECreateSC(), EEPositionCRs(), and execute().

149 {
150  return DDrot( ddname( m_idNameSpace + ":" + s ), std::make_unique<DDRotationMatrix>( r ) ) ;
151 }
std::string m_idNameSpace
DDName ddname(const std::string &s) const
DDRotation DDrot(const DDName &name, std::unique_ptr< DDRotationMatrix > rot)
Definition of a uniquely identifiable rotation matrix named by DDName name.
Definition: DDRotation.cc:80
const DDTranslation& DDEcalEndcapAlgo::scrFCtr ( unsigned int  iRow,
unsigned int  iCol 
) const
inline

Definition at line 126 of file DDEcalEndcapAlgo.h.

References m_scrFCtr.

Referenced by execute().

127  { return m_scrFCtr[iRow-1][iCol-1] ; }
DDTranslation m_scrFCtr[10][10]
const DDTranslation& DDEcalEndcapAlgo::scrRCtr ( unsigned int  iRow,
unsigned int  iCol 
) const
inline

Definition at line 129 of file DDEcalEndcapAlgo.h.

References m_scrRCtr.

Referenced by execute().

130  { return m_scrRCtr[iRow-1][iCol-1] ; }
DDTranslation m_scrRCtr[10][10]
const std::vector<double>& DDEcalEndcapAlgo::vecEESCLims ( ) const
inline

Definition at line 132 of file DDEcalEndcapAlgo.h.

References m_vecEESCLims.

Referenced by execute().

132 { return m_vecEESCLims ; }
std::vector< double > m_vecEESCLims

Member Data Documentation

std::string DDEcalEndcapAlgo::m_alvName
private

Definition at line 181 of file DDEcalEndcapAlgo.h.

Referenced by alvName(), and initialize().

DDTranslation DDEcalEndcapAlgo::m_cryFCtr[5][5]
private

Definition at line 185 of file DDEcalEndcapAlgo.h.

Referenced by cryFCtr(), and execute().

std::string DDEcalEndcapAlgo::m_cryName
private

Definition at line 183 of file DDEcalEndcapAlgo.h.

Referenced by cryName(), and initialize().

DDTranslation DDEcalEndcapAlgo::m_cryRCtr[5][5]
private

Definition at line 186 of file DDEcalEndcapAlgo.h.

Referenced by cryRCtr(), and execute().

double DDEcalEndcapAlgo::m_cryZOff
private

Definition at line 201 of file DDEcalEndcapAlgo.h.

Referenced by EEPositionCRs(), and initialize().

std::string DDEcalEndcapAlgo::m_cutBoxName
private

Definition at line 178 of file DDEcalEndcapAlgo.h.

Referenced by cutBoxName(), and initialize().

const std::vector<double>* DDEcalEndcapAlgo::m_cutParms
private

Definition at line 177 of file DDEcalEndcapAlgo.h.

Referenced by EECreateSC(), and execute().

double DDEcalEndcapAlgo::m_EECrysFront
private

Definition at line 155 of file DDEcalEndcapAlgo.h.

Referenced by eeCrysFront(), and initialize().

double DDEcalEndcapAlgo::m_EECrysLength
private

Definition at line 153 of file DDEcalEndcapAlgo.h.

Referenced by eeCrysLength(), and initialize().

std::string DDEcalEndcapAlgo::m_EECrysMat
private

Definition at line 150 of file DDEcalEndcapAlgo.h.

Referenced by eeCrysMat(), and initialize().

double DDEcalEndcapAlgo::m_EECrysRear
private

Definition at line 154 of file DDEcalEndcapAlgo.h.

Referenced by eeCrysRear(), and initialize().

std::string DDEcalEndcapAlgo::m_EEMat
private

Definition at line 144 of file DDEcalEndcapAlgo.h.

Referenced by eeMat(), and initialize().

double DDEcalEndcapAlgo::m_EEnColumns
private

Definition at line 168 of file DDEcalEndcapAlgo.h.

Referenced by eenColumns(), and initialize().

double DDEcalEndcapAlgo::m_EEnCRSC
private

Definition at line 174 of file DDEcalEndcapAlgo.h.

Referenced by eenCRSC(), and initialize().

double DDEcalEndcapAlgo::m_EEnSCCutaway
private

Definition at line 170 of file DDEcalEndcapAlgo.h.

Referenced by eenSCCutaway(), and initialize().

double DDEcalEndcapAlgo::m_EEnSCquad
private

Definition at line 172 of file DDEcalEndcapAlgo.h.

Referenced by eenSCquad(), and initialize().

double DDEcalEndcapAlgo::m_EEnSCTypes
private

Definition at line 166 of file DDEcalEndcapAlgo.h.

Referenced by eenSCTypes(), and initialize().

std::string DDEcalEndcapAlgo::m_EEQuaMat
private

Definition at line 148 of file DDEcalEndcapAlgo.h.

Referenced by eeQuaMat(), and initialize().

std::string DDEcalEndcapAlgo::m_EEQuaName
private

Definition at line 147 of file DDEcalEndcapAlgo.h.

Referenced by eeQuaName(), and initialize().

double DDEcalEndcapAlgo::m_EESCAFront
private

Definition at line 161 of file DDEcalEndcapAlgo.h.

Referenced by eeSCAFront(), and initialize().

double DDEcalEndcapAlgo::m_EESCALength
private

Definition at line 159 of file DDEcalEndcapAlgo.h.

Referenced by eeSCALength(), and initialize().

double DDEcalEndcapAlgo::m_EESCARear
private

Definition at line 160 of file DDEcalEndcapAlgo.h.

Referenced by eeSCARear(), and initialize().

double DDEcalEndcapAlgo::m_EESCAWall
private

Definition at line 162 of file DDEcalEndcapAlgo.h.

Referenced by eeSCAWall(), and initialize().

double DDEcalEndcapAlgo::m_EESCEFront
private

Definition at line 158 of file DDEcalEndcapAlgo.h.

Referenced by eeSCEFront(), and initialize().

double DDEcalEndcapAlgo::m_EESCELength
private

Definition at line 156 of file DDEcalEndcapAlgo.h.

Referenced by eeSCELength(), and initialize().

double DDEcalEndcapAlgo::m_EESCERear
private

Definition at line 157 of file DDEcalEndcapAlgo.h.

Referenced by eeSCERear(), and initialize().

double DDEcalEndcapAlgo::m_EESCHLength
private

Definition at line 163 of file DDEcalEndcapAlgo.h.

Referenced by eeSCHLength(), and initialize().

double DDEcalEndcapAlgo::m_EESCHSide
private

Definition at line 164 of file DDEcalEndcapAlgo.h.

Referenced by eeSCHSide(), and initialize().

std::string DDEcalEndcapAlgo::m_EEWallMat
private

Definition at line 151 of file DDEcalEndcapAlgo.h.

Referenced by eeWallMat(), and initialize().

double DDEcalEndcapAlgo::m_EEzOff
private

Definition at line 145 of file DDEcalEndcapAlgo.h.

Referenced by eezOff(), and initialize().

std::string DDEcalEndcapAlgo::m_envName
private

Definition at line 180 of file DDEcalEndcapAlgo.h.

Referenced by envName(), and initialize().

std::string DDEcalEndcapAlgo::m_idNameSpace
private

Definition at line 141 of file DDEcalEndcapAlgo.h.

Referenced by ddname(), idNameSpace(), initialize(), and myrot().

double DDEcalEndcapAlgo::m_iLength
private

Definition at line 197 of file DDEcalEndcapAlgo.h.

Referenced by iLength(), and initialize().

std::string DDEcalEndcapAlgo::m_intName
private

Definition at line 182 of file DDEcalEndcapAlgo.h.

Referenced by initialize(), and intName().

double DDEcalEndcapAlgo::m_iXYOff
private

Definition at line 199 of file DDEcalEndcapAlgo.h.

Referenced by initialize(), and iXYOff().

double DDEcalEndcapAlgo::m_PF45
private

Definition at line 193 of file DDEcalEndcapAlgo.h.

Referenced by eePF45(), and initialize().

double DDEcalEndcapAlgo::m_PFfifth
private

Definition at line 192 of file DDEcalEndcapAlgo.h.

Referenced by eePFFifth(), and initialize().

double DDEcalEndcapAlgo::m_PFhalf
private

Definition at line 191 of file DDEcalEndcapAlgo.h.

Referenced by eePFHalf(), and initialize().

DDTranslation DDEcalEndcapAlgo::m_scrFCtr[10][10]
private

Definition at line 188 of file DDEcalEndcapAlgo.h.

Referenced by execute(), and scrFCtr().

DDTranslation DDEcalEndcapAlgo::m_scrRCtr[10][10]
private

Definition at line 189 of file DDEcalEndcapAlgo.h.

Referenced by execute(), and scrRCtr().

std::vector<double> DDEcalEndcapAlgo::m_vecEECRCtrs
private

Definition at line 175 of file DDEcalEndcapAlgo.h.

Referenced by eevecEECRCtrs(), and initialize().

std::vector<double> DDEcalEndcapAlgo::m_vecEESCCtrs
private

Definition at line 173 of file DDEcalEndcapAlgo.h.

Referenced by eevecEESCCtrs(), and initialize().

std::vector<double> DDEcalEndcapAlgo::m_vecEESCCutaway
private

Definition at line 171 of file DDEcalEndcapAlgo.h.

Referenced by eevecEESCCutaway(), and initialize().

std::vector<double> DDEcalEndcapAlgo::m_vecEESCLims
private

Definition at line 195 of file DDEcalEndcapAlgo.h.

Referenced by initialize(), and vecEESCLims().

std::vector<double> DDEcalEndcapAlgo::m_vecEESCProf
private

Definition at line 167 of file DDEcalEndcapAlgo.h.

Referenced by eevecEESCProf(), and initialize().

std::vector<double> DDEcalEndcapAlgo::m_vecEEShape
private

Definition at line 169 of file DDEcalEndcapAlgo.h.

Referenced by eevecEEShape(), and initialize().

double DDEcalEndcapAlgo::m_zFront
private

Definition at line 203 of file DDEcalEndcapAlgo.h.

Referenced by execute(), and initialize().