TrackingVolumeBuilder interface method - returns vector of ptrs to volumes.
108 {
109
110 auto tileTrackingVolumes = std::vector<Trk::TrackingVolume*>();
111
112
113
114
115 Trk::Material tileMaterial;
116
117
118 double tileZ = 0.;
119 double gapZ = 0.;
120
121 double plug1Z = 3405.;
122 double plug2Z = 3512.075;
123 double plug1R = 3440.;
124 double plug2R = 2959.;
125 double plug1hZ = 154.5;
126 double plug2hZ = 47.425;
127
128
129 Trk::TrackingVolume* tileBarrel = nullptr;
130 Trk::TrackingVolume* tileGirder = nullptr;
131
132 Trk::TrackingVolume* tilePositiveExtendedBarrel = nullptr;
133 Trk::TrackingVolume* tileNegativeExtendedBarrel = nullptr;
134
135
136 Trk::TrackingVolume* tileBarrelPositiveFingerGap = nullptr;
137 Trk::TrackingVolume* tileBarrelNegativeFingerGap = nullptr;
138 Trk::TrackingVolume* tilePositiveFingerGap = nullptr;
139 Trk::TrackingVolume* tileNegativeFingerGap = nullptr;
140
141
142 std::shared_ptr<Trk::CylinderVolumeBounds> tileBarrelBounds;
143 std::unique_ptr<Trk::CylinderVolumeBounds> tileBarrelGirderBounds;
144
145 Trk::CylinderVolumeBounds tilePositiveExtendedBarrelBounds;
146 std::shared_ptr<Trk::CylinderVolumeBounds> itcPlug1Bounds;
147 std::shared_ptr<Trk::CylinderVolumeBounds> itcPlug2Bounds;
148 std::shared_ptr<Trk::CylinderVolumeBounds> gapBounds;
149
150 std::vector<std::pair<const Trk::Surface*, const Trk::Surface*>> entrySurf =
152 std::vector<std::pair<const Trk::Surface*, const Trk::Surface*>> exitSurf =
154
155
156 auto barrelProperties = std::make_shared<Trk::Material>(22.7, 212., 45.8, 21.4, 0.0062);
157 auto extendedBarrelProperties = std::make_shared<Trk::Material>(22.7, 210., 45.8, 21.4, 0.0062);
158
159 Trk::BinnedMaterial barrelMaterialBinned{};
160 Trk::BinnedMaterial extendedMaterialBinned{};
161
162 Trk::Material girderProperties = Trk::Material(28.6, 272.5, 40.4, 19., 0.0049);
163 Trk::Material extendedGirderProperties = Trk::Material(27.9, 266.4, 41., 19.2, 0.005);
164 Trk::Material fingerProperties = Trk::Material(46., 426.6, 34.2, 16.2, 0.0032);
165
166 unsigned int numTreeTops =
m_tileMgr->getNumTreeTops();
167 ATH_MSG_DEBUG(
"Retrieved " << numTreeTops <<
" tree tops from the TileDetDescrManager. " );
168
169
170 std::vector<Trk::IdentifiedMaterial> matTB;
172 matTB.emplace_back(barrelProperties,0);
173 matTB.emplace_back(barrelProperties,baseID);
174 matTB.emplace_back(barrelProperties,baseID+1);
175 matTB.emplace_back(barrelProperties,baseID+2);
176
177
178 std::vector<size_t> ltb{0,1,2,3};
179
180
181 std::vector<Trk::IdentifiedMaterial> matETB;
183 matETB.emplace_back(extendedBarrelProperties,0);
184 matETB.emplace_back(extendedBarrelProperties,baseID);
185 matETB.emplace_back(extendedBarrelProperties,baseID+1);
186 matETB.emplace_back(extendedBarrelProperties,baseID+2);
187
188
189
190 Trk::Material barrelFingerGapProperties(353., 2254., 20.7, 10., 0.00057);
191
192
193 Trk::Material fingerGapProperties(552., 3925., 16.4, 8.1, 0.00034);
194
195 for (unsigned int itreetop = 0; itreetop<numTreeTops; ++itreetop){
196 PVConstLink currentVPhysVolLink =
m_tileMgr->getTreeTop(itreetop);
197
198
199
200
201
202
203
204
205 const GeoLogVol* currentLogVol = currentVPhysVolLink->getLogVol();
206
207 unsigned int currentChilds = currentVPhysVolLink->getNChildVols();
208
209 ATH_MSG_DEBUG(
"Processing " << currentLogVol->getName() <<
"... has "
210 << currentChilds << " childs." );
211 const GeoShape* currentShape = currentLogVol->getShape();
213 std::vector<double> zboundaries;
214
216
217 for (unsigned int ichild = 0; ichild < currentChilds; ++ichild){
218
219 PVConstLink currentChildLink = currentVPhysVolLink->getChildVol(ichild);
220
221 const GeoLogVol* childLogVol = currentChildLink->getLogVol();
222 const GeoShape* childShape = childLogVol->getShape();
223 ATH_MSG_VERBOSE(
" Child: " << childLogVol->getName() <<
" has shape " << childShape->type() );
224
225 const GeoTubs* currentTubs = dynamic_cast<const GeoTubs*>(childShape);
227
228 GeoTrf::Transform3D childTransform = currentVPhysVolLink->getXToChildVol(ichild);
229 double childZposition = childTransform.translation().z();
230
231 if (childCylVolBounds){
232
234 ATH_MSG_VERBOSE(
" ---> Position in z: " << childTransform.translation().z() );
236
237
238 double depth = exitSurf[CaloCell_ID::TileBar2].first->bounds().r();
239
240 switch (itreetop){
241
242 case 0 : {
243
244
245 if ( fabs(childZposition)< 100.*mm ){
246
247 tileBarrelBounds = std::make_shared<Trk::CylinderVolumeBounds>(childCylVolBounds->innerRadius(),
depth,childCylVolBounds->halflengthZ());
248
249
250 tileBarrelGirderBounds = make_unique<Trk::CylinderVolumeBounds>(
depth,childCylVolBounds->outerRadius(),childCylVolBounds->halflengthZ());
251
252
253 std::vector<float>
steps;
254 steps.push_back(childCylVolBounds->innerRadius());
255 steps.push_back(entrySurf[CaloCell_ID::TileBar0].
first->bounds().r());
256 steps.push_back(entrySurf[CaloCell_ID::TileBar1].
first->bounds().r());
257 steps.push_back(entrySurf[CaloCell_ID::TileBar2].
first->bounds().r());
260
261 barrelMaterialBinned = Trk::BinnedMaterial(*barrelProperties,rBU,ltb,matTB);
262
263 tileBarrel = new Trk::AlignableTrackingVolume(
264 nullptr, tileBarrelBounds, barrelMaterialBinned, 12,
265 "Calo::Detectors::Tile::Barrel");
266 }
267 } break;
268
270
271 std::string volumeName;
272 std::string girderName;
273 std::vector<double> girderLayerRadius;
274 std::vector<double> layerRadius;
275 std::vector<double> layerEnvelope;
276 std::shared_ptr<Trk::CylinderVolumeBounds> tileExtendedBounds = nullptr;
277 std::unique_ptr<Trk::CylinderVolumeBounds> gapVolBounds;
278
279
280 if (childCylVolBounds->halflengthZ() > 1000.){
281 volumeName = childZposition > 0. ?
282 "Calo::Detectors::Tile::PositiveExtendedBarrel" : "Calo::Detectors::Tile::NegativeExtendedBarrel";
283
284
285 tileExtendedBounds = std::make_shared<Trk::CylinderVolumeBounds>(childCylVolBounds->innerRadius(),
depth,childCylVolBounds->halflengthZ());
286
287 } else if (childCylVolBounds->halflengthZ() > 100.){
288
289
290
291 } else if ( childLogVol->getName()=="Gap" && !gapBounds ) {
292
293 gapVolBounds = make_unique<Trk::CylinderVolumeBounds>(childCylVolBounds->innerRadius(),childCylVolBounds->outerRadius(),
294 childCylVolBounds->halflengthZ());
295
296 gapZ = fabs(childZposition);
297
298 } else {
300 break;
301 }
302
303
305 Trk::TrackingVolume* tileExtendedTrackingVolume = nullptr;
306
308
309
311
312
313 std::vector<float>
steps;
314 steps.push_back(tileExtendedBounds->innerRadius());
315 steps.push_back(entrySurf[CaloCell_ID::TileExt0].
first->bounds().r());
316 steps.push_back(entrySurf[CaloCell_ID::TileExt1].
first->bounds().r());
317 steps.push_back(entrySurf[CaloCell_ID::TileExt2].
first->bounds().r());
318 steps.push_back(tileExtendedBounds->outerRadius());
320
321 extendedMaterialBinned = Trk::BinnedMaterial(*extendedBarrelProperties,eBU,ltb,matETB);
322
323 tileExtendedTrackingVolume = new Trk::AlignableTrackingVolume(
325 tileExtendedBounds,
326 extendedMaterialBinned, 18, volumeName);
327
328 } else {
329 if ( gapVolBounds ) {
330 gapBounds = std::move(gapVolBounds);
331
332 } else if (tileExtendedBounds) {
333
334
335 std::vector<float>
steps;
336 steps.push_back(tileExtendedBounds->innerRadius());
337 steps.push_back(entrySurf[CaloCell_ID::TileExt0].
first->bounds().r());
338 steps.push_back(entrySurf[CaloCell_ID::TileExt1].
first->bounds().r());
339 steps.push_back(entrySurf[CaloCell_ID::TileExt2].
first->bounds().r());
340 steps.push_back(tileExtendedBounds->outerRadius());
342
343 extendedMaterialBinned = Trk::BinnedMaterial(*extendedBarrelProperties.get(),eBU,ltb,matETB);
344
345 tileExtendedTrackingVolume = new Trk::AlignableTrackingVolume(
347 tileExtendedBounds,
348 extendedMaterialBinned,
349 18,
350 volumeName);
351 }
352 }
353
354 if (childCylVolBounds->halflengthZ() > 1000.){
355 if (childZposition > 0.) {
356 tilePositiveExtendedBarrel = tileExtendedTrackingVolume;
357 tilePositiveExtendedBarrelBounds = *tileExtendedBounds;
358 } else {
359 tileNegativeExtendedBarrel = tileExtendedTrackingVolume;
360 }
361 } else if (childCylVolBounds->halflengthZ() > 100.) {
362 tileZ = fabs(childZposition)+childCylVolBounds->halflengthZ();
363 }
364 } break;
365 }
366 }
367 }
368 }
369
370 if (!gapBounds) std::abort();
371 if (!tileBarrelGirderBounds) std::abort();
372 if (!tilePositiveExtendedBarrel) std::abort();
373 if (!tileNegativeExtendedBarrel) std::abort();
374
375 ATH_MSG_DEBUG(
"TileDetDescrManager parsed successfully! " );
376
377
378 {
379 auto tileGirderBounds = std::make_shared<Trk::CylinderVolumeBounds>
380 (tileBarrelGirderBounds->innerRadius(),
381 tileBarrelGirderBounds->outerRadius(),
382 tileZ);
383
384 tileGirder = new Trk::TrackingVolume(nullptr,
385 std::move(tileGirderBounds),
386 girderProperties,
387 nullptr, nullptr,
388 "Calo::Girder::TileCombined");
389 }
390
391
392 double tileExtZ = tilePositiveExtendedBarrel->
center().z()-tilePositiveExtendedBarrelBounds.
halflengthZ();
393
394
395 std::vector<Trk::IdentifiedMaterial> matITC;
396
398 matITC.emplace_back(barrelProperties,baseID+15);
399 matITC.emplace_back(barrelProperties,baseID+16);
400 matITC.emplace_back(barrelProperties,baseID+17);
401
402
403 double p1Z = 0.5*(plug1Z-plug1hZ+tileExtZ);
404 double hp1Z = 0.5*(tileExtZ-plug1Z+plug1hZ);
405 itcPlug1Bounds = std::make_shared<Trk::CylinderVolumeBounds>(
406 plug1R,
407 tileBarrelBounds->outerRadius(),
408 hp1Z);
409
412 auto itcP1PosTransform = std::make_unique<Amg::Transform3D>(
Amg::Translation3D(itcP1Pos));
413 auto itcP1NegTransform = std::make_unique<Amg::Transform3D>(
Amg::Translation3D(itcP1Neg));
414
415
416 std::vector<size_t> dummylay(1,1);
417 std::vector<float> bpsteps{
float(plug1R),
float(tileBarrelBounds->outerRadius())};
419 const Trk::BinUtility& rBUc(rBU);
420 const Trk::BinnedMaterial plug1MatPos(*barrelProperties,rBU,dummylay,matITC);
421 const Trk::BinnedMaterial plug1MatNeg(*barrelProperties,rBUc,dummylay,matITC);
422
423 Trk::AlignableTrackingVolume* itcPlug1Pos = new Trk::AlignableTrackingVolume(
424 std::move(itcP1PosTransform),
425 itcPlug1Bounds,
426 plug1MatPos,
427 16,
428 "Calo::Detectors::Tile::ITCPlug1Pos");
429
430 Trk::AlignableTrackingVolume* itcPlug1Neg = new Trk::AlignableTrackingVolume(
431 std::move(itcP1NegTransform),
432 std::shared_ptr<Trk::CylinderVolumeBounds>(itcPlug1Bounds->clone()),
433 plug1MatNeg, 16, "Calo::Detectors::Tile::ITCPlug1Neg");
434
435
436 double p2Z = 0.5*(plug2Z-plug2hZ+tileExtZ);
437 double hp2Z = 0.5*(tileExtZ-plug2Z+plug2hZ);
438 itcPlug2Bounds =
439 std::make_shared<Trk::CylinderVolumeBounds>(plug2R, plug1R, hp2Z);
440
443 auto itcP2PosTransform = std::make_unique<Amg::Transform3D>(
Amg::Translation3D(itcP2Pos));
444 auto itcP2NegTransform = std::make_unique<Amg::Transform3D>(
Amg::Translation3D(itcP2Neg));
445
446 std::vector<size_t> p2lay(1,0);
447 std::vector<float> p2steps{
float(plug2R),
float(plug1R)};
449 const Trk::BinUtility& p2BUc(p2BU);
450 const Trk::BinnedMaterial plug2MatPos(*barrelProperties,p2BU,p2lay,matITC);
451 const Trk::BinnedMaterial plug2MatNeg(*barrelProperties,p2BUc,p2lay,matITC);
452
453 Trk::AlignableTrackingVolume* itcPlug2Pos = new Trk::AlignableTrackingVolume(
454 std::move(itcP2PosTransform),
455 itcPlug2Bounds,
456 plug2MatPos,
457 15,
458 "Calo::Detectors::Tile::ITCPlug2Pos");
459
460 Trk::AlignableTrackingVolume* itcPlug2Neg = new Trk::AlignableTrackingVolume(
461 std::move(itcP2NegTransform),
462 std::shared_ptr<Trk::CylinderVolumeBounds> (itcPlug2Bounds->clone()),
463 plug2MatNeg, 15,
464 "Calo::Detectors::Tile::ITCPlug2Neg");
465
466
467
468
469 float gapi = 0.5*(gapZ-gapBounds->halflengthZ()+tileExtZ);
470 double hgZ = 0.5*(tileExtZ-gapZ+gapBounds->halflengthZ());
471 gapBounds = std::make_shared<Trk::CylinderVolumeBounds>(
472 tileBarrelBounds->innerRadius(), plug2R, hgZ);
473
478
479 std::vector<size_t> glay(1,2);
480 std::vector<float> gsteps{
float(gapi-gapBounds->halflengthZ()),
float(gapi+gapBounds->halflengthZ())};
482 const Trk::BinnedMaterial gpMat(*barrelProperties,gp,glay,matITC);
483
484 Trk::AlignableTrackingVolume* gapPos =
485 new Trk::AlignableTrackingVolume(
486 std::move(gapPosTransform),
487 gapBounds, gpMat,
488 17, "Calo::Detectors::Tile::GapPos");
489
490 std::vector<float> nsteps{
float(-gapi-gapBounds->halflengthZ()),
float(-gapi+gapBounds->halflengthZ())};
492 const Trk::BinnedMaterial gnMat(*barrelProperties,gn,glay,matITC);
493
494 Trk::AlignableTrackingVolume* gapNeg = new Trk::AlignableTrackingVolume(
495 std::move(gapNegTransform),
496 std::shared_ptr<Trk::CylinderVolumeBounds>(gapBounds->clone()),
497 gnMat, 15,
498 "Calo::Detectors::Tile::GapNeg");
499
500
501 float p1i = itcPlug1Pos->
center().z()-itcPlug1Bounds->halflengthZ();
502 float p2i = itcPlug2Pos->
center().z()-itcPlug2Bounds->halflengthZ();
503 float gi = gapPos->
center().z()-gapBounds->halflengthZ();
504 float zgBuff = 0.5*(p1i+
gi);
505 float hgBuff = 0.5*(
gi-p1i);
508 auto gBuffPosTransform = std::make_unique<Amg::Transform3D>(
Amg::Translation3D(gBuffPos));
509 auto gBuffNegTransform = std::make_unique<Amg::Transform3D>(
Amg::Translation3D(gBuffNeg));
510
511 auto gapBuffBounds = std::make_shared<Trk::CylinderVolumeBounds>(
512 gapBounds->innerRadius(),
513 gapBounds->outerRadius(),
514 hgBuff);
515
516 Trk::TrackingVolume* gBufferPos = new Trk::TrackingVolume(
517 std::move(gBuffPosTransform), gapBuffBounds, fingerProperties,
518 nullptr, nullptr, "Calo::GapVolumes::Tile::GapBufferPos");
519
520 Trk::TrackingVolume* gBufferNeg = new Trk::TrackingVolume(
521 std::move(gBuffNegTransform),
522 std::shared_ptr<Trk::CylinderVolumeBounds>(gapBuffBounds->clone()),
523 fingerProperties, nullptr, nullptr,
524 "Calo::GapVolumes::Tile::GapBufferNeg");
525
526 Trk::TrackingVolume* positiveGapSector = nullptr;
527 if (gBufferPos) {
528 std::vector<Trk::TrackingVolume*> volsPosGap;
529 volsPosGap.push_back(gBufferPos);
530 volsPosGap.push_back(gapPos);
532 (volsPosGap,
533 tileMaterial,
534 "Calo::Container::PositiveGap");
535 }
536 Trk::TrackingVolume* negativeGapSector = nullptr;
537 if (gBufferNeg) {
538 std::vector<Trk::TrackingVolume*> volsNegGap;
539 volsNegGap.push_back(gapNeg);
540 volsNegGap.push_back(gBufferNeg);
542 (volsNegGap,
543 tileMaterial,
544 "Calo::Container::NegativeGap");
545 }
546
547
548 float z2Buff = 0.5*(p1i+p2i);
549 float h2Buff = 0.5*(p2i-p1i);
552 auto p2BuffPosTransform = std::make_unique<Amg::Transform3D>(
Amg::Translation3D(p2BuffPos));
553 auto p2BuffNegTransform = std::make_unique<Amg::Transform3D>(
Amg::Translation3D(p2BuffNeg));
554
555 auto p2BuffBounds = std::make_shared<Trk::CylinderVolumeBounds>(
556 itcPlug2Bounds->innerRadius(), itcPlug2Bounds->outerRadius(), h2Buff);
557
558 Trk::TrackingVolume* p2BufferPos = new Trk::TrackingVolume(
559 std::move(p2BuffPosTransform), p2BuffBounds, fingerProperties, nullptr,
560 nullptr, "Calo::GapVolumes::Tile::Plug2BufferPos");
561
562 Trk::TrackingVolume* p2BufferNeg = new Trk::TrackingVolume(
563 std::move(p2BuffNegTransform),
564 std::shared_ptr<Trk::CylinderVolumeBounds>(p2BuffBounds->clone()),
565 fingerProperties, nullptr,
566 nullptr, "Calo::GapVolumes::Tile::Plug2BufferNeg");
567
568 Trk::TrackingVolume* positiveP2Sector = nullptr;
569 if (p2BufferPos) {
570 std::vector<Trk::TrackingVolume*> volsPosP2;
571 volsPosP2.push_back(p2BufferPos);
572 volsPosP2.push_back(itcPlug2Pos);
574 (volsPosP2,
575 tileMaterial,
576 "Calo::Container::PositiveP2");
577 }
578 Trk::TrackingVolume* negativeP2Sector = nullptr;
579 if (itcPlug2Neg) {
580 std::vector<Trk::TrackingVolume*> volsNegP2;
581 volsNegP2.push_back(itcPlug2Neg);
582 volsNegP2.push_back(p2BufferNeg);
584 (volsNegP2,
585 tileMaterial,
586 "Calo::Container::NegativeP2");
587 }
588
589
590 Trk::TrackingVolume* positiveITCSector = nullptr;
591 if (positiveGapSector && positiveP2Sector) {
592 std::vector<Trk::TrackingVolume*> volsITCPos;
593 volsITCPos.push_back(positiveGapSector);
594 volsITCPos.push_back(positiveP2Sector);
595 volsITCPos.push_back(itcPlug1Pos);
597 (volsITCPos,
598 tileMaterial,
599 "Calo::Container::ITCPos");
600 }
601 Trk::TrackingVolume* negativeITCSector = nullptr;
602 if (negativeGapSector && negativeP2Sector) {
603 std::vector<Trk::TrackingVolume*> volsITCNeg;
604 volsITCNeg.push_back(negativeGapSector);
605 volsITCNeg.push_back(negativeP2Sector);
606 volsITCNeg.push_back(itcPlug1Neg);
608 (volsITCNeg,
609 tileMaterial,
610 "Calo::Container::ITCNeg");
611 }
612
614
615
616
617
618 double rMin = tileBarrelBounds->innerRadius();
619 double rMax = tileBarrelBounds->outerRadius();
620
621 double zFG = 0.5*(tileBarrelBounds->halflengthZ()+p1i);
622 double hZ = 0.5*(p1i-tileBarrelBounds->halflengthZ());
623 auto tileBarrelFingerGapBounds = std::make_shared<Trk::CylinderVolumeBounds>(rMin,rMax,hZ);
624
629
630 tileBarrelPositiveFingerGap = new Trk::TrackingVolume(
631 std::move(bfPosTransform), tileBarrelFingerGapBounds, barrelFingerGapProperties,
632 nullptr, nullptr,
633 "Calo::GapVolumes::Tile::BarrelPositiveFingerGap");
634
635 tileBarrelNegativeFingerGap = new Trk::TrackingVolume(
636 std::move(bfNegTransform),
637 std::shared_ptr<Trk::CylinderVolumeBounds>(
638 tileBarrelFingerGapBounds->clone()),
639 barrelFingerGapProperties, nullptr, nullptr,
640 "Calo::GapVolumes::Tile::BarrelNegativeFingerGap");
641
642
643
644 double zBE = tilePositiveExtendedBarrel->
center().z()+tilePositiveExtendedBarrelBounds.
halflengthZ();
645 zFG = 0.5*(tileZ + zBE);
646 hZ = 0.5*(tileZ - zBE);
647
648 auto tilePositiveFingerGapBounds = std::make_shared<Trk::CylinderVolumeBounds>(
651 hZ);
652
657
658 tilePositiveFingerGap = new Trk::TrackingVolume(
659 std::move(efPosTransform), tilePositiveFingerGapBounds, fingerGapProperties,
660 nullptr, nullptr, "Calo::GapVolumes::Tile::PositiveFingerGap");
661
662 tileNegativeFingerGap = new Trk::TrackingVolume(
663 std::move(efNegTransform),
664 std::shared_ptr<Trk::CylinderVolumeBounds>(tilePositiveFingerGapBounds->clone()),
665 fingerGapProperties, nullptr, nullptr, "Calo::GapVolumes::Tile::NegativeFingerGap");
666
667
671
678
680
681
683
684
685 std::vector<Trk::TrackingVolume*> tileVols;
686 tileVols.push_back(tileNegativeFingerGap);
687 tileVols.push_back(tileNegativeExtendedBarrel);
688 tileVols.push_back(negativeITCSector);
689 tileVols.push_back(tileBarrelNegativeFingerGap);
690 tileVols.push_back(tileBarrel);
691 tileVols.push_back(tileBarrelPositiveFingerGap);
692 tileVols.push_back(positiveITCSector);
693 tileVols.push_back(tilePositiveExtendedBarrel);
694 tileVols.push_back(tilePositiveFingerGap);
696 (tileVols,
697 tileMaterial,
698 "Calo::Container::Tile::InnerSector");
699
700
701 std::vector<Trk::TrackingVolume*> tileVolumes;
702 tileVolumes.push_back(tileCombinedSector);
703 tileVolumes.push_back(tileGirder);
705 (tileVolumes,
706 tileMaterial,
707 "Calo::Container::Tile::Combined");
708
710
711 tileTrackingVolumes.push_back(tile);
712 tileTrackingVolumes.push_back(tilePositiveExtendedBarrel);
713
715 ATH_MSG_DEBUG(
"Checking the existence of all Tracking Volumes:" );
732 }
733
734 return tileTrackingVolumes;
735}
#define ATH_MSG_VERBOSE(x)
bool msgLvl(const MSG::Level lvl) const
static void printCheckResult(MsgStream &log, const Trk::TrackingVolume *vol)
double innerRadius() const
This method returns the inner radius.
double halflengthZ() const
This method returns the halflengthZ.
double outerRadius() const
This method returns the outer radius.
static std::shared_ptr< CylinderVolumeBounds > convert(const GeoTubs *gtub)
Convert a tubs.
void registerColorCode(unsigned int icolor)
Register the color code.
const Amg::Vector3D & center() const
returns the center of the volume
std::string depth
tag string for intendation
Eigen::Matrix< double, 3, 1 > Vector3D
Eigen::Translation< double, 3 > Translation3D