test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
DDTIBLayerAlgo Class Reference

#include <DDTIBLayerAlgo.h>

Inheritance diagram for DDTIBLayerAlgo:

Public Member Functions

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

Private Attributes

double bwExtPillarDPhi
 
double bwExtPillarDz
 
std::vector< double > bwExtPillarPhi
 
std::vector< double > bwExtPillarZ
 
double bwIntPillarDPhi
 
double bwIntPillarDz
 
std::vector< double > bwIntPillarPhi
 
std::vector< double > bwIntPillarZ
 
std::string centMat
 
std::vector< double > centRing1par
 
std::vector< double > centRing2par
 
double cylinderInR
 
std::string cylinderMat
 
double cylinderT
 
std::string detectorLo
 
double detectorTilt
 
std::string detectorUp
 
double dohmAuxL
 
std::string dohmAuxMaterial
 
std::string dohmAuxName
 
std::string dohmCableMaterial
 
std::string dohmCarrierMaterial
 
double dohmCarrierPhiOff
 
std::vector< double > dohmListBW
 
std::vector< double > dohmListFW
 
double dohmPrimL
 
std::string dohmPrimMaterial
 
std::string dohmPrimName
 
double dohmtoMF
 
double fillerDz
 
std::string fillerMat
 
double fwExtPillarDPhi
 
double fwExtPillarDz
 
std::vector< double > fwExtPillarPhi
 
std::vector< double > fwExtPillarZ
 
double fwIntPillarDPhi
 
double fwIntPillarDz
 
std::vector< double > fwIntPillarPhi
 
std::vector< double > fwIntPillarZ
 
std::string genMat
 
std::string idNameSpace
 
double layerL
 
std::string MFExtRingMat
 
std::string MFIntRingMat
 
double MFRingDz
 
double MFRingInR
 
double MFRingOutR
 
double MFRingT
 
double phioffLo
 
double phioffUp
 
std::string pillarMaterial
 
double radiusLo
 
double radiusUp
 
std::string ribMat
 
std::vector< double > ribPhi
 
std::vector< double > ribW
 
int stringsLo
 
int stringsUp
 
double supportT
 

Detailed Description

Definition at line 10 of file DDTIBLayerAlgo.h.

Constructor & Destructor Documentation

DDTIBLayerAlgo::DDTIBLayerAlgo ( )

Definition at line 21 of file DDTIBLayerAlgo.cc.

References LogDebug.

21  : ribW(0),ribPhi(0) {
22  LogDebug("TIBGeom") << "DDTIBLayerAlgo info: Creating an instance";
23 }
#define LogDebug(id)
std::vector< double > ribPhi
std::vector< double > ribW
DDTIBLayerAlgo::~DDTIBLayerAlgo ( )
virtual

Definition at line 25 of file DDTIBLayerAlgo.cc.

25 {}

Member Function Documentation

void DDTIBLayerAlgo::execute ( DDCompactView cpv)

Definition at line 176 of file DDTIBLayerAlgo.cc.

References funct::abs(), bwExtPillarDPhi, bwExtPillarDz, bwExtPillarPhi, bwExtPillarZ, bwIntPillarDPhi, bwIntPillarDz, bwIntPillarPhi, bwIntPillarZ, centMat, centRing1par, centRing2par, funct::cos(), cylinderInR, cylinderMat, cylinderT, dbl_to_string(), DDanonymousRot(), DDcreateRotationMatrix(), DDBase< N, C >::ddname(), DDrot(), DDSplit(), detectorLo, detectorTilt, detectorUp, dohmAuxL, dohmAuxName, dohmCarrierMaterial, dohmCarrierPhiOff, dohmListBW, dohmListFW, dohmPrimL, dohmPrimName, dohmtoMF, fillerDz, fillerMat, plotBeamSpotDB::first, fwExtPillarDPhi, fwExtPillarDz, fwExtPillarPhi, fwExtPillarZ, fwIntPillarDPhi, fwIntPillarDz, fwIntPillarPhi, fwIntPillarZ, genMat, i, cutBasedElectronID_PHYS14_PU20bx25_V1_cff::idName, idNameSpace, j, layerL, LogDebug, MFExtRingMat, MFIntRingMat, MFRingDz, MFRingInR, MFRingOutR, MFRingT, gen::n, DDName::name(), mergeVDriftHistosByStation::name, DDBase< N, C >::name(), phi, pillarMaterial, DDCompactView::position(), radiusLo, radiusUp, ribMat, ribPhi, ribW, idealTransformation::rotation, edm::second(), funct::sin(), AlCaHLTBitMon_QueryRunRegistry::string, stringsLo, stringsUp, supportT, theta(), DDSolidFactory::tubs(), and create_public_lumi_plots::width.

176  {
177 
178  LogDebug("TIBGeom") << "==>> Constructing DDTIBLayerAlgo...";
179 
180  DDName parentName = parent().name();
181  const std::string &idName = parentName.name();
182 
183  double rmin = MFRingInR;
184  double rmax = MFRingOutR;
185 
186  DDSolid solid = DDSolidFactory::tubs(DDName(idName, idNameSpace), 0.5*layerL,
187  rmin, rmax, 0, CLHEP::twopi);
188 
189  LogDebug("TIBGeom") << "DDTIBLayerAlgo test: "
190  << DDName(idName,idNameSpace) << " Tubs made of "
191  << genMat << " from 0 to " << CLHEP::twopi/CLHEP::deg
192  << " with Rin " << rmin << " Rout " << rmax
193  << " ZHalf " << 0.5*layerL;
194 
196  DDMaterial matter(matname);
197  DDLogicalPart layer(solid.ddname(), matter, solid);
198 
199  //Internal layer first
200  double rin = rmin+MFRingT;
201  // double rout = 0.5*(radiusLo+radiusUp-cylinderT);
202  double rout = cylinderInR;
203  std::string name = idName + "Down";
204  solid = DDSolidFactory::tubs(DDName(name, idNameSpace), 0.5*layerL,
205  rin, rout, 0, CLHEP::twopi);
206  LogDebug("TIBGeom") << "DDTIBLayerAlgo test: "
207  << DDName(name, idNameSpace) << " Tubs made of "
208  << genMat << " from 0 to " << CLHEP::twopi/CLHEP::deg
209  << " with Rin " << rin << " Rout " << rout
210  << " ZHalf " << 0.5*layerL;
211  DDLogicalPart layerIn(solid.ddname(), matter, solid);
212  cpv.position(layerIn, layer, 1, DDTranslation(0.0, 0.0, 0.0), DDRotation());
213  LogDebug("TIBGeom") << "DDTIBLayerAlgo test: " << layerIn.name()
214  << " number 1 positioned in " << layer.name()
215  << " at (0,0,0) with no rotation";
216 
217  double rposdet = radiusLo;
218  double dphi = CLHEP::twopi/stringsLo;
220  for (int n = 0; n < stringsLo; n++) {
221  double phi = (n+0.5)*dphi;
222  double phix = phi - detectorTilt + 90*CLHEP::deg;
223  double phideg = phix/CLHEP::deg;
225  if (phideg != 0) {
226  double theta = 90*CLHEP::deg;
227  double phiy = phix + 90.*CLHEP::deg;
228  std::string rotstr = idName + dbl_to_string(phideg*10.);
229  rotation = DDRotation(DDName(rotstr, idNameSpace));
230  if (!rotation) {
231  LogDebug("TIBGeom") << "DDTIBLayerAlgo test: Creating a new "
232  << "rotation: " << rotstr << "\t90., "
233  << phix/CLHEP::deg << ", 90.,"
234  << phiy/CLHEP::deg << ", 0, 0";
235  rotation = DDrot(DDName(rotstr, idNameSpace), theta, phix, theta, phiy,
236  0., 0.);
237  }
238  }
239  DDTranslation trdet(rposdet*cos(phi), rposdet*sin(phi), 0);
240  cpv.position(detIn, layerIn, n+1, trdet, rotation);
241  LogDebug("TIBGeom") << "DDTIBLayerAlgo test " << detIn.name()
242  << " number " << n+1 << " positioned in "
243  << layerIn.name() << " at " << trdet << " with "
244  << rotation;
245  }
246 
247  //Now the external layer
248  rin = cylinderInR + cylinderT;
249  rout = rmax-MFRingT;
250  name = idName + "Up";
251  solid = DDSolidFactory::tubs(DDName(name, idNameSpace), 0.5*layerL,
252  rin, rout, 0, CLHEP::twopi);
253  LogDebug("TIBGeom") << "DDTIBLayerAlgo test: "
254  << DDName(name, idNameSpace) << " Tubs made of "
255  << genMat << " from 0 to " << CLHEP::twopi/CLHEP::deg
256  << " with Rin " << rin << " Rout " << rout
257  << " ZHalf " << 0.5*layerL;
258  DDLogicalPart layerOut(solid.ddname(), matter, solid);
259  cpv.position(layerOut, layer, 1, DDTranslation(0.0, 0.0, 0.0), DDRotation());
260  LogDebug("TIBGeom") << "DDTIBLayerAlgo test: " << layerOut.name()
261  << " number 1 positioned in " << layer.name()
262  << " at (0,0,0) with no rotation";
263 
264  rposdet = radiusUp;
265  dphi = CLHEP::twopi/stringsUp;
267  for (int n = 0; n < stringsUp; n++) {
268  double phi = (n+0.5)*dphi;
269  double phix = phi - detectorTilt - 90*CLHEP::deg;
270  double phideg = phix/CLHEP::deg;
272  if (phideg != 0) {
273  double theta = 90*CLHEP::deg;
274  double phiy = phix + 90.*CLHEP::deg;
275  std::string rotstr = idName + dbl_to_string(phideg*10.);
276  rotation = DDRotation(DDName(rotstr, idNameSpace));
277  if (!rotation) {
278  LogDebug("TIBGeom") << "DDTIBLayerAlgo test: Creating a new "
279  << "rotation: " << rotstr << "\t90., "
280  << phix/CLHEP::deg << ", 90.,"
281  << phiy/CLHEP::deg << ", 0, 0";
282  rotation = DDrot(DDName(rotstr, idNameSpace), theta, phix, theta, phiy,
283  0., 0.);
284  }
285  }
286  DDTranslation trdet(rposdet*cos(phi), rposdet*sin(phi), 0);
287  cpv.position(detOut, layerOut, n+1, trdet, rotation);
288  LogDebug("TIBGeom") << "DDTIBLayerAlgo test " << detOut.name()
289  << " number " << n+1 << " positioned in "
290  << layerOut.name() << " at " << trdet << " with "
291  << rotation;
292  }
293 
294  //
295  // Inner cylinder, support wall and ribs
296  //
297  // External skins
298  rin = cylinderInR;
299  rout = cylinderInR+cylinderT;
300  name = idName + "Cylinder";
301  solid = DDSolidFactory::tubs(DDName(name, idNameSpace), 0.5*layerL,
302  rin, rout, 0, CLHEP::twopi);
303  LogDebug("TIBGeom") << "DDTIBLayerAlgo test: "
304  << DDName(name, idNameSpace) << " Tubs made of "
305  << cylinderMat << " from 0 to "
306  << CLHEP::twopi/CLHEP::deg << " with Rin " << rin
307  << " Rout " << rout << " ZHalf " << 0.5*layerL;
308  matname = DDName(DDSplit(cylinderMat).first, DDSplit(cylinderMat).second);
309  DDMaterial matcyl(matname);
310  DDLogicalPart cylinder(solid.ddname(), matcyl, solid);
311  cpv.position(cylinder, layer, 1, DDTranslation(0.0, 0.0, 0.0), DDRotation());
312  LogDebug("TIBGeom") << "DDTIBLayerAlgo test: " << cylinder.name()
313  << " number 1 positioned in " << layer.name()
314  << " at (0,0,0) with no rotation";
315  //
316  // inner part of the cylinder
317  //
318  rin += supportT;
319  rout -= supportT;
320  name = idName + "CylinderIn";
321  solid = DDSolidFactory::tubs(DDName(name, idNameSpace), 0.5*layerL,
322  rin, rout, 0, CLHEP::twopi);
323  LogDebug("TIBGeom") << "DDTIBLayerAlgo test: "
324  << DDName(name, idNameSpace) << " Tubs made of "
325  << genMat << " from 0 to " << CLHEP::twopi/CLHEP::deg
326  << " with Rin " << rin << " Rout " << rout
327  << " ZHalf " << 0.5*layerL;
328  DDLogicalPart cylinderIn(solid.ddname(), matter, solid);
329  cpv.position(cylinderIn, cylinder, 1, DDTranslation(0.0, 0.0, 0.0), DDRotation());
330  LogDebug("TIBGeom") << "DDTIBLayerAlgo test: " << cylinderIn.name()
331  << " number 1 positioned in " << cylinder.name()
332  << " at (0,0,0) with no rotation";
333  //
334  // Filler Rings
335  //
336  matname = DDName(DDSplit(fillerMat).first, DDSplit(fillerMat).second);
337  DDMaterial matfiller(matname);
338  name = idName + "Filler";
339  solid = DDSolidFactory::tubs(DDName(name, idNameSpace), fillerDz, rin, rout,
340  0., CLHEP::twopi);
341  LogDebug("TIBGeom") << "DDTIBLayerAlgo test: "
342  << DDName(name, idNameSpace) << " Tubs made of "
343  << fillerMat << " from " << 0. << " to "
344  << CLHEP::twopi/CLHEP::deg << " with Rin " << rin
345  << " Rout " << rout << " ZHalf " << fillerDz;
346  DDLogicalPart cylinderFiller(solid.ddname(), matfiller, solid);
347  cpv.position(cylinderFiller, cylinderIn, 1, DDTranslation(0.0, 0.0, 0.5*layerL-fillerDz), DDRotation());
348  cpv.position(cylinderFiller, cylinderIn, 2, DDTranslation(0.0, 0.0,-0.5*layerL+fillerDz), DDRotation());
349  LogDebug("TIBGeom") << "DDTIBLayerAlgo test " << cylinderFiller.name()
350  << " number 1" << " positioned in "
351  << cylinderIn.name() << " at " << DDTranslation(0.0, 0.0, 0.5*layerL-fillerDz)
352  << " number 2" << " positioned in "
353  << cylinderIn.name() << " at " << DDTranslation(0.0, 0.0,-0.5*layerL+fillerDz);
354 
355  //
356  // Ribs
357  //
358  matname = DDName(DDSplit(ribMat).first, DDSplit(ribMat).second);
359  DDMaterial matrib(matname);
360  for (int i = 0; i < (int)(ribW.size()); i++) {
361  name = idName + "Rib" + dbl_to_string(i);
362  double width = 2.*ribW[i]/(rin+rout);
363  double dz = 0.5*layerL-2.*fillerDz;
364  solid = DDSolidFactory::tubs(DDName(name, idNameSpace), dz,
365  rin+0.5*CLHEP::mm, rout-0.5*CLHEP::mm,
366  -0.5*width, width);
367  LogDebug("TIBGeom") << "DDTIBLayerAlgo test: "
368  << DDName(name, idNameSpace) << " Tubs made of "
369  << ribMat << " from " << -0.5*width/CLHEP::deg <<" to "
370  << 0.5*width/CLHEP::deg << " with Rin "
371  << rin+0.5*CLHEP::mm << " Rout "
372  << rout-0.5*CLHEP::mm << " ZHalf " << dz;
373  DDLogicalPart cylinderRib(solid.ddname(), matrib, solid);
374  double phix = ribPhi[i];
375  double phideg = phix/CLHEP::deg;
377  if (phideg != 0) {
378  double theta = 90*CLHEP::deg;
379  double phiy = phix + 90.*CLHEP::deg;
380  std::string rotstr = idName + dbl_to_string(phideg*10.);
381  rotation = DDRotation(DDName(rotstr, idNameSpace));
382  if (!rotation) {
383  LogDebug("TIBGeom") << "DDTIBLayerAlgo test: Creating a new "
384  << "rotation: " << rotstr << "\t90., "
385  << phix/CLHEP::deg << ", 90.," << phiy/CLHEP::deg
386  << ", 0, 0";
387  rotation = DDrot(DDName(rotstr, idNameSpace), theta, phix, theta, phiy,
388  0., 0.);
389  }
390  }
391  DDTranslation tran(0, 0, 0);
392  cpv.position(cylinderRib, cylinderIn, 1, tran, rotation);
393  LogDebug("TIBGeom") << "DDTIBLayerAlgo test " << cylinderRib.name()
394  << " number 1" << " positioned in "
395  << cylinderIn.name() << " at " << tran << " with "
396  << rotation;
397  }
398 
399  //Manifold rings
400  //
401  // Inner ones first
403  DDMaterial matintmfr(matname);
404  rin = MFRingInR;
405  rout = rin + MFRingT;
406  name = idName + "InnerMFRing";
408  rin, rout, 0, CLHEP::twopi);
409 
410  LogDebug("TIBGeom") << "DDTIBLayerAlgo test: "
411  << DDName(name, idNameSpace) << " Tubs made of "
412  << MFIntRingMat << " from 0 to "
413  << CLHEP::twopi/CLHEP::deg << " with Rin " << rin
414  << " Rout " << rout << " ZHalf " << MFRingDz;
415 
416  DDLogicalPart inmfr(solid.ddname(), matintmfr, solid);
417  cpv.position(inmfr, layer, 1, DDTranslation(0.0, 0.0, -0.5*layerL+MFRingDz), DDRotation());
418  cpv.position(inmfr, layer, 2, DDTranslation(0.0, 0.0, +0.5*layerL-MFRingDz), DDRotation());
419  LogDebug("TIBGeom") << "DDTIBLayerAlgo test: " << inmfr.name()
420  << " number 1 and 2 positioned in " << layer.name()
421  << " at (0,0,+-" << 0.5*layerL-MFRingDz << ") with no rotation";
422  // Outer ones
424  DDMaterial matextmfr(matname);
425  rout = MFRingOutR;
426  rin = rout - MFRingT;
427  name = idName + "OuterMFRing";
428  solid = DDSolidFactory::tubs(DDName(name, idNameSpace), MFRingDz,
429  rin, rout, 0, CLHEP::twopi);
430 
431  LogDebug("TIBGeom") << "DDTIBLayerAlgo test: "
432  << DDName(name, idNameSpace) << " Tubs made of "
433  << MFExtRingMat << " from 0 to "
434  << CLHEP::twopi/CLHEP::deg << " with Rin " << rin
435  << " Rout " << rout << " ZHalf " << MFRingDz;
436 
437  DDLogicalPart outmfr(solid.ddname(), matextmfr, solid);
438  cpv.position(outmfr, layer, 1, DDTranslation(0.0, 0.0, -0.5*layerL+MFRingDz), DDRotation());
439  cpv.position(outmfr, layer, 2, DDTranslation(0.0, 0.0, +0.5*layerL-MFRingDz), DDRotation());
440  LogDebug("TIBGeom") << "DDTIBLayerAlgo test: " << outmfr.name()
441  << " number 1 and 2 positioned in " << layer.name()
442  << " at (0,0,+-" << 0.5*layerL-MFRingDz
443  << ") with no rotation";
444 
445  //Central Support rings
446  //
447  matname = DDName(DDSplit(centMat).first, DDSplit(centMat).second);
448  DDMaterial matcent(matname);
449  // Ring 1
450  double centZ = centRing1par[0];
451  double centDz = 0.5*centRing1par[1];
452  rin = centRing1par[2];
453  rout = centRing1par[3];
454  name = idName + "CentRing1";
455  solid = DDSolidFactory::tubs(DDName(name, idNameSpace), centDz,
456  rin, rout, 0, CLHEP::twopi);
457 
458  LogDebug("TIBGeom") << "DDTIBLayerAlgo test: "
459  << DDName(name, idNameSpace) << " Tubs made of "
460  << centMat << " from 0 to " << CLHEP::twopi/CLHEP::deg
461  << " with Rin " << rin << " Rout " << rout
462  << " ZHalf " << centDz;
463 
464  DDLogicalPart cent1(solid.ddname(), matcent, solid);
465  cpv.position(cent1, layer, 1, DDTranslation(0.0, 0.0, centZ), DDRotation());
466  LogDebug("TIBGeom") << "DDTIBLayerAlgo test: " << cent1.name()
467  << " positioned in " << layer.name()
468  << " at (0,0," << centZ << ") with no rotation";
469  // Ring 2
470  centZ = centRing2par[0];
471  centDz = 0.5*centRing2par[1];
472  rin = centRing2par[2];
473  rout = centRing2par[3];
474  name = idName + "CentRing2";
475  solid = DDSolidFactory::tubs(DDName(name, idNameSpace), centDz,
476  rin, rout, 0, CLHEP::twopi);
477 
478  LogDebug("TIBGeom") << "DDTIBLayerAlgo test: "
479  << DDName(name, idNameSpace) << " Tubs made of "
480  << centMat << " from 0 to " << CLHEP::twopi/CLHEP::deg
481  << " with Rin " << rin << " Rout " << rout
482  << " ZHalf " << centDz;
483 
484  DDLogicalPart cent2(solid.ddname(), matcent, solid);
485  cpv.position(cent2, layer, 1, DDTranslation(0.0, 0.0, centZ), DDRotation());
486  LogDebug("TIBGeom") << "DDTIBLayerAlgo test: " << cent2.name()
487  << " positioned in " << layer.name()
488  << " at (0,0," << centZ << ") with no rotation";
489 
491  //
492  // Preparing DOHM Carrier solid
493 
494  name = idName + "DOHMCarrier";
495 
496  double dohmCarrierRin = MFRingOutR - MFRingT;
497  double dohmCarrierRout = MFRingOutR;
498  double dohmCarrierDz = 0.5*(dohmPrimL+dohmtoMF);
499  double dohmCarrierZ = 0.5*layerL-2.*MFRingDz-dohmCarrierDz;
500 
501  solid = DDSolidFactory::tubs(DDName(name, idNameSpace), dohmCarrierDz,
502  dohmCarrierRin, dohmCarrierRout,
504  180.*CLHEP::deg-2.*dohmCarrierPhiOff);
505  LogDebug("TIBGeom") << "DDTIBLayerAlgo test: "
506  << DDName(name, idNameSpace) << " Tubs made of "
507  << dohmCarrierMaterial << " from "
508  << dohmCarrierPhiOff << " to "
509  << 180.*CLHEP::deg-dohmCarrierPhiOff << " with Rin "
510  << dohmCarrierRin << " Rout " << MFRingOutR << " ZHalf "
511  << dohmCarrierDz;
512 
513 
514  // Define FW and BW carrier logical volume and
515  // place DOHM Primary and auxiliary modules inside it
516 
517  dphi = CLHEP::twopi/stringsUp;
518 
519  DDRotation dohmRotation;
520 
521  double dohmR = 0.5*(dohmCarrierRin+dohmCarrierRout);
522 
523 
524  for (int j = 0; j<4; j++) {
525 
526  std::vector<double> dohmList;
527  DDTranslation tran;
528  std::string rotstr;
530  int dohmCarrierReplica=0;
531  int placeDohm = 0;
532 
533  switch (j){
534  case 0:
535  name = idName + "DOHMCarrierFW";
536  dohmList = dohmListFW;
537  tran = DDTranslation(0., 0., dohmCarrierZ);
538  rotstr = idName + "FwUp";
539  rotation = DDRotation();
540  dohmCarrierReplica = 1;
541  placeDohm=1;
542  break;
543  case 1:
544  name = idName + "DOHMCarrierFW";
545  dohmList = dohmListFW;
546  tran = DDTranslation(0., 0., dohmCarrierZ);
547  rotstr = idName + "FwDown";
548  rotation = DDrot(DDName(rotstr, idNameSpace), 90.*CLHEP::deg,
549  180.*CLHEP::deg, 90.*CLHEP::deg,270.*CLHEP::deg, 0.,0.);
550  dohmCarrierReplica = 2;
551  placeDohm=0;
552  break;
553  case 2:
554  name = idName + "DOHMCarrierBW";
555  dohmList = dohmListBW;
556  tran = DDTranslation(0., 0., -dohmCarrierZ);
557  rotstr = idName + "BwUp";
558  rotation = DDrot(DDName(rotstr, idNameSpace), 90.*CLHEP::deg,
559  180.*CLHEP::deg, 90.*CLHEP::deg, 90.*CLHEP::deg,
560  180.*CLHEP::deg, 0.);
561  dohmCarrierReplica = 1;
562  placeDohm=1;
563  break;
564  case 3:
565  name = idName + "DOHMCarrierBW";
566  dohmList = dohmListBW;
567  tran = DDTranslation(0., 0., -dohmCarrierZ);
568  rotstr = idName + "BwDown";
569  rotation = DDrot(DDName(rotstr, idNameSpace), 90.*CLHEP::deg, 0.,
570  90.*CLHEP::deg, 270.*CLHEP::deg, 180.*CLHEP::deg, 0.);
571  dohmCarrierReplica = 2;
572  placeDohm=0;
573  break;
574  }
575 
576  DDLogicalPart dohmCarrier(name,DDMaterial(dohmCarrierMaterial),solid);
577 
578  int primReplica = 0;
579  int auxReplica = 0;
580 
581  for (int i = 0; i < placeDohm*((int)(dohmList.size())); i++) {
582 
583  double phi = (std::abs(dohmList[i])+0.5-1.)*dphi;
584  double phix = phi + 90*CLHEP::deg;
585  double phideg = phix/CLHEP::deg;
586  if (phideg != 0) {
587  double theta = 90*CLHEP::deg;
588  double phiy = phix + 90.*CLHEP::deg;
589  std::string rotstr = idName+dbl_to_string(std::abs(dohmList[i])-1.);
590  dohmRotation = DDRotation(DDName(rotstr, idNameSpace));
591  if (!dohmRotation) {
592  LogDebug("TIBGeom") << "DDTIBLayerAlgo test: Creating a new "
593  << "rotation: " << rotstr << "\t" << theta
594  << ", " << phix/CLHEP::deg << ", " << theta
595  << ", " << phiy/CLHEP::deg <<", 0, 0";
596  dohmRotation = DDrot(DDName(rotstr, idNameSpace), theta, phix, theta,
597  phiy, 0., 0.);
598  }
599  }
600 
601  std::string dohmName;
602  int dohmReplica = 0;
603  double dohmZ = 0.;
604 
605  if(dohmList[i]<0.) {
606  // Place a Auxiliary DOHM
607  dohmName = dohmAuxName;
608  dohmZ = dohmCarrierDz - 0.5*dohmAuxL - dohmtoMF;
609  primReplica++;
610  dohmReplica = primReplica;
611 
612  } else {
613  // Place a Primary DOHM
614  dohmName = dohmPrimName;
615  dohmZ = dohmCarrierDz - 0.5*dohmPrimL - dohmtoMF;
616  auxReplica++;
617  dohmReplica = auxReplica;
618  }
619 
620  DDName dohm(DDSplit(dohmName).first, DDSplit(dohmName).second);
621  DDTranslation dohmTrasl(dohmR*cos(phi), dohmR*sin(phi), dohmZ);
622  cpv.position(dohm, dohmCarrier, dohmReplica, dohmTrasl, dohmRotation);
623  LogDebug("TIBGeom") << "DDTIBLayerAlgo test " << dohm.name()
624  << " replica " << dohmReplica << " positioned in "
625  << dohmCarrier.name() << " at " << dohmTrasl << " with "
626  << dohmRotation;
627 
628  }
629 
630 
631  cpv.position(dohmCarrier, parent(), dohmCarrierReplica, tran, rotation );
632  LogDebug("TIBGeom") << "DDTIBLayerAlgo test "
633  << dohmCarrier.name() << " positioned in " << parent().name() << " at "
634  << tran << " with " << rotation;
635 
636  }
637 
639 
640  for (int j = 0; j<4; j++) {
641 
643  DDMaterial pillarMat(matname);
644  std::vector<double> pillarZ;
645  std::vector<double> pillarPhi;
646  double pillarDz=0, pillarDPhi=0, pillarRin=0, pillarRout=0;
647 
648  switch (j){
649  case 0:
650  name = idName + "FWIntPillar";
651  pillarZ = fwIntPillarZ;
652  pillarPhi = fwIntPillarPhi;
653  pillarRin = MFRingInR;
654  pillarRout = MFRingInR + MFRingT;
655  pillarDz = fwIntPillarDz;
656  pillarDPhi = fwIntPillarDPhi;
657  break;
658  case 1:
659  name = idName + "BWIntPillar";
660  pillarZ = bwIntPillarZ;
661  pillarPhi = bwIntPillarPhi;
662  pillarRin = MFRingInR;
663  pillarRout = MFRingInR + MFRingT;
664  pillarDz = bwIntPillarDz;
665  pillarDPhi = bwIntPillarDPhi;
666  break;
667  case 2:
668  name = idName + "FWExtPillar";
669  pillarZ = fwExtPillarZ;
670  pillarPhi = fwExtPillarPhi;
671  pillarRin = MFRingOutR - MFRingT;
672  pillarRout = MFRingOutR;
673  pillarDz = fwExtPillarDz;
674  pillarDPhi = fwExtPillarDPhi;
675  break;
676  case 3:
677  name = idName + "BWExtPillar";
678  pillarZ = bwExtPillarZ;
679  pillarPhi = bwExtPillarPhi;
680  pillarRin = MFRingOutR - MFRingT;
681  pillarRout = MFRingOutR;
682  pillarDz = bwExtPillarDz;
683  pillarDPhi = bwExtPillarDPhi;
684  break;
685  }
686 
687 
688  solid = DDSolidFactory::tubs(DDName(name, idNameSpace), pillarDz,
689  pillarRin, pillarRout,
690  -pillarDPhi, 2.*pillarDPhi);
691 
692  DDLogicalPart Pillar(name,DDMaterial(pillarMat),solid);
693 
694  LogDebug("TIBGeom") << "DDTIBLayerAlgo test: "
695  << DDName(name, idNameSpace) << " Tubs made of "
696  << pillarMat << " from "
697  << -pillarDPhi << " to "
698  << pillarDPhi << " with Rin "
699  << pillarRin << " Rout " << pillarRout << " ZHalf "
700  << pillarDz;
701 
702  DDTranslation pillarTran;
703  DDRotation pillarRota;
704  int pillarReplica = 0;
705  for (unsigned int i=0; i<pillarZ.size(); i++) {
706  if( pillarPhi[i]>0. ) {
707 
708  pillarTran = DDTranslation(0., 0., pillarZ[i]);
709  pillarRota = DDanonymousRot(DDcreateRotationMatrix(90.*CLHEP::deg, pillarPhi[i], 90.*CLHEP::deg, 90.*CLHEP::deg+pillarPhi[i], 0., 0.));
710 
711  cpv.position(Pillar, parent(), i, pillarTran, pillarRota);
712  LogDebug("TIBGeom") << "DDTIBLayerAlgo test "
713  << Pillar.name() << " positioned in "
714  << parent().name() << " at "
715  << pillarTran << " with " << pillarRota
716  << " copy number " << pillarReplica;
717 
718  pillarReplica++;
719  }
720 
721  }
722 
723  }
724 
725 }
#define LogDebug(id)
int i
Definition: DBlmapReader.cc:9
double fwExtPillarDz
std::vector< double > centRing2par
std::vector< double > bwIntPillarPhi
std::vector< double > dohmListFW
DDMaterial is used to define and access material information.
Definition: DDMaterial.h:41
std::string detectorUp
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
std::string MFIntRingMat
std::vector< double > fwIntPillarPhi
Geom::Theta< T > theta() const
void position(const DDLogicalPart &self, const DDLogicalPart &parent, std::string copyno, const DDTranslation &trans, const DDRotation &rot, const DDDivision *div=NULL)
std::vector< double > fwIntPillarZ
DDName is used to identify DDD entities uniquely.
Definition: DDName.h:14
double fwIntPillarDz
std::string dbl_to_string(const double &in)
Converts only the integer part of a double to a string.
Definition: DDutils.cc:12
std::vector< double > bwExtPillarZ
std::string cylinderMat
std::string fillerMat
A DDSolid represents the shape of a part.
Definition: DDSolid.h:35
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Definition: DDTranslation.h:7
DDRotation DDanonymousRot(DDRotationMatrix *rot)
Defines a anonymous rotation or rotation-reflection matrix.
Definition: DDRotation.cc:194
std::string centMat
Represents a uniquely identifyable rotation matrix.
Definition: DDTransform.h:66
U second(std::pair< T, U > const &p)
std::string dohmPrimName
std::string genMat
double dohmCarrierPhiOff
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
int j
Definition: DBlmapReader.cc:9
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
Definition: DDLogicalPart.h:88
static DDSolid tubs(const DDName &name, double zhalf, double rIn, double rOut, double startPhi, double deltaPhi)
Definition: DDSolid.cc:788
std::vector< double > centRing1par
std::string ribMat
std::vector< double > fwExtPillarPhi
std::string MFExtRingMat
DDRotation DDrot(const DDName &name, DDRotationMatrix *rot)
Definition of a uniquely identifiable rotation matrix named by DDName name.
Definition: DDRotation.cc:90
std::vector< double > bwIntPillarZ
std::string idNameSpace
double bwExtPillarDPhi
std::vector< double > bwExtPillarPhi
double fwExtPillarDPhi
std::vector< double > ribPhi
std::vector< double > dohmListBW
std::string pillarMaterial
std::pair< std::string, std::string > DDSplit(const std::string &n)
split into (name,namespace), separator = &#39;:&#39;
Definition: DDSplit.cc:4
std::string dohmAuxName
std::string detectorLo
std::vector< double > ribW
const std::string & name() const
Returns the name.
Definition: DDName.cc:87
double fwIntPillarDPhi
double bwIntPillarDz
std::vector< double > fwExtPillarZ
double bwIntPillarDPhi
double bwExtPillarDz
std::string dohmCarrierMaterial
const N & ddname() const
Definition: DDBase.h:80
DDRotationMatrix * DDcreateRotationMatrix(double thetaX, double phiX, double thetaY, double phiY, double thetaZ, double phiZ)
create a new DDRotationMatrix in the GEANT3 style.
Definition: DDRotation.cc:165
void DDTIBLayerAlgo::initialize ( const DDNumericArguments nArgs,
const DDVectorArguments vArgs,
const DDMapArguments mArgs,
const DDStringArguments sArgs,
const DDStringVectorArguments vsArgs 
)

Definition at line 27 of file DDTIBLayerAlgo.cc.

References bwExtPillarDPhi, bwExtPillarDz, bwExtPillarPhi, bwExtPillarZ, bwIntPillarDPhi, bwIntPillarDz, bwIntPillarPhi, bwIntPillarZ, centMat, centRing1par, centRing2par, cylinderInR, cylinderMat, cylinderT, detectorLo, detectorTilt, detectorUp, dohmAuxL, dohmAuxMaterial, dohmAuxName, dohmCableMaterial, dohmCarrierMaterial, dohmCarrierPhiOff, dohmListBW, dohmListFW, dohmPrimL, dohmPrimMaterial, dohmPrimName, dohmtoMF, fillerDz, fillerMat, fwExtPillarDPhi, fwExtPillarDz, fwExtPillarPhi, fwExtPillarZ, fwIntPillarDPhi, fwIntPillarDz, fwIntPillarPhi, fwIntPillarZ, genMat, i, idNameSpace, layerL, LogDebug, MFExtRingMat, MFIntRingMat, MFRingDz, MFRingInR, MFRingOutR, MFRingT, DDName::name(), DDCurrentNamespace::ns(), pillarMaterial, radiusLo, radiusUp, ribMat, ribPhi, ribW, stringsLo, stringsUp, and supportT.

31  {
32 
34  genMat = sArgs["GeneralMaterial"];
35  DDName parentName = parent().name();
36  LogDebug("TIBGeom") << "DDTIBLayerAlgo debug: Parent " << parentName
37  << " NameSpace " << idNameSpace
38  << " General Material " << genMat;
39 
40  detectorTilt = nArgs["DetectorTilt"];
41  layerL = nArgs["LayerL"];
42 
43  radiusLo = nArgs["RadiusLo"];
44  stringsLo = int(nArgs["StringsLo"]);
45  detectorLo = sArgs["StringDetLoName"];
46  LogDebug("TIBGeom") << "DDTIBLayerAlgo debug: Lower layer Radius "
47  << radiusLo << " Number " << stringsLo << " String "
48  << detectorLo;
49 
50  radiusUp = nArgs["RadiusUp"];
51  stringsUp = int(nArgs["StringsUp"]);
52  detectorUp = sArgs["StringDetUpName"];
53  LogDebug("TIBGeom") << "DDTIBLayerAlgo debug: Upper layer Radius "
54  << radiusUp << " Number " << stringsUp << " String "
55  << detectorUp;
56 
57  cylinderT = nArgs["CylinderThickness"];
58  cylinderInR = nArgs["CylinderInnerRadius"];
59  cylinderMat = sArgs["CylinderMaterial"];
60  MFRingInR = nArgs["MFRingInnerRadius"];
61  MFRingOutR = nArgs["MFRingOuterRadius"];
62  MFRingT = nArgs["MFRingThickness"];
63  MFRingDz = nArgs["MFRingDeltaz"];
64  MFIntRingMat = sArgs["MFIntRingMaterial"];
65  MFExtRingMat = sArgs["MFExtRingMaterial"];
66 
67  supportT = nArgs["SupportThickness"];
68 
69  centMat = sArgs["CentRingMaterial"];
70  centRing1par = vArgs["CentRing1"];
71  centRing2par = vArgs["CentRing2"];
72 
73  fillerMat = sArgs["FillerMaterial"];
74  fillerDz = nArgs["FillerDeltaz"];
75 
76  ribMat = sArgs["RibMaterial"];
77  ribW = vArgs["RibWidth"];
78  ribPhi = vArgs["RibPhi"];
79  LogDebug("TIBGeom") << "DDTIBLayerAlgo debug: Cylinder Material/"
80  << "thickness " << cylinderMat << " " << cylinderT
81  << " Rib Material " << ribMat << " at "
82  << ribW.size() << " positions with width/phi";
83 
84  for (unsigned int i = 0; i < ribW.size(); i++)
85  LogDebug("TIBGeom") << "\tribW[" << i << "] = " << ribW[i]
86  << "\tribPhi[" << i << "] = " << ribPhi[i]/CLHEP::deg;
87 
88  dohmCarrierPhiOff = nArgs["DOHMCarrierPhiOffset"];
89 
90  dohmtoMF = nArgs["DOHMtoMFDist"];
91 
92  dohmPrimName = sArgs["StringDOHMPrimName"];
93  dohmAuxName = sArgs["StringDOHMAuxName"];
94 
95  dohmCarrierMaterial = sArgs["DOHMCarrierMaterial"];
96  dohmCableMaterial = sArgs["DOHMCableMaterial"];
97  dohmPrimL = nArgs["DOHMPRIMLength"];
98  dohmPrimMaterial = sArgs["DOHMPRIMMaterial"];
99  dohmAuxL = nArgs["DOHMAUXLength"];
100  dohmAuxMaterial = sArgs["DOHMAUXMaterial"];
101  dohmListFW = vArgs["DOHMListFW"];
102  dohmListBW = vArgs["DOHMListBW"];
103  LogDebug("TIBGeom") << "DDTIBLayerAlgo debug: DOHM Primary "
104  << " Material " << dohmPrimMaterial << " Length " << dohmPrimL;
105  LogDebug("TIBGeom") << "DDTIBLayerAlgo debug: DOHM Aux "
106  << " Material " << dohmAuxMaterial << " Length " << dohmAuxL;
107  for (unsigned int i=0; i<dohmListFW.size(); i++) {
108  if (dohmListFW[i]>0.) LogDebug("TIBGeom") << "DOHM Primary at FW Position " << dohmListFW[i];
109  if (dohmListFW[i]<0.) LogDebug("TIBGeom") << "DOHM Aux at FW Position " << -dohmListFW[i];
110  }
111  for (unsigned int i=0; i<dohmListBW.size(); i++) {
112  if (dohmListBW[i]>0.) LogDebug("TIBGeom") << "DOHM Primary at BW Position " << dohmListBW[i];
113  if (dohmListBW[i]<0.) LogDebug("TIBGeom") << "DOHM Aux at BW Position " << -dohmListBW[i];
114  }
115 
116  //Pillar Material
117  pillarMaterial = sArgs["PillarMaterial"];
118 
119  // Internal Pillar Parameters
120  fwIntPillarDz = nArgs["FWIntPillarDz"];
121  fwIntPillarDPhi = nArgs["FWIntPillarDPhi"];
122  fwIntPillarZ = vArgs["FWIntPillarZ"];
123  fwIntPillarPhi = vArgs["FWIntPillarPhi"];
124  bwIntPillarDz = nArgs["BWIntPillarDz"];
125  bwIntPillarDPhi = nArgs["BWIntPillarDPhi"];
126  bwIntPillarZ = vArgs["BWIntPillarZ"];
127  bwIntPillarPhi = vArgs["BWIntPillarPhi"];
128  LogDebug("TIBGeom") << "FW Internal Pillar [Dz, DPhi] "
129  << fwIntPillarDz << ", "
130  << fwIntPillarDPhi;
131  for (unsigned int i=0; i<fwIntPillarZ.size(); i++) {
132  if( fwIntPillarPhi[i]>0. ) {
133  LogDebug("TIBGeom") << " at positions [z, phi] "
134  << fwIntPillarZ[i] << " " << fwIntPillarPhi[i];
135  }
136  }
137  LogDebug("TIBGeom") << "BW Internal Pillar [Dz, DPhi] "
138  << bwIntPillarDz << ", "
139  << bwIntPillarDPhi;
140  for (unsigned int i=0; i<bwIntPillarZ.size(); i++) {
141  if( bwIntPillarPhi[i]>0. ) {
142  LogDebug("TIBGeom") << " at positions [z, phi] "
143  << bwIntPillarZ[i] << " " << bwIntPillarPhi[i];
144  }
145  }
146 
147  // External Pillar Parameters
148  fwExtPillarDz = nArgs["FWExtPillarDz"];
149  fwExtPillarDPhi = nArgs["FWExtPillarDPhi"];
150  fwExtPillarZ = vArgs["FWExtPillarZ"];
151  fwExtPillarPhi = vArgs["FWExtPillarPhi"];
152  bwExtPillarDz = nArgs["BWExtPillarDz"];
153  bwExtPillarDPhi = nArgs["BWExtPillarDPhi"];
154  bwExtPillarZ = vArgs["BWExtPillarZ"];
155  bwExtPillarPhi = vArgs["BWExtPillarPhi"];
156  LogDebug("TIBGeom") << "FW External Pillar [Dz, DPhi] "
157  << fwExtPillarDz << ", "
158  << fwExtPillarDPhi;
159  for (unsigned int i=0; i<fwExtPillarZ.size(); i++) {
160  if( fwExtPillarPhi[i]>0. ) {
161  LogDebug("TIBGeom") << " at positions [z, phi] "
162  << fwExtPillarZ[i] << " " << fwExtPillarPhi[i];
163  }
164  }
165  LogDebug("TIBGeom") << "BW External Pillar [Dz, DPhi] "
166  << bwExtPillarDz << ", "
167  << bwExtPillarDPhi;
168  for (unsigned int i=0; i<bwExtPillarZ.size(); i++) {
169  if( bwExtPillarPhi[i]>0. ) {
170  LogDebug("TIBGeom") << " at positions [z, phi] "
171  << bwExtPillarZ[i] << " " << bwExtPillarPhi[i];
172  }
173  }
174 }
#define LogDebug(id)
int i
Definition: DBlmapReader.cc:9
double fwExtPillarDz
std::vector< double > centRing2par
std::vector< double > bwIntPillarPhi
std::vector< double > dohmListFW
std::string detectorUp
std::string dohmAuxMaterial
std::string MFIntRingMat
std::vector< double > fwIntPillarPhi
std::vector< double > fwIntPillarZ
DDName is used to identify DDD entities uniquely.
Definition: DDName.h:14
double fwIntPillarDz
static std::string & ns()
std::vector< double > bwExtPillarZ
std::string cylinderMat
std::string fillerMat
std::string centMat
std::string dohmPrimName
std::string genMat
double dohmCarrierPhiOff
std::vector< double > centRing1par
std::string ribMat
std::vector< double > fwExtPillarPhi
std::string MFExtRingMat
std::vector< double > bwIntPillarZ
std::string idNameSpace
double bwExtPillarDPhi
std::vector< double > bwExtPillarPhi
double fwExtPillarDPhi
std::vector< double > ribPhi
std::vector< double > dohmListBW
std::string pillarMaterial
std::string dohmCableMaterial
std::string dohmAuxName
std::string dohmPrimMaterial
std::string detectorLo
std::vector< double > ribW
const std::string & name() const
Returns the name.
Definition: DDName.cc:87
double fwIntPillarDPhi
double bwIntPillarDz
std::vector< double > fwExtPillarZ
double bwIntPillarDPhi
double bwExtPillarDz
std::string dohmCarrierMaterial

Member Data Documentation

double DDTIBLayerAlgo::bwExtPillarDPhi
private

Definition at line 95 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo::bwExtPillarDz
private

Definition at line 94 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::vector<double> DDTIBLayerAlgo::bwExtPillarPhi
private

Definition at line 97 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::vector<double> DDTIBLayerAlgo::bwExtPillarZ
private

Definition at line 96 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo::bwIntPillarDPhi
private

Definition at line 86 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo::bwIntPillarDz
private

Definition at line 85 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::vector<double> DDTIBLayerAlgo::bwIntPillarPhi
private

Definition at line 88 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::vector<double> DDTIBLayerAlgo::bwIntPillarZ
private

Definition at line 87 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo::centMat
private

Definition at line 53 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::vector<double> DDTIBLayerAlgo::centRing1par
private

Definition at line 54 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::vector<double> DDTIBLayerAlgo::centRing2par
private

Definition at line 55 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo::cylinderInR
private

Definition at line 42 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo::cylinderMat
private

Definition at line 43 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo::cylinderT
private

Definition at line 41 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo::detectorLo
private

Definition at line 34 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo::detectorTilt
private

Definition at line 28 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo::detectorUp
private

Definition at line 39 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo::dohmAuxL
private

Definition at line 76 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo::dohmAuxMaterial
private

Definition at line 77 of file DDTIBLayerAlgo.h.

Referenced by initialize().

std::string DDTIBLayerAlgo::dohmAuxName
private

Definition at line 70 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo::dohmCableMaterial
private

Definition at line 73 of file DDTIBLayerAlgo.h.

Referenced by initialize().

std::string DDTIBLayerAlgo::dohmCarrierMaterial
private

Definition at line 72 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo::dohmCarrierPhiOff
private

Definition at line 68 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::vector<double> DDTIBLayerAlgo::dohmListBW
private

Definition at line 65 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::vector<double> DDTIBLayerAlgo::dohmListFW
private

Definition at line 64 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo::dohmPrimL
private

Definition at line 74 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo::dohmPrimMaterial
private

Definition at line 75 of file DDTIBLayerAlgo.h.

Referenced by initialize().

std::string DDTIBLayerAlgo::dohmPrimName
private

Definition at line 69 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo::dohmtoMF
private

Definition at line 67 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo::fillerDz
private

Definition at line 58 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo::fillerMat
private

Definition at line 57 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo::fwExtPillarDPhi
private

Definition at line 91 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo::fwExtPillarDz
private

Definition at line 90 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::vector<double> DDTIBLayerAlgo::fwExtPillarPhi
private

Definition at line 93 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::vector<double> DDTIBLayerAlgo::fwExtPillarZ
private

Definition at line 92 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo::fwIntPillarDPhi
private

Definition at line 82 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo::fwIntPillarDz
private

Definition at line 81 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::vector<double> DDTIBLayerAlgo::fwIntPillarPhi
private

Definition at line 84 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::vector<double> DDTIBLayerAlgo::fwIntPillarZ
private

Definition at line 83 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo::genMat
private

Definition at line 27 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo::idNameSpace
private

Definition at line 26 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo::layerL
private

Definition at line 29 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo::MFExtRingMat
private

Definition at line 49 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo::MFIntRingMat
private

Definition at line 48 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo::MFRingDz
private

Definition at line 47 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo::MFRingInR
private

Definition at line 44 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo::MFRingOutR
private

Definition at line 45 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo::MFRingT
private

Definition at line 46 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo::phioffLo
private

Definition at line 32 of file DDTIBLayerAlgo.h.

double DDTIBLayerAlgo::phioffUp
private

Definition at line 37 of file DDTIBLayerAlgo.h.

std::string DDTIBLayerAlgo::pillarMaterial
private

Definition at line 79 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo::radiusLo
private

Definition at line 31 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo::radiusUp
private

Definition at line 36 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo::ribMat
private

Definition at line 60 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::vector<double> DDTIBLayerAlgo::ribPhi
private

Definition at line 62 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

std::vector<double> DDTIBLayerAlgo::ribW
private

Definition at line 61 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

int DDTIBLayerAlgo::stringsLo
private

Definition at line 33 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

int DDTIBLayerAlgo::stringsUp
private

Definition at line 38 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo::supportT
private

Definition at line 51 of file DDTIBLayerAlgo.h.

Referenced by execute(), and initialize().