290{
291
292
293
294 StoredPhysVol* storedPV = nullptr;
297 {
299 {
300 return false;
301 }
302 }
303
304 if (!storedPV) {
305 return false;
306 }
307
308 GeoFullPhysVol* fullPV = storedPV->
getPhysVol();
309 htrans = fullPV->getAbsoluteTransform()*fullPV->getDefAbsoluteTransform().inverse();
310
314 rmin.clear();
315 rmax.clear();
317 double ri,ra,dep,zcent;
318
321
322
323
325 if (lar->
size()<60)
return false;
326
327 const IRDBRecord* rec = (*lar)[49];
328
329 ri = rec->
getDouble(
"RMIN")*Gaudi::Units::cm;
330 ra = ri + rec->
getDouble(
"DR")*Gaudi::Units::cm;
331 dep = rec->
getDouble(
"DZ")*Gaudi::Units::cm;
332 zcent = rec->
getDouble(
"ZMIN")*Gaudi::Units::cm + dep/2.;
334
335
336
337
338
339
340 rmin.push_back( ri );
341 rmax.push_back( ra );
342 depth.push_back( dep/2. );
343 z.push_back( zcent );
344
345
346 rec = (*lar)[44];
347
348 ri = rec->
getDouble(
"RMIN")*Gaudi::Units::cm;
349 ra = ri + rec->
getDouble(
"DR")*Gaudi::Units::cm;
350 dep = rec->
getDouble(
"DZ")*Gaudi::Units::cm;
351 zcent = rec->
getDouble(
"ZMIN")*Gaudi::Units::cm + dep/2.;
353
354
355
356
357
358
359 rmin.push_back( ri );
360 rmax.push_back( ra );
361 depth.push_back( dep/2. );
362 z.push_back( zcent );
363
364 return true;
365 }
366
369
370
372
373 const IRDBRecord* rec = (*lar)[0];
374
375 ri = rec->
getDouble(
"RMIN")*Gaudi::Units::cm;
376 ra = rec->
getDouble(
"RMAX")*Gaudi::Units::cm;
377 dep = rec->
getDouble(
"TCK")*Gaudi::Units::cm;
378 zcent = rec->
getDouble(
"ZPOS")*Gaudi::Units::cm + dep/2.;
380
381
382
383
384
385
386 rmin.push_back( ri );
387 rmax.push_back( ra );
388 depth.push_back( dep/2. );
389 z.push_back( zcent );
390
391 return true;
392 }
393
396
397
399
400 const IRDBRecord* rec = (*lar)[0];
401
402 ri = rec->
getDouble(
"RMIN")*Gaudi::Units::cm;
403 ra = rec->
getDouble(
"RMAX")*Gaudi::Units::cm;
404 dep = rec->
getDouble(
"ETOT")*Gaudi::Units::cm;
405 zcent = rec->
getDouble(
"Z1")*Gaudi::Units::cm + dep/2.;
407
408
409
410
411
412
413 rmin.push_back( ri );
414 rmax.push_back( ra );
415 depth.push_back( dep/2. );
416 z.push_back( zcent );
417
418 return true;
419 }
420
422
423
424
426 if (lar->
size()==0)
return false;
427
428 const IRDBRecord* rec = (*lar)[0];
429
430 ri = rec->
getDouble(
"ROORIG")*Gaudi::Units::cm;
431 ra = rec->
getDouble(
"REND")*Gaudi::Units::cm;
432
435 dep = dep*Gaudi::Units::cm;
436 zcent = rec->
getDouble(
"ZSTART")*Gaudi::Units::cm + dep/2.;
438
439
440
441
442
443
444 rmin.push_back( ri );
445 rmax.push_back( ra );
446 depth.push_back( dep/2. );
447 z.push_back( zcent );
448
449 return true;
450 }
451
453
454
455
456
458 if (lar->
size()==0)
return false;
459
460 const IRDBRecord* rec = (*lar)[0];
461
462 ri = rec->
getDouble(
"ROORIG")*Gaudi::Units::cm;
463 ra = rec->
getDouble(
"REND")*Gaudi::Units::cm;
464
467 dep = dep*Gaudi::Units::cm;
468
473 zcent = zcent*Gaudi::Units::cm + dep/2.;
475
476
477
478
479
480
481 rmin.push_back( ri );
482 rmax.push_back( ra );
483 depth.push_back( dep/2. );
484 z.push_back( zcent );
485
486 return true;
487 }
488
490
491
492
493 nb = 8.6*Gaudi::Units::cm;
494 rmin.push_back( nb );
495 nb = 47.5*Gaudi::Units::cm;
496 rmax.push_back( nb );
497
498 nb = 45.*Gaudi::Units::cm;
499 depth.push_back( nb/2. );
500
501 nb = (466.85 +
nb/2. )*Gaudi::Units::cm;
504
505 return true;
506 }
507
509
510
511
512 nb = 8.6*Gaudi::Units::cm;
513 rmin.push_back( nb );
514 nb = 47.5*Gaudi::Units::cm;
515 rmax.push_back( nb );
516
517 nb = 45.*Gaudi::Units::cm;
518 depth.push_back( nb/2. );
519
520 nb = (512.3 +
nb/2. )*Gaudi::Units::cm;
523
524 return true;
525 }
526
528
529
530
531 nb = 8.6*Gaudi::Units::cm;
532 rmin.push_back( nb );
533 nb = 47.5*Gaudi::Units::cm;
534 rmax.push_back( nb );
535
536 nb = 45.*Gaudi::Units::cm;
537 depth.push_back( nb/2. );
538
539 nb = (559.75 +
nb/2. )*Gaudi::Units::cm;
542
543 return true;
544 }
545
546
547 return false;
548}