97     fTrackSecondariesFirst = 
false;
 
  107     BuildThePhysicsTable();
 
  176                  GetAverageNumberOfPhotons(charge,beta,aMaterial,Rindex);
 
  178         if (MeanNumberOfPhotons <= 0.0) {
 
  191     MeanNumberOfPhotons = MeanNumberOfPhotons * step_length;
 
  195     if (NumPhotons <= 0) {
 
  208         if (fTrackSecondariesFirst) {
 
  223     G4double maxCos = BetaInverse / nMax; 
 
  224     G4double maxSin2 = (1.0 - maxCos) * (1.0 + maxCos);
 
  230                      GetAverageNumberOfPhotons(charge,beta1,aMaterial,Rindex);
 
  232                      GetAverageNumberOfPhotons(charge,beta2,aMaterial,Rindex);
 
  234     for (
G4int i = 0; i < NumPhotons; i++) {
 
  246             sampledEnergy = Pmin + rand * dp; 
 
  247             sampledRI = Rindex->
Value(sampledEnergy);
 
  248             cosTheta = BetaInverse / sampledRI;  
 
  250             sin2Theta = (1.0 - cosTheta)*(1.0 + cosTheta);
 
  253         } 
while (rand*maxSin2 > sin2Theta);
 
  268         G4double sinTheta = std::sqrt(sin2Theta); 
 
  303                      (photonPolarization.
x(),
 
  304                       photonPolarization.
y(),
 
  305                       photonPolarization.
z());
 
  316                    NumberOfPhotons = MeanNumberOfPhotons1 - delta *
 
  317                                 (MeanNumberOfPhotons1-MeanNumberOfPhotons2)/
 
  320                        std::max(MeanNumberOfPhotons1,MeanNumberOfPhotons2);
 
  321                 } 
while (N > NumberOfPhotons);
 
  327                 G4double aSecondaryTime = t0 + deltaTime;
 
  333         new G4Track(aCerenkovPhoton,aSecondaryTime,aSecondaryPosition);
 
  344        G4cout <<
"\n Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = " 
  355 void G4Cerenkov::BuildThePhysicsTable()
 
  369     for (
G4int i=0 ; i < numOfMaterials; i++)
 
  377         G4Material* aMaterial = (*theMaterialTable)[i];
 
  382         if (aMaterialPropertiesTable) {
 
  387            if (theRefractionIndexVector) {
 
  392                       G4double currentRI = (*theRefractionIndexVector)[0];
 
  394               if (currentRI > 1.0) {
 
  399                          G4double currentPM = theRefractionIndexVector->
 
  403              aPhysicsOrderedFreeVector->
 
  404                  InsertValues(currentPM , currentCAI);
 
  419                                 currentRI = (*theRefractionIndexVector)[ii];
 
  420                                 currentPM = theRefractionIndexVector->
Energy(ii);
 
  422                 currentCAI = 0.5*(1.0/(prevRI*prevRI) +
 
  423                               1.0/(currentRI*currentRI));
 
  425                 currentCAI = prevCAI + 
 
  426                          (currentPM - prevPM) * currentCAI;
 
  428                 aPhysicsOrderedFreeVector->
 
  429                     InsertValues(currentPM, currentCAI);
 
  432                 prevCAI = currentCAI;
 
  488         if (aMaterialPropertiesTable)
 
  489                      Rindex = aMaterialPropertiesTable->
GetProperty(
"RINDEX");
 
  499         if ( BetaMin >= 1. ) 
return StepLimit;
 
  501         G4double GammaMin = 1./std::sqrt(1.-BetaMin*BetaMin);
 
  503         if (gamma < GammaMin ) 
return StepLimit;
 
  505         G4double kinEmin = mass*(GammaMin-1.);
 
  508                                                    GetRange(particleType,
 
  512                                                    GetRange(particleType,
 
  517         if (Step < 1.*um ) 
return StepLimit;
 
  519         if (Step > 0. && Step < StepLimit) StepLimit = Step; 
 
  525         if (fMaxPhotons > 0) {
 
  529                                    GetDefinition()->GetPDGCharge();
 
  532                     GetAverageNumberOfPhotons(charge,beta,aMaterial,Rindex);
 
  535            if (MeanNumberOfPhotons > 0.0) Step = fMaxPhotons /
 
  538            if (Step > 0. && Step < StepLimit) StepLimit = Step;
 
  542         if (fMaxBetaChange > 0.) {
 
  545                                                    GetDEDX(particleType,
 
  550                                  1./std::sqrt(1.-beta*beta*
 
  552                                                  (1.-fMaxBetaChange));
 
  554            Step = mass * deltaGamma / dedx;
 
  556            if (Step > 0. && Step < StepLimit) StepLimit = Step;
 
  571 G4Cerenkov::GetAverageNumberOfPhotons(
const G4double charge,
 
  578         if(beta <= 0.0)
return 0.0;
 
  610     if (nMax < BetaInverse) {
 
  617     else if (nMin > BetaInverse) {
 
  635         G4double CAImin = CerenkovAngleIntegrals->
 
  636                                   GetValue(Pmin, isOutRange);
 
  637         ge = CAImax - CAImin;
 
  647                                  (dp - ge * BetaInverse*BetaInverse);