Import Geant4 2.0.0 source tree
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# $Id: GNUmakefile,v 1.1 1999/01/07 16:14:19 gunter Exp $
|
||||
# $Id: GNUmakefile,v 1.2 2000/01/31 09:18:39 gcosmo Exp $
|
||||
# ----------------------------------------------------------
|
||||
# GNUmakefile for track library. Gabriele Cosmo, 3/4/1997.
|
||||
# ----------------------------------------------------------
|
||||
@@ -15,7 +15,6 @@ CPPFLAGS += \
|
||||
-I$(G4BASE)/global/management/include \
|
||||
-I$(G4BASE)/global/HEPRandom/include \
|
||||
-I$(G4BASE)/global/HEPGeometry/include \
|
||||
-I$(G4BASE)/processes/management/include \
|
||||
-I$(G4BASE)/intercoms/include \
|
||||
-I$(G4BASE)/particles/management/include \
|
||||
-I$(G4BASE)/materials/include \
|
||||
|
||||
+25
-1
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 1.14 2000/01/18 02:54:07 kurasige Exp $
|
||||
$Id: History,v 1.21 2000/06/02 10:24:58 kurasige Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -16,6 +16,30 @@ committal in the CVS repository !
|
||||
----------------------------------------------------------
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
June 2, 2000 M.Asai (track-V01-01-02)
|
||||
- Add G4VUserTrackInformation class and its pointer data member in G4Track
|
||||
- Add "const" to pointer to G4Step in G4Track (Hisaya)
|
||||
|
||||
June 1 2000 H.Kurashige (track-V01-01-01a)
|
||||
- Removed "const" from the return value type of G4StepPoint::GetPhysicalVolume()
|
||||
|
||||
May 16 2000 H.Kurashige (track-V01-01-01)
|
||||
- Added thePolarizationChange in G4ParticleChangeForTransportation
|
||||
|
||||
May 12 2000 H.Kurashige (track-V01-01-00)
|
||||
- SetTouchable methods has been changed to get "const" pointer
|
||||
|
||||
Feb. 16, 2000 H.Kurashige
|
||||
- Added cashing mechanism of pointer to material in G4StepPoint
|
||||
- Added theMaterialChange in G4ParticleChangeForTransportation
|
||||
- GetTouchable methods has been changed to give "const" pointer
|
||||
|
||||
Feb 13, 2000 H.Kurashige (track-V01-00-01)
|
||||
- Added G4ParticleChangeForRadDecay
|
||||
- Changed G4VParticleChange::AddSecondary to set secondary track weight equal to the primary's one
|
||||
- Removed printing pointers of ParticleChange object in CheckIt methods
|
||||
|
||||
Jan 18, 2000 H.Kurashige (track-V01-00-00)
|
||||
- Fixed bugs in treatment of secondary track weight
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4EvtBiasMechanism.hh,v 1.3 1999/11/07 16:31:57 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ForceCondition.hh,v 1.2 1999/11/07 16:31:57 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4GPILSelection.hh,v 1.2 1999/11/07 16:31:58 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4Mars5GeVMechanism.hh,v 1.3 1999/11/07 16:31:58 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ParticleChange.hh,v 1.5 1999/11/07 16:31:59 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// $Id: G4ParticleChange.hh,v 1.6 2000/02/13 15:08:20 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
@@ -152,7 +152,6 @@ class G4ParticleChange: public G4VParticleChange
|
||||
G4double GetWeightChange() const;
|
||||
void SetWeightChange(G4double w);
|
||||
// Get/Set theWeightChange
|
||||
// these methods are valid if fUseEB is true;
|
||||
|
||||
// -- Utility functions --
|
||||
G4ThreeVector GetGlobalPosition(const G4ThreeVector& displacement) const;
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ParticleChange.icc,v 1.6 2000/01/18 02:54:12 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// $Id: G4ParticleChange.icc,v 1.7 2000/02/13 15:08:20 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
inline
|
||||
@@ -191,6 +191,7 @@ inline
|
||||
void G4ParticleChange::SetWeightChange(G4double w)
|
||||
{
|
||||
theWeightChange = w;
|
||||
theParentWeight = w;
|
||||
}
|
||||
|
||||
inline
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ParticleChangeForDecay.hh,v 1.4 1999/11/07 16:31:59 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ParticleChangeForLoss.hh,v 1.3 1999/11/07 16:32:00 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ParticleChangeForMSC.icc,v 1.3 1999/12/15 14:53:55 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
// 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: G4ParticleChangeForRadDecay.hh,v 1.2 2000/02/13 15:08:20 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, CN Division, ASD group
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
// Implemented for the new scheme 25 Jan. 2000 H.Kurahige
|
||||
//
|
||||
// Class Description
|
||||
// This class is a concrete class for ParticleChange for RadDecay
|
||||
//
|
||||
#ifndef G4ParticleChangeForRadDecay_h
|
||||
#define G4ParticleChangeForRadDecay_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
class G4VTouchable;
|
||||
#include "G4ParticleChange.hh"
|
||||
|
||||
class G4ParticleChangeForRadDecay: public G4ParticleChange
|
||||
{
|
||||
public:
|
||||
// default constructor
|
||||
G4ParticleChangeForRadDecay(){}
|
||||
|
||||
// destructor
|
||||
virtual ~G4ParticleChangeForRadDecay(){}
|
||||
|
||||
protected:
|
||||
// hide copy constructor and assignment operaor as protected
|
||||
G4ParticleChangeForRadDecay(const G4ParticleChangeForRadDecay &right){}
|
||||
G4ParticleChangeForRadDecay & operator=(const G4ParticleChangeForRadDecay &right){}
|
||||
|
||||
public: // with description
|
||||
void AddSecondary(G4Track* aSecondary);
|
||||
// Add a secondary particle to theListOfSecondaries.
|
||||
// ------------------------------------------------------
|
||||
|
||||
|
||||
};
|
||||
|
||||
inline void G4ParticleChangeForRadDecay::AddSecondary(G4Track *aTrack)
|
||||
{
|
||||
// add a secondary after size check
|
||||
if (theSizeOftheListOfSecondaries > theNumberOfSecondaries) {
|
||||
theListOfSecondaries->SetElement(theNumberOfSecondaries, aTrack);
|
||||
theNumberOfSecondaries++;
|
||||
} else {
|
||||
#ifdef G4VERBOSE
|
||||
if (verboseLevel>0) {
|
||||
G4cerr << "G4VParticleChange::AddSecondary() Warning ";
|
||||
G4cerr << "theListOfSecondaries is full !! " << G4endl;
|
||||
G4cerr << " The object will not be added in theListOfSecondaries" << G4endl;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ParticleChangeForTransport.hh,v 1.2 1999/11/07 16:32:01 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// $Id: G4ParticleChangeForTransport.hh,v 1.5 2000/05/16 00:34:27 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
@@ -17,6 +17,7 @@
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
// Implemented for the new scheme 10 May. 1998 H.Kurahige
|
||||
// Added theMaterialChange 16 FEb. 2000 H.Kurahige
|
||||
//
|
||||
// Class Description
|
||||
// This class is a concrete class for ParticleChange for transportation
|
||||
@@ -64,11 +65,20 @@ class G4ParticleChangeForTransport: public G4ParticleChange
|
||||
// "Change", what it stores (and returns in get) are the "FINAL"
|
||||
// values of the Position, Momentum, etc.
|
||||
|
||||
G4VTouchable* GetTouchableChange() const;
|
||||
void SetTouchableChange(G4VTouchable* fTouchable);
|
||||
const G4VTouchable* GetTouchableChange() const;
|
||||
void SetTouchableChange(const G4VTouchable* fTouchable);
|
||||
// Get/Set the touchable of the current particle.
|
||||
// Note: Touchable in PostStepPoint will be updated only after PostStepDoIt
|
||||
|
||||
G4Material* GetMaterialChange() const;
|
||||
void SetMaterialChange(G4Material* fMaterial);
|
||||
// Get/Set the material in the touchable of the current particle.
|
||||
|
||||
const G4ThreeVector* GetPolarizationChange() const;
|
||||
void SetPolarizationChange(G4double Px, G4double Py, G4double Pz);
|
||||
void SetPolarizationChange(const G4ThreeVector& finalPoralization);
|
||||
// Get/Set thePolarizationChange vector.
|
||||
|
||||
G4bool GetMomentumChanged() const;
|
||||
void SetMomentumChanged(G4bool b);
|
||||
|
||||
@@ -76,12 +86,16 @@ class G4ParticleChangeForTransport: public G4ParticleChange
|
||||
virtual void DumpInfo() const;
|
||||
|
||||
protected:
|
||||
G4VTouchable* theTouchableChange;
|
||||
const G4VTouchable* theTouchableChange;
|
||||
// The changed touchable of a given particle.
|
||||
|
||||
private:
|
||||
G4bool isMomentumChanged;
|
||||
|
||||
G4bool isMomentumChanged;
|
||||
// The flag which is set if mometum is changed in this stepi
|
||||
G4Material* theMaterialChange;
|
||||
// The material where given track currently locates
|
||||
G4ThreeVector thePolarizationChange;
|
||||
// The changed (final) polarization of a given track
|
||||
};
|
||||
|
||||
#include "G4ParticleChangeForTransport.icc"
|
||||
|
||||
@@ -5,23 +5,35 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ParticleChangeForTransport.icc,v 1.2 1999/12/15 14:53:55 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// $Id: G4ParticleChangeForTransport.icc,v 1.5 2000/05/16 00:34:27 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
|
||||
inline
|
||||
void G4ParticleChangeForTransport::SetTouchableChange(G4VTouchable* fTouchable)
|
||||
void G4ParticleChangeForTransport::SetTouchableChange(const G4VTouchable* fTouchable)
|
||||
{
|
||||
theTouchableChange = fTouchable;
|
||||
}
|
||||
|
||||
inline
|
||||
G4VTouchable* G4ParticleChangeForTransport::GetTouchableChange() const
|
||||
const G4VTouchable* G4ParticleChangeForTransport::GetTouchableChange() const
|
||||
{
|
||||
return theTouchableChange;
|
||||
}
|
||||
|
||||
inline
|
||||
void G4ParticleChangeForTransport::SetMaterialChange(G4Material* fMaterial)
|
||||
{
|
||||
theMaterialChange = fMaterial;
|
||||
}
|
||||
|
||||
inline
|
||||
G4Material* G4ParticleChangeForTransport::GetMaterialChange() const
|
||||
{
|
||||
return theMaterialChange;
|
||||
}
|
||||
|
||||
inline
|
||||
G4bool G4ParticleChangeForTransport::GetMomentumChanged() const
|
||||
{
|
||||
@@ -48,10 +60,10 @@ inline void G4ParticleChangeForTransport::Initialize(const G4Track& track)
|
||||
// InitializeSecondaries(track);
|
||||
|
||||
// set Energy/Momentum etc. equal to those of the parent particle
|
||||
// const G4DynamicParticle* pParticle = track.GetDynamicParticle();
|
||||
const G4DynamicParticle* pParticle = track.GetDynamicParticle();
|
||||
// theEnergyChange = pParticle->GetKineticEnergy();
|
||||
// theMomentumChange = pParticle->GetMomentumDirection();
|
||||
// thePolarizationChange = pParticle->GetPolarization();
|
||||
thePolarizationChange = pParticle->GetPolarization();
|
||||
// theProperTimeChange = pParticle->GetProperTime();
|
||||
|
||||
// set Position/Time etc. equal to those of the parent track
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4Step.hh,v 1.7 1999/12/15 14:53:55 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4Step.icc,v 1.1 1999/10/06 01:21:48 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// $Id: G4Step.icc,v 1.2 2000/02/16 16:10:04 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
@@ -119,7 +119,6 @@ inline
|
||||
inline
|
||||
void G4Step::CopyPostToPreStepPoint( )
|
||||
{
|
||||
// Default equal operator is used for copy
|
||||
*(fpPreStepPoint) = *(fpPostStepPoint);
|
||||
}
|
||||
|
||||
@@ -164,6 +163,7 @@ inline
|
||||
fpPreStepPoint->SetMomentumDirection(fpTrack->GetMomentumDirection());
|
||||
fpPreStepPoint->SetKineticEnergy(fpTrack->GetKineticEnergy());
|
||||
fpPreStepPoint->SetTouchable(fpTrack->GetTouchable());
|
||||
fpPreStepPoint->SetMaterial( fpTrack->GetTouchable()->GetVolume()->GetLogicalVolume()->GetMaterial());
|
||||
fpPreStepPoint->SetPolarization(fpTrack->GetPolarization());
|
||||
fpPreStepPoint->SetSafety(0.);
|
||||
fpPreStepPoint->SetStepStatus(fUndefined);
|
||||
@@ -171,6 +171,7 @@ inline
|
||||
fpPreStepPoint->SetMass(fpTrack->GetDynamicParticle()->GetMass());
|
||||
fpPreStepPoint->SetWeight(fpTrack->GetWeight());
|
||||
|
||||
|
||||
(*fpPostStepPoint) = (*fpPreStepPoint);
|
||||
}
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4StepPoint.hh,v 1.4 1999/11/07 16:32:02 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// $Id: G4StepPoint.hh,v 1.6 2000/06/01 02:28:57 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
@@ -24,6 +24,7 @@
|
||||
// Takashi Sasaki (e-mail: Takashi.Sasaki@kek.jp)
|
||||
//
|
||||
// ---------------------------------------------------------------
|
||||
// Added fpMaterial 16 FEb. 2000 H.Kurahige
|
||||
|
||||
#ifndef G4StepPoint_h
|
||||
#define G4StepPoint_h 1
|
||||
@@ -50,90 +51,51 @@ class G4StepPoint
|
||||
|
||||
// Constructor/Destructor
|
||||
G4StepPoint();
|
||||
~G4StepPoint();
|
||||
|
||||
~G4StepPoint(){};
|
||||
|
||||
//--------
|
||||
public: // with description
|
||||
|
||||
public: // with description
|
||||
|
||||
// Get/Set functions
|
||||
inline const G4ThreeVector& GetPosition() const
|
||||
{ return fPosition; }
|
||||
inline void SetPosition(const G4ThreeVector& aValue)
|
||||
{ fPosition = aValue; }
|
||||
inline void AddPosition(const G4ThreeVector& aValue)
|
||||
{ fPosition += aValue; }
|
||||
// Position where the track locates
|
||||
|
||||
inline G4double GetLocalTime() const
|
||||
{ return fLocalTime; }
|
||||
inline void SetLocalTime(const G4double aValue)
|
||||
{ fLocalTime = aValue; }
|
||||
inline void AddLocalTime(const G4double aValue)
|
||||
{ fLocalTime += aValue; }
|
||||
const G4ThreeVector& GetPosition() const;
|
||||
void SetPosition(const G4ThreeVector& aValue);
|
||||
void AddPosition(const G4ThreeVector& aValue);
|
||||
|
||||
G4double GetLocalTime() const;
|
||||
void SetLocalTime(const G4double aValue);
|
||||
void AddLocalTime(const G4double aValue);
|
||||
// Time since the track is created.
|
||||
|
||||
inline G4double GetGlobalTime() const
|
||||
{ return fGlobalTime; }
|
||||
inline void SetGlobalTime(const G4double aValue)
|
||||
{ fGlobalTime = aValue; }
|
||||
inline void AddGlobalTime(const G4double aValue)
|
||||
{ fGlobalTime += aValue; }
|
||||
G4double GetGlobalTime() const;
|
||||
void SetGlobalTime(const G4double aValue);
|
||||
void AddGlobalTime(const G4double aValue);
|
||||
// Time since the event in which the track belongs is created.
|
||||
|
||||
inline G4double GetProperTime() const
|
||||
{ return fProperTime; }
|
||||
inline void SetProperTime(const G4double aValue)
|
||||
{ fProperTime = aValue; }
|
||||
inline void AddProperTime(const G4double aValue)
|
||||
{ fProperTime += aValue; }
|
||||
G4double GetProperTime() const;
|
||||
void SetProperTime(const G4double aValue);
|
||||
void AddProperTime(const G4double aValue);
|
||||
// Proper time of the particle.
|
||||
|
||||
inline const G4ThreeVector& GetMomentumDirection() const
|
||||
{ return fMomentumDirection; }
|
||||
inline void SetMomentumDirection(const G4ThreeVector& aValue)
|
||||
{ fMomentumDirection = aValue;
|
||||
}
|
||||
inline void AddMomentumDirection(const G4ThreeVector& aValue)
|
||||
{ fMomentumDirection += aValue;
|
||||
}
|
||||
const G4ThreeVector& GetMomentumDirection() const;
|
||||
void SetMomentumDirection(const G4ThreeVector& aValue);
|
||||
void AddMomentumDirection(const G4ThreeVector& aValue);
|
||||
// Direction of momentum (should be an unit vector)
|
||||
|
||||
inline G4ThreeVector GetMomentum() const
|
||||
{
|
||||
G4double tMomentum = sqrt(fKineticEnergy*fKineticEnergy +
|
||||
2*fKineticEnergy*fMass);
|
||||
return G4ThreeVector(fMomentumDirection.x()*tMomentum,
|
||||
fMomentumDirection.y()*tMomentum,
|
||||
fMomentumDirection.z()*tMomentum);
|
||||
}
|
||||
// Total momentum of the track
|
||||
G4ThreeVector GetMomentum() const;
|
||||
// Total momentum of the track
|
||||
|
||||
inline G4double GetTotalEnergy() const
|
||||
{
|
||||
return fKineticEnergy + fMass;
|
||||
}
|
||||
|
||||
G4double GetTotalEnergy() const;
|
||||
// Total energy of the track
|
||||
|
||||
inline G4double GetKineticEnergy() const
|
||||
{ return fKineticEnergy; }
|
||||
inline void SetKineticEnergy(const G4double aValue)
|
||||
{ fKineticEnergy = aValue; }
|
||||
inline void AddKineticEnergy(const G4double aValue)
|
||||
{ fKineticEnergy += aValue; }
|
||||
G4double GetKineticEnergy() const;
|
||||
void SetKineticEnergy(const G4double aValue);
|
||||
void AddKineticEnergy(const G4double aValue);
|
||||
// Kinetic Energy of the track
|
||||
|
||||
inline G4double GetVelocity() const
|
||||
{
|
||||
if(fMass==0.){
|
||||
return c_light;
|
||||
}
|
||||
else{
|
||||
G4double tMomentum = sqrt(fKineticEnergy*fKineticEnergy +
|
||||
2.0*fKineticEnergy*fMass);
|
||||
G4double tTotalEnergy = fKineticEnergy + fMass;
|
||||
return tMomentum/tTotalEnergy*c_light;
|
||||
}
|
||||
}
|
||||
G4double GetVelocity() const;
|
||||
// This velocity is the velocity as if in vacuum.
|
||||
// (So it is not corrected for the refraction index
|
||||
// in the case of photons - optical or X-rays.)
|
||||
@@ -141,68 +103,51 @@ class G4StepPoint
|
||||
// GetVelocity of G4Track.
|
||||
//
|
||||
|
||||
inline G4double GetBeta() const
|
||||
{ return (fMass==0.) ?
|
||||
1.0 :
|
||||
sqrt(fKineticEnergy*fKineticEnergy + 2.0*fKineticEnergy*fMass)
|
||||
/(fKineticEnergy+fMass); }
|
||||
G4double GetBeta() const;
|
||||
// Velocity of the track in unit of c(light velocity)
|
||||
|
||||
inline G4double GetGamma() const
|
||||
{ return (fMass==0.) ? DBL_MAX : (fKineticEnergy+fMass)/fMass; }
|
||||
G4double GetGamma() const;
|
||||
// Gamma factor (1/sqrt[1-beta*beta]) of the track
|
||||
|
||||
inline G4VPhysicalVolume* GetPhysicalVolume()
|
||||
{ return fpTouchable->GetVolume(); }
|
||||
G4VPhysicalVolume* GetPhysicalVolume() const;
|
||||
|
||||
inline G4VTouchable* GetTouchable() const
|
||||
{ return fpTouchable; }
|
||||
inline void SetTouchable(G4VTouchable* apValue)
|
||||
{ fpTouchable = apValue; }
|
||||
const G4VTouchable* GetTouchable() const;
|
||||
void SetTouchable(const G4VTouchable* apValue);
|
||||
|
||||
inline G4double GetSafety() const
|
||||
{ return fSafety; }
|
||||
inline void SetSafety(const G4double aValue)
|
||||
{ fSafety = aValue; }
|
||||
G4Material* GetMaterial() const;
|
||||
void SetMaterial(G4Material*);
|
||||
|
||||
inline const G4ThreeVector& GetPolarization() const
|
||||
{ return fPolarization; }
|
||||
inline void SetPolarization(const G4ThreeVector& aValue)
|
||||
{ fPolarization = aValue; }
|
||||
inline void AddPolarization(const G4ThreeVector& aValue)
|
||||
{ fPolarization += aValue; }
|
||||
G4double GetSafety() const;
|
||||
void SetSafety(const G4double aValue);
|
||||
|
||||
inline G4StepStatus GetStepStatus() const
|
||||
{ return fStepStatus; }
|
||||
inline void SetStepStatus(const G4StepStatus aValue)
|
||||
{ fStepStatus = aValue; }
|
||||
const G4ThreeVector& GetPolarization() const;
|
||||
void SetPolarization(const G4ThreeVector& aValue);
|
||||
void AddPolarization(const G4ThreeVector& aValue);
|
||||
|
||||
inline const G4VProcess* GetProcessDefinedStep() const
|
||||
{ return fpProcessDefinedStep; }
|
||||
G4StepStatus GetStepStatus() const;
|
||||
void SetStepStatus(const G4StepStatus aValue);
|
||||
|
||||
const G4VProcess* GetProcessDefinedStep() const;
|
||||
// If the pointer is 0, this means the Step is defined
|
||||
// by the user defined limit in the current volume.
|
||||
inline void SetProcessDefinedStep(G4VProcess* aValue)
|
||||
{ fpProcessDefinedStep = aValue; }
|
||||
void SetProcessDefinedStep(G4VProcess* aValue);
|
||||
|
||||
inline G4double GetMass() const
|
||||
{ return fMass; }
|
||||
inline void SetMass(G4double value)
|
||||
{ fMass = value; }
|
||||
|
||||
G4double GetMass() const;
|
||||
void SetMass(G4double value);
|
||||
|
||||
inline G4double GetCharge() const
|
||||
{ return fCharge; }
|
||||
inline void SetCharge(G4double value)
|
||||
{ fCharge = value; }
|
||||
G4double GetCharge() const;
|
||||
void SetCharge(G4double value);
|
||||
|
||||
inline G4Material* GetMaterial()
|
||||
{ return fpTouchable->GetVolume()->GetLogicalVolume()->GetMaterial(); }
|
||||
|
||||
inline void SetWeight(G4double aValue)
|
||||
{ fWeight = aValue; }
|
||||
inline G4double GetWeight() const
|
||||
{ return fWeight; }
|
||||
void SetWeight(G4double aValue);
|
||||
G4double GetWeight() const;
|
||||
|
||||
public:
|
||||
// copy constructor and assignment operaor as protected
|
||||
G4StepPoint(const G4StepPoint &right);
|
||||
G4StepPoint & operator=(const G4StepPoint &right);
|
||||
|
||||
|
||||
|
||||
//---------
|
||||
private:
|
||||
@@ -218,7 +163,9 @@ class G4StepPoint
|
||||
// Time since track is created (in rest frame of particle)
|
||||
G4ThreeVector fMomentumDirection;
|
||||
G4double fKineticEnergy;
|
||||
G4VTouchable* fpTouchable;
|
||||
const G4VTouchable* fpTouchable;
|
||||
G4Material* fpMaterial;
|
||||
// Material of the volmue
|
||||
G4double fSafety;
|
||||
G4ThreeVector fPolarization;
|
||||
G4StepStatus fStepStatus;
|
||||
@@ -230,8 +177,9 @@ class G4StepPoint
|
||||
G4double fCharge;
|
||||
// Dynamical Charge of the particle
|
||||
G4double fWeight;
|
||||
// Track Weight
|
||||
};
|
||||
|
||||
|
||||
#include "G4StepPoint.icc"
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,158 @@
|
||||
// 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: G4StepPoint.icc,v 1.2 2000/06/01 02:28:57 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
inline const G4ThreeVector& G4StepPoint::GetPosition() const
|
||||
{ return fPosition; }
|
||||
inline void G4StepPoint::SetPosition(const G4ThreeVector& aValue)
|
||||
{ fPosition = aValue; }
|
||||
inline void G4StepPoint::AddPosition(const G4ThreeVector& aValue)
|
||||
{ fPosition += aValue; }
|
||||
// Position where the track locates
|
||||
|
||||
inline G4double G4StepPoint::GetLocalTime() const
|
||||
{ return fLocalTime; }
|
||||
inline void G4StepPoint::SetLocalTime(const G4double aValue)
|
||||
{ fLocalTime = aValue; }
|
||||
inline void G4StepPoint::AddLocalTime(const G4double aValue)
|
||||
{ fLocalTime += aValue; }
|
||||
// Time since the track is created.
|
||||
|
||||
inline G4double G4StepPoint::GetGlobalTime() const
|
||||
{ return fGlobalTime; }
|
||||
inline void G4StepPoint::SetGlobalTime(const G4double aValue)
|
||||
{ fGlobalTime = aValue; }
|
||||
inline void G4StepPoint::AddGlobalTime(const G4double aValue)
|
||||
{ fGlobalTime += aValue; }
|
||||
// Time since the event in which the track belongs is created.
|
||||
|
||||
inline G4double G4StepPoint::GetProperTime() const
|
||||
{ return fProperTime; }
|
||||
inline void G4StepPoint::SetProperTime(const G4double aValue)
|
||||
{ fProperTime = aValue; }
|
||||
inline void G4StepPoint::AddProperTime(const G4double aValue)
|
||||
{ fProperTime += aValue; }
|
||||
// Proper time of the particle.
|
||||
|
||||
inline const G4ThreeVector& G4StepPoint::GetMomentumDirection() const
|
||||
{ return fMomentumDirection; }
|
||||
inline void G4StepPoint::SetMomentumDirection(const G4ThreeVector& aValue)
|
||||
{ fMomentumDirection = aValue;
|
||||
}
|
||||
inline void G4StepPoint::AddMomentumDirection(const G4ThreeVector& aValue)
|
||||
{ fMomentumDirection += aValue;
|
||||
}
|
||||
// Direction of momentum (should be an unit vector)
|
||||
|
||||
inline G4ThreeVector G4StepPoint::GetMomentum() const
|
||||
{
|
||||
G4double tMomentum = sqrt(fKineticEnergy*fKineticEnergy +
|
||||
2*fKineticEnergy*fMass);
|
||||
return G4ThreeVector(fMomentumDirection.x()*tMomentum,
|
||||
fMomentumDirection.y()*tMomentum,
|
||||
fMomentumDirection.z()*tMomentum);
|
||||
}
|
||||
// Total momentum of the track
|
||||
|
||||
inline G4double G4StepPoint::GetTotalEnergy() const
|
||||
{
|
||||
return fKineticEnergy + fMass;
|
||||
}
|
||||
// Total energy of the track
|
||||
|
||||
inline G4double G4StepPoint::GetKineticEnergy() const
|
||||
{ return fKineticEnergy; }
|
||||
inline void G4StepPoint::SetKineticEnergy(const G4double aValue)
|
||||
{ fKineticEnergy = aValue; }
|
||||
inline void G4StepPoint::AddKineticEnergy(const G4double aValue)
|
||||
{ fKineticEnergy += aValue; }
|
||||
// Kinetic Energy of the track
|
||||
|
||||
inline G4double G4StepPoint::GetVelocity() const
|
||||
{
|
||||
if(fMass==0.){
|
||||
return c_light;
|
||||
}
|
||||
else{
|
||||
G4double tMomentum = sqrt(fKineticEnergy*fKineticEnergy +
|
||||
2.0*fKineticEnergy*fMass);
|
||||
G4double tTotalEnergy = fKineticEnergy + fMass;
|
||||
return tMomentum/tTotalEnergy*c_light;
|
||||
}
|
||||
}
|
||||
// This velocity is the velocity as if in vacuum.
|
||||
// (So it is not corrected for the refraction index
|
||||
// in the case of photons - optical or X-rays.)
|
||||
// In order to get the velocity in the material, use
|
||||
// GetVelocity of G4Track.
|
||||
//
|
||||
|
||||
inline G4double G4StepPoint::GetBeta() const
|
||||
{ return (fMass==0.) ?
|
||||
1.0 :
|
||||
sqrt(fKineticEnergy*fKineticEnergy + 2.0*fKineticEnergy*fMass)
|
||||
/(fKineticEnergy+fMass); }
|
||||
// Velocity of the track in unit of c(light velocity)
|
||||
|
||||
inline G4double G4StepPoint::GetGamma() const
|
||||
{ return (fMass==0.) ? DBL_MAX : (fKineticEnergy+fMass)/fMass; }
|
||||
// Gamma factor (1/sqrt[1-beta*beta]) of the track
|
||||
|
||||
inline G4VPhysicalVolume* G4StepPoint::GetPhysicalVolume() const
|
||||
{ return fpTouchable->GetVolume(); }
|
||||
|
||||
inline const G4VTouchable* G4StepPoint::GetTouchable() const
|
||||
{ return fpTouchable; }
|
||||
inline void G4StepPoint::SetTouchable(const G4VTouchable* apValue)
|
||||
{ fpTouchable = apValue; }
|
||||
|
||||
inline G4double G4StepPoint::GetSafety() const
|
||||
{ return fSafety; }
|
||||
inline void G4StepPoint::SetSafety(const G4double aValue)
|
||||
{ fSafety = aValue; }
|
||||
|
||||
inline const G4ThreeVector& G4StepPoint::GetPolarization() const
|
||||
{ return fPolarization; }
|
||||
inline void G4StepPoint::SetPolarization(const G4ThreeVector& aValue)
|
||||
{ fPolarization = aValue; }
|
||||
inline void G4StepPoint::AddPolarization(const G4ThreeVector& aValue)
|
||||
{ fPolarization += aValue; }
|
||||
|
||||
inline G4StepStatus G4StepPoint::GetStepStatus() const
|
||||
{ return fStepStatus; }
|
||||
inline void G4StepPoint::SetStepStatus(const G4StepStatus aValue)
|
||||
{ fStepStatus = aValue; }
|
||||
|
||||
inline const G4VProcess* G4StepPoint::GetProcessDefinedStep() const
|
||||
{ return fpProcessDefinedStep; }
|
||||
// If the pointer is 0, this means the Step is defined
|
||||
// by the user defined limit in the current volume.
|
||||
inline void G4StepPoint::SetProcessDefinedStep(G4VProcess* aValue)
|
||||
{ fpProcessDefinedStep = aValue; }
|
||||
|
||||
inline G4double G4StepPoint::GetMass() const
|
||||
{ return fMass; }
|
||||
inline void G4StepPoint::SetMass(G4double value)
|
||||
{ fMass = value; }
|
||||
|
||||
inline G4double G4StepPoint::GetCharge() const
|
||||
{ return fCharge; }
|
||||
inline void G4StepPoint::SetCharge(G4double value)
|
||||
{ fCharge = value; }
|
||||
|
||||
inline G4Material* G4StepPoint::GetMaterial() const
|
||||
{ return fpMaterial; }
|
||||
inline void G4StepPoint::SetMaterial(G4Material* material)
|
||||
{fpMaterial = material; }
|
||||
|
||||
inline void G4StepPoint::SetWeight(G4double aValue)
|
||||
{ fWeight = aValue; }
|
||||
inline G4double G4StepPoint::GetWeight() const
|
||||
{ return fWeight; }
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4StepStatus.hh,v 1.2 1999/11/07 16:32:02 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4SteppingControl.hh,v 1.2 1999/11/07 16:32:03 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4Track.hh,v 1.5 1999/11/07 16:32:03 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// $Id: G4Track.hh,v 1.8 2000/06/02 10:16:38 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
@@ -39,6 +39,7 @@
|
||||
#include "G4DynamicParticle.hh" // Include from 'particle+matter'
|
||||
#include "G4TrackStatus.hh" // Include from 'tracking'
|
||||
#include "G4VTouchable.hh" // Include from 'geometry'
|
||||
#include "G4VUserTrackInformation.hh"
|
||||
|
||||
#include "G4Material.hh"
|
||||
|
||||
@@ -115,11 +116,11 @@ public: // With description
|
||||
G4Material* GetMaterial() const;
|
||||
G4Material* GetNextMaterial() const;
|
||||
|
||||
G4VTouchable* GetTouchable() const;
|
||||
void SetTouchable(G4VTouchable* apValue);
|
||||
const G4VTouchable* GetTouchable() const;
|
||||
void SetTouchable(const G4VTouchable* apValue);
|
||||
|
||||
G4VTouchable* GetNextTouchable() const;
|
||||
void SetNextTouchable(G4VTouchable* apValue);
|
||||
const G4VTouchable* GetNextTouchable() const;
|
||||
void SetNextTouchable(const G4VTouchable* apValue);
|
||||
|
||||
// energy
|
||||
G4double GetKineticEnergy() const;
|
||||
@@ -163,8 +164,8 @@ public: // With description
|
||||
// Accumulated the track length
|
||||
|
||||
// step information
|
||||
G4Step* GetStep() const;
|
||||
void SetStep(G4Step* aValue);
|
||||
const G4Step* GetStep() const;
|
||||
void SetStep(const G4Step* aValue);
|
||||
|
||||
G4int GetCurrentStepNumber() const;
|
||||
void IncrementCurrentStepNumber();
|
||||
@@ -200,6 +201,10 @@ public: // With description
|
||||
G4double GetWeight() const;
|
||||
void SetWeight(G4double aValue);
|
||||
|
||||
// User information
|
||||
G4VUserTrackInformation* GetUserInformation() const;
|
||||
void SetUserInformation(G4VUserTrackInformation* aValue);
|
||||
|
||||
//---------
|
||||
private:
|
||||
//---------
|
||||
@@ -213,8 +218,8 @@ public: // With description
|
||||
G4int fParentID;
|
||||
G4int fTrackID;
|
||||
|
||||
G4VTouchable* fpTouchable;
|
||||
G4VTouchable* fpNextTouchable;
|
||||
const G4VTouchable* fpTouchable;
|
||||
const G4VTouchable* fpNextTouchable;
|
||||
|
||||
G4DynamicParticle* fpDynamicParticle;
|
||||
G4TrackStatus fTrackStatus;
|
||||
@@ -237,7 +242,7 @@ public: // With description
|
||||
// to execute inclusive simulation for hadronic/electomagnetic shower
|
||||
// and neutron transportation etc.
|
||||
|
||||
G4Step* fpStep;
|
||||
const G4Step* fpStep;
|
||||
|
||||
G4ThreeVector fVtxPosition; // (x,y,z) of the vertex
|
||||
G4ThreeVector fVtxMomentumDirection; // Momentum direction at the vertex
|
||||
@@ -245,7 +250,9 @@ public: // With description
|
||||
G4LogicalVolume* fpLVAtVertex; //Logical Volume at the vertex
|
||||
G4VProcess* fpCreatorProcess; // Process which created the track
|
||||
|
||||
G4VUserTrackInformation* fpUserInformation;
|
||||
};
|
||||
#include "G4Step.hh"
|
||||
#include "G4Track.icc"
|
||||
|
||||
#endif
|
||||
|
||||
@@ -5,13 +5,14 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4Track.icc,v 1.1 1999/10/06 01:21:50 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// $Id: G4Track.icc,v 1.5 2000/06/02 10:16:38 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//-----------------------------------------------------------------
|
||||
// Definitions of inline functions
|
||||
//-----------------------------------------------------------------
|
||||
|
||||
// change GetMaterial 16 Feb. 2000 H.Kurashige
|
||||
|
||||
// Operators
|
||||
extern G4Allocator<G4Track> aTrackAllocator;
|
||||
inline void* G4Track::operator new(size_t)
|
||||
@@ -93,22 +94,23 @@
|
||||
|
||||
// material
|
||||
inline G4Material* G4Track::GetMaterial() const
|
||||
{ return fpTouchable->GetVolume()->GetLogicalVolume()->GetMaterial(); }
|
||||
{ return fpStep->GetPreStepPoint()->GetMaterial(); }
|
||||
|
||||
inline G4Material* G4Track::GetNextMaterial() const
|
||||
{ return fpNextTouchable->GetVolume()->GetLogicalVolume()->GetMaterial(); }
|
||||
{ return fpStep->GetPostStepPoint()->GetMaterial(); }
|
||||
|
||||
|
||||
// touchable
|
||||
inline G4VTouchable* G4Track::GetTouchable() const
|
||||
inline const G4VTouchable* G4Track::GetTouchable() const
|
||||
{ return fpTouchable; }
|
||||
|
||||
inline void G4Track::SetTouchable(G4VTouchable* apValue)
|
||||
inline void G4Track::SetTouchable(const G4VTouchable* apValue)
|
||||
{ fpTouchable = apValue; }
|
||||
|
||||
inline G4VTouchable* G4Track::GetNextTouchable() const
|
||||
inline const G4VTouchable* G4Track::GetNextTouchable() const
|
||||
{ return fpNextTouchable; }
|
||||
|
||||
inline void G4Track::SetNextTouchable(G4VTouchable* apValue)
|
||||
inline void G4Track::SetNextTouchable(const G4VTouchable* apValue)
|
||||
{ fpNextTouchable = apValue; }
|
||||
|
||||
// kinetic energy
|
||||
@@ -225,7 +227,11 @@
|
||||
inline G4double G4Track::GetWeight() const
|
||||
{ return fWeight; }
|
||||
|
||||
|
||||
// user information
|
||||
inline G4VUserTrackInformation* G4Track::GetUserInformation() const
|
||||
{ return fpUserInformation; }
|
||||
inline void G4Track::SetUserInformation(G4VUserTrackInformation* aValue)
|
||||
{ fpUserInformation = aValue; }
|
||||
|
||||
|
||||
|
||||
@@ -236,11 +242,11 @@
|
||||
//-------------------------------------------------------------
|
||||
#include "G4Step.hh"
|
||||
|
||||
inline G4Step* G4Track::GetStep() const
|
||||
inline const G4Step* G4Track::GetStep() const
|
||||
{ return fpStep; }
|
||||
|
||||
inline void G4Track::SetStep(G4Step* aValue)
|
||||
{ fpStep = aValue; }
|
||||
inline void G4Track::SetStep(const G4Step* aValue)
|
||||
{ fpStep = (aValue); }
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4TrackFastVector.hh,v 1.3 1999/11/07 16:32:04 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4TrackStatus.hh,v 1.2 1999/11/07 16:32:04 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4VEvtBiasMechanism.hh,v 1.3 1999/11/07 16:32:05 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4VParticleChange.hh,v 1.4 1999/11/07 16:32:05 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4VParticleChange.icc,v 1.4 2000/01/18 02:54:12 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// $Id: G4VParticleChange.icc,v 1.5 2000/02/13 15:08:20 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//----------------------------------------------------------------
|
||||
// Virtual methods for updating G4Step
|
||||
@@ -203,8 +203,8 @@ inline void G4VParticleChange::InitializeSecondaries(const G4Track&)
|
||||
|
||||
inline void G4VParticleChange::AddSecondary(G4Track *aTrack)
|
||||
{
|
||||
// pass the weight of parent track if the weight is larger than parent weight
|
||||
if (aTrack->GetWeight()>theParentWeight) aTrack->SetWeight(theParentWeight);
|
||||
// pass the weight of parent track
|
||||
aTrack->SetWeight(theParentWeight);
|
||||
|
||||
// add a secondary after size check
|
||||
if (theSizeOftheListOfSecondaries > theNumberOfSecondaries) {
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
// 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: G4VUserTrackInformation.hh,v 1.2 2000/06/02 09:09:47 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
//
|
||||
// G4VUserTrackInformation
|
||||
//
|
||||
// Class Description:
|
||||
//
|
||||
// Abstract class which the user can derive his/her own concrete
|
||||
// class for toring user's information associating with a G4Track
|
||||
// class object.
|
||||
//
|
||||
// It is user's responsibility that
|
||||
// 1) Concrete class derived from this class MUST use G4Allocator
|
||||
// for memory management
|
||||
// 2) Construct a concrete class object and set the pointer to
|
||||
// proper G4Track object
|
||||
//
|
||||
// To set a pointer of a concrete class object to G4Track in
|
||||
// G4UserTrackingAction concrete implementation, given the G4Track
|
||||
// object is available only by "pointer to const", SetUserTrackInformation()
|
||||
// method of G4TrackingManager is available.
|
||||
//
|
||||
// The concrete class object is deleted by Geant4 kernel when
|
||||
// associated G4Track object is deleted.
|
||||
|
||||
|
||||
#ifndef G4VUserTrackInformation_H
|
||||
#define G4VUserTrackInformation_H 1
|
||||
|
||||
class G4VUserTrackInformation
|
||||
{
|
||||
public:
|
||||
G4VUserTrackInformation() {;}
|
||||
virtual ~G4VUserTrackInformation() {;}
|
||||
|
||||
public:
|
||||
virtual void Print() const = 0;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4EvtBiasMechanism.cc,v 1.3 1999/12/15 14:53:55 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4Mars5GeVMechanism.cc,v 1.4 1999/12/15 14:53:55 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ParticleChange.cc,v 1.9 2000/01/18 02:54:14 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// $Id: G4ParticleChange.cc,v 1.10 2000/02/13 15:08:27 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
@@ -471,7 +471,6 @@ G4bool G4ParticleChange::CheckIt(const G4Track& aTrack)
|
||||
// dump out information of this particle change
|
||||
if (!itsOK) {
|
||||
G4cout << " G4ParticleChange::CheckIt " <<G4endl;
|
||||
G4cout << " pointer : " << this <<G4endl ;
|
||||
DumpInfo();
|
||||
}
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ParticleChangeForDecay.cc,v 1.4 1999/12/15 14:53:56 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// $Id: G4ParticleChangeForDecay.cc,v 1.5 2000/02/13 15:08:27 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
@@ -159,7 +159,6 @@ G4bool G4ParticleChangeForDecay::CheckIt(const G4Track& aTrack)
|
||||
// dump out information of this particle change
|
||||
if (!itsOK) {
|
||||
G4cout << " G4ParticleChangeForDecay::CheckIt " <<G4endl;
|
||||
G4cout << " pointer : " << this <<G4endl ;
|
||||
DumpInfo();
|
||||
}
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ParticleChangeForLoss.cc,v 1.4 1999/12/15 14:53:56 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// $Id: G4ParticleChangeForLoss.cc,v 1.5 2000/02/13 15:08:28 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
@@ -164,7 +164,6 @@ G4bool G4ParticleChangeForLoss::CheckIt(const G4Track& aTrack)
|
||||
// dump out information of this particle change
|
||||
if (!itsOK) {
|
||||
G4cout << " G4ParticleChangeForLoss::CheckIt " <<G4endl;
|
||||
G4cout << " pointer : " << this <<G4endl ;
|
||||
DumpInfo();
|
||||
}
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ParticleChangeForMSC.cc,v 1.5 1999/12/15 14:53:56 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// $Id: G4ParticleChangeForMSC.cc,v 1.6 2000/02/13 15:08:28 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
@@ -195,7 +195,6 @@ G4bool G4ParticleChangeForMSC::CheckIt(const G4Track& aTrack)
|
||||
// dump out information of this particle change
|
||||
if (!itsOK) {
|
||||
G4cout << " G4ParticleChangeForMSC::CheckIt " <<G4endl;
|
||||
G4cout << " pointer : " << this <<G4endl ;
|
||||
DumpInfo();
|
||||
}
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ParticleChangeForTransport.cc,v 1.5 1999/12/15 14:53:56 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// $Id: G4ParticleChangeForTransport.cc,v 1.7 2000/05/16 00:34:27 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
@@ -64,6 +64,7 @@ G4ParticleChangeForTransport & G4ParticleChangeForTransport::operator=(const G4P
|
||||
theNumberOfSecondaries = right.theNumberOfSecondaries;
|
||||
theStatusChange = right.theStatusChange;
|
||||
theTouchableChange = right.theTouchableChange;
|
||||
theMaterialChange = right.theMaterialChange;
|
||||
theMomentumDirectionChange = right.theMomentumDirectionChange;
|
||||
thePolarizationChange = right.thePolarizationChange;
|
||||
thePositionChange = right.thePositionChange;
|
||||
@@ -139,8 +140,8 @@ G4Step* G4ParticleChangeForTransport::UpdateStepForAlongStep(G4Step* pStep)
|
||||
|
||||
|
||||
// update polarization
|
||||
//pPostStepPoint->AddPolarization( thePolarizationChange
|
||||
// - pPreStepPoint->GetPolarization());
|
||||
pPostStepPoint->AddPolarization( thePolarizationChange
|
||||
- pPreStepPoint->GetPolarization());
|
||||
|
||||
// update position and time
|
||||
pPostStepPoint->AddPosition( thePositionChange
|
||||
@@ -176,6 +177,8 @@ G4Step* G4ParticleChangeForTransport::UpdateStepForPostStep(G4Step* pStep)
|
||||
// (touchable can be changed only at PostStepDoIt)
|
||||
pPostStepPoint->SetTouchable( theTouchableChange );
|
||||
|
||||
pPostStepPoint->SetMaterial( theMaterialChange );
|
||||
|
||||
// It used to call base class's method
|
||||
// - but this would copy uninitialised data members
|
||||
// return G4ParticleChange::UpdateStepForPostStep(pStep);
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4Step.cc,v 1.4 1999/12/15 14:53:56 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4StepPoint.cc,v 1.2 1999/12/15 14:53:56 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// $Id: G4StepPoint.cc,v 1.3 2000/02/16 16:10:06 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
@@ -28,20 +28,58 @@
|
||||
#include "G4StepPoint.hh"
|
||||
|
||||
//////////////////////////
|
||||
G4StepPoint::G4StepPoint()
|
||||
G4StepPoint::G4StepPoint():
|
||||
//////////////////////////
|
||||
fpTouchable(0),fpMaterial(0),fpProcessDefinedStep(0)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
//////////////////////////
|
||||
G4StepPoint::G4StepPoint(const G4StepPoint &right):
|
||||
//////////////////////////
|
||||
fPosition(right.fPosition),
|
||||
fGlobalTime(right.fGlobalTime),
|
||||
fLocalTime(right.fLocalTime),
|
||||
fProperTime(right.fProperTime),
|
||||
fMomentumDirection(right.fMomentumDirection),
|
||||
fKineticEnergy(right.fKineticEnergy),
|
||||
fpTouchable(right.fpTouchable),
|
||||
fpMaterial(right.fpMaterial),
|
||||
fSafety(right.fSafety),
|
||||
fPolarization(right.fPolarization),
|
||||
fStepStatus(right.fStepStatus),
|
||||
fpProcessDefinedStep(right.fpProcessDefinedStep),
|
||||
fMass(right.fMass),
|
||||
fCharge(right.fCharge),
|
||||
fWeight(right.fWeight)
|
||||
{}
|
||||
|
||||
|
||||
//////////////////////////
|
||||
G4StepPoint & G4StepPoint::operator=(const G4StepPoint &right)
|
||||
//////////////////////////
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
///////////////////////////
|
||||
G4StepPoint::~G4StepPoint()
|
||||
///////////////////////////
|
||||
{
|
||||
|
||||
if (this != &right) {
|
||||
fPosition = right.fPosition;
|
||||
fGlobalTime = right.fGlobalTime;
|
||||
fLocalTime = right.fLocalTime;
|
||||
fProperTime = right.fProperTime;
|
||||
fMomentumDirection = right.fMomentumDirection;
|
||||
fKineticEnergy = right.fKineticEnergy;
|
||||
fpTouchable = right.fpTouchable;
|
||||
fpMaterial = right.fpMaterial;
|
||||
fSafety = right.fSafety;
|
||||
fPolarization = right.fPolarization;
|
||||
fStepStatus = right.fStepStatus;
|
||||
fpProcessDefinedStep = right.fpProcessDefinedStep;
|
||||
fMass = right.fMass;
|
||||
fCharge = right.fCharge;
|
||||
fWeight = right.fWeight;
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4Track.cc,v 1.3 1999/12/15 14:53:56 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// $Id: G4Track.cc,v 1.4 2000/06/02 05:36:53 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
@@ -47,6 +47,8 @@ G4Track::G4Track(G4DynamicParticle* apValueDynamicParticle,
|
||||
fBelowThreshold = false;
|
||||
fGoodForTracking = false;
|
||||
fWeight = 1.0;
|
||||
|
||||
fpUserInformation = 0;
|
||||
}
|
||||
|
||||
//////////////////
|
||||
@@ -70,6 +72,8 @@ G4Track::G4Track()
|
||||
fBelowThreshold = false;
|
||||
fGoodForTracking = false;
|
||||
fWeight = 1.0;
|
||||
|
||||
fpUserInformation = 0;
|
||||
}
|
||||
|
||||
///////////////////
|
||||
@@ -77,6 +81,7 @@ G4Track::~G4Track()
|
||||
///////////////////
|
||||
{
|
||||
delete fpDynamicParticle;
|
||||
delete fpUserInformation;
|
||||
}
|
||||
|
||||
///////////////////
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4VEvtBiasMechanism.cc,v 1.2 1999/12/15 14:53:56 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4VParticleChange.cc,v 1.4 1999/12/15 14:53:56 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-01 $
|
||||
// $Id: G4VParticleChange.cc,v 1.5 2000/02/13 15:08:28 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
@@ -240,7 +240,6 @@ G4bool G4VParticleChange::CheckIt(const G4Track& aTrack)
|
||||
// dump out information of this particle change
|
||||
if (! itsOK ){
|
||||
G4cout << " G4VParticleChange::CheckIt " <<G4endl;
|
||||
G4cout << " pointer : " << this <<G4endl ;
|
||||
DumpInfo();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user