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_MTCC Class Reference

#include <DDTIBLayerAlgo_MTCC.h>

Inheritance diagram for DDTIBLayerAlgo_MTCC:

Public Member Functions

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

Private Attributes

std::string coolCableLo
 
std::string coolCableUp
 
double coolTubeT
 
double coolTubeW
 
std::string cylinderMat
 
double cylinderT
 
std::string detectorLo
 
double detectorT
 
double detectorTilt
 
double detectorTol
 
std::string detectorUp
 
double detectorW
 
double dohmAuxL
 
std::string dohmAuxMaterial
 
double dohmAuxT
 
double dohmAuxW
 
std::string dohmCableMaterial
 
std::string dohmCarrierMaterial
 
double dohmCarrierR
 
double dohmCarrierT
 
double dohmCarrierW
 
std::vector< double > dohmList
 
int dohmN
 
double dohmPrimL
 
std::string dohmPrimMaterial
 
double dohmPrimT
 
double dohmPrimW
 
std::string emptyCoolCableLo
 
std::string emptyCoolCableUp
 
std::string emptyDetectorLo
 
std::string emptyDetectorUp
 
std::string genMat
 
std::string idNameSpace
 
double layerL
 
double phiMaxLo
 
double phiMaxUp
 
double phiMinLo
 
double phiMinUp
 
double phioffLo
 
double phioffUp
 
double radiusLo
 
double radiusUp
 
std::string ribMat
 
std::vector< double > ribPhi
 
std::vector< double > ribW
 
double roffCableLo
 
double roffCableUp
 
double roffDetLo
 
double roffDetUp
 
std::vector< double > stringLoList
 
int stringsLo
 
int stringsUp
 
std::vector< double > stringUpList
 
std::string supportMat
 
double supportT
 
double supportW
 

Detailed Description

Definition at line 10 of file DDTIBLayerAlgo_MTCC.h.

Constructor & Destructor Documentation

DDTIBLayerAlgo_MTCC::DDTIBLayerAlgo_MTCC ( )

Definition at line 20 of file DDTIBLayerAlgo_MTCC.cc.

References LogDebug.

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

Definition at line 24 of file DDTIBLayerAlgo_MTCC.cc.

24 {}

Member Function Documentation

void DDTIBLayerAlgo_MTCC::execute ( DDCompactView cpv)

Definition at line 168 of file DDTIBLayerAlgo_MTCC.cc.

References funct::abs(), printConversionInfo::aux, DDSolidFactory::box(), coolCableLo, coolCableUp, coolTubeT, coolTubeW, funct::cos(), cylinderMat, cylinderT, dbl_to_string(), DDBase< N, C >::ddname(), DDrot(), DDSplit(), detectorLo, detectorT, detectorTilt, detectorTol, detectorUp, detectorW, dohmAuxL, dohmAuxMaterial, dohmAuxT, dohmAuxW, dohmCableMaterial, dohmCarrierMaterial, dohmCarrierR, dohmCarrierT, dohmCarrierW, dohmList, dohmN, dohmPrimL, dohmPrimMaterial, dohmPrimT, dohmPrimW, relativeConstraints::empty, emptyCoolCableLo, emptyCoolCableUp, emptyDetectorLo, emptyDetectorUp, plotBeamSpotDB::first, genMat, i, cutBasedElectronID_PHYS14_PU20bx25_V1_cff::idName, idNameSpace, layerL, LogDebug, gen::n, DDName::name(), mergeVDriftHistosByStation::name, DDBase< N, C >::name(), confdb::parent, phi, hitfit::phidiff(), phiMaxLo, phiMaxUp, phiMinLo, phiMinUp, phioffLo, phioffUp, DDCompactView::position(), radiusLo, radiusUp, ribMat, ribPhi, ribW, roffCableLo, roffCableUp, roffDetLo, roffDetUp, idealTransformation::rotation, edm::second(), funct::sin(), mathSSE::sqrt(), AlCaHLTBitMon_QueryRunRegistry::string, stringLoList, stringsLo, stringsUp, stringUpList, supportMat, supportT, supportW, theta(), DDSolidFactory::tubs(), and create_public_lumi_plots::width.

168  {
169 
170  LogDebug("TIBGeom") << "==>> Constructing DDTIBLayerAlgo_MTCC...";
171 
172  //Parameters for the tilt of the layer
173  double rotsi = std::abs(detectorTilt);
174  double redgd1 = 0.5*(detectorW*sin(rotsi)+detectorT*cos(rotsi));
175  double redgd2 = 0.5*(detectorW*cos(rotsi)-detectorT*sin(rotsi));
176  double redgc1 = 0.5*(coolTubeW*sin(rotsi)+coolTubeT*cos(rotsi));
177  double redgc2 = 0.5*(coolTubeW*cos(rotsi)-coolTubeT*sin(rotsi));
178  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC test DeltaR (Detector Tilt) "
179  << redgd1 << ", " << redgd2 << " DeltaR (Cable+Cool) "
180  << redgc1 << ", " << redgc2;
181 
182  DDName parentName = parent().name();
183  const std::string &idName = parentName.name();
184  double rmin = radiusLo + roffDetLo - redgd1 - detectorTol;
185  double rmax = sqrt((radiusUp+roffDetUp+redgd1)*(radiusUp+roffDetUp+redgd1)+
186  redgd2*redgd2) + detectorTol;
187  DDSolid solid = DDSolidFactory::tubs(DDName(idName, idNameSpace), 0.5*layerL,
188  rmin, rmax, 0, CLHEP::twopi);
189  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC test: "
190  << DDName(idName,idNameSpace) << " Tubs made of "
191  << genMat << " from 0 to " << CLHEP::twopi/CLHEP::deg
192  << " with Rin " << rmin << " Rout " << rmax << " ZHalf "
193  << 0.5*layerL;
195  DDMaterial matter(matname);
196  DDLogicalPart layer(solid.ddname(), matter, solid);
197 
198  //Lower part first
199  double rin = rmin;
200  double rout = 0.5*(radiusLo+radiusUp-cylinderT);
201  std::string name = idName + "Down";
202  solid = DDSolidFactory::tubs(DDName(name, idNameSpace), 0.5*layerL,
203  rin, rout, 0, CLHEP::twopi);
204  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC test: "
205  << DDName(name, idNameSpace) << " Tubs made of "
206  << genMat << " from 0 to " << CLHEP::twopi/CLHEP::deg
207  << " with Rin " << rin << " Rout " << rout << " ZHalf "
208  << 0.5*layerL;
209  DDLogicalPart layerIn(solid.ddname(), matter, solid);
210  cpv.position(layerIn, layer, 1, DDTranslation(0.0, 0.0, 0.0), DDRotation());
211  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC test: " << layerIn.name()
212  << " number 1 positioned in " << layer.name()
213  << " at (0,0,0) with no rotation";
214 
215  double rposdet = radiusLo + roffDetLo;
216  double rposcab = rposdet + roffCableLo;
217  double dphi = CLHEP::twopi/stringsLo;
220  for (int n = 0; n < stringsLo; n++) {
221  double phi = phioffLo + n*dphi;
222  if( phi>=phiMinLo && phi<phiMaxLo ) { // phi range
223  double phix = phi - detectorTilt + 90*CLHEP::deg;
224  double phideg = phix/CLHEP::deg;
226  if (phideg != 0) {
227  double theta = 90*CLHEP::deg;
228  double phiy = phix + 90.*CLHEP::deg;
229  std::string rotstr = idName + dbl_to_string(phideg*10.);
230  rotation = DDRotation(DDName(rotstr, idNameSpace));
231  if (!rotation) {
232  LogDebug("TIBGeom") << "DDTIBLayer_MTCC test: Creating a new "
233  << "rotation: " << rotstr << "\t90., "
234  << phix/CLHEP::deg << ", 90.,"
235  << phiy/CLHEP::deg << ", 0, 0";
236  rotation = DDrot(DDName(rotstr, idNameSpace), theta,phix, theta,phiy,
237  0., 0.);
238  }
239  }
240 
241  // fill strings in the stringLoList with modules, the others with only structure
242  bool empty=true;
243  for(unsigned int i=0; i<stringLoList.size(); i++) {
244  if(n+1==(int)stringLoList[i]) {
245  empty=false;
246  }
247  }
248  if(empty) {
249  if(emptyDetectorLo!="nothing") {
251  DDTranslation trdet(rposdet*cos(phi), rposdet*sin(phi), 0);
252  cpv.position(emptyDetIn, layerIn, n+1, trdet, rotation);
253  LogDebug("TIBGeom") << "DDTIBLayer_MTCC test " << emptyDetIn.name()
254  << " number " << n+1 << " positioned in "
255  << layerIn.name() << " at " << trdet
256  << " with " << rotation;
257  }
258  if(emptyCoolCableLo!="nothing") {
260  DDTranslation trcab(rposcab*cos(phi), rposcab*sin(phi), 0);
261  cpv.position(emptyCabIn, layerIn, n+1, trcab, rotation);
262  LogDebug("TIBGeom") << "DDTIBLayer_MTCC test " << emptyCabIn.name()
263  << " number " << n+1 << " positioned in "
264  << layerIn.name() << " at " << trcab
265  << " with " << rotation;
266  }
267  } else {
268  DDTranslation trdet(rposdet*cos(phi), rposdet*sin(phi), 0);
269  cpv.position(detIn, layerIn, n+1, trdet, rotation);
270  LogDebug("TIBGeom") << "DDTIBLayer_MTCC test " << detIn.name()
271  << " number " << n+1 << " positioned in "
272  << layerIn.name() << " at " << trdet
273  << " with " << rotation;
274  DDTranslation trcab(rposcab*cos(phi), rposcab*sin(phi), 0);
275  cpv.position(cabIn, layerIn, n+1, trcab, rotation);
276  LogDebug("TIBGeom") << "DDTIBLayer_MTCC test " << cabIn.name()
277  << " number " << n+1 << " positioned in "
278  << layerIn.name() << " at " << trcab
279  << " with " << rotation;
280  }
281  //
282 
283  } // phi range
284 
285  }
286 
287  //Now the upper part
288  rin = 0.5*(radiusLo+radiusUp+cylinderT);
289  rout = rmax;
290  name = idName + "Up";
291  solid = DDSolidFactory::tubs(DDName(name, idNameSpace), 0.5*layerL,
292  rin, rout, 0, CLHEP::twopi);
293  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC test: "
294  << DDName(name, idNameSpace) << " Tubs made of "
295  << genMat << " from 0 to " << CLHEP::twopi/CLHEP::deg
296  << " with Rin " << rin << " Rout " << rout << " ZHalf "
297  << 0.5*layerL;
298  DDLogicalPart layerOut(solid.ddname(), matter, solid);
299  cpv.position(layerOut, layer, 1, DDTranslation(0.0, 0.0, 0.0), DDRotation());
300  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC test: " << layerOut.name()
301  << " number 1 positioned in " << layer.name()
302  << " at (0,0,0) with no rotation";
303 
304  rposdet = radiusUp + roffDetUp;
305  rposcab = rposdet + roffCableUp;
306  dphi = CLHEP::twopi/stringsUp;
309  for (int n = 0; n < stringsUp; n++) {
310  double phi = phioffUp + n*dphi;
311  if( phi>=phiMinUp && phi<phiMaxUp ) { // phi range
312  double phix = phi - detectorTilt - 90*CLHEP::deg;
313  double phideg = phix/CLHEP::deg;
315  if (phideg != 0) {
316  double theta = 90*CLHEP::deg;
317  double phiy = phix + 90.*CLHEP::deg;
318  std::string rotstr = idName + dbl_to_string(phideg*10.);
319  rotation = DDRotation(DDName(rotstr, idNameSpace));
320  if (!rotation) {
321  LogDebug("TIBGeom") << "DDTIBLayer_MTCC test: Creating a new "
322  << "rotation: " << rotstr << "\t90., "
323  << phix/CLHEP::deg << ", 90.,"
324  << phiy/CLHEP::deg << ", 0, 0";
325  rotation = DDrot(DDName(rotstr, idNameSpace), theta,phix, theta,phiy,
326  0., 0.);
327  }
328  }
329 
330  // fill strings in the stringUpList with modules, the others with only structure
331  bool empty=true;
332  for(unsigned int i=0; i<stringUpList.size(); i++) {
333  if(n+1==(int)stringUpList[i]) {
334  empty=false;
335  }
336  }
337  if(empty) {
338  if(emptyDetectorUp!="nothing") {
340  DDTranslation trdet(rposdet*cos(phi), rposdet*sin(phi), 0);
341  cpv.position(emptyDetOut, layerOut, n+1, trdet, rotation);
342  LogDebug("TIBGeom") << "DDTIBLayer test " << emptyDetOut.name()
343  << " number " << n+1 << " positioned in "
344  << layerOut.name() << " at " << trdet
345  << " with " << rotation;
346 
347  }
348  if(emptyCoolCableUp!="nothing") {
350  DDTranslation trcab(rposcab*cos(phi), rposcab*sin(phi), 0);
351  cpv.position(emptyCabOut, layerOut, n+1, trcab, rotation);
352  LogDebug("TIBGeom") << "DDTIBLayer_MTCC test " << emptyCabOut.name()
353  << " number " << n+1 << " positioned in "
354  << layerOut.name() << " at " << trcab
355  << " with " << rotation;
356  }
357  } else {
358  DDTranslation trdet(rposdet*cos(phi), rposdet*sin(phi), 0);
359  cpv.position(detOut, layerOut, n+1, trdet, rotation);
360  LogDebug("TIBGeom") << "DDTIBLayer test " << detOut.name()
361  << " number " << n+1 << " positioned in "
362  << layerOut.name() << " at " << trdet
363  << " with " << rotation;
364  DDTranslation trcab(rposcab*cos(phi), rposcab*sin(phi), 0);
365  cpv.position(cabOut, layerOut, n+1, trcab, rotation);
366  LogDebug("TIBGeom") << "DDTIBLayer_MTCC test " << cabOut.name()
367  << " number " << n+1 << " positioned in "
368  << layerOut.name() << " at " << trcab
369  << " with " << rotation;
370  }
371  //
372 
373  } // phi range
374 
375  }
376 
377  double phiMin = phiMinUp-phioffUp; // lower phi for cylinders
378  double phiMax = phiMaxUp-phioffUp; // upper phi for cylinders
379  double phidiff = fabs(phiMax-phiMin); // cylinders will not be twopi but phidiff
380  //Finally the inner cylinder, support wall and ribs
381  rin = 0.5*(radiusLo+radiusUp-cylinderT);
382  rout = 0.5*(radiusLo+radiusUp+cylinderT);
383  name = idName + "Cylinder";
384  solid = DDSolidFactory::tubs(DDName(name, idNameSpace), 0.25*layerL,
385  rin, rout, phiMin, phidiff);
386  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC test: "
387  << DDName(name, idNameSpace) << " Tubs made of "
388  << cylinderMat << " from " << phiMin/CLHEP::deg << " to "
389  << (phiMin+phidiff)/CLHEP::deg << " with Rin " << rin
390  << " Rout " << rout << " ZHalf " << 0.25*layerL;
391  matname = DDName(DDSplit(cylinderMat).first, DDSplit(cylinderMat).second);
392  DDMaterial matcyl(matname);
393  DDLogicalPart cylinder(solid.ddname(), matcyl, solid);
394  cpv.position(cylinder, layer, 1, DDTranslation(0.0,0.0,0.25*layerL), DDRotation());
395  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC test: " << cylinder.name()
396  << " number 1 positioned in " << layer.name()
397  << " at (0,0," << 0.25*layerL << ") with no rotation";
398  rin += supportT;
399  rout -= supportT;
400  name = idName + "CylinderIn";
401  solid = DDSolidFactory::tubs(DDName(name, idNameSpace), 0.5*layerL,
402  rin, rout, phiMin, phidiff);
403  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC test: "
404  << DDName(name, idNameSpace) << " Tubs made of "
405  << genMat << " from " << phiMin/CLHEP::deg << " to "
406  << (phiMin+phidiff)/CLHEP::deg << phidiff/CLHEP::deg
407  << " with Rin " << rin << " Rout " << rout << " ZHalf "
408  << 0.5*layerL;
409  DDLogicalPart cylinderIn(solid.ddname(), matter, solid);
410  cpv.position(cylinderIn, cylinder, 1, DDTranslation(0.0, 0.0, -0.25*layerL), DDRotation());
411  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC test: " << cylinderIn.name()
412  << " number 1 positioned in " << cylinder.name()
413  << " at (0,0," << -0.25*layerL << ") with no rotation";
414  name = idName + "CylinderInSup";
415  solid = DDSolidFactory::tubs(DDName(name, idNameSpace), 0.5*supportW,
416  rin, rout, phiMin, phidiff);
417  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC test: "
418  << DDName(name, idNameSpace) << " Tubs made of "
419  << genMat << " from " << phiMin/CLHEP::deg << " to "
420  << (phiMin+phidiff)/CLHEP::deg << " with Rin " << rin
421  << " Rout " << rout << " ZHalf " << 0.5*supportW;
422  matname = DDName(DDSplit(supportMat).first, DDSplit(supportMat).second);
423  DDMaterial matsup(matname);
424  DDLogicalPart cylinderSup(solid.ddname(), matsup, solid);
425  cpv.position(cylinderSup, cylinderIn, 1, DDTranslation(0., 0., 0.), DDRotation());
426  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC test: " << cylinderSup.name()
427  << " number 1 positioned in " << cylinderIn.name()
428  << " at (0,0,0) with no rotation";
429  matname = DDName(DDSplit(ribMat).first, DDSplit(ribMat).second);
430  DDMaterial matrib(matname);
431  for (unsigned int i = 0; i < ribW.size(); i++) {
432  name = idName + "Rib" + dbl_to_string(i);
433  double width = 2.*ribW[i]/(rin+rout);
434  double dz = 0.25*(layerL - supportW);
435  solid = DDSolidFactory::tubs(DDName(name, idNameSpace), dz, rin, rout,
436  -0.5*width, width);
437  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC test: "
438  << DDName(name, idNameSpace) << " Tubs made of "
439  << ribMat << " from " << -0.5*width/CLHEP::deg
440  << " to " << 0.5*width/CLHEP::deg << " with Rin "
441  << rin << " Rout " << rout << " ZHalf " << dz;
442  DDLogicalPart cylinderRib(solid.ddname(), matrib, solid);
443  double phix = ribPhi[i];
444  double phideg = phix/CLHEP::deg;
445  if( phideg>=phiMin/CLHEP::deg && phideg<phiMax/CLHEP::deg ) { // phi range
447  if (phideg != 0) {
448  double theta = 90*CLHEP::deg;
449  double phiy = phix + 90.*CLHEP::deg;
450  std::string rotstr = idName + dbl_to_string(phideg*10.);
451  rotation = DDRotation(DDName(rotstr, idNameSpace));
452  if (!rotation) {
453  LogDebug("TIBGeom") << "DDTIBLayer_MTCC test: Creating a new "
454  << "rotation: " << rotstr << "\t90., "
455  << phix/CLHEP::deg << ", 90.,"
456  << phiy/CLHEP::deg << ", 0, 0";
457  rotation = DDrot(DDName(rotstr, idNameSpace), theta,phix, theta,phiy,
458  0., 0.);
459  }
460  }
461  DDTranslation tran(0, 0, +0.25*(layerL+supportW));
462  cpv.position(cylinderRib, cylinderIn, 1, tran, rotation);
463  LogDebug("TIBGeom") << "DDTIBLayer_MTCC test " << cylinderRib.name()
464  << " number 1 positioned in " << cylinderIn.name()
465  << " at " << tran << " with " << rotation;
466  } // phi range
467  }
468 
469 
470  // DOHM + carrier (portadohm)
471  double dz_dohm = 0.5*dohmCarrierW;
472  double dphi_dohm = CLHEP::twopi/((double)dohmN);
473  double rout_dohm = 0.5*(radiusLo+radiusUp+cylinderT)+dohmCarrierR;
474 
475  // DOHM Carrier TIB+ & TIB-
476  // lower
477  name = idName + "DOHMCarrier_lo";
478  double rin_lo = rout_dohm;
479  double rout_lo = rin_lo + dohmCarrierT;
480  solid = DDSolidFactory::tubs(DDName(name, idNameSpace), dz_dohm,
481  rin_lo, rout_lo,
482  -0.5*dphi_dohm, dphi_dohm);
483  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC test: "
484  << DDName(name, idNameSpace) << " Tubs made of "
485  << dohmCarrierMaterial << " from "
486  << -0.5*(dphi_dohm)/CLHEP::deg << " to "
487  << +0.5*(dphi_dohm)/CLHEP::deg << " with Rin "
488  << rin_lo << " Rout " << rout_lo << " ZHalf "
489  << dz_dohm;
490  // create different name objects for only PRIMary DOHMs and PRIMary+AUXiliary DOHM Carriers
491  std::string name_lo_r = name + "_PRIM_AUX" + "_lo" + "_r";
492  std::string name_lo_l = name + "_PRIM_AUX" + "_lo" + "_l";
493  DDLogicalPart dohmCarrierPrimAux_lo_r(name_lo_r, DDMaterial(dohmCarrierMaterial), solid);
494  DDLogicalPart dohmCarrierPrimAux_lo_l(name_lo_l, DDMaterial(dohmCarrierMaterial), solid);
495  name_lo_r = name + "_PRIM" + "_lo" + "_r";
496  name_lo_l = name + "_PRIM" + "_lo" + "_l";
497  DDLogicalPart dohmCarrierPrim_lo_r(name_lo_r, DDMaterial(dohmCarrierMaterial), solid);
498  DDLogicalPart dohmCarrierPrim_lo_l(name_lo_l, DDMaterial(dohmCarrierMaterial), solid);
499  // upper
500  name = idName + "DOHMCarrier_up";
501  double rin_up = rout_lo + 2.*dohmAuxT;
502  double rout_up = rin_up + dohmCarrierT;
503  solid = DDSolidFactory::tubs(DDName(name, idNameSpace), dz_dohm,
504  rin_up, rout_up,
505  -0.5*dphi_dohm, dphi_dohm);
506  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC test: "
507  << DDName(name, idNameSpace) << " Tubs made of "
508  << dohmCarrierMaterial << " from "
509  << -0.5*(dphi_dohm)/CLHEP::deg << " to "
510  << +0.5*(dphi_dohm)/CLHEP::deg << " with Rin "
511  << rin_up << " Rout " << rout_up << " ZHalf "
512  << dz_dohm;
513  // create different name objects for only PRIMary DOHMs and PRIMary+AUXiliary DOHM Carriers
514  std::string name_up_r = name + "_PRIM_AUX" + "_up" + "_r";
515  std::string name_up_l = name + "_PRIM_AUX" + "_up" + "_l";
516  DDLogicalPart dohmCarrierPrimAux_up_r(name_up_r, DDMaterial(dohmCarrierMaterial), solid);
517  DDLogicalPart dohmCarrierPrimAux_up_l(name_up_l, DDMaterial(dohmCarrierMaterial), solid);
518  name_up_r = name + "_PRIM" + "_up" + "_r";
519  name_up_l = name + "_PRIM" + "_up" + "_l";
520  DDLogicalPart dohmCarrierPrim_up_r(name_up_r, DDMaterial(dohmCarrierMaterial), solid);
521  DDLogicalPart dohmCarrierPrim_up_l(name_up_l, DDMaterial(dohmCarrierMaterial), solid);
522  //
523  for (unsigned int i = 0; i < (unsigned int)dohmN; i++) {
524  DDLogicalPart dohmCarrier_lo_r;
525  DDLogicalPart dohmCarrier_lo_l;
526  DDLogicalPart dohmCarrier_up_r;
527  DDLogicalPart dohmCarrier_up_l;
528  // create different name objects for only PRIMary DOHMs and PRIMary+AUXiliary DOHMs
529  bool prim = false;
530  bool aux = false;
531  if((unsigned int)dohmList[i]==2) {
532  prim = true;
533  aux = true;
534  } else if((unsigned int)dohmList[i]==1) {
535  prim = true;
536  aux = false;
537  } else {
538  prim = false;
539  aux = false;
540  }
541 
542  if(prim) {
543  dohmCarrier_lo_r = dohmCarrierPrim_lo_r;
544  dohmCarrier_lo_l = dohmCarrierPrim_lo_l;
545  dohmCarrier_up_r = dohmCarrierPrim_up_r;
546  dohmCarrier_up_l = dohmCarrierPrim_up_l;
547  }
548  if(prim && aux) {
549  dohmCarrier_lo_r = dohmCarrierPrimAux_lo_r;
550  dohmCarrier_lo_l = dohmCarrierPrimAux_lo_l;
551  dohmCarrier_up_r = dohmCarrierPrimAux_up_r;
552  dohmCarrier_up_l = dohmCarrierPrimAux_up_l;
553  }
554  //
555 
556  if(prim) {
557  double phix = ((double)i+0.5)*dphi_dohm;
558  double phideg = phix/CLHEP::deg;
559  // if( phideg>=phiMin/CLHEP::deg && phideg<phiMax/CLHEP::deg ) { // phi range
561  if (phideg != 0) {
562  double theta = 90*CLHEP::deg;
563  double phiy = phix + 90.*CLHEP::deg;
564  std::string rotstr = idName + dbl_to_string(phideg*10.);
565  rotation = DDRotation(DDName(rotstr, idNameSpace));
566  if (!rotation) {
567  LogDebug("TIBGeom") << "DDTIBLayer_MTCC test: Creating a new "
568  << "rotation: " << rotstr << "\t90., "
569  << phix/CLHEP::deg << ", 90.,"
570  << phiy/CLHEP::deg << ", 0, 0";
571  rotation = DDrot(DDName(rotstr, idNameSpace), theta,phix, theta,phiy,
572  0., 0.);
573  }
574  }
575  // TIB+ DOHM Carrier - lower
576  DDTranslation tran(0, 0, 0.5*layerL-dz_dohm);
577  cpv.position(dohmCarrier_lo_r, parent(), i+1, tran, rotation );
578  LogDebug("TIBGeom") << "DDTIBLayer_MTCC test " << dohmCarrier_lo_r.name()
579  << " z+ number " << i+1 << " positioned in "
580  << parent().name() << " at " << tran
581  << " with " << rotation;
582  // TIB+ DOHM Carrier - upper
583  cpv.position(dohmCarrier_up_r, parent(), i+1+(unsigned int)dohmN, tran, rotation );
584  LogDebug("TIBGeom") << "DDTIBLayer_MTCC test " << dohmCarrier_up_r.name()
585  << " z+ number " << i+1 << " positioned in "
586  << parent().name() << " at " << tran
587  << " with " << rotation;
588  }
589 
590  // } // phi range
591  }
592 
593 
594  // DOHM only PRIMary
595  double dx = 0.5*dohmPrimT;
596  double dy = 0.5*dohmPrimW;
597  double dz = 0.5*dohmPrimL;
598  name = idName + "DOHM_PRIM";
599  solid = DDSolidFactory::box(DDName(name, idNameSpace), dx, dy, dz);
600  DDLogicalPart dohmPrim(solid.ddname(), DDMaterial(dohmPrimMaterial), solid);
601  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC test: "
602  << DDName(name, idNameSpace) << " Box made of "
603  << dohmPrimMaterial << " of dimensions " << dx << ", "
604  << dy << ", " << dz;
605  name = idName + "DOHM_PRIM_Cable";
606  double dx_cable = 0.25*dohmPrimT;
607  double dy_cable = 0.40*dohmPrimW;
608  double dz_cable = 0.5*dohmPrimL;
609  solid = DDSolidFactory::box(DDName(name, idNameSpace), dx_cable, dy_cable, dz_cable);
610  DDLogicalPart dohmCablePrim(solid.ddname(), DDMaterial(dohmCableMaterial), solid);
611  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC test: "
612  << DDName(name, idNameSpace) << " Box made of "
613  << dohmCableMaterial << " of dimensions " << dx_cable
614  << ", " << dy_cable << ", " << dz_cable;
615  // TIB+ DOHM
616  DDTranslation tran(rout_dohm+0.5*dohmPrimT, 0. , 0.);
617  cpv.position(dohmPrim, dohmCarrierPrim_lo_r, 1, tran, DDRotation() );
618  LogDebug("TIBGeom") << "DDTIBLayer_MTCC test " << dohmPrim.name()
619  << " z+ number " << 1 << " positioned in "
620  << dohmCarrierPrim_lo_r.name() << " at " << tran
621  << " with no rotation";
622  tran = DDTranslation(rout_dohm+dx_cable, 0.5*dohmPrimW , 0.);
623  cpv.position(dohmCablePrim, dohmCarrierPrim_lo_r, 1, tran, DDRotation() );
624  LogDebug("TIBGeom") << "DDTIBLayer_MTCC test " << dohmCablePrim.name()
625  << " copy number " << 1 << " positioned in "
626  << dohmCarrierPrim_lo_r.name()
627  << " at " << tran << " with no rotation";
628  tran = DDTranslation(rout_dohm+dx_cable, -0.5*dohmPrimW , 0.);
629  cpv.position(dohmCablePrim, dohmCarrierPrim_lo_r, 2, tran, DDRotation() );
630  LogDebug("TIBGeom") << "DDTIBLayer_MTCC test " << dohmCablePrim.name()
631  << " copy number " << 2 << " positioned in "
632  << dohmCarrierPrim_lo_r.name()
633  << " at " << tran << " with no rotation";
634 
635  // DOHM PRIMary + AUXiliary
636  dx = 0.5*dohmPrimT;
637  dy = 0.5*dohmPrimW;
638  dz = 0.5*dohmPrimL;
639  name = idName + "DOHM_PRIM";
640  solid = DDSolidFactory::box(DDName(name, idNameSpace), dx, dy, dz);
641  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC test: "
642  << DDName(name, idNameSpace) << " Box made of "
643  << dohmPrimMaterial << " of dimensions " << dx << ", "
644  << dy << ", " << dz;
645  dohmPrim = DDLogicalPart(solid.ddname(), DDMaterial(dohmPrimMaterial), solid);
646  name = idName + "DOHM_PRIM_Cable";
647  dx_cable = 0.25*dohmPrimT;
648  dy_cable = 0.40*dohmPrimW;
649  dz_cable = 0.5*dohmPrimL;
650  solid = DDSolidFactory::box(DDName(name, idNameSpace), dx_cable, dy_cable, dz_cable);
651  dohmCablePrim = DDLogicalPart(solid.ddname(), DDMaterial(dohmCableMaterial), solid);
652  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC test: "
653  << DDName(name, idNameSpace) << " Box made of "
654  << dohmCableMaterial << " of dimensions " << dx_cable
655  << ", " << dy_cable << ", " << dz_cable;
656  dx = 0.5*dohmAuxT;
657  dy = 0.5*dohmAuxW;
658  dz = 0.5*dohmAuxL;
659  name = idName + "DOHM_AUX";
660  solid = DDSolidFactory::box(DDName(name, idNameSpace), dx, dy, dz);
661  DDLogicalPart dohmAux(solid.ddname(), DDMaterial(dohmAuxMaterial), solid);
662  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC test: "
663  << DDName(name, idNameSpace) << " Box made of "
664  << dohmAuxMaterial << " of dimensions " << dx << ", "
665  << dy << ", " << dz;
666  name = idName + "DOHM_AUX_Cable";
667  solid = DDSolidFactory::box(DDName(name, idNameSpace), dx_cable, dy_cable, dz_cable);
668  DDLogicalPart dohmCableAux(solid.ddname(), DDMaterial(dohmCableMaterial), solid);
669  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC test: "
670  << DDName(name, idNameSpace) << " Box made of "
671  << dohmCableMaterial << " of dimensions " << dx_cable
672  << ", " << dy_cable << ", " << dz_cable;
673  // TIB+ DOHM
674  tran = DDTranslation(rout_dohm+0.5*dohmPrimT, -0.75*dohmPrimW , 0.);
675  cpv.position(dohmPrim, dohmCarrierPrimAux_lo_r, 1, tran, DDRotation() );
676  LogDebug("TIBGeom") << "DDTIBLayer_MTCC test " << dohmAux.name()
677  << " z+ number " << 1 << " positioned in "
678  << dohmCarrierPrimAux_lo_r.name() << " at " << tran
679  << " with no rotation";
680  tran = DDTranslation(rout_dohm+dx_cable, -0.75*dohmPrimW+0.5*dohmPrimW , 0.);
681  cpv.position(dohmCablePrim, dohmCarrierPrimAux_lo_r, 1, tran, DDRotation() );
682  LogDebug("TIBGeom") << "DDTIBLayer_MTCC test " << dohmCablePrim.name()
683  << " copy number " << 1 << " positioned in "
684  << dohmCarrierPrimAux_lo_r.name() << " at " << tran
685  << " with no rotation";
686  tran = DDTranslation(rout_dohm+dx_cable, -0.75*dohmPrimW-0.5*dohmPrimW , 0.);
687  cpv.position(dohmCablePrim, dohmCarrierPrimAux_lo_r, 2, tran, DDRotation() );
688  LogDebug("TIBGeom") << "DDTIBLayer_MTCC test " << dohmCablePrim.name()
689  << " copy number " << 2 << " positioned in "
690  << dohmCarrierPrimAux_lo_r.name() << " at " << tran
691  << " with no rotation";
692  tran = DDTranslation(rout_dohm+0.5*dohmAuxT, 0.75*dohmAuxW , 0.);
693  cpv.position(dohmAux, dohmCarrierPrimAux_lo_r, 1, tran, DDRotation() );
694  LogDebug("TIBGeom") << "DDTIBLayer_MTCC test " << dohmAux.name()
695  << " z+ number " << 1 << " positioned in "
696  << dohmCarrierPrimAux_lo_r.name()
697  << " at (0,0,0) with no rotation";
698  tran = DDTranslation(rout_dohm+dx_cable, 0.75*dohmAuxW+0.5*dohmPrimW , 0.);
699  cpv.position(dohmCableAux, dohmCarrierPrimAux_lo_r, 1, tran, DDRotation() );
700  LogDebug("TIBGeom") << "DDTIBLayer_MTCC test " << dohmCableAux.name()
701  << " copy number " << 1 << " positioned in "
702  << dohmCarrierPrimAux_lo_r.name()
703  << " at " << tran << " with no rotation";
704 }
#define LogDebug(id)
int i
Definition: DBlmapReader.cc:9
std::string dohmCarrierMaterial
const N & name() const
Definition: DDBase.h:78
DDMaterial is used to define and access material information.
Definition: DDMaterial.h:41
std::vector< double > stringUpList
std::vector< double > dohmList
parent
Definition: confdb.py:1052
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
std::vector< double > ribW
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)
DDName is used to identify DDD entities uniquely.
Definition: DDName.h:14
double phidiff(double phi)
Normalized difference in azimuthal angles to a range between .
Definition: fourvec.cc:230
std::string dbl_to_string(const double &in)
Converts only the integer part of a double to a string.
Definition: DDutils.cc:12
A DDSolid represents the shape of a part.
Definition: DDSolid.h:35
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Definition: DDTranslation.h:7
Represents a uniquely identifyable rotation matrix.
Definition: DDTransform.h:66
U second(std::pair< T, U > const &p)
T sqrt(T t)
Definition: SSEVec.h:18
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
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 > ribPhi
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:519
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 > stringLoList
std::pair< std::string, std::string > DDSplit(const std::string &n)
split into (name,namespace), separator = &#39;:&#39;
Definition: DDSplit.cc:4
const std::string & name() const
Returns the name.
Definition: DDName.cc:87
const N & ddname() const
Definition: DDBase.h:80
void DDTIBLayerAlgo_MTCC::initialize ( const DDNumericArguments nArgs,
const DDVectorArguments vArgs,
const DDMapArguments mArgs,
const DDStringArguments sArgs,
const DDStringVectorArguments vsArgs 
)

Definition at line 26 of file DDTIBLayerAlgo_MTCC.cc.

References coolCableLo, coolCableUp, coolTubeT, coolTubeW, cylinderMat, cylinderT, detectorLo, detectorT, detectorTilt, detectorTol, detectorUp, detectorW, dohmAuxL, dohmAuxMaterial, dohmAuxT, dohmAuxW, dohmCableMaterial, dohmCarrierMaterial, dohmCarrierR, dohmCarrierT, dohmCarrierW, dohmList, dohmN, dohmPrimL, dohmPrimMaterial, dohmPrimT, dohmPrimW, emptyCoolCableLo, emptyCoolCableUp, emptyDetectorLo, emptyDetectorUp, genMat, i, idNameSpace, layerL, LogDebug, DDCurrentNamespace::ns(), confdb::parent, phiMaxLo, phiMaxUp, phiMinLo, phiMinUp, phioffLo, phioffUp, radiusLo, radiusUp, ribMat, ribPhi, ribW, roffCableLo, roffCableUp, roffDetLo, roffDetUp, stringLoList, stringsLo, stringsUp, stringUpList, supportMat, supportT, and supportW.

30  {
31 
33  genMat = sArgs["GeneralMaterial"];
34  DDName parentName = parent().name();
35  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC debug: Parent " << parentName
36  << " NameSpace " << idNameSpace << " General Material "
37  << genMat;
38 
39  detectorTilt = nArgs["DetectorTilt"];
40  layerL = nArgs["LayerL"];
41  detectorTol = nArgs["LayerTolerance"];
42  detectorW = nArgs["DetectorWidth"];
43  detectorT = nArgs["DetectorThickness"];
44  coolTubeW = nArgs["CoolTubeWidth"];
45  coolTubeT = nArgs["CoolTubeThickness"];
46  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC debug: Tilt Angle "
47  << detectorTilt/CLHEP::deg << " Layer Length/tolerance "
48  << layerL << " " << detectorTol
49  << " Detector layer Width/Thick " << detectorW << ", "
50  << detectorT << " Cooling Tube/Cable layer Width/Thick "
51  << coolTubeW << ", " << coolTubeT;
52 
53  radiusLo = nArgs["RadiusLo"];
54  phioffLo = nArgs["PhiOffsetLo"];
55  phiMinLo = nArgs["PhiMinimumLo"];
56  phiMaxLo = nArgs["PhiMaximumLo"];
57  stringsLo = int(nArgs["StringsLo"]);
58  stringLoList = vArgs["StringLoList"];
59  detectorLo = sArgs["StringDetLoName"];
60  emptyDetectorLo = sArgs["EmptyStringDetLoName"];
61  roffDetLo = nArgs["ROffsetDetLo"];
62  coolCableLo = sArgs["StringCabLoName"];
63  emptyCoolCableLo = sArgs["EmptyStringCabLoName"];
64  roffCableLo = nArgs["ROffsetCabLo"];
65  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC debug: Lower layer Radius "
66  << radiusLo << " Phi offset " << phioffLo/CLHEP::deg
67  << " min " << phiMinLo/CLHEP::deg << " max "
68  << phiMaxLo/CLHEP::deg << " Number " << stringsLo
69  << " String " << detectorLo << " at offset "
70  << roffDetLo << " String " << coolCableLo <<" at offset "
71  << roffCableLo << " Strings filled: ";
72  for(unsigned int i=0; i<stringLoList.size(); i++) {
73  LogDebug("TIBGeom") << "String " << i << " " << (int)stringLoList[i];
74  }
75  LogDebug("TIBGeom") << " Empty String " << emptyDetectorLo << " at offset "
76  << roffDetLo << " Empty String " << emptyCoolCableLo
77  << " at offset " << roffCableLo;
78 
79  radiusUp = nArgs["RadiusUp"];
80  phioffUp = nArgs["PhiOffsetUp"];
81  phiMinUp = nArgs["PhiMinimumUp"];
82  phiMaxUp = nArgs["PhiMaximumUp"];
83  stringsUp = int(nArgs["StringsUp"]);
84  stringUpList = vArgs["StringUpList"];
85  detectorUp = sArgs["StringDetUpName"];
86  emptyDetectorUp = sArgs["EmptyStringDetUpName"];
87  roffDetUp = nArgs["ROffsetDetUp"];
88  coolCableUp = sArgs["StringCabUpName"];
89  emptyCoolCableUp = sArgs["EmptyStringCabUpName"];
90  roffCableUp = nArgs["ROffsetCabUp"];
91  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC debug: Upper layer Radius "
92  << radiusUp << " Phi offset " << phioffUp/CLHEP::deg
93  << " min " << phiMinUp/CLHEP::deg << " max "
94  << phiMaxUp/CLHEP::deg << " Number " << stringsUp
95  << " String " << detectorUp << " at offset " << roffDetUp
96  << " String " << coolCableUp << " at offset "
97  << roffCableUp << " Strings filled: ";
98  for(unsigned int i=0; i<stringUpList.size(); i++) {
99  LogDebug("TIBGeom") << "String " << i << " " << (int)stringUpList[i];
100  }
101  LogDebug("TIBGeom") << " Empty String " << emptyDetectorUp << " at offset "
102  << roffDetUp << " Empty String " << emptyCoolCableUp
103  << " at offset " << roffCableUp;
104 
105  cylinderT = nArgs["CylinderThickness"];
106  cylinderMat = sArgs["CylinderMaterial"];
107  supportW = nArgs["SupportWidth"];
108  supportT = nArgs["SupportThickness"];
109  supportMat = sArgs["SupportMaterial"];
110  ribMat = sArgs["RibMaterial"];
111  ribW = vArgs["RibWidth"];
112  ribPhi = vArgs["RibPhi"];
113  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC debug: Cylinder Material/"
114  << "thickness " << cylinderMat << " " << cylinderT
115  << " Support Wall Material/Width/Thickness "
116  << supportMat << " " << supportW << " " << supportT
117  << " Rib Material " << ribMat << " at "
118  << ribW.size() << " positions with width/phi";
119  for (unsigned int i = 0; i < ribW.size(); i++)
120  LogDebug("TIBGeom") << "Rib " << i << " " << ribW[i] << " "
121  << ribPhi[i]/CLHEP::deg;
122 
123  dohmN = int(nArgs["DOHMPhiNumber"]);
124  dohmCarrierW = nArgs["DOHMCarrierWidth"];
125  dohmCarrierT = nArgs["DOHMCarrierThickness"];
126  dohmCarrierR = nArgs["DOHMCarrierRadialHeight"];
127  dohmCarrierMaterial = sArgs["DOHMCarrierMaterial"];
128  dohmCableMaterial = sArgs["DOHMCableMaterial"];
129  dohmPrimW = nArgs["DOHMPRIMWidth"];
130  dohmPrimL = nArgs["DOHMPRIMLength"];
131  dohmPrimT = nArgs["DOHMPRIMThickness"];
132  dohmPrimMaterial = sArgs["DOHMPRIMMaterial"];
133  dohmAuxW = nArgs["DOHMAUXWidth"];
134  dohmAuxL = nArgs["DOHMAUXLength"];
135  dohmAuxT = nArgs["DOHMAUXThickness"];
136  dohmAuxMaterial = sArgs["DOHMAUXMaterial"];
137  dohmList = vArgs["DOHMList"];
138  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC debug: DOHM PRIMary " << dohmN
139  << " Width/Length/Thickness " << " Material "
140  << dohmPrimMaterial << " " << dohmPrimW << " "
141  << dohmPrimL << " " << dohmPrimT
142  << " at positions:";
143  for(unsigned int i=0; i<dohmList.size(); i++) {
144  if((int)dohmList[i]>0) LogDebug("TIBGeom") << i+1 << ",";
145  }
146  LogDebug("TIBGeom") << "DDTIBLayerAlgo_MTCC debug: DOHM AUXiliary "
147  << " Material " << dohmAuxMaterial << " "
148  << dohmAuxW << " " << dohmAuxL << " " << dohmAuxT
149  << " at positions:";
150  for(unsigned int i=0; i<dohmList.size(); i++) {
151  if((int)dohmList[i]==2) LogDebug("TIBGeom") << i+1 << ",";
152  }
153  LogDebug("TIBGeom") << " in Carrier Width/Thickness/Radius "
154  << dohmCarrierW << " " << dohmCarrierT << " "
155  << dohmCarrierR << " Carrier Material "
157  << "\n with cables and connectors Material "
158  << dohmCableMaterial << "\n"
159  << "DDTIBLayerAlgo_MTCC debug: no DOHM "
160  << " at positions: ";
161  for(unsigned int i=0; i<dohmList.size(); i++) {
162  if((int)dohmList[i]==0) LogDebug("TIBGeom") << i+1 << ",";
163  }
164 
165 }
#define LogDebug(id)
int i
Definition: DBlmapReader.cc:9
std::string dohmCarrierMaterial
std::vector< double > stringUpList
std::vector< double > dohmList
parent
Definition: confdb.py:1052
std::vector< double > ribW
DDName is used to identify DDD entities uniquely.
Definition: DDName.h:14
static std::string & ns()
std::vector< double > ribPhi
std::vector< double > stringLoList

Member Data Documentation

std::string DDTIBLayerAlgo_MTCC::coolCableLo
private

Definition at line 45 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo_MTCC::coolCableUp
private

Definition at line 58 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::coolTubeT
private

Definition at line 34 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::coolTubeW
private

Definition at line 33 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo_MTCC::cylinderMat
private

Definition at line 63 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::cylinderT
private

Definition at line 62 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo_MTCC::detectorLo
private

Definition at line 42 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::detectorT
private

Definition at line 32 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::detectorTilt
private

Definition at line 28 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::detectorTol
private

Definition at line 30 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo_MTCC::detectorUp
private

Definition at line 55 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::detectorW
private

Definition at line 31 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::dohmAuxL
private

Definition at line 83 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo_MTCC::dohmAuxMaterial
private

Definition at line 85 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::dohmAuxT
private

Definition at line 84 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::dohmAuxW
private

Definition at line 82 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo_MTCC::dohmCableMaterial
private

Definition at line 77 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo_MTCC::dohmCarrierMaterial
private

Definition at line 76 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::dohmCarrierR
private

Definition at line 75 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::dohmCarrierT
private

Definition at line 74 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::dohmCarrierW
private

Definition at line 73 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

std::vector<double> DDTIBLayerAlgo_MTCC::dohmList
private

Definition at line 72 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

int DDTIBLayerAlgo_MTCC::dohmN
private

Definition at line 71 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::dohmPrimL
private

Definition at line 79 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo_MTCC::dohmPrimMaterial
private

Definition at line 81 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::dohmPrimT
private

Definition at line 80 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::dohmPrimW
private

Definition at line 78 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo_MTCC::emptyCoolCableLo
private

Definition at line 46 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo_MTCC::emptyCoolCableUp
private

Definition at line 59 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo_MTCC::emptyDetectorLo
private

Definition at line 43 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo_MTCC::emptyDetectorUp
private

Definition at line 56 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo_MTCC::genMat
private

Definition at line 27 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo_MTCC::idNameSpace
private

Definition at line 26 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::layerL
private

Definition at line 29 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::phiMaxLo
private

Definition at line 39 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::phiMaxUp
private

Definition at line 52 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::phiMinLo
private

Definition at line 38 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::phiMinUp
private

Definition at line 51 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::phioffLo
private

Definition at line 37 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::phioffUp
private

Definition at line 50 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::radiusLo
private

Definition at line 36 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::radiusUp
private

Definition at line 49 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo_MTCC::ribMat
private

Definition at line 67 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

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

Definition at line 69 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

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

Definition at line 68 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::roffCableLo
private

Definition at line 47 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::roffCableUp
private

Definition at line 60 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::roffDetLo
private

Definition at line 44 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::roffDetUp
private

Definition at line 57 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

std::vector<double> DDTIBLayerAlgo_MTCC::stringLoList
private

Definition at line 41 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

int DDTIBLayerAlgo_MTCC::stringsLo
private

Definition at line 40 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

int DDTIBLayerAlgo_MTCC::stringsUp
private

Definition at line 53 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

std::vector<double> DDTIBLayerAlgo_MTCC::stringUpList
private

Definition at line 54 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

std::string DDTIBLayerAlgo_MTCC::supportMat
private

Definition at line 66 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::supportT
private

Definition at line 65 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().

double DDTIBLayerAlgo_MTCC::supportW
private

Definition at line 64 of file DDTIBLayerAlgo_MTCC.h.

Referenced by execute(), and initialize().