CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
DDTECModuleAlgo Class Reference
Inheritance diagram for DDTECModuleAlgo:

Public Member Functions

 DDTECModuleAlgo ()
 
void execute (DDCompactView &cpv) override
 
void initialize (const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs) override
 
 ~DDTECModuleAlgo () override
 

Private Member Functions

void doPos (const DDLogicalPart &toPos, const DDLogicalPart &mother, int copyNr, double x, double y, double z, const string &rotName, DDCompactView &cpv)
 
void doPos (DDLogicalPart toPos, double x, double y, double z, string rotName, DDCompactView &cpv)
 

Private Attributes

double activeHeight
 
string activeMat
 
string activeRot
 
double activeZ
 
double backplaneThick
 
double bridgeHeight
 
string bridgeMat
 
double bridgeSep
 
double bridgeThick
 
double bridgeWidth
 
double detTilt
 
double dlBottom
 
double dlHybrid
 
double dlTop
 
double frameOver
 
double frameThick
 
double frameWidth
 
double fullHeight
 
string genMat
 
double hybridHeight
 
string hybridMat
 
double hybridThick
 
double hybridWidth
 
double hybridZ
 
string idNameSpace
 
double inactiveDy
 
string inactiveMat
 
double inactivePos
 
bool isRing6
 
bool isStereo
 
double moduleThick
 
double noOverlapShift
 
double pitchHeight
 
string pitchMat
 
string pitchRot
 
double pitchThick
 
double pitchWidth
 
double pitchZ
 
double posCorrectionPhi
 
int ringNo
 
double rPos
 
double sideFrameLHeight
 
double sideFrameLtheta
 
double sideFrameLWidth
 
double sideFrameLWidthLow
 
string sideFrameMat
 
double sideFrameRHeight
 
double sideFrameRtheta
 
double sideFrameRWidth
 
double sideFrameRWidthLow
 
double sideFrameThick
 
double sideFrameZ
 
double sideWidthBottom
 
double sideWidthTop
 
vector< double > siFrSuppBoxHeight
 
string siFrSuppBoxMat
 
double siFrSuppBoxThick
 
vector< double > siFrSuppBoxWidth
 
vector< double > siFrSuppBoxYPos
 
vector< double > siReenforceHeight
 
string siReenforceMat
 
double siReenforceThick
 
vector< double > siReenforceWidth
 
vector< double > siReenforceYPos
 
string standardRot
 
double topFrame2LHeight
 
double topFrame2RHeight
 
double topFrame2Width
 
double topFrameBotWidth
 
double topFrameHeight
 
string topFrameMat
 
double topFrameThick
 
double topFrameTopWidth
 
double topFrameZ
 
string waferMat
 
double waferPosition
 
string waferRot
 
double waferThick
 

Detailed Description

Definition at line 29 of file DDTECModuleAlgo.cc.

Constructor & Destructor Documentation

◆ DDTECModuleAlgo()

DDTECModuleAlgo::DDTECModuleAlgo ( )

Definition at line 137 of file DDTECModuleAlgo.cc.

137 { LogDebug("TECGeom") << "DDTECModuleAlgo info: Creating an instance"; }

References LogDebug.

◆ ~DDTECModuleAlgo()

DDTECModuleAlgo::~DDTECModuleAlgo ( )
override

Definition at line 139 of file DDTECModuleAlgo.cc.

139 {}

Member Function Documentation

◆ doPos() [1/2]

void DDTECModuleAlgo::doPos ( const DDLogicalPart toPos,
const DDLogicalPart mother,
int  copyNr,
double  x,
double  y,
double  z,
const string &  rotName,
DDCompactView cpv 
)
private

Definition at line 305 of file DDTECModuleAlgo.cc.

312  {
313  DDTranslation tran(z, x, y);
314  DDRotation rot;
315  string rotstr = DDSplit(rotName).first;
316  string rotns;
317  if (rotstr != "NULL") {
318  rotns = DDSplit(rotName).second;
319  rot = DDRotation(DDName(rotstr, rotns));
320  } else {
321  rot = DDRotation();
322  }
323 
324  cpv.position(toPos, mother, copyNr, tran, rot);
325  LogDebug("TECGeom") << "DDTECModuleAlgo test: " << toPos.name() << " positioned in " << mother.name() << " at "
326  << tran << " with " << rot;
327 }

References DDSplit(), LogDebug, DDBase< N, C >::name(), DDCompactView::position(), and makeMuonMisalignmentScenario::rot.

◆ doPos() [2/2]

void DDTECModuleAlgo::doPos ( DDLogicalPart  toPos,
double  x,
double  y,
double  z,
string  rotName,
DDCompactView cpv 
)
private

Definition at line 329 of file DDTECModuleAlgo.cc.

329  {
330  int copyNr = 1;
331  if (isStereo)
332  copyNr = 2;
333 
334  // This has to be done so that the Mother coordinate System of a Tub resembles
335  // the coordinate System of a Trap or Box.
336  z += rPos;
337 
338  if (isStereo) {
339  // z is x , x is y
340  //z+= rPos*sin(posCorrectionPhi); <<- this is already corrected with the r position!
341  x += rPos * sin(posCorrectionPhi);
342  }
343  if (rotName == "NULL")
344  rotName = standardRot;
345 
346  doPos(move(toPos), parent(), copyNr, x, y, z, rotName, cpv);
347 }

References eostools::move(), class-composition::parent, and funct::sin().

◆ execute()

void DDTECModuleAlgo::execute ( DDCompactView cpv)
override

Definition at line 349 of file DDTECModuleAlgo.cc.

349  {
350  LogDebug("TECGeom") << "==>> Constructing DDTECModuleAlgo...";
351  //declarations
352  double tmp;
353  double dxdif, dzdif;
354  double dxbot, dxtop; // topfr;
355  //positions
356  double xpos, ypos, zpos;
357  //dimensons
358  double bl1, bl2;
359  double h1;
360  double dx, dy, dz;
361  double thet;
362  //names
363  string idName;
364  string name;
365  string tag("Rphi");
366  if (isStereo)
367  tag = "Stereo";
368  //usefull constants
369  const double topFrameEndZ = 0.5 * (-waferPosition + fullHeight) + pitchHeight + hybridHeight - topFrameHeight;
370  DDName parentName = parent().name();
371  idName = parentName.name();
372  LogDebug("TECGeom") << "==>> " << idName << " parent " << parentName << " namespace " << idNameSpace;
373  DDSolid solid;
374 
375  //set global parameters
377  DDMaterial matter(matname);
378  dzdif = fullHeight + topFrameHeight;
379  if (isStereo)
380  dzdif += 0.5 * (topFrame2LHeight + topFrame2RHeight);
381 
382  dxbot = 0.5 * dlBottom + frameWidth - frameOver;
383  dxtop = 0.5 * dlHybrid + frameWidth - frameOver;
384  // topfr = 0.5*dlBottom * sin(detTilt);
385  if (isRing6) {
386  dxbot = dxtop;
387  dxtop = 0.5 * dlTop + frameWidth - frameOver;
388  // topfr = 0.5*dlTop * sin(detTilt);
389  }
390  dxdif = dxtop - dxbot;
391 
392  //Frame Sides
393  // left Frame
394  name = idName + "SideFrameLeft";
396  matter = DDMaterial(matname);
397 
398  h1 = 0.5 * sideFrameThick;
399  dz = 0.5 * sideFrameLHeight;
400  bl1 = bl2 = 0.5 * sideFrameLWidth;
401  thet = sideFrameLtheta;
402  //for stereo modules
403  if (isStereo)
404  bl1 = 0.5 * sideFrameLWidthLow;
405  solid = DDSolidFactory::trap(DDName(name, idNameSpace), dz, thet, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
406  LogDebug("TECGeom") << "DDTECModuleAlgo test:\t" << solid.name() << " Trap made of " << matname << " of dimensions "
407  << dz << ", " << thet << ", 0, " << h1 << ", " << bl1 << ", " << bl1 << ", 0, " << h1 << ", "
408  << bl2 << ", " << bl2 << ", 0";
409  DDLogicalPart sideFrameLeft(solid.ddname(), matter, solid);
410  //translate
411  xpos = -0.5 * topFrameBotWidth + bl2 + tan(fabs(thet)) * dz;
412  ypos = sideFrameZ;
413  zpos = topFrameEndZ - dz;
414  //flip ring 6
415  if (isRing6) {
416  zpos *= -1;
417  xpos -= 2 * tan(fabs(thet)) * dz; // because of the flip the tan(..) to be in the other direction
418  }
419  //the stereo modules are on the back of the normal ones...
420  if (isStereo) {
421  xpos = -0.5 * topFrameBotWidth + bl2 * cos(detTilt) + dz * sin(fabs(thet) + detTilt) / cos(fabs(thet));
422  xpos = -xpos;
423  zpos = topFrameEndZ - topFrame2LHeight - 0.5 * sin(detTilt) * (topFrameBotWidth - topFrame2Width) -
424  dz * cos(detTilt + fabs(thet)) / cos(fabs(thet)) + bl2 * sin(detTilt) - 0.1 * CLHEP::mm;
425  }
426  //position
427  doPos(sideFrameLeft, xpos, ypos, zpos, waferRot, cpv);
428 
429  //right Frame
430  name = idName + "SideFrameRight";
432  matter = DDMaterial(matname);
433 
434  h1 = 0.5 * sideFrameThick;
435  dz = 0.5 * sideFrameRHeight;
436  bl1 = bl2 = 0.5 * sideFrameRWidth;
437  thet = sideFrameRtheta;
438  if (isStereo)
439  bl1 = 0.5 * sideFrameRWidthLow;
440  solid = DDSolidFactory::trap(DDName(name, idNameSpace), dz, thet, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
441  LogDebug("TECGeom") << "DDTECModuleAlgo test:\t" << solid.name() << " Trap made of " << matname << " of dimensions "
442  << dz << ", " << thet << ", 0, " << h1 << ", " << bl1 << ", " << bl1 << ", 0, " << h1 << ", "
443  << bl2 << ", " << bl2 << ", 0";
444  DDLogicalPart sideFrameRight(solid.ddname(), matter, solid);
445  //translate
446  xpos = 0.5 * topFrameBotWidth - bl2 - tan(fabs(thet)) * dz;
447  ypos = sideFrameZ;
448  zpos = topFrameEndZ - dz;
449  if (isRing6) {
450  zpos *= -1;
451  xpos += 2 * tan(fabs(thet)) * dz; // because of the flip the tan(..) has to be in the other direction
452  }
453  if (isStereo) {
454  xpos = 0.5 * topFrameBotWidth - bl2 * cos(detTilt) - dz * sin(fabs(detTilt - fabs(thet))) / cos(fabs(thet));
455  xpos = -xpos;
456  zpos = topFrameEndZ - topFrame2RHeight + 0.5 * sin(detTilt) * (topFrameBotWidth - topFrame2Width) -
457  dz * cos(detTilt - fabs(thet)) / cos(fabs(thet)) - bl2 * sin(detTilt) - 0.1 * CLHEP::mm;
458  }
459  //position it
460  doPos(sideFrameRight, xpos, ypos, zpos, waferRot, cpv);
461 
462  //Supplies Box(es)
463  for (int i = 0; i < (int)(siFrSuppBoxWidth.size()); i++) {
464  name = idName + "SuppliesBox" + to_string(i);
466  matter = DDMaterial(matname);
467 
468  h1 = 0.5 * siFrSuppBoxThick;
469  dz = 0.5 * siFrSuppBoxHeight[i];
470  bl1 = bl2 = 0.5 * siFrSuppBoxWidth[i];
471  thet = sideFrameRtheta;
472  if (isStereo)
473  thet = -atan(fabs(sideFrameRWidthLow - sideFrameRWidth) / (2 * sideFrameRHeight) - tan(fabs(thet)));
474  // ^-- this calculates the lower left angel of the tipped trapezoid, which is the SideFframe...
475 
476  solid = DDSolidFactory::trap(DDName(name, idNameSpace), dz, thet, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
477  LogDebug("TECGeom") << "DDTECModuleAlgo test:\t" << solid.name() << " Trap made of " << matname << " of dimensions "
478  << dz << ", 0, 0, " << h1 << ", " << bl1 << ", " << bl1 << ", 0, " << h1 << ", " << bl2 << ", "
479  << bl2 << ", 0";
480  DDLogicalPart siFrSuppBox(solid.ddname(), matter, solid);
481  //translate
482  xpos = 0.5 * topFrameBotWidth - sideFrameRWidth - bl1 - siFrSuppBoxYPos[i] * tan(fabs(thet));
483  ypos = sideFrameZ *
484  (0.5 + (siFrSuppBoxThick / sideFrameThick)); //via * so I do not have to worry about the sign of sideFrameZ
485  zpos = topFrameEndZ - siFrSuppBoxYPos[i];
486  if (isRing6) {
487  xpos += 2 * fabs(tan(thet)) * siFrSuppBoxYPos[i]; // the flipped issue again
488  zpos *= -1;
489  }
490  if (isStereo) {
491  xpos = 0.5 * topFrameBotWidth - (sideFrameRWidth + bl1) * cos(detTilt) -
492  sin(fabs(detTilt - fabs(thet))) *
493  (siFrSuppBoxYPos[i] + dz * (1 / cos(thet) - cos(detTilt)) + bl1 * sin(detTilt));
494  xpos = -xpos;
495  zpos = topFrameEndZ - topFrame2RHeight - 0.5 * sin(detTilt) * (topFrameBotWidth - topFrame2Width) -
497  }
498  //position it;
499  doPos(siFrSuppBox, xpos, ypos, zpos, waferRot, cpv);
500  }
501  //The Hybrid
502  name = idName + "Hybrid";
504  matter = DDMaterial(matname);
505  dx = 0.5 * hybridWidth;
506  dy = 0.5 * hybridThick;
507  dz = 0.5 * hybridHeight;
509  LogDebug("TECGeom") << "DDTECModuleAlgo test:\t" << solid.name() << " Box made of " << matname << " of dimensions "
510  << dx << ", " << dy << ", " << dz;
511  DDLogicalPart hybrid(solid.ddname(), matter, solid);
512 
513  ypos = hybridZ;
514  zpos = 0.5 * (-waferPosition + fullHeight + hybridHeight) + pitchHeight;
515  if (isRing6)
516  zpos *= -1;
517  //position it
518  doPos(hybrid, 0, ypos, zpos, "NULL", cpv);
519 
520  // Wafer
521  name = idName + tag + "Wafer";
523  matter = DDMaterial(matname);
524  bl1 = 0.5 * dlBottom;
525  bl2 = 0.5 * dlTop;
526  h1 = 0.5 * waferThick;
527  dz = 0.5 * fullHeight;
528  solid = DDSolidFactory::trap(DDName(name, idNameSpace), dz, 0, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
529  LogDebug("TECGeom") << "DDTECModuleAlgo test:\t" << solid.name() << " Trap made of " << matname << " of dimensions "
530  << dz << ", 0, 0, " << h1 << ", " << bl1 << ", " << bl1 << ", 0, " << h1 << ", " << bl2 << ", "
531  << bl2 << ", 0";
532  DDLogicalPart wafer(solid.ddname(), matter, solid);
533 
534  ypos = activeZ;
535  zpos = -0.5 * waferPosition; // former and incorrect topFrameHeight;
536  if (isRing6)
537  zpos *= -1;
538 
539  doPos(wafer, 0, ypos, zpos, waferRot, cpv);
540 
541  // Active
542  name = idName + tag + "Active";
544  matter = DDMaterial(matname);
545  bl1 -= sideWidthBottom;
546  bl2 -= sideWidthTop;
547  dz = 0.5 * (waferThick - backplaneThick); // inactive backplane
548  h1 = 0.5 * activeHeight;
549  if (isRing6) { //switch bl1 <->bl2
550  tmp = bl2;
551  bl2 = bl1;
552  bl1 = tmp;
553  }
554  solid = DDSolidFactory::trap(DDName(name, idNameSpace), dz, 0, 0, h1, bl2, bl1, 0, h1, bl2, bl1, 0);
555  LogDebug("TECGeom") << "DDTECModuleAlgo test:\t" << solid.name() << " Trap made of " << matname << " of dimensions "
556  << dz << ", 0, 0, " << h1 << ", " << bl2 << ", " << bl1 << ", 0, " << h1 << ", " << bl2 << ", "
557  << bl1 << ", 0";
558  DDLogicalPart active(solid.ddname(), matter, solid);
559  doPos(active,
560  wafer,
561  1,
562  -0.5 * backplaneThick,
563  0,
564  0,
565  activeRot,
566  cpv); // from the definition of the wafer local axes and doPos() routine
567  //inactive part in rings > 3
568  if (ringNo > 3) {
569  inactivePos -= fullHeight - activeHeight; //inactivePos is measured from the beginning of the _wafer_
570  name = idName + tag + "Inactive";
572  matter = DDMaterial(matname);
573  bl1 = 0.5 * dlBottom - sideWidthBottom +
574  ((0.5 * dlTop - sideWidthTop - 0.5 * dlBottom + sideWidthBottom) / activeHeight) *
576  bl2 = 0.5 * dlBottom - sideWidthBottom +
577  ((0.5 * dlTop - sideWidthTop - 0.5 * dlBottom + sideWidthBottom) / activeHeight) *
579  dz = 0.5 * (waferThick - backplaneThick); // inactive backplane
580  h1 = inactiveDy;
581  if (isRing6) { //switch bl1 <->bl2
582  tmp = bl2;
583  bl2 = bl1;
584  bl1 = tmp;
585  }
586  solid = DDSolidFactory::trap(DDName(name, idNameSpace), dz, 0, 0, h1, bl2, bl1, 0, h1, bl2, bl1, 0);
587  LogDebug("TECGeom") << "DDTECModuleAlgo test:\t" << solid.name() << " Trap made of " << matname << " of dimensions "
588  << dz << ", 0, 0, " << h1 << ", " << bl2 << ", " << bl1 << ", 0, " << h1 << ", " << bl2 << ", "
589  << bl1 << ", 0";
590  DDLogicalPart inactive(solid.ddname(), matter, solid);
591  ypos = inactivePos - 0.5 * activeHeight;
592  doPos(
593  inactive, active, 1, ypos, 0, 0, "NULL", cpv); // from the definition of the wafer local axes and doPos() routine
594  }
595  //Pitch Adapter
596  name = idName + "PA";
598  matter = DDMaterial(matname);
599 
600  if (!isStereo) {
601  dx = 0.5 * pitchWidth;
602  dy = 0.5 * pitchThick;
603  dz = 0.5 * pitchHeight;
605  LogDebug("TECGeom") << "DDTECModuleAlgo test:\t" << solid.name() << " Box made of " << matname << " of dimensions "
606  << dx << ", " << dy << ", " << dz;
607  } else {
608  dz = 0.5 * pitchWidth;
609  h1 = 0.5 * pitchThick;
610  bl1 = 0.5 * pitchHeight + 0.5 * dz * sin(detTilt);
611  bl2 = 0.5 * pitchHeight - 0.5 * dz * sin(detTilt);
612  double thet = atan((bl1 - bl2) / (2. * dz));
613  solid = DDSolidFactory::trap(DDName(name, idNameSpace), dz, thet, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
614  LogDebug("TECGeom") << "DDTECModuleAlgo test:\t" << solid.name() << " Trap made of " << matname << " of dimensions "
615  << dz << ", " << thet / CLHEP::deg << ", 0, " << h1 << ", " << bl1 << ", " << bl1 << ", 0, "
616  << h1 << ", " << bl2 << ", " << bl2 << ", 0";
617  }
618  xpos = 0;
619  ypos = pitchZ;
620  zpos = 0.5 * (-waferPosition + fullHeight + pitchHeight);
621  if (isRing6)
622  zpos *= -1;
623  if (isStereo)
624  xpos = 0.5 * fullHeight * sin(detTilt);
625 
626  DDLogicalPart pa(solid.ddname(), matter, solid);
627  if (isStereo)
628  doPos(pa, xpos, ypos, zpos, pitchRot, cpv);
629  else
630  doPos(pa, xpos, ypos, zpos, "NULL", cpv);
631  //Top of the frame
632  name = idName + "TopFrame";
634  matter = DDMaterial(matname);
635 
636  h1 = 0.5 * topFrameThick;
637  dz = 0.5 * topFrameHeight;
638  bl1 = 0.5 * topFrameBotWidth;
639  bl2 = 0.5 * topFrameTopWidth;
640  if (isRing6) { // ring 6 faces the other way!
641  bl1 = 0.5 * topFrameTopWidth;
642  bl2 = 0.5 * topFrameBotWidth;
643  }
644 
645  solid = DDSolidFactory::trap(DDName(name, idNameSpace), dz, 0, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
646  LogDebug("TECGeom") << "DDTECModuleAlgo test:\t" << solid.name() << " Trap made of " << matname << " of dimensions "
647  << dz << ", 0, 0, " << h1 << ", " << bl1 << ", " << bl1 << ", 0, " << h1 << ", " << bl2 << ", "
648  << bl2 << ", 0";
649  DDLogicalPart topFrame(solid.ddname(), matter, solid);
650 
651  if (isStereo) {
652  name = idName + "TopFrame2";
653  //additional object to build the not trapzoid geometry of the stereo topframes
654  dz = 0.5 * topFrame2Width;
655  h1 = 0.5 * topFrameThick;
656  bl1 = 0.5 * topFrame2LHeight;
657  bl2 = 0.5 * topFrame2RHeight;
658  double thet = atan((bl1 - bl2) / (2. * dz));
659 
660  solid = DDSolidFactory::trap(DDName(name, idNameSpace), dz, thet, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
661  LogDebug("TECGeom") << "DDTECModuleAlgo test:\t" << solid.name() << " Trap made of " << matname << " of dimensions "
662  << dz << ", " << thet / CLHEP::deg << ", 0, " << h1 << ", " << bl1 << ", " << bl1 << ", 0, "
663  << h1 << ", " << bl2 << ", " << bl2 << ", 0";
664  }
665 
666  // Position the topframe
667  ypos = topFrameZ;
669  if (isRing6) {
670  zpos *= -1;
671  }
672 
673  doPos(topFrame, 0, ypos, zpos, "NULL", cpv);
674  if (isStereo) {
675  //create
676  DDLogicalPart topFrame2(solid.ddname(), matter, solid);
677  zpos -= 0.5 * (topFrameHeight + 0.5 * (topFrame2LHeight + topFrame2RHeight));
678  doPos(topFrame2, 0, ypos, zpos, pitchRot, cpv);
679  }
680 
681  //Si - Reencorcement
682  for (int i = 0; i < (int)(siReenforceWidth.size()); i++) {
683  name = idName + "SiReenforce" + to_string(i);
685  matter = DDMaterial(matname);
686 
687  h1 = 0.5 * siReenforceThick;
688  dz = 0.5 * siReenforceHeight[i];
689  bl1 = bl2 = 0.5 * siReenforceWidth[i];
690 
691  solid = DDSolidFactory::trap(DDName(name, idNameSpace), dz, 0, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
692  LogDebug("TECGeom") << "DDTECModuleAlgo test:\t" << solid.name() << " Trap made of " << matname << " of dimensions "
693  << dz << ", 0, 0, " << h1 << ", " << bl1 << ", " << bl1 << ", 0, " << h1 << ", " << bl2 << ", "
694  << bl2 << ", 0";
695  DDLogicalPart siReenforce(solid.ddname(), matter, solid);
696  //translate
697  xpos = 0;
698  ypos = sideFrameZ;
699  zpos = topFrameEndZ - dz - siReenforceYPos[i];
700 
701  if (isRing6)
702  zpos *= -1;
703  if (isStereo) {
704  xpos = (-siReenforceYPos[i] + 0.5 * fullHeight) * sin(detTilt);
705  // thet = detTilt;
706  // if(topFrame2RHeight > topFrame2LHeight) thet *= -1;
707  // zpos -= topFrame2RHeight + sin(thet)*(sideFrameRWidth + 0.5*dlTop);
708  zpos -= topFrame2RHeight + sin(fabs(detTilt)) * 0.5 * topFrame2Width;
709  }
710  doPos(siReenforce, xpos, ypos, zpos, waferRot, cpv);
711  }
712 
713  //Bridge
714  if (bridgeMat != "None") {
715  name = idName + "Bridge";
717  matter = DDMaterial(matname);
718  bl2 = 0.5 * bridgeSep + bridgeWidth;
719  bl1 = bl2 - bridgeHeight * dxdif / dzdif;
720  h1 = 0.5 * bridgeThick;
721  dz = 0.5 * bridgeHeight;
722  solid = DDSolidFactory::trap(DDName(name, idNameSpace), dz, 0, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
723  LogDebug("TECGeom") << "DDTECModuleAlgo test:\t" << solid.name() << " Trap made of " << matname << " of dimensions "
724  << dz << ", 0, 0, " << h1 << ", " << bl1 << ", " << bl1 << ", 0, " << h1 << ", " << bl2 << ", "
725  << bl2 << ", 0";
726  DDLogicalPart bridge(solid.ddname(), matter, solid);
727 
728  name = idName + "BridgeGap";
730  matter = DDMaterial(matname);
731  bl1 = 0.5 * bridgeSep;
732  solid = DDSolidFactory::box(DDName(name, idNameSpace), bl1, h1, dz);
733  LogDebug("TECGeom") << "DDTECModuleAlgo test:\t" << solid.name() << " Box made of " << matname << " of dimensions "
734  << bl1 << ", " << h1 << ", " << dz;
735  DDLogicalPart bridgeGap(solid.ddname(), matter, solid);
736  cpv.position(bridgeGap, bridge, 1, DDTranslation(0.0, 0.0, 0.0), DDRotation());
737  LogDebug("TECGeom") << "DDTECModuleAlgo test: " << bridgeGap.name() << " number 1 positioned in " << bridge.name()
738  << " at (0,0,0) with no rotation";
739  }
740 
741  LogDebug("TECGeom") << "<<== End of DDTECModuleAlgo construction ...";
742 }

References DDSolidFactory::box(), funct::cos(), DDBase< N, C >::ddname(), DDSplit(), PVValHelper::dx, PVValHelper::dy, PVValHelper::dz, dqmdumpme::first, mps_fire::i, versionedElectronIDProducer_cfi::idName, createfilelist::int, LogDebug, Skims_PA_cff::name, DDName::name(), DDBase< N, C >::name(), class-composition::parent, DDCompactView::position(), edm::second(), funct::sin(), GlobalPosition_Frontier_DevDB_cff::tag, funct::tan(), createJobs::tmp, and DDSolidFactory::trap().

◆ initialize()

void DDTECModuleAlgo::initialize ( const DDNumericArguments nArgs,
const DDVectorArguments vArgs,
const DDMapArguments mArgs,
const DDStringArguments sArgs,
const DDStringVectorArguments vsArgs 
)
override

Definition at line 141 of file DDTECModuleAlgo.cc.

145  {
147  genMat = sArgs["GeneralMaterial"];
148 
149  DDName parentName = parent().name();
150 
151  LogDebug("TECGeom") << "DDTECModuleAlgo debug: Parent " << parentName << " NameSpace " << idNameSpace
152  << " General Material " << genMat;
153  ringNo = (int)nArgs["RingNo"];
154  moduleThick = nArgs["ModuleThick"];
155  detTilt = nArgs["DetTilt"];
156  fullHeight = nArgs["FullHeight"];
157  dlTop = nArgs["DlTop"];
158  dlBottom = nArgs["DlBottom"];
159  dlHybrid = nArgs["DlHybrid"];
160  rPos = nArgs["RPos"];
161  standardRot = sArgs["StandardRotation"];
162 
163  isRing6 = (ringNo == 6);
164 
165  LogDebug("TECGeom") << "DDTECModuleAlgo debug: ModuleThick " << moduleThick << " Detector Tilt "
166  << detTilt / CLHEP::deg << " Height " << fullHeight << " dl(Top) " << dlTop << " dl(Bottom) "
167  << dlBottom << " dl(Hybrid) " << dlHybrid << " rPos " << rPos << " standrad rotation "
168  << standardRot;
169 
170  frameWidth = nArgs["FrameWidth"];
171  frameThick = nArgs["FrameThick"];
172  frameOver = nArgs["FrameOver"];
173  LogDebug("TECGeom") << "DDTECModuleAlgo debug: Frame Width " << frameWidth << " Thickness " << frameThick
174  << " Overlap " << frameOver;
175 
176  topFrameMat = sArgs["TopFrameMaterial"];
177  topFrameHeight = nArgs["TopFrameHeight"];
178  topFrameTopWidth = nArgs["TopFrameTopWidth"];
179  topFrameBotWidth = nArgs["TopFrameBotWidth"];
180  topFrameThick = nArgs["TopFrameThick"];
181  topFrameZ = nArgs["TopFrameZ"];
182  LogDebug("TECGeom") << "DDTECModuleAlgo debug: Top Frame Material " << topFrameMat << " Height " << topFrameHeight
183  << " Top Width " << topFrameTopWidth << " Bottom Width " << topFrameTopWidth << " Thickness "
184  << topFrameThick << " positioned at" << topFrameZ;
185  double resizeH = 0.96;
186  sideFrameMat = sArgs["SideFrameMaterial"];
187  sideFrameThick = nArgs["SideFrameThick"];
188  sideFrameLWidth = nArgs["SideFrameLWidth"];
189  sideFrameLHeight = resizeH * nArgs["SideFrameLHeight"];
190  sideFrameLtheta = nArgs["SideFrameLtheta"];
191  sideFrameRWidth = nArgs["SideFrameRWidth"];
192  sideFrameRHeight = resizeH * nArgs["SideFrameRHeight"];
193  sideFrameRtheta = nArgs["SideFrameRtheta"];
194  siFrSuppBoxWidth = vArgs["SiFrSuppBoxWidth"];
195  siFrSuppBoxHeight = vArgs["SiFrSuppBoxHeight"];
196  siFrSuppBoxYPos = vArgs["SiFrSuppBoxYPos"];
197  siFrSuppBoxThick = nArgs["SiFrSuppBoxThick"];
198  siFrSuppBoxMat = sArgs["SiFrSuppBoxMaterial"];
199  sideFrameZ = nArgs["SideFrameZ"];
200  LogDebug("TECGeom") << "DDTECModuleAlgo debug : Side Frame Material " << sideFrameMat << " Thickness "
201  << sideFrameThick << " left Leg's Width: " << sideFrameLWidth
202  << " left Leg's Height: " << sideFrameLHeight << " left Leg's tilt(theta): " << sideFrameLtheta
203  << " right Leg's Width: " << sideFrameRWidth << " right Leg's Height: " << sideFrameRHeight
204  << " right Leg's tilt(theta): " << sideFrameRtheta
205  << "Supplies Box's Material: " << siFrSuppBoxMat << " positioned at" << sideFrameZ;
206  for (int i = 0; i < (int)(siFrSuppBoxWidth.size()); i++) {
207  LogDebug("TECGeom") << " Supplies Box" << i << "'s Width: " << siFrSuppBoxWidth[i] << " Supplies Box" << i
208  << "'s Height: " << siFrSuppBoxHeight[i] << " Supplies Box" << i
209  << "'s y Position: " << siFrSuppBoxYPos[i];
210  }
211  waferMat = sArgs["WaferMaterial"];
212  sideWidthTop = nArgs["SideWidthTop"];
213  sideWidthBottom = nArgs["SideWidthBottom"];
214  waferRot = sArgs["WaferRotation"];
215  waferPosition = nArgs["WaferPosition"];
216  LogDebug("TECGeom") << "DDTECModuleAlgo debug: Wafer Material " << waferMat << " Side Width Top" << sideWidthTop
217  << " Side Width Bottom" << sideWidthBottom << " and positioned at " << waferPosition
218  << " positioned with rotation"
219  << " matrix:" << waferRot;
220 
221  activeMat = sArgs["ActiveMaterial"];
222  activeHeight = nArgs["ActiveHeight"];
223  waferThick = nArgs["WaferThick"];
224  activeRot = sArgs["ActiveRotation"];
225  activeZ = nArgs["ActiveZ"];
226  backplaneThick = nArgs["BackPlaneThick"];
227  LogDebug("TECGeom") << "DDTECModuleAlgo debug: Active Material " << activeMat << " Height " << activeHeight
228  << " rotated by " << activeRot << " translated by (0,0," << -0.5 * backplaneThick << ")"
229  << " Thickness/Z" << waferThick - backplaneThick << "/" << activeZ;
230 
231  hybridMat = sArgs["HybridMaterial"];
232  hybridHeight = nArgs["HybridHeight"];
233  hybridWidth = nArgs["HybridWidth"];
234  hybridThick = nArgs["HybridThick"];
235  hybridZ = nArgs["HybridZ"];
236  LogDebug("TECGeom") << "DDTECModuleAlgo debug: Hybrid Material " << hybridMat << " Height " << hybridHeight
237  << " Width " << hybridWidth << " Thickness " << hybridThick << " Z" << hybridZ;
238 
239  pitchMat = sArgs["PitchMaterial"];
240  pitchHeight = nArgs["PitchHeight"];
241  pitchThick = nArgs["PitchThick"];
242  pitchWidth = nArgs["PitchWidth"];
243  pitchZ = nArgs["PitchZ"];
244  pitchRot = sArgs["PitchRotation"];
245  LogDebug("TECGeom") << "DDTECModuleAlgo debug: Pitch Adapter Material " << pitchMat << " Height " << pitchHeight
246  << " Thickness " << pitchThick << " position with "
247  << " rotation " << pitchRot << " at Z" << pitchZ;
248 
249  bridgeMat = sArgs["BridgeMaterial"];
250  bridgeWidth = nArgs["BridgeWidth"];
251  bridgeThick = nArgs["BridgeThick"];
252  bridgeHeight = nArgs["BridgeHeight"];
253  bridgeSep = nArgs["BridgeSeparation"];
254  LogDebug("TECGeom") << "DDTECModuleAlgo debug: Bridge Material " << bridgeMat << " Width " << bridgeWidth
255  << " Thickness " << bridgeThick << " Height " << bridgeHeight << " Separation " << bridgeSep;
256 
257  siReenforceWidth = vArgs["SiReenforcementWidth"];
258  siReenforceHeight = vArgs["SiReenforcementHeight"];
259  siReenforceYPos = vArgs["SiReenforcementPosY"];
260  siReenforceThick = nArgs["SiReenforcementThick"];
261  siReenforceMat = sArgs["SiReenforcementMaterial"];
262 
263  LogDebug("TECGeom") << "FALTBOOT DDTECModuleAlgo debug : Si-Reenforcement Material " << sideFrameMat << " Thickness "
264  << siReenforceThick;
265 
266  for (int i = 0; i < (int)(siReenforceWidth.size()); i++) {
267  LogDebug("TECGeom") << " SiReenforcement" << i << "'s Width: " << siReenforceWidth[i] << " SiReenforcement" << i
268  << "'s Height: " << siReenforceHeight[i] << " SiReenforcement" << i
269  << "'s y Position: " << siReenforceYPos[i];
270  }
271  inactiveDy = 0;
272  inactivePos = 0;
273  if (ringNo > 3) {
274  inactiveDy = nArgs["InactiveDy"];
275  inactivePos = nArgs["InactivePos"];
276  inactiveMat = sArgs["InactiveMaterial"];
277  }
278 
279  noOverlapShift = nArgs["NoOverlapShift"];
280  //Everything that is normal/stereo specific comes here
281  isStereo = (int)nArgs["isStereo"] == 1;
282  if (!isStereo) {
283  LogDebug("TECGeom") << "This is a normal module, in ring " << ringNo << "!";
284  } else {
285  LogDebug("TECGeom") << "This is a stereo module, in ring " << ringNo << "!";
286  posCorrectionPhi = nArgs["PosCorrectionPhi"];
287  topFrame2LHeight = nArgs["TopFrame2LHeight"];
288  topFrame2RHeight = nArgs["TopFrame2RHeight"];
289  topFrame2Width = nArgs["TopFrame2Width"];
290  LogDebug("TECGeom") << "Phi Position corrected by " << posCorrectionPhi << "*rad";
291  LogDebug("TECGeom") << "DDTECModuleAlgo debug: stereo Top Frame 2nd Part left Heigt " << topFrame2LHeight
292  << " right Height " << topFrame2RHeight << " Width " << topFrame2Width;
293 
294  sideFrameLWidthLow = nArgs["SideFrameLWidthLow"];
295  sideFrameRWidthLow = nArgs["SideFrameRWidthLow"];
296 
297  LogDebug("TECGeom") << " left Leg's lower Width: " << sideFrameLWidthLow
298  << " right Leg's lower Width: " << sideFrameRWidthLow;
299 
300  // posCorrectionR = nArgs["PosCorrectionR"];
301  //LogDebug("TECGeom") << "Stereo Module Position Correction with R = " << posCorrectionR;
302  }
303 }

References mps_fire::i, createfilelist::int, LogDebug, DDCurrentNamespace::ns(), and class-composition::parent.

Member Data Documentation

◆ activeHeight

double DDTECModuleAlgo::activeHeight
private

Definition at line 104 of file DDTECModuleAlgo.cc.

◆ activeMat

string DDTECModuleAlgo::activeMat
private

Definition at line 103 of file DDTECModuleAlgo.cc.

◆ activeRot

string DDTECModuleAlgo::activeRot
private

Definition at line 106 of file DDTECModuleAlgo.cc.

◆ activeZ

double DDTECModuleAlgo::activeZ
private

Definition at line 107 of file DDTECModuleAlgo.cc.

◆ backplaneThick

double DDTECModuleAlgo::backplaneThick
private

Definition at line 108 of file DDTECModuleAlgo.cc.

◆ bridgeHeight

double DDTECModuleAlgo::bridgeHeight
private

Definition at line 126 of file DDTECModuleAlgo.cc.

◆ bridgeMat

string DDTECModuleAlgo::bridgeMat
private

Definition at line 123 of file DDTECModuleAlgo.cc.

◆ bridgeSep

double DDTECModuleAlgo::bridgeSep
private

Definition at line 127 of file DDTECModuleAlgo.cc.

◆ bridgeThick

double DDTECModuleAlgo::bridgeThick
private

Definition at line 125 of file DDTECModuleAlgo.cc.

◆ bridgeWidth

double DDTECModuleAlgo::bridgeWidth
private

Definition at line 124 of file DDTECModuleAlgo.cc.

◆ detTilt

double DDTECModuleAlgo::detTilt
private

Definition at line 65 of file DDTECModuleAlgo.cc.

◆ dlBottom

double DDTECModuleAlgo::dlBottom
private

Definition at line 68 of file DDTECModuleAlgo.cc.

◆ dlHybrid

double DDTECModuleAlgo::dlHybrid
private

Definition at line 69 of file DDTECModuleAlgo.cc.

◆ dlTop

double DDTECModuleAlgo::dlTop
private

Definition at line 67 of file DDTECModuleAlgo.cc.

◆ frameOver

double DDTECModuleAlgo::frameOver
private

Definition at line 72 of file DDTECModuleAlgo.cc.

◆ frameThick

double DDTECModuleAlgo::frameThick
private

Definition at line 71 of file DDTECModuleAlgo.cc.

◆ frameWidth

double DDTECModuleAlgo::frameWidth
private

Definition at line 70 of file DDTECModuleAlgo.cc.

◆ fullHeight

double DDTECModuleAlgo::fullHeight
private

Definition at line 66 of file DDTECModuleAlgo.cc.

◆ genMat

string DDTECModuleAlgo::genMat
private

Definition at line 63 of file DDTECModuleAlgo.cc.

◆ hybridHeight

double DDTECModuleAlgo::hybridHeight
private

Definition at line 113 of file DDTECModuleAlgo.cc.

◆ hybridMat

string DDTECModuleAlgo::hybridMat
private

Definition at line 112 of file DDTECModuleAlgo.cc.

◆ hybridThick

double DDTECModuleAlgo::hybridThick
private

Definition at line 115 of file DDTECModuleAlgo.cc.

◆ hybridWidth

double DDTECModuleAlgo::hybridWidth
private

Definition at line 114 of file DDTECModuleAlgo.cc.

◆ hybridZ

double DDTECModuleAlgo::hybridZ
private

Definition at line 116 of file DDTECModuleAlgo.cc.

◆ idNameSpace

string DDTECModuleAlgo::idNameSpace
private

Definition at line 62 of file DDTECModuleAlgo.cc.

◆ inactiveDy

double DDTECModuleAlgo::inactiveDy
private

Definition at line 109 of file DDTECModuleAlgo.cc.

◆ inactiveMat

string DDTECModuleAlgo::inactiveMat
private

Definition at line 111 of file DDTECModuleAlgo.cc.

◆ inactivePos

double DDTECModuleAlgo::inactivePos
private

Definition at line 110 of file DDTECModuleAlgo.cc.

◆ isRing6

bool DDTECModuleAlgo::isRing6
private

Definition at line 58 of file DDTECModuleAlgo.cc.

◆ isStereo

bool DDTECModuleAlgo::isStereo
private

Definition at line 57 of file DDTECModuleAlgo.cc.

◆ moduleThick

double DDTECModuleAlgo::moduleThick
private

Definition at line 64 of file DDTECModuleAlgo.cc.

◆ noOverlapShift

double DDTECModuleAlgo::noOverlapShift
private

Definition at line 55 of file DDTECModuleAlgo.cc.

◆ pitchHeight

double DDTECModuleAlgo::pitchHeight
private

Definition at line 119 of file DDTECModuleAlgo.cc.

◆ pitchMat

string DDTECModuleAlgo::pitchMat
private

Definition at line 117 of file DDTECModuleAlgo.cc.

◆ pitchRot

string DDTECModuleAlgo::pitchRot
private

Definition at line 122 of file DDTECModuleAlgo.cc.

◆ pitchThick

double DDTECModuleAlgo::pitchThick
private

Definition at line 120 of file DDTECModuleAlgo.cc.

◆ pitchWidth

double DDTECModuleAlgo::pitchWidth
private

Definition at line 118 of file DDTECModuleAlgo.cc.

◆ pitchZ

double DDTECModuleAlgo::pitchZ
private

Definition at line 121 of file DDTECModuleAlgo.cc.

◆ posCorrectionPhi

double DDTECModuleAlgo::posCorrectionPhi
private

Definition at line 60 of file DDTECModuleAlgo.cc.

◆ ringNo

int DDTECModuleAlgo::ringNo
private

Definition at line 56 of file DDTECModuleAlgo.cc.

◆ rPos

double DDTECModuleAlgo::rPos
private

Definition at line 59 of file DDTECModuleAlgo.cc.

◆ sideFrameLHeight

double DDTECModuleAlgo::sideFrameLHeight
private

Definition at line 86 of file DDTECModuleAlgo.cc.

◆ sideFrameLtheta

double DDTECModuleAlgo::sideFrameLtheta
private

Definition at line 87 of file DDTECModuleAlgo.cc.

◆ sideFrameLWidth

double DDTECModuleAlgo::sideFrameLWidth
private

Definition at line 84 of file DDTECModuleAlgo.cc.

◆ sideFrameLWidthLow

double DDTECModuleAlgo::sideFrameLWidthLow
private

Definition at line 85 of file DDTECModuleAlgo.cc.

◆ sideFrameMat

string DDTECModuleAlgo::sideFrameMat
private

Definition at line 82 of file DDTECModuleAlgo.cc.

◆ sideFrameRHeight

double DDTECModuleAlgo::sideFrameRHeight
private

Definition at line 90 of file DDTECModuleAlgo.cc.

◆ sideFrameRtheta

double DDTECModuleAlgo::sideFrameRtheta
private

Definition at line 91 of file DDTECModuleAlgo.cc.

◆ sideFrameRWidth

double DDTECModuleAlgo::sideFrameRWidth
private

Definition at line 88 of file DDTECModuleAlgo.cc.

◆ sideFrameRWidthLow

double DDTECModuleAlgo::sideFrameRWidthLow
private

Definition at line 89 of file DDTECModuleAlgo.cc.

◆ sideFrameThick

double DDTECModuleAlgo::sideFrameThick
private

Definition at line 83 of file DDTECModuleAlgo.cc.

◆ sideFrameZ

double DDTECModuleAlgo::sideFrameZ
private

Definition at line 95 of file DDTECModuleAlgo.cc.

◆ sideWidthBottom

double DDTECModuleAlgo::sideWidthBottom
private

Definition at line 101 of file DDTECModuleAlgo.cc.

◆ sideWidthTop

double DDTECModuleAlgo::sideWidthTop
private

Definition at line 100 of file DDTECModuleAlgo.cc.

◆ siFrSuppBoxHeight

vector<double> DDTECModuleAlgo::siFrSuppBoxHeight
private

Definition at line 93 of file DDTECModuleAlgo.cc.

◆ siFrSuppBoxMat

string DDTECModuleAlgo::siFrSuppBoxMat
private

Definition at line 97 of file DDTECModuleAlgo.cc.

◆ siFrSuppBoxThick

double DDTECModuleAlgo::siFrSuppBoxThick
private

Definition at line 96 of file DDTECModuleAlgo.cc.

◆ siFrSuppBoxWidth

vector<double> DDTECModuleAlgo::siFrSuppBoxWidth
private

Definition at line 92 of file DDTECModuleAlgo.cc.

◆ siFrSuppBoxYPos

vector<double> DDTECModuleAlgo::siFrSuppBoxYPos
private

Definition at line 94 of file DDTECModuleAlgo.cc.

◆ siReenforceHeight

vector<double> DDTECModuleAlgo::siReenforceHeight
private

Definition at line 128 of file DDTECModuleAlgo.cc.

◆ siReenforceMat

string DDTECModuleAlgo::siReenforceMat
private

Definition at line 133 of file DDTECModuleAlgo.cc.

◆ siReenforceThick

double DDTECModuleAlgo::siReenforceThick
private

Definition at line 132 of file DDTECModuleAlgo.cc.

◆ siReenforceWidth

vector<double> DDTECModuleAlgo::siReenforceWidth
private

Definition at line 129 of file DDTECModuleAlgo.cc.

◆ siReenforceYPos

vector<double> DDTECModuleAlgo::siReenforceYPos
private

Definition at line 130 of file DDTECModuleAlgo.cc.

◆ standardRot

string DDTECModuleAlgo::standardRot
private

Definition at line 61 of file DDTECModuleAlgo.cc.

◆ topFrame2LHeight

double DDTECModuleAlgo::topFrame2LHeight
private

Definition at line 79 of file DDTECModuleAlgo.cc.

◆ topFrame2RHeight

double DDTECModuleAlgo::topFrame2RHeight
private

Definition at line 80 of file DDTECModuleAlgo.cc.

◆ topFrame2Width

double DDTECModuleAlgo::topFrame2Width
private

Definition at line 78 of file DDTECModuleAlgo.cc.

◆ topFrameBotWidth

double DDTECModuleAlgo::topFrameBotWidth
private

Definition at line 77 of file DDTECModuleAlgo.cc.

◆ topFrameHeight

double DDTECModuleAlgo::topFrameHeight
private

Definition at line 74 of file DDTECModuleAlgo.cc.

◆ topFrameMat

string DDTECModuleAlgo::topFrameMat
private

Definition at line 73 of file DDTECModuleAlgo.cc.

◆ topFrameThick

double DDTECModuleAlgo::topFrameThick
private

Definition at line 75 of file DDTECModuleAlgo.cc.

◆ topFrameTopWidth

double DDTECModuleAlgo::topFrameTopWidth
private

Definition at line 76 of file DDTECModuleAlgo.cc.

◆ topFrameZ

double DDTECModuleAlgo::topFrameZ
private

Definition at line 81 of file DDTECModuleAlgo.cc.

◆ waferMat

string DDTECModuleAlgo::waferMat
private

Definition at line 98 of file DDTECModuleAlgo.cc.

◆ waferPosition

double DDTECModuleAlgo::waferPosition
private

Definition at line 99 of file DDTECModuleAlgo.cc.

◆ waferRot

string DDTECModuleAlgo::waferRot
private

Definition at line 102 of file DDTECModuleAlgo.cc.

◆ waferThick

double DDTECModuleAlgo::waferThick
private

Definition at line 105 of file DDTECModuleAlgo.cc.

DDTECModuleAlgo::sideFrameLWidthLow
double sideFrameLWidthLow
Definition: DDTECModuleAlgo.cc:85
DDAxes::y
DDTECModuleAlgo::siFrSuppBoxHeight
vector< double > siFrSuppBoxHeight
Definition: DDTECModuleAlgo.cc:93
mps_fire.i
i
Definition: mps_fire.py:355
DDTECModuleAlgo::sideFrameRHeight
double sideFrameRHeight
Definition: DDTECModuleAlgo.cc:90
DDTECModuleAlgo::siReenforceWidth
vector< double > siReenforceWidth
Definition: DDTECModuleAlgo.cc:129
DDTECModuleAlgo::topFrameTopWidth
double topFrameTopWidth
Definition: DDTECModuleAlgo.cc:76
DDTECModuleAlgo::detTilt
double detTilt
Definition: DDTECModuleAlgo.cc:65
DDTECModuleAlgo::standardRot
string standardRot
Definition: DDTECModuleAlgo.cc:61
DDName
DDName is used to identify DDD entities uniquely.
Definition: DDName.h:15
DDTECModuleAlgo::hybridMat
string hybridMat
Definition: DDTECModuleAlgo.cc:112
DDTECModuleAlgo::posCorrectionPhi
double posCorrectionPhi
Definition: DDTECModuleAlgo.cc:60
DDTECModuleAlgo::sideFrameZ
double sideFrameZ
Definition: DDTECModuleAlgo.cc:95
DDTECModuleAlgo::ringNo
int ringNo
Definition: DDTECModuleAlgo.cc:56
DDTECModuleAlgo::sideFrameLHeight
double sideFrameLHeight
Definition: DDTECModuleAlgo.cc:86
DDTECModuleAlgo::topFrame2Width
double topFrame2Width
Definition: DDTECModuleAlgo.cc:78
DDTECModuleAlgo::siReenforceThick
double siReenforceThick
Definition: DDTECModuleAlgo.cc:132
DDTECModuleAlgo::waferRot
string waferRot
Definition: DDTECModuleAlgo.cc:102
DDTECModuleAlgo::sideWidthBottom
double sideWidthBottom
Definition: DDTECModuleAlgo.cc:101
edm::second
U second(std::pair< T, U > const &p)
Definition: ParameterSet.cc:215
DDTECModuleAlgo::fullHeight
double fullHeight
Definition: DDTECModuleAlgo.cc:66
versionedElectronIDProducer_cfi.idName
idName
Definition: versionedElectronIDProducer_cfi.py:11
DDTECModuleAlgo::moduleThick
double moduleThick
Definition: DDTECModuleAlgo.cc:64
DDTECModuleAlgo::siFrSuppBoxThick
double siFrSuppBoxThick
Definition: DDTECModuleAlgo.cc:96
DDAxes::x
DDTECModuleAlgo::sideFrameThick
double sideFrameThick
Definition: DDTECModuleAlgo.cc:83
DDTECModuleAlgo::sideFrameRWidth
double sideFrameRWidth
Definition: DDTECModuleAlgo.cc:88
createJobs.tmp
tmp
align.sh
Definition: createJobs.py:716
dqmdumpme.first
first
Definition: dqmdumpme.py:55
DDTECModuleAlgo::siFrSuppBoxYPos
vector< double > siFrSuppBoxYPos
Definition: DDTECModuleAlgo.cc:94
DDTECModuleAlgo::hybridThick
double hybridThick
Definition: DDTECModuleAlgo.cc:115
DDTECModuleAlgo::activeMat
string activeMat
Definition: DDTECModuleAlgo.cc:103
DDTECModuleAlgo::doPos
void doPos(const DDLogicalPart &toPos, const DDLogicalPart &mother, int copyNr, double x, double y, double z, const string &rotName, DDCompactView &cpv)
Definition: DDTECModuleAlgo.cc:305
DDTECModuleAlgo::topFrame2RHeight
double topFrame2RHeight
Definition: DDTECModuleAlgo.cc:80
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
DDTECModuleAlgo::siFrSuppBoxWidth
vector< double > siFrSuppBoxWidth
Definition: DDTECModuleAlgo.cc:92
DDTECModuleAlgo::noOverlapShift
double noOverlapShift
Definition: DDTECModuleAlgo.cc:55
DDTECModuleAlgo::waferPosition
double waferPosition
Definition: DDTECModuleAlgo.cc:99
DDMaterial
DDMaterial is used to define and access material information.
Definition: DDMaterial.h:45
DDTECModuleAlgo::inactiveDy
double inactiveDy
Definition: DDTECModuleAlgo.cc:109
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
DDTECModuleAlgo::dlBottom
double dlBottom
Definition: DDTECModuleAlgo.cc:68
DDTECModuleAlgo::sideFrameRtheta
double sideFrameRtheta
Definition: DDTECModuleAlgo.cc:91
DDTECModuleAlgo::pitchRot
string pitchRot
Definition: DDTECModuleAlgo.cc:122
DDTECModuleAlgo::inactivePos
double inactivePos
Definition: DDTECModuleAlgo.cc:110
DDTECModuleAlgo::sideFrameLtheta
double sideFrameLtheta
Definition: DDTECModuleAlgo.cc:87
GlobalPosition_Frontier_DevDB_cff.tag
tag
Definition: GlobalPosition_Frontier_DevDB_cff.py:11
DDTECModuleAlgo::pitchZ
double pitchZ
Definition: DDTECModuleAlgo.cc:121
DDTranslation
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Definition: DDTranslation.h:7
DDTECModuleAlgo::rPos
double rPos
Definition: DDTECModuleAlgo.cc:59
DDBase::name
const N & name() const
Definition: DDBase.h:59
DDAxes::z
DDTECModuleAlgo::dlTop
double dlTop
Definition: DDTECModuleAlgo.cc:67
DDTECModuleAlgo::dlHybrid
double dlHybrid
Definition: DDTECModuleAlgo.cc:69
DDTECModuleAlgo::sideWidthTop
double sideWidthTop
Definition: DDTECModuleAlgo.cc:100
DDTECModuleAlgo::hybridWidth
double hybridWidth
Definition: DDTECModuleAlgo.cc:114
DDTECModuleAlgo::topFrameMat
string topFrameMat
Definition: DDTECModuleAlgo.cc:73
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
DDTECModuleAlgo::siReenforceMat
string siReenforceMat
Definition: DDTECModuleAlgo.cc:133
DDBase::ddname
const N & ddname() const
Definition: DDBase.h:61
DDTECModuleAlgo::backplaneThick
double backplaneThick
Definition: DDTECModuleAlgo.cc:108
DDTECModuleAlgo::frameThick
double frameThick
Definition: DDTECModuleAlgo.cc:71
DDTECModuleAlgo::sideFrameLWidth
double sideFrameLWidth
Definition: DDTECModuleAlgo.cc:84
DDTECModuleAlgo::pitchWidth
double pitchWidth
Definition: DDTECModuleAlgo.cc:118
DDTECModuleAlgo::waferThick
double waferThick
Definition: DDTECModuleAlgo.cc:105
DDLogicalPart
A DDLogicalPart aggregates information concerning material, solid and sensitveness ....
Definition: DDLogicalPart.h:93
DDTECModuleAlgo::topFrameHeight
double topFrameHeight
Definition: DDTECModuleAlgo.cc:74
funct::tan
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
createfilelist.int
int
Definition: createfilelist.py:10
DDName::name
const std::string & name() const
Returns the name.
Definition: DDName.cc:40
DDTECModuleAlgo::activeHeight
double activeHeight
Definition: DDTECModuleAlgo.cc:104
PVValHelper::dy
Definition: PVValidationHelpers.h:49
DDTECModuleAlgo::siReenforceYPos
vector< double > siReenforceYPos
Definition: DDTECModuleAlgo.cc:130
DDTECModuleAlgo::sideFrameMat
string sideFrameMat
Definition: DDTECModuleAlgo.cc:82
DDTECModuleAlgo::topFrameBotWidth
double topFrameBotWidth
Definition: DDTECModuleAlgo.cc:77
DDTECModuleAlgo::frameOver
double frameOver
Definition: DDTECModuleAlgo.cc:72
DDTECModuleAlgo::inactiveMat
string inactiveMat
Definition: DDTECModuleAlgo.cc:111
eostools.move
def move(src, dest)
Definition: eostools.py:511
DDTECModuleAlgo::pitchMat
string pitchMat
Definition: DDTECModuleAlgo.cc:117
DDTECModuleAlgo::topFrame2LHeight
double topFrame2LHeight
Definition: DDTECModuleAlgo.cc:79
DDTECModuleAlgo::topFrameZ
double topFrameZ
Definition: DDTECModuleAlgo.cc:81
DDTECModuleAlgo::isStereo
bool isStereo
Definition: DDTECModuleAlgo.cc:57
DDTECModuleAlgo::bridgeHeight
double bridgeHeight
Definition: DDTECModuleAlgo.cc:126
PVValHelper::dz
Definition: PVValidationHelpers.h:50
DDTECModuleAlgo::bridgeSep
double bridgeSep
Definition: DDTECModuleAlgo.cc:127
DDTECModuleAlgo::sideFrameRWidthLow
double sideFrameRWidthLow
Definition: DDTECModuleAlgo.cc:89
DDTECModuleAlgo::genMat
string genMat
Definition: DDTECModuleAlgo.cc:63
DDCurrentNamespace::ns
static std::string & ns()
Definition: DDCurrentNamespace.cc:3
DDTECModuleAlgo::pitchThick
double pitchThick
Definition: DDTECModuleAlgo.cc:120
DDTECModuleAlgo::siReenforceHeight
vector< double > siReenforceHeight
Definition: DDTECModuleAlgo.cc:128
makeMuonMisalignmentScenario.rot
rot
Definition: makeMuonMisalignmentScenario.py:322
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
DDSolid
A DDSolid represents the shape of a part.
Definition: DDSolid.h:39
DDRotation
Represents a uniquely identifyable rotation matrix.
Definition: DDTransform.h:57
DDTECModuleAlgo::frameWidth
double frameWidth
Definition: DDTECModuleAlgo.cc:70
DDTECModuleAlgo::siFrSuppBoxMat
string siFrSuppBoxMat
Definition: DDTECModuleAlgo.cc:97
DDTECModuleAlgo::hybridZ
double hybridZ
Definition: DDTECModuleAlgo.cc:116
DDTECModuleAlgo::activeRot
string activeRot
Definition: DDTECModuleAlgo.cc:106
DDTECModuleAlgo::bridgeThick
double bridgeThick
Definition: DDTECModuleAlgo.cc:125
DDSolidFactory::box
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:533
DDTECModuleAlgo::bridgeMat
string bridgeMat
Definition: DDTECModuleAlgo.cc:123
DDTECModuleAlgo::bridgeWidth
double bridgeWidth
Definition: DDTECModuleAlgo.cc:124
DDTECModuleAlgo::idNameSpace
string idNameSpace
Definition: DDTECModuleAlgo.cc:62
DDSolidFactory::trap
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:595
DDTECModuleAlgo::pitchHeight
double pitchHeight
Definition: DDTECModuleAlgo.cc:119
class-composition.parent
parent
Definition: class-composition.py:88
DDTECModuleAlgo::topFrameThick
double topFrameThick
Definition: DDTECModuleAlgo.cc:75
DDTECModuleAlgo::hybridHeight
double hybridHeight
Definition: DDTECModuleAlgo.cc:113
PVValHelper::dx
Definition: PVValidationHelpers.h:48
DDTECModuleAlgo::activeZ
double activeZ
Definition: DDTECModuleAlgo.cc:107
DDTECModuleAlgo::isRing6
bool isRing6
Definition: DDTECModuleAlgo.cc:58
DDSplit
std::pair< std::string, std::string > DDSplit(const std::string &n)
split into (name,namespace), separator = ':'
Definition: DDSplit.cc:3
DDCompactView::position
void position(const DDLogicalPart &self, const DDLogicalPart &parent, const std::string &copyno, const DDTranslation &trans, const DDRotation &rot, const DDDivision *div=nullptr)
Definition: DDCompactView.cc:66
DDRotation
ROOT::Math::Rotation3D DDRotation
Definition: DDEcalEndcapAlgo.cc:18
DDTECModuleAlgo::waferMat
string waferMat
Definition: DDTECModuleAlgo.cc:98