444 {
446
447 double h2 = cosd(a1 - 90) * D / 2;
448 map<int, G4ThreeVector> v;
449 v[5] = G4ThreeVector(-A / 2, -h2, -150);
450 v[6] = v[5] + moveto(D, a1);
451 v[10] = v[6] + moveto(B, a1 + a2 - 180);
452 v[8] = G4ThreeVector(A / 2, -h2, -150);
453 v[7] = v[8] + moveto(D, 180 - a1);
454
455 v[1] = v[5] + G4ThreeVector((H_aA * cosd(a1) + H_dD) / sind(a1), H_aA, 300);
456 v[2] = v[1] + moveto(d, a1);
457 v[9] = v[2] + moveto(b, a1 + a2 - 180);
458 v[4] = v[1] + moveto(a, 0);
459 v[3] = v[4] + moveto(d, 180 - a1);
460
461 for (int j = 1; j <= 10; j++) v[j] = G4ThreeVector(v[j].x(), -v[j].y(), -v[j].z());
462 if (wrapthick != 0) {
463 map<int, G4ThreeVector> nv;
464 nv[ 1] = newvertex(wrapthick, v[1], v[5], v[2], v[4]);
465 nv[ 2] = newvertex(wrapthick, v[2], v[6], v[9], v[1]);
466 nv[ 9] = newvertex(wrapthick, v[9], v[10], v[3], v[2]);
467 nv[ 3] = newvertex(wrapthick, v[3], v[7], v[4], v[9]);
468 nv[ 4] = newvertex(wrapthick, v[4], v[8], v[1], v[3]);
469 nv[ 5] = newvertex(wrapthick, v[5], v[1], v[8], v[6]);
470 nv[ 6] = newvertex(wrapthick, v[6], v[2], v[5], v[10]);
471 nv[10] = newvertex(wrapthick, v[10], v[9], v[6], v[7]);
472 nv[ 7] = newvertex(wrapthick, v[7], v[3], v[10], v[8]);
473 nv[ 8] = newvertex(wrapthick, v[8], v[4], v[7], v[5]);
474 std::swap(nv, v);
475 }
476 return v;
477 }