Import Geant4 7.0.0 source tree
This commit is contained in:
+39
-1
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 1.75 2004/06/11 15:21:41 gcosmo Exp $
|
||||
$Id: History,v 1.84 2004/12/07 09:17:47 gcosmo Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -17,6 +17,44 @@ committal in the CVS repository !
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
07 December 2004 Gabriele Cosmo (tracking-V06-02-09)
|
||||
- Implemented migration to <cmath>.
|
||||
|
||||
01 December 2004 Gabriele Cosmo (tracking-V06-02-08)
|
||||
- Fix in G4SteppingManager::InvokePSDIP() for completing migration
|
||||
to new G4VParticleVhange interface.
|
||||
|
||||
18 November 2004 Joseph Perl (tracking-V06-02-07)
|
||||
- G4Trajectory add HepRep attribute for magnitude of momentum
|
||||
- G4SmoothTrajectory add HepRep attribute for magnitude of momentum
|
||||
|
||||
Nov.18,2005 T.Sasaki(tracking-V06-02-06)
|
||||
- G4SteppingManager2.cc Fix on interactive on/of for AtRest processes
|
||||
Nov.16,2005 T.Sasaki(tracking-V06-02-05)
|
||||
- G4SteppingManager2.cc change the track status to StopAndKill when a track looses all kinetic energy cumlatively while the AlongStep loop
|
||||
Nov.10,2004 T.Sasaki(tracking-V06-02-04)
|
||||
- G4SteppingVerbose forced to be singleton.
|
||||
- G4SteppingManager no more issue G4Excetpion even if no atRestDoit proccesses exit.
|
||||
- G4SteppingManager change the track status to G4StopButAlive if the kinetic energy becomes below zero while AlongStep loop.
|
||||
|
||||
Aug.27, 2004 M.Asai (tracking-V06-02-03)
|
||||
- G4SteppingManager now looks at "preStepPoint" for the sensitivety of the
|
||||
volume instead of the logical volume through G4Track.
|
||||
|
||||
Jul.08, 2004 K. Amako (tracking-V06-02-02)
|
||||
- Modified G4SteppingVerbose.cc so that PostStep information is printed out
|
||||
even when PostStep process is triggered by AlongStep process.
|
||||
|
||||
Jul.06, 2004 M.Asai (tracking-V06-02-01)
|
||||
- Remove the modification along tracking-V06-00-00 tag for G4SteppingManager2.cc
|
||||
and let a fix on it be on top of this.
|
||||
- The fix is for incorrect total number of secondaries.
|
||||
|
||||
Jul.05, 2004 G.Cosmo (tracking-V06-02-00)
|
||||
- Moved inlined contructors/destructors for G4Vtrajectory and G4VTrajectoryPoint
|
||||
to NOT inline. Created G4VtrajectoryPoint.cc file.
|
||||
Corrected signature of operator==() to canonical implementation.
|
||||
|
||||
Jun.11, 2004 G.Cosmo (tracking-V06-01-02)
|
||||
- Use global flag G4TRACKING_ALLOC_EXPORT to export extern symbols for DLLs.
|
||||
Modified GNUmakefile and rearranged usage of extern symbols in classes.
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4SmoothTrajectory.hh,v 1.8 2004/06/11 14:30:17 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-06-02 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4SmoothTrajectoryPoint.hh,v 1.10 2004/06/11 14:30:17 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-06-02 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4SteppingManager.hh,v 1.25 2003/12/09 08:40:17 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-06-00-patch-01 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
//
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4SteppingVerbose.hh,v 1.9 2001/07/11 10:08:40 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4TrackVector.hh,v 1.9 2003/06/16 17:13:10 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4TrackingManager.hh,v 1.14 2002/08/13 18:14:42 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4TrackingMessenger.hh,v 1.7 2001/07/11 10:08:41 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4Trajectory.hh,v 1.21 2004/06/11 14:30:18 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-06-02 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4TrajectoryPoint.hh,v 1.14 2004/06/11 14:30:18 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-06-02 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4UserSteppingAction.hh,v 1.8 2003/05/21 20:41:21 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4UserTrackingAction.hh,v 1.9 2003/05/21 20:41:21 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VSteppingVerbose.hh,v 1.15 2003/06/16 17:13:13 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4VTrajectory.hh,v 1.12 2003/06/16 17:13:15 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
// $Id: G4VTrajectory.hh,v 1.13 2004/07/05 17:08:15 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
@@ -59,12 +59,11 @@ class G4VTrajectory
|
||||
|
||||
// Constructor/Destrcutor
|
||||
|
||||
G4VTrajectory() {;}
|
||||
virtual ~G4VTrajectory() {;}
|
||||
G4VTrajectory();
|
||||
virtual ~G4VTrajectory();
|
||||
|
||||
// Operators
|
||||
inline int operator == (const G4VTrajectory& right) const
|
||||
{return (this==&right);}
|
||||
G4bool operator == (const G4VTrajectory& right) const;
|
||||
|
||||
// Get/Set functions
|
||||
virtual G4int GetTrackID() const = 0;
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4VTrajectoryPoint.hh,v 1.10 2003/06/16 17:13:16 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
// $Id: G4VTrajectoryPoint.hh,v 1.11 2004/07/05 17:08:16 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
@@ -52,12 +52,11 @@ class G4VTrajectoryPoint
|
||||
public: // with description
|
||||
|
||||
// Constructor/Destructor
|
||||
G4VTrajectoryPoint() {;}
|
||||
virtual ~G4VTrajectoryPoint() {;}
|
||||
G4VTrajectoryPoint();
|
||||
virtual ~G4VTrajectoryPoint();
|
||||
|
||||
// Operators
|
||||
inline int operator==(const G4VTrajectoryPoint& right) const
|
||||
{ return (this==&right); };
|
||||
G4bool operator==(const G4VTrajectoryPoint& right) const;
|
||||
|
||||
// Get/Set functions
|
||||
virtual const G4ThreeVector GetPosition() const = 0;
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4SmoothTrajectory.cc,v 1.12 2004/06/11 14:30:19 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-06-02 $
|
||||
// $Id: G4SmoothTrajectory.cc,v 1.13 2004/11/18 23:10:10 perl Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
// ---------------------------------------------------------------
|
||||
@@ -141,6 +141,10 @@ const std::map<G4String,G4AttDef>* G4SmoothTrajectory::GetAttDefs() const
|
||||
(*store)[IMom] = G4AttDef(IMom, "Momentum of track at start of trajectory",
|
||||
"Physics","","G4ThreeVector");
|
||||
|
||||
G4String IMag("IMag");
|
||||
(*store)[IMag] = G4AttDef(IMag, "Magnitude of momentum of track at start of trajectory",
|
||||
"Physics","","G4double");
|
||||
|
||||
G4String NTP("NTP");
|
||||
(*store)[NTP] = G4AttDef(NTP,"No. of points","Physics","","G4int");
|
||||
|
||||
@@ -178,6 +182,10 @@ std::vector<G4AttValue>* G4SmoothTrajectory::CreateAttValues() const
|
||||
s << G4BestUnit(initialMomentum,"Energy") << std::ends;
|
||||
values->push_back(G4AttValue("IMom",c,""));
|
||||
|
||||
s.seekp(std::ios::beg);
|
||||
s << initialMomentum.mag() << std::ends;
|
||||
values->push_back(G4AttValue("IMag",c,""));
|
||||
|
||||
s.seekp(std::ios::beg);
|
||||
s << GetPointEntries() << std::ends;
|
||||
values->push_back(G4AttValue("NTP",c,""));
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4SmoothTrajectoryPoint.cc,v 1.12 2004/06/11 14:30:19 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-06-02 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
// ---------------------------------------------------------------
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4SteppingManager.cc,v 1.32 2003/11/10 08:52:33 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-06-00-patch-01 $
|
||||
// $Id: G4SteppingManager.cc,v 1.33 2004/08/12 00:50:11 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
@@ -216,7 +216,7 @@ G4StepStatus G4SteppingManager::Stepping()
|
||||
fCurrentVolume = fStep->GetPreStepPoint()->GetPhysicalVolume();
|
||||
StepControlFlag = fStep->GetControlFlag();
|
||||
if( fCurrentVolume != 0 && StepControlFlag != AvoidHitInvocation) {
|
||||
fSensitive = fCurrentVolume->GetLogicalVolume()->
|
||||
fSensitive = fStep->GetPreStepPoint()->
|
||||
GetSensitiveDetector();
|
||||
if( fSensitive != 0 ) {
|
||||
fSensitive->Hit(fStep);
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4SteppingManager2.cc,v 1.13 2003/09/19 10:17:30 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-06-00-patch-01 $
|
||||
// $Id: G4SteppingManager2.cc,v 1.23 2004/12/07 09:16:54 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-03 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
@@ -45,7 +45,7 @@
|
||||
#include "G4GPILSelection.hh"
|
||||
#include "G4SteppingControl.hh"
|
||||
#include "G4TransportationManager.hh"
|
||||
#include "G4UserLimits.hh"
|
||||
//#include "G4UserLimits.hh"
|
||||
#include "G4SteppingManager.hh"
|
||||
#include "G4LossTableManager.hh"
|
||||
|
||||
@@ -102,23 +102,25 @@ void G4SteppingManager::GetProcessNumber()
|
||||
|
||||
// Obtain the user defined maximum allowed Step in the volume
|
||||
// 1997.12.13 adds argument for GetMaxAllowedStep by K.Kurashige
|
||||
G4UserLimits* ul= fCurrentVolume->GetLogicalVolume()->GetUserLimits();
|
||||
if (ul) {
|
||||
physIntLength = ul->GetMaxAllowedStep(*fTrack);
|
||||
#ifdef G4VERBOSE
|
||||
// !!!!! Verbose
|
||||
if(verboseLevel>0) fVerbose->DPSLUserLimit();
|
||||
#endif
|
||||
}
|
||||
|
||||
if(physIntLength < PhysicalStep ){
|
||||
PhysicalStep = physIntLength;
|
||||
fStepStatus = fUserDefinedLimit;
|
||||
fStep->GetPostStepPoint()
|
||||
->SetProcessDefinedStep(NULL);
|
||||
// Take note that the process pointer is 'NULL' if the Step
|
||||
// is defined by the user defined limit.
|
||||
}
|
||||
// 2004.01.20 This block will be removed by Geant4 7.0
|
||||
// G4UserLimits* ul= fCurrentVolume->GetLogicalVolume()->GetUserLimits();
|
||||
// if (ul) {
|
||||
// physIntLength = ul->GetMaxAllowedStep(*fTrack);
|
||||
//#ifdef G4VERBOSE
|
||||
// // !!!!! Verbose
|
||||
// if(verboseLevel>0) fVerbose->DPSLUserLimit();
|
||||
//#endif
|
||||
// }
|
||||
//
|
||||
// if(physIntLength < PhysicalStep ){
|
||||
// PhysicalStep = physIntLength;
|
||||
// fStepStatus = fUserDefinedLimit;
|
||||
// fStep->GetPostStepPoint()
|
||||
// ->SetProcessDefinedStep(NULL);
|
||||
// // Take note that the process pointer is 'NULL' if the Step
|
||||
// // is defined by the user defined limit.
|
||||
// }
|
||||
// 2004.01.20 This block will be removed by Geant4 7.0
|
||||
|
||||
// GPIL for PostStep
|
||||
fPostStepDoItProcTriggered = MAXofPostStepLoops;
|
||||
@@ -231,7 +233,6 @@ void G4SteppingManager::InvokeAtRestDoItProcs()
|
||||
G4double lifeTime, shortestLifeTime;
|
||||
|
||||
fAtRestDoItProcTriggered = 0;
|
||||
fN2ndariesAtRestDoIt = 0;
|
||||
shortestLifeTime = DBL_MAX;
|
||||
|
||||
unsigned int NofInactiveProc=0;
|
||||
@@ -262,11 +263,12 @@ void G4SteppingManager::InvokeAtRestDoItProcs()
|
||||
// at least one process is necessary to destory the particle
|
||||
// exit with warning
|
||||
if(NofInactiveProc==MAXofAtRestLoops){
|
||||
G4Exception("G4SteppingManager::InvokeAtRestDoItProcs: No AtRestDoIt process is active. " );
|
||||
// G4Exception("G4SteppingManager::InvokeAtRestDoItProcs: No AtRestDoIt process is active. " );
|
||||
G4cerr << "G4SteppingManager::InvokeAtRestDoItProcs: No AtRestDoIt process is active. " << G4endl;
|
||||
} else {
|
||||
(*fSelectedAtRestDoItVector)[fAtRestDoItProcTriggered] = NotForced;
|
||||
}
|
||||
|
||||
(*fSelectedAtRestDoItVector)[fAtRestDoItProcTriggered] = NotForced;
|
||||
|
||||
fStep->SetStepLength( 0. ); //the particle has stopped
|
||||
fTrack->SetStepLength( 0. );
|
||||
|
||||
@@ -291,11 +293,13 @@ void G4SteppingManager::InvokeAtRestDoItProcs()
|
||||
fParticleChange->UpdateStepForAtRest(fStep);
|
||||
|
||||
// Now Store the secondaries from ParticleChange to SecondaryList
|
||||
G4Track* tempSecondaryTrack;
|
||||
G4Track* tempSecondaryTrack;
|
||||
G4int num2ndaries;
|
||||
|
||||
fN2ndariesAtRestDoIt = fParticleChange->GetNumberOfSecondaries();
|
||||
num2ndaries = fParticleChange->GetNumberOfSecondaries();
|
||||
fN2ndariesAtRestDoIt += num2ndaries;
|
||||
|
||||
for(G4int DSecLoop=0 ; DSecLoop< fN2ndariesAtRestDoIt; DSecLoop++){
|
||||
for(G4int DSecLoop=0 ; DSecLoop< num2ndaries; DSecLoop++){
|
||||
tempSecondaryTrack = fParticleChange->GetSecondary(DSecLoop);
|
||||
|
||||
if(tempSecondaryTrack->GetDefinition()->GetApplyCutsFlag())
|
||||
@@ -309,7 +313,7 @@ void G4SteppingManager::InvokeAtRestDoItProcs()
|
||||
|
||||
// If this 2ndry particle has 'zero' kinetic energy, make sure
|
||||
// it invokes a rest process at the beginning of the tracking
|
||||
if(tempSecondaryTrack->GetKineticEnergy() <= 0.){
|
||||
if(tempSecondaryTrack->GetKineticEnergy() <= DBL_MIN){
|
||||
G4ProcessManager* pm = tempSecondaryTrack->GetDefinition()->GetProcessManager();
|
||||
if (pm->GetAtRestProcessVector()->entries()>0){
|
||||
tempSecondaryTrack->SetTrackStatus( fStopButAlive );
|
||||
@@ -347,8 +351,6 @@ void G4SteppingManager::InvokeAlongStepDoItProcs()
|
||||
}
|
||||
|
||||
// Invoke the all active continuous processes
|
||||
fN2ndariesAlongStepDoIt = 0;
|
||||
|
||||
for( size_t ci=0 ; ci<MAXofAlongStepLoops ; ci++ ){
|
||||
fCurrentProcess = (*fAlongStepDoItVector)[ci];
|
||||
if (fCurrentProcess== NULL) continue;
|
||||
@@ -366,10 +368,12 @@ void G4SteppingManager::InvokeAlongStepDoItProcs()
|
||||
|
||||
// Now Store the secondaries from ParticleChange to SecondaryList
|
||||
G4Track* tempSecondaryTrack;
|
||||
G4int num2ndaries;
|
||||
|
||||
fN2ndariesAlongStepDoIt = fParticleChange->GetNumberOfSecondaries();
|
||||
num2ndaries = fParticleChange->GetNumberOfSecondaries();
|
||||
fN2ndariesAlongStepDoIt += num2ndaries;
|
||||
|
||||
for(G4int DSecLoop=0 ; DSecLoop< fN2ndariesAlongStepDoIt; DSecLoop++){
|
||||
for(G4int DSecLoop=0 ; DSecLoop< num2ndaries; DSecLoop++){
|
||||
tempSecondaryTrack = fParticleChange->GetSecondary(DSecLoop);
|
||||
|
||||
if(tempSecondaryTrack->GetDefinition()->GetApplyCutsFlag())
|
||||
@@ -383,7 +387,7 @@ void G4SteppingManager::InvokeAlongStepDoItProcs()
|
||||
|
||||
// If this 2ndry particle has 'zero' kinetic energy, make sure
|
||||
// it invokes a rest process at the beginning of the tracking
|
||||
if(tempSecondaryTrack->GetKineticEnergy() <= 0.){
|
||||
if(tempSecondaryTrack->GetKineticEnergy() <= DBL_MIN){
|
||||
G4ProcessManager* pm = tempSecondaryTrack->GetDefinition()->GetProcessManager();
|
||||
if (pm->GetAtRestProcessVector()->entries()>0){
|
||||
tempSecondaryTrack->SetTrackStatus( fStopButAlive );
|
||||
@@ -397,11 +401,22 @@ void G4SteppingManager::InvokeAlongStepDoItProcs()
|
||||
} //end of loop on secondary
|
||||
|
||||
// Set the track status according to what the process defined
|
||||
fTrack->SetTrackStatus( fParticleChange->GetStatusChange() );
|
||||
|
||||
// if kinetic energy >0, otherwise set fStopButAlive
|
||||
// fTrack->SetTrackStatus( fParticleChange->GetTrackStatus() );
|
||||
|
||||
// clear ParticleChange
|
||||
fParticleChange->Clear();
|
||||
}
|
||||
|
||||
fStep->UpdateTrack();
|
||||
G4TrackStatus fNewStatus = fTrack->GetTrackStatus();
|
||||
|
||||
if ( fNewStatus == fAlive && fTrack->GetKineticEnergy() <= DBL_MIN ) {
|
||||
if(MAXofAtRestLoops>0) fNewStatus = fStopButAlive;
|
||||
else fNewStatus = fStopAndKill;
|
||||
fTrack->SetTrackStatus( fNewStatus );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////
|
||||
@@ -410,8 +425,6 @@ void G4SteppingManager::InvokePostStepDoItProcs()
|
||||
{
|
||||
|
||||
// Invoke the specified discrete processes
|
||||
fN2ndariesPostStepDoIt = 0;
|
||||
|
||||
for(size_t np=0; np < MAXofPostStepLoops; np++){
|
||||
//
|
||||
// Note: DoItVector has inverse order against GetPhysIntVector
|
||||
@@ -466,14 +479,16 @@ void G4SteppingManager::InvokePSDIP(size_t np)
|
||||
|
||||
// Now Store the secondaries from ParticleChange to SecondaryList
|
||||
G4Track* tempSecondaryTrack;
|
||||
G4int num2ndaries;
|
||||
|
||||
fN2ndariesPostStepDoIt = fParticleChange->GetNumberOfSecondaries();
|
||||
num2ndaries = fParticleChange->GetNumberOfSecondaries();
|
||||
fN2ndariesPostStepDoIt += num2ndaries;
|
||||
|
||||
for(G4int DSecLoop=0 ; DSecLoop< fN2ndariesPostStepDoIt; DSecLoop++){
|
||||
for(G4int DSecLoop=0 ; DSecLoop< num2ndaries; DSecLoop++){
|
||||
tempSecondaryTrack = fParticleChange->GetSecondary(DSecLoop);
|
||||
|
||||
if(tempSecondaryTrack->GetDefinition()->GetApplyCutsFlag())
|
||||
{ ApplyProductionCut(tempSecondaryTrack); }
|
||||
|
||||
if(tempSecondaryTrack->GetDefinition()->GetApplyCutsFlag())
|
||||
{ ApplyProductionCut(tempSecondaryTrack); }
|
||||
|
||||
// Set parentID
|
||||
tempSecondaryTrack->SetParentID( fTrack->GetTrackID() );
|
||||
@@ -483,7 +498,7 @@ void G4SteppingManager::InvokePSDIP(size_t np)
|
||||
|
||||
// If this 2ndry particle has 'zero' kinetic energy, make sure
|
||||
// it invokes a rest process at the beginning of the tracking
|
||||
if(tempSecondaryTrack->GetKineticEnergy() <= 0.){
|
||||
if(tempSecondaryTrack->GetKineticEnergy() <= DBL_MIN){
|
||||
G4ProcessManager* pm = tempSecondaryTrack->GetDefinition()->GetProcessManager();
|
||||
if (pm->GetAtRestProcessVector()->entries()>0){
|
||||
tempSecondaryTrack->SetTrackStatus( fStopButAlive );
|
||||
@@ -497,7 +512,7 @@ void G4SteppingManager::InvokePSDIP(size_t np)
|
||||
} //end of loop on secondary
|
||||
|
||||
// Set the track status according to what the process defined
|
||||
fTrack->SetTrackStatus( fParticleChange->GetStatusChange() );
|
||||
fTrack->SetTrackStatus( fParticleChange->GetTrackStatus() );
|
||||
|
||||
// clear ParticleChange
|
||||
fParticleChange->Clear();
|
||||
@@ -521,7 +536,7 @@ void G4SteppingManager::ApplyProductionCut(G4Track* aSecondary)
|
||||
if( aSecondary->GetKineticEnergy()<tProdThreshold )
|
||||
{
|
||||
tBelowCutEnergyAndSafety = true;
|
||||
if(aSecondary->GetDynamicParticle()->GetCharge() !=0.0)
|
||||
if(std::abs(aSecondary->GetDynamicParticle()->GetCharge()) > DBL_MIN)
|
||||
{
|
||||
G4double currentRange
|
||||
= G4LossTableManager::Instance()->GetRange(aSecondary->GetDefinition(),
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4SteppingVerbose.cc,v 1.14 2003/06/16 17:13:20 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
// $Id: G4SteppingVerbose.cc,v 1.16 2004/07/08 03:46:43 amako Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
@@ -182,54 +182,59 @@ void G4SteppingVerbose::PostStepDoItAllDone()
|
||||
|
||||
CopyState();
|
||||
|
||||
if(fStepStatus != fPostStepDoItProc) return;
|
||||
if( (fStepStatus == fPostStepDoItProc) |
|
||||
(fCondition == Forced) |
|
||||
(fCondition == Conditionally) |
|
||||
(fCondition == ExclusivelyForced) |
|
||||
(fCondition == StronglyForced) ){
|
||||
|
||||
if(verboseLevel >= 3){
|
||||
G4int npt=0;
|
||||
G4cout << G4endl;
|
||||
G4cout << " **PostStepDoIt (after all invocations):" << G4endl;
|
||||
G4cout << " ++List of invoked processes " << G4endl;
|
||||
if(verboseLevel >= 3){
|
||||
G4int npt=0;
|
||||
G4cout << G4endl;
|
||||
G4cout << " **PostStepDoIt (after all invocations):" << G4endl;
|
||||
G4cout << " ++List of invoked processes " << G4endl;
|
||||
|
||||
for(size_t np=0; np < MAXofPostStepLoops; np++){
|
||||
size_t npGPIL = MAXofPostStepLoops-np-1;
|
||||
if( (*fSelectedPostStepDoItVector)[npGPIL] == 2){
|
||||
npt++;
|
||||
ptProcManager = (*fPostStepDoItVector)[np];
|
||||
G4cout << " " << npt << ") "
|
||||
<< ptProcManager->GetProcessName()
|
||||
<< " (Forced)" << G4endl;
|
||||
} else if ( (*fSelectedPostStepDoItVector)[npGPIL] == 1){
|
||||
npt++;
|
||||
for(size_t np=0; np < MAXofPostStepLoops; np++){
|
||||
size_t npGPIL = MAXofPostStepLoops-np-1;
|
||||
if( (*fSelectedPostStepDoItVector)[npGPIL] == 2){
|
||||
npt++;
|
||||
ptProcManager = (*fPostStepDoItVector)[np];
|
||||
G4cout << " " << npt << ") "
|
||||
<< ptProcManager->GetProcessName()
|
||||
<< " (Forced)" << G4endl;
|
||||
} else if ( (*fSelectedPostStepDoItVector)[npGPIL] == 1){
|
||||
npt++;
|
||||
ptProcManager = (*fPostStepDoItVector)[np];
|
||||
G4cout << " " << npt << ") " << ptProcManager->GetProcessName() << G4endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ShowStep();
|
||||
G4cout << G4endl;
|
||||
G4cout << " ++List of secondaries generated "
|
||||
<< "(x,y,z,kE,t,PID):"
|
||||
<< " No. of secodaries = "
|
||||
<< (*fSecondary).size() << G4endl;
|
||||
G4cout << " [Note]Secondaries from AlongStepDoIt included." << G4endl;
|
||||
ShowStep();
|
||||
G4cout << G4endl;
|
||||
G4cout << " ++List of secondaries generated "
|
||||
<< "(x,y,z,kE,t,PID):"
|
||||
<< " No. of secodaries = "
|
||||
<< (*fSecondary).size() << G4endl;
|
||||
G4cout << " [Note]Secondaries from AlongStepDoIt included." << G4endl;
|
||||
|
||||
if((*fSecondary).size()>0){
|
||||
for(size_t lp1=0; lp1<(*fSecondary).size(); lp1++){
|
||||
G4cout << " "
|
||||
<< std::setw( 9)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().x() , "Length") << " "
|
||||
<< std::setw( 9)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().y() , "Length") << " "
|
||||
<< std::setw( 9)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().z() , "Length") << " "
|
||||
<< std::setw( 9)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy() , "Energy") << " "
|
||||
<< std::setw( 9)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetGlobalTime() , "Time") << " "
|
||||
<< std::setw(18)
|
||||
<< (*fSecondary)[lp1]->GetDefinition()->GetParticleName() << G4endl;
|
||||
}
|
||||
}
|
||||
if((*fSecondary).size()>0){
|
||||
for(size_t lp1=0; lp1<(*fSecondary).size(); lp1++){
|
||||
G4cout << " "
|
||||
<< std::setw( 9)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().x() , "Length") << " "
|
||||
<< std::setw( 9)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().y() , "Length") << " "
|
||||
<< std::setw( 9)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().z() , "Length") << " "
|
||||
<< std::setw( 9)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy() , "Energy") << " "
|
||||
<< std::setw( 9)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetGlobalTime() , "Time") << " "
|
||||
<< std::setw(18)
|
||||
<< (*fSecondary)[lp1]->GetDefinition()->GetParticleName() << G4endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -238,7 +243,7 @@ void G4SteppingVerbose::StepInfo()
|
||||
/////////////////////////////////////////
|
||||
{
|
||||
CopyState();
|
||||
|
||||
G4cout.precision(16);
|
||||
G4int prec = G4cout.precision(3);
|
||||
|
||||
if( verboseLevel >= 1 ){
|
||||
@@ -491,8 +496,6 @@ void G4SteppingVerbose::PostStepDoItOneByOne()
|
||||
{
|
||||
CopyState();
|
||||
|
||||
if(fStepStatus != fPostStepDoItProc) return;
|
||||
|
||||
if(verboseLevel >= 4){
|
||||
G4cout << G4endl;
|
||||
G4cout << " >>PostStepDoIt (process by process): "
|
||||
@@ -713,7 +716,7 @@ void G4SteppingVerbose::ShowStep() const
|
||||
// Show header
|
||||
G4cout << G4endl;
|
||||
G4cout << " ++G4Step Information " << G4endl;
|
||||
G4cout.precision(3);
|
||||
G4cout.precision(16);
|
||||
|
||||
// Show G4Step specific information
|
||||
G4cout << " Address of G4Track : " << fStep->GetTrack() << G4endl;
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4TrackingManager.cc,v 1.15 2003/11/18 18:39:39 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-06-00-patch-01 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4TrackingMessenger.cc,v 1.9 2003/06/16 17:13:23 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4Trajectory.cc,v 1.24 2004/06/11 14:30:20 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-06-02 $
|
||||
// $Id: G4Trajectory.cc,v 1.25 2004/11/18 23:10:10 perl Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
// ---------------------------------------------------------------
|
||||
@@ -137,6 +137,10 @@ const std::map<G4String,G4AttDef>* G4Trajectory::GetAttDefs() const
|
||||
(*store)[IMom] = G4AttDef(IMom, "Momentum of track at start of trajectory",
|
||||
"Physics","","G4ThreeVector");
|
||||
|
||||
G4String IMag("IMag");
|
||||
(*store)[IMag] = G4AttDef(IMag, "Magnitude of momentum of track at start of trajectory",
|
||||
"Physics","","G4double");
|
||||
|
||||
G4String NTP("NTP");
|
||||
(*store)[NTP] = G4AttDef(NTP,"No. of points","Physics","","G4int");
|
||||
|
||||
@@ -173,6 +177,10 @@ std::vector<G4AttValue>* G4Trajectory::CreateAttValues() const
|
||||
s << G4BestUnit(initialMomentum,"Energy") << std::ends;
|
||||
values->push_back(G4AttValue("IMom",c,""));
|
||||
|
||||
s.seekp(std::ios::beg);
|
||||
s << initialMomentum.mag() << std::ends;
|
||||
values->push_back(G4AttValue("IMag",c,""));
|
||||
|
||||
s.seekp(std::ios::beg);
|
||||
s << GetPointEntries() << std::ends;
|
||||
values->push_back(G4AttValue("NTP",c,""));
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4TrajectoryPoint.cc,v 1.14 2004/06/11 14:30:20 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-06-02 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
// ---------------------------------------------------------------
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4UserSteppingAction.cc,v 1.6 2001/07/11 10:08:43 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
// ---------------------------------------------------------------
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4UserTrackingAction.cc,v 1.6 2001/07/11 10:08:43 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
// ---------------------------------------------------------------
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4VSteppingVerbose.cc,v 1.9 2002/12/04 23:00:51 tsasaki Exp $
|
||||
// GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
// $Id: G4VSteppingVerbose.cc,v 1.10 2004/11/10 11:23:27 tsasaki Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
@@ -44,7 +44,9 @@
|
||||
#include "G4SteppingManager.hh"
|
||||
|
||||
G4VSteppingVerbose* G4VSteppingVerbose::fInstance = 0;
|
||||
G4VSteppingVerbose::G4VSteppingVerbose() :verboseLevel(0){;}
|
||||
G4VSteppingVerbose::G4VSteppingVerbose() :verboseLevel(0){
|
||||
if(fInstance!= NULL) G4Exception("G4SteppingVerbose is the singleton. Only one SteppingVerbose class can be instantiated.");
|
||||
}
|
||||
G4VSteppingVerbose::~G4VSteppingVerbose(){;}
|
||||
void G4VSteppingVerbose::SetInstance(G4VSteppingVerbose* Instance)
|
||||
{
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4VTrajectory.cc,v 1.4 2003/06/16 17:13:26 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
// $Id: G4VTrajectory.cc,v 1.6 2004/12/07 09:16:54 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-03 $
|
||||
//
|
||||
//
|
||||
// ---------------------------------------------------------------
|
||||
@@ -48,6 +48,14 @@
|
||||
#include "G4Polymarker.hh"
|
||||
#include "G4Colour.hh"
|
||||
|
||||
G4VTrajectory::G4VTrajectory() {;}
|
||||
G4VTrajectory::~G4VTrajectory() {;}
|
||||
|
||||
G4bool G4VTrajectory::operator == (const G4VTrajectory& right) const
|
||||
{
|
||||
return (this==&right);
|
||||
}
|
||||
|
||||
void G4VTrajectory::ShowTrajectory(std::ostream& os) const
|
||||
{
|
||||
// Makes use of attribute values implemented in the concrete class.
|
||||
@@ -137,13 +145,13 @@ void G4VTrajectory::DrawTrajectory(G4int i_mode) const
|
||||
// positive, red for negative, green for neutral) and, if i_mode!=0,
|
||||
// adds markers - yellow circles for step points and magenta squares
|
||||
// for auxiliary points, if any - whose screen size in pixels is
|
||||
// given by abs(i_mode)/1000. E.g: i_mode = 5000 gives easily
|
||||
// given by std::abs(i_mode)/1000. E.g: i_mode = 5000 gives easily
|
||||
// visible markers.
|
||||
|
||||
G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance();
|
||||
if (!pVVisManager) return;
|
||||
|
||||
const G4double markerSize = abs(i_mode)/1000;
|
||||
const G4double markerSize = std::abs(i_mode)/1000;
|
||||
G4bool lineRequired (i_mode >= 0);
|
||||
G4bool markersRequired (markerSize > 0.);
|
||||
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4VTrajectoryPoint.cc,v 1.1 2004/07/05 17:08:16 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
//
|
||||
// G4VTrajectoryPoint.cc
|
||||
//
|
||||
// ---------------------------------------------------------------
|
||||
|
||||
#include "G4VTrajectoryPoint.hh"
|
||||
|
||||
G4VTrajectoryPoint::G4VTrajectoryPoint() {;}
|
||||
G4VTrajectoryPoint::~G4VTrajectoryPoint() {;}
|
||||
|
||||
G4bool G4VTrajectoryPoint::operator==(const G4VTrajectoryPoint& right) const
|
||||
{
|
||||
return (this==&right);
|
||||
}
|
||||
Reference in New Issue
Block a user