test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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)
 
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)
 
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
 
virtual ~DDEcalEndcapAlgo ()
 

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 ( 0 ),
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 ( )
virtual

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:90
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) ) ; }
int i
Definition: DBlmapReader.cc:9
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 163 of file DDEcalEndcapAlgo.cc.

References ddname().

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

164 {
165  return DDMaterial( ddname( s ) ) ;
166 }
DDMaterial is used to define and access material information.
Definition: DDMaterial.h:41
DDName ddname(const std::string &s) const
DDName DDEcalEndcapAlgo::ddname ( const std::string &  s) const

Definition at line 169 of file DDEcalEndcapAlgo.cc.

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

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

170 {
171  const pair<std::string,std::string> temp ( DDSplit(s) ) ;
172  if ( temp.second == "" ) {
173  return DDName( temp.first,
174  m_idNameSpace ) ;
175  } else {
176  return DDName( temp.first, temp.second );
177  }
178 }
DDName is used to identify DDD entities uniquely.
Definition: DDName.h:16
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:4
void DDEcalEndcapAlgo::EECreateCR ( )

Definition at line 452 of file DDEcalEndcapAlgo.cc.

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

Referenced by execute().

453 {
454  // EECreateCR Create endcap crystal logical volume
455 
456 // edm::LogInfo("EcalGeom") << "EECreateCR: = " << std::endl;
457 
458  DDSolid EECRSolid (DDSolidFactory::trap(
459  cryName(),
460  0.5*eeCrysLength(),
461  atan((eeCrysRear()-eeCrysFront())/(sqrt(2.)*eeCrysLength())),
462  45.*deg,
463  0.5*eeCrysFront(),0.5*eeCrysFront(),0.5*eeCrysFront(),0.*deg,
464  0.5*eeCrysRear(), 0.5*eeCrysRear(), 0.5*eeCrysRear(),0.*deg ) );
465 
466  DDLogicalPart part ( cryName(), eeCrysMat(), EECRSolid ) ;
467 }
A DDSolid represents the shape of a part.
Definition: DDSolid.h:37
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:92
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:758
DDMaterial eeCrysMat() const
part
Definition: HCALResponse.h:20
void DDEcalEndcapAlgo::EECreateSC ( const unsigned int  iSCType,
DDCompactView cpv 
)

Definition at line 294 of file DDEcalEndcapAlgo.cc.

References addTmp(), alvName(), cutBoxName(), 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().

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

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

Referenced by execute().

436 {
437  unsigned int iType = 1;
438  for( unsigned int ii = 0; ii < (unsigned int)( eenSCCutaway() ) ; ++ii )
439  {
440  if( ( eevecEESCCutaway()[ 3*ii ] == iCol ) &&
441  ( eevecEESCCutaway()[ 3*ii + 1 ] == iRow ) )
442  {
443  iType = int(eevecEESCCutaway()[3*ii+2]);
444 // edm::LogInfo("EcalGeom") << "EEGetSCType: col, row, type = "
445 // << iCol << " " << iRow << " " << iType << std::endl;
446  }
447  }
448  return iType;
449 }
int ii
Definition: cuy.py:588
double eenSCCutaway() const
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 470 of file DDEcalEndcapAlgo.cc.

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

Referenced by EECreateSC().

474 {
475  // EEPositionCRs Position crystals within parent supercrystal interior volume
476 
477 // edm::LogInfo("EcalGeom") << "EEPositionCRs called " << std::endl;
478 
479  static const unsigned int ncol ( 5 ) ;
480 
481  if( iSCType > 0 &&
482  iSCType <= eenSCTypes() )
483  {
484  const unsigned int icoffset ( ( iSCType - 1 )*ncol - 1 ) ;
485 
486  // Loop over columns of SC
487  for( unsigned int icol ( 1 ); icol <= ncol ; ++icol )
488  {
489  // Get column limits for this SC type from xml input
490  const int ncrcol ( (int) eevecEESCProf()[ icoffset + icol ] ) ;
491 
492  const int imin ( 0 < ncrcol ? 1 : ( 0 > ncrcol ? ncol + ncrcol + 1 : 0 ) ) ;
493  const int imax ( 0 < ncrcol ? ncrcol : ( 0 > ncrcol ? ncol : 0 ) ) ;
494 
495  if( imax>0 )
496  {
497  // Loop over crystals in this row
498  for( int irow ( imin ); irow <= imax ; ++irow )
499  {
500 // edm::LogInfo("EcalGeom") << " type, col, row " << iSCType
501 // << " " << icol << " " << irow << std::endl;
502 
503  // Create crystal as a DDEcalEndcapTrap object and calculate rotation and
504  // translation required to position it in the SC.
505  DDEcalEndcapTrap crystal( 1, eeCrysFront(), eeCrysRear(), eeCrysLength() ) ;
506 
507  crystal.moveto( cryFCtr( icol, irow ) ,
508  cryRCtr( icol, irow ) );
509 
510  DDName rname ( "EECrRoC" + std::to_string( icol ) + "R" + std::to_string( irow ) ) ;
511 
512  cpv.position( cryName(),
513  pName,
514  100*iSCType + 10*( icol - 1 ) + ( irow - 1 ),
515  crystal.centrePos() - DDTranslation(0,0,m_cryZOff),
516  myrot( rname.fullname(), crystal.rotation() ) ) ;
517  }
518  }
519  }
520  }
521 }
void position(const DDLogicalPart &self, const DDLogicalPart &parent, std::string copyno, const DDTranslation &trans, const DDRotation &rot, const DDDivision *div=NULL)
DDName is used to identify DDD entities uniquely.
Definition: DDName.h:16
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
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) ) ; }
int i
Definition: DBlmapReader.cc:9
std::string m_envName
DDName ddname(const std::string &s) const
void DDEcalEndcapAlgo::execute ( DDCompactView cpv)

Definition at line 183 of file DDEcalEndcapAlgo.cc.

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

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

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 SpecificationBuilder_cfi::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 
140 // edm::LogInfo("EcalGeom") << "DDEcalEndcapAlgo info: end initialize" ;
141 }
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) ) ; }
int i
Definition: DBlmapReader.cc:9
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 149 of file DDEcalEndcapAlgo.cc.

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

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

151 {
152  return DDrot( ddname( m_idNameSpace + ":" + s ), new DDRotationMatrix( r ) ) ;
153 }
std::string m_idNameSpace
DDName ddname(const std::string &s) const
DDRotation DDrot(const DDName &name, DDRotationMatrix *rot)
Definition of a uniquely identifiable rotation matrix named by DDName name.
Definition: DDRotation.cc:90
ROOT::Math::Rotation3D DDRotationMatrix
A DDRotationMatrix is currently implemented with a ROOT Rotation3D.
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().