89 currentMaterial(nullptr),
90 baseMaterial(nullptr),
91 protonMassAMU(1.007276),
144 pname !=
"deuteron" && pname !=
"triton" &&
145 pname !=
"alpha+" && pname !=
"helium" &&
146 pname !=
"hydrogen") {
isIon =
true; }
185 if(cutEnergy < maxEnergy) {
189 G4double beta2 = kineticEnergy*(kineticEnergy + 2.0*
mass)/energy2;
190 cross = (maxEnergy - cutEnergy)/(cutEnergy*maxEnergy)
191 - beta2*
G4Log(maxEnergy/cutEnergy)/tmax;
193 if( 0.0 <
spin ) { cross += 0.5*(maxEnergy - cutEnergy)/energy2; }
242 dedx =
DEDX(material, tkin);
245 if (cutEnergy < tmax) {
277 if(xmin >= xmax) {
return; }
282 G4double beta2 = kineticEnergy*(kineticEnergy + 2.0*
mass)/energy2;
292 deltaKinEnergy = xmin*xmax/(xmin*(1.0 - rndm[0]) + xmax*rndm[0]);
294 f = 1.0 - beta2*deltaKinEnergy/tmax;
297 G4cout <<
"G4BraggModel::SampleSecondary Warning! "
298 <<
"Majorant " << grej <<
" < "
299 << f <<
" for e= " << deltaKinEnergy
304 }
while( grej*rndm[1] >= f );
321 if(cost > 1.0) { cost = 1.0; }
322 G4double sint = sqrt((1.0 - cost)*(1.0 + cost));
326 deltaDirection.
set(sint*cos(phi),sint*sin(phi), cost) ;
335 kineticEnergy -= deltaKinEnergy;
337 finalP = finalP.
unit();
342 vdp->push_back(delta);
362 if(chFormula.empty()) {
return; }
367 "Al_2O_3",
"CO_2",
"CH_4",
368 "(C_2H_4)_N-Polyethylene",
"(C_2H_4)_N-Polypropylene",
"(C_8H_8)_N",
369 "C_3H_8",
"SiO_2",
"H_2O",
370 "H_2O-Gas",
"Graphite" } ;
374 if (chFormula == molName[i]) {
398 {1.187E+1
f, 1.343E+1
f, 1.069E+4
f, 7.723E+2
f, 2.153E-2
f},
399 {7.802E+0
f, 8.814E+0
f, 8.303E+3
f, 7.446E+2
f, 7.966E-3
f},
400 {7.294E+0
f, 8.284E+0
f, 5.010E+3
f, 4.544E+2
f, 8.153E-3
f},
401 {8.646E+0
f, 9.800E+0
f, 7.066E+3
f, 4.581E+2
f, 9.383E-3
f},
402 {1.286E+1
f, 1.462E+1
f, 5.625E+3
f, 2.621E+3
f, 3.512E-2
f},
403 {3.229E+1
f, 3.696E+1
f, 8.918E+3
f, 3.244E+3
f, 1.273E-1
f},
404 {1.604E+1
f, 1.825E+1
f, 6.967E+3
f, 2.307E+3
f, 3.775E-2
f},
405 {8.049E+0
f, 9.099E+0
f, 9.257E+3
f, 3.846E+2
f, 1.007E-2
f},
406 {4.015E+0
f, 4.542E+0
f, 3.955E+3
f, 4.847E+2
f, 7.904E-3
f},
407 {4.571E+0
f, 5.173E+0
f, 4.346E+3
f, 4.779E+2
f, 8.572E-3
f},
408 {2.631E+0
f, 2.601E+0
f, 1.701E+3
f, 1.279E+3
f, 1.638E-2
f} };
410 static const G4float atomicWeight[11] = {
411 101.96128f, 44.0098f, 16.0426f, 28.0536f, 42.0804f,
412 104.1512f, 44.665f, 60.0843f, 18.0152f, 18.0152f, 12.0f};
417 }
else if ( T < 10000.0 ) {
424 ionloss = slow*shigh / (slow + shigh) ;
432 ionloss *= (1.0+0.023+0.0066*
G4Log(T)*invLog10);
434 else if (T < 700.0) {
435 ionloss *=(1.0+0.089-0.0248*
G4Log(T-99.)*invLog10);
437 else if (T < 10000.0) {
438 ionloss *=(1.0+0.089-0.0248*
G4Log(700.-99.)*invLog10);
467 {1.254E+0
f, 1.440E+0
f, 2.426E+2
f, 1.200E+4
f, 1.159E-1
f},
468 {1.229E+0
f, 1.397E+0
f, 4.845E+2
f, 5.873E+3
f, 5.225E-2
f},
469 {1.411E+0
f, 1.600E+0
f, 7.256E+2
f, 3.013E+3
f, 4.578E-2
f},
470 {2.248E+0
f, 2.590E+0
f, 9.660E+2
f, 1.538E+2
f, 3.475E-2
f},
471 {2.474E+0
f, 2.815E+0
f, 1.206E+3
f, 1.060E+3
f, 2.855E-2
f},
472 {2.631E+0
f, 2.601E+0
f, 1.701E+3
f, 1.279E+3
f, 1.638E-2
f},
473 {2.954E+0
f, 3.350E+0
f, 1.683E+3
f, 1.900E+3
f, 2.513E-2
f},
474 {2.652E+0
f, 3.000E+0
f, 1.920E+3
f, 2.000E+3
f, 2.230E-2
f},
475 {2.085E+0
f, 2.352E+0
f, 2.157E+3
f, 2.634E+3
f, 1.816E-2
f},
476 {1.951E+0
f, 2.199E+0
f, 2.393E+3
f, 2.699E+3
f, 1.568E-2
f},
478 {2.542E+0
f, 2.869E+0
f, 2.628E+3
f, 1.854E+3
f, 1.472E-2
f},
479 {3.791E+0
f, 4.293E+0
f, 2.862E+3
f, 1.009E+3
f, 1.397E-2
f},
480 {4.154E+0
f, 4.739E+0
f, 2.766E+3
f, 1.645E+2
f, 2.023E-2
f},
481 {4.914E+0
f, 5.598E+0
f, 3.193E+3
f, 2.327E+2
f, 1.419E-2
f},
482 {3.232E+0
f, 3.647E+0
f, 3.561E+3
f, 1.560E+3
f, 1.267E-2
f},
483 {3.447E+0
f, 3.891E+0
f, 3.792E+3
f, 1.219E+3
f, 1.211E-2
f},
484 {5.301E+0
f, 6.008E+0
f, 3.969E+3
f, 6.451E+2
f, 1.183E-2
f},
485 {5.731E+0
f, 6.500E+0
f, 4.253E+3
f, 5.300E+2
f, 1.123E-2
f},
486 {5.152E+0
f, 5.833E+0
f, 4.482E+3
f, 5.457E+2
f, 1.129E-2
f},
487 {5.521E+0
f, 6.252E+0
f, 4.710E+3
f, 5.533E+2
f, 1.112E-2
f},
489 {5.201E+0
f, 5.884E+0
f, 4.938E+3
f, 5.609E+2
f, 9.995E-3
f},
490 {4.858E+0
f, 5.489E+0
f, 5.260E+3
f, 6.511E+2
f, 8.930E-3
f},
491 {4.479E+0
f, 5.055E+0
f, 5.391E+3
f, 9.523E+2
f, 9.117E-3
f},
492 {3.983E+0
f, 4.489E+0
f, 5.616E+3
f, 1.336E+3
f, 8.413E-3
f},
493 {3.469E+0
f, 3.907E+0
f, 5.725E+3
f, 1.461E+3
f, 8.829E-3
f},
494 {3.519E+0
f, 3.963E+0
f, 6.065E+3
f, 1.243E+3
f, 7.782E-3
f},
495 {3.140E+0
f, 3.535E+0
f, 6.288E+3
f, 1.372E+3
f, 7.361E-3
f},
496 {3.553E+0
f, 4.004E+0
f, 6.205E+3
f, 5.551E+2
f, 8.763E-3
f},
497 {3.696E+0
f, 4.194E+0
f, 4.649E+3
f, 8.113E+1
f, 2.242E-2
f},
498 {4.210E+0
f, 4.750E+0
f, 6.953E+3
f, 2.952E+2
f, 6.809E-3
f},
500 {5.041E+0
f, 5.697E+0
f, 7.173E+3
f, 2.026E+2
f, 6.725E-3
f},
501 {5.554E+0
f, 6.300E+0
f, 6.496E+3
f, 1.100E+2
f, 9.689E-3
f},
502 {5.323E+0
f, 6.012E+0
f, 7.611E+3
f, 2.925E+2
f, 6.447E-3
f},
503 {5.874E+0
f, 6.656E+0
f, 7.395E+3
f, 1.175E+2
f, 7.684E-3
f},
504 {6.658E+0
f, 7.536E+0
f, 7.694E+3
f, 2.223E+2
f, 6.509E-3
f},
505 {6.413E+0
f, 7.240E+0
f, 1.185E+4
f, 1.537E+2
f, 2.880E-3
f},
506 {5.694E+0
f, 6.429E+0
f, 8.478E+3
f, 2.929E+2
f, 6.087E-3
f},
507 {6.339E+0
f, 7.159E+0
f, 8.693E+3
f, 3.303E+2
f, 6.003E-3
f},
508 {6.407E+0
f, 7.234E+0
f, 8.907E+3
f, 3.678E+2
f, 5.889E-3
f},
509 {6.734E+0
f, 7.603E+0
f, 9.120E+3
f, 4.052E+2
f, 5.765E-3
f},
511 {6.901E+0
f, 7.791E+0
f, 9.333E+3
f, 4.427E+2
f, 5.587E-3
f},
512 {6.424E+0
f, 7.248E+0
f, 9.545E+3
f, 4.802E+2
f, 5.376E-3
f},
513 {6.799E+0
f, 7.671E+0
f, 9.756E+3
f, 5.176E+2
f, 5.315E-3
f},
514 {6.109E+0
f, 6.887E+0
f, 9.966E+3
f, 5.551E+2
f, 5.151E-3
f},
515 {5.924E+0
f, 6.677E+0
f, 1.018E+4
f, 5.925E+2
f, 4.919E-3
f},
516 {5.238E+0
f, 5.900E+0
f, 1.038E+4
f, 6.300E+2
f, 4.758E-3
f},
518 {5.345E+0
f, 6.038E+0
f, 6.790E+3
f, 3.978E+2
f, 1.676E-2
f},
519 {5.814E+0
f, 6.554E+0
f, 1.080E+4
f, 3.555E+2
f, 4.626E-3
f},
520 {6.229E+0
f, 7.024E+0
f, 1.101E+4
f, 3.709E+2
f, 4.540E-3
f},
521 {6.409E+0
f, 7.227E+0
f, 1.121E+4
f, 3.864E+2
f, 4.474E-3
f},
523 {7.500E+0
f, 8.480E+0
f, 8.608E+3
f, 3.480E+2
f, 9.074E-3
f},
524 {6.979E+0
f, 7.871E+0
f, 1.162E+4
f, 3.924E+2
f, 4.402E-3
f},
525 {7.725E+0
f, 8.716E+0
f, 1.183E+4
f, 3.948E+2
f, 4.376E-3
f},
526 {8.337E+0
f, 9.425E+0
f, 1.051E+4
f, 2.696E+2
f, 6.206E-3
f},
527 {7.287E+0
f, 8.218E+0
f, 1.223E+4
f, 3.997E+2
f, 4.447E-3
f},
528 {7.899E+0
f, 8.911E+0
f, 1.243E+4
f, 4.021E+2
f, 4.511E-3
f},
529 {8.041E+0
f, 9.071E+0
f, 1.263E+4
f, 4.045E+2
f, 4.540E-3
f},
530 {7.488E+0
f, 8.444E+0
f, 1.283E+4
f, 4.069E+2
f, 4.420E-3
f},
531 {7.291E+0
f, 8.219E+0
f, 1.303E+4
f, 4.093E+2
f, 4.298E-3
f},
532 {7.098E+0
f, 8.000E+0
f, 1.323E+4
f, 4.118E+2
f, 4.182E-3
f},
534 {6.909E+0
f, 7.786E+0
f, 1.343E+4
f, 4.142E+2
f, 4.058E-3
f},
535 {6.728E+0
f, 7.580E+0
f, 1.362E+4
f, 4.166E+2
f, 3.976E-3
f},
536 {6.551E+0
f, 7.380E+0
f, 1.382E+4
f, 4.190E+2
f, 3.877E-3
f},
537 {6.739E+0
f, 7.592E+0
f, 1.402E+4
f, 4.214E+2
f, 3.863E-3
f},
538 {6.212E+0
f, 6.996E+0
f, 1.421E+4
f, 4.239E+2
f, 3.725E-3
f},
539 {5.517E+0
f, 6.210E+0
f, 1.440E+4
f, 4.263E+2
f, 3.632E-3
f},
540 {5.220E+0
f, 5.874E+0
f, 1.460E+4
f, 4.287E+2
f, 3.498E-3
f},
541 {5.071E+0
f, 5.706E+0
f, 1.479E+4
f, 4.330E+2
f, 3.405E-3
f},
542 {4.926E+0
f, 5.542E+0
f, 1.498E+4
f, 4.335E+2
f, 3.342E-3
f},
543 {4.788E+0
f, 5.386E+0
f, 1.517E+4
f, 4.359E+2
f, 3.292E-3
f},
545 {4.893E+0
f, 5.505E+0
f, 1.536E+4
f, 4.384E+2
f, 3.243E-3
f},
546 {5.028E+0
f, 5.657E+0
f, 1.555E+4
f, 4.408E+2
f, 3.195E-3
f},
547 {4.738E+0
f, 5.329E+0
f, 1.574E+4
f, 4.432E+2
f, 3.186E-3
f},
548 {4.587E+0
f, 5.160E+0
f, 1.541E+4
f, 4.153E+2
f, 3.406E-3
f},
549 {5.201E+0
f, 5.851E+0
f, 1.612E+4
f, 4.416E+2
f, 3.122E-3
f},
550 {5.071E+0
f, 5.704E+0
f, 1.630E+4
f, 4.409E+2
f, 3.082E-3
f},
551 {4.946E+0
f, 5.563E+0
f, 1.649E+4
f, 4.401E+2
f, 2.965E-3
f},
552 {4.477E+0
f, 5.034E+0
f, 1.667E+4
f, 4.393E+2
f, 2.871E-3
f},
554 {4.844E+0
f, 5.458E+0
f, 7.852E+3
f, 9.758E+2
f, 2.077E-2
f},
555 {4.307E+0
f, 4.843E+0
f, 1.704E+4
f, 4.878E+2
f, 2.882E-3
f},
557 {4.723E+0
f, 5.311E+0
f, 1.722E+4
f, 5.370E+2
f, 2.913E-3
f},
558 {5.319E+0
f, 5.982E+0
f, 1.740E+4
f, 5.863E+2
f, 2.871E-3
f},
559 {5.956E+0
f, 6.700E+0
f, 1.780E+4
f, 6.770E+2
f, 2.660E-3
f},
560 {6.158E+0
f, 6.928E+0
f, 1.777E+4
f, 5.863E+2
f, 2.812E-3
f},
561 {6.203E+0
f, 6.979E+0
f, 1.795E+4
f, 5.863E+2
f, 2.776E-3
f},
562 {6.181E+0
f, 6.954E+0
f, 1.812E+4
f, 5.863E+2
f, 2.748E-3
f},
563 {6.949E+0
f, 7.820E+0
f, 1.830E+4
f, 5.863E+2
f, 2.737E-3
f},
564 {7.506E+0
f, 8.448E+0
f, 1.848E+4
f, 5.863E+2
f, 2.727E-3
f},
565 {7.648E+0
f, 8.609E+0
f, 1.866E+4
f, 5.863E+2
f, 2.697E-3
f},
566 {7.711E+0
f, 8.679E+0
f, 1.883E+4
f, 5.863E+2
f, 2.641E-3
f},
568 {7.407E+0
f, 8.336E+0
f, 1.901E+4
f, 5.863E+2
f, 2.603E-3
f},
569 {7.290E+0
f, 8.204E+0
f, 1.918E+4
f, 5.863E+2
f, 2.673E-3
f}
575 if ( T < 40.0 && 5 == i) {
580 }
else if ( T < 10.0 ) {
592 ionloss = slow*shigh*fac / (slow + shigh);
635 const G4double* theAtomicNumDensityVector =
644 }
else if(1 == numberOfElements) {
660 for (
G4int i=0; i<numberOfElements; ++i) {
661 const G4Element* element = (*theElementVector)[i] ;
664 * theAtomicNumDensityVector[i] ;
666 * theAtomicNumDensityVector[i] ;
678 for (
G4int i=0; i<numberOfElements; ++i)
680 const G4Element* element = (*theElementVector)[i] ;
682 * theAtomicNumDensityVector[i];
698 if (myFormula == chFormula ) {
return false; }
708 if( theState ==
kStateGas && myFormula == chFormula)
return false ;
712 static const G4float HeEff = 2.8735f;
716 "H_2O",
"C_2H_4O",
"C_3H_6O",
"C_2H_2",
"C_H_3OH",
717 "C_2H_5OH",
"C_3H_7OH",
"C_3H_4",
"NH_3",
"C_14H_10",
718 "C_6H_6",
"C_4H_10",
"C_4H_6",
"C_4H_8O",
"CCl_4",
719 "CF_4",
"C_6H_8",
"C_6H_12",
"C_6H_10O",
"C_6H_10",
720 "C_8H_16",
"C_5H_10",
"C_5H_8",
"C_3H_6-Cyclopropane",
"C_2H_4F_2",
721 "C_2H_2F_2",
"C_4H_8O_2",
"C_2H_6",
"C_2F_6",
"C_2H_6O",
722 "C_3H_6O",
"C_4H_10O",
"C_2H_4",
"C_2H_4O",
"C_2H_4S",
723 "SH_2",
"CH_4",
"CCLF_3",
"CCl_2F_2",
"CHCl_2F",
724 "(CH_3)_2S",
"N_2O",
"C_5H_10O",
"C_8H_6",
"(CH_2)_N",
725 "(C_3H_6)_N",
"(C_8H_8)_N",
"C_3H_8",
"C_3H_6-Propylene",
"C_3H_6O",
726 "C_3H_6S",
"C_4H_4S",
"C_7H_8"
730 66.1f, 190.4f, 258.7f, 42.2f, 141.5f,
731 210.9f, 279.6f, 198.8f, 31.0f, 267.5f,
732 122.8f, 311.4f, 260.3f, 328.9f, 391.3f,
733 206.6f, 374.0f, 422.0f, 432.0f, 398.0f,
734 554.0f, 353.0f, 326.0f, 74.6f, 220.5f,
735 197.4f, 362.0f, 170.0f, 330.5f, 211.3f,
736 262.3f, 349.6f, 51.3f, 187.0f, 236.9f,
737 121.9f, 35.8f, 247.0f, 292.6f, 268.0f,
738 262.3f, 49.0f, 398.9f, 444.0f, 22.91f,
739 68.0f, 155.0f, 84.0f, 74.2f, 254.7f,
740 306.8f, 324.4f, 420.0f
743 static const G4float expCharge[53] = {
744 HeEff, HeEff, HeEff, 1.0f, HeEff,
745 HeEff, HeEff, HeEff, 1.0f, 1.0f,
746 1.0f, HeEff, HeEff, HeEff, HeEff,
747 HeEff, HeEff, HeEff, HeEff, HeEff,
748 HeEff, HeEff, HeEff, 1.0f, HeEff,
749 HeEff, HeEff, HeEff, HeEff, HeEff,
750 HeEff, HeEff, 1.0f, HeEff, HeEff,
751 HeEff, 1.0f, HeEff, HeEff, HeEff,
752 HeEff, 1.0f, HeEff, HeEff, 1.0f,
753 1.0f, 1.0f, 1.0f, 1.0f, HeEff,
757 static const G4int numberOfAtomsPerMolecula[53] = {
772 if(chFormula == nameOfMol[i]) {
775 ((
G4double)(expCharge[i] * numberOfAtomsPerMolecula[i]));
793 static const G4double beta25 = sqrt(1.0 - 1.0/(gamma25*gamma25));
794 static const G4double beta125 = sqrt(1.0 - 1.0/(gamma125*gamma125));
795 static const G4double f12525 = 1.0 +
G4Exp( 1.48*(beta125/beta25 - 7.0) );
798 G4double beta = sqrt(1.0 - 1.0/(gamma*gamma));
801 (1.0 +
G4Exp( 1.48 * ( beta/beta25 - 7.0 ) ) );