Import Geant4 0.1.0 source tree
This commit is contained in:
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4AuxiliaryNavServices.hh,v 2.1 1998/11/02 12:11:50 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4AuxiliaryNavServices.hh,v 1.1 1999/01/07 16:08:40 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
// class G4NormalNavigation: Utility for navigation in volumes
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4BlockingList.hh,v 2.1 1998/07/12 02:58:14 urbi Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4BlockingList.hh,v 1.1 1999/01/07 16:08:40 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
// class G4BlockingList
|
||||
//
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4BlockingList.icc,v 2.0 1998/07/02 17:05:28 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4BlockingList.icc,v 1.1 1999/01/07 16:08:41 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
// class G4BlockingList Inlined Implementation
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4GRSSolid.hh,v 2.3 1998/11/09 17:15:26 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4GRSSolid.hh,v 1.1 1999/01/07 16:08:41 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
// class G4GRSSolid Paul Kent August 1996
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4GRSSolid.icc,v 2.1 1998/07/18 10:11:35 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4GRSSolid.icc,v 1.1 1999/01/07 16:08:41 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
// class G4GRSSolid inline implementation
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4GRSVolume.hh,v 2.1 1998/07/18 10:11:36 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4GRSVolume.hh,v 1.1 1999/01/07 16:08:41 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
// class G4GRSVolume Paul Kent August 1996
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4GRSVolume.icc,v 2.1 1998/07/18 10:11:36 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4GRSVolume.icc,v 1.2 1999/03/11 09:58:27 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
// class G4GRSVolume inline implementation
|
||||
@@ -39,7 +39,7 @@ inline G4GRSVolume::G4GRSVolume(G4VPhysicalVolume *pVol,
|
||||
inline G4VPhysicalVolume* G4GRSVolume::GetVolume(G4int depth) const
|
||||
{
|
||||
if( depth != 0 ) {
|
||||
G4Exception("G4GRSSolid::GetSolid: has no meaning for depth!=0");
|
||||
G4Exception("G4GRSVolume::GetVolume: has no meaning for depth!=0");
|
||||
}
|
||||
return fvol;
|
||||
}
|
||||
@@ -47,7 +47,7 @@ inline G4VPhysicalVolume* G4GRSVolume::GetVolume(G4int depth) const
|
||||
inline G4VSolid* G4GRSVolume::GetSolid(G4int depth) const
|
||||
{
|
||||
if( depth != 0 ) {
|
||||
G4Exception("G4GRSSolid::GetSolid: has no meaning for depth!=0");
|
||||
G4Exception("G4GRSVolume::GetSolid: has no meaning for depth!=0");
|
||||
}
|
||||
return fvol->GetLogicalVolume()->GetSolid();
|
||||
}
|
||||
@@ -55,7 +55,7 @@ inline G4VSolid* G4GRSVolume::GetSolid(G4int depth) const
|
||||
inline const G4ThreeVector& G4GRSVolume::GetTranslation(G4int depth) const
|
||||
{
|
||||
if( depth != 0 ) {
|
||||
G4Exception("G4GRSSolid::GetSolid: has no meaning for depth!=0");
|
||||
G4Exception("G4GRSVolume::GetTranslation: has no meaning for depth!=0");
|
||||
}
|
||||
return ftlate;
|
||||
}
|
||||
@@ -63,7 +63,7 @@ inline const G4ThreeVector& G4GRSVolume::GetTranslation(G4int depth) const
|
||||
inline const G4RotationMatrix* G4GRSVolume::GetRotation(G4int depth) const
|
||||
{
|
||||
if( depth != 0 ) {
|
||||
G4Exception("G4GRSSolid::GetSolid: has no meaning for depth!=0");
|
||||
G4Exception("G4GRSVolume::GetRotation: has no meaning for depth!=0");
|
||||
}
|
||||
return frot;
|
||||
}
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4LogicalBorderSurface.hh,v 2.0 1998/07/02 17:05:38 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4LogicalBorderSurface.hh,v 1.1 1999/01/07 16:08:41 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
// G4LogicalBorderSurface Definition
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4LogicalSkinSurface.hh,v 2.0 1998/07/02 17:05:40 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4LogicalSkinSurface.hh,v 1.1 1999/01/07 16:08:42 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
// G4LogicalSkinSurface Definition
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4NavigationHistory.hh,v 2.0 1998/07/02 17:05:45 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4NavigationHistory.hh,v 1.1 1999/01/07 16:08:42 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
// class G4NavigationHistory
|
||||
//
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4NavigationHistory.icc,v 2.0 1998/07/02 17:05:47 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4NavigationHistory.icc,v 1.1 1999/01/07 16:08:42 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
// class G4NavigationHistory Inline implementation
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4NavigationLevel.hh,v 2.0 1998/07/02 17:05:48 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4NavigationLevel.hh,v 1.8 1999/05/17 13:51:51 fbehner Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
// class G4NavigationLevel
|
||||
//
|
||||
@@ -52,7 +52,7 @@ class G4NavigationLevel
|
||||
G4int newRepNo= -1);
|
||||
|
||||
G4NavigationLevel();
|
||||
G4NavigationLevel( G4NavigationLevel& );
|
||||
G4NavigationLevel( const G4NavigationLevel& );
|
||||
|
||||
~G4NavigationLevel();
|
||||
|
||||
@@ -68,10 +68,16 @@ class G4NavigationLevel
|
||||
// To try to resolve the possible problem with returning a reference.
|
||||
const G4AffineTransform* GetPtrTransform() const;
|
||||
|
||||
// Override "new" and "delete" to use "G4Allocator".
|
||||
inline void *operator new(size_t);
|
||||
// Override "new" to use "G4Allocator".
|
||||
inline void operator delete(void *aTrack);
|
||||
// Override "delete" to use "G4Allocator".
|
||||
inline void operator delete(void *aLevel);
|
||||
|
||||
// Pre-allocated 'new' and 'delete' for use with STL
|
||||
// - do not (directly) use Allocator F.Behner/J.Apostolakis
|
||||
inline void *operator new(size_t, void *); // void*);
|
||||
#ifndef G4NOT_ISO_DELETES
|
||||
inline void operator delete(void *ptr, void*); // Not accepted Sun/HP
|
||||
#endif
|
||||
|
||||
// Data members:
|
||||
//
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4NavigationLevel.icc,v 2.1 1998/07/12 02:58:16 urbi Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4NavigationLevel.icc,v 1.8 1999/05/17 13:51:51 fbehner Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
// 30.09.97 J.Apostolakis Initial version.
|
||||
//
|
||||
@@ -41,7 +41,7 @@ inline G4NavigationLevel::G4NavigationLevel()
|
||||
fLevelRep= new G4NavigationLevelRep();
|
||||
}
|
||||
|
||||
inline G4NavigationLevel::G4NavigationLevel(G4NavigationLevel& right)
|
||||
inline G4NavigationLevel::G4NavigationLevel(const G4NavigationLevel& right)
|
||||
: fLevelRep( right.fLevelRep )
|
||||
{
|
||||
fLevelRep->AddAReference();
|
||||
@@ -108,8 +108,30 @@ inline void* G4NavigationLevel::operator new(size_t)
|
||||
return (void *) aNavigationLevelAllocator.MallocSingle();
|
||||
}
|
||||
|
||||
// Added for use by STL. F.Behner (used for pre-allocation)
|
||||
//
|
||||
inline void* G4NavigationLevel::operator new(size_t,void *a)
|
||||
{
|
||||
return a;
|
||||
}
|
||||
|
||||
inline void G4NavigationLevel::operator delete(void *aLevel)
|
||||
{
|
||||
aNavigationLevelAllocator.FreeSingle((G4NavigationLevel *) aLevel);
|
||||
}
|
||||
|
||||
// Added for use by STL. J. Apostolakis (used for free-ing pre-allocated?)
|
||||
|
||||
#ifndef G4NOT_ISO_DELETES
|
||||
inline void G4NavigationLevel::operator delete(void *ptr, void *p)
|
||||
{
|
||||
;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4NavigationLevelRep.hh,v 2.1 1998/07/12 02:58:17 urbi Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4NavigationLevelRep.hh,v 1.1 1999/01/07 16:08:43 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
// class G4NavigationLevelRep
|
||||
//
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4NavigationLevelRep.icc,v 2.1 1998/07/12 02:58:18 urbi Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4NavigationLevelRep.icc,v 1.1 1999/01/07 16:08:43 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
// 1 October 1997 J.Apostolakis Initial version.
|
||||
//
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4Navigator.hh,v 2.4 1998/11/27 19:30:59 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4Navigator.hh,v 1.1 1999/01/07 16:08:43 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
// class G4Navigator Paul Kent July 95/96
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4Navigator.icc,v 2.3 1998/11/09 18:59:49 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4Navigator.icc,v 1.1 1999/01/07 16:08:43 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
// class G4Navigator Inline implementation
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4NormalNavigation.hh,v 2.1 1998/11/02 12:11:54 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4NormalNavigation.hh,v 1.1 1999/01/07 16:08:44 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
// class G4NormalNavigation: Utility for navigation in volumes
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4NormalNavigation.icc,v 2.4 1998/11/25 16:33:52 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4NormalNavigation.icc,v 1.1 1999/01/07 16:08:44 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
// G4NormalNavigation Inline Implementation
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ParameterisedNavigation.hh,v 2.2 1998/11/02 12:11:56 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4ParameterisedNavigation.hh,v 1.1 1999/01/07 16:08:44 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
// class G4ParameterisedNavigation: Utility for navigation in volumes
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ParameterisedNavigation.icc,v 2.4 1998/11/02 12:11:56 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4ParameterisedNavigation.icc,v 1.1 1999/01/07 16:08:44 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
// class G4ParameterisedNavigation Inline implementation
|
||||
|
||||
@@ -0,0 +1,171 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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: G4PropagatorInField.hh,v 1.3 1999/02/17 17:41:55 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------------------
|
||||
// GEANT 4 include file implementation
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, IT Division (formely CN), ASD group
|
||||
// ------------------------------------------------------------------------
|
||||
//
|
||||
// This class performs the navigation/propagation of a particle/track
|
||||
// in a magnetic field. The field is in general non-uniform.
|
||||
// For the calculation of the path, it relies on the class G4MagTr.
|
||||
//
|
||||
// class G4PropagatorInField
|
||||
// Methods:
|
||||
// ComputeStep(..)
|
||||
// CalculateStepTimeAndAccuracy(..)
|
||||
// LocateIntersectionPoint(..)
|
||||
//
|
||||
// 25.10.96 John Apostolakis, design and implementation
|
||||
// 25.03.97 John Apostolakis, adaptation for G4Transportation and cleanup
|
||||
// ------------------------------------------------------------------------
|
||||
#ifndef G4PropagatorInField_hh
|
||||
#define G4PropagatorInField_hh 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4FieldTrack.hh"
|
||||
// #include "G4VPhysicalVolume.hh"
|
||||
// class G4VPhysicalVolume;
|
||||
|
||||
#include "G4Navigator.hh"
|
||||
#include "G4ChordFinder.hh"
|
||||
|
||||
#include "G4FieldManager.hh"
|
||||
|
||||
// #include "G4MagIntegratorDriver.hh"
|
||||
|
||||
class G4PropagatorInField {
|
||||
|
||||
public:
|
||||
// To create an object, must have an object that calculates the Curved
|
||||
// paths and also must know the value of the maximum displacement allowed
|
||||
//
|
||||
|
||||
G4PropagatorInField( G4Navigator *theNavigator,
|
||||
G4FieldManager *detectorFieldMgr);
|
||||
|
||||
G4PropagatorInField( G4Navigator *theNavigator );
|
||||
~G4PropagatorInField(){};
|
||||
|
||||
// Compute the next geometric Step
|
||||
//
|
||||
G4double ComputeStep(G4FieldTrack &pFieldTrack,
|
||||
G4double pCurrentProposedStepLength,
|
||||
G4double &pNewSafety,
|
||||
G4VPhysicalVolume *pPhysVol=0 );
|
||||
|
||||
G4double ComputeStep(const G4ThreeVector &pGlobalPoint,
|
||||
const G4ThreeVector &pCurveTangent, // Unit vector
|
||||
G4double pCurrentProposedStepLength,
|
||||
G4double &pNewSafety,
|
||||
G4VPhysicalVolume *pPhysVol=0 );
|
||||
// Current Volume (to check)
|
||||
|
||||
// Return the state after the Step
|
||||
//
|
||||
G4ThreeVector EndPosition();
|
||||
G4ThreeVector EndMomentumDir();
|
||||
G4bool IsParticleLooping();
|
||||
|
||||
// The accuracy of finding an intersection
|
||||
//
|
||||
G4double DeltaIntersection();
|
||||
|
||||
// The accuracy of a single Step
|
||||
//
|
||||
G4double DeltaOneStep();
|
||||
|
||||
// The ratio DeltaOneStep()/h_current_step
|
||||
//
|
||||
G4double GetEpsilonStep(); // Relative accuracy for current Step (Calc.)
|
||||
void SetEpsilonStep(G4double newEps);
|
||||
|
||||
// A maximum for the number of steps that a (looping) particle
|
||||
// can take.
|
||||
//
|
||||
G4int GetMaxLoopCount();
|
||||
void SetMaxLoopCount(G4int new_max);
|
||||
|
||||
void SetChargeMomentumMass( G4double Charge, // in e+ units
|
||||
G4double Momentum, // in Geant4 units
|
||||
G4double pMass);
|
||||
|
||||
G4ChordFinder* GetChordFinder();
|
||||
// void SetChordFinder(G4ChordFinder* newCF); // Not yet relevant
|
||||
|
||||
G4int SetVerboseLevel( G4int Verbose ){ return fVerboseLevel=Verbose; }
|
||||
G4int Verbose(){ return fVerboseLevel; }
|
||||
|
||||
// Print Method - useful mostly for debugging this class
|
||||
//
|
||||
void printStatus(
|
||||
const G4FieldTrack& StartFT,
|
||||
const G4FieldTrack& CurrentFT,
|
||||
G4double requestStep,
|
||||
G4double safety,
|
||||
G4int Step,
|
||||
G4VPhysicalVolume* startVolume);
|
||||
|
||||
// The Field Manager of the Detector
|
||||
//
|
||||
// void SetGlobalFieldMgr( G4FieldManager *detectorFieldMgr );
|
||||
G4FieldTrack GetEndState() { return End_PointAndTangent; }
|
||||
|
||||
private:
|
||||
|
||||
// The Field Manager of the whole Detector
|
||||
//
|
||||
G4FieldManager *fDetectorFieldMgr;
|
||||
|
||||
G4Navigator *fNavigator;
|
||||
|
||||
// End point storage:
|
||||
//
|
||||
G4FieldTrack End_PointAndTangent;
|
||||
|
||||
// If such an intersection exists, this function
|
||||
// calculate the intersection point of the true path of the particle
|
||||
// with the surface of the current volume (or of one of its daughters).
|
||||
// (Should use lateral displacement as measure of convergence).
|
||||
//
|
||||
G4bool LocateIntersectionPoint(
|
||||
const G4FieldTrack& CurveStartPointTangent, // A
|
||||
const G4FieldTrack& CurveEndPointTangent, // B
|
||||
const G4ThreeVector& TrialPoint, // E
|
||||
G4FieldTrack& IntersectPointTangent); // Output
|
||||
//
|
||||
// [ Should this have fewer or additional arguments ?
|
||||
// pointer to info on solution already obtained
|
||||
// tolerance
|
||||
// ]
|
||||
|
||||
G4double fEpsilonStep; // Relative accuracy for current Step (Calc.)
|
||||
|
||||
G4bool fParticleIsLooping;
|
||||
// For debuging purposes
|
||||
G4int fVerboseLevel;
|
||||
|
||||
// For the moment class constants ... set in G4PropagatemagField.cc
|
||||
//
|
||||
static const G4double delta_intersection_val; // = 0.1 * mm;
|
||||
static const G4double delta_one_step_val; // = 0.25 * mm;
|
||||
|
||||
G4int fmax_loop_count;
|
||||
}; // End of class G4PropagatorInField {
|
||||
|
||||
// Defines the constructor.
|
||||
//
|
||||
#include "G4PropagatorInField.icc"
|
||||
|
||||
#endif
|
||||
// End of "#ifndef G4PropagatorInField_hh"
|
||||
@@ -0,0 +1,98 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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: G4PropagatorInField.icc,v 1.2 1999/02/17 17:35:59 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------------------
|
||||
// GEANT 4 include file implementation
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, IT Division (formely CN), ASD group
|
||||
// ------------------------------------------------------------------------
|
||||
//
|
||||
// 25.10.96 John Apostolakis, design and implementation
|
||||
// 25.03.97 John Apostolakis, adaptation for G4Transportation and cleanup
|
||||
//
|
||||
// To create an object, must have
|
||||
// an object that calculates the Curved paths
|
||||
// the navigator to find (linear) intersections
|
||||
// and ?? also must know the value of the maximum displacement allowed
|
||||
//
|
||||
|
||||
inline G4PropagatorInField::
|
||||
G4PropagatorInField( G4Navigator *theNavigator,
|
||||
G4FieldManager *detectorFieldMgr) :
|
||||
fNavigator(theNavigator),
|
||||
fDetectorFieldMgr(detectorFieldMgr),
|
||||
fmax_loop_count(1000),
|
||||
End_PointAndTangent(G4ThreeVector(0.,0.,0.),G4ThreeVector(0.,0.,0.),0.0,0.0)
|
||||
{
|
||||
// this->fChordFinder = new G4ChordFinder( (G4MagneticField*)0, 1e-6 );
|
||||
}
|
||||
|
||||
inline
|
||||
G4ChordFinder* G4PropagatorInField::GetChordFinder()
|
||||
{
|
||||
// Now only the "Chord Finder" of the global Field Mgr is used
|
||||
// ...
|
||||
return fDetectorFieldMgr->GetChordFinder();
|
||||
}
|
||||
|
||||
inline void G4PropagatorInField::SetChargeMomentumMass(
|
||||
G4double Charge, // in e+ units
|
||||
G4double Momentum, // in GeV/c
|
||||
G4double Mass) // in ? units
|
||||
{
|
||||
GetChordFinder()->SetChargeMomentumMass(Charge, Momentum, Mass);
|
||||
}
|
||||
|
||||
// Obtain the final space-point and velocity (normal) at the end of the Step
|
||||
//
|
||||
inline
|
||||
G4ThreeVector G4PropagatorInField::EndPosition()
|
||||
{
|
||||
return End_PointAndTangent.Position();
|
||||
}
|
||||
|
||||
inline
|
||||
G4ThreeVector G4PropagatorInField::EndMomentumDir()
|
||||
{
|
||||
return End_PointAndTangent.GetMomentumDir();
|
||||
}
|
||||
|
||||
inline G4double G4PropagatorInField::GetEpsilonStep()
|
||||
{
|
||||
return fEpsilonStep;
|
||||
}
|
||||
inline void G4PropagatorInField::SetEpsilonStep(G4double newEps)
|
||||
{
|
||||
fEpsilonStep=newEps;
|
||||
}
|
||||
inline G4bool G4PropagatorInField::IsParticleLooping()
|
||||
{
|
||||
return fParticleIsLooping;
|
||||
}
|
||||
|
||||
inline G4int G4PropagatorInField::GetMaxLoopCount()
|
||||
{
|
||||
return fmax_loop_count;
|
||||
}
|
||||
|
||||
inline void G4PropagatorInField::SetMaxLoopCount(G4int new_max)
|
||||
{
|
||||
fmax_loop_count= new_max;
|
||||
}
|
||||
|
||||
// inline void G4PropagatorInField::SetChordFinder(G4ChordFinder* newCF)
|
||||
|
||||
inline G4double G4PropagatorInField::DeltaOneStep()
|
||||
{ return delta_one_step_val; }
|
||||
|
||||
inline G4double G4PropagatorInField::DeltaIntersection()
|
||||
{ return delta_intersection_val; }
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ReplicaNavigation.hh,v 2.1 1998/11/02 12:11:57 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4ReplicaNavigation.hh,v 1.1 1999/01/07 16:08:44 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
// class G4ReplicaNavigation: Utility for navigation in volumes
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ReplicaNavigation.icc,v 2.2 1998/11/02 12:11:57 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4ReplicaNavigation.icc,v 1.1 1999/01/07 16:08:44 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
// class G4ReplicaNavigation Inline implementation
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4TouchableHistory.hh,v 2.2 1998/07/19 23:51:39 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4TouchableHistory.hh,v 1.1 1999/01/07 16:08:45 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
// class G4TouchableHistory Paul Kent August 1996
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4TouchableHistory.icc,v 2.2 1998/07/19 23:51:39 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4TouchableHistory.icc,v 1.1 1999/01/07 16:08:45 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
// class G4TouchableHistory inline implementation
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4Transform.hh,v 2.0 1998/07/02 17:05:31 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4Transform.hh,v 1.1 1999/01/07 16:08:45 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
// class G4Transform
|
||||
//
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4TransportationManager.hh,v 2.1 1998/07/12 02:58:22 urbi Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4TransportationManager.hh,v 1.1 1999/01/07 16:08:45 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4TransportationManager.icc,v 2.1 1998/07/12 02:58:23 urbi Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4TransportationManager.icc,v 1.1 1999/01/07 16:08:46 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4VoxelNavigation.hh,v 2.2 1998/11/02 12:11:58 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4VoxelNavigation.hh,v 1.3 1999/02/17 17:31:05 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
// class G4VoxelNavigation: Utility for navigation in volumes
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4VoxelNavigation.icc,v 2.1 1998/11/02 12:11:59 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: G4VoxelNavigation.icc,v 1.1 1999/01/07 16:08:47 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
// class G4VoxelNavigation Inline implementation
|
||||
|
||||
Reference in New Issue
Block a user