46   if (shapem == shape) {
 
   47     if (shape == 
"BOX" || shape == 
"TRD1" || shape == 
"TRD2" || 
 
   49       for (
G4int i=0;i<npar;i++) {
 
   51           if (rparm != 0) rpar[i] = rparm[i];
 
   52       if (rpar[i] < 0) NegPresent = 
TRUE;
 
   56     if (shape == 
"TRAP") {
 
   57       for (
G4int i=0;i<11;i++) {
 
   58         if (i != 1 && i != 2 && i != 6 && i != 10) {
 
   60             if (rparm != 0) rpar[i] = rparm[i];
 
   61         if (rpar[i] < 0) NegPresent = 
TRUE;
 
   66     if (shape == 
"TUBE" || shape == 
"TUBS" || shape == 
"PARA") {
 
   67       for (
G4int i=0;i<3;i++) {
 
   69           if (rparm != 0) rpar[i] = rparm[i];
 
   70       if (rpar[i] < 0) NegPresent = 
TRUE;
 
   74     if (shape == 
"CONE" || shape == 
"CONS") {
 
   75       for (
G4int i=0;i<5;i++) {
 
   77           if (rparm != 0) rpar[i] = rparm[i];
 
   78       if (rpar[i] < 0) NegPresent = 
TRUE;
 
   82     if (shape == 
"SPHE") {
 
   83       for (
G4int i=0;i<2;i++) {
 
   85           if (rparm != 0) rpar[i] = rparm[i];
 
   86       if (rpar[i] < 0) NegPresent = 
TRUE;
 
   90     if (shape == 
"PGON") {
 
   93       for (
G4int i=0;i<nz;i++) {
 
   96           if (rparm != 0) rpar[ipl] = rparm[ipl];
 
   97       if (rpar[ipl] < 0) NegPresent = 
TRUE;
 
   99         if (rpar[ipl+1] < 0) {
 
  100           if (rparm != 0)  rpar[ipl] = rparm[ipl];
 
  101       if (rpar[ipl] < 0) NegPresent = 
TRUE;
 
  105     if (shape == 
"PCON") {
 
  108       for (
G4int i=0;i<nz;i++) {
 
  111           if (rparm != 0) rpar[ipl] = rparm[ipl];
 
  112       if (rpar[ipl] < 0) NegPresent = 
TRUE;
 
  114         if (rpar[ipl+1] < 0) {
 
  117           if (rparm != 0) rpar[ipl] = rparm[ipl];
 
  118       if (rpar[ipl] < 0) NegPresent = 
TRUE;
 
  124   if (shape == 
"BOX") {
 
  125     if (shapem == 
"TRD1") {
 
  127         if (rparm != 0) rpar[1] = rparm[2];
 
  128     if (rpar[1] < 0) NegPresent = 
TRUE;
 
  131         if (rparm != 0) rpar[2] = rparm[3];
 
  132     if (rpar[2] < 0) NegPresent = 
TRUE;
 
  135         if (rparm != 0) rpar[0] = 
std::min(rparm[0],rparm[1]) +
 
  136                                   std::abs(rparm[0]-rparm[1])*.5*rpar[2]/rparm[3];
 
  137     if (rpar[0] < 0) NegPresent = 
TRUE;
 
  140     if (shapem == 
"TRD2") {
 
  142         if (rparm != 0) rpar[2] = rparm[4];
 
  143         if (rpar[2]<0) NegPresent = 
TRUE;
 
  146         if (rparm != 0) rpar[0] = 
std::min(rparm[0],rparm[1]) +
 
  147                                   std::abs(rparm[0]-rparm[1])*.5*rpar[2]/rparm[4];
 
  148         if (rpar[0]<0) NegPresent = 
TRUE;
 
  151         if (rparm != 0) rpar[1] = 
std::min(rparm[2],rparm[3]) +
 
  152                                   std::abs(rparm[2]-rparm[3])*.5*rpar[2]/rparm[4];
 
  153         if (rpar[1]<0) NegPresent = 
TRUE;
 
  156     if (shapem == 
"TRAP") {
 
  158         if (rparm != 0) rpar[2] = rparm[0];
 
  159         if (rpar[2] < 0) NegPresent = 
TRUE;
 
  164             std::abs(rparm[4]-rparm[8])*.5*rpar[2]/rparm[0];
 
  166             std::abs(rparm[5]-rparm[9])*.5*rpar[2]/rparm[0];
 
  169         if (rpar[0] < 0) NegPresent = 
TRUE;
 
  172         if (rparm != 0) rpar[1] = 
std::min(rparm[3],rparm[7]) +
 
  173                         std::abs(rparm[3]-rparm[7])*.5*rpar[2]/rparm[0];
 
  174         if (rpar[1] < 0) NegPresent = 
TRUE;
 
  209   if (strcmp(routine,
"GSPOS") == 0 || strcmp(routine,
"GSVOLU") == 0) {
 
  212   if (strcmp(routine,
"GSDVN") == 0) {
 
  215     for (
G4int i=0;i<npar;i++) {
 
G4bool G3NegVolPars(G4double pars[], G4int *nparpt, G3VolTableEntry *vte, G3VolTableEntry *mvte, const char routine[])
 
T min(const T t1, const T t2)
brief Return the smallest of the two arguments 
 
G4bool G3CalcParamsFn(G4double *rpar, G4int npar, G4double *rparm, G4String shape, G4String shapem)