Import Geant4 8.3.0 source tree
This commit is contained in:
@@ -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*
|
||||
|
||||
Reference in New Issue
Block a user