Import Geant4 10.4.0 source tree

This commit is contained in:
Gabriele Cosmo
2017-12-08 12:52:30 +01:00
parent 98e455a940
commit fc6af9e721
2166 changed files with 276760 additions and 100873 deletions
+13 -2
View File
@@ -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);