Import Geant4 10.4.0 source tree
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
$Id: History 99974 2016-10-13 07:22:33Z gcosmo $
|
||||
$Id: History 107409 2017-11-10 13:36:41Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -17,7 +17,18 @@ committal in the CVS repository !
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
12-Oct-2016, Gunter Folger (error-propagation-V10-02-01)
|
||||
10-Nov-2017 - P.Arce (error-propagation-V10-03-02)
|
||||
- Bug report 2010: precision correction in G4ErrorFreeTrajState.cc
|
||||
|
||||
1-Nov-2017 - J. Apostolakis, D. Sorokin (error-propagation-V10-03-01)
|
||||
same code as (error-propagation-V10-03-00)
|
||||
- Co-works with field-V10-03-19
|
||||
|
||||
23-Oct-2017 - J. Apostolakis, D. Sorokin (error-propagation-V10-03-00)
|
||||
- migrate to use of new types for G4(Mag)IntegrationDriver and
|
||||
use its new GetEquation method (not stepper's).
|
||||
|
||||
12-Oct-2016 - Gunter Folger (error-propagation-V10-02-01)
|
||||
- replace direct use of aParticleIterator by GetParticleIterator().
|
||||
fix required by clang39 on Windows and MAC
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4ErrorFreeTrajState.cc 71874 2013-06-27 13:39:59Z gunter $
|
||||
// $Id: G4ErrorFreeTrajState.cc 107409 2017-11-10 13:36:41Z gcosmo $
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
@@ -249,10 +249,11 @@ G4int G4ErrorFreeTrajState::PropagateError( const G4Track* aTrack )
|
||||
G4Vector3D vpPostNorm = vpPost * pInvPost;
|
||||
if( iverbose >= 2 ) G4cout << "G4EP: vpPreNorm " << vpPreNorm << " vpPostNorm " << vpPostNorm << G4endl;
|
||||
//return if propagation along Z??
|
||||
if( 1. - std::fabs(vpPreNorm.z()) < kCarTolerance ) return 4;
|
||||
if( 1. - std::fabs(vpPostNorm.z()) < kCarTolerance ) return 4;
|
||||
G4double sinpPre = std::sin( vpPreNorm.theta() ); //cosine perpendicular to pPre = sine pPre
|
||||
G4double sinpPost = std::sin( vpPostNorm.theta() ); //cosine perpendicular to pPost = sine pPost
|
||||
G4double sinpPostInv = 1./std::sin( vpPreNorm.theta() );
|
||||
G4double sinpPostInv = 1./std::sin( vpPostNorm.theta() );
|
||||
|
||||
#ifdef G4EVERBOSE
|
||||
if( iverbose >= 2 ) G4cout << "G4EP: cosl " << sinpPre << " cosl0 " << sinpPost << G4endl;
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4ErrorPropagatorManager.cc 78318 2013-12-11 15:02:40Z gcosmo $
|
||||
// $Id: G4ErrorPropagatorManager.cc 107054 2017-11-01 14:35:18Z gcosmo $
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
@@ -238,11 +238,9 @@ G4bool G4ErrorPropagatorManager::InitFieldForBackwards()
|
||||
// G4Field* myfield = fieldMgr->GetDetectorField();
|
||||
G4ChordFinder* cf = fieldMgr ->GetChordFinder();
|
||||
if( !cf ) return 0;
|
||||
G4MagInt_Driver* mid = cf->GetIntegrationDriver();
|
||||
if( !mid ) return 0;
|
||||
G4MagIntegratorStepper* stepper = const_cast<G4MagIntegratorStepper*>(mid->GetStepper());
|
||||
if( !stepper ) return 0;
|
||||
G4EquationOfMotion* equation = stepper->GetEquationOfMotion();
|
||||
auto driver = cf->GetIntegrationDriver();
|
||||
if( !driver ) return 0;
|
||||
auto equation = driver->GetEquationOfMotion();
|
||||
|
||||
//----- Replaces the equation by a G4ErrorMag_UsualEqRhs to handle backwards tracking
|
||||
if ( !dynamic_cast<G4ErrorMag_UsualEqRhs*>(equation) ) {
|
||||
@@ -253,7 +251,7 @@ G4bool G4ErrorPropagatorManager::InitFieldForBackwards()
|
||||
if( theEquationOfMotion == 0 ) theEquationOfMotion = new G4ErrorMag_UsualEqRhs(myfield);
|
||||
|
||||
//---- Pass the equation of motion to the G4MagIntegratorStepper
|
||||
stepper->SetEquationOfMotion( theEquationOfMotion );
|
||||
driver->SetEquationOfMotion( theEquationOfMotion );
|
||||
|
||||
//--- change stepper for speed tests
|
||||
G4MagIntegratorStepper* g4eStepper = new G4ClassicalRK4(theEquationOfMotion);
|
||||
|
||||
Reference in New Issue
Block a user