Import Geant4 8.3.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 15:07:44 +02:00
parent fe73f43734
commit 75c7fd177d
764 changed files with 45230 additions and 95238 deletions
+24 -1
View File
@@ -1,4 +1,4 @@
$Id: History,v 1.69 2006/11/23 18:54:27 japost Exp $
$Id: History,v 1.73.2.1 2007/04/26 15:23:01 gcosmo Exp $
-------------------------------------------------------------------
=========================================================
@@ -17,6 +17,29 @@ committal in the CVS repository !
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
April 26th, 2007 - T.Nikitina (geomnav-V08-02-01a)
-----------------------------
- Fixed case of out of range access in G4GeomTestSegment responsible for
crashes observed when recursive-grid test for overlaps was run.
Addressing problem report #784.
February 13th, 2007 - J.Apostolakis (geomnav-V08-02-01)
-----------------------------------
- G4PropagatorInField:
o Implemented ClearPropagatorState() to clear all the track-dependent
state (incl. safety, zero-steps, loop flag ...).
** Calling this is mandatory for each new track because in the case of
geometry overlaps, the safety can be easily inconsistent (and/or
incorrect) otherwise
** Must be called from G4Transportation (or alternatives) !!
- Fix created Jan 25th, 2007
January 31st, 2007 - G.Cosmo (geomnav-V08-02-00)
----------------------------
- G4Navigator: forcing call to CheckOverlaps() on the current volume
before event abortion for cases of stuck tracks.
- Requires tag "geommng-V08-02-00".
November 23rd, 2006 - J.Apostolakis (geomnav-V08-01-08)
-----------------------------------
- G4PathFinder:
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4Navigator.hh,v 1.18 2006/11/11 01:17:49 japost Exp $
// GEANT4 tag $Name: geant4-08-02 $
// $Id: G4Navigator.hh,v 1.19 2006/12/07 15:09:18 japost Exp $
// GEANT4 tag $Name: geant4-08-03 $
//
//
// class G4Navigator
@@ -317,8 +317,6 @@ class G4Navigator
G4bool fActive;
// States if the navigator is activated or not.
G4ThreeVector fLastLocatedPointLocal;
// Position of the last located point relative to its containing volume.
G4bool fEntering,fExiting;
// Entering/Exiting volumes blocking/setup
// o If exiting
@@ -331,8 +329,14 @@ class G4Navigator
G4VPhysicalVolume *fBlockedPhysicalVolume;
G4int fBlockedReplicaNo;
G4VPhysicalVolume *fCandidatePhysicalVolume;
G4int fCandidateReplicaNo;
// G4VPhysicalVolume *fCandidatePhysicalVolume; // Unused
// G4int fCandidateReplicaNo;
G4ThreeVector fLastLocatedPointLocal;
// Position of the last located point relative to its containing volume.
G4bool fLocatedOutsideWorld;
// Whether the last call to Locate methods left the world
// G4PhysicalVolume* fLastVolumeLocated;
G4bool fValidExitNormal; // Set true if have leaving volume normal
G4ThreeVector fExitNormal; // Leaving volume normal, in the
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4GeomTestSegment.cc,v 1.5 2006/06/29 18:36:46 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// $Id: G4GeomTestSegment.cc,v 1.7 2007/04/26 15:15:02 gcosmo Exp $
// GEANT4 tag $Name: geant4-08-03 $
//
// --------------------------------------------------------------------
// GEANT 4 class source file
@@ -189,6 +189,8 @@ void G4GeomTestSegment::PatchInconsistencies( G4GeomTestLogger *logger )
// Oh oh. No solution. Delete the current point and complain.
//
logger->SolidProblem( solid, "Spurious exiting intersection point", p );
// G4cout<<" dir="<<curr->GetDistance()<<" entering="<<curr->Entering()<<" SigneNorm="<<v.dot(solid->SurfaceNormal(p))<<G4endl;
curr = points.erase(curr);
break;
}
@@ -237,7 +239,7 @@ void G4GeomTestSegment::PatchInconsistencies( G4GeomTestLogger *logger )
curr = points.erase(curr);
}
curr = next + 1;
if(curr!=points.end()){curr = next + 1;}
} while( curr != points.end() );
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
//
// $Id: G4Navigator.cc,v 1.25 2006/11/11 01:28:23 japost Exp $
// $Id: G4Navigator.cc,v 1.25.2.1 2007/01/31 15:05:07 gcosmo Exp $
// GEANT4 tag $ Name: $
//
// class G4Navigator Implementation
@@ -822,6 +822,7 @@ G4double G4Navigator::ComputeStep( const G4ThreeVector &pGlobalpoint,
<< " in volume -" << motherPhysical->GetName()
<< "- at point " << pGlobalpoint << G4endl
<< " direction: " << pDirection << "." << G4endl;
motherPhysical->CheckOverlaps(5000, false);
G4Exception("G4Navigator::ComputeStep()",
"StuckTrack", EventMustBeAborted,
"Stuck Track: potential geometry or navigation problem.");
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4PropagatorInField.cc,v 1.29 2006/11/17 16:53:45 japost Exp $
// GEANT4 tag $Name: geant4-08-02 $
// $Id: G4PropagatorInField.cc,v 1.30 2007/01/25 21:27:50 japost Exp $
// GEANT4 tag $Name: geant4-08-03 $
//
//
// This class implements an algorithm to track a particle in a
@@ -1118,11 +1118,20 @@ G4PropagatorInField::IntersectChord( G4ThreeVector StartPointA,
intersects = false;
NewSafety= currentSafety;
#if 0
G4cout << " G4PropagatorInField does not call Navigator::ComputeStep " << G4endl ;
G4cout << " step= " << LinearStepLength << " safety= " << NewSafety << G4endl;
G4cout << " safety: Origin = " << fPreviousSftOrigin << " val= " << fPreviousSafety << G4endl;
#endif
}
else
{
doCallNav= true;
// Check whether any volumes are encountered by the chord AB
// G4cout << " G4PropagatorInField calling Navigator::ComputeStep " << G4endl ;
LinearStepLength =
fNavigator->ComputeStep( StartPointA, ChordAB_Dir,
ChordAB_Length, NewSafety );
@@ -1131,6 +1140,8 @@ G4PropagatorInField::IntersectChord( G4ThreeVector StartPointA,
// and it did not find a surface boundary at that length
LinearStepLength = std::min( LinearStepLength, ChordAB_Length);
// G4cout << " G4PiF got step= " << LinearStepLength << " safety= " << NewSafety << G4endl;
// Save the last calculated safety!
fPreviousSftOrigin = StartPointA;
fPreviousSafety= NewSafety;
@@ -1294,8 +1305,21 @@ G4PropagatorInField::SetTrajectoryFilter(G4VCurvedTrajectoryFilter* filter) {
void G4PropagatorInField::ClearPropagatorState()
{
G4Exception("G4PropagatorInField::ClearPropagatorState()", "NotImplemented",
FatalException, "Functionality not yet implemented.");
// G4Exception("G4PropagatorInField::ClearPropagatorState()", "NotImplemented",
// FatalException, "Functionality not yet implemented.");
// Goal: Clear all memory of previous steps, cached information
fParticleIsLooping= false;
fNoZeroStep= 0;
End_PointAndTangent= G4FieldTrack( G4ThreeVector(0.,0.,0.),
G4ThreeVector(0.,0.,0.),0.0,0.0,0.0,0.0,0.0);
fFull_CurveLen_of_LastAttempt = -1;
fLast_ProposedStepLength = -1;
fPreviousSftOrigin= G4ThreeVector(0.,0.,0.);
fPreviousSafety= 0.0;
}
G4FieldManager*