52 CheckNExtraData(tgrParam, 7, WLSIZE_EQ,
"G4tgbPlaceParamCircle:");
54 G4ThreeVector(tgrParam->GetExtraData()[4], tgrParam->GetExtraData()[5],
55 tgrParam->GetExtraData()[6]);
57 G4ThreeVector zaxis(0., 0., -1.);
58 if(zaxis.cross(theCircleAxis).mag() > 1.E-6)
60 theDirInPlane = zaxis.cross(theCircleAxis);
64 theDirInPlane = theCircleAxis.cross(G4ThreeVector(0., -1., 0.));
70 CheckNExtraData(tgrParam, 4,
WLSIZE_EQ,
"G4tgbPlaceParamCircle:");
71 if(tgrParam->GetParamType() ==
"CIRCLE_XY")
77 else if(tgrParam->GetParamType() ==
"CIRCLE_XZ")
83 else if(tgrParam->GetParamType() ==
"CIRCLE_YZ")
91 if(theCircleAxis.mag() == 0.)
93 G4Exception(
"G4tgbPlaceParamCircle::G4tgbPlaceParamCircle()",
94 "InvalidSetup", FatalException,
"Circle axis is zero !");
96 theCircleAxis /= theCircleAxis.mag();
100 theNCopies =
G4int(tgrParam->GetExtraData()[0]);
101 theStep = tgrParam->GetExtraData()[1];
102 theOffset = tgrParam->GetExtraData()[2];
103 theRadius = tgrParam->GetExtraData()[3];
108 G4cout <<
" G4tgbPlaceParamCircle::G4tgbPlaceParamCircle():" << G4endl
109 <<
" param type " << tgrParam->GetParamType() << G4endl
110 <<
" no copies - " << theNCopies << G4endl <<
" step - "
111 << theStep << G4endl <<
" offset - " << theOffset << G4endl
112 <<
" radius - " << theRadius << G4endl <<
" circle axis - "
113 << theCircleAxis << G4endl <<
" dir in plane - " << theDirInPlane