Import Geant4 9.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 15:16:48 +02:00
parent 75c7fd177d
commit a8e9364cea
6592 changed files with 84274 additions and 69292 deletions
+20 -1
View File
@@ -1,4 +1,4 @@
$Id: History,v 1.115 2007/04/11 08:00:12 gcosmo Exp $
$Id: History,v 1.119 2007/06/19 11:28:38 gcosmo Exp $
-------------------------------------------------------------------
=========================================================
@@ -17,6 +17,25 @@ committal in the CVS repository !
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
June 19, 2007 G.Cosmo geommng-V08-03-03
- Apply migration to <cmath> and std:: for G4ErrorCylSurfaceTarget and
G4ErrorPlaneSurfaceTarget implementations. Fixes compilation problems
detected on Windows VC++8.
May 16, 2007 G.Cosmo geommng-V08-03-02
- Introduced new classes for handling error propagation: G4ErrorTarget,
G4ErrorSurfaceTarget, G4ErrorTanPlaneTarget, G4ErrorPlaneSurfaceTarget,
G4ErrorCylSurfaceTarget (by P.Arce).
- Coworks with tag "global-V08-03-02".
May 11, 2007 G.Cosmo geommng-V08-03-01
- Use call to G4GeometryTolerance instead of kCarTolerance where needed.
- Requires tag "global-V08-03-00" and related tag set.
April 26, 2007 M.Asai geommng-V08-03-00
- Added forward declaration and pointer (with set/get methods) to
G4VUserSteppingAction, to allow for stepping actions defined at region.
April 11, 2007 G.Cosmo geommng-V08-02-02
- Added 'get' methods to stores for retrivial of volumes/solid by name.
- Modified signature of G4VPhysicalVolume::CheckOverlaps() to introduce
@@ -25,7 +25,7 @@
//
//
// $Id: G4AffineTransform.hh,v 1.6 2006/06/29 18:30:37 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// class G4AffineTransform
@@ -25,7 +25,7 @@
//
//
// $Id: G4AffineTransform.icc,v 1.8 2006/06/29 18:30:39 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// G4AffineTransformation Inline implementation
@@ -25,7 +25,7 @@
//
//
// $Id: G4BlockingList.hh,v 1.4 2006/06/29 18:30:41 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
// class G4BlockingList
//
@@ -25,7 +25,7 @@
//
//
// $Id: G4BlockingList.icc,v 1.3 2006/06/29 18:30:43 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// class G4BlockingList Inlined Implementation
@@ -0,0 +1,93 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * 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. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
// $Id: G4ErrorCylSurfaceTarget.hh,v 1.1 2007/05/16 12:50:52 gcosmo Exp $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// --------------------------------------------------------------------
// GEANT 4 class header file
// --------------------------------------------------------------------
//
// Class Description:
//
// G4ErrorTarget class: limits step when track reaches a cylindrical surface.
// History:
// - Created. P. Arce, September 2004
// --------------------------------------------------------------------
#ifndef G4ErrorCylSurfaceTarget_hh
#define G4ErrorCylSurfaceTarget_hh
#include "globals.hh"
#include "G4ErrorSurfaceTarget.hh"
#include "G4ThreeVector.hh"
#include "G4RotationMatrix.hh"
#include "G4AffineTransform.hh"
#include "G4Plane3D.hh"
class G4ErrorCylSurfaceTarget : public G4ErrorSurfaceTarget
{
public: // with description
G4ErrorCylSurfaceTarget( const G4double& radius,
const G4ThreeVector& trans=G4ThreeVector(),
const G4RotationMatrix& rotm=G4RotationMatrix() );
// Constructs cylindrical surface by radius, translation and rotation
G4ErrorCylSurfaceTarget( const G4double& radius,
const G4AffineTransform& trans );
// Constructs cylindrical surface by radius and affine transformation
~G4ErrorCylSurfaceTarget();
virtual G4ThreeVector IntersectLocal( const G4ThreeVector& point,
const G4ThreeVector& direc ) const;
// Intersects the cylindrical surface with the line in local (cylinder)
// coordinates, given by point and direction
virtual G4double GetDistanceFromPoint( const G4ThreeVector& point,
const G4ThreeVector& direc ) const;
// Distance from a point to the cylindrical surface in a given direction
virtual G4double GetDistanceFromPoint( const G4ThreeVector& point ) const;
// Minimal distance from a point to the cylindrical surface in any
// direction
virtual G4Plane3D GetTangentPlane( const G4ThreeVector& point ) const;
// Get plane tangent to cylindrical surface at a given point
virtual void Dump( const G4String& msg ) const;
// Dump cylindrical surface parameter
private:
G4double fradius;
G4AffineTransform ftransform;
};
#endif
@@ -0,0 +1,89 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * 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. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
// $Id: G4ErrorPlaneSurfaceTarget.hh,v 1.1 2007/05/16 12:50:52 gcosmo Exp $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// --------------------------------------------------------------------
// GEANT 4 class header file
// --------------------------------------------------------------------
//
// Class Description:
//
// G4ErrorTarget class: limits step when track reaches a plane surface.
// History:
// - Created. P. Arce, September 2004
// --------------------------------------------------------------------
#ifndef G4ErrorPlaneSurfaceTarget_hh
#define G4ErrorPlaneSurfaceTarget_hh
#include "globals.hh"
#include "G4ErrorSurfaceTarget.hh"
#include "G4ThreeVector.hh"
#include "G4Plane3D.hh"
class G4ErrorPlaneSurfaceTarget : public G4ErrorSurfaceTarget, G4Plane3D
{
public: // with description
G4ErrorPlaneSurfaceTarget(G4double a=0, G4double b=0,
G4double c=0, G4double d=0);
// Constructs plane by parameters: ax+by+cz+d = 0
G4ErrorPlaneSurfaceTarget(const G4Normal3D &n,
const G4Point3D &p);
// Constructs plane by point and normal
G4ErrorPlaneSurfaceTarget(const G4Point3D &p1,
const G4Point3D &p2,
const G4Point3D &p3);
// Constructs plane by three points
~G4ErrorPlaneSurfaceTarget();
virtual G4ThreeVector Intersect( const G4ThreeVector& point,
const G4ThreeVector& direc ) const;
// Intersects the surface with the line given by point and direction
virtual G4double GetDistanceFromPoint( const G4ThreeVector& point,
const G4ThreeVector& direc ) const;
// Distance from point to surface in a given direction
virtual G4double GetDistanceFromPoint( const G4ThreeVector& pt ) const;
// Closest distance from point to surface
virtual G4Plane3D GetTangentPlane( const G4ThreeVector& point ) const;
// Get tangent plane as itself
virtual void Dump( const G4String& msg ) const;
// Dump plane surface parameter
};
#endif
@@ -0,0 +1,72 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * 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. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
// $Id: G4ErrorSurfaceTarget.hh,v 1.1 2007/05/16 12:50:52 gcosmo Exp $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// --------------------------------------------------------------------
// GEANT 4 class header file
// --------------------------------------------------------------------
//
// Class Description:
//
// Base class for G4ErrorTarget classes that are surfaces.
// History:
// - Created. P. Arce, September 2004
// --------------------------------------------------------------------
#ifndef G4ErrorSurfaceTarget_hh
#define G4ErrorSurfaceTarget_hh
#include "globals.hh"
#include "G4ThreeVector.hh"
#include "G4ErrorTanPlaneTarget.hh"
#include "G4Plane3D.hh"
class G4ErrorSurfaceTarget : public G4ErrorTanPlaneTarget
{
public: // with description
G4ErrorSurfaceTarget();
virtual ~G4ErrorSurfaceTarget();
virtual double GetDistanceFromPoint( const G4ThreeVector& point,
const G4ThreeVector& direc ) const = 0;
// Distance from a point to the surface in a given direction
virtual double GetDistanceFromPoint( const G4ThreeVector& point ) const = 0;
// Minimal distance from a point to the surface in any direction
virtual G4Plane3D GetTangentPlane( const G4ThreeVector& point ) const = 0;
// Get tangent plane at point
virtual void Dump( const G4String& msg ) const = 0;
// Dump surface
};
#endif
@@ -0,0 +1,67 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * 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. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
// $Id: G4ErrorTanPlaneTarget.hh,v 1.1 2007/05/16 12:50:52 gcosmo Exp $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// ------------------------------------------------------------
// GEANT 4 class header file
// ------------------------------------------------------------
//
// Class Description:
//
// Base class for G4ErrorTarget classes for which a tangent plane is defined.
// History:
// - Created. P. Arce, September 2004
// --------------------------------------------------------------------
#ifndef G4ErrorTanPlaneTarget_hh
#define G4ErrorTanPlaneTarget_hh
#include "globals.hh"
#include "G4ThreeVector.hh"
#include "G4ErrorTarget.hh"
#include "G4Plane3D.hh"
class G4ErrorTanPlaneTarget : public G4ErrorTarget
{
public: // with description
G4ErrorTanPlaneTarget();
virtual ~G4ErrorTanPlaneTarget();
virtual G4Plane3D GetTangentPlane( const G4ThreeVector& point ) const = 0;
// Get tangent plane at point
virtual void Dump( const G4String& msg ) const = 0;
// Dump surface
};
#endif
@@ -0,0 +1,88 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * 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. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
// $Id: G4ErrorTarget.hh,v 1.1 2007/05/16 12:50:52 gcosmo Exp $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// --------------------------------------------------------------------
// GEANT 4 class header file
// --------------------------------------------------------------------
//
// Class Description:
//
// Base class for all error propagation targets.
// History:
// - Created. P. Arce, September 2004
// --------------------------------------------------------------------
#ifndef G4ErrorTarget_hh
#define G4ErrorTarget_hh
#include "globals.hh"
#include "G4ThreeVector.hh"
class G4Step;
enum G4ErrorTargetType{ G4ErrorTarget_PlaneSurface,
G4ErrorTarget_CylindricalSurface,
G4ErrorTarget_GeomVolume,
G4ErrorTarget_TrkL };
class G4ErrorTarget
{
public: // with description
G4ErrorTarget();
virtual ~G4ErrorTarget();
virtual G4double GetDistanceFromPoint( const G4ThreeVector&,
const G4ThreeVector& ) const;
virtual G4double GetDistanceFromPoint( const G4ThreeVector& ) const;
// For the target volume
virtual G4bool TargetReached(const G4Step*);
// For the target surface and target TrackLength
virtual void Dump( const G4String& msg ) const = 0;
// Access methods
inline G4ErrorTargetType GetType() const;
protected:
G4ErrorTargetType theType;
};
// Inline methods
inline G4ErrorTargetType G4ErrorTarget::GetType() const
{
return theType;
}
#endif
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4GeometryManager.hh,v 1.11 2006/06/29 18:30:46 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// $Id: G4GeometryManager.hh,v 1.12 2007/05/11 13:30:12 gcosmo Exp $
// GEANT4 tag $Name: geant4-09-00 $
//
// class G4GeometryManager
//
@@ -71,6 +71,10 @@ class G4GeometryManager
G4bool IsGeometryClosed();
// Return true/false according to state of optimised geoemtry.
void SetWorldMaximumExtent(G4double worldExtent);
// Set the maximum extent of the world volume. The operation is
// allowed only if NO solids have been created already.
static G4GeometryManager* GetInstance();
// Return ptr to singleton instance of the class.
@@ -25,7 +25,7 @@
//
//
// $Id: G4IdentityTrajectoryFilter.hh,v 1.3 2006/06/29 18:30:48 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// class GIdentityTrajectoryFilter
@@ -25,7 +25,7 @@
//
//
// $Id: G4LogicalSurface.hh,v 1.10 2006/06/29 18:30:50 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
////////////////////////////////////////////////////////////////////////
// Class G4LogicalSurface
@@ -25,7 +25,7 @@
//
//
// $Id: G4LogicalSurface.icc,v 1.9 2006/06/29 18:30:52 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
////////////////////////////////////////////////////////////////////////
// Surface Class Inline Methods
@@ -25,7 +25,7 @@
//
//
// $Id: G4LogicalVolume.hh,v 1.26 2006/06/29 18:30:55 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// class G4LogicalVolume
@@ -25,7 +25,7 @@
//
//
// $Id: G4LogicalVolume.icc,v 1.24 2006/06/29 18:30:57 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// class G4LogicalVolume Inline Implementation file
@@ -25,7 +25,7 @@
//
//
// $Id: G4LogicalVolumeStore.hh,v 1.13 2007/04/10 10:13:50 gcosmo Exp $
// GEANT4 tag $Name: geant4-08-03 $
// GEANT4 tag $Name: geant4-09-00 $
//
// class G4LogicalVolumeStore
//
@@ -25,7 +25,7 @@
//
//
// $Id: G4PhysicalVolumeStore.hh,v 1.15 2007/04/10 10:13:50 gcosmo Exp $
// GEANT4 tag $Name: geant4-08-03 $
// GEANT4 tag $Name: geant4-09-00 $
//
// class G4PhysicalVolume
//
@@ -25,7 +25,7 @@
//
//
// $Id: G4ReflectedSolid.hh,v 1.5 2006/06/29 18:31:03 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// class G4ReflectedSolid
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4Region.hh,v 1.17 2006/06/29 18:31:05 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// $Id: G4Region.hh,v 1.19 2007/04/28 01:48:29 asaim Exp $
// GEANT4 tag $Name: geant4-09-00 $
//
// class G4Region
//
@@ -49,6 +49,7 @@ class G4MaterialCutsCouple;
class G4UserLimits;
class G4FastSimulationManager;
class G4VPhysicalVolume;
class G4UserSteppingAction;
#include <vector>
#include <map>
@@ -163,6 +164,10 @@ class G4Region
// Flag 'unique' is true if there is only one parent region containing
// the current region.
inline void SetRegionalSteppingAction(G4UserSteppingAction* rusa);
inline G4UserSteppingAction* GetRegionalSteppingAction() const;
// Set/Get method of the regional user stepping action
public: // without description
G4Region(__void__&);
@@ -197,6 +202,8 @@ class G4Region
G4FastSimulationManager* fFastSimulationManager;
G4VPhysicalVolume* fWorldPhys;
G4UserSteppingAction* fRegionalSteppingAction;
};
#include "G4Region.icc"
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4Region.icc,v 1.13 2006/06/29 18:31:07 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// $Id: G4Region.icc,v 1.15 2007/04/28 01:48:29 asaim Exp $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// class G4Region Inline Implementation file
@@ -274,4 +274,20 @@ void G4Region::AddMaterial(G4Material* aMaterial)
}
}
// ********************************************************************
// SetRegionalSteppingAction
// ********************************************************************
//
inline
void G4Region::SetRegionalSteppingAction(G4UserSteppingAction* rusa)
{ fRegionalSteppingAction = rusa; }
// ********************************************************************
// GetRegionalSteppingAction
// ********************************************************************
//
inline
G4UserSteppingAction* G4Region::GetRegionalSteppingAction() const
{ return fRegionalSteppingAction; }
@@ -25,7 +25,7 @@
//
//
// $Id: G4RegionStore.hh,v 1.10 2006/11/30 10:39:28 gcosmo Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
// class G4RegionStore
//
@@ -25,7 +25,7 @@
//
//
// $Id: G4SmartVoxelHeader.hh,v 1.10 2006/06/29 18:32:06 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
// class G4SmartVoxelHeader
//
@@ -25,7 +25,7 @@
//
//
// $Id: G4SmartVoxelHeader.icc,v 1.6 2006/06/29 18:32:09 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// G4SmartVoxelHeader Inline implementation
@@ -25,7 +25,7 @@
//
//
// $Id: G4SmartVoxelNode.hh,v 1.10 2006/06/29 18:32:13 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
// class G4SmartVoxelNode
//
@@ -25,7 +25,7 @@
//
//
// $Id: G4SmartVoxelNode.icc,v 1.5 2006/06/29 18:32:15 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// G4SmartVoxelNode Inline implementation
@@ -25,7 +25,7 @@
//
//
// $Id: G4SmartVoxelProxy.hh,v 1.8 2006/06/29 18:32:17 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
// class G4SmartVoxelProxy
//
@@ -25,7 +25,7 @@
//
//
// $Id: G4SmartVoxelProxy.icc,v 1.4 2006/06/29 18:32:19 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// G4SmartVoxelProxy Inline implementation
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: G4SmartVoxelStat.hh,v 1.4 2006/06/29 18:32:21 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
// --------------------------------------------------------------------
// GEANT 4 class header file
@@ -25,7 +25,7 @@
//
//
// $Id: G4SolidStore.hh,v 1.13 2007/04/10 10:13:50 gcosmo Exp $
// GEANT4 tag $Name: geant4-08-03 $
// GEANT4 tag $Name: geant4-09-00 $
//
// class G4SolidStore
//
@@ -25,7 +25,7 @@
//
//
// $Id: G4TouchableHandle.hh,v 1.6 2006/06/29 18:32:25 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
// Class G4TouchableHandle
//
@@ -25,7 +25,7 @@
//
//
// $Id: G4VCurvedTrajectoryFilter.hh,v 1.3 2006/06/29 18:32:27 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// class G4VCurevedTrajectoryFilter
@@ -25,7 +25,7 @@
//
//
// $Id: G4VNestedParameterisation.hh,v 1.6 2006/06/29 18:32:29 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
// class G4VNestedParameterisation
//
@@ -25,7 +25,7 @@
//
//
// $Id: G4VPVDivisionFactory.hh,v 1.2 2006/06/29 18:32:31 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// class G4VPVDivisionFactory
@@ -25,7 +25,7 @@
//
//
// $Id: G4VPVParameterisation.hh,v 1.12 2006/06/29 18:32:33 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
// class G4VPVParamterisation
//
@@ -25,7 +25,7 @@
//
//
// $Id: G4VPhysicalVolume.hh,v 1.17 2007/04/11 08:00:12 gcosmo Exp $
// GEANT4 tag $Name: geant4-08-03 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// class G4VPhysicalVolume
@@ -25,7 +25,7 @@
//
//
// $Id: G4VPhysicalVolume.icc,v 1.10 2006/06/29 18:32:37 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// class G4VPhysicalVolume Inline Implementation
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4VSolid.hh,v 1.25 2006/10/19 15:43:40 gcosmo Exp $
// GEANT4 tag $Name: geant4-08-02 $
// $Id: G4VSolid.hh,v 1.26 2007/05/11 13:30:12 gcosmo Exp $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// class G4VSolid
@@ -107,6 +107,9 @@ class G4VSolid
inline void SetName(const G4String& name);
// Sets the current shape's name.
inline G4double GetTolerance() const;
// Returns the cached geometrical tolerance.
virtual G4bool CalculateExtent(const EAxis pAxis,
const G4VoxelLimits& pVoxelLimit,
const G4AffineTransform& pTransform,
@@ -290,6 +293,10 @@ class G4VSolid
// Accuracy is limited by the second argument or the statistics
// expressed by the first argument.
protected:
G4double kCarTolerance; // Cached geometrical tolerance
private:
void ClipPolygonToSimpleLimits(G4ThreeVectorList& pPolygon,
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4VSolid.icc,v 1.8 2006/06/29 18:33:00 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// $Id: G4VSolid.icc,v 1.9 2007/05/11 13:30:12 gcosmo Exp $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// G4VSolid Inline implementation
@@ -55,3 +55,9 @@ void G4VSolid::SetName(const G4String& name)
{
fshapeName=name;
}
inline
G4double G4VSolid::GetTolerance() const
{
return kCarTolerance;
}
@@ -25,7 +25,7 @@
//
//
// $Id: G4VStoreNotifier.hh,v 1.3 2006/06/29 18:33:02 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
// class G4VStoreNotifier
//
@@ -25,7 +25,7 @@
//
//
// $Id: G4VTouchable.hh,v 1.9 2006/06/29 18:33:05 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// class G4VTouchable
@@ -25,7 +25,7 @@
//
//
// $Id: G4VTouchable.icc,v 1.9 2006/06/29 18:33:07 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// class G4VTouchable Inline implementation
@@ -25,7 +25,7 @@
//
//
// $Id: G4VUserRegionInformation.hh,v 1.4 2006/06/29 18:33:09 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// --------------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4VVolumeMaterialScanner.hh,v 1.4 2006/06/29 18:33:11 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
// class G4VVolumeMaterialScanner
//
@@ -25,7 +25,7 @@
//
//
// $Id: G4VoxelLimits.hh,v 1.9 2006/06/29 18:33:13 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
// class G4VoxelLimits
//
@@ -25,7 +25,7 @@
//
//
// $Id: G4VoxelLimits.icc,v 1.4 2006/06/29 18:33:15 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// G4VoxelLimits Inline implementation
@@ -25,7 +25,7 @@
//
//
// $Id: meshdefs.hh,v 1.7 2006/06/29 18:33:17 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// Tube/Cone Meshing constants for extent calculations
@@ -25,7 +25,7 @@
//
//
// $Id: voxeldefs.hh,v 1.7 2006/06/29 18:33:19 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
//
@@ -25,7 +25,7 @@
//
//
// $Id: G4BlockingList.cc,v 1.3 2006/06/29 18:33:21 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// class G4BlockingList Implementation
@@ -0,0 +1,226 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * 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. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
// $Id: G4ErrorCylSurfaceTarget.cc,v 1.4 2007/06/20 12:50:48 arce Exp $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// --------------------------------------------------------------------
// GEANT 4 class implementation file
// --------------------------------------------------------------------
#include "G4ErrorCylSurfaceTarget.hh"
#include "G4GeometryTolerance.hh"
#ifdef G4VERBOSE
#include "G4ErrorPropagatorData.hh" //for verbosity checking
#endif
#include "geomdefs.hh"
#include "G4Plane3D.hh"
//---------------------------------------------------------------------
G4ErrorCylSurfaceTarget::
G4ErrorCylSurfaceTarget( const G4double& radius,
const G4ThreeVector& trans,
const G4RotationMatrix& rotm )
: fradius(radius)
{
theType = G4ErrorTarget_CylindricalSurface;
ftransform = G4AffineTransform( rotm.inverse(), -trans );
#ifdef G4VERBOSE
if(G4ErrorPropagatorData::verbose() >= 2 ) {
Dump( " $$$ creating G4ErrorCylSurfaceTarget ");
}
#endif
}
//---------------------------------------------------------------------
G4ErrorCylSurfaceTarget::
G4ErrorCylSurfaceTarget( const G4double& radius,
const G4AffineTransform& trans )
: fradius(radius), ftransform(trans.Inverse())
{
theType = G4ErrorTarget_CylindricalSurface;
#ifdef G4VERBOSE
if(G4ErrorPropagatorData::verbose() >= 2 )
{
Dump( " $$$ creating G4ErrorCylSurfaceTarget ");
}
#endif
}
//---------------------------------------------------------------------
G4ErrorCylSurfaceTarget::~G4ErrorCylSurfaceTarget()
{
}
//---------------------------------------------------------------------
G4double G4ErrorCylSurfaceTarget::
GetDistanceFromPoint( const G4ThreeVector& point,
const G4ThreeVector& dir ) const
{
if( dir.mag() == 0. )
{
G4Exception("G4ErrorCylSurfaceTarget::GetDistanceFromPoint()",
"InvalidSetup", FatalException, "Direction is zero !");
}
//----- Get intersection point
G4ThreeVector localPoint = ftransform.TransformPoint( point );
G4ThreeVector localDir = ftransform.TransformAxis( dir );
G4ThreeVector inters = IntersectLocal(localPoint, localDir);
G4double dist = (localPoint-inters).mag();
#ifdef G4VERBOSE
if(G4ErrorPropagatorData::verbose() >= 3 )
{
G4cout << " G4ErrorCylSurfaceTarget::GetDistanceFromPoint():" << G4endl
<< " Global point " << point << " dir " << dir << G4endl
<< " Intersection " << inters << G4endl
<< " Distance " << dist << G4endl;
Dump( " CylSurface: " );
}
#endif
return dist;
}
//---------------------------------------------------------------------
G4double G4ErrorCylSurfaceTarget::
GetDistanceFromPoint( const G4ThreeVector& point ) const
{
G4ThreeVector localPoint = ftransform.TransformPoint( point );
#ifdef G4VERBOSE
if(G4ErrorPropagatorData::verbose() >= 3 )
{
G4cout << " G4ErrorCylSurfaceTarget::GetDistanceFromPoint:" << G4endl
<< " Global point " << point << G4endl
<< " Distance " << fradius - localPoint.perp() << G4endl;
Dump( " CylSurface: " );
}
#endif
return fradius - localPoint.perp();
}
//---------------------------------------------------------------------
G4ThreeVector G4ErrorCylSurfaceTarget::
IntersectLocal( const G4ThreeVector& localPoint,
const G4ThreeVector& localDir ) const
{
G4double eqa = localDir.x()*localDir.x()+localDir.y()*localDir.y();
G4double eqb = 2*(localPoint.x()*localDir.x()+localPoint.y()*localDir.y());
G4double eqc = -fradius*fradius+localPoint.x()*localPoint.x()
+localPoint.y()*localPoint.y();
G4int inside = (localPoint.perp() > fradius) ? -1 : 1;
G4double lambda;
if( eqa*inside > 0. )
{
lambda = (-eqb + std::sqrt(eqb*eqb-4*eqa*eqc) ) / (2.*eqa);
}
else if( eqa*inside < 0. )
{
lambda = (-eqb - std::sqrt(eqb*eqb-4*eqa*eqc) ) / (2.*eqa);
}
else
{
if( eqb != 0. )
{
lambda = -eqc/eqb;
}
else
{
G4cerr << "WARNING - G4ErrorCylSurfaceTarget::IntersectLocal()" << G4endl
<< " Point: " << localPoint << ", direction: "
<< localDir << G4endl;
Dump( " CylSurface: " );
G4Exception("G4ErrorCylSurfaceTarget::IntersectLocal()",
"IllegalCondition",
JustWarning, "Intersection not possible !");
lambda = kInfinity;
}
}
G4ThreeVector inters = localPoint + lambda*localDir/localDir.mag();
#ifdef G4VERBOSE
if(G4ErrorPropagatorData::verbose() >= 4 ) {
G4cout << " G4ErrorCylSurfaceTarget::IntersectLocal " << inters << " " << inters.perp() << " localPoint " << localPoint << " localDir " << localDir << G4endl;
}
#endif
return inters;
}
//---------------------------------------------------------------------
G4Plane3D G4ErrorCylSurfaceTarget::
GetTangentPlane( const G4ThreeVector& point ) const
{
G4ThreeVector localPoint = ftransform.TransformPoint( point );
// check that point is at cylinder surface
//
if( std::fabs( localPoint.perp() - fradius )
> 1000.*G4GeometryTolerance::GetInstance()->GetSurfaceTolerance() )
{
G4cerr << "WARNING - G4ErrorCylSurfaceTarget::GetTangentPlane()" << G4endl
<< " Point: " << point << ", local: " << localPoint
<< G4endl
<< " is not at surface, but far away by: "
<< localPoint.perp() - fradius << " !" << G4endl;
G4Exception("G4ErrorCylSurfaceTarget::GetTangentPlane()",
"IllegalCondition", JustWarning,
"Local point not at surface !");
}
G4Normal3D normal = localPoint - ftransform.NetTranslation();
return G4Plane3D( normal, point );
}
//---------------------------------------------------------------------
void G4ErrorCylSurfaceTarget::Dump( const G4String& msg ) const
{
G4cout << msg << " radius " << fradius
<< " centre " << ftransform.NetTranslation()
<< " rotation " << ftransform.NetRotation() << G4endl;
}
@@ -0,0 +1,180 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * 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. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
// $Id: G4ErrorPlaneSurfaceTarget.cc,v 1.2 2007/06/19 11:28:39 gcosmo Exp $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// --------------------------------------------------------------------
// GEANT 4 class implementation file
// --------------------------------------------------------------------
#include "G4ErrorPlaneSurfaceTarget.hh"
#ifdef G4VERBOSE
#include "G4ErrorPropagatorData.hh" //for verbosity checking
#endif
#include "G4Point3D.hh"
#include "G4ThreeVector.hh"
//---------------------------------------------------------------------
G4ErrorPlaneSurfaceTarget::
G4ErrorPlaneSurfaceTarget(G4double a, G4double b, G4double c, G4double d)
: G4Plane3D( a, b, c, d )
{
theType = G4ErrorTarget_PlaneSurface;
#ifdef G4VERBOSE
if(G4ErrorPropagatorData::verbose() >= 2 )
{
Dump( " $$$ creating G4ErrorPlaneSurfaceTarget from parameters");
}
#endif
}
//---------------------------------------------------------------------
G4ErrorPlaneSurfaceTarget::
G4ErrorPlaneSurfaceTarget(const G4Normal3D &n, const G4Point3D &p)
: G4Plane3D( n, p )
{
theType = G4ErrorTarget_PlaneSurface;
#ifdef G4VERBOSE
if(G4ErrorPropagatorData::verbose() >= 2 )
{
Dump( " $$$ creating G4ErrorPlaneSurfaceTarget from point and normal");
}
#endif
}
//---------------------------------------------------------------------
G4ErrorPlaneSurfaceTarget::
G4ErrorPlaneSurfaceTarget(const G4Point3D &p1,
const G4Point3D &p2,
const G4Point3D &p3)
: G4Plane3D( p1, p2, p3 )
{
theType = G4ErrorTarget_PlaneSurface;
#ifdef G4VERBOSE
if(G4ErrorPropagatorData::verbose() >= 2 )
{
Dump( " $$$ creating G4ErrorPlaneSurfaceTarget from three points");
}
#endif
}
//---------------------------------------------------------------------
G4ErrorPlaneSurfaceTarget::~G4ErrorPlaneSurfaceTarget()
{
}
//---------------------------------------------------------------------
G4ThreeVector G4ErrorPlaneSurfaceTarget::
Intersect( const G4ThreeVector& pt, const G4ThreeVector& dir ) const
{
G4double lam = GetDistanceFromPoint( pt, dir );
G4Point3D inters = pt + lam * dir;
#ifdef G4VERBOSE
if(G4ErrorPropagatorData::verbose() >= 4 )
{
G4cerr << " $$$ creating G4ErrorPlaneSurfaceTarget::Intersect "
<< inters << G4endl;
}
#endif
return inters;
}
//---------------------------------------------------------------------
G4double G4ErrorPlaneSurfaceTarget::
GetDistanceFromPoint( const G4ThreeVector& pt, const G4ThreeVector& dir ) const
{
if( std::fabs( dir.mag() -1. ) > 1.E-6 )
{
G4cerr << "WARNING - G4ErrorPlaneSurfaceTarget::GetDistanceFromPoint()"
<< G4endl
<< " Direction is not a unit vector: " << dir << " !"
<< G4endl;
}
G4double dist = -(a_ * pt.x() + b_ * pt.y() + c_ * pt.z() + d_)
/ (a_ * dir.x() + b_ * dir.y() + c_ * dir.z() );
#ifdef G4VERBOSE
if(G4ErrorPropagatorData::verbose() >= 3 )
{
G4cout << " G4ErrorPlaneSurfaceTarget::GetDistanceFromPoint()" << G4endl
<< " Point: " << pt << ", Direction: " << dir << G4endl
<< " Distance: " << dist << G4endl;
}
#endif
return dist;
}
//---------------------------------------------------------------------
G4double G4ErrorPlaneSurfaceTarget::
GetDistanceFromPoint( const G4ThreeVector& pt ) const
{
G4ThreeVector vec = point() - pt;
G4double alpha = std::acos( vec * normal() / vec.mag() / normal().mag() );
G4double dist = std::fabs(vec.mag() * std::cos( alpha ));
#ifdef G4VERBOSE
if(G4ErrorPropagatorData::verbose() >= 3 )
{
G4cout << " G4ErrorPlaneSurfaceTarget::GetDistanceFromPoint()" << G4endl
<< " Point: " << pt << G4endl
<< " Distance: " << dist << G4endl;
}
#endif
return dist;
}
//---------------------------------------------------------------------
G4Plane3D G4ErrorPlaneSurfaceTarget::
GetTangentPlane( const G4ThreeVector& ) const
{
return *this;
}
void G4ErrorPlaneSurfaceTarget::Dump( const G4String& msg ) const
{
G4cout << msg << " point = " << point()
<< " normal = " << normal() << G4endl;
}
@@ -0,0 +1,38 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * 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. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
// $Id: G4ErrorSurfaceTarget.cc,v 1.1 2007/05/16 12:50:52 gcosmo Exp $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// --------------------------------------------------------------------
// GEANT 4 class implementation file
// --------------------------------------------------------------------
#include "G4ErrorSurfaceTarget.hh"
G4ErrorSurfaceTarget::G4ErrorSurfaceTarget(){}
G4ErrorSurfaceTarget::~G4ErrorSurfaceTarget(){}
@@ -0,0 +1,38 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * 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. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
// $Id: G4ErrorTanPlaneTarget.cc,v 1.1 2007/05/16 12:50:52 gcosmo Exp $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// --------------------------------------------------------------------
// GEANT 4 class implementation file
// --------------------------------------------------------------------
#include "G4ErrorTanPlaneTarget.hh"
G4ErrorTanPlaneTarget::G4ErrorTanPlaneTarget(){}
G4ErrorTanPlaneTarget::~G4ErrorTanPlaneTarget(){}
@@ -0,0 +1,54 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * 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. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
// $Id: G4ErrorTarget.cc,v 1.1 2007/05/16 12:50:52 gcosmo Exp $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// --------------------------------------------------------------------
// GEANT 4 class implementation file
// --------------------------------------------------------------------
#include "G4ErrorTarget.hh"
G4ErrorTarget::G4ErrorTarget(){}
G4ErrorTarget::~G4ErrorTarget(){}
G4double G4ErrorTarget::GetDistanceFromPoint( const G4ThreeVector&,
const G4ThreeVector& ) const
{
return DBL_MAX;
}
G4double G4ErrorTarget::GetDistanceFromPoint( const G4ThreeVector& ) const
{
return DBL_MAX;
}
G4bool G4ErrorTarget::TargetReached(const G4Step*)
{
return 0;
}
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4GeometryManager.cc,v 1.18 2006/06/29 18:33:23 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// $Id: G4GeometryManager.cc,v 1.19 2007/05/11 13:30:12 gcosmo Exp $
// GEANT4 tag $Name: geant4-09-00 $
//
// class G4GeometryManager
//
@@ -50,6 +50,12 @@
#include "G4SmartVoxelHeader.hh"
#include "voxeldefs.hh"
// Needed for setting the extent for tolerance value
//
#include "G4GeometryTolerance.hh"
#include "G4SolidStore.hh"
#include "G4VSolid.hh"
// ***************************************************************************
// Static class variable: ptr to single instance of class
// ***************************************************************************
@@ -61,8 +67,8 @@ G4GeometryManager* G4GeometryManager::fgInstance = 0;
// ***************************************************************************
//
G4GeometryManager::G4GeometryManager()
: fIsClosed(false)
{
fIsClosed=false;
}
// ***************************************************************************
@@ -261,7 +267,10 @@ void G4GeometryManager::BuildOptimisations(G4bool allOpts,
// Scan recursively the associated logical volume tree
//
tVolume = pVolume->GetLogicalVolume();
if (tVolume->GetNoDaughters()) { BuildOptimisations(allOpts, tVolume->GetDaughter(0)); }
if (tVolume->GetNoDaughters())
{
BuildOptimisations(allOpts, tVolume->GetDaughter(0));
}
}
// ***************************************************************************
@@ -301,7 +310,29 @@ void G4GeometryManager::DeleteOptimisations(G4VPhysicalVolume* pVolume)
// Scan recursively the associated logical volume tree
//
tVolume = pVolume->GetLogicalVolume();
if (tVolume->GetNoDaughters()) { DeleteOptimisations(tVolume->GetDaughter(0)); }
if (tVolume->GetNoDaughters())
{
DeleteOptimisations(tVolume->GetDaughter(0));
}
}
// ***************************************************************************
// Sets the maximum extent of the world volume. The operation is allowed only
// if NO solids have been created already.
// ***************************************************************************
//
void G4GeometryManager::SetWorldMaximumExtent(G4double extent)
{
if (G4SolidStore::GetInstance()->size())
{
// Sanity check to assure that extent is fixed BEFORE creating
// any geometry object (solids in this case)
//
G4Exception("G4GeometryManager::SetMaximumExtent()",
"NotApplicable", FatalException,
"Extent can be set only BEFORE creating any geometry object!");
}
G4GeometryTolerance::GetInstance()->SetSurfaceTolerance(extent);
}
// ***************************************************************************
@@ -25,7 +25,7 @@
//
//
// $Id: G4IdentityTrajectoryFilter.cc,v 1.4 2006/10/02 10:09:24 gcosmo Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
// ------------------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4LogicalVolume.cc,v 1.32 2006/11/30 10:39:28 gcosmo Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// class G4LogicalVolume Implementation
@@ -25,7 +25,7 @@
//
//
// $Id: G4LogicalVolumeStore.cc,v 1.18 2007/04/10 10:13:50 gcosmo Exp $
// GEANT4 tag $Name: geant4-08-03 $
// GEANT4 tag $Name: geant4-09-00 $
//
// G4LogicalVolumeStore
//
@@ -25,7 +25,7 @@
//
//
// $Id: G4PhysicalVolumeStore.cc,v 1.19 2007/04/10 10:13:50 gcosmo Exp $
// GEANT4 tag $Name: geant4-08-03 $
// GEANT4 tag $Name: geant4-09-00 $
//
// G4PhysicalVolumeStore
//
@@ -26,7 +26,7 @@
//
// $Id: G4ReflectedSolid.cc,v 1.11 2006/11/08 09:56:33 gcosmo Exp $
//
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
// Implementation for G4ReflectedSolid class for boolean
// operations between other solids
+4 -4
View File
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4Region.cc,v 1.22 2007/03/20 22:29:50 gcosmo Exp $
// GEANT4 tag $Name: geant4-08-03 $
// $Id: G4Region.cc,v 1.23 2007/04/26 21:20:53 asaim Exp $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// class G4Region Implementation
@@ -47,7 +47,7 @@
//
G4Region::G4Region(const G4String& pName)
: fName(pName), fRegionMod(true), fCut(0), fUserInfo(0), fUserLimits(0),
fFastSimulationManager(0), fWorldPhys(0)
fFastSimulationManager(0), fWorldPhys(0), fRegionalSteppingAction(0)
{
G4RegionStore* rStore = G4RegionStore::GetInstance();
if (rStore->GetRegion(pName,false))
@@ -71,7 +71,7 @@ G4Region::G4Region(const G4String& pName)
//
G4Region::G4Region( __void__& )
: fName(""), fRegionMod(true), fCut(0), fUserInfo(0), fUserLimits(0),
fFastSimulationManager(0), fWorldPhys(0)
fFastSimulationManager(0), fWorldPhys(0), fRegionalSteppingAction(0)
{
// Register to store
//
@@ -25,7 +25,7 @@
//
//
// $Id: G4RegionStore.cc,v 1.13 2007/04/10 10:13:50 gcosmo Exp $
// GEANT4 tag $Name: geant4-08-03 $
// GEANT4 tag $Name: geant4-09-00 $
//
// G4RegionStore
//
@@ -25,7 +25,7 @@
//
//
// $Id: G4SmartVoxelHeader.cc,v 1.28 2006/06/29 18:33:42 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// class G4SmartVoxelHeader
@@ -25,7 +25,7 @@
//
//
// $Id: G4SmartVoxelNode.cc,v 1.6 2006/06/29 18:33:45 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
// Class G4SmartVoxelNode
//
@@ -25,7 +25,7 @@
//
//
// $Id: G4SmartVoxelProxy.cc,v 1.3 2006/06/29 18:33:48 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
// Class G4SmartVoxelProxy
//
@@ -25,7 +25,7 @@
//
//
// $Id: G4SmartVoxelStat.cc,v 1.3 2006/06/29 18:33:50 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
// --------------------------------------------------------------------
// GEANT 4 class source file
@@ -25,7 +25,7 @@
//
//
// $Id: G4SolidStore.cc,v 1.17 2007/04/10 10:13:50 gcosmo Exp $
// GEANT4 tag $Name: geant4-08-03 $
// GEANT4 tag $Name: geant4-09-00 $
//
// G4SolidStore
//
@@ -25,7 +25,7 @@
//
//
// $Id: G4VCurvedTrajectoryFilter.cc,v 1.3 2006/06/29 18:33:56 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
// --------------------------------------------------------------------
#include "G4VCurvedTrajectoryFilter.hh"
@@ -25,7 +25,7 @@
//
//
// $Id: G4VNestedParameterisation.cc,v 1.6 2006/06/29 18:33:59 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
// class G4VNestedParameterisation implementation
//
@@ -25,7 +25,7 @@
//
//
// $Id: G4VPVDivisionFactory.cc,v 1.2 2006/06/29 18:34:02 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
// class G4VPVDivisionFactory Implementation file
//
@@ -25,7 +25,7 @@
//
//
// $Id: G4VPVParameterisation.cc,v 1.7 2006/06/29 18:34:04 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
// Default implementations for Parameterisations that do not
// parameterise solid and/or material.
@@ -25,7 +25,7 @@
//
//
// $Id: G4VPhysicalVolume.cc,v 1.14 2007/04/11 08:00:12 gcosmo Exp $
// GEANT4 tag $Name: geant4-08-03 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
// class G4VPhysicalVolume Implementation
+5 -2
View File
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4VSolid.cc,v 1.33 2006/10/23 08:33:40 gcosmo Exp $
// GEANT4 tag $Name: geant4-08-02 $
// $Id: G4VSolid.cc,v 1.34 2007/05/11 13:30:12 gcosmo Exp $
// GEANT4 tag $Name: geant4-09-00 $
//
// class G4VSolid
//
@@ -46,6 +46,7 @@
#include "G4SolidStore.hh"
#include "globals.hh"
#include "Randomize.hh"
#include "G4GeometryTolerance.hh"
#include "G4VoxelLimits.hh"
#include "G4AffineTransform.hh"
@@ -60,6 +61,8 @@
G4VSolid::G4VSolid(const G4String& name)
: fshapeName(name)
{
kCarTolerance = G4GeometryTolerance::GetInstance()->GetSurfaceTolerance();
// Register to store
//
G4SolidStore::GetInstance()->Register(this);
@@ -25,7 +25,7 @@
//
//
// $Id: G4VoxelLimits.cc,v 1.11 2006/06/29 18:34:11 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
// class G4VoxelLimits
//