Import Geant4 9.2.0 source tree
This commit is contained in:
@@ -665,8 +665,16 @@ G4PAIModel::GetPostStepTransfer( G4double scaledTkin )
|
||||
|
||||
// G4cout<<position<<"\t" ;
|
||||
|
||||
for( iTransfer = 0;
|
||||
iTransfer < G4int((*fPAItransferTable)(iPlace)->GetVectorLength()); iTransfer++ )
|
||||
G4int iTrMax1, iTrMax2, iTrMax;
|
||||
|
||||
iTrMax1 = G4int((*fPAItransferTable)(iPlace)->GetVectorLength());
|
||||
iTrMax2 = G4int((*fPAItransferTable)(iPlace+1)->GetVectorLength());
|
||||
|
||||
if (iTrMax1 >= iTrMax2) iTrMax = iTrMax2;
|
||||
else iTrMax = iTrMax1;
|
||||
|
||||
|
||||
for( iTransfer = 0; iTransfer < iTrMax; iTransfer++ )
|
||||
{
|
||||
if( position >=
|
||||
( (*(*fPAItransferTable)(iPlace))(iTransfer)*W1 +
|
||||
@@ -690,35 +698,36 @@ G4PAIModel::GetPostStepTransfer( G4double scaledTkin )
|
||||
G4double
|
||||
G4PAIModel::GetEnergyTransfer( G4int iPlace, G4double position, G4int iTransfer )
|
||||
{
|
||||
G4double x1, x2, y1, y2, energyTransfer ;
|
||||
G4int iTransferMax;
|
||||
G4double x1, x2, y1, y2, energyTransfer;
|
||||
|
||||
if(iTransfer == 0)
|
||||
{
|
||||
energyTransfer = (*fPAItransferTable)(iPlace)->GetLowEdgeEnergy(iTransfer) ;
|
||||
energyTransfer = (*fPAItransferTable)(iPlace)->GetLowEdgeEnergy(iTransfer);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( iTransfer >= G4int((*fPAItransferTable)(iPlace)->GetVectorLength()) )
|
||||
{
|
||||
iTransfer = (*fPAItransferTable)(iPlace)->GetVectorLength() - 1 ;
|
||||
}
|
||||
y1 = (*(*fPAItransferTable)(iPlace))(iTransfer-1) ;
|
||||
y2 = (*(*fPAItransferTable)(iPlace))(iTransfer) ;
|
||||
iTransferMax = G4int((*fPAItransferTable)(iPlace)->GetVectorLength());
|
||||
|
||||
x1 = (*fPAItransferTable)(iPlace)->GetLowEdgeEnergy(iTransfer-1) ;
|
||||
x2 = (*fPAItransferTable)(iPlace)->GetLowEdgeEnergy(iTransfer) ;
|
||||
if ( iTransfer >= iTransferMax ) iTransfer = iTransferMax - 1;
|
||||
|
||||
y1 = (*(*fPAItransferTable)(iPlace))(iTransfer-1);
|
||||
y2 = (*(*fPAItransferTable)(iPlace))(iTransfer);
|
||||
|
||||
if ( x1 == x2 ) energyTransfer = x2 ;
|
||||
x1 = (*fPAItransferTable)(iPlace)->GetLowEdgeEnergy(iTransfer-1);
|
||||
x2 = (*fPAItransferTable)(iPlace)->GetLowEdgeEnergy(iTransfer);
|
||||
|
||||
if ( x1 == x2 ) energyTransfer = x2;
|
||||
else
|
||||
{
|
||||
if ( y1 == y2 ) energyTransfer = x1 + (x2 - x1)*G4UniformRand() ;
|
||||
if ( y1 == y2 ) energyTransfer = x1 + (x2 - x1)*G4UniformRand();
|
||||
else
|
||||
{
|
||||
energyTransfer = x1 + (position - y1)*(x2 - x1)/(y2 - y1) ;
|
||||
energyTransfer = x1 + (position - y1)*(x2 - x1)/(y2 - y1);
|
||||
}
|
||||
}
|
||||
}
|
||||
return energyTransfer ;
|
||||
return energyTransfer;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user