Changeset 850 for trunk/source/geometry
- Timestamp:
- Sep 10, 2008, 5:40:37 PM (17 years ago)
- Location:
- trunk/source/geometry
- Files:
-
- 579 edited
-
History (modified) (2 diffs)
-
biasing/include/G4GeometryCell.hh (modified) (1 diff)
-
biasing/include/G4GeometryCellComp.hh (modified) (1 diff)
-
biasing/include/G4GeometryCellImportance.hh (modified) (1 diff)
-
biasing/include/G4GeometryCellStep.hh (modified) (1 diff)
-
biasing/include/G4GeometryCellStepStream.hh (modified) (1 diff)
-
biasing/include/G4GeometryCellWeight.hh (modified) (1 diff)
-
biasing/include/G4IStore.hh (modified) (1 diff)
-
biasing/include/G4ImportanceAlgorithm.hh (modified) (1 diff)
-
biasing/include/G4Nsplit_Weight.hh (modified) (1 diff)
-
biasing/include/G4VCellScorer.hh (modified) (1 diff)
-
biasing/include/G4VCellScorerStore.hh (modified) (1 diff)
-
biasing/include/G4VGCellFinder.hh (modified) (1 diff)
-
biasing/include/G4VIStore.hh (modified) (1 diff)
-
biasing/include/G4VImportanceAlgorithm.hh (modified) (1 diff)
-
biasing/include/G4VImportanceSplitExaminer.hh (modified) (1 diff)
-
biasing/include/G4VWeightWindowAlgorithm.hh (modified) (1 diff)
-
biasing/include/G4VWeightWindowStore.hh (modified) (1 diff)
-
biasing/include/G4WeightWindowAlgorithm.hh (modified) (1 diff)
-
biasing/include/G4WeightWindowStore.hh (modified) (1 diff)
-
biasing/src/G4GeometryCell.cc (modified) (1 diff)
-
biasing/src/G4GeometryCellComp.cc (modified) (1 diff)
-
biasing/src/G4GeometryCellImportance.cc (modified) (1 diff)
-
biasing/src/G4GeometryCellStep.cc (modified) (1 diff)
-
biasing/src/G4GeometryCellStepStream.cc (modified) (1 diff)
-
biasing/src/G4IStore.cc (modified) (1 diff)
-
biasing/src/G4ImportanceAlgorithm.cc (modified) (1 diff)
-
biasing/src/G4Nsplit_Weight.cc (modified) (1 diff)
-
biasing/src/G4VCellScorer.cc (modified) (1 diff)
-
biasing/src/G4VCellScorerStore.cc (modified) (1 diff)
-
biasing/src/G4VGCellFinder.cc (modified) (1 diff)
-
biasing/src/G4VIStore.cc (modified) (1 diff)
-
biasing/src/G4VImportanceAlgorithm.cc (modified) (1 diff)
-
biasing/src/G4VImportanceSplitExaminer.cc (modified) (1 diff)
-
biasing/src/G4VWeightWindowAlgorithm.cc (modified) (1 diff)
-
biasing/src/G4VWeightWindowStore.cc (modified) (1 diff)
-
biasing/src/G4WeightWindowAlgorithm.cc (modified) (1 diff)
-
biasing/src/G4WeightWindowStore.cc (modified) (1 diff)
-
divisions/History (modified) (2 diffs)
-
divisions/include/G4PVDivision.hh (modified) (2 diffs)
-
divisions/include/G4PVDivisionFactory.hh (modified) (1 diff)
-
divisions/include/G4ParameterisationBox.hh (modified) (1 diff)
-
divisions/include/G4ParameterisationCons.hh (modified) (1 diff)
-
divisions/include/G4ParameterisationPara.hh (modified) (1 diff)
-
divisions/include/G4ParameterisationPolycone.hh (modified) (1 diff)
-
divisions/include/G4ParameterisationPolyhedra.hh (modified) (1 diff)
-
divisions/include/G4ParameterisationTrd.hh (modified) (1 diff)
-
divisions/include/G4ParameterisationTubs.hh (modified) (1 diff)
-
divisions/include/G4VDivisionParameterisation.hh (modified) (1 diff)
-
divisions/include/G4VDivisionParameterisation.icc (modified) (1 diff)
-
divisions/src/G4PVDivision.cc (modified) (6 diffs)
-
divisions/src/G4PVDivisionFactory.cc (modified) (1 diff)
-
divisions/src/G4ParameterisationBox.cc (modified) (1 diff)
-
divisions/src/G4ParameterisationCons.cc (modified) (1 diff)
-
divisions/src/G4ParameterisationPara.cc (modified) (1 diff)
-
divisions/src/G4ParameterisationPolycone.cc (modified) (1 diff)
-
divisions/src/G4ParameterisationPolyhedra.cc (modified) (1 diff)
-
divisions/src/G4ParameterisationTrd.cc (modified) (1 diff)
-
divisions/src/G4ParameterisationTubs.cc (modified) (1 diff)
-
divisions/src/G4VDivisionParameterisation.cc (modified) (2 diffs)
-
magneticfield/History (modified) (2 diffs)
-
magneticfield/include/G4CashKarpRKF45.hh (modified) (1 diff)
-
magneticfield/include/G4ChordFinder.hh (modified) (3 diffs)
-
magneticfield/include/G4ChordFinder.icc (modified) (2 diffs)
-
magneticfield/include/G4ChordFinderSaf.hh (modified) (1 diff)
-
magneticfield/include/G4ClassicalRK4.hh (modified) (1 diff)
-
magneticfield/include/G4DELPHIMagField.hh (modified) (1 diff)
-
magneticfield/include/G4ElectricField.hh (modified) (1 diff)
-
magneticfield/include/G4ElectroMagneticField.hh (modified) (1 diff)
-
magneticfield/include/G4EqEMFieldWithSpin.hh (modified) (1 diff)
-
magneticfield/include/G4EqMagElectricField.hh (modified) (1 diff)
-
magneticfield/include/G4EquationOfMotion.hh (modified) (1 diff)
-
magneticfield/include/G4EquationOfMotion.icc (modified) (1 diff)
-
magneticfield/include/G4ErrorMag_UsualEqRhs.hh (modified) (1 diff)
-
magneticfield/include/G4ExactHelixStepper.hh (modified) (1 diff)
-
magneticfield/include/G4ExplicitEuler.hh (modified) (1 diff)
-
magneticfield/include/G4Field.hh (modified) (1 diff)
-
magneticfield/include/G4FieldManager.hh (modified) (1 diff)
-
magneticfield/include/G4FieldManager.icc (modified) (1 diff)
-
magneticfield/include/G4FieldManagerStore.hh (modified) (1 diff)
-
magneticfield/include/G4FieldTrack.hh (modified) (1 diff)
-
magneticfield/include/G4FieldTrack.icc (modified) (1 diff)
-
magneticfield/include/G4HarmonicPolMagField.hh (modified) (1 diff)
-
magneticfield/include/G4HelixExplicitEuler.hh (modified) (1 diff)
-
magneticfield/include/G4HelixHeum.hh (modified) (1 diff)
-
magneticfield/include/G4HelixImplicitEuler.hh (modified) (1 diff)
-
magneticfield/include/G4HelixSimpleRunge.hh (modified) (1 diff)
-
magneticfield/include/G4ImplicitEuler.hh (modified) (1 diff)
-
magneticfield/include/G4LineCurrentMagField.hh (modified) (1 diff)
-
magneticfield/include/G4LineSection.hh (modified) (1 diff)
-
magneticfield/include/G4MagErrorStepper.hh (modified) (1 diff)
-
magneticfield/include/G4MagErrorStepper.icc (modified) (1 diff)
-
magneticfield/include/G4MagHelicalStepper.hh (modified) (1 diff)
-
magneticfield/include/G4MagHelicalStepper.icc (modified) (1 diff)
-
magneticfield/include/G4MagIntegratorDriver.hh (modified) (1 diff)
-
magneticfield/include/G4MagIntegratorDriver.icc (modified) (1 diff)
-
magneticfield/include/G4MagIntegratorStepper.hh (modified) (1 diff)
-
magneticfield/include/G4MagIntegratorStepper.icc (modified) (1 diff)
-
magneticfield/include/G4Mag_EqRhs.hh (modified) (1 diff)
-
magneticfield/include/G4Mag_SpinEqRhs.hh (modified) (1 diff)
-
magneticfield/include/G4Mag_UsualEqRhs.hh (modified) (1 diff)
-
magneticfield/include/G4MagneticField.hh (modified) (1 diff)
-
magneticfield/include/G4QuadrupoleMagField.hh (modified) (1 diff)
-
magneticfield/include/G4RKG3_Stepper.hh (modified) (1 diff)
-
magneticfield/include/G4SimpleHeum.hh (modified) (1 diff)
-
magneticfield/include/G4SimpleRunge.hh (modified) (1 diff)
-
magneticfield/include/G4UniformElectricField.hh (modified) (1 diff)
-
magneticfield/include/G4UniformMagField.hh (modified) (1 diff)
-
magneticfield/src/G4CashKarpRKF45.cc (modified) (1 diff)
-
magneticfield/src/G4ChordFinder.cc (modified) (14 diffs)
-
magneticfield/src/G4ClassicalRK4.cc (modified) (1 diff)
-
magneticfield/src/G4DELPHIMagField.cc (modified) (1 diff)
-
magneticfield/src/G4ElectricField.cc (modified) (1 diff)
-
magneticfield/src/G4ElectroMagneticField.cc (modified) (1 diff)
-
magneticfield/src/G4EqEMFieldWithSpin.cc (modified) (1 diff)
-
magneticfield/src/G4EqMagElectricField.cc (modified) (1 diff)
-
magneticfield/src/G4EquationOfMotion.cc (modified) (1 diff)
-
magneticfield/src/G4ErrorMag_UsualEqRhs.cc (modified) (1 diff)
-
magneticfield/src/G4ExactHelixStepper.cc (modified) (1 diff)
-
magneticfield/src/G4ExplicitEuler.cc (modified) (1 diff)
-
magneticfield/src/G4FieldManager.cc (modified) (1 diff)
-
magneticfield/src/G4FieldManagerStore.cc (modified) (1 diff)
-
magneticfield/src/G4FieldTrack.cc (modified) (1 diff)
-
magneticfield/src/G4HarmonicPolMagField.cc (modified) (1 diff)
-
magneticfield/src/G4HelixExplicitEuler.cc (modified) (1 diff)
-
magneticfield/src/G4HelixHeum.cc (modified) (1 diff)
-
magneticfield/src/G4HelixImplicitEuler.cc (modified) (1 diff)
-
magneticfield/src/G4HelixSimpleRunge.cc (modified) (1 diff)
-
magneticfield/src/G4ImplicitEuler.cc (modified) (1 diff)
-
magneticfield/src/G4LineCurrentMagField.cc (modified) (1 diff)
-
magneticfield/src/G4LineSection.cc (modified) (1 diff)
-
magneticfield/src/G4MagErrorStepper.cc (modified) (1 diff)
-
magneticfield/src/G4MagHelicalStepper.cc (modified) (1 diff)
-
magneticfield/src/G4MagIntegratorDriver.cc (modified) (1 diff)
-
magneticfield/src/G4MagIntegratorStepper.cc (modified) (1 diff)
-
magneticfield/src/G4Mag_EqRhs.cc (modified) (1 diff)
-
magneticfield/src/G4Mag_SpinEqRhs.cc (modified) (1 diff)
-
magneticfield/src/G4Mag_UsualEqRhs.cc (modified) (1 diff)
-
magneticfield/src/G4MagneticField.cc (modified) (1 diff)
-
magneticfield/src/G4QuadrupoleMagField.cc (modified) (1 diff)
-
magneticfield/src/G4RKG3_Stepper.cc (modified) (1 diff)
-
magneticfield/src/G4SimpleHeum.cc (modified) (1 diff)
-
magneticfield/src/G4SimpleRunge.cc (modified) (1 diff)
-
magneticfield/src/G4UniformElectricField.cc (modified) (1 diff)
-
magneticfield/src/G4UniformMagField.cc (modified) (1 diff)
-
management/History (modified) (2 diffs)
-
management/include/G4AffineTransform.hh (modified) (1 diff)
-
management/include/G4AffineTransform.icc (modified) (1 diff)
-
management/include/G4BlockingList.hh (modified) (1 diff)
-
management/include/G4BlockingList.icc (modified) (1 diff)
-
management/include/G4ErrorCylSurfaceTarget.hh (modified) (1 diff)
-
management/include/G4ErrorPlaneSurfaceTarget.hh (modified) (1 diff)
-
management/include/G4ErrorSurfaceTarget.hh (modified) (1 diff)
-
management/include/G4ErrorTanPlaneTarget.hh (modified) (1 diff)
-
management/include/G4ErrorTarget.hh (modified) (1 diff)
-
management/include/G4GeometryManager.hh (modified) (1 diff)
-
management/include/G4IdentityTrajectoryFilter.hh (modified) (1 diff)
-
management/include/G4LogicalSurface.hh (modified) (1 diff)
-
management/include/G4LogicalSurface.icc (modified) (1 diff)
-
management/include/G4LogicalVolume.hh (modified) (3 diffs)
-
management/include/G4LogicalVolume.icc (modified) (2 diffs)
-
management/include/G4LogicalVolumeStore.hh (modified) (1 diff)
-
management/include/G4PhysicalVolumeStore.hh (modified) (2 diffs)
-
management/include/G4ReflectedSolid.hh (modified) (1 diff)
-
management/include/G4Region.hh (modified) (2 diffs)
-
management/include/G4Region.icc (modified) (1 diff)
-
management/include/G4RegionStore.hh (modified) (1 diff)
-
management/include/G4SmartVoxelHeader.hh (modified) (1 diff)
-
management/include/G4SmartVoxelHeader.icc (modified) (1 diff)
-
management/include/G4SmartVoxelNode.hh (modified) (1 diff)
-
management/include/G4SmartVoxelNode.icc (modified) (1 diff)
-
management/include/G4SmartVoxelProxy.hh (modified) (1 diff)
-
management/include/G4SmartVoxelProxy.icc (modified) (1 diff)
-
management/include/G4SmartVoxelStat.hh (modified) (1 diff)
-
management/include/G4SolidStore.hh (modified) (1 diff)
-
management/include/G4TouchableHandle.hh (modified) (1 diff)
-
management/include/G4VCurvedTrajectoryFilter.hh (modified) (1 diff)
-
management/include/G4VNestedParameterisation.hh (modified) (1 diff)
-
management/include/G4VPVDivisionFactory.hh (modified) (1 diff)
-
management/include/G4VPVParameterisation.hh (modified) (1 diff)
-
management/include/G4VPhysicalVolume.hh (modified) (1 diff)
-
management/include/G4VPhysicalVolume.icc (modified) (1 diff)
-
management/include/G4VSolid.hh (modified) (1 diff)
-
management/include/G4VSolid.icc (modified) (1 diff)
-
management/include/G4VStoreNotifier.hh (modified) (1 diff)
-
management/include/G4VTouchable.hh (modified) (1 diff)
-
management/include/G4VTouchable.icc (modified) (1 diff)
-
management/include/G4VUserRegionInformation.hh (modified) (1 diff)
-
management/include/G4VVolumeMaterialScanner.hh (modified) (1 diff)
-
management/include/G4VoxelLimits.hh (modified) (1 diff)
-
management/include/G4VoxelLimits.icc (modified) (1 diff)
-
management/include/meshdefs.hh (modified) (1 diff)
-
management/include/voxeldefs.hh (modified) (1 diff)
-
management/src/G4BlockingList.cc (modified) (1 diff)
-
management/src/G4ErrorCylSurfaceTarget.cc (modified) (1 diff)
-
management/src/G4ErrorPlaneSurfaceTarget.cc (modified) (1 diff)
-
management/src/G4ErrorSurfaceTarget.cc (modified) (1 diff)
-
management/src/G4ErrorTanPlaneTarget.cc (modified) (1 diff)
-
management/src/G4ErrorTarget.cc (modified) (1 diff)
-
management/src/G4GeometryManager.cc (modified) (3 diffs)
-
management/src/G4IdentityTrajectoryFilter.cc (modified) (1 diff)
-
management/src/G4LogicalVolume.cc (modified) (4 diffs)
-
management/src/G4LogicalVolumeStore.cc (modified) (2 diffs)
-
management/src/G4PhysicalVolumeStore.cc (modified) (3 diffs)
-
management/src/G4ReflectedSolid.cc (modified) (1 diff)
-
management/src/G4Region.cc (modified) (4 diffs)
-
management/src/G4RegionStore.cc (modified) (2 diffs)
-
management/src/G4SmartVoxelHeader.cc (modified) (1 diff)
-
management/src/G4SmartVoxelNode.cc (modified) (1 diff)
-
management/src/G4SmartVoxelProxy.cc (modified) (1 diff)
-
management/src/G4SmartVoxelStat.cc (modified) (1 diff)
-
management/src/G4SolidStore.cc (modified) (1 diff)
-
management/src/G4VCurvedTrajectoryFilter.cc (modified) (1 diff)
-
management/src/G4VNestedParameterisation.cc (modified) (1 diff)
-
management/src/G4VPVDivisionFactory.cc (modified) (1 diff)
-
management/src/G4VPVParameterisation.cc (modified) (1 diff)
-
management/src/G4VPhysicalVolume.cc (modified) (1 diff)
-
management/src/G4VSolid.cc (modified) (1 diff)
-
management/src/G4VoxelLimits.cc (modified) (1 diff)
-
navigation/History (modified) (2 diffs)
-
navigation/include/G4AuxiliaryNavServices.hh (modified) (1 diff)
-
navigation/include/G4AuxiliaryNavServices.icc (modified) (1 diff)
-
navigation/include/G4DrawVoxels.hh (modified) (1 diff)
-
navigation/include/G4ErrorPropagationNavigator.hh (modified) (1 diff)
-
navigation/include/G4GeomTestErrorList.hh (modified) (1 diff)
-
navigation/include/G4GeomTestLogger.hh (modified) (1 diff)
-
navigation/include/G4GeomTestOverlapList.hh (modified) (1 diff)
-
navigation/include/G4GeomTestOvershootList.hh (modified) (1 diff)
-
navigation/include/G4GeomTestPoint.hh (modified) (1 diff)
-
navigation/include/G4GeomTestSegment.hh (modified) (1 diff)
-
navigation/include/G4GeomTestStreamLogger.hh (modified) (1 diff)
-
navigation/include/G4GeomTestVolPoint.hh (modified) (1 diff)
-
navigation/include/G4GeomTestVolume.hh (modified) (1 diff)
-
navigation/include/G4GeometryMessenger.hh (modified) (1 diff)
-
navigation/include/G4MultiNavigator.hh (modified) (1 diff)
-
navigation/include/G4Navigator.hh (modified) (1 diff)
-
navigation/include/G4Navigator.icc (modified) (1 diff)
-
navigation/include/G4NormalNavigation.hh (modified) (1 diff)
-
navigation/include/G4NormalNavigation.icc (modified) (1 diff)
-
navigation/include/G4ParameterisedNavigation.hh (modified) (1 diff)
-
navigation/include/G4ParameterisedNavigation.icc (modified) (1 diff)
-
navigation/include/G4PathFinder.hh (modified) (1 diff)
-
navigation/include/G4PhantomParameterisation.hh (modified) (1 diff)
-
navigation/include/G4PhantomParameterisation.icc (modified) (1 diff)
-
navigation/include/G4PropagatorInField.hh (modified) (4 diffs)
-
navigation/include/G4PropagatorInField.icc (modified) (3 diffs)
-
navigation/include/G4RegularNavigation.hh (modified) (1 diff)
-
navigation/include/G4ReplicaNavigation.hh (modified) (1 diff)
-
navigation/include/G4ReplicaNavigation.icc (modified) (1 diff)
-
navigation/include/G4SafetyHelper.hh (modified) (1 diff)
-
navigation/include/G4TransportationManager.hh (modified) (1 diff)
-
navigation/include/G4TransportationManager.icc (modified) (1 diff)
-
navigation/include/G4VoxelNavigation.hh (modified) (1 diff)
-
navigation/include/G4VoxelNavigation.icc (modified) (1 diff)
-
navigation/src/G4AuxiliaryNavServices.cc (modified) (1 diff)
-
navigation/src/G4DrawVoxels.cc (modified) (1 diff)
-
navigation/src/G4ErrorPropagationNavigator.cc (modified) (1 diff)
-
navigation/src/G4GeomTestErrorList.cc (modified) (1 diff)
-
navigation/src/G4GeomTestOverlapList.cc (modified) (1 diff)
-
navigation/src/G4GeomTestOvershootList.cc (modified) (1 diff)
-
navigation/src/G4GeomTestPoint.cc (modified) (1 diff)
-
navigation/src/G4GeomTestSegment.cc (modified) (1 diff)
-
navigation/src/G4GeomTestStreamLogger.cc (modified) (1 diff)
-
navigation/src/G4GeomTestVolPoint.cc (modified) (1 diff)
-
navigation/src/G4GeomTestVolume.cc (modified) (1 diff)
-
navigation/src/G4GeometryMessenger.cc (modified) (1 diff)
-
navigation/src/G4NormalNavigation.cc (modified) (1 diff)
-
navigation/src/G4ParameterisedNavigation.cc (modified) (1 diff)
-
navigation/src/G4PathFinder.cc (modified) (1 diff)
-
navigation/src/G4PropagatorInField.cc (modified) (26 diffs)
-
navigation/src/G4ReplicaNavigation.cc (modified) (1 diff)
-
navigation/src/G4TransportationManager.cc (modified) (1 diff)
-
navigation/src/G4VoxelNavigation.cc (modified) (1 diff)
-
solids/BREPS/History (modified) (2 diffs)
-
solids/BREPS/include/G4Assembly.hh (modified) (1 diff)
-
solids/BREPS/include/G4Assembly.icc (modified) (1 diff)
-
solids/BREPS/include/G4Axis2Placement3D.hh (modified) (1 diff)
-
solids/BREPS/include/G4Axis2Placement3D.icc (modified) (1 diff)
-
solids/BREPS/include/G4BREPSolid.hh (modified) (1 diff)
-
solids/BREPS/include/G4BREPSolid.icc (modified) (1 diff)
-
solids/BREPS/include/G4BREPSolidBox.hh (modified) (1 diff)
-
solids/BREPS/include/G4BREPSolidCone.hh (modified) (1 diff)
-
solids/BREPS/include/G4BREPSolidCylinder.hh (modified) (1 diff)
-
solids/BREPS/include/G4BREPSolidOpenPCone.hh (modified) (1 diff)
-
solids/BREPS/include/G4BREPSolidPCone.hh (modified) (1 diff)
-
solids/BREPS/include/G4BREPSolidPolyhedra.hh (modified) (1 diff)
-
solids/BREPS/include/G4BREPSolidSphere.hh (modified) (1 diff)
-
solids/BREPS/include/G4BREPSolidTorus.hh (modified) (1 diff)
-
solids/BREPS/include/G4BSplineCurve.hh (modified) (1 diff)
-
solids/BREPS/include/G4BSplineCurve.icc (modified) (1 diff)
-
solids/BREPS/include/G4BSplineCurveWithKnots.hh (modified) (1 diff)
-
solids/BREPS/include/G4BSplineSurface.hh (modified) (1 diff)
-
solids/BREPS/include/G4BSplineSurface.icc (modified) (1 diff)
-
solids/BREPS/include/G4BSplineSurfaceWithKnots.hh (modified) (1 diff)
-
solids/BREPS/include/G4BezierSurface.hh (modified) (1 diff)
-
solids/BREPS/include/G4BezierSurface.icc (modified) (1 diff)
-
solids/BREPS/include/G4BoundingBox3D.hh (modified) (1 diff)
-
solids/BREPS/include/G4BoundingBox3D.icc (modified) (1 diff)
-
solids/BREPS/include/G4CircularCurve.hh (modified) (1 diff)
-
solids/BREPS/include/G4CircularCurve.icc (modified) (1 diff)
-
solids/BREPS/include/G4CompositeCurve.hh (modified) (1 diff)
-
solids/BREPS/include/G4CompositeCurve.icc (modified) (1 diff)
-
solids/BREPS/include/G4Conic.hh (modified) (1 diff)
-
solids/BREPS/include/G4Conic.icc (modified) (1 diff)
-
solids/BREPS/include/G4ConicalSurface.hh (modified) (1 diff)
-
solids/BREPS/include/G4ConicalSurface.icc (modified) (1 diff)
-
solids/BREPS/include/G4ControlPoints.hh (modified) (1 diff)
-
solids/BREPS/include/G4ControlPoints.icc (modified) (1 diff)
-
solids/BREPS/include/G4ConvexHull.hh (modified) (1 diff)
-
solids/BREPS/include/G4Curve.hh (modified) (1 diff)
-
solids/BREPS/include/G4Curve.icc (modified) (1 diff)
-
solids/BREPS/include/G4CurvePoint.hh (modified) (1 diff)
-
solids/BREPS/include/G4CurvePoint.icc (modified) (1 diff)
-
solids/BREPS/include/G4CurveRayIntersection.hh (modified) (1 diff)
-
solids/BREPS/include/G4CurveRayIntersection.icc (modified) (1 diff)
-
solids/BREPS/include/G4CurveVector.hh (modified) (1 diff)
-
solids/BREPS/include/G4CylindricalSurface.hh (modified) (1 diff)
-
solids/BREPS/include/G4CylindricalSurface.icc (modified) (1 diff)
-
solids/BREPS/include/G4Ellipse.hh (modified) (1 diff)
-
solids/BREPS/include/G4Ellipse.icc (modified) (1 diff)
-
solids/BREPS/include/G4FConicalSurface.hh (modified) (1 diff)
-
solids/BREPS/include/G4FConicalSurface.icc (modified) (1 diff)
-
solids/BREPS/include/G4FCylindricalSurface.hh (modified) (1 diff)
-
solids/BREPS/include/G4FCylindricalSurface.icc (modified) (1 diff)
-
solids/BREPS/include/G4FPlane.hh (modified) (1 diff)
-
solids/BREPS/include/G4FPlane.icc (modified) (1 diff)
-
solids/BREPS/include/G4Globals.hh (modified) (1 diff)
-
solids/BREPS/include/G4Hyperbola.hh (modified) (1 diff)
-
solids/BREPS/include/G4Hyperbola.icc (modified) (1 diff)
-
solids/BREPS/include/G4KnotVector.hh (modified) (1 diff)
-
solids/BREPS/include/G4KnotVector.icc (modified) (1 diff)
-
solids/BREPS/include/G4Line.hh (modified) (1 diff)
-
solids/BREPS/include/G4Line.icc (modified) (1 diff)
-
solids/BREPS/include/G4OsloMatrix.hh (modified) (1 diff)
-
solids/BREPS/include/G4OsloMatrix.icc (modified) (1 diff)
-
solids/BREPS/include/G4Parabola.hh (modified) (1 diff)
-
solids/BREPS/include/G4Parabola.icc (modified) (1 diff)
-
solids/BREPS/include/G4PlacedSolid.hh (modified) (1 diff)
-
solids/BREPS/include/G4PlacedSolid.icc (modified) (1 diff)
-
solids/BREPS/include/G4PlacementVector.hh (modified) (1 diff)
-
solids/BREPS/include/G4Plane.hh (modified) (1 diff)
-
solids/BREPS/include/G4Point3DVector.hh (modified) (1 diff)
-
solids/BREPS/include/G4PointRat.hh (modified) (1 diff)
-
solids/BREPS/include/G4PointRat.icc (modified) (1 diff)
-
solids/BREPS/include/G4ProjectedSurface.hh (modified) (1 diff)
-
solids/BREPS/include/G4ProjectedSurface.icc (modified) (1 diff)
-
solids/BREPS/include/G4Ray.hh (modified) (1 diff)
-
solids/BREPS/include/G4Ray.icc (modified) (1 diff)
-
solids/BREPS/include/G4RectangularTrimmedSurface.hh (modified) (1 diff)
-
solids/BREPS/include/G4STEPEntity.hh (modified) (1 diff)
-
solids/BREPS/include/G4Sort.hh (modified) (1 diff)
-
solids/BREPS/include/G4SphericalSurface.hh (modified) (1 diff)
-
solids/BREPS/include/G4SphericalSurface.icc (modified) (1 diff)
-
solids/BREPS/include/G4Surface.hh (modified) (1 diff)
-
solids/BREPS/include/G4Surface.icc (modified) (1 diff)
-
solids/BREPS/include/G4SurfaceBoundary.hh (modified) (1 diff)
-
solids/BREPS/include/G4SurfaceBoundary.icc (modified) (1 diff)
-
solids/BREPS/include/G4SurfaceList.hh (modified) (1 diff)
-
solids/BREPS/include/G4SurfaceOfLinearExtrusion.hh (modified) (1 diff)
-
solids/BREPS/include/G4SurfaceOfRevolution.hh (modified) (1 diff)
-
solids/BREPS/include/G4ThreeMat.hh (modified) (1 diff)
-
solids/BREPS/include/G4ToroidalSurface.hh (modified) (1 diff)
-
solids/BREPS/include/G4ToroidalSurface.icc (modified) (1 diff)
-
solids/BREPS/include/G4UVHit.hh (modified) (1 diff)
-
solids/BREPS/src/G4Assembly.cc (modified) (1 diff)
-
solids/BREPS/src/G4Axis2Placement3D.cc (modified) (1 diff)
-
solids/BREPS/src/G4BREPSolid.cc (modified) (1 diff)
-
solids/BREPS/src/G4BREPSolidBox.cc (modified) (1 diff)
-
solids/BREPS/src/G4BREPSolidCone.cc (modified) (1 diff)
-
solids/BREPS/src/G4BREPSolidCylinder.cc (modified) (1 diff)
-
solids/BREPS/src/G4BREPSolidOpenPCone.cc (modified) (1 diff)
-
solids/BREPS/src/G4BREPSolidPCone.cc (modified) (1 diff)
-
solids/BREPS/src/G4BREPSolidPolyhedra.cc (modified) (1 diff)
-
solids/BREPS/src/G4BREPSolidSphere.cc (modified) (1 diff)
-
solids/BREPS/src/G4BREPSolidTorus.cc (modified) (1 diff)
-
solids/BREPS/src/G4BSplineCurve.cc (modified) (1 diff)
-
solids/BREPS/src/G4BSplineCurveWithKnots.cc (modified) (1 diff)
-
solids/BREPS/src/G4BSplineSurface.cc (modified) (1 diff)
-
solids/BREPS/src/G4BSplineSurfaceWithKnots.cc (modified) (1 diff)
-
solids/BREPS/src/G4BezierSurface.cc (modified) (1 diff)
-
solids/BREPS/src/G4BoundingBox3D.cc (modified) (1 diff)
-
solids/BREPS/src/G4CircularCurve.cc (modified) (1 diff)
-
solids/BREPS/src/G4CompositeCurve.cc (modified) (1 diff)
-
solids/BREPS/src/G4Conic.cc (modified) (1 diff)
-
solids/BREPS/src/G4ConicalSurface.cc (modified) (1 diff)
-
solids/BREPS/src/G4ControlPoints.cc (modified) (1 diff)
-
solids/BREPS/src/G4Curve.cc (modified) (1 diff)
-
solids/BREPS/src/G4CurvePoint.cc (modified) (1 diff)
-
solids/BREPS/src/G4CurveRayIntersection.cc (modified) (1 diff)
-
solids/BREPS/src/G4CylindricalSurface.cc (modified) (1 diff)
-
solids/BREPS/src/G4Ellipse.cc (modified) (1 diff)
-
solids/BREPS/src/G4FConicalSurface.cc (modified) (1 diff)
-
solids/BREPS/src/G4FCylindricalSurface.cc (modified) (1 diff)
-
solids/BREPS/src/G4FPlane.cc (modified) (1 diff)
-
solids/BREPS/src/G4Hyperbola.cc (modified) (1 diff)
-
solids/BREPS/src/G4KnotVector.cc (modified) (1 diff)
-
solids/BREPS/src/G4Line.cc (modified) (1 diff)
-
solids/BREPS/src/G4OsloMatrix.cc (modified) (1 diff)
-
solids/BREPS/src/G4Parabola.cc (modified) (1 diff)
-
solids/BREPS/src/G4PlacedSolid.cc (modified) (1 diff)
-
solids/BREPS/src/G4PointRat.cc (modified) (1 diff)
-
solids/BREPS/src/G4ProjectedSurface.cc (modified) (1 diff)
-
solids/BREPS/src/G4Ray.cc (modified) (7 diffs)
-
solids/BREPS/src/G4RectangularTrimmedSurface.cc (modified) (1 diff)
-
solids/BREPS/src/G4Sort.cc (modified) (1 diff)
-
solids/BREPS/src/G4SphericalSurface.cc (modified) (1 diff)
-
solids/BREPS/src/G4Surface.cc (modified) (1 diff)
-
solids/BREPS/src/G4SurfaceBoundary.cc (modified) (1 diff)
-
solids/BREPS/src/G4SurfaceList.cc (modified) (1 diff)
-
solids/BREPS/src/G4SurfaceOfLinearExtrusion.cc (modified) (1 diff)
-
solids/BREPS/src/G4SurfaceOfRevolution.cc (modified) (1 diff)
-
solids/BREPS/src/G4ThreeMat.cc (modified) (1 diff)
-
solids/BREPS/src/G4ToroidalSurface.cc (modified) (1 diff)
-
solids/Boolean/include/G4BooleanSolid.hh (modified) (1 diff)
-
solids/Boolean/include/G4BooleanSolid.icc (modified) (1 diff)
-
solids/Boolean/include/G4DisplacedSolid.hh (modified) (1 diff)
-
solids/Boolean/include/G4IntersectionSolid.hh (modified) (1 diff)
-
solids/Boolean/include/G4SubtractionSolid.hh (modified) (1 diff)
-
solids/Boolean/include/G4UnionSolid.hh (modified) (1 diff)
-
solids/Boolean/src/G4BooleanSolid.cc (modified) (1 diff)
-
solids/Boolean/src/G4DisplacedSolid.cc (modified) (1 diff)
-
solids/Boolean/src/G4IntersectionSolid.cc (modified) (1 diff)
-
solids/Boolean/src/G4SubtractionSolid.cc (modified) (1 diff)
-
solids/Boolean/src/G4UnionSolid.cc (modified) (1 diff)
-
solids/CSG/History (modified) (2 diffs)
-
solids/CSG/include/G4Box.hh (modified) (1 diff)
-
solids/CSG/include/G4Box.icc (modified) (1 diff)
-
solids/CSG/include/G4CSGSolid.hh (modified) (1 diff)
-
solids/CSG/include/G4Cons.hh (modified) (1 diff)
-
solids/CSG/include/G4Cons.icc (modified) (1 diff)
-
solids/CSG/include/G4Orb.hh (modified) (1 diff)
-
solids/CSG/include/G4Orb.icc (modified) (1 diff)
-
solids/CSG/include/G4Para.hh (modified) (1 diff)
-
solids/CSG/include/G4Para.icc (modified) (1 diff)
-
solids/CSG/include/G4Sphere.hh (modified) (1 diff)
-
solids/CSG/include/G4Sphere.icc (modified) (1 diff)
-
solids/CSG/include/G4Torus.hh (modified) (1 diff)
-
solids/CSG/include/G4Torus.icc (modified) (1 diff)
-
solids/CSG/include/G4Trap.hh (modified) (1 diff)
-
solids/CSG/include/G4Trap.icc (modified) (1 diff)
-
solids/CSG/include/G4Trd.hh (modified) (1 diff)
-
solids/CSG/include/G4Trd.icc (modified) (1 diff)
-
solids/CSG/include/G4Tubs.hh (modified) (1 diff)
-
solids/CSG/include/G4Tubs.icc (modified) (1 diff)
-
solids/CSG/src/G4Box.cc (modified) (1 diff)
-
solids/CSG/src/G4CSGSolid.cc (modified) (1 diff)
-
solids/CSG/src/G4Cons.cc (modified) (1 diff)
-
solids/CSG/src/G4Orb.cc (modified) (1 diff)
-
solids/CSG/src/G4Para.cc (modified) (1 diff)
-
solids/CSG/src/G4Sphere.cc (modified) (17 diffs)
-
solids/CSG/src/G4Torus.cc (modified) (1 diff)
-
solids/CSG/src/G4Trap.cc (modified) (1 diff)
-
solids/CSG/src/G4Trd.cc (modified) (1 diff)
-
solids/CSG/src/G4Tubs.cc (modified) (3 diffs)
-
solids/specific/History (modified) (2 diffs)
-
solids/specific/include/G4ClippablePolygon.hh (modified) (1 diff)
-
solids/specific/include/G4ClippablePolygon.icc (modified) (1 diff)
-
solids/specific/include/G4Ellipsoid.hh (modified) (1 diff)
-
solids/specific/include/G4Ellipsoid.icc (modified) (1 diff)
-
solids/specific/include/G4EllipticalCone.hh (modified) (1 diff)
-
solids/specific/include/G4EllipticalCone.icc (modified) (1 diff)
-
solids/specific/include/G4EllipticalTube.hh (modified) (1 diff)
-
solids/specific/include/G4EllipticalTube.icc (modified) (1 diff)
-
solids/specific/include/G4EnclosingCylinder.hh (modified) (1 diff)
-
solids/specific/include/G4ExtrudedSolid.hh (modified) (1 diff)
-
solids/specific/include/G4ExtrudedSolid.icc (modified) (1 diff)
-
solids/specific/include/G4Hype.hh (modified) (1 diff)
-
solids/specific/include/G4Hype.icc (modified) (1 diff)
-
solids/specific/include/G4IntersectingCone.hh (modified) (1 diff)
-
solids/specific/include/G4Paraboloid.hh (modified) (1 diff)
-
solids/specific/include/G4Paraboloid.icc (modified) (1 diff)
-
solids/specific/include/G4PolyPhiFace.hh (modified) (6 diffs)
-
solids/specific/include/G4PolyPhiFace.icc (modified) (1 diff)
-
solids/specific/include/G4Polycone.hh (modified) (2 diffs)
-
solids/specific/include/G4Polycone.icc (modified) (1 diff)
-
solids/specific/include/G4PolyconeSide.hh (modified) (4 diffs)
-
solids/specific/include/G4Polyhedra.hh (modified) (1 diff)
-
solids/specific/include/G4Polyhedra.icc (modified) (1 diff)
-
solids/specific/include/G4PolyhedraSide.hh (modified) (4 diffs)
-
solids/specific/include/G4QuadrangularFacet.hh (modified) (1 diff)
-
solids/specific/include/G4ReduciblePolygon.hh (modified) (1 diff)
-
solids/specific/include/G4SolidExtentList.hh (modified) (1 diff)
-
solids/specific/include/G4TessellatedGeometryAlgorithms.hh (modified) (1 diff)
-
solids/specific/include/G4TessellatedGeometryAlgorithms.icc (modified) (1 diff)
-
solids/specific/include/G4TessellatedSolid.hh (modified) (1 diff)
-
solids/specific/include/G4Tet.hh (modified) (1 diff)
-
solids/specific/include/G4TriangularFacet.hh (modified) (1 diff)
-
solids/specific/include/G4TwistTrapFlatSide.hh (modified) (1 diff)
-
solids/specific/include/G4TwistTubsFlatSide.hh (modified) (1 diff)
-
solids/specific/include/G4TwistTubsHypeSide.hh (modified) (1 diff)
-
solids/specific/include/G4TwistTubsSide.hh (modified) (1 diff)
-
solids/specific/include/G4TwistedBox.hh (modified) (1 diff)
-
solids/specific/include/G4TwistedTrap.hh (modified) (1 diff)
-
solids/specific/include/G4TwistedTrd.hh (modified) (1 diff)
-
solids/specific/include/G4TwistedTubs.hh (modified) (1 diff)
-
solids/specific/include/G4VCSGface.hh (modified) (2 diffs)
-
solids/specific/include/G4VCSGfaceted.hh (modified) (2 diffs)
-
solids/specific/include/G4VFacet.hh (modified) (1 diff)
-
solids/specific/include/G4VFacet.icc (modified) (1 diff)
-
solids/specific/include/G4VTwistSurface.hh (modified) (1 diff)
-
solids/specific/include/G4VTwistSurface.icc (modified) (1 diff)
-
solids/specific/include/G4VTwistedFaceted.hh (modified) (1 diff)
-
solids/specific/src/G4ClippablePolygon.cc (modified) (1 diff)
-
solids/specific/src/G4Ellipsoid.cc (modified) (1 diff)
-
solids/specific/src/G4EllipticalCone.cc (modified) (1 diff)
-
solids/specific/src/G4EllipticalTube.cc (modified) (1 diff)
-
solids/specific/src/G4EnclosingCylinder.cc (modified) (1 diff)
-
solids/specific/src/G4ExtrudedSolid.cc (modified) (16 diffs)
-
solids/specific/src/G4Hype.cc (modified) (1 diff)
-
solids/specific/src/G4IntersectingCone.cc (modified) (1 diff)
-
solids/specific/src/G4Paraboloid.cc (modified) (13 diffs)
-
solids/specific/src/G4PolyPhiFace.cc (modified) (9 diffs)
-
solids/specific/src/G4Polycone.cc (modified) (2 diffs)
-
solids/specific/src/G4PolyconeSide.cc (modified) (5 diffs)
-
solids/specific/src/G4Polyhedra.cc (modified) (2 diffs)
-
solids/specific/src/G4PolyhedraSide.cc (modified) (6 diffs)
-
solids/specific/src/G4QuadrangularFacet.cc (modified) (1 diff)
-
solids/specific/src/G4ReduciblePolygon.cc (modified) (1 diff)
-
solids/specific/src/G4SolidExtentList.cc (modified) (1 diff)
-
solids/specific/src/G4TessellatedGeometryAlgorithms.cc (modified) (1 diff)
-
solids/specific/src/G4TessellatedSolid.cc (modified) (1 diff)
-
solids/specific/src/G4Tet.cc (modified) (1 diff)
-
solids/specific/src/G4TriangularFacet.cc (modified) (1 diff)
-
solids/specific/src/G4TwistBoxSide.cc (modified) (1 diff)
-
solids/specific/src/G4TwistTrapAlphaSide.cc (modified) (1 diff)
-
solids/specific/src/G4TwistTrapFlatSide.cc (modified) (1 diff)
-
solids/specific/src/G4TwistTrapParallelSide.cc (modified) (1 diff)
-
solids/specific/src/G4TwistTubsFlatSide.cc (modified) (1 diff)
-
solids/specific/src/G4TwistTubsHypeSide.cc (modified) (1 diff)
-
solids/specific/src/G4TwistTubsSide.cc (modified) (1 diff)
-
solids/specific/src/G4TwistedBox.cc (modified) (1 diff)
-
solids/specific/src/G4TwistedTrap.cc (modified) (1 diff)
-
solids/specific/src/G4TwistedTrd.cc (modified) (1 diff)
-
solids/specific/src/G4TwistedTubs.cc (modified) (1 diff)
-
solids/specific/src/G4VCSGfaceted.cc (modified) (23 diffs)
-
solids/specific/src/G4VFacet.cc (modified) (1 diff)
-
solids/specific/src/G4VTwistSurface.cc (modified) (1 diff)
-
solids/specific/src/G4VTwistedFaceted.cc (modified) (1 diff)
-
volumes/History (modified) (2 diffs)
-
volumes/include/G4AssemblyTriplet.hh (modified) (1 diff)
-
volumes/include/G4AssemblyTriplet.icc (modified) (1 diff)
-
volumes/include/G4AssemblyVolume.hh (modified) (1 diff)
-
volumes/include/G4AssemblyVolume.icc (modified) (1 diff)
-
volumes/include/G4GRSSolid.hh (modified) (1 diff)
-
volumes/include/G4GRSSolid.icc (modified) (1 diff)
-
volumes/include/G4GRSSolidHandle.hh (modified) (1 diff)
-
volumes/include/G4GRSVolume.hh (modified) (1 diff)
-
volumes/include/G4GRSVolume.icc (modified) (1 diff)
-
volumes/include/G4GRSVolumeHandle.hh (modified) (1 diff)
-
volumes/include/G4LogicalBorderSurface.hh (modified) (1 diff)
-
volumes/include/G4LogicalBorderSurface.icc (modified) (1 diff)
-
volumes/include/G4LogicalSkinSurface.hh (modified) (1 diff)
-
volumes/include/G4LogicalSkinSurface.icc (modified) (1 diff)
-
volumes/include/G4NavigationHistory.hh (modified) (1 diff)
-
volumes/include/G4NavigationHistory.icc (modified) (1 diff)
-
volumes/include/G4NavigationLevel.hh (modified) (1 diff)
-
volumes/include/G4NavigationLevel.icc (modified) (1 diff)
-
volumes/include/G4NavigationLevelRep.hh (modified) (1 diff)
-
volumes/include/G4NavigationLevelRep.icc (modified) (1 diff)
-
volumes/include/G4PVParameterised.hh (modified) (1 diff)
-
volumes/include/G4PVPlacement.hh (modified) (1 diff)
-
volumes/include/G4PVReplica.hh (modified) (1 diff)
-
volumes/include/G4ReflectionFactory.hh (modified) (1 diff)
-
volumes/include/G4TouchableHistory.hh (modified) (1 diff)
-
volumes/include/G4TouchableHistory.icc (modified) (1 diff)
-
volumes/include/G4TouchableHistoryHandle.hh (modified) (1 diff)
-
volumes/src/G4AssemblyVolume.cc (modified) (1 diff)
-
volumes/src/G4GRSSolid.cc (modified) (1 diff)
-
volumes/src/G4GRSVolume.cc (modified) (1 diff)
-
volumes/src/G4LogicalBorderSurface.cc (modified) (1 diff)
-
volumes/src/G4LogicalSkinSurface.cc (modified) (1 diff)
-
volumes/src/G4NavigationHistory.cc (modified) (1 diff)
-
volumes/src/G4NavigationLevel.cc (modified) (1 diff)
-
volumes/src/G4NavigationLevelRep.cc (modified) (1 diff)
-
volumes/src/G4PVParameterised.cc (modified) (1 diff)
-
volumes/src/G4PVPlacement.cc (modified) (1 diff)
-
volumes/src/G4PVReplica.cc (modified) (1 diff)
-
volumes/src/G4ReflectionFactory.cc (modified) (1 diff)
-
volumes/src/G4TouchableHistory.cc (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/geometry/History
r831 r850 1 $Id: History,v 1.39 .2.2 2008/04/24 12:46:37gcosmo Exp $1 $Id: History,v 1.39 2007/05/18 11:10:43 gcosmo Exp $ 2 2 ------------------------------------------------------------------- 3 3 … … 17 17 * Reverse chronological order (last date on top), please * 18 18 ---------------------------------------------------------- 19 20 Apr 23, 2008 Gabriele Cosmo geometry-V09-00-0021 -----------------------------22 - Tag for release 9.1.p02.23 - Includes following tags on top of 9.1.p01 release:24 geommng-V09-00-02, geomnav-V09-00-13, breps-V09-00-01,25 geom-csg-V09-00-03, geom-specific-V09-00-09, field-V09-00-04.26 - Coworks with tag "greps-V09-00-03".27 19 28 20 May 18, 2007 Gabriele Cosmo geometry-V08-03-01 -
trunk/source/geometry/biasing/include/G4GeometryCell.hh
r831 r850 26 26 // 27 27 // $Id: G4GeometryCell.hh,v 1.6 2006/06/29 18:15:49 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/include/G4GeometryCellComp.hh
r831 r850 26 26 // 27 27 // $Id: G4GeometryCellComp.hh,v 1.2 2006/06/29 18:15:52 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/include/G4GeometryCellImportance.hh
r831 r850 26 26 // 27 27 // $Id: G4GeometryCellImportance.hh,v 1.4 2006/06/29 18:15:54 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/include/G4GeometryCellStep.hh
r831 r850 26 26 // 27 27 // $Id: G4GeometryCellStep.hh,v 1.2 2006/06/29 18:15:57 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/include/G4GeometryCellStepStream.hh
r831 r850 26 26 // 27 27 // $Id: G4GeometryCellStepStream.hh,v 1.3 2006/06/29 18:15:59 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/include/G4GeometryCellWeight.hh
r831 r850 26 26 // 27 27 // $Id: G4GeometryCellWeight.hh,v 1.3 2006/06/29 18:16:02 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/include/G4IStore.hh
r831 r850 26 26 // 27 27 // $Id: G4IStore.hh,v 1.10 2006/06/29 18:16:04 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/include/G4ImportanceAlgorithm.hh
r831 r850 26 26 // 27 27 // $Id: G4ImportanceAlgorithm.hh,v 1.7 2006/06/29 18:16:06 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/include/G4Nsplit_Weight.hh
r831 r850 26 26 // 27 27 // $Id: G4Nsplit_Weight.hh,v 1.11 2006/06/29 18:16:21 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/include/G4VCellScorer.hh
r831 r850 26 26 // 27 27 // $Id: G4VCellScorer.hh,v 1.7 2006/06/29 18:16:29 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/include/G4VCellScorerStore.hh
r831 r850 26 26 // 27 27 // $Id: G4VCellScorerStore.hh,v 1.7 2006/06/29 18:16:32 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/include/G4VGCellFinder.hh
r831 r850 26 26 // 27 27 // $Id: G4VGCellFinder.hh,v 1.2 2006/06/29 18:16:34 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/include/G4VIStore.hh
r831 r850 26 26 // 27 27 // $Id: G4VIStore.hh,v 1.9 2006/06/29 18:16:37 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/include/G4VImportanceAlgorithm.hh
r831 r850 26 26 // 27 27 // $Id: G4VImportanceAlgorithm.hh,v 1.8 2006/06/29 18:16:40 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/include/G4VImportanceSplitExaminer.hh
r831 r850 26 26 // 27 27 // $Id: G4VImportanceSplitExaminer.hh,v 1.5 2006/06/29 18:16:42 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/include/G4VWeightWindowAlgorithm.hh
r831 r850 26 26 // 27 27 // $Id: G4VWeightWindowAlgorithm.hh,v 1.8 2006/06/29 18:16:52 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/include/G4VWeightWindowStore.hh
r831 r850 26 26 // 27 27 // $Id: G4VWeightWindowStore.hh,v 1.3 2006/06/29 18:16:57 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/include/G4WeightWindowAlgorithm.hh
r831 r850 26 26 // 27 27 // $Id: G4WeightWindowAlgorithm.hh,v 1.7 2006/06/29 18:16:59 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/include/G4WeightWindowStore.hh
r831 r850 26 26 // 27 27 // $Id: G4WeightWindowStore.hh,v 1.3 2006/06/29 18:17:05 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/src/G4GeometryCell.cc
r831 r850 26 26 // 27 27 // $Id: G4GeometryCell.cc,v 1.6 2006/06/29 18:17:07 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/src/G4GeometryCellComp.cc
r831 r850 25 25 // 26 26 // $Id: G4GeometryCellComp.cc,v 1.4 2006/06/29 18:17:10 gunter Exp $ 27 // GEANT4 tag $Name: $27 // GEANT4 tag $Name: HEAD $ 28 28 // 29 29 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/src/G4GeometryCellImportance.cc
r831 r850 26 26 // 27 27 // $Id: G4GeometryCellImportance.cc,v 1.5 2006/06/29 18:17:12 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/src/G4GeometryCellStep.cc
r831 r850 26 26 // 27 27 // $Id: G4GeometryCellStep.cc,v 1.2 2006/06/29 18:17:14 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/src/G4GeometryCellStepStream.cc
r831 r850 26 26 // 27 27 // $Id: G4GeometryCellStepStream.cc,v 1.3 2006/06/29 18:17:16 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/src/G4IStore.cc
r831 r850 26 26 // 27 27 // $Id: G4IStore.cc,v 1.14 2006/06/29 18:17:18 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/src/G4ImportanceAlgorithm.cc
r831 r850 26 26 // 27 27 // $Id: G4ImportanceAlgorithm.cc,v 1.14 2006/06/29 18:17:20 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/src/G4Nsplit_Weight.cc
r831 r850 26 26 // 27 27 // $Id: G4Nsplit_Weight.cc,v 1.10 2006/06/29 18:17:25 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/src/G4VCellScorer.cc
r831 r850 26 26 // 27 27 // $Id: G4VCellScorer.cc,v 1.6 2006/06/29 18:17:35 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/src/G4VCellScorerStore.cc
r831 r850 26 26 // 27 27 // $Id: G4VCellScorerStore.cc,v 1.4 2006/06/29 18:17:37 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/src/G4VGCellFinder.cc
r831 r850 26 26 // 27 27 // $Id: G4VGCellFinder.cc,v 1.2 2006/06/29 18:17:39 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/src/G4VIStore.cc
r831 r850 26 26 // 27 27 // $Id: G4VIStore.cc,v 1.2 2006/06/29 18:17:41 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/src/G4VImportanceAlgorithm.cc
r831 r850 26 26 // 27 27 // $Id: G4VImportanceAlgorithm.cc,v 1.2 2006/06/29 18:17:43 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/src/G4VImportanceSplitExaminer.cc
r831 r850 26 26 // 27 27 // $Id: G4VImportanceSplitExaminer.cc,v 1.2 2006/06/29 18:17:45 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/src/G4VWeightWindowAlgorithm.cc
r831 r850 26 26 // 27 27 // $Id: G4VWeightWindowAlgorithm.cc,v 1.2 2006/06/29 18:17:54 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/src/G4VWeightWindowStore.cc
r831 r850 26 26 // 27 27 // $Id: G4VWeightWindowStore.cc,v 1.3 2006/06/29 18:17:59 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/src/G4WeightWindowAlgorithm.cc
r831 r850 26 26 // 27 27 // $Id: G4WeightWindowAlgorithm.cc,v 1.11 2007/11/09 15:43:07 ahoward Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/biasing/src/G4WeightWindowStore.cc
r831 r850 26 26 // 27 27 // $Id: G4WeightWindowStore.cc,v 1.5 2006/06/29 18:18:05 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/divisions/History
r831 r850 1 $Id: History,v 1.2 6 2007/05/18 07:27:40gcosmo Exp $1 $Id: History,v 1.28 2008/08/18 16:14:13 gcosmo Exp $ 2 2 ------------------------------------------------------------------- 3 3 … … 17 17 * Reverse chronological order (last date on top), please * 18 18 ---------------------------------------------------------- 19 20 August, 18th, 2008 T.Nikitina (geomdiv-V09-01-01) 21 - Corrected initialisation for 'fnReplicas' and 'fwidth' data members in 22 CheckAndSetParameters(), to make use of precomputed values retrieved from 23 parameterisations; simplified method signature. 24 25 July, 25th, 2008 I.Hrivnacova (geomdiv-V09-01-00) 26 - Corrected error message in G4VDivisionParameterisation::CheckNDivAndWidth(). 19 27 20 28 May, 18th, 2007 G.Cosmo (geomdiv-V08-03-01) -
trunk/source/geometry/divisions/include/G4PVDivision.hh
r831 r850 25 25 // 26 26 // 27 // $Id: G4PVDivision.hh,v 1.1 2 2006/06/29 18:18:07 gunterExp $28 // GEANT4 tag $Name: $27 // $Id: G4PVDivision.hh,v 1.13 2008/08/18 14:06:01 tnikitin Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4PVDivision … … 145 145 146 146 void CheckAndSetParameters( const EAxis pAxis, 147 const G4int nDivs,148 const G4double width,149 147 const G4double offset, 150 DivisionType divType,151 148 const G4LogicalVolume* pMotherLogical ); 152 149 -
trunk/source/geometry/divisions/include/G4PVDivisionFactory.hh
r831 r850 26 26 // 27 27 // $Id: G4PVDivisionFactory.hh,v 1.2 2006/06/29 18:18:09 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/divisions/include/G4ParameterisationBox.hh
r831 r850 26 26 // 27 27 // $Id: G4ParameterisationBox.hh,v 1.6 2006/06/29 18:18:11 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // classes G4ParameterisationBoxX, -
trunk/source/geometry/divisions/include/G4ParameterisationCons.hh
r831 r850 26 26 // 27 27 // $Id: G4ParameterisationCons.hh,v 1.6 2006/06/29 18:18:13 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // classes G4ParameterisationConsRho, -
trunk/source/geometry/divisions/include/G4ParameterisationPara.hh
r831 r850 26 26 // 27 27 // $Id: G4ParameterisationPara.hh,v 1.7 2006/06/29 18:18:15 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // classes G4ParameterisationParaX, -
trunk/source/geometry/divisions/include/G4ParameterisationPolycone.hh
r831 r850 26 26 // 27 27 // $Id: G4ParameterisationPolycone.hh,v 1.7 2006/06/29 18:18:18 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // classes G4ParameterisationPolyconeRho, -
trunk/source/geometry/divisions/include/G4ParameterisationPolyhedra.hh
r831 r850 26 26 // 27 27 // $Id: G4ParameterisationPolyhedra.hh,v 1.8 2006/06/29 18:18:20 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // classes G4ParameterisationPolyhedraRho, -
trunk/source/geometry/divisions/include/G4ParameterisationTrd.hh
r831 r850 26 26 // 27 27 // $Id: G4ParameterisationTrd.hh,v 1.7 2006/06/29 18:18:22 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // classes G4ParameterisationTrdX -
trunk/source/geometry/divisions/include/G4ParameterisationTubs.hh
r831 r850 26 26 // 27 27 // $Id: G4ParameterisationTubs.hh,v 1.6 2006/06/29 18:18:24 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // classes G4ParameterisationTubsRho -
trunk/source/geometry/divisions/include/G4VDivisionParameterisation.hh
r831 r850 26 26 // 27 27 // $Id: G4VDivisionParameterisation.hh,v 1.11 2007/05/11 13:26:26 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4VDivisionParameterisation -
trunk/source/geometry/divisions/include/G4VDivisionParameterisation.icc
r831 r850 26 26 // 27 27 // $Id: G4VDivisionParameterisation.icc,v 1.4 2006/06/29 18:18:29 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4VDivisionParameterisation Inline Implementation file -
trunk/source/geometry/divisions/src/G4PVDivision.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4PVDivision.cc,v 1.2 0 2006/06/29 18:18:31 gunterExp $28 // GEANT4 tag $Name: $27 // $Id: G4PVDivision.cc,v 1.21 2008/08/18 14:06:13 tnikitin Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4PVDivision Implementation file … … 74 74 SetParameterisation(pMotherLogical, pAxis, nDivs, 75 75 width, offset, DivNDIVandWIDTH); 76 CheckAndSetParameters (pAxis, nDivs, width, offset, 77 DivNDIVandWIDTH, pMotherLogical); 76 CheckAndSetParameters (pAxis,offset, pMotherLogical); 78 77 } 79 78 … … 105 104 SetMotherLogical(pMotherLogical); 106 105 SetParameterisation(pMotherLogical, pAxis, nDivs, 0., offset, DivNDIV); 107 CheckAndSetParameters (pAxis, nDivs, 0., offset, DivNDIV, pMotherLogical);106 CheckAndSetParameters (pAxis, offset, pMotherLogical); 108 107 } 109 108 … … 135 134 SetMotherLogical(pMotherLogical); 136 135 SetParameterisation(pMotherLogical, pAxis, 0, width, offset, DivWIDTH); 137 CheckAndSetParameters (pAxis, 0, width, offset, DivWIDTH, pMotherLogical);136 CheckAndSetParameters (pAxis, offset, pMotherLogical); 138 137 } 139 138 … … 141 140 void 142 141 G4PVDivision::CheckAndSetParameters( const EAxis pAxis, 143 const G4int nDivs,144 const G4double width,145 142 const G4double offset, 146 DivisionType divType,147 143 const G4LogicalVolume* pMotherLogical ) 148 144 { 149 if( divType == DivWIDTH ) 150 { 151 fnReplicas = fparam->GetNoDiv(); 152 } 153 else 154 { 155 fnReplicas = nDivs; 156 } 145 fnReplicas = fparam->GetNoDiv(); 146 157 147 if (fnReplicas < 1 ) 158 148 { … … 161 151 } 162 152 163 if( divType != DivNDIV) 164 { 165 fwidth = fparam->GetWidth(); 166 } 167 else 168 { 169 fwidth = width; 170 } 153 fwidth = fparam->GetWidth(); 154 171 155 if( fwidth < 0 ) 172 156 { -
trunk/source/geometry/divisions/src/G4PVDivisionFactory.cc
r831 r850 26 26 // 27 27 // $Id: G4PVDivisionFactory.cc,v 1.2 2006/06/29 18:18:33 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4PVDivisionFactory Implementation file -
trunk/source/geometry/divisions/src/G4ParameterisationBox.cc
r831 r850 26 26 // 27 27 // $Id: G4ParameterisationBox.cc,v 1.10 2006/06/29 18:18:35 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4ParameterisationBox Implementation file -
trunk/source/geometry/divisions/src/G4ParameterisationCons.cc
r831 r850 26 26 // 27 27 // $Id: G4ParameterisationCons.cc,v 1.9 2006/06/29 18:18:38 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4ParameterisationCons Implementation file -
trunk/source/geometry/divisions/src/G4ParameterisationPara.cc
r831 r850 26 26 // 27 27 // $Id: G4ParameterisationPara.cc,v 1.11 2006/06/29 18:18:42 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4ParameterisationPara Implementation file -
trunk/source/geometry/divisions/src/G4ParameterisationPolycone.cc
r831 r850 26 26 // 27 27 // $Id: G4ParameterisationPolycone.cc,v 1.15 2006/06/29 18:18:44 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4ParameterisationPolycone Implementation file -
trunk/source/geometry/divisions/src/G4ParameterisationPolyhedra.cc
r831 r850 26 26 // 27 27 // $Id: G4ParameterisationPolyhedra.cc,v 1.16 2007/05/18 07:27:23 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4ParameterisationPolyhedra Implementation file -
trunk/source/geometry/divisions/src/G4ParameterisationTrd.cc
r831 r850 26 26 // 27 27 // $Id: G4ParameterisationTrd.cc,v 1.14 2006/06/29 18:18:48 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4ParameterisationTrd Implementation file -
trunk/source/geometry/divisions/src/G4ParameterisationTubs.cc
r831 r850 26 26 // 27 27 // $Id: G4ParameterisationTubs.cc,v 1.8 2006/06/29 18:18:50 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4ParameterisationTubs Implementation file -
trunk/source/geometry/divisions/src/G4VDivisionParameterisation.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4VDivisionParameterisation.cc,v 1.1 2 2007/05/11 13:26:26 gcosmoExp $28 // GEANT4 tag $Name: $27 // $Id: G4VDivisionParameterisation.cc,v 1.13 2008/07/25 16:23:35 ivana Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4VDivisionParameterisation Implementation file … … 163 163 << " has too big offset + width*nDiv = " << G4endl 164 164 << " " << foffset + fwidth*fnDiv << " > " 165 << foffset<< ". Width = "165 << maxPar << ". Width = " 166 166 << G4endl 167 167 << " " << fwidth << ". nDiv = " << fnDiv << " !" -
trunk/source/geometry/magneticfield/History
r831 r850 1 $Id: History,v 1.1 29.2.1 2008/04/24 12:43:57gcosmo Exp $1 $Id: History,v 1.130 2008/04/24 12:40:50 gcosmo Exp $ 2 2 ------------------------------------------------------------------- 3 3 … … 17 17 * Reverse chronological order (last date on top), please * 18 18 ---------------------------------------------------------- 19 20 April 24th, 2008 G.Cosmo - field-V09-00-0421 --------------------------22 - Tag for release 9.1.p02.23 19 24 20 April 24th, 2008 T.Nikitina - field-V09-01-01 -
trunk/source/geometry/magneticfield/include/G4CashKarpRKF45.hh
r831 r850 26 26 // 27 27 // $Id: G4CashKarpRKF45.hh,v 1.11 2008/01/11 15:23:54 japost Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4ChordFinder.hh
r831 r850 25 25 // 26 26 // 27 // $Id: G4ChordFinder.hh,v 1.1 7 2006/06/29 18:21:02 gunterExp $28 // GEANT4 tag $Name: $27 // $Id: G4ChordFinder.hh,v 1.19 2008/07/15 14:02:06 japost Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // … … 72 72 // the chord criterion: that d_chord < delta_chord 73 73 // -> Returns Length of Step taken. 74 74 75 G4FieldTrack ApproxCurvePointS(const G4FieldTrack& curveAPointVelocity, 76 const G4FieldTrack& curveBPointVelocity, 77 const G4ThreeVector& currentEPoint, 78 const G4ThreeVector& currentFPoint, 79 const G4ThreeVector& PointG, 80 G4bool first,G4double epsStep); 81 75 82 G4FieldTrack ApproxCurvePointV(const G4FieldTrack& curveAPointVelocity, 76 83 const G4FieldTrack& curveBPointVelocity, 77 84 const G4ThreeVector& currentEPoint, 78 85 G4double epsStep); 86 87 inline G4double InvParabolic( const G4double xa, const G4double ya, 88 const G4double xb, const G4double yb, 89 const G4double xc, const G4double yc ); 79 90 80 91 inline G4double GetDeltaChord() const; … … 115 126 G4double& stepEstimate_Unconstrained ) ; 116 127 117 virtual G4double FindNextChord( const G4FieldTrack yStart,128 virtual G4double FindNextChord( const G4FieldTrack& yStart, 118 129 G4double stepMax, 119 130 G4FieldTrack& yEnd, -
trunk/source/geometry/magneticfield/include/G4ChordFinder.icc
r831 r850 25 25 // 26 26 // 27 // $Id: G4ChordFinder.icc,v 1.1 2 2006/06/29 18:21:32 gunterExp $28 // GEANT4 tag $Name: $27 // $Id: G4ChordFinder.icc,v 1.13 2008/05/28 09:20:03 tnikitin Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // G4ChordFinder inline implementations … … 123 123 // } 124 124 } 125 // A member that calculates the inverse parabolic through 126 // the three points (x,y) and returns the value x that, for the 127 // inverse parabolic, corresponds to y=0. 128 // 129 inline G4double G4ChordFinder::InvParabolic ( const G4double xa, const G4double ya, 130 const G4double xb, const G4double yb, 131 const G4double xc, const G4double yc ) 132 { const G4double R = yb/yc, 133 S = yb/ya, 134 T = ya/yc; 135 const G4double Q = (T-1)*(R-1)*(S-1); 136 if (fabs(Q) <DBL_MIN ) return DBL_MAX; 137 138 const G4double P = S*(T*(R-T)*(xc-xb) - (1-R)*(xb-xa)); 139 return xb + P/Q; 140 } -
trunk/source/geometry/magneticfield/include/G4ChordFinderSaf.hh
r831 r850 25 25 // 26 26 // $Id: G4ChordFinderSaf.hh,v 1.3 2006/06/29 18:21:52 gunter Exp $ 27 // GEANT4 tag $Name: $27 // GEANT4 tag $Name: HEAD $ 28 28 // 29 29 // -
trunk/source/geometry/magneticfield/include/G4ClassicalRK4.hh
r831 r850 26 26 // 27 27 // $Id: G4ClassicalRK4.hh,v 1.10 2006/06/29 18:21:55 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4DELPHIMagField.hh
r831 r850 26 26 // 27 27 // $Id: G4DELPHIMagField.hh,v 1.4 2006/06/29 18:21:57 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4ElectricField.hh
r831 r850 26 26 // 27 27 // $Id: G4ElectricField.hh,v 1.2 2006/06/29 18:21:59 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4ElectroMagneticField.hh
r831 r850 26 26 // 27 27 // $Id: G4ElectroMagneticField.hh,v 1.11 2006/06/29 18:22:01 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4EqEMFieldWithSpin.hh
r831 r850 26 26 // 27 27 // $Id: G4EqEMFieldWithSpin.hh,v 1.1 2007/08/30 23:34:01 gum Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4EqMagElectricField.hh
r831 r850 26 26 // 27 27 // $Id: G4EqMagElectricField.hh,v 1.9 2006/06/29 18:22:03 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4EquationOfMotion.hh
r831 r850 26 26 // 27 27 // $Id: G4EquationOfMotion.hh,v 1.10 2006/06/29 18:22:05 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4EquationOfMotion.icc
r831 r850 26 26 // 27 27 // $Id: G4EquationOfMotion.icc,v 1.9 2006/06/29 18:22:07 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4ErrorMag_UsualEqRhs.hh
r831 r850 26 26 // 27 27 // $Id: G4ErrorMag_UsualEqRhs.hh,v 1.1 2007/05/16 12:54:02 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4ExactHelixStepper.hh
r831 r850 25 25 // 26 26 // $Id: G4ExactHelixStepper.hh,v 1.5 2007/05/18 12:50:31 tnikitin Exp $ 27 // GEANT4 tag $Name: $27 // GEANT4 tag $Name: HEAD $ 28 28 // 29 29 // -
trunk/source/geometry/magneticfield/include/G4ExplicitEuler.hh
r831 r850 26 26 // 27 27 // $Id: G4ExplicitEuler.hh,v 1.9 2006/06/29 18:22:11 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4Field.hh
r831 r850 26 26 // 27 27 // $Id: G4Field.hh,v 1.10 2006/06/29 18:22:13 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4FieldManager.hh
r831 r850 26 26 // 27 27 // $Id: G4FieldManager.hh,v 1.16 2006/06/29 18:22:15 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4FieldManager.icc
r831 r850 26 26 // 27 27 // $Id: G4FieldManager.icc,v 1.12 2006/06/29 18:22:18 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4FieldManagerStore.hh
r831 r850 26 26 // 27 27 // $Id: G4FieldManagerStore.hh,v 1.3 2008/01/17 09:39:08 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4FieldManagerStore -
trunk/source/geometry/magneticfield/include/G4FieldTrack.hh
r831 r850 26 26 // 27 27 // $Id: G4FieldTrack.hh,v 1.21 2006/11/13 18:24:35 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4FieldTrack.icc
r831 r850 26 26 // 27 27 // $Id: G4FieldTrack.icc,v 1.21 2006/11/13 18:24:35 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ------------------------------------------------------------------- -
trunk/source/geometry/magneticfield/include/G4HarmonicPolMagField.hh
r831 r850 26 26 // 27 27 // $Id: G4HarmonicPolMagField.hh,v 1.4 2006/06/29 18:22:24 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4HarmonicPolMagField -
trunk/source/geometry/magneticfield/include/G4HelixExplicitEuler.hh
r831 r850 26 26 // 27 27 // $Id: G4HelixExplicitEuler.hh,v 1.9 2007/08/21 08:52:00 tnikitin Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4HelixHeum.hh
r831 r850 26 26 // 27 27 // $Id: G4HelixHeum.hh,v 1.8 2006/06/29 18:22:36 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4HelixImplicitEuler.hh
r831 r850 26 26 // 27 27 // $Id: G4HelixImplicitEuler.hh,v 1.8 2006/06/29 18:22:38 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4HelixSimpleRunge.hh
r831 r850 26 26 // 27 27 // $Id: G4HelixSimpleRunge.hh,v 1.7 2006/06/29 18:22:41 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4ImplicitEuler.hh
r831 r850 26 26 // 27 27 // $Id: G4ImplicitEuler.hh,v 1.8 2006/06/29 18:22:44 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4LineCurrentMagField.hh
r831 r850 26 26 // 27 27 // $Id: G4LineCurrentMagField.hh,v 1.4 2006/06/29 18:22:46 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4LineSection.hh
r831 r850 26 26 // 27 27 // $Id: G4LineSection.hh,v 1.9 2006/06/29 18:22:48 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4MagErrorStepper.hh
r831 r850 26 26 // 27 27 // $Id: G4MagErrorStepper.hh,v 1.11 2006/06/29 18:22:50 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4MagErrorStepper.icc
r831 r850 26 26 // 27 27 // $Id: G4MagErrorStepper.icc,v 1.13 2006/06/29 18:22:52 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/magneticfield/include/G4MagHelicalStepper.hh
r831 r850 27 27 // 28 28 // $Id: G4MagHelicalStepper.hh,v 1.15 2007/08/21 08:48:28 tnikitin Exp $ 29 // GEANT4 tag $Name: $29 // GEANT4 tag $Name: HEAD $ 30 30 // 31 31 // -
trunk/source/geometry/magneticfield/include/G4MagHelicalStepper.icc
r831 r850 26 26 // 27 27 // $Id: G4MagHelicalStepper.icc,v 1.13 2007/05/18 15:45:15 tnikitin Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // Linear Step in regions of no field -
trunk/source/geometry/magneticfield/include/G4MagIntegratorDriver.hh
r831 r850 26 26 // 27 27 // $Id: G4MagIntegratorDriver.hh,v 1.20 2007/05/10 10:10:05 japost Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4MagIntegratorDriver.icc
r831 r850 26 26 // 27 27 // $Id: G4MagIntegratorDriver.icc,v 1.13 2007/05/10 10:10:48 japost Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh
r831 r850 25 25 // 26 26 // $Id: G4MagIntegratorStepper.hh,v 1.12 2006/09/20 09:31:01 japost Exp $ 27 // GEANT4 tag $Name: $27 // GEANT4 tag $Name: HEAD $ 28 28 // 29 29 // -
trunk/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc
r831 r850 25 25 // 26 26 // $Id: G4MagIntegratorStepper.icc,v 1.10 2006/09/20 09:31:46 japost Exp $ 27 // GEANT4 tag $Name: $27 // GEANT4 tag $Name: HEAD $ 28 28 // 29 29 -
trunk/source/geometry/magneticfield/include/G4Mag_EqRhs.hh
r831 r850 26 26 // 27 27 // $Id: G4Mag_EqRhs.hh,v 1.9 2006/06/29 18:23:07 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4Mag_SpinEqRhs.hh
r831 r850 26 26 // 27 27 // $Id: G4Mag_SpinEqRhs.hh,v 1.11 2006/06/29 18:23:09 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4Mag_UsualEqRhs.hh
r831 r850 26 26 // 27 27 // $Id: G4Mag_UsualEqRhs.hh,v 1.7 2006/06/29 18:23:12 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4MagneticField.hh
r831 r850 26 26 // 27 27 // $Id: G4MagneticField.hh,v 1.14 2006/06/29 18:23:14 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4QuadrupoleMagField.hh
r831 r850 26 26 // 27 27 // $Id: G4QuadrupoleMagField.hh,v 1.4 2006/06/29 18:23:16 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4RKG3_Stepper.hh
r831 r850 27 27 // 28 28 // $Id: G4RKG3_Stepper.hh,v 1.13 2007/05/18 12:44:02 tnikitin Exp $ 29 // GEANT4 tag $Name: $29 // GEANT4 tag $Name: HEAD $ 30 30 // 31 31 // -
trunk/source/geometry/magneticfield/include/G4SimpleHeum.hh
r831 r850 26 26 // 27 27 // $Id: G4SimpleHeum.hh,v 1.8 2006/06/29 18:23:20 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4SimpleRunge.hh
r831 r850 26 26 // 27 27 // $Id: G4SimpleRunge.hh,v 1.8 2006/06/29 18:23:23 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4UniformElectricField.hh
r831 r850 26 26 // 27 27 // $Id: G4UniformElectricField.hh,v 1.9 2006/06/29 18:23:25 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/include/G4UniformMagField.hh
r831 r850 26 26 // 27 27 // $Id: G4UniformMagField.hh,v 1.9 2006/06/29 18:23:27 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/src/G4CashKarpRKF45.cc
r831 r850 26 26 // 27 27 // $Id: G4CashKarpRKF45.cc,v 1.15 2008/01/11 18:11:44 japost Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // The Cash-Karp Runge-Kutta-Fehlberg 4/5 method is an embedded fourth -
trunk/source/geometry/magneticfield/src/G4ChordFinder.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4ChordFinder.cc,v 1.4 7 2006/06/29 18:23:32 gunterExp $28 // GEANT4 tag $Name: $27 // $Id: G4ChordFinder.cc,v 1.49 2008/07/15 14:02:06 japost Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // … … 185 185 G4FieldTrack yEnd( yCurrent); 186 186 G4double startCurveLen= yCurrent.GetCurveLength(); 187 188 187 G4double nextStep; 189 188 // ************* … … 192 191 ); 193 192 // ************* 193 // G4cout<<"Exit Find Next Chord Err= "<<dyErr<<" eps= "<<epsStep<<"stepPos= "<<stepPossible<<G4endl; 194 194 G4bool good_advance; 195 195 196 if ( dyErr < epsStep * stepPossible ) 196 { 197 198 { //G4cout<<"err comparison = "<<dyErr<<" eps= "<<epsStep<<G4endl; 197 199 // Accept this accuracy. 198 200 yCurrent = yEnd; … … 200 202 } 201 203 else 202 { 204 { 205 // G4cout<<"Entering Accurate Advance"<<G4endl; 203 206 // Advance more accurately to "end of chord" 204 207 // *************** … … 212 215 213 216 #ifdef G4DEBUG_FIELD 214 G4cout << "Exiting FindNextChord Limited with:" << G4endl215 << " yCurrent: " << yCurrent<< G4endl;217 //G4cout << "Exiting FindNextChord Limited with:" << G4endl 218 // << " yCurrent: " << yCurrent<< G4endl; 216 219 #endif 217 220 … … 224 227 225 228 G4double 226 G4ChordFinder::FindNextChord( const G4FieldTrack yStart,229 G4ChordFinder::FindNextChord( const G4FieldTrack& yStart, 227 230 G4double stepMax, 228 231 G4FieldTrack& yEnd, // Endpoint … … 235 238 // Returns Length of Step taken 236 239 { 240 //G4cout<<"Inter Find Next Chord with step="<<stepMax<<G4endl; 237 241 // G4int stepRKnumber=0; 238 242 G4FieldTrack yCurrent= yStart; … … 248 252 249 253 fIntgrDriver-> GetDerivatives( yCurrent, dydx ) ; 250 254 //for (G4int i=0;i<G4FieldTrack::ncompSVEC;i++){ 255 // dydx[i]=0.; 256 //} 251 257 G4int noTrials=0; 252 258 const G4double safetyFactor= fFirstFraction; // 0.975 or 0.99 ? was 0.999 … … 260 266 G4double stepForChord; 261 267 yCurrent = yStart; // Always start from initial point 262 268 263 269 // ************ 264 270 fIntgrDriver->QuickAdvance( yCurrent, dydx, stepTrial, … … 266 272 // ************ 267 273 268 // We check whether the criterion is met here. 269 validEndPoint = AcceptableMissDist(dChordStep); 270 // && (dyErrPos < eps) ; 274 // G4cout<<"AfterQuickAdv step="<<stepTrial<<" dC="<<dChordStep<<" yErr="<<dyErrPos<<G4endl; 275 276 // We check whether the criterion is met here. 277 validEndPoint = AcceptableMissDist(dChordStep); 278 // if(validEndPoint){G4cout<<"validEndPoint"<<fDeltaChord<<G4endl;} 279 // else{G4cout<<"No__validEndPoint"<<G4endl;} 280 281 282 //&& (dyErrPos < eps) ; 283 // validEndPoint = AcceptableMissDist(dChordStep) && (dyErrPos < epsStep) ; 271 284 272 285 lastStepLength = stepTrial; … … 322 335 << " StepForGoodChord=" << std::setw(10) << stepTrial << G4endl; 323 336 #endif 324 337 //G4cout << "ChordF/FindNextChord: NoTrials= " << noTrials 338 // << " StepForGoodChord=" << std::setw(10) << stepTrial << G4endl; 325 339 yEnd= yCurrent; 326 340 return stepTrial; … … 419 433 } 420 434 421 // 422 // Given a starting curve point A (CurveA_PointVelocity), a later 423 // curve point B (CurveB_PointVelocity) and a point E which is (generally) 424 // not on the curve, find and return a point F which is on the curve and 425 // which is close to E. While advancing towards F utilise eps_step 435 // ApproxCurvePointS is 2nd implementation of ApproxCurvePoint. 436 // Use Brent Algorithm(or InvParabolic) when it possible. 437 // Given a starting curve point A (CurveA_PointVelocity), 438 // curve point B (CurveB_PointVelocity), a point E which is (generally) 439 // not on the curve and a point F which is on the curve(first approximation) 440 // From this information find new point S on the curve closer to point E. 441 // While advancing towards S utilise eps_step 426 442 // as a measure of the relative accuracy of each Step. 427 443 G4FieldTrack 444 G4ChordFinder::ApproxCurvePointS( const G4FieldTrack& CurveA_PointVelocity, 445 const G4FieldTrack& CurveB_PointVelocity, 446 const G4ThreeVector& CurrentE_Point, 447 const G4ThreeVector& CurrentF_Point, 448 const G4ThreeVector& PointG, 449 G4bool first, G4double eps_step) 450 { 451 452 453 G4FieldTrack EndPoint( CurveA_PointVelocity); 454 G4ThreeVector Point_A=CurveA_PointVelocity.GetPosition(); 455 G4ThreeVector Point_B=CurveB_PointVelocity.GetPosition(); 456 G4double xa,xb,xc,ya,yb,yc; 457 458 //InverseParabolic 459 //AF Intersects (First Part of Curve) 460 if(first){ 461 xa=0.; 462 ya=(PointG-Point_A).mag(); 463 xb=(Point_A-CurrentF_Point).mag(); 464 yb=-(PointG-CurrentF_Point).mag(); 465 xc=(Point_A-Point_B).mag(); 466 yc=-(CurrentE_Point-Point_B).mag(); 467 } 468 else{ 469 xa=0.; 470 ya=(Point_A-PointG).mag(); 471 xb=(Point_B-Point_A).mag(); 472 yb=-(PointG-Point_B).mag(); 473 xc=-(Point_A-CurrentF_Point).mag(); 474 yc=-(Point_A-CurrentE_Point).mag(); 475 476 } 477 const G4double tolerance= 1.e-12; 478 if(ya<=tolerance||std::abs(yc)<=tolerance){ 479 ; //What to do for the moment return the same point as in begin 480 //Then PropagatorInField will take care 481 } 482 else{ 483 484 G4double test_step =InvParabolic(xa,ya,xb,yb,xc,yc); 485 G4double curve=std::abs(EndPoint.GetCurveLength()-CurveB_PointVelocity.GetCurveLength()); 486 G4double dist= (EndPoint.GetPosition()-Point_B).mag(); 487 if(test_step<=0) { test_step=0.1*xb;} 488 if(test_step>=xb){ test_step=0.5*xb;} 489 490 491 if(curve*(1.+eps_step)<dist){ 492 test_step=0.5*dist; 493 } 494 495 G4bool goodAdvance; 496 goodAdvance= 497 fIntgrDriver->AccurateAdvance(EndPoint,test_step, eps_step); 498 // *************** 499 500 #ifdef G4DEBUG_FIELD 501 G4cout<<"G4ChordFinder:: test-step ShF="<<test_step<<" EndPoint="<<EndPoint<<G4endl; 502 // Test Track 503 G4FieldTrack TestTrack( CurveA_PointVelocity); 504 TestTrack = ApproxCurvePointV( CurveA_PointVelocity, 505 CurveB_PointVelocity, 506 CurrentE_Point, 507 eps_step ); 508 G4cout.precision(14); 509 G4cout<<"G4ChordFinder:: BrentApprox="<<EndPoint<<G4endl; 510 G4cout<<"G4ChordFinder::LinearApprox="<<TestTrack<<G4endl; 511 #endif 512 } 513 return EndPoint; 514 } 515 428 516 G4FieldTrack 429 517 G4ChordFinder::ApproxCurvePointV( const G4FieldTrack& CurveA_PointVelocity, … … 435 523 // if r=|AE|/|AB|, and s=true path lenght (AB) 436 524 // return the point that is r*s along the curve! 437 438 G4FieldTrack Current_PointVelocity= CurveA_PointVelocity; 525 ///////////////////////////// 526 // 527 //2st implementation : Inverse Parabolic Extrapolation by D.C.Williams 528 // 529 // Uses InvParabolic (xa,ya,xb,yb,xc,yc) 530 531 G4FieldTrack Current_PointVelocity = CurveA_PointVelocity; 439 532 440 533 G4ThreeVector CurveA_Point= CurveA_PointVelocity.GetPosition(); … … 520 613 // If there was a memory of the step_length actually require at the start 521 614 // of the integration Step, this could be re-used ... 522 615 G4cout.precision(14); 616 617 // G4cout<<"G4ChordFinder::LinearApprox="<<Current_PointVelocity<<G4endl; 523 618 return Current_PointVelocity; 524 619 } -
trunk/source/geometry/magneticfield/src/G4ClassicalRK4.cc
r831 r850 26 26 // 27 27 // $Id: G4ClassicalRK4.cc,v 1.12 2006/06/29 18:23:37 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ------------------------------------------------------------------- -
trunk/source/geometry/magneticfield/src/G4DELPHIMagField.cc
r831 r850 26 26 // 27 27 // $Id: G4DELPHIMagField.cc,v 1.6 2006/06/29 18:23:39 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // ------------------------------------------------------------------- 30 30 -
trunk/source/geometry/magneticfield/src/G4ElectricField.cc
r831 r850 26 26 // 27 27 // $Id: G4ElectricField.cc,v 1.2 2006/06/29 18:23:42 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/magneticfield/src/G4ElectroMagneticField.cc
r831 r850 26 26 // 27 27 // $Id: G4ElectroMagneticField.cc,v 1.3 2006/06/29 18:23:44 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/magneticfield/src/G4EqEMFieldWithSpin.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4EqEMFieldWithSpin.cc,v 1. 1.2.1 2008/04/24 12:43:57 gcosmoExp $28 // GEANT4 tag $Name: geant4-09-01-patch-02$27 // $Id: G4EqEMFieldWithSpin.cc,v 1.2 2008/04/24 12:33:08 tnikitin Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/src/G4EqMagElectricField.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4EqMagElectricField.cc,v 1.1 3.4.1 2008/04/24 12:43:57 gcosmoExp $28 // GEANT4 tag $Name: geant4-09-01-patch-02$27 // $Id: G4EqMagElectricField.cc,v 1.14 2008/04/24 12:33:35 tnikitin Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/src/G4EquationOfMotion.cc
r831 r850 26 26 // 27 27 // $Id: G4EquationOfMotion.cc,v 1.9 2006/06/29 18:23:48 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ------------------------------------------------------------------- -
trunk/source/geometry/magneticfield/src/G4ErrorMag_UsualEqRhs.cc
r831 r850 26 26 // 27 27 // $Id: G4ErrorMag_UsualEqRhs.cc,v 1.1 2007/05/16 12:54:02 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/src/G4ExactHelixStepper.cc
r831 r850 26 26 // 27 27 // $Id: G4ExactHelixStepper.cc,v 1.8 2007/12/10 16:29:47 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // Helix a-la-Explicity Euler: x_1 = x_0 + helix(h) -
trunk/source/geometry/magneticfield/src/G4ExplicitEuler.cc
r831 r850 26 26 // 27 27 // $Id: G4ExplicitEuler.cc,v 1.8 2006/06/29 18:23:53 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/src/G4FieldManager.cc
r831 r850 26 26 // 27 27 // $Id: G4FieldManager.cc,v 1.15 2007/12/07 15:34:10 japost Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ------------------------------------------------------------------- -
trunk/source/geometry/magneticfield/src/G4FieldManagerStore.cc
r831 r850 26 26 // 27 27 // $Id: G4FieldManagerStore.cc,v 1.4 2008/01/17 10:56:23 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // G4FieldManagerStore -
trunk/source/geometry/magneticfield/src/G4FieldTrack.cc
r831 r850 26 26 // 27 27 // $Id: G4FieldTrack.cc,v 1.14 2007/10/03 15:34:42 japost Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ------------------------------------------------------------------- -
trunk/source/geometry/magneticfield/src/G4HarmonicPolMagField.cc
r831 r850 26 26 // 27 27 // $Id: G4HarmonicPolMagField.cc,v 1.6 2006/06/29 18:24:00 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ------------------------------------------------------------------- -
trunk/source/geometry/magneticfield/src/G4HelixExplicitEuler.cc
r831 r850 26 26 // 27 27 // $Id: G4HelixExplicitEuler.cc,v 1.8 2007/12/10 16:29:49 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/src/G4HelixHeum.cc
r831 r850 26 26 // 27 27 // $Id: G4HelixHeum.cc,v 1.6 2006/06/29 18:24:04 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/src/G4HelixImplicitEuler.cc
r831 r850 26 26 // 27 27 // $Id: G4HelixImplicitEuler.cc,v 1.6 2006/06/29 18:24:06 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/src/G4HelixSimpleRunge.cc
r831 r850 26 26 // 27 27 // $Id: G4HelixSimpleRunge.cc,v 1.7 2006/06/29 18:24:08 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/src/G4ImplicitEuler.cc
r831 r850 26 26 // 27 27 // $Id: G4ImplicitEuler.cc,v 1.9 2006/06/29 18:24:11 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/src/G4LineCurrentMagField.cc
r831 r850 25 25 // 26 26 // $Id: G4LineCurrentMagField.cc,v 1.6 2006/06/29 18:24:13 gunter Exp $ 27 // GEANT4 tag $Name: $27 // GEANT4 tag $Name: HEAD $ 28 28 // ------------------------------------------------------------------- 29 29 -
trunk/source/geometry/magneticfield/src/G4LineSection.cc
r831 r850 26 26 // 27 27 // $Id: G4LineSection.cc,v 1.10 2006/06/29 18:24:16 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/magneticfield/src/G4MagErrorStepper.cc
r831 r850 26 26 // 27 27 // $Id: G4MagErrorStepper.cc,v 1.13 2006/06/29 18:24:18 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/magneticfield/src/G4MagHelicalStepper.cc
r831 r850 26 26 // 27 27 // $Id: G4MagHelicalStepper.cc,v 1.23 2007/09/05 12:20:17 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/magneticfield/src/G4MagIntegratorDriver.cc
r831 r850 26 26 // 27 27 // $Id: G4MagIntegratorDriver.cc,v 1.49 2007/08/17 12:30:33 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/src/G4MagIntegratorStepper.cc
r831 r850 26 26 // 27 27 // $Id: G4MagIntegratorStepper.cc,v 1.11 2006/06/29 18:24:34 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/magneticfield/src/G4Mag_EqRhs.cc
r831 r850 26 26 // 27 27 // $Id: G4Mag_EqRhs.cc,v 1.11 2006/06/29 18:24:36 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // This is the standard right-hand side for equation of motion -
trunk/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc
r831 r850 26 26 // 27 27 // $Id: G4Mag_SpinEqRhs.cc,v 1.12 2006/06/29 18:24:39 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // This is the standard right-hand side for equation of motion. -
trunk/source/geometry/magneticfield/src/G4Mag_UsualEqRhs.cc
r831 r850 26 26 // 27 27 // $Id: G4Mag_UsualEqRhs.cc,v 1.12 2006/06/29 18:24:42 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/src/G4MagneticField.cc
r831 r850 26 26 // 27 27 // $Id: G4MagneticField.cc,v 1.3 2006/06/29 18:24:44 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/magneticfield/src/G4QuadrupoleMagField.cc
r831 r850 26 26 // 27 27 // $Id: G4QuadrupoleMagField.cc,v 1.4 2006/06/29 18:24:46 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ------------------------------------------------------------------- -
trunk/source/geometry/magneticfield/src/G4RKG3_Stepper.cc
r831 r850 26 26 // 27 27 // $Id: G4RKG3_Stepper.cc,v 1.15 2007/08/21 10:17:41 tnikitin Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ------------------------------------------------------------------- -
trunk/source/geometry/magneticfield/src/G4SimpleHeum.cc
r831 r850 26 26 // 27 27 // $Id: G4SimpleHeum.cc,v 1.8 2006/06/29 18:24:51 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // Simple Heum: -
trunk/source/geometry/magneticfield/src/G4SimpleRunge.cc
r831 r850 26 26 // 27 27 // $Id: G4SimpleRunge.cc,v 1.10 2006/06/29 18:24:53 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // Simple Runge: -
trunk/source/geometry/magneticfield/src/G4UniformElectricField.cc
r831 r850 26 26 // 27 27 // $Id: G4UniformElectricField.cc,v 1.12 2006/06/29 18:24:56 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/magneticfield/src/G4UniformMagField.cc
r831 r850 26 26 // 27 27 // $Id: G4UniformMagField.cc,v 1.11 2006/06/29 18:24:58 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/History
r831 r850 1 $Id: History,v 1.12 1.2.1 2008/04/23 09:15:49gcosmo Exp $1 $Id: History,v 1.128 2008/07/15 10:27:55 gcosmo Exp $ 2 2 ------------------------------------------------------------------- 3 3 … … 18 18 ---------------------------------------------------------- 19 19 20 April 23, 2008 G.Cosmo geommng-V09-00-02 21 - Tag for release 9.1.p02. 20 July 15, 2008 G.Cosmo geommng-V09-01-06 21 - G4Region: re-introduced protection for setting of root-region flag to the 22 world volume in method RemoveRootLogicalVolume(), to cover case of explicit 23 deletion of stores in the user application for dynamic geometries setups. 24 25 July 10, 2008 G.Cosmo geommng-V09-01-05 26 - G4LogicalVolume, G4LogicalVolumeStore: modified logic for the deletion 27 of the root-region volumes, adding locking mechanism and automatically 28 de-registering the world default root-region. 29 Simplified Clean() method in the store, by removing unused and unnecessary 30 flag for logical-volumes notification. 31 - Reinstated update of materials in G4Region::RemoveRootLogicalVolume() 32 to correct handling individual removal of root-region volumes and restore 33 proper setup state. 34 35 May 16, 2008 G.Cosmo geommng-V09-01-04 36 - G4Region: changed condition inside ScanVolumeTree() to check for the 37 existence of a valid material-scanner pointer to apply the material scan 38 instead of using the flag for nested structures. 39 - G4GeometryManager: do not apply optimisation on the current volume if it 40 has been defined as a regular structure. 41 - Addresses problem report #990 on suggestions by M.Mendenhall. 22 42 23 43 March 13, 2008 G.Cosmo geommng-V09-01-03 -
trunk/source/geometry/management/include/G4AffineTransform.hh
r831 r850 26 26 // 27 27 // $Id: G4AffineTransform.hh,v 1.6 2006/06/29 18:30:37 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/include/G4AffineTransform.icc
r831 r850 26 26 // 27 27 // $Id: G4AffineTransform.icc,v 1.8 2006/06/29 18:30:39 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/include/G4BlockingList.hh
r831 r850 26 26 // 27 27 // $Id: G4BlockingList.hh,v 1.4 2006/06/29 18:30:41 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4BlockingList -
trunk/source/geometry/management/include/G4BlockingList.icc
r831 r850 26 26 // 27 27 // $Id: G4BlockingList.icc,v 1.3 2006/06/29 18:30:43 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/include/G4ErrorCylSurfaceTarget.hh
r831 r850 26 26 // 27 27 // $Id: G4ErrorCylSurfaceTarget.hh,v 1.1 2007/05/16 12:50:52 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/include/G4ErrorPlaneSurfaceTarget.hh
r831 r850 26 26 // 27 27 // $Id: G4ErrorPlaneSurfaceTarget.hh,v 1.1 2007/05/16 12:50:52 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/include/G4ErrorSurfaceTarget.hh
r831 r850 26 26 // 27 27 // $Id: G4ErrorSurfaceTarget.hh,v 1.1 2007/05/16 12:50:52 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/include/G4ErrorTanPlaneTarget.hh
r831 r850 26 26 // 27 27 // $Id: G4ErrorTanPlaneTarget.hh,v 1.1 2007/05/16 12:50:52 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/include/G4ErrorTarget.hh
r831 r850 26 26 // 27 27 // $Id: G4ErrorTarget.hh,v 1.1 2007/05/16 12:50:52 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/include/G4GeometryManager.hh
r831 r850 26 26 // 27 27 // $Id: G4GeometryManager.hh,v 1.12 2007/05/11 13:30:12 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4GeometryManager -
trunk/source/geometry/management/include/G4IdentityTrajectoryFilter.hh
r831 r850 26 26 // 27 27 // $Id: G4IdentityTrajectoryFilter.hh,v 1.3 2006/06/29 18:30:48 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/include/G4LogicalSurface.hh
r831 r850 26 26 // 27 27 // $Id: G4LogicalSurface.hh,v 1.10 2006/06/29 18:30:50 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 //////////////////////////////////////////////////////////////////////// -
trunk/source/geometry/management/include/G4LogicalSurface.icc
r831 r850 26 26 // 27 27 // $Id: G4LogicalSurface.icc,v 1.9 2006/06/29 18:30:52 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 //////////////////////////////////////////////////////////////////////// -
trunk/source/geometry/management/include/G4LogicalVolume.hh
r831 r850 25 25 // 26 26 // 27 // $Id: G4LogicalVolume.hh,v 1.2 6 2006/06/29 18:30:55 gunterExp $28 // GEANT4 tag $Name: $27 // $Id: G4LogicalVolume.hh,v 1.27 2008/07/10 09:40:08 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // … … 287 287 // persistifiable objects. 288 288 289 inline void Lock(); 290 // Set lock identifier for final deletion of entity. 291 289 292 private: 290 293 … … 317 320 G4bool fRootRegion; 318 321 // Flag to identify if the logical volume is a root region. 322 G4bool fLock; 323 // Flag to identify if entity is locked for final deletion. 319 324 G4double fSmartless; 320 325 // Quality for optimisation, average number of voxels to be spent -
trunk/source/geometry/management/include/G4LogicalVolume.icc
r831 r850 25 25 // 26 26 // 27 // $Id: G4LogicalVolume.icc,v 1.2 4 2006/06/29 18:30:57 gunterExp $28 // GEANT4 tag $Name: $27 // $Id: G4LogicalVolume.icc,v 1.25 2008/07/10 09:40:08 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // … … 437 437 438 438 // ******************************************************************** 439 // Lock 440 // ******************************************************************** 441 // 442 inline 443 void G4LogicalVolume::Lock() 444 { 445 fLock = true; 446 } 447 448 // ******************************************************************** 439 449 // Operator == 440 450 // ******************************************************************** -
trunk/source/geometry/management/include/G4LogicalVolumeStore.hh
r831 r850 26 26 // 27 27 // $Id: G4LogicalVolumeStore.hh,v 1.13 2007/04/10 10:13:50 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4LogicalVolumeStore -
trunk/source/geometry/management/include/G4PhysicalVolumeStore.hh
r831 r850 25 25 // 26 26 // 27 // $Id: G4PhysicalVolumeStore.hh,v 1.1 5 2007/04/10 10:13:50 gcosmo Exp $28 // GEANT4 tag $Name: $27 // $Id: G4PhysicalVolumeStore.hh,v 1.16 2008/07/10 09:41:20 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4PhysicalVolume … … 73 73 static void SetNotifier(G4VStoreNotifier* pNotifier); 74 74 // Assign a notifier for allocation/deallocation of the physical volumes. 75 static void Clean(G4bool notifyLV=false); 76 // Delete all volumes from the store. The flag 'notifyLV' must be set to 77 // true when the whole geometry tree is cleared at run-time through this 78 // store; the flag will guarantee that physical volumes to be deregistered 79 // from LV's list of daughters. 75 static void Clean(); 76 // Delete all physical volumes from the store. Mother logical volumes 77 // are automatically notified and have their daughters de-registered. 80 78 81 79 G4VPhysicalVolume* GetVolume(const G4String& name, -
trunk/source/geometry/management/include/G4ReflectedSolid.hh
r831 r850 26 26 // 27 27 // $Id: G4ReflectedSolid.hh,v 1.5 2006/06/29 18:31:03 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/include/G4Region.hh
r831 r850 25 25 // 26 26 // 27 // $Id: G4Region.hh,v 1. 19 2007/04/28 01:48:29 asaimExp $28 // GEANT4 tag $Name: $27 // $Id: G4Region.hh,v 1.20 2008/07/10 09:46:01 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4Region … … 75 75 76 76 void AddRootLogicalVolume(G4LogicalVolume* lv); 77 void RemoveRootLogicalVolume(G4LogicalVolume* lv );77 void RemoveRootLogicalVolume(G4LogicalVolume* lv, G4bool scan=true); 78 78 // Add/remove root logical volumes and set/reset their 79 79 // daughters flags as regions. They also recompute the -
trunk/source/geometry/management/include/G4Region.icc
r831 r850 26 26 // 27 27 // $Id: G4Region.icc,v 1.15 2007/04/28 01:48:29 asaim Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/include/G4RegionStore.hh
r831 r850 26 26 // 27 27 // $Id: G4RegionStore.hh,v 1.10 2006/11/30 10:39:28 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4RegionStore -
trunk/source/geometry/management/include/G4SmartVoxelHeader.hh
r831 r850 26 26 // 27 27 // $Id: G4SmartVoxelHeader.hh,v 1.10 2006/06/29 18:32:06 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4SmartVoxelHeader -
trunk/source/geometry/management/include/G4SmartVoxelHeader.icc
r831 r850 26 26 // 27 27 // $Id: G4SmartVoxelHeader.icc,v 1.6 2006/06/29 18:32:09 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/include/G4SmartVoxelNode.hh
r831 r850 25 25 // 26 26 // 27 // $Id: G4SmartVoxelNode.hh,v 1.1 0.4.1 2008/04/23 09:15:49gcosmo Exp $28 // GEANT4 tag $Name: geant4-09-01-patch-02$27 // $Id: G4SmartVoxelNode.hh,v 1.12 2008/01/24 15:47:23 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4SmartVoxelNode -
trunk/source/geometry/management/include/G4SmartVoxelNode.icc
r831 r850 25 25 // 26 26 // 27 // $Id: G4SmartVoxelNode.icc,v 1. 5.4.1 2008/04/23 09:15:49gcosmo Exp $28 // GEANT4 tag $Name: geant4-09-01-patch-02$27 // $Id: G4SmartVoxelNode.icc,v 1.7 2008/01/24 15:47:23 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/include/G4SmartVoxelProxy.hh
r831 r850 26 26 // 27 27 // $Id: G4SmartVoxelProxy.hh,v 1.8 2006/06/29 18:32:17 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4SmartVoxelProxy -
trunk/source/geometry/management/include/G4SmartVoxelProxy.icc
r831 r850 26 26 // 27 27 // $Id: G4SmartVoxelProxy.icc,v 1.4 2006/06/29 18:32:19 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/include/G4SmartVoxelStat.hh
r831 r850 25 25 // 26 26 // $Id: G4SmartVoxelStat.hh,v 1.4 2006/06/29 18:32:21 gunter Exp $ 27 // GEANT4 tag $Name: $27 // GEANT4 tag $Name: HEAD $ 28 28 // 29 29 // -------------------------------------------------------------------- -
trunk/source/geometry/management/include/G4SolidStore.hh
r831 r850 26 26 // 27 27 // $Id: G4SolidStore.hh,v 1.13 2007/04/10 10:13:50 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4SolidStore -
trunk/source/geometry/management/include/G4TouchableHandle.hh
r831 r850 26 26 // 27 27 // $Id: G4TouchableHandle.hh,v 1.6 2006/06/29 18:32:25 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // Class G4TouchableHandle -
trunk/source/geometry/management/include/G4VCurvedTrajectoryFilter.hh
r831 r850 26 26 // 27 27 // $Id: G4VCurvedTrajectoryFilter.hh,v 1.3 2006/06/29 18:32:27 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/include/G4VNestedParameterisation.hh
r831 r850 26 26 // 27 27 // $Id: G4VNestedParameterisation.hh,v 1.6 2006/06/29 18:32:29 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4VNestedParameterisation -
trunk/source/geometry/management/include/G4VPVDivisionFactory.hh
r831 r850 26 26 // 27 27 // $Id: G4VPVDivisionFactory.hh,v 1.2 2006/06/29 18:32:31 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/include/G4VPVParameterisation.hh
r831 r850 26 26 // 27 27 // $Id: G4VPVParameterisation.hh,v 1.13 2007/07/16 08:40:13 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4VPVParamterisation -
trunk/source/geometry/management/include/G4VPhysicalVolume.hh
r831 r850 26 26 // 27 27 // $Id: G4VPhysicalVolume.hh,v 1.17 2007/04/11 08:00:12 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/include/G4VPhysicalVolume.icc
r831 r850 26 26 // 27 27 // $Id: G4VPhysicalVolume.icc,v 1.10 2006/06/29 18:32:37 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/include/G4VSolid.hh
r831 r850 25 25 // 26 26 // 27 // $Id: G4VSolid.hh,v 1.2 6.2.1 2008/04/23 09:15:49gcosmo Exp $28 // GEANT4 tag $Name: geant4-09-01-patch-02$27 // $Id: G4VSolid.hh,v 1.28 2008/02/20 15:24:25 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/include/G4VSolid.icc
r831 r850 26 26 // 27 27 // $Id: G4VSolid.icc,v 1.9 2007/05/11 13:30:12 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/include/G4VStoreNotifier.hh
r831 r850 26 26 // 27 27 // $Id: G4VStoreNotifier.hh,v 1.3 2006/06/29 18:33:02 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4VStoreNotifier -
trunk/source/geometry/management/include/G4VTouchable.hh
r831 r850 26 26 // 27 27 // $Id: G4VTouchable.hh,v 1.9 2006/06/29 18:33:05 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/include/G4VTouchable.icc
r831 r850 26 26 // 27 27 // $Id: G4VTouchable.icc,v 1.9 2006/06/29 18:33:07 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/include/G4VUserRegionInformation.hh
r831 r850 26 26 // 27 27 // $Id: G4VUserRegionInformation.hh,v 1.4 2006/06/29 18:33:09 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/include/G4VVolumeMaterialScanner.hh
r831 r850 26 26 // 27 27 // $Id: G4VVolumeMaterialScanner.hh,v 1.4 2006/06/29 18:33:11 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4VVolumeMaterialScanner -
trunk/source/geometry/management/include/G4VoxelLimits.hh
r831 r850 26 26 // 27 27 // $Id: G4VoxelLimits.hh,v 1.9 2006/06/29 18:33:13 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4VoxelLimits -
trunk/source/geometry/management/include/G4VoxelLimits.icc
r831 r850 26 26 // 27 27 // $Id: G4VoxelLimits.icc,v 1.4 2006/06/29 18:33:15 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/include/meshdefs.hh
r831 r850 26 26 // 27 27 // $Id: meshdefs.hh,v 1.7 2006/06/29 18:33:17 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/include/voxeldefs.hh
r831 r850 26 26 // 27 27 // $Id: voxeldefs.hh,v 1.7 2006/06/29 18:33:19 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/src/G4BlockingList.cc
r831 r850 26 26 // 27 27 // $Id: G4BlockingList.cc,v 1.3 2006/06/29 18:33:21 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/src/G4ErrorCylSurfaceTarget.cc
r831 r850 26 26 // 27 27 // $Id: G4ErrorCylSurfaceTarget.cc,v 1.4 2007/06/20 12:50:48 arce Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/src/G4ErrorPlaneSurfaceTarget.cc
r831 r850 26 26 // 27 27 // $Id: G4ErrorPlaneSurfaceTarget.cc,v 1.2 2007/06/19 11:28:39 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/src/G4ErrorSurfaceTarget.cc
r831 r850 26 26 // 27 27 // $Id: G4ErrorSurfaceTarget.cc,v 1.1 2007/05/16 12:50:52 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/src/G4ErrorTanPlaneTarget.cc
r831 r850 26 26 // 27 27 // $Id: G4ErrorTanPlaneTarget.cc,v 1.1 2007/05/16 12:50:52 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/src/G4ErrorTarget.cc
r831 r850 26 26 // 27 27 // $Id: G4ErrorTarget.cc,v 1.1 2007/05/16 12:50:52 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/src/G4GeometryManager.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4GeometryManager.cc,v 1. 19.2.1 2008/04/23 09:15:50gcosmo Exp $28 // GEANT4 tag $Name: geant4-09-01-patch-02$27 // $Id: G4GeometryManager.cc,v 1.22 2008/05/16 13:46:48 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4GeometryManager … … 170 170 volume->SetVoxelHeader(0); 171 171 if ( ( (volume->IsToOptimise()) 172 && (volume->GetNoDaughters()>=kMinVoxelVolumesLevel1&&allOpts) )172 && (volume->GetNoDaughters()>=kMinVoxelVolumesLevel1&&allOpts) ) 173 173 || ( (volume->GetNoDaughters()==1) 174 && (volume->GetDaughter(0)->IsReplicated()==true) ) ) 174 && (volume->GetDaughter(0)->IsReplicated()==true) 175 && (volume->GetDaughter(0)->GetRegularStructureId()!=1) ) ) 175 176 { 176 177 #ifdef G4GEOMETRY_VOXELDEBUG … … 237 238 tVolume->SetVoxelHeader(0); 238 239 if ( ( (tVolume->IsToOptimise()) 239 && (tVolume->GetNoDaughters()>=kMinVoxelVolumesLevel1&&allOpts) )240 && (tVolume->GetNoDaughters()>=kMinVoxelVolumesLevel1&&allOpts) ) 240 241 || ( (tVolume->GetNoDaughters()==1) 241 242 && (tVolume->GetDaughter(0)->IsReplicated()==true) ) ) -
trunk/source/geometry/management/src/G4IdentityTrajectoryFilter.cc
r831 r850 26 26 // 27 27 // $Id: G4IdentityTrajectoryFilter.cc,v 1.4 2006/10/02 10:09:24 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ------------------------------------------------------------------------ -
trunk/source/geometry/management/src/G4LogicalVolume.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4LogicalVolume.cc,v 1.3 2 2006/11/30 10:39:28gcosmo Exp $28 // GEANT4 tag $Name: $27 // $Id: G4LogicalVolume.cc,v 1.33 2008/07/10 09:40:09 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // … … 63 63 G4bool optimise ) 64 64 : fDaughters(0,(G4VPhysicalVolume*)0), fFieldManager(pFieldMgr), 65 fVoxel(0), fOptimise(optimise), fRootRegion(false), f Smartless(2.),66 f Mass(0.), fVisAttributes(0), fRegion(0), fCutsCouple(0)65 fVoxel(0), fOptimise(optimise), fRootRegion(false), fLock(false), 66 fSmartless(2.), fMass(0.), fVisAttributes(0), fRegion(0), fCutsCouple(0) 67 67 { 68 68 SetSolid(pSolid); … … 85 85 : fDaughters(0,(G4VPhysicalVolume*)0), fFieldManager(0), 86 86 fMaterial(0), fName(""), fSensitiveDetector(0), fSolid(0), fUserLimits(0), 87 fVoxel(0), fOptimise(true), fRootRegion(false), f Smartless(2.),87 fVoxel(0), fOptimise(true), fRootRegion(false), fLock(false), fSmartless(2.), 88 88 fMass(0.), fVisAttributes(0), fRegion(0), fCutsCouple(0), fBiasWeight(0.) 89 89 { … … 100 100 G4LogicalVolume::~G4LogicalVolume() 101 101 { 102 // Avoid de-registration of root region if treating the first world volume 103 // 104 if( (fRootRegion) && (this != (*G4LogicalVolumeStore::GetInstance())[0]) ) 105 { fRegion->RemoveRootLogicalVolume(this); } 106 102 if (!fLock && fRootRegion) // De-register root region first if not locked 103 { // and flagged as root logical-volume 104 fRegion->RemoveRootLogicalVolume(this, true); 105 } 107 106 G4LogicalVolumeStore::DeRegister(this); 108 107 } -
trunk/source/geometry/management/src/G4LogicalVolumeStore.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4LogicalVolumeStore.cc,v 1.1 8 2007/04/10 10:13:50gcosmo Exp $28 // GEANT4 tag $Name: $27 // $Id: G4LogicalVolumeStore.cc,v 1.19 2008/07/10 09:40:09 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // G4LogicalVolumeStore … … 98 98 { 99 99 if (fgNotifier) { fgNotifier->NotifyDeRegistration(); } 100 if (*pos) { delete *pos; }100 if (*pos) { (*pos)->Lock(); delete *pos; } 101 101 i++; 102 102 } -
trunk/source/geometry/management/src/G4PhysicalVolumeStore.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4PhysicalVolumeStore.cc,v 1. 19 2007/04/10 10:13:50 gcosmo Exp $28 // GEANT4 tag $Name: $27 // $Id: G4PhysicalVolumeStore.cc,v 1.20 2008/07/10 09:41:20 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // G4PhysicalVolumeStore … … 73 73 // *************************************************************************** 74 74 // 75 void G4PhysicalVolumeStore::Clean( G4bool notifyLV)75 void G4PhysicalVolumeStore::Clean() 76 76 { 77 77 // Do nothing if geometry is closed … … 97 97 G4cout << "Deleting Physical Volumes ... "; 98 98 #endif 99 100 if (notifyLV)101 {102 for(pos=store->begin(); pos!=store->end(); pos++)103 {104 if (*pos) { (*pos)->GetLogicalVolume()->ClearDaughters(); }105 }106 }107 99 108 100 for(pos=store->begin(); pos!=store->end(); pos++) -
trunk/source/geometry/management/src/G4ReflectedSolid.cc
r831 r850 27 27 // $Id: G4ReflectedSolid.cc,v 1.11 2006/11/08 09:56:33 gcosmo Exp $ 28 28 // 29 // GEANT4 tag $Name: $29 // GEANT4 tag $Name: HEAD $ 30 30 // 31 31 // Implementation for G4ReflectedSolid class for boolean -
trunk/source/geometry/management/src/G4Region.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4Region.cc,v 1.2 3 2007/04/26 21:20:53 asaimExp $28 // GEANT4 tag $Name: $27 // $Id: G4Region.cc,v 1.26 2008/07/15 10:27:36 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // … … 140 140 G4VPVParameterisation* pParam = daughterPVol->GetParameterisation(); 141 141 142 if (pParam-> IsNested())142 if (pParam->GetMaterialScanner()) 143 143 { 144 144 size_t matNo = pParam->GetMaterialScanner()->GetNumberOfMaterials(); … … 232 232 // ******************************************************************* 233 233 // 234 void G4Region::RemoveRootLogicalVolume(G4LogicalVolume* lv )234 void G4Region::RemoveRootLogicalVolume(G4LogicalVolume* lv, G4bool scan) 235 235 { 236 236 // Find and remove logical volume from the list … … 247 247 } 248 248 249 // Scan recursively the tree of daugther volumes and reset regions 250 // 251 //ScanVolumeTree(lv, false); 252 253 // Update the materials list 254 // 255 //UpdateMaterialList(); 249 if (scan) // Update the materials list 250 { 251 UpdateMaterialList(); 252 } 256 253 257 254 // Set region as modified -
trunk/source/geometry/management/src/G4RegionStore.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4RegionStore.cc,v 1.1 3 2007/04/10 10:13:50gcosmo Exp $28 // GEANT4 tag $Name: $27 // $Id: G4RegionStore.cc,v 1.14 2008/07/10 09:46:01 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // G4RegionStore … … 99 99 #endif 100 100 101 // Do NOT delete world region !102 //103 101 for(iterator pos=store->begin(); pos!=store->end(); ++pos) 104 102 { -
trunk/source/geometry/management/src/G4SmartVoxelHeader.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4SmartVoxelHeader.cc,v 1. 28.4.1 2008/04/23 09:15:50gcosmo Exp $28 // GEANT4 tag $Name: geant4-09-01-patch-02$27 // $Id: G4SmartVoxelHeader.cc,v 1.31 2008/01/24 15:46:47 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/src/G4SmartVoxelNode.cc
r831 r850 26 26 // 27 27 // $Id: G4SmartVoxelNode.cc,v 1.6 2006/06/29 18:33:45 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // Class G4SmartVoxelNode -
trunk/source/geometry/management/src/G4SmartVoxelProxy.cc
r831 r850 26 26 // 27 27 // $Id: G4SmartVoxelProxy.cc,v 1.3 2006/06/29 18:33:48 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // Class G4SmartVoxelProxy -
trunk/source/geometry/management/src/G4SmartVoxelStat.cc
r831 r850 26 26 // 27 27 // $Id: G4SmartVoxelStat.cc,v 1.3 2006/06/29 18:33:50 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/management/src/G4SolidStore.cc
r831 r850 26 26 // 27 27 // $Id: G4SolidStore.cc,v 1.17 2007/04/10 10:13:50 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // G4SolidStore -
trunk/source/geometry/management/src/G4VCurvedTrajectoryFilter.cc
r831 r850 26 26 // 27 27 // $Id: G4VCurvedTrajectoryFilter.cc,v 1.3 2006/06/29 18:33:56 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // -------------------------------------------------------------------- 30 30 -
trunk/source/geometry/management/src/G4VNestedParameterisation.cc
r831 r850 26 26 // 27 27 // $Id: G4VNestedParameterisation.cc,v 1.6 2006/06/29 18:33:59 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4VNestedParameterisation implementation -
trunk/source/geometry/management/src/G4VPVDivisionFactory.cc
r831 r850 26 26 // 27 27 // $Id: G4VPVDivisionFactory.cc,v 1.2 2006/06/29 18:34:02 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4VPVDivisionFactory Implementation file -
trunk/source/geometry/management/src/G4VPVParameterisation.cc
r831 r850 26 26 // 27 27 // $Id: G4VPVParameterisation.cc,v 1.8 2007/07/16 08:40:13 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // Default implementations for Parameterisations that do not -
trunk/source/geometry/management/src/G4VPhysicalVolume.cc
r831 r850 26 26 // 27 27 // $Id: G4VPhysicalVolume.cc,v 1.14 2007/04/11 08:00:12 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/management/src/G4VSolid.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4VSolid.cc,v 1.3 5.2.1 2008/04/23 09:15:50gcosmo Exp $28 // GEANT4 tag $Name: geant4-09-01-patch-02$27 // $Id: G4VSolid.cc,v 1.37 2008/02/20 15:24:26 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4VSolid -
trunk/source/geometry/management/src/G4VoxelLimits.cc
r831 r850 26 26 // 27 27 // $Id: G4VoxelLimits.cc,v 1.11 2006/06/29 18:34:11 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4VoxelLimits -
trunk/source/geometry/navigation/History
r831 r850 1 $Id: History,v 1.11 6.2.3 2008/04/29 15:37:16gcosmo Exp $1 $Id: History,v 1.119 2008/04/29 15:33:05 gcosmo Exp $ 2 2 ------------------------------------------------------------------- 3 3 … … 17 17 * Reverse chronological order (last date on top), please * 18 18 ---------------------------------------------------------- 19 20 April 23rd, 2008 - G.Cosmo (geomnav-V09-00-15)21 --------------------------22 - Tag for release 9.1.p02.23 19 24 20 April 29th, 2008 - M.Asai (geomnav-V09-01-04) -
trunk/source/geometry/navigation/include/G4AuxiliaryNavServices.hh
r831 r850 26 26 // 27 27 // $Id: G4AuxiliaryNavServices.hh,v 1.4 2007/05/22 07:48:08 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/navigation/include/G4AuxiliaryNavServices.icc
r831 r850 26 26 // 27 27 // $Id: G4AuxiliaryNavServices.icc,v 1.4 2007/05/22 07:48:08 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/navigation/include/G4DrawVoxels.hh
r831 r850 26 26 // 27 27 // $Id: G4DrawVoxels.hh,v 1.3 2006/06/29 18:35:36 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/navigation/include/G4ErrorPropagationNavigator.hh
r831 r850 26 26 // 27 27 // $Id: G4ErrorPropagationNavigator.hh,v 1.1 2007/05/16 12:49:18 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/navigation/include/G4GeomTestErrorList.hh
r831 r850 26 26 // 27 27 // $Id: G4GeomTestErrorList.hh,v 1.3 2006/06/29 18:35:38 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/navigation/include/G4GeomTestLogger.hh
r831 r850 26 26 // 27 27 // $Id: G4GeomTestLogger.hh,v 1.3 2006/06/29 18:35:40 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/navigation/include/G4GeomTestOverlapList.hh
r831 r850 26 26 // 27 27 // $Id: G4GeomTestOverlapList.hh,v 1.3 2006/06/29 18:35:43 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/navigation/include/G4GeomTestOvershootList.hh
r831 r850 26 26 // 27 27 // $Id: G4GeomTestOvershootList.hh,v 1.3 2006/06/29 18:35:45 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/navigation/include/G4GeomTestPoint.hh
r831 r850 26 26 // 27 27 // $Id: G4GeomTestPoint.hh,v 1.3 2006/06/29 18:35:48 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/navigation/include/G4GeomTestSegment.hh
r831 r850 26 26 // 27 27 // $Id: G4GeomTestSegment.hh,v 1.4 2007/05/11 13:43:59 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/navigation/include/G4GeomTestStreamLogger.hh
r831 r850 26 26 // 27 27 // $Id: G4GeomTestStreamLogger.hh,v 1.3 2006/06/29 18:35:52 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/navigation/include/G4GeomTestVolPoint.hh
r831 r850 26 26 // 27 27 // $Id: G4GeomTestVolPoint.hh,v 1.3 2006/06/29 18:35:55 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/navigation/include/G4GeomTestVolume.hh
r831 r850 26 26 // 27 27 // $Id: G4GeomTestVolume.hh,v 1.3 2006/06/29 18:35:57 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/navigation/include/G4GeometryMessenger.hh
r831 r850 26 26 // 27 27 // $Id: G4GeometryMessenger.hh,v 1.4 2006/06/29 18:35:59 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/navigation/include/G4MultiNavigator.hh
r831 r850 26 26 // 27 27 // $Id: G4MultiNavigator.hh,v 1.4 2007/05/21 15:36:25 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/navigation/include/G4Navigator.hh
r831 r850 26 26 // 27 27 // $Id: G4Navigator.hh,v 1.26 2007/10/18 14:18:36 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/navigation/include/G4Navigator.icc
r831 r850 26 26 // 27 27 // $Id: G4Navigator.icc,v 1.15 2007/10/18 14:18:36 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/navigation/include/G4NormalNavigation.hh
r831 r850 26 26 // 27 27 // $Id: G4NormalNavigation.hh,v 1.4 2006/06/29 18:36:06 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/navigation/include/G4NormalNavigation.icc
r831 r850 26 26 // 27 27 // $Id: G4NormalNavigation.icc,v 1.4 2006/06/29 18:36:08 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/navigation/include/G4ParameterisedNavigation.hh
r831 r850 26 26 // 27 27 // $Id: G4ParameterisedNavigation.hh,v 1.6 2007/11/09 16:06:02 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/navigation/include/G4ParameterisedNavigation.icc
r831 r850 26 26 // 27 27 // $Id: G4ParameterisedNavigation.icc,v 1.7 2007/11/09 16:06:02 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/navigation/include/G4PathFinder.hh
r831 r850 25 25 // 26 26 // $Id: G4PathFinder.hh,v 1.34 2007/11/02 12:28:31 japost Exp $ 27 // GEANT4 tag $Name: $27 // GEANT4 tag $Name: HEAD $ 28 28 // 29 29 // class G4PathFinder -
trunk/source/geometry/navigation/include/G4PhantomParameterisation.hh
r831 r850 26 26 // 27 27 // $Id: G4PhantomParameterisation.hh,v 1.4 2008/01/22 15:02:36 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/navigation/include/G4PhantomParameterisation.icc
r831 r850 26 26 // 27 27 // $Id: G4PhantomParameterisation.icc,v 1.1 2007/10/17 19:13:58 arce Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 //-------------------------------------------------------------------- -
trunk/source/geometry/navigation/include/G4PropagatorInField.hh
r831 r850 25 25 // 26 26 // 27 // $Id: G4PropagatorInField.hh,v 1.1 3 2007/06/08 09:49:34 gcosmoExp $28 // GEANT4 tag $Name: $27 // $Id: G4PropagatorInField.hh,v 1.14 2008/05/28 09:11:59 tnikitin Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4PropagatorInField … … 129 129 inline void SetLargestAcceptableStep( G4double newBigDist ); 130 130 inline G4double GetLargestAcceptableStep(); 131 132 // Use alternative Locator(based on Brent Method,second order Intersection) 133 inline void SetBrentMethod(G4bool newLocator); 134 inline G4bool GetBrentMethod(); 131 135 132 136 public: // with description … … 266 270 // Geometrical tolerance defining surface thickness 267 271 272 G4int maxNumberOfStepsForIntersection; 273 G4int maxNumberOfCallsToReIntegration; 274 G4int maxNumberOfCallsToReIntegration_depth; 275 // Counters for Statistics about Location and ReIntegrations 268 276 private: 269 277 … … 272 280 // Used to store intermediate values of tracks in case of 273 281 // too slow progress 274 282 private: 283 G4bool fUseBrentLocator; 284 275 285 private: 276 286 -
trunk/source/geometry/navigation/include/G4PropagatorInField.icc
r831 r850 25 25 // 26 26 // 27 // $Id: G4PropagatorInField.icc,v 1.1 0 2006/11/13 17:34:08 gcosmoExp $28 // GEANT4 tag $Name: $27 // $Id: G4PropagatorInField.icc,v 1.11 2008/05/28 09:12:05 tnikitin Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // … … 146 146 return fVerboseLevel; 147 147 } 148 149 148 inline 150 149 G4int G4PropagatorInField::Verbose() const // Obsolete … … 268 267 return fNavigator; 269 268 } 269 270 inline 271 void G4PropagatorInField::SetBrentMethod(G4bool newLocator) 272 { 273 fUseBrentLocator=newLocator; 274 } 275 inline 276 G4bool G4PropagatorInField::GetBrentMethod() 277 { 278 return fUseBrentLocator; 279 } -
trunk/source/geometry/navigation/include/G4RegularNavigation.hh
r831 r850 26 26 // 27 27 // $Id: G4RegularNavigation.hh,v 1.2 2007/10/18 14:18:36 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/navigation/include/G4ReplicaNavigation.hh
r831 r850 26 26 // 27 27 // $Id: G4ReplicaNavigation.hh,v 1.6 2007/05/18 07:31:09 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/navigation/include/G4ReplicaNavigation.icc
r831 r850 26 26 // 27 27 // $Id: G4ReplicaNavigation.icc,v 1.5 2006/06/29 18:36:22 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/navigation/include/G4SafetyHelper.hh
r831 r850 26 26 // 27 27 // $Id: G4SafetyHelper.hh,v 1.7 2007/05/02 15:32:13 japost Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/navigation/include/G4TransportationManager.hh
r831 r850 26 26 // 27 27 // $Id: G4TransportationManager.hh,v 1.12 2007/04/20 15:28:37 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4TransportationManager -
trunk/source/geometry/navigation/include/G4TransportationManager.icc
r831 r850 26 26 // 27 27 // $Id: G4TransportationManager.icc,v 1.10 2007/04/20 15:28:37 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // ------------------------------------------------------------ 30 30 // GEANT 4 inlined function members implementation -
trunk/source/geometry/navigation/include/G4VoxelNavigation.hh
r831 r850 26 26 // 27 27 // $Id: G4VoxelNavigation.hh,v 1.5 2007/05/11 13:43:59 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/navigation/include/G4VoxelNavigation.icc
r831 r850 26 26 // 27 27 // $Id: G4VoxelNavigation.icc,v 1.4 2006/06/29 18:36:30 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/navigation/src/G4AuxiliaryNavServices.cc
r831 r850 25 25 // 26 26 // $Id: G4AuxiliaryNavServices.cc,v 1.3 2006/06/29 18:36:32 gunter Exp $ 27 // GEANT4 tag $Name: $27 // GEANT4 tag $Name: HEAD $ 28 28 // 29 29 // -------------------------------------------------------------------- -
trunk/source/geometry/navigation/src/G4DrawVoxels.cc
r831 r850 26 26 // 27 27 // $Id: G4DrawVoxels.cc,v 1.4 2006/06/29 18:36:34 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/navigation/src/G4ErrorPropagationNavigator.cc
r831 r850 26 26 // 27 27 // $Id: G4ErrorPropagationNavigator.cc,v 1.1 2007/05/16 12:49:18 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/navigation/src/G4GeomTestErrorList.cc
r831 r850 26 26 // 27 27 // $Id: G4GeomTestErrorList.cc,v 1.3 2006/06/29 18:36:36 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/navigation/src/G4GeomTestOverlapList.cc
r831 r850 26 26 // 27 27 // $Id: G4GeomTestOverlapList.cc,v 1.3 2006/06/29 18:36:39 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/navigation/src/G4GeomTestOvershootList.cc
r831 r850 26 26 // 27 27 // $Id: G4GeomTestOvershootList.cc,v 1.3 2006/06/29 18:36:41 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/navigation/src/G4GeomTestPoint.cc
r831 r850 26 26 // 27 27 // $Id: G4GeomTestPoint.cc,v 1.3 2006/06/29 18:36:44 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/navigation/src/G4GeomTestSegment.cc
r831 r850 26 26 // 27 27 // $Id: G4GeomTestSegment.cc,v 1.11 2007/11/16 09:39:14 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/navigation/src/G4GeomTestStreamLogger.cc
r831 r850 26 26 // 27 27 // $Id: G4GeomTestStreamLogger.cc,v 1.3 2006/06/29 18:36:49 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/navigation/src/G4GeomTestVolPoint.cc
r831 r850 26 26 // 27 27 // $Id: G4GeomTestVolPoint.cc,v 1.3 2006/06/29 18:36:52 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/navigation/src/G4GeomTestVolume.cc
r831 r850 26 26 // 27 27 // $Id: G4GeomTestVolume.cc,v 1.6 2007/11/16 09:39:14 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/navigation/src/G4GeometryMessenger.cc
r831 r850 26 26 // 27 27 // $Id: G4GeometryMessenger.cc,v 1.5 2006/06/29 18:36:57 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/navigation/src/G4NormalNavigation.cc
r831 r850 26 26 // 27 27 // $Id: G4NormalNavigation.cc,v 1.9 2007/05/11 13:43:59 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/navigation/src/G4ParameterisedNavigation.cc
r831 r850 26 26 // 27 27 // $Id: G4ParameterisedNavigation.cc,v 1.12 2007/11/09 16:06:02 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/navigation/src/G4PathFinder.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4PathFinder.cc,v 1.5 8.2.1 2008/04/29 15:37:16gcosmo Exp $27 // $Id: G4PathFinder.cc,v 1.59 2008/04/29 15:32:54 gcosmo Exp $ 28 28 // GEANT4 tag $ Name: $ 29 29 // -
trunk/source/geometry/navigation/src/G4PropagatorInField.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4PropagatorInField.cc,v 1.4 2 2008/01/24 08:54:01 gcosmoExp $28 // GEANT4 tag $Name: $27 // $Id: G4PropagatorInField.cc,v 1.43 2008/05/28 09:12:23 tnikitin Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // … … 83 83 fPreviousSafety= 0.0; 84 84 kCarTolerance = G4GeometryTolerance::GetInstance()->GetSurfaceTolerance(); 85 85 // 86 fUseBrentLocator=true; 86 87 // In case of too slow progress in finding Intersection Point 87 88 // intermediates Points on the Track must be stored. 88 89 // Initialise the array of Pointers [max_depth+1] to do this 89 90 90 G4ThreeVector zeroV(0.0,0.0,0.0); 91 91 for (G4int idepth=0; idepth<max_depth+1; idepth++ ) … … 93 93 ptrInterMedFT[ idepth ] = new G4FieldTrack( zeroV, zeroV, 0., 0., 0., 0.); 94 94 } 95 // Counter for Maximum Number Of Trial before Intersection Found 96 maxNumberOfStepsForIntersection=0; 97 // Counter for Number Of Calls to ReIntegrationEndPoint Method 98 maxNumberOfCallsToReIntegration=0; 99 maxNumberOfCallsToReIntegration_depth=0; 95 100 } 96 101 … … 100 105 { 101 106 delete ptrInterMedFT[idepth]; 107 } 108 if(fVerboseLevel>0){ 109 G4cout<<"G4PropagatorInField::Location with Max Number of Steps=" 110 << maxNumberOfStepsForIntersection<<G4endl; 111 G4cout<<"G4PropagatorInField::ReIntegrateEndPoint was called "<< 112 maxNumberOfCallsToReIntegration<<" times and for depth algorithm "<< 113 maxNumberOfCallsToReIntegration_depth<<" times"<<G4endl; 102 114 } 103 115 } … … 114 126 G4VPhysicalVolume* pPhysVol) 115 127 { 128 116 129 // If CurrentProposedStepLength is too small for finding Chords 117 130 // then return with no action (for now - TODO: some action) … … 150 163 151 164 GetChordFinder()->SetChargeMomentumMass(fCharge, fInitialMomentumModulus, fMass); 152 165 153 166 G4FieldTrack CurrentState(pFieldTrack); 154 167 G4FieldTrack OriginalState = CurrentState; … … 291 304 InterSectionPointE, IntersectPointVelct_G, 292 305 recalculatedEndPt); 293 // G4cout<<"In Locate"<<recalculatedEndPt<<" and V"<<IntersectPointVelct_G.GetPosition()<<G4endl;306 // G4cout<<"In Locate"<<recalculatedEndPt<<" and V"<<IntersectPointVelct_G.GetPosition()<<G4endl; 294 307 intersects = intersects && found_intersection; 295 308 if( found_intersection ) { … … 405 418 << " Zero progress for " << fNoZeroStep << " attempted steps." 406 419 << G4endl; 420 G4cout << "Proposed Step is "<<CurrentProposedStepLength <<" but Step Taken is "<< fFull_CurveLen_of_LastAttempt <<G4endl; 421 G4cout << "For Particle with Charge ="<<fCharge 422 << " Momentum="<< fInitialMomentumModulus<<" Mass="<< fMass<<G4endl; 423 if( pPhysVol ) 424 G4cout << " in the volume " << pPhysVol->GetName() ; 425 else 426 G4cout << " in unknown or null volume. " ; 427 G4cout << G4endl; 407 428 if ( fVerboseLevel > 2 ) 408 429 G4cout << " Particle that is stuck will be killed." << G4endl; 409 430 fNoZeroStep = 0; 410 431 } 411 // G4cout << "G4PropagatorInField returns " << TruePathLength << G4endl;432 412 433 return TruePathLength; 413 434 } … … 463 484 G4FieldTrack ApproxIntersecPointV(CurveEndPointVelocity); // FT-Def-Construct 464 485 G4double NewSafety= -0.0; 465 486 466 487 G4bool final_section= true; // Shows whether current section is last 467 488 // (i.e. B=full end) 468 489 G4bool first_section=true; 469 490 recalculatedEndPoint= false; 470 491 471 492 G4bool restoredFullEndpoint= false; 472 493 … … 482 503 static G4int max_no_seen= -1; 483 504 static G4int trigger_substepno_print= warn_substeps - 20 ; 484 505 485 506 //-------------------------------------------------------------------------- 486 507 // Algoritm for the case if progress in founding intersection is too slow. … … 492 513 // until 'max_depth'. 493 514 //-------------------------------------------------------------------------- 494 495 const G4int param_substeps=10; // Test value for the maximum number 496 // of substeps 515 G4double count_did_len=0.; 516 G4double count_all_len=0; 517 G4int param_substeps=100;//Test value for the maximum number of substeps 518 if(!fUseBrentLocator) param_substeps=10;// Reduced value for the maximum number 519 497 520 const G4double fraction_done=0.3; 498 521 … … 549 572 // (the closest if possible) 550 573 // 551 ApproxIntersecPointV = GetChordFinder() 574 if((!fUseBrentLocator)||(substep_no_p==0)){ 575 ApproxIntersecPointV = GetChordFinder() 552 576 ->ApproxCurvePointV( CurrentA_PointVelocity, 553 577 CurrentB_PointVelocity, … … 555 579 fEpsilonStep ); 556 580 // The above method is the key & most intuitive part ... 557 581 } 558 582 #ifdef G4DEBUG_FIELD 559 583 if( ApproxIntersecPointV.GetCurveLength() > … … 571 595 572 596 G4ThreeVector CurrentF_Point= ApproxIntersecPointV.GetPosition(); 573 597 if(substep_no> maxNumberOfStepsForIntersection)maxNumberOfStepsForIntersection=substep_no; 574 598 // First check whether EF is small - then F is a good approx. point 575 599 // Calculate the length and direction of the chord AF … … 580 604 { 581 605 found_approximate_intersection = true; 582 583 606 // Create the "point" return value 584 607 // … … 609 632 if( Intersects_AF ) 610 633 { 634 if(fUseBrentLocator){ 635 636 G4FieldTrack EndPoint=ApproxIntersecPointV; 637 ApproxIntersecPointV= GetChordFinder()->ApproxCurvePointS( 638 CurrentA_PointVelocity,CurrentB_PointVelocity, 639 CurrentE_Point,CurrentF_Point,PointG,true,fEpsilonStep); 640 CurrentB_PointVelocity = EndPoint; 641 CurrentE_Point = PointG; 642 // By moving point B, must take care if current 643 // AF has no intersection to try current FB!! 644 // 645 final_section= false; 646 647 } 648 else{ 611 649 // G is our new Candidate for the intersection point. 612 650 // It replaces "E" and we will repeat the test to see if … … 617 655 CurrentB_PointVelocity = ApproxIntersecPointV; 618 656 CurrentE_Point = PointG; 619 657 620 658 // By moving point B, must take care if current 621 659 // AF has no intersection to try current FB!! 622 660 // 623 661 final_section= false; 624 662 } 625 663 #ifdef G4VERBOSE 626 664 if( fVerboseLevel > 3 ) … … 651 689 PointH ); 652 690 if( Intersects_FB ) 653 { 691 { 692 if(fUseBrentLocator){ 693 CurrentA_PointVelocity = ApproxIntersecPointV; 694 ApproxIntersecPointV= GetChordFinder()->ApproxCurvePointS( 695 CurrentA_PointVelocity,CurrentB_PointVelocity, 696 CurrentE_Point,Point_A,PointH,false,fEpsilonStep); 697 CurrentE_Point = PointH; 698 } 699 else{ 700 654 701 // There is an intersection of FB with a volume boundary 655 702 // H <- First Intersection of Chord FB … … 666 713 CurrentA_PointVelocity = ApproxIntersecPointV; 667 714 CurrentE_Point = PointH; 715 } 668 716 } 669 717 else // not Intersects_FB … … 719 767 curveDist = CurrentB_PointVelocity.GetCurveLength() 720 768 - CurrentA_PointVelocity.GetCurveLength(); 721 722 // Change this condition for very strict parameters of propagation 723 // 724 if( curveDist*curveDist*(1+2* fEpsilonStep ) < linDistSq ) 769 if( curveDist*curveDist*(1+2*fEpsilonStep ) < linDistSq ) 725 770 { 726 771 // Re-integrate to obtain a new B … … 733 778 G4FieldTrack oldPointVelB = CurrentB_PointVelocity; 734 779 CurrentB_PointVelocity = newEndPointFT; 735 780 maxNumberOfCallsToReIntegration= maxNumberOfCallsToReIntegration+1; 781 #ifdef G4DEBUG_FIELD 782 G4cout<<"G4PIF::Call ReIntEnd1 linD="<<std::sqrt(linDistSq)<<" curve="<<curveDist<<" n="<<substep_no<<G4endl; 783 G4cout<<"G4PIF::Call ReIntEnd2 IntersectAF="<< Intersects_AF<<" final_section="<<final_section<<G4endl; 784 #endif 736 785 if( (final_section)&&(Second_half)&&(depth==0) ) // real final section 737 786 { … … 740 789 // So that we can return it, if it is the endpoint! 741 790 } 791 742 792 } 793 743 794 if( curveDist < 0.0 ) 744 795 { … … 757 808 << "The final curve point is not further along" 758 809 << " than the original!" << G4endl; 759 760 810 if( recalculatedEndPoint ) 761 811 { … … 782 832 G4cerr << " Substep depth no= "<< substep_no_p << " Depth= " 783 833 << depth << G4endl; 784 834 G4cerr << " did_len= "<< count_did_len << " all_len= " 835 << count_all_len << G4endl; 785 836 G4Exception("G4PropagatorInField::LocateIntersectionPoint()", 786 837 "FatalError", FatalException, 787 838 "Error in advancing propagation."); 788 839 } 789 840 790 841 if(restoredFullEndpoint) 791 842 { … … 832 883 G4double all_len = std::abs( CurrentB_PointVelocity.GetCurveLength() 833 884 - SubStart_PointVelocity.GetCurveLength()); 834 885 count_did_len=did_len; 886 count_all_len=all_len; 835 887 G4double stepLengthAB; 836 888 G4ThreeVector PointGe; … … 890 942 CurrentA_PointVelocity = *ptrInterMedFT[depth]; 891 943 CurrentB_PointVelocity = *ptrInterMedFT[depth-1]; 944 // Ensure that the new endpoints are not further apart in space 945 // than on the curve due to different errors in the integration 946 // 947 G4double linDistSq, curveDist; 948 linDistSq = ( CurrentB_PointVelocity.GetPosition() 949 - CurrentA_PointVelocity.GetPosition() ).mag2(); 950 curveDist = CurrentB_PointVelocity.GetCurveLength() 951 - CurrentA_PointVelocity.GetCurveLength(); 952 if( curveDist*curveDist*(1+2*fEpsilonStep ) < linDistSq ) 953 { 954 // Re-integrate to obtain a new B 955 // 956 G4FieldTrack newEndPointFT= 957 ReEstimateEndpoint( CurrentA_PointVelocity, 958 CurrentB_PointVelocity, 959 linDistSq, // to avoid recalculation 960 curveDist ); 961 G4FieldTrack oldPointVelB = CurrentB_PointVelocity; 962 CurrentB_PointVelocity = newEndPointFT; 963 maxNumberOfCallsToReIntegration_depth= maxNumberOfCallsToReIntegration_depth+1; 964 } 965 892 966 G4ThreeVector Point_A = CurrentA_PointVelocity.GetPosition(); 893 967 G4ThreeVector SubE_point = CurrentB_PointVelocity.GetPosition(); -
trunk/source/geometry/navigation/src/G4ReplicaNavigation.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4ReplicaNavigation.cc,v 1.1 7.2.2 2008/04/28 16:05:41gcosmo Exp $28 // GEANT4 tag $Name: geant4-09-01-patch-02$27 // $Id: G4ReplicaNavigation.cc,v 1.19 2008/04/28 15:39:55 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/navigation/src/G4TransportationManager.cc
r831 r850 26 26 // 27 27 // $Id: G4TransportationManager.cc,v 1.15 2007/04/12 11:51:48 vnivanch Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/navigation/src/G4VoxelNavigation.cc
r831 r850 26 26 // 27 27 // $Id: G4VoxelNavigation.cc,v 1.7 2007/05/11 13:43:59 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/BREPS/History
r831 r850 1 $Id: History,v 1. 68.2.1 2008/04/23 08:59:37gcosmo Exp $1 $Id: History,v 1.70 2008/07/08 10:01:13 gcosmo Exp $ 2 2 ---------------------------------------------------------------------------- 3 3 … … 18 18 ---------------------------------------------------------- 19 19 20 23/04/2008 : G. Cosmo breps-V09-00-01 21 - Tag for release 9.1.p02.20 08/07/2008 : G. Cosmo breps-V09-01-02 21 - Replaced exit() statement with G4Exception in G4Ray. 22 22 23 23 13/03/2008 : G. Cosmo breps-V09-01-01 -
trunk/source/geometry/solids/BREPS/include/G4Assembly.hh
r831 r850 26 26 // 27 27 // $Id: G4Assembly.hh,v 1.10 2006/06/29 18:37:33 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4Assembly.icc
r831 r850 26 26 // 27 27 // $Id: G4Assembly.icc,v 1.4 2006/06/29 18:37:35 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4Axis2Placement3D.hh
r831 r850 26 26 // 27 27 // $Id: G4Axis2Placement3D.hh,v 1.5 2006/06/29 18:37:38 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4Axis2Placement3D.icc
r831 r850 26 26 // 27 27 // $Id: G4Axis2Placement3D.icc,v 1.9 2006/06/29 18:37:41 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4BREPSolid.hh
r831 r850 26 26 // 27 27 // $Id: G4BREPSolid.hh,v 1.17 2006/10/19 15:35:36 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4BREPSolid.icc
r831 r850 26 26 // 27 27 // $Id: G4BREPSolid.icc,v 1.9 2006/10/20 14:23:19 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4BREPSolidBox.hh
r831 r850 26 26 // 27 27 // $Id: G4BREPSolidBox.hh,v 1.10 2008/01/22 16:03:13 tnikitin Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4BREPSolidCone.hh
r831 r850 26 26 // 27 27 // $Id: G4BREPSolidCone.hh,v 1.11 2006/06/29 18:37:51 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4BREPSolidCylinder.hh
r831 r850 26 26 // 27 27 // $Id: G4BREPSolidCylinder.hh,v 1.10 2006/06/29 18:37:53 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4BREPSolidOpenPCone.hh
r831 r850 26 26 // 27 27 // $Id: G4BREPSolidOpenPCone.hh,v 1.9 2006/06/29 18:37:55 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4BREPSolidPCone.hh
r831 r850 26 26 // 27 27 // $Id: G4BREPSolidPCone.hh,v 1.14 2006/06/29 18:37:57 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4BREPSolidPolyhedra.hh
r831 r850 26 26 // 27 27 // $Id: G4BREPSolidPolyhedra.hh,v 1.14 2006/06/29 18:37:59 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4BREPSolidSphere.hh
r831 r850 26 26 // 27 27 // $Id: G4BREPSolidSphere.hh,v 1.11 2006/06/29 18:38:01 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4BREPSolidTorus.hh
r831 r850 26 26 // 27 27 // $Id: G4BREPSolidTorus.hh,v 1.10 2006/06/29 18:38:03 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4BSplineCurve.hh
r831 r850 26 26 // 27 27 // $Id: G4BSplineCurve.hh,v 1.13 2006/06/29 18:38:05 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4BSplineCurve.icc
r831 r850 26 26 // 27 27 // $Id: G4BSplineCurve.icc,v 1.7 2006/06/29 18:38:07 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4BSplineCurveWithKnots.hh
r831 r850 26 26 // 27 27 // $Id: G4BSplineCurveWithKnots.hh,v 1.5 2006/06/29 18:38:09 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4BSplineSurface.hh
r831 r850 26 26 // 27 27 // $Id: G4BSplineSurface.hh,v 1.11 2006/06/29 18:38:11 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4BSplineSurface.icc
r831 r850 26 26 // 27 27 // $Id: G4BSplineSurface.icc,v 1.6 2006/06/29 18:38:14 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4BSplineSurfaceWithKnots.hh
r831 r850 26 26 // 27 27 // $Id: G4BSplineSurfaceWithKnots.hh,v 1.4 2006/06/29 18:38:17 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4BezierSurface.hh
r831 r850 26 26 // 27 27 // $Id: G4BezierSurface.hh,v 1.7 2006/06/29 18:38:20 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4BezierSurface.icc
r831 r850 26 26 // 27 27 // $Id: G4BezierSurface.icc,v 1.4 2006/06/29 18:38:22 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4BoundingBox3D.hh
r831 r850 26 26 // 27 27 // $Id: G4BoundingBox3D.hh,v 1.7 2007/05/11 13:49:31 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4BoundingBox3D.icc
r831 r850 26 26 // 27 27 // $Id: G4BoundingBox3D.icc,v 1.4 2006/06/29 18:38:27 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4CircularCurve.hh
r831 r850 26 26 // 27 27 // $Id: G4CircularCurve.hh,v 1.9 2006/06/29 18:38:30 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4CircularCurve.icc
r831 r850 26 26 // 27 27 // $Id: G4CircularCurve.icc,v 1.6 2006/06/29 18:38:32 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4CompositeCurve.hh
r831 r850 26 26 // 27 27 // $Id: G4CompositeCurve.hh,v 1.8 2006/06/29 18:38:35 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4CompositeCurve.icc
r831 r850 26 26 // 27 27 // $Id: G4CompositeCurve.icc,v 1.5 2006/06/29 18:38:37 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4Conic.hh
r831 r850 26 26 // 27 27 // $Id: G4Conic.hh,v 1.7 2006/06/29 18:38:39 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4Conic.icc
r831 r850 26 26 // 27 27 // $Id: G4Conic.icc,v 1.4 2006/06/29 18:38:42 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4ConicalSurface.hh
r831 r850 26 26 // 27 27 // $Id: G4ConicalSurface.hh,v 1.10 2006/06/29 18:38:44 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4ConicalSurface.icc
r831 r850 26 26 // 27 27 // $Id: G4ConicalSurface.icc,v 1.4 2006/06/29 18:38:47 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4ControlPoints.hh
r831 r850 26 26 // 27 27 // $Id: G4ControlPoints.hh,v 1.7 2006/06/29 18:38:50 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4ControlPoints.icc
r831 r850 26 26 // 27 27 // $Id: G4ControlPoints.icc,v 1.3 2006/06/29 18:38:52 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4ConvexHull.hh
r831 r850 26 26 // 27 27 // $Id: G4ConvexHull.hh,v 1.7 2006/06/29 18:38:54 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4Curve.hh
r831 r850 26 26 // 27 27 // $Id: G4Curve.hh,v 1.11 2007/05/11 13:49:31 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4Curve.icc
r831 r850 26 26 // 27 27 // $Id: G4Curve.icc,v 1.7 2006/06/29 18:38:58 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4CurvePoint.hh
r831 r850 26 26 // 27 27 // $Id: G4CurvePoint.hh,v 1.6 2006/06/29 18:39:00 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4CurvePoint.icc
r831 r850 26 26 // 27 27 // $Id: G4CurvePoint.icc,v 1.4 2006/06/29 18:39:03 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4CurveRayIntersection.hh
r831 r850 26 26 // 27 27 // $Id: G4CurveRayIntersection.hh,v 1.6 2007/05/11 13:49:31 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4CurveRayIntersection.icc
r831 r850 26 26 // 27 27 // $Id: G4CurveRayIntersection.icc,v 1.4 2006/06/29 18:39:07 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4CurveVector.hh
r831 r850 26 26 // 27 27 // $Id: G4CurveVector.hh,v 1.7 2006/06/29 18:39:10 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4CylindricalSurface.hh
r831 r850 26 26 // 27 27 // $Id: G4CylindricalSurface.hh,v 1.10 2006/06/29 18:39:12 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4CylindricalSurface.icc
r831 r850 26 26 // 27 27 // $Id: G4CylindricalSurface.icc,v 1.4 2006/06/29 18:39:14 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4Ellipse.hh
r831 r850 26 26 // 27 27 // $Id: G4Ellipse.hh,v 1.10 2006/06/29 18:39:16 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4Ellipse.icc
r831 r850 26 26 // 27 27 // $Id: G4Ellipse.icc,v 1.8 2006/06/29 18:39:18 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4FConicalSurface.hh
r831 r850 26 26 // 27 27 // $Id: G4FConicalSurface.hh,v 1.13 2006/06/29 18:39:21 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4FConicalSurface.icc
r831 r850 26 26 // 27 27 // $Id: G4FConicalSurface.icc,v 1.4 2006/06/29 18:39:23 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4FCylindricalSurface.hh
r831 r850 26 26 // 27 27 // $Id: G4FCylindricalSurface.hh,v 1.13 2006/06/29 18:39:25 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4FCylindricalSurface.icc
r831 r850 26 26 // 27 27 // $Id: G4FCylindricalSurface.icc,v 1.4 2006/06/29 18:39:27 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4FPlane.hh
r831 r850 26 26 // 27 27 // $Id: G4FPlane.hh,v 1.13 2006/06/29 18:39:30 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4FPlane.icc
r831 r850 26 26 // 27 27 // $Id: G4FPlane.icc,v 1.6 2006/06/29 18:39:32 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4Globals.hh
r831 r850 26 26 // 27 27 // $Id: G4Globals.hh,v 1.5 2006/06/29 18:39:34 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // Author: A.Breakstone -
trunk/source/geometry/solids/BREPS/include/G4Hyperbola.hh
r831 r850 26 26 // 27 27 // $Id: G4Hyperbola.hh,v 1.10 2006/06/29 18:39:36 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4Hyperbola.icc
r831 r850 26 26 // 27 27 // $Id: G4Hyperbola.icc,v 1.9 2006/06/29 18:39:38 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4KnotVector.hh
r831 r850 26 26 // 27 27 // $Id: G4KnotVector.hh,v 1.10 2007/05/11 13:49:31 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4KnotVector.icc
r831 r850 26 26 // 27 27 // $Id: G4KnotVector.icc,v 1.5 2006/06/29 18:39:42 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4Line.hh
r831 r850 26 26 // 27 27 // $Id: G4Line.hh,v 1.9 2006/06/29 18:39:44 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4Line.icc
r831 r850 25 25 // 26 26 // 27 // $Id: G4Line.icc,v 1. 9.4.1 2008/04/23 08:59:37 gcosmo Exp $28 // GEANT4 tag $Name: geant4-09-01-patch-02$27 // $Id: G4Line.icc,v 1.10 2008/03/13 14:18:57 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4OsloMatrix.hh
r831 r850 26 26 // 27 27 // $Id: G4OsloMatrix.hh,v 1.6 2006/06/29 18:39:49 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4OsloMatrix.icc
r831 r850 26 26 // 27 27 // $Id: G4OsloMatrix.icc,v 1.4 2006/06/29 18:39:52 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4Parabola.hh
r831 r850 26 26 // 27 27 // $Id: G4Parabola.hh,v 1.10 2006/06/29 18:39:54 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4Parabola.icc
r831 r850 26 26 // 27 27 // $Id: G4Parabola.icc,v 1.8 2006/06/29 18:39:57 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4PlacedSolid.hh
r831 r850 26 26 // 27 27 // $Id: G4PlacedSolid.hh,v 1.10 2006/06/29 18:39:59 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4PlacedSolid.icc
r831 r850 26 26 // 27 27 // $Id: G4PlacedSolid.icc,v 1.8 2006/06/29 18:40:02 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4PlacementVector.hh
r831 r850 26 26 // 27 27 // $Id: G4PlacementVector.hh,v 1.7 2006/06/29 18:40:04 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4Plane.hh
r831 r850 26 26 // 27 27 // $Id: G4Plane.hh,v 1.6 2006/06/29 18:40:06 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4Point3DVector.hh
r831 r850 26 26 // 27 27 // $Id: G4Point3DVector.hh,v 1.8 2006/06/29 18:40:09 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4PointRat.hh
r831 r850 26 26 // 27 27 // $Id: G4PointRat.hh,v 1.10 2006/06/29 18:40:12 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4PointRat.icc
r831 r850 26 26 // 27 27 // $Id: G4PointRat.icc,v 1.4 2006/06/29 18:40:15 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4ProjectedSurface.hh
r831 r850 26 26 // 27 27 // $Id: G4ProjectedSurface.hh,v 1.7 2006/06/29 18:40:17 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4ProjectedSurface.icc
r831 r850 26 26 // 27 27 // $Id: G4ProjectedSurface.icc,v 1.5 2006/06/29 18:40:19 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4Ray.hh
r831 r850 26 26 // 27 27 // $Id: G4Ray.hh,v 1.9 2006/06/29 18:40:21 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4Ray.icc
r831 r850 26 26 // 27 27 // $Id: G4Ray.icc,v 1.7 2006/06/29 18:40:24 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4RectangularTrimmedSurface.hh
r831 r850 26 26 // 27 27 // $Id: G4RectangularTrimmedSurface.hh,v 1.8 2006/06/29 18:40:27 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4STEPEntity.hh
r831 r850 26 26 // 27 27 // $Id: G4STEPEntity.hh,v 1.7 2006/06/29 18:40:30 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4Sort.hh
r831 r850 26 26 // 27 27 // $Id: G4Sort.hh,v 1.5 2006/06/29 18:40:33 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4SphericalSurface.hh
r831 r850 26 26 // 27 27 // $Id: G4SphericalSurface.hh,v 1.10 2006/06/29 18:40:36 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4SphericalSurface.icc
r831 r850 26 26 // 27 27 // $Id: G4SphericalSurface.icc,v 1.4 2006/06/29 18:40:39 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4Surface.hh
r831 r850 26 26 // 27 27 // $Id: G4Surface.hh,v 1.10 2007/05/11 13:49:32 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4Surface.icc
r831 r850 26 26 // 27 27 // $Id: G4Surface.icc,v 1.5 2006/06/29 18:40:43 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4SurfaceBoundary.hh
r831 r850 26 26 // 27 27 // $Id: G4SurfaceBoundary.hh,v 1.8 2006/06/29 18:40:45 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4SurfaceBoundary.icc
r831 r850 26 26 // 27 27 // $Id: G4SurfaceBoundary.icc,v 1.5 2006/06/29 18:40:47 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4SurfaceList.hh
r831 r850 26 26 // 27 27 // $Id: G4SurfaceList.hh,v 1.6 2006/06/29 18:40:50 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4SurfaceOfLinearExtrusion.hh
r831 r850 26 26 // 27 27 // $Id: G4SurfaceOfLinearExtrusion.hh,v 1.5 2006/06/29 18:40:53 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4SurfaceOfRevolution.hh
r831 r850 26 26 // 27 27 // $Id: G4SurfaceOfRevolution.hh,v 1.5 2006/06/29 18:40:56 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4ThreeMat.hh
r831 r850 26 26 // 27 27 // $Id: G4ThreeMat.hh,v 1.10 2006/06/29 18:40:58 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4ToroidalSurface.hh
r831 r850 26 26 // 27 27 // $Id: G4ToroidalSurface.hh,v 1.7 2006/06/29 18:41:01 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4ToroidalSurface.icc
r831 r850 26 26 // 27 27 // $Id: G4ToroidalSurface.icc,v 1.4 2006/06/29 18:41:03 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/include/G4UVHit.hh
r831 r850 26 26 // 27 27 // $Id: G4UVHit.hh,v 1.7 2006/06/29 18:41:05 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4Assembly.cc
r831 r850 26 26 // 27 27 // $Id: G4Assembly.cc,v 1.6 2006/06/29 18:41:07 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4Axis2Placement3D.cc
r831 r850 26 26 // 27 27 // $Id: G4Axis2Placement3D.cc,v 1.9 2006/06/29 18:41:09 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4BREPSolid.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4BREPSolid.cc,v 1.3 6.4.1 2008/04/23 08:59:37 gcosmo Exp $28 // GEANT4 tag $Name: geant4-09-01-patch-02$27 // $Id: G4BREPSolid.cc,v 1.37 2008/03/13 14:18:57 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4BREPSolidBox.cc
r831 r850 26 26 // 27 27 // $Id: G4BREPSolidBox.cc,v 1.11 2008/01/22 16:03:52 tnikitin Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4BREPSolidCone.cc
r831 r850 25 25 // 26 26 // $Id: G4BREPSolidCone.cc,v 1.15 2006/06/29 18:41:16 gunter Exp $ 27 // GEANT4 tag $Name: $27 // GEANT4 tag $Name: HEAD $ 28 28 // 29 29 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4BREPSolidCylinder.cc
r831 r850 25 25 // 26 26 // $Id: G4BREPSolidCylinder.cc,v 1.11 2006/06/29 18:41:18 gunter Exp $ 27 // GEANT4 tag $Name: $27 // GEANT4 tag $Name: HEAD $ 28 28 // 29 29 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4BREPSolidOpenPCone.cc
r831 r850 26 26 // 27 27 // $Id: G4BREPSolidOpenPCone.cc,v 1.11 2006/06/29 18:41:21 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4BREPSolidPCone.cc
r831 r850 25 25 // 26 26 // $Id: G4BREPSolidPCone.cc,v 1.38 2006/06/29 18:41:24 gunter Exp $ 27 // GEANT4 tag $Name: $27 // GEANT4 tag $Name: HEAD $ 28 28 // 29 29 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4BREPSolidPolyhedra.cc
r831 r850 25 25 // 26 26 // $Id: G4BREPSolidPolyhedra.cc,v 1.35 2008/01/22 16:04:58 tnikitin Exp $ 27 // GEANT4 tag $Name: $27 // GEANT4 tag $Name: HEAD $ 28 28 // 29 29 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4BREPSolidSphere.cc
r831 r850 26 26 // 27 27 // $Id: G4BREPSolidSphere.cc,v 1.11 2006/06/29 18:41:32 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4BREPSolidTorus.cc
r831 r850 26 26 // 27 27 // $Id: G4BREPSolidTorus.cc,v 1.9 2006/06/29 18:41:34 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4BSplineCurve.cc
r831 r850 26 26 // 27 27 // $Id: G4BSplineCurve.cc,v 1.12 2006/06/29 18:41:36 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4BSplineCurveWithKnots.cc
r831 r850 26 26 // 27 27 // $Id: G4BSplineCurveWithKnots.cc,v 1.5 2006/06/29 18:41:38 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4BSplineSurface.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4BSplineSurface.cc,v 1.1 4.4.1 2008/04/23 08:59:37 gcosmo Exp $28 // GEANT4 tag $Name: geant4-09-01-patch-02$27 // $Id: G4BSplineSurface.cc,v 1.15 2008/03/13 14:18:57 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4BSplineSurfaceWithKnots.cc
r831 r850 26 26 // 27 27 // $Id: G4BSplineSurfaceWithKnots.cc,v 1.4 2006/06/29 18:41:46 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4BezierSurface.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4BezierSurface.cc,v 1. 9.4.1 2008/04/23 08:59:37 gcosmo Exp $28 // GEANT4 tag $Name: geant4-09-01-patch-02$27 // $Id: G4BezierSurface.cc,v 1.10 2008/03/13 14:18:57 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4BoundingBox3D.cc
r831 r850 26 26 // 27 27 // $Id: G4BoundingBox3D.cc,v 1.12 2007/07/16 08:06:55 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4CircularCurve.cc
r831 r850 26 26 // 27 27 // $Id: G4CircularCurve.cc,v 1.10 2006/06/29 18:41:52 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4CompositeCurve.cc
r831 r850 26 26 // 27 27 // $Id: G4CompositeCurve.cc,v 1.13 2006/06/29 18:41:54 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4Conic.cc
r831 r850 26 26 // 27 27 // $Id: G4Conic.cc,v 1.8 2006/06/29 18:41:56 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4ConicalSurface.cc
r831 r850 26 26 // 27 27 // $Id: G4ConicalSurface.cc,v 1.11 2006/06/29 18:41:58 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4ControlPoints.cc
r831 r850 26 26 // 27 27 // $Id: G4ControlPoints.cc,v 1.8 2006/06/29 18:42:00 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4Curve.cc
r831 r850 26 26 // 27 27 // $Id: G4Curve.cc,v 1.9 2007/07/16 08:06:55 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4CurvePoint.cc
r831 r850 26 26 // 27 27 // $Id: G4CurvePoint.cc,v 1.5 2006/06/29 18:42:04 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4CurveRayIntersection.cc
r831 r850 26 26 // 27 27 // $Id: G4CurveRayIntersection.cc,v 1.8 2007/07/16 08:06:55 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4CylindricalSurface.cc
r831 r850 26 26 // 27 27 // $Id: G4CylindricalSurface.cc,v 1.8 2006/06/29 18:42:08 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4Ellipse.cc
r831 r850 26 26 // 27 27 // $Id: G4Ellipse.cc,v 1.12 2007/05/18 07:33:31 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4FConicalSurface.cc
r831 r850 26 26 // 27 27 // $Id: G4FConicalSurface.cc,v 1.19 2006/06/29 18:42:12 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4FCylindricalSurface.cc
r831 r850 26 26 // 27 27 // $Id: G4FCylindricalSurface.cc,v 1.16 2006/06/29 18:42:14 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4FPlane.cc
r831 r850 26 26 // 27 27 // $Id: G4FPlane.cc,v 1.16 2006/06/29 18:42:16 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4Hyperbola.cc
r831 r850 26 26 // 27 27 // $Id: G4Hyperbola.cc,v 1.12 2007/05/18 07:33:31 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4KnotVector.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4KnotVector.cc,v 1.1 0.2.1 2008/04/23 08:59:37 gcosmo Exp $28 // GEANT4 tag $Name: geant4-09-01-patch-02$27 // $Id: G4KnotVector.cc,v 1.11 2008/03/13 14:18:57 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4Line.cc
r831 r850 26 26 // 27 27 // $Id: G4Line.cc,v 1.10 2006/06/29 18:42:22 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4OsloMatrix.cc
r831 r850 26 26 // 27 27 // $Id: G4OsloMatrix.cc,v 1.6 2006/06/29 18:42:24 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4Parabola.cc
r831 r850 26 26 // 27 27 // $Id: G4Parabola.cc,v 1.9 2007/05/18 07:33:31 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4PlacedSolid.cc
r831 r850 26 26 // 27 27 // $Id: G4PlacedSolid.cc,v 1.6 2007/05/11 13:49:32 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4PointRat.cc
r831 r850 26 26 // 27 27 // $Id: G4PointRat.cc,v 1.6 2006/06/29 18:42:30 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4ProjectedSurface.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4ProjectedSurface.cc,v 1.1 1.4.1 2008/04/23 08:59:37 gcosmo Exp $28 // GEANT4 tag $Name: geant4-09-01-patch-02$27 // $Id: G4ProjectedSurface.cc,v 1.12 2008/03/13 14:18:57 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4Ray.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4Ray.cc,v 1.1 1 2006/06/29 18:42:35 gunterExp $28 // GEANT4 tag $Name: $27 // $Id: G4Ray.cc,v 1.12 2008/07/08 10:00:58 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- … … 55 55 { 56 56 if(number_of_plane==1) 57 return plane2;57 { return plane2; } 58 58 else 59 return plane1;59 { return plane1; } 60 60 } 61 61 … … 75 75 76 76 if(!NearZero(RayDir.x(), SQRT_SMALL_FASTF)) 77 invdir.setX(1.0 / RayDir.x());77 { invdir.setX(1.0 / RayDir.x()); } 78 78 79 79 if(!NearZero(RayDir.y(), SQRT_SMALL_FASTF)) 80 invdir.setY(1.0 / RayDir.y());80 { invdir.setY(1.0 / RayDir.y()); } 81 81 82 82 if(!NearZero(RayDir.z(), SQRT_SMALL_FASTF)) 83 invdir.setZ(1.0 / RayDir.z());83 { invdir.setZ(1.0 / RayDir.z()); } 84 84 85 85 MatVecOrtho(dir1, RayDir); … … 102 102 G4int i_Which; 103 103 104 if(NearZero(in.x(), 0.0001) && NearZero(in.y(), 0.0001) && 105 NearZero(in.z(), 0.0001) ) 104 if( NearZero(in.x(), 0.0001) 105 && NearZero(in.y(), 0.0001) 106 && NearZero(in.z(), 0.0001) ) 106 107 { 107 108 Vsetall( out, 0 ); … … 120 121 121 122 if( std::fabs(in.z()) < f ) 123 { 122 124 i_Which=2; 125 } 123 126 124 127 if(!i_Which) 128 { 125 129 f = std::sqrt((in.y())*(in.y())+(in.z())*(in.z())); // hypot(in.y(),in.z()) 130 } 126 131 else 132 { 127 133 if(i_Which==1) 134 { 128 135 f = std::sqrt((in.z())*(in.z())+(in.x())*(in.x())); // hypot(in.z(),in.x()) 129 else130 f = std::sqrt((in.x())*(in.x())+(in.y())*(in.y())); // hypot(in.x(),in.y())131 132 if( NearZero( f, SMALL ) )133 {134 Vsetall( out, 0 );135 return;136 }137 138 f = 1.0/f;139 140 if(!i_Which)141 {142 out.setX(0.0);143 out.setY(-in.z()*f);144 out.setZ( in.y()*f);145 136 } 146 137 else 147 if(i_Which==1) 148 { 149 out.setY(0.0); 150 out.setZ(-in.x()*f); 151 out.setX( in.y()*f); 152 } 153 else 154 { 155 out.setZ(0.0); 156 out.setX(-in.z()*f); 157 out.setY( in.y()*f); 158 } 138 { 139 f = std::sqrt((in.x())*(in.x())+(in.y())*(in.y())); // hypot(in.x(),in.y()) 140 } 141 } 142 if( NearZero( f, SMALL ) ) 143 { 144 Vsetall( out, 0 ); 145 return; 146 } 147 148 f = 1.0/f; 149 150 if(!i_Which) 151 { 152 out.setX(0.0); 153 out.setY(-in.z()*f); 154 out.setZ( in.y()*f); 155 } 156 else 157 { 158 if(i_Which==1) 159 { 160 out.setY(0.0); 161 out.setZ(-in.x()*f); 162 out.setX( in.y()*f); 163 } 164 else 165 { 166 out.setZ(0.0); 167 out.setX(-in.z()*f); 168 out.setY( in.y()*f); 169 } 170 } 159 171 } 160 172 … … 221 233 mag = Magnitude(plane1); 222 234 if( mag <= SQRT_SMALL_FASTF ) 235 { 223 236 return(-1);// FAIL 237 } 224 238 225 239 mag = 1/mag; … … 240 254 if (dir==G4Vector3D(0, 0, 0)) 241 255 { 242 G4 cout << "\nZero direction given. Exiting...\n";243 exit(1);256 G4Exception("G4Ray::RayCheck()", "InvalidInput", FatalException, 257 "Invalid zero direction given !"); 244 258 } 245 259 -
trunk/source/geometry/solids/BREPS/src/G4RectangularTrimmedSurface.cc
r831 r850 26 26 // 27 27 // $Id: G4RectangularTrimmedSurface.cc,v 1.7 2006/06/29 18:42:37 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4Sort.cc
r831 r850 26 26 // 27 27 // $Id: G4Sort.cc,v 1.5 2006/06/29 18:42:39 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4SphericalSurface.cc
r831 r850 26 26 // 27 27 // $Id: G4SphericalSurface.cc,v 1.10 2006/06/29 18:42:41 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4Surface.cc
r831 r850 26 26 // 27 27 // $Id: G4Surface.cc,v 1.17 2007/07/16 08:06:55 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4SurfaceBoundary.cc
r831 r850 26 26 // 27 27 // $Id: G4SurfaceBoundary.cc,v 1.14 2006/06/29 18:42:46 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4SurfaceList.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4SurfaceList.cc,v 1. 7.4.1 2008/04/23 08:59:37 gcosmo Exp $28 // GEANT4 tag $Name: geant4-09-01-patch-02$27 // $Id: G4SurfaceList.cc,v 1.8 2008/03/13 14:18:57 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4SurfaceOfLinearExtrusion.cc
r831 r850 26 26 // 27 27 // $Id: G4SurfaceOfLinearExtrusion.cc,v 1.4 2006/06/29 18:42:51 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4SurfaceOfRevolution.cc
r831 r850 29 29 // 30 30 // $Id: G4SurfaceOfRevolution.cc,v 1.4 2006/06/29 18:42:53 gunter Exp $ 31 // GEANT4 tag $Name: $31 // GEANT4 tag $Name: HEAD $ 32 32 // 33 33 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4ThreeMat.cc
r831 r850 26 26 // 27 27 // $Id: G4ThreeMat.cc,v 1.8 2006/06/29 18:42:56 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/BREPS/src/G4ToroidalSurface.cc
r831 r850 26 26 // 27 27 // $Id: G4ToroidalSurface.cc,v 1.10 2006/06/29 18:42:59 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // ---------------------------------------------------------------------- -
trunk/source/geometry/solids/Boolean/include/G4BooleanSolid.hh
r831 r850 26 26 // 27 27 // $Id: G4BooleanSolid.hh,v 1.15 2006/10/19 15:34:49 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/Boolean/include/G4BooleanSolid.icc
r831 r850 26 26 // 27 27 // $Id: G4BooleanSolid.icc,v 1.4 2006/10/20 14:20:54 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/Boolean/include/G4DisplacedSolid.hh
r831 r850 26 26 // 27 27 // $Id: G4DisplacedSolid.hh,v 1.19 2006/06/29 18:43:31 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/Boolean/include/G4IntersectionSolid.hh
r831 r850 26 26 // 27 27 // $Id: G4IntersectionSolid.hh,v 1.9 2006/06/29 18:43:33 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/Boolean/include/G4SubtractionSolid.hh
r831 r850 26 26 // 27 27 // $Id: G4SubtractionSolid.hh,v 1.9 2006/06/29 18:43:35 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/Boolean/include/G4UnionSolid.hh
r831 r850 26 26 // 27 27 // $Id: G4UnionSolid.hh,v 1.10 2006/06/29 18:43:37 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/Boolean/src/G4BooleanSolid.cc
r831 r850 26 26 // 27 27 // $Id: G4BooleanSolid.cc,v 1.21 2006/10/19 15:34:49 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // Implementation for the abstract base class for solids created by boolean -
trunk/source/geometry/solids/Boolean/src/G4DisplacedSolid.cc
r831 r850 26 26 // 27 27 // $Id: G4DisplacedSolid.cc,v 1.27 2006/06/29 18:43:41 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // Implementation for G4DisplacedSolid class for boolean -
trunk/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc
r831 r850 26 26 // 27 27 // $Id: G4IntersectionSolid.cc,v 1.30 2006/11/08 09:37:41 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // Implementation of methods for the class G4IntersectionSolid -
trunk/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc
r831 r850 26 26 // 27 27 // $Id: G4SubtractionSolid.cc,v 1.31 2007/10/23 14:42:31 grichine Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // Implementation of methods for the class G4IntersectionSolid -
trunk/source/geometry/solids/Boolean/src/G4UnionSolid.cc
r831 r850 26 26 // 27 27 // $Id: G4UnionSolid.cc,v 1.35 2007/10/23 14:42:31 grichine Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // Implementation of methods for the class G4IntersectionSolid -
trunk/source/geometry/solids/CSG/History
r831 r850 1 $Id: History,v 1. 99.4.2 2008/04/23 09:55:26gcosmo Exp $1 $Id: History,v 1.105 2008/07/07 10:43:04 gcosmo Exp $ 2 2 ------------------------------------------------------------------- 3 3 … … 18 18 ---------------------------------------------------------- 19 19 20 Apr 23, 2008 G.Cosmo geom-csg-V09-00-03 21 - Tag for release 9.1.p02. 20 Jul 07, 2008 V.Grichine geom-csg-V09-01-04 21 - G4Sphere: fixed bug in DistanceToOut(p, v, ...) for normal 'fSTheta' 22 greater than 90*deg, and use of tangent giving negative value. 23 Completes series of corrections introduced in previous tag. 24 25 Jun 23, 2008 T.Nikitina geom-csg-V09-01-03 26 - G4Tubs: fix in DistanceToIn(p,v, ...) in case of point on surface with 27 very small tangent direction; now returning kInfinity and no longer zero. 28 It fixes rare observed cases of zero value returned by both DistanceToIn() 29 and DistanceToOut(), causing stuck tracks with zero step length. 30 31 Jun 20, 2008 V.Grichine 32 - G4Sphere: fixed calculation of roots in DistanceToOut(p,v,...) for 33 theta-conical surfaces interserctions and for sTheta<=90 degree intersection. 34 Addresses issue reported when running PET application with optical photons 35 about mis-computation of distance on half-sphere constructs. 36 - Updated unit test for sphere. 22 37 23 38 Apr 22, 2008 V.Grichine geom-csg-V09-01-02 -
trunk/source/geometry/solids/CSG/include/G4Box.hh
r831 r850 26 26 // 27 27 // $Id: G4Box.hh,v 1.17 2006/10/19 15:33:37 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/CSG/include/G4Box.icc
r831 r850 26 26 // 27 27 // $Id: G4Box.icc,v 1.6 2006/10/19 15:33:37 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/CSG/include/G4CSGSolid.hh
r831 r850 26 26 // 27 27 // $Id: G4CSGSolid.hh,v 1.12 2006/10/19 15:33:37 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/CSG/include/G4Cons.hh
r831 r850 26 26 // 27 27 // $Id: G4Cons.hh,v 1.18 2007/05/18 07:38:00 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/CSG/include/G4Cons.icc
r831 r850 26 26 // 27 27 // $Id: G4Cons.icc,v 1.6 2006/10/19 15:33:37 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/CSG/include/G4Orb.hh
r831 r850 26 26 // 27 27 // $Id: G4Orb.hh,v 1.11 2006/10/19 15:33:37 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/CSG/include/G4Orb.icc
r831 r850 26 26 // 27 27 // $Id: G4Orb.icc,v 1.5 2006/10/19 15:33:37 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/CSG/include/G4Para.hh
r831 r850 26 26 // 27 27 // $Id: G4Para.hh,v 1.18 2006/10/19 15:33:37 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/CSG/include/G4Para.icc
r831 r850 26 26 // 27 27 // $Id: G4Para.icc,v 1.7 2006/10/19 15:33:37 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/CSG/include/G4Sphere.hh
r831 r850 26 26 // 27 27 // $Id: G4Sphere.hh,v 1.20 2007/05/18 07:38:00 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/CSG/include/G4Sphere.icc
r831 r850 26 26 // 27 27 // $Id: G4Sphere.icc,v 1.7 2006/10/19 15:33:37 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/CSG/include/G4Torus.hh
r831 r850 26 26 // 27 27 // $Id: G4Torus.hh,v 1.27 2007/05/18 07:38:00 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/CSG/include/G4Torus.icc
r831 r850 26 26 // 27 27 // $Id: G4Torus.icc,v 1.6 2006/10/19 15:33:37 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/CSG/include/G4Trap.hh
r831 r850 26 26 // 27 27 // $Id: G4Trap.hh,v 1.17 2006/10/19 15:33:37 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/CSG/include/G4Trap.icc
r831 r850 26 26 // 27 27 // $Id: G4Trap.icc,v 1.8 2006/10/19 15:33:37 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/CSG/include/G4Trd.hh
r831 r850 26 26 // 27 27 // $Id: G4Trd.hh,v 1.16 2006/10/19 15:33:37 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/CSG/include/G4Trd.icc
r831 r850 26 26 // 27 27 // $Id: G4Trd.icc,v 1.7 2006/10/19 15:33:37 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/CSG/include/G4Tubs.hh
r831 r850 26 26 // 27 27 // $Id: G4Tubs.hh,v 1.17 2007/05/18 07:38:00 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/CSG/include/G4Tubs.icc
r831 r850 26 26 // 27 27 // $Id: G4Tubs.icc,v 1.7 2006/10/19 15:33:37 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/CSG/src/G4Box.cc
r831 r850 26 26 // 27 27 // $Id: G4Box.cc,v 1.44 2006/10/19 15:33:37 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/CSG/src/G4CSGSolid.cc
r831 r850 26 26 // 27 27 // $Id: G4CSGSolid.cc,v 1.13 2006/10/19 15:33:37 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/CSG/src/G4Cons.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4Cons.cc,v 1.5 4.4.1 2008/04/23 09:05:23gcosmo Exp $28 // GEANT4 tag $Name: geant4-09-01-patch-02$27 // $Id: G4Cons.cc,v 1.56 2008/02/20 08:56:16 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/CSG/src/G4Orb.cc
r831 r850 25 25 // 26 26 // $Id: G4Orb.cc,v 1.24 2007/05/18 07:38:01 gcosmo Exp $ 27 // GEANT4 tag $Name: $27 // GEANT4 tag $Name: HEAD $ 28 28 // 29 29 // class G4Orb -
trunk/source/geometry/solids/CSG/src/G4Para.cc
r831 r850 26 26 // 27 27 // $Id: G4Para.cc,v 1.39 2006/10/19 15:33:37 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4Para -
trunk/source/geometry/solids/CSG/src/G4Sphere.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4Sphere.cc,v 1. 57.2.1 2008/04/23 09:05:23 gcosmoExp $28 // GEANT4 tag $Name: geant4-09-01-patch-02$27 // $Id: G4Sphere.cc,v 1.68 2008/07/07 09:35:16 grichine Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4Sphere … … 34 34 // History: 35 35 // 36 // 12.06.08 V.Grichine: fix for theta intersections in DistanceToOut(p,v,...) 36 37 // 22.07.05 O.Link : Added check for intersection with double cone 37 38 // 03.05.05 V.Grichine: SurfaceNormal(p) according to J. Apostolakis proposal … … 47 48 // 25.11.98 V.Grichine: bug fixed in DistanceToIn(p,v), phi intersections 48 49 // 12.11.98 V.Grichine: bug fixed in DistanceToIn(p,v), theta intersections 49 // 09.10.98 V.Grichine: modifications in Distance ToOut(p,v,...)50 // 09.10.98 V.Grichine: modifications in DistanceToOut(p,v,...) 50 51 // 17.09.96 V.Grichine: final modifications to commit 51 52 // 28.03.94 P.Kent: old C++ code converted to tolerant geometry … … 608 609 distETheta = std::fabs(pTheta-fSTheta-fDTheta); 609 610 610 nTs = G4ThreeVector(-std::cos(fSTheta)*std::cos(pPhi), 611 -std::cos(fSTheta)*std::sin(pPhi), 612 std::sin(fSTheta) ); 613 nTe = G4ThreeVector( std::cos(fSTheta+fDTheta)*std::cos(pPhi), 614 std::cos(fSTheta+fDTheta)*std::sin(pPhi), 615 -std::sin(fSTheta+fDTheta) ); 611 nTs = G4ThreeVector(-std::cos(fSTheta)*p.x()/rho, // *std::cos(pPhi), 612 -std::cos(fSTheta)*p.y()/rho, // *std::sin(pPhi), 613 std::sin(fSTheta) ); 614 615 nTe = G4ThreeVector( std::cos(fSTheta+fDTheta)*p.x()/rho, // *std::cos(pPhi), 616 std::cos(fSTheta+fDTheta)*p.y()/rho, // *std::sin(pPhi), 617 -std::sin(fSTheta+fDTheta) ); 616 618 } 617 619 else if( !fRmin ) 618 620 { 619 if ( fSTheta ) distSTheta = 0.; 620 if ( fSTheta + fDTheta < pi ) distETheta = 0.; 621 if ( fSTheta ) 622 { 623 distSTheta = 0.; 624 nTs = G4ThreeVector(0.,0.,-1.); 625 } 626 if ( fSTheta + fDTheta < pi ) // distETheta = 0.; 627 { 628 distETheta = 0.; 629 nTe = G4ThreeVector(0.,0.,1.); 630 } 621 631 } 622 632 } … … 1423 1433 d = std::sqrt(d2) ; 1424 1434 s = -b - d ; // First root 1425 1426 if ( s < 0 ) 1427 { 1428 s=-b+d; // Second root 1435 zi = p.z() + s*v.z(); 1436 1437 if ( s < 0 || zi*(fSTheta - halfpi) > 0 ) 1438 { 1439 s = -b+d; // Second root 1429 1440 } 1430 1441 if (s >= 0 && s < snxt) 1431 1442 { 1432 xi = p.x() + s*v.x() ;1433 yi = p.y() + s*v.y() ;1434 zi = p.z() + s*v.z() ;1435 rhoi2 = xi*xi + yi*yi ;1436 radi2 = rhoi2 + zi*zi ;1443 xi = p.x() + s*v.x(); 1444 yi = p.y() + s*v.y(); 1445 zi = p.z() + s*v.z(); 1446 rhoi2 = xi*xi + yi*yi; 1447 radi2 = rhoi2 + zi*zi; 1437 1448 if ( (radi2 <= tolORMax2) 1438 1449 && (radi2 >= tolORMin2) … … 1501 1512 } 1502 1513 } 1503 else if (pTheta > tolETheta) 1504 { // dist2ETheta<-kRadTolerance*0.5 && dist2STheta>0) 1505 // Inside (theta>etheta+tol) e theta cone 1514 else if ( pTheta > tolETheta ) 1515 { 1516 // dist2ETheta<-kRadTolerance*0.5 && dist2STheta>0) 1517 // Inside (theta > etheta+tol) e-theta cone 1506 1518 // First root of etheta cone, second if first root `imaginary' 1507 1519 … … 1517 1529 d = std::sqrt(d2) ; 1518 1530 s = -b - d ; // First root 1519 if (s < 0) 1531 zi = p.z() + s*v.z(); 1532 1533 if (s < 0 || zi*(fSTheta + fDTheta - halfpi) > 0) 1520 1534 { 1521 1535 s = -b + d ; // second root … … 1959 1973 1960 1974 G4bool segTheta; // Theta flag and precals 1961 G4double tanSTheta=0.,tanETheta , rhoSecTheta;1975 G4double tanSTheta=0.,tanETheta=0., rhoSecTheta; 1962 1976 G4double tanSTheta2=0.,tanETheta2=0.; 1963 G4double dist2STheta, dist2ETheta;1977 G4double dist2STheta, dist2ETheta, distTheta; 1964 1978 G4double d2,s; 1965 1979 1966 1980 // General Precalcs 1967 1981 1968 rho2 =p.x()*p.x()+p.y()*p.y();1969 rad2 =rho2+p.z()*p.z();1982 rho2 = p.x()*p.x()+p.y()*p.y(); 1983 rad2 = rho2+p.z()*p.z(); 1970 1984 // G4double rad=std::sqrt(rad2); 1971 1985 1972 pTheta =std::atan2(std::sqrt(rho2),p.z());1973 1974 pDotV2d =p.x()*v.x()+p.y()*v.y();1975 pDotV3d =pDotV2d+p.z()*v.z();1986 pTheta = std::atan2(std::sqrt(rho2),p.z()); 1987 1988 pDotV2d = p.x()*v.x()+p.y()*v.y(); 1989 pDotV3d = pDotV2d+p.z()*v.z(); 1976 1990 1977 1991 // Set phi divided flag and precalcs 1978 1992 1979 if( fDPhi<twopi)1993 if( fDPhi < twopi ) 1980 1994 { 1981 1995 segPhi=true; … … 1996 2010 // Theta precalcs 1997 2011 1998 if (fDTheta < pi) 1999 { 2000 segTheta=true; 2001 tolSTheta=fSTheta-kAngTolerance*0.5; 2002 tolETheta=fSTheta+fDTheta+kAngTolerance*0.5; 2003 } 2004 else 2005 { 2006 segTheta=false; 2007 } 2012 if ( fDTheta < pi ) 2013 { 2014 segTheta = true; 2015 tolSTheta = fSTheta - kAngTolerance*0.5; 2016 tolETheta = fSTheta + fDTheta + kAngTolerance*0.5; 2017 } 2018 else segTheta = false; 2019 2008 2020 2009 2021 // Radial Intersections from G4Sphere::DistanceToIn … … 2024 2036 // 2025 2037 // const G4double fractionTolerance = 1.0e-12; 2026 const G4double flexRadMaxTolerance = // kRadTolerance; 2038 2039 const G4double flexRadMaxTolerance = // kRadTolerance; 2027 2040 std::max(kRadTolerance, fEpsilon * fRmax); 2028 2041 2029 2042 const G4double Rmax_plus = fRmax + flexRadMaxTolerance*0.5; 2043 2030 2044 const G4double flexRadMinTolerance = std::max(kRadTolerance, 2031 2045 fEpsilon * fRmin); 2046 2032 2047 const G4double Rmin_minus= (fRmin > 0) ? fRmin-flexRadMinTolerance*0.5 : 0 ; 2033 2048 … … 2063 2078 else 2064 2079 { 2065 snxt =-pDotV3d+std::sqrt(d2); // second root since inside Rmax2066 side = kRMax ;2080 snxt = -pDotV3d+std::sqrt(d2); // second root since inside Rmax 2081 side = kRMax ; 2067 2082 } 2068 2083 } … … 2077 2092 d2 = pDotV3d*pDotV3d - c; 2078 2093 2079 if ( c >- flexRadMinTolerance*fRmin) // 2.0 * (0.5*kRadTolerance) * fRmin2094 if ( c >- flexRadMinTolerance*fRmin ) // 2.0 * (0.5*kRadTolerance) * fRmin 2080 2095 { 2081 2096 if( c < flexRadMinTolerance*fRmin && 2082 2097 d2 >= flexRadMinTolerance*fRmin && pDotV3d < 0 ) // leaving from Rmin 2083 2098 { 2084 if(calcNorm) 2085 { 2086 *validNorm = false ; // Rmin surface is concave 2087 } 2088 return snxt = 0 ; 2099 if(calcNorm) *validNorm = false ; // Rmin surface is concave 2100 return snxt = 0 ; 2089 2101 } 2090 2102 else 2091 2103 { 2092 if (d2 >= 0) 2093 { 2094 s = -pDotV3d-std::sqrt(d2) ; 2095 if (s>=0) // Always intersect Rmin first 2104 if ( d2 >= 0. ) 2105 { 2106 s = -pDotV3d-std::sqrt(d2); 2107 2108 if ( s >= 0. ) // Always intersect Rmin first 2096 2109 { 2097 2110 snxt = s ; … … 2129 2142 // => s^2(1-vz^2(1+tan^2(t))+2s(pdotv2d-pzvztan^2(t))+(rho2-pz^2tan^2(t))=0 2130 2143 // 2144 2145 /* //////////////////////////////////////////////////////// 2146 2131 2147 tanSTheta=std::tan(fSTheta); 2132 2148 tanSTheta2=tanSTheta*tanSTheta; … … 2288 2304 s = kInfinity ; // wrong cone 2289 2305 } 2290 if (s < stheta)2291 {2292 stheta = s ;2293 sidetheta = kETheta;2294 }2306 } 2307 if (s < stheta) 2308 { 2309 stheta = s ; 2310 sidetheta = kETheta ; 2295 2311 } 2296 2312 } 2297 2313 } 2298 2314 } 2299 } 2315 */ //////////////////////////////////////////////////////////// 2316 2317 if(fSTheta) // intersection with first cons 2318 { 2319 2320 tanSTheta = std::tan(fSTheta); 2321 2322 if( std::fabs(tanSTheta) > 5./kAngTolerance ) // kons is plane z=0 2323 { 2324 if( v.z() > 0. ) 2325 { 2326 if ( std::fabs( p.z() ) <= flexRadMaxTolerance*0.5 ) 2327 { 2328 if(calcNorm) 2329 { 2330 *validNorm = true; 2331 *n = G4ThreeVector(0.,0.,1.); 2332 } 2333 return snxt = 0 ; 2334 } 2335 // s = -p.z()/v.z(); 2336 stheta = -p.z()/v.z(); 2337 sidetheta = kSTheta; 2338 } 2339 } 2340 else // kons is not plane 2341 { 2342 tanSTheta2 = tanSTheta*tanSTheta; 2343 t1 = 1-v.z()*v.z()*(1+tanSTheta2); 2344 t2 = pDotV2d-p.z()*v.z()*tanSTheta2; // ~vDotN if p on cons 2345 dist2STheta = rho2-p.z()*p.z()*tanSTheta2; // t3 2346 2347 // distTheta = std::sqrt(std::fabs(dist2STheta/(1+tanSTheta2))); 2348 distTheta = std::sqrt(rho2)-p.z()*tanSTheta; 2349 2350 if( std::fabs(t1) < 0.5*kAngTolerance ) // 1st order equation, v parallel to kons 2351 { 2352 if( v.z() > 0. ) 2353 { 2354 if(std::fabs(distTheta) < flexRadMaxTolerance*0.5) // p on surface 2355 { 2356 if( fSTheta < halfpi && p.z() > 0. ) 2357 { 2358 if( calcNorm ) *validNorm = false; 2359 return snxt = 0.; 2360 } 2361 else if( fSTheta > halfpi && p.z() <= 0) 2362 { 2363 if( calcNorm ) 2364 { 2365 *validNorm = true; 2366 if (rho2) 2367 { 2368 rhoSecTheta = std::sqrt(rho2*(1+tanSTheta2)); 2369 2370 *n = G4ThreeVector( p.x()/rhoSecTheta, 2371 p.y()/rhoSecTheta, 2372 std::sin(fSTheta) ); 2373 } 2374 else *n = G4ThreeVector(0.,0.,1.); 2375 } 2376 return snxt = 0.; 2377 } 2378 } 2379 // s = -0.5*dist2STheta/t2; 2380 2381 stheta = -0.5*dist2STheta/t2; 2382 sidetheta = kSTheta; 2383 } 2384 } 2385 else // 2nd order equation, 1st root of fSTheta cone, 2nd if 1st root -ve 2386 { 2387 if( std::fabs(distTheta) < flexRadMaxTolerance*0.5) // && t2 >= 0.) surface 2388 { 2389 if( fSTheta > halfpi && t2 >= 0. ) // leave 2390 { 2391 if( calcNorm ) 2392 { 2393 *validNorm = true; 2394 if (rho2) 2395 { 2396 rhoSecTheta = std::sqrt(rho2*(1+tanSTheta2)); 2397 2398 *n = G4ThreeVector( p.x()/rhoSecTheta, 2399 p.y()/rhoSecTheta, 2400 std::sin(fSTheta) ); 2401 } 2402 else *n = G4ThreeVector(0.,0.,1.); 2403 } 2404 return snxt = 0.; 2405 } 2406 else if( fSTheta < halfpi && t2 < 0. && p.z() >=0. ) // leave 2407 { 2408 if( calcNorm ) *validNorm = false; 2409 return snxt = 0.; 2410 } 2411 } 2412 b = t2/t1; 2413 c = dist2STheta/t1; 2414 d2 = b*b - c ; 2415 2416 if ( d2 >= 0. ) 2417 { 2418 d = std::sqrt(d2); 2419 2420 if( fSTheta > halfpi ) 2421 { 2422 s = -b - d; // First root 2423 2424 if( (std::fabs(s) < flexRadMaxTolerance*0.5 && t2 < 0.) || 2425 s < 0. || 2426 ( s > 0. && p.z() + s*v.z() > 0.) ) 2427 { 2428 s = -b + d ; // 2nd root 2429 } 2430 if( s > flexRadMaxTolerance*0.5 && p.z() + s*v.z() <= 0.) 2431 { 2432 stheta = s; 2433 sidetheta = kSTheta; 2434 } 2435 } 2436 else // sTheta < pi/2, concave surface, no normal 2437 { 2438 s = -b - d; // First root 2439 2440 if( (std::fabs(s) < flexRadMaxTolerance*0.5 && t2 >= 0.) || 2441 s < 0. || 2442 ( s > 0. && p.z() + s*v.z() < 0.) ) 2443 { 2444 s = -b + d ; // 2nd root 2445 } 2446 if( s > flexRadMaxTolerance*0.5 && p.z() + s*v.z() >= 0.) 2447 { 2448 stheta = s; 2449 sidetheta = kSTheta; 2450 } 2451 } 2452 } 2453 } 2454 } 2455 } 2456 if (fSTheta + fDTheta < pi) // intersection with second cons 2457 { 2458 2459 tanETheta = std::tan(fSTheta+fDTheta); 2460 2461 if( std::fabs(tanETheta) > 5./kAngTolerance ) // kons is plane z=0 2462 { 2463 if( v.z() < 0. ) 2464 { 2465 if ( std::fabs( p.z() ) <= flexRadMaxTolerance*0.5 ) 2466 { 2467 if(calcNorm) 2468 { 2469 *validNorm = true; 2470 *n = G4ThreeVector(0.,0.,-1.); 2471 } 2472 return snxt = 0 ; 2473 } 2474 s = -p.z()/v.z(); 2475 2476 if( s < stheta) 2477 { 2478 stheta = s; 2479 sidetheta = kETheta; 2480 } 2481 } 2482 } 2483 else // kons is not plane 2484 { 2485 tanETheta2 = tanETheta*tanETheta; 2486 t1 = 1-v.z()*v.z()*(1+tanETheta2); 2487 t2 = pDotV2d-p.z()*v.z()*tanETheta2; // ~vDotN if p on cons 2488 dist2ETheta = rho2-p.z()*p.z()*tanETheta2; // t3 2489 2490 // distTheta = std::sqrt(std::fabs(dist2ETheta/(1+tanETheta2))); 2491 distTheta = std::sqrt(rho2)-p.z()*tanETheta; 2492 2493 if( std::fabs(t1) < 0.5*kAngTolerance ) // 1st order equation, v parallel to kons 2494 { 2495 if( v.z() < 0. ) 2496 { 2497 if(std::fabs(distTheta) < flexRadMaxTolerance*0.5) // p on surface 2498 { 2499 if( fSTheta+fDTheta > halfpi && p.z() < 0. ) 2500 { 2501 if( calcNorm ) *validNorm = false; 2502 return snxt = 0.; 2503 } 2504 else if( fSTheta+fDTheta < halfpi && p.z() >= 0) 2505 { 2506 if( calcNorm ) 2507 { 2508 *validNorm = true; 2509 if (rho2) 2510 { 2511 rhoSecTheta = std::sqrt(rho2*(1+tanETheta2)); 2512 2513 *n = G4ThreeVector( p.x()/rhoSecTheta, 2514 p.y()/rhoSecTheta, 2515 -std::sin(fSTheta+fDTheta) ); 2516 } 2517 else *n = G4ThreeVector(0.,0.,-1.); 2518 } 2519 return snxt = 0.; 2520 } 2521 } 2522 s = -0.5*dist2ETheta/t2; 2523 2524 if( s < stheta) 2525 { 2526 stheta = s; 2527 sidetheta = kETheta; 2528 } 2529 } 2530 } 2531 else // 2nd order equation, 1st root of fSTheta cone, 2nd if 1st root -ve 2532 { 2533 if( std::fabs(distTheta) < flexRadMaxTolerance*0.5) // && t2 >= 0.) surface 2534 { 2535 if( fSTheta+fDTheta < halfpi && t2 >= 0. ) // leave 2536 { 2537 if( calcNorm ) 2538 { 2539 *validNorm = true; 2540 if (rho2) 2541 { 2542 rhoSecTheta = std::sqrt(rho2*(1+tanETheta2)); 2543 2544 *n = G4ThreeVector( p.x()/rhoSecTheta, 2545 p.y()/rhoSecTheta, 2546 -std::sin(fSTheta+fDTheta) ); 2547 } 2548 else *n = G4ThreeVector(0.,0.,-1.); 2549 } 2550 return snxt = 0.; 2551 } 2552 else if( fSTheta+fDTheta > halfpi && t2 < 0. && p.z() <=0. ) // leave 2553 { 2554 if( calcNorm ) *validNorm = false; 2555 return snxt = 0.; 2556 } 2557 } 2558 b = t2/t1; 2559 c = dist2ETheta/t1; 2560 d2 = b*b - c ; 2561 2562 if ( d2 >= 0. ) 2563 { 2564 d = std::sqrt(d2); 2565 2566 if( fSTheta+fDTheta < halfpi ) 2567 { 2568 s = -b - d; // First root 2569 2570 if( (std::fabs(s) < flexRadMaxTolerance*0.5 && t2 < 0.) || 2571 s < 0. ) 2572 { 2573 s = -b + d ; // 2nd root 2574 } 2575 if( s > flexRadMaxTolerance*0.5 ) 2576 { 2577 if( s < stheta ) 2578 { 2579 stheta = s; 2580 sidetheta = kETheta; 2581 } 2582 } 2583 } 2584 else // sTheta+fDTheta > pi/2, concave surface, no normal 2585 { 2586 s = -b - d; // First root 2587 2588 if( (std::fabs(s) < flexRadMaxTolerance*0.5 && t2 >= 0.) || 2589 s < 0. || 2590 ( s > 0. && p.z() + s*v.z() > 0.) ) 2591 { 2592 s = -b + d ; // 2nd root 2593 } 2594 if( s > flexRadMaxTolerance*0.5 && p.z() + s*v.z() <= 0.) 2595 { 2596 if( s < stheta ) 2597 { 2598 stheta = s; 2599 sidetheta = kETheta; 2600 } 2601 } 2602 } 2603 } 2604 } 2605 } 2606 } 2607 2608 } // end theta intersections 2300 2609 2301 2610 // Phi Intersection … … 2578 2887 *validNorm=true; 2579 2888 break; 2889 2580 2890 case kRMin: 2581 2891 *validNorm=false; // Rmin is concave 2582 2892 break; 2893 2583 2894 case kSPhi: 2584 if ( fDPhi<=pi) // Normal to Phi-2895 if ( fDPhi <= pi ) // Normal to Phi- 2585 2896 { 2586 2897 *n=G4ThreeVector(std::sin(fSPhi),-std::cos(fSPhi),0); … … 2589 2900 else *validNorm=false; 2590 2901 break ; 2902 2591 2903 case kEPhi: 2592 if ( fDPhi<=pi) // Normal to Phi+2904 if ( fDPhi <= pi ) // Normal to Phi+ 2593 2905 { 2594 2906 *n=G4ThreeVector(-std::sin(fSPhi+fDPhi),std::cos(fSPhi+fDPhi),0); … … 2597 2909 else *validNorm=false; 2598 2910 break; 2911 2599 2912 case kSTheta: 2600 if( fSTheta == pi*0.5)2601 { 2602 *n=G4ThreeVector(0 ,0,1);2913 if( fSTheta == halfpi ) 2914 { 2915 *n=G4ThreeVector(0.,0.,1.); 2603 2916 *validNorm=true; 2604 2917 } 2605 else if ( fSTheta > pi ) 2918 else if ( fSTheta > halfpi ) 2919 { 2920 xi = p.x() + snxt*v.x(); 2921 yi = p.y() + snxt*v.y(); 2922 rhoSecTheta = std::sqrt((xi*xi+yi*yi)*(1+tanSTheta2)); 2923 *n = G4ThreeVector( xi/rhoSecTheta, // N- 2924 yi/rhoSecTheta, 2925 -tanSTheta/std::sqrt(1+tanSTheta2)); 2926 *validNorm=true; 2927 } 2928 else *validNorm=false; // Concave STheta cone 2929 break; 2930 2931 case kETheta: 2932 if( ( fSTheta + fDTheta ) == halfpi ) 2933 { 2934 *n = G4ThreeVector(0.,0.,-1.); 2935 *validNorm = true; 2936 } 2937 else if ( ( fSTheta + fDTheta ) < halfpi) 2606 2938 { 2607 2939 xi=p.x()+snxt*v.x(); 2608 2940 yi=p.y()+snxt*v.y(); 2609 rhoSecTheta = std::sqrt((xi*xi+yi*yi)*(1+tanSTheta2)) ; 2610 *n = G4ThreeVector(-xi/rhoSecTheta, // N- 2611 -yi/rhoSecTheta, 2612 tanSTheta/std::sqrt(1+tanSTheta2)) ; 2613 *validNorm=true; 2614 } 2615 else *validNorm=false; // Concave STheta cone 2616 break; 2617 case kETheta: 2618 if( ( fSTheta + fDTheta ) == pi*0.5 ) 2619 { 2620 *n = G4ThreeVector(0,0,-1); 2621 *validNorm = true ; 2622 } 2623 else if ( ( fSTheta + fDTheta ) < pi ) 2624 { 2625 xi=p.x()+snxt*v.x(); 2626 yi=p.y()+snxt*v.y(); 2627 rhoSecTheta = std::sqrt((xi*xi+yi*yi)*(1+tanETheta2)) ; 2941 rhoSecTheta = std::sqrt((xi*xi+yi*yi)*(1+tanETheta2)); 2628 2942 *n = G4ThreeVector( xi/rhoSecTheta, // N+ 2629 2943 yi/rhoSecTheta, 2630 -tan STheta/std::sqrt(1+tanSTheta2) );2944 -tanETheta/std::sqrt(1+tanETheta2) ); 2631 2945 *validNorm=true; 2632 2946 } 2633 2947 else *validNorm=false; // Concave ETheta cone 2634 2948 break; 2949 2635 2950 default: 2636 2951 G4cout.precision(16); -
trunk/source/geometry/solids/CSG/src/G4Torus.cc
r831 r850 26 26 // 27 27 // $Id: G4Torus.cc,v 1.63 2007/10/02 09:34:17 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/CSG/src/G4Trap.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4Trap.cc,v 1.4 2.4.1 2008/04/23 09:55:26gcosmo Exp $28 // GEANT4 tag $Name: geant4-09-01-patch-02$27 // $Id: G4Trap.cc,v 1.45 2008/04/23 09:49:57 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4Trap -
trunk/source/geometry/solids/CSG/src/G4Trd.cc
r831 r850 26 26 // 27 27 // $Id: G4Trd.cc,v 1.34 2006/10/19 15:33:38 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/CSG/src/G4Tubs.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4Tubs.cc,v 1.6 6 2007/11/23 09:07:43 tnikitinExp $28 // GEANT4 tag $Name: $27 // $Id: G4Tubs.cc,v 1.68 2008/06/23 13:37:39 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // … … 983 983 iden = std::sqrt(t3) ; 984 984 cosPsi = inum/iden ; 985 if (cosPsi >= cosHDPhiIT) { return 0.0; } 985 if (cosPsi >= cosHDPhiIT) 986 { 987 // In the old version, the small negative tangent for the point 988 // on surface was not taken in account, and returning 0.0 ... 989 // New version: check the tangent for the point on surface and 990 // if no intersection, return kInfinity, if intersection instead 991 // return s. 992 // 993 c = t3-fRMax*fRMax; 994 if ( c<=0.0 ) 995 { 996 return 0.0; 997 } 998 else 999 { 1000 c = c/t1 ; 1001 d = b*b-c; 1002 if ( d>=0.0 ) 1003 { 1004 snxt = c/(-b+std::sqrt(d)); // using safe solution 1005 // for quadratic equation 1006 if ( snxt<kCarTolerance*0.5 ) { snxt=0; } 1007 return snxt ; 1008 } 1009 else 1010 { 1011 return kInfinity; 1012 } 1013 } 1014 } 986 1015 } 987 1016 else 988 { 989 return 0.0 ; 990 } 991 } 992 } 1017 { 1018 // In the old version, the small negative tangent for the point 1019 // on surface was not taken in account, and returning 0.0 ... 1020 // New version: check the tangent for the point on surface and 1021 // if no intersection, return kInfinity, if intersection instead 1022 // return s. 1023 // 1024 c = t3 - fRMax*fRMax; 1025 if ( c<=0.0 ) 1026 { 1027 return 0.0; 1028 } 1029 else 1030 { 1031 c = c/t1 ; 1032 d = b*b-c; 1033 if ( d>=0.0 ) 1034 { 1035 snxt= c/(-b+std::sqrt(d)); // using safe solution 1036 // for quadratic equation 1037 if ( snxt<kCarTolerance*0.5 ) { snxt=0; } 1038 return snxt ; 1039 } 1040 else 1041 { 1042 return kInfinity; 1043 } 1044 } 1045 } // end if (seg) 1046 } // end if (t3>tolIRMin2) 1047 } // end if (Inside Outer Radius) 993 1048 if ( fRMin ) // Try inner cylinder intersection 994 1049 { … … 1459 1514 // 1460 1515 if((std::abs(xi)<=kCarTolerance)&&(std::abs(yi)<=kCarTolerance)) 1461 { sidephi = kSPhi;1516 { sidephi = kSPhi; 1462 1517 if (((fSPhi-0.5*kAngTolerance)<=vphi) 1463 1518 &&((ePhi+0.5*kAngTolerance)>=vphi)) -
trunk/source/geometry/solids/specific/History
r831 r850 1 $Id: History,v 1.1 31.2.4 2008/04/28 09:03:16gcosmo Exp $1 $Id: History,v 1.145 2008/08/12 08:57:31 gcosmo Exp $ 2 2 ------------------------------------------------------------------- 3 3 … … 18 18 ---------------------------------------------------------- 19 19 20 28-Apr-2008, G.Cosmo (geom-specific-V09-00-11) 21 - Tag for release 9.1.p02. 20 25-Jul-2008, I.Hrivnacova (geom-specific-V09-01-14) 21 - G4ExtrudedSolid: fix in polygon decomposition; systematically use 22 half kCarTolerance instead of kCarTolerance; added solid name in the 23 error messages coming from fatal exceptions. 24 25 16-Jul-2008, T.Nikitina (geom-specific-V09-01-13) 26 - G4Paraboloid: revised DistanceToOut(p,v,...) in answer to problem report 27 #1015. Fixed precision problem when solving quadratic equation; apply 28 comparison with kCarTolerance and not with zero; fixed logic problem in 29 algoritm for points on surface and direction inside, relative to directions 30 along Z, (0,0,Vz). 31 32 22-May-2008, G.Cosmo (geom-specific-V09-01-12) 33 - Removed left-over debug printout in G4VCSGFaceted::DistanceToIn(). 34 35 15-May-2008, T.Nikitina (geom-specific-V09-01-11) 36 - Enhanced GetPointOnSurface() for generic G4Polycone and G4Polyhedra 37 constructs; the method uses new triangulation algorithm for G4PolyPhiFace. 38 - G4ExtrudedSolid: added missing 'std' namespace to standard mathematical 39 function calls. 22 40 23 41 28-Apr-2008, T.Nikitina (geom-specific-V09-01-10) -
trunk/source/geometry/solids/specific/include/G4ClippablePolygon.hh
r831 r850 26 26 // 27 27 // $Id: G4ClippablePolygon.hh,v 1.11 2007/05/11 13:54:28 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/include/G4ClippablePolygon.icc
r831 r850 26 26 // 27 27 // $Id: G4ClippablePolygon.icc,v 1.4 2006/06/29 18:46:41 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/specific/include/G4Ellipsoid.hh
r831 r850 26 26 // 27 27 // $Id: G4Ellipsoid.hh,v 1.12 2007/05/18 07:39:56 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/include/G4Ellipsoid.icc
r831 r850 26 26 // 27 27 // $Id: G4Ellipsoid.icc,v 1.7 2006/10/20 13:45:20 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/include/G4EllipticalCone.hh
r831 r850 26 26 // 27 27 // $Id: G4EllipticalCone.hh,v 1.11 2007/08/20 15:21:40 tnikitin Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/include/G4EllipticalCone.icc
r831 r850 26 26 // 27 27 // $Id: G4EllipticalCone.icc,v 1.6 2006/10/20 13:45:20 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/include/G4EllipticalTube.hh
r831 r850 26 26 // 27 27 // $Id: G4EllipticalTube.hh,v 1.18 2006/10/20 13:45:20 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/specific/include/G4EllipticalTube.icc
r831 r850 26 26 // 27 27 // $Id: G4EllipticalTube.icc,v 1.4 2006/06/29 18:46:55 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/specific/include/G4EnclosingCylinder.hh
r831 r850 26 26 // 27 27 // $Id: G4EnclosingCylinder.hh,v 1.8 2006/06/29 18:46:58 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/include/G4ExtrudedSolid.hh
r831 r850 25 25 // 26 26 // 27 // $Id: G4ExtrudedSolid.hh,v 1. 6.2.1 2008/04/23 08:10:24 gcosmoExp $28 // GEANT4 tag $Name: geant4-09-01-patch-02$27 // $Id: G4ExtrudedSolid.hh,v 1.7 2008/02/27 12:32:48 ivana Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/include/G4ExtrudedSolid.icc
r831 r850 26 26 // 27 27 // $Id: G4ExtrudedSolid.icc,v 1.2 2007/02/19 10:17:45 ivana Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/specific/include/G4Hype.hh
r831 r850 27 27 // $Id: G4Hype.hh,v 1.15 2006/10/20 13:45:20 gcosmo Exp $ 28 28 // $Original: G4Hype.hh,v 1.0 1998/06/09 16:57:50 safai Exp $ 29 // GEANT4 tag $Name: $29 // GEANT4 tag $Name: HEAD $ 30 30 // 31 31 // -
trunk/source/geometry/solids/specific/include/G4Hype.icc
r831 r850 26 26 // 27 27 // $Id: G4Hype.icc,v 1.7 2006/06/29 18:47:03 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/specific/include/G4IntersectingCone.hh
r831 r850 25 25 // 26 26 // 27 // $Id: G4IntersectingCone.hh,v 1. 9.8.1 2008/04/28 09:03:16gcosmo Exp $28 // GEANT4 tag $Name: geant4-09-01-patch-02$27 // $Id: G4IntersectingCone.hh,v 1.11 2008/04/28 08:59:47 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/include/G4Paraboloid.hh
r831 r850 26 26 // 27 27 // $Id: G4Paraboloid.hh,v 1.4 2008/01/22 17:42:09 tnikitin Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/include/G4Paraboloid.icc
r831 r850 26 26 // 27 27 // $Id: G4Paraboloid.icc,v 1.4 2007/08/21 12:58:36 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/include/G4PolyPhiFace.hh
r831 r850 25 25 // 26 26 // 27 // $Id: G4PolyPhiFace.hh,v 1.1 0 2007/05/11 13:54:28 gcosmo Exp $28 // GEANT4 tag $Name: $27 // $Id: G4PolyPhiFace.hh,v 1.12 2008/05/15 11:41:58 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // … … 58 58 59 59 #include "G4VCSGface.hh" 60 #include "G4TwoVector.hh" 60 61 61 62 class G4ReduciblePolygon; … … 67 68 zNorm; // r/z normal 68 69 G4ThreeVector norm3D; // 3D normal 70 71 // Needed for Triangulation Algorithm 72 // 73 G4bool ear; 74 G4PolyPhiFaceVertex *next,*prev; 69 75 }; 70 76 … … 122 128 // Allocates on the heap a clone of this face. 123 129 130 G4double SurfaceArea(); 131 G4double SurfaceTriangle( G4ThreeVector p1, G4ThreeVector p2, 132 G4ThreeVector p3, G4ThreeVector* p4); 133 G4ThreeVector GetPointOnFace(); 134 // Auxiliary methods for determination of points on surface. 135 124 136 public: // without description 125 137 … … 158 170 protected: 159 171 172 // Functions used for Triangulation in Case of generic Polygone. 173 // The triangulation is used for GetPointOnFace() 174 175 G4double Area2( G4TwoVector a, G4TwoVector b, G4TwoVector c); 176 // Calculation of 2*Area of Triangle with Sign 177 178 G4bool Left( G4TwoVector a, G4TwoVector b, G4TwoVector c ); 179 G4bool LeftOn( G4TwoVector a, G4TwoVector b, G4TwoVector c ); 180 G4bool Collinear( G4TwoVector a, G4TwoVector b, G4TwoVector c ); 181 // Boolean functions for sign of Surface 182 183 G4bool IntersectProp( G4TwoVector a, G4TwoVector b, 184 G4TwoVector c, G4TwoVector d ); 185 // Boolean function for finding proper intersection of two 186 // line segments (a,b) and (c,d). 187 188 G4bool Between( G4TwoVector a, G4TwoVector b, G4TwoVector c ); 189 // Boolean function for determining if point c is between a and b 190 // where the three points (a,b,c) are on the same line. 191 192 G4bool Intersect( G4TwoVector a, G4TwoVector b, 193 G4TwoVector c, G4TwoVector d ); 194 // Boolean function for finding proper intersection or not 195 // of two line segments (a,b) and (c,d). 196 197 G4bool Diagonalie( G4PolyPhiFaceVertex *a, G4PolyPhiFaceVertex *b ); 198 // Boolean Diagonalie help to determine if diagonal s 199 // of segment (a,b) is convex or reflex. 200 201 G4bool InCone( G4PolyPhiFaceVertex *a, G4PolyPhiFaceVertex *b ); 202 // Boolean function for determining if b is inside the cone (a0,a,a1) 203 // where a is the center of the cone. 204 205 G4bool Diagonal( G4PolyPhiFaceVertex *a, G4PolyPhiFaceVertex *b ); 206 // Boolean function for determining if Diagonal is possible 207 // inside Polycone or PolyHedra. 208 209 void EarInit(); 210 // Initialisation for Triangulisation by ear tips. 211 // For details see "Computational Geometry in C" by Joseph O'Rourke. 212 213 void Triangulate(); 214 // Triangulisation by ear tips for Polycone or Polyhedra. 215 // For details see "Computational Geometry in C" by Joseph O'Rourke. 216 // NOTE: a copy of the shape is made and this copy is reordered in 217 // order to have a list of triangles. This list is used by the 218 // method GetPointOnFace(). 219 220 protected: 221 160 222 G4int numEdges; // Number of edges 161 223 G4PolyPhiFaceEdge *edges; // The edges of the face … … 164 226 G4ThreeVector radial; // Unit vector along radial direction 165 227 G4ThreeVector surface; // Point on surface 228 G4ThreeVector surface_point; // Auxiliary point on surface used for 229 // method GetPointOnFace() 166 230 G4double rMin, rMax, // Extent in r 167 231 zMin, zMax; // Extent in z 168 232 G4bool allBehind; // True if the polycone/polyhedra 169 233 // is behind the place of this face 170 G4double kCarTolerance; // Surface thickness 234 G4double kCarTolerance;// Surface thickness 235 G4double fSurfaceArea; // Surface Area of PolyPhiFace 236 G4PolyPhiFaceVertex *triangles; // Auxiliary pointer to 'corners' used for 237 // triangulation. Copy structure, changing 238 // the structure of 'corners' (ear removal) 171 239 }; 172 240 -
trunk/source/geometry/solids/specific/include/G4PolyPhiFace.icc
r831 r850 26 26 // 27 27 // $Id: G4PolyPhiFace.icc,v 1.6 2006/06/29 18:47:10 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/include/G4Polycone.hh
r831 r850 25 25 // 26 26 // 27 // $Id: G4Polycone.hh,v 1.2 0 2007/04/26 06:18:20 tnikitinExp $28 // GEANT4 tag $Name: $27 // $Id: G4Polycone.hh,v 1.22 2008/05/15 13:45:15 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // … … 116 116 117 117 G4ThreeVector GetPointOnSurface() const; 118 118 119 119 void ComputeDimensions( G4VPVParameterisation* p, 120 120 const G4int n, -
trunk/source/geometry/solids/specific/include/G4Polycone.icc
r831 r850 26 26 // 27 27 // $Id: G4Polycone.icc,v 1.10 2006/06/29 18:47:14 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/specific/include/G4PolyconeSide.hh
r831 r850 25 25 // 26 26 // 27 // $Id: G4PolyconeSide.hh,v 1.1 0 2007/08/13 10:33:03gcosmo Exp $28 // GEANT4 tag $Name: $27 // $Id: G4PolyconeSide.hh,v 1.12 2008/05/15 11:41:58 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // … … 101 101 102 102 G4VCSGface *Clone() { return new G4PolyconeSide( *this ); } 103 104 G4double SurfaceArea(); 105 G4ThreeVector GetPointOnFace(); 103 106 104 107 public: // without description … … 130 133 zNormEdge[2]; // Normal to edges 131 134 132 //(WP) 133 int ncorners; 135 G4int ncorners; 134 136 G4ThreeVector *corners; // The coordinates of the corners (if phiIsOpen) 135 137 … … 151 153 152 154 G4double kCarTolerance; // Geometrical surface thickness 155 G4double fSurfaceArea; // Used for surface calculation 153 156 }; 154 157 -
trunk/source/geometry/solids/specific/include/G4Polyhedra.hh
r831 r850 25 25 // 26 26 // 27 // $Id: G4Polyhedra.hh,v 1. 17 2007/01/22 12:58:53gcosmo Exp $28 // GEANT4 tag $Name: $27 // $Id: G4Polyhedra.hh,v 1.20 2008/05/15 13:45:15 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/include/G4Polyhedra.icc
r831 r850 26 26 // 27 27 // $Id: G4Polyhedra.icc,v 1.11 2007/01/22 12:58:53 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/specific/include/G4PolyhedraSide.hh
r831 r850 25 25 // 26 26 // 27 // $Id: G4PolyhedraSide.hh,v 1. 9 2007/05/11 13:54:28gcosmo Exp $28 // GEANT4 tag $Name: $27 // $Id: G4PolyhedraSide.hh,v 1.11 2008/05/15 11:41:59 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // … … 70 70 { 71 71 72 public: 72 public: // with description 73 73 74 74 G4PolyhedraSide( const G4PolyhedraSideRZ *prevRZ, … … 104 104 105 105 G4VCSGface *Clone() { return new G4PolyhedraSide( *this ); } 106 106 107 public: // without description 108 109 // Methods used for GetPointOnSurface() 110 111 G4double SurfaceTriangle( G4ThreeVector p1, 112 G4ThreeVector p2, 113 G4ThreeVector p3, 114 G4ThreeVector *p4 ); 115 G4ThreeVector GetPointOnPlane( G4ThreeVector p0, G4ThreeVector p1, 116 G4ThreeVector p2, G4ThreeVector p3, 117 G4double *Area ); 118 G4double SurfaceArea(); 119 G4ThreeVector GetPointOnFace(); 120 107 121 public: // without description 108 122 … … 184 198 185 199 G4double kCarTolerance; // Geometrical surface thickness 200 G4double fSurfaceArea; // Surface Area 186 201 }; 187 202 -
trunk/source/geometry/solids/specific/include/G4QuadrangularFacet.hh
r831 r850 26 26 // 27 27 // $Id: G4QuadrangularFacet.hh,v 1.5 2007/02/26 08:39:13 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -
trunk/source/geometry/solids/specific/include/G4ReduciblePolygon.hh
r831 r850 26 26 // 27 27 // $Id: G4ReduciblePolygon.hh,v 1.9 2006/06/29 18:47:29 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/include/G4SolidExtentList.hh
r831 r850 26 26 // 27 27 // $Id: G4SolidExtentList.hh,v 1.7 2006/06/29 18:47:32 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/include/G4TessellatedGeometryAlgorithms.hh
r831 r850 25 25 // 26 26 // $Id: 27 // GEANT4 tag $Name: $27 // GEANT4 tag $Name: HEAD $ 28 28 // 29 29 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -
trunk/source/geometry/solids/specific/include/G4TessellatedGeometryAlgorithms.icc
r831 r850 25 25 // 26 26 // $Id: 27 // GEANT4 tag $Name: $27 // GEANT4 tag $Name: HEAD $ 28 28 // 29 29 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -
trunk/source/geometry/solids/specific/include/G4TessellatedSolid.hh
r831 r850 26 26 // 27 27 // $Id: G4TessellatedSolid.hh,v 1.10 2007/12/10 16:30:13 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -
trunk/source/geometry/solids/specific/include/G4Tet.hh
r831 r850 30 30 // 31 31 // $Id: G4Tet.hh,v 1.9 2006/11/13 08:58:03 gcosmo Exp $ 32 // GEANT4 tag $Name: $32 // GEANT4 tag $Name: HEAD $ 33 33 // 34 34 // -
trunk/source/geometry/solids/specific/include/G4TriangularFacet.hh
r831 r850 26 26 // 27 27 // $Id: G4TriangularFacet.hh,v 1.8 2007/12/10 16:30:18 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -
trunk/source/geometry/solids/specific/include/G4TwistTrapFlatSide.hh
r831 r850 26 26 // 27 27 // $Id: G4TwistTrapFlatSide.hh,v 1.5 2006/06/29 18:47:48 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/include/G4TwistTubsFlatSide.hh
r831 r850 26 26 // 27 27 // $Id: G4TwistTubsFlatSide.hh,v 1.5 2006/06/29 18:47:53 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/include/G4TwistTubsHypeSide.hh
r831 r850 26 26 // 27 27 // $Id: G4TwistTubsHypeSide.hh,v 1.5 2006/06/29 18:47:56 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/include/G4TwistTubsSide.hh
r831 r850 26 26 // 27 27 // $Id: G4TwistTubsSide.hh,v 1.5 2006/06/29 18:47:58 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/include/G4TwistedBox.hh
r831 r850 26 26 // 27 27 // $Id: G4TwistedBox.hh,v 1.10 2006/06/29 18:48:00 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/include/G4TwistedTrap.hh
r831 r850 26 26 // 27 27 // $Id: G4TwistedTrap.hh,v 1.10 2006/06/29 18:48:02 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/include/G4TwistedTrd.hh
r831 r850 26 26 // 27 27 // $Id: G4TwistedTrd.hh,v 1.6 2006/06/29 18:48:04 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/include/G4TwistedTubs.hh
r831 r850 26 26 // 27 27 // $Id: G4TwistedTubs.hh,v 1.14 2007/05/23 09:32:35 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/include/G4VCSGface.hh
r831 r850 25 25 // 26 26 // 27 // $Id: G4VCSGface.hh,v 1. 7 2006/06/29 18:48:08 gunterExp $28 // GEANT4 tag $Name: $27 // $Id: G4VCSGface.hh,v 1.9 2008/05/15 11:41:59 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // … … 300 300 301 301 virtual G4VCSGface* Clone() = 0; 302 303 virtual G4double SurfaceArea( ) = 0; 304 virtual G4ThreeVector GetPointOnFace() = 0; 302 305 }; 303 306 -
trunk/source/geometry/solids/specific/include/G4VCSGfaceted.hh
r831 r850 25 25 // 26 26 // 27 // $Id: G4VCSGfaceted.hh,v 1.1 3 2006/10/20 13:45:20gcosmo Exp $28 // GEANT4 tag $Name: $27 // $Id: G4VCSGfaceted.hh,v 1.17 2008/05/15 13:45:15 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // … … 127 127 const G4bool outgoing ) const; 128 128 129 G4ThreeVector GetPointOnSurfaceGeneric()const; 130 // Returns a random point located on the surface of the solid 131 // in case of generic Polycone or generic Polyhedra. 132 129 133 void CopyStuff( const G4VCSGfaceted &source ); 130 134 void DeleteStuff(); -
trunk/source/geometry/solids/specific/include/G4VFacet.hh
r831 r850 26 26 // 27 27 // $Id: G4VFacet.hh,v 1.6 2007/08/23 14:45:03 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -
trunk/source/geometry/solids/specific/include/G4VFacet.icc
r831 r850 26 26 // 27 27 // $Id: G4VFacet.icc,v 1.5 2007/08/23 14:45:03 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -
trunk/source/geometry/solids/specific/include/G4VTwistSurface.hh
r831 r850 26 26 // 27 27 // $Id: G4VTwistSurface.hh,v 1.6 2007/05/11 13:54:28 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/include/G4VTwistSurface.icc
r831 r850 26 26 // 27 27 // $Id: G4VTwistSurface.icc,v 1.3 2006/06/29 18:48:20 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/include/G4VTwistedFaceted.hh
r831 r850 26 26 // 27 27 // $Id: G4VTwistedFaceted.hh,v 1.10 2006/10/20 13:45:20 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/solids/specific/src/G4ClippablePolygon.cc
r831 r850 26 26 // 27 27 // $Id: G4ClippablePolygon.cc,v 1.12 2007/05/11 13:54:28 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/src/G4Ellipsoid.cc
r831 r850 25 25 // 26 26 // $Id: G4Ellipsoid.cc,v 1.14 2007/05/18 07:39:56 gcosmo Exp $ 27 // GEANT4 tag $Name: $27 // GEANT4 tag $Name: HEAD $ 28 28 // 29 29 // class G4Ellipsoid -
trunk/source/geometry/solids/specific/src/G4EllipticalCone.cc
r831 r850 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4EllipticalCone.cc,v 1.1 5.2.1 2008/04/25 09:11:34gcosmo Exp $27 // GEANT4 tag $Name: geant4-09-01-patch-02$26 // $Id: G4EllipticalCone.cc,v 1.16 2008/04/25 08:45:26 gcosmo Exp $ 27 // GEANT4 tag $Name: HEAD $ 28 28 // 29 29 // Implementation of G4EllipticalCone class -
trunk/source/geometry/solids/specific/src/G4EllipticalTube.cc
r831 r850 26 26 // 27 27 // $Id: G4EllipticalTube.cc,v 1.27 2006/10/20 13:45:21 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/src/G4EnclosingCylinder.cc
r831 r850 26 26 // 27 27 // $Id: G4EnclosingCylinder.cc,v 1.10 2007/05/11 13:54:29 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/src/G4ExtrudedSolid.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4ExtrudedSolid.cc,v 1.1 1.2.1 2008/04/23 08:10:24gcosmo Exp $28 // GEANT4 tag $Name: geant4-09-01-patch-02$27 // $Id: G4ExtrudedSolid.cc,v 1.17 2008/08/12 08:54:57 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // … … 62 62 // General constructor 63 63 64 G4String errorDescription = "InvalidSetup in \""; 65 errorDescription += pName; 66 errorDescription += "\""; 67 64 68 // First check input parameters 65 69 66 if ( fNv < 3 ) {67 G4Exception(68 "G4ExtrudedSolid::G4ExtrudedSolid()", "InvalidSetup",69 FatalException, "Number of polygon vertices < 3");70 if ( fNv < 3 ) 71 { 72 G4Exception("G4ExtrudedSolid::G4ExtrudedSolid()", errorDescription, 73 FatalException, "Number of polygon vertices < 3"); 70 74 } 71 75 72 if ( fNz < 2 ) {73 G4Exception(74 "G4ExtrudedSolid::G4ExtrudedSolid()", "InvalidSetup",75 FatalException, "Number of z-sides < 2");76 if ( fNz < 2 ) 77 { 78 G4Exception("G4ExtrudedSolid::G4ExtrudedSolid()", errorDescription, 79 FatalException, "Number of z-sides < 2"); 76 80 } 77 81 … … 80 84 if ( zsections[i].fZ > zsections[i+1].fZ ) 81 85 { 82 G4Exception( 83 "G4ExtrudedSolid::G4ExtrudedSolid()", "InvalidSetup", 86 G4Exception("G4ExtrudedSolid::G4ExtrudedSolid()", errorDescription, 84 87 FatalException, 85 88 "Z-sections have to be ordered by z value (z0 < z1 < z2 ...)"); 86 89 } 87 if ( std::fabs( zsections[i+1].fZ - zsections[i].fZ ) < kCarTolerance )90 if ( std::fabs( zsections[i+1].fZ - zsections[i].fZ ) < kCarTolerance * 0.5 ) 88 91 { 89 G4Exception( 90 "G4ExtrudedSolid::G4ExtrudedSolid()", "InvalidSetup", 92 G4Exception("G4ExtrudedSolid::G4ExtrudedSolid()", errorDescription, 91 93 FatalException, 92 94 "Z-sections with the same z position are not supported."); … … 106 108 if (!result) 107 109 { 108 G4Exception("G4ExtrudedSolid::G4ExtrudedSolid()", "InvalidSetup",110 G4Exception("G4ExtrudedSolid::G4ExtrudedSolid()", errorDescription, 109 111 FatalException, "Making facets failed."); 110 112 } … … 134 136 // Special constructor for solid with 2 z-sections 135 137 138 G4String errorDescription = "InvalidSetup in \""; 139 errorDescription += pName; 140 errorDescription += "\""; 141 136 142 // First check input parameters 137 143 // 138 144 if ( fNv < 3 ) 139 145 { 140 G4Exception("G4ExtrudedSolid::G4ExtrudedSolid()", "InvalidSetup",146 G4Exception("G4ExtrudedSolid::G4ExtrudedSolid()", errorDescription, 141 147 FatalException, "Number of polygon vertices < 3"); 142 148 } … … 154 160 if (!result) 155 161 { 156 G4Exception("G4ExtrudedSolid::G4ExtrudedSolid()", "InvalidSetup",162 G4Exception("G4ExtrudedSolid::G4ExtrudedSolid()", errorDescription, 157 163 FatalException, "Making facets failed."); 158 164 } … … 265 271 if ( l1.x() == l2.x() ) 266 272 { 267 return std::fabs(p.x() - l1.x()) < kCarTolerance ;273 return std::fabs(p.x() - l1.x()) < kCarTolerance * 0.5; 268 274 } 269 275 270 276 return std::fabs (p.y() - l1.y() - ((l2.y() - l1.y())/(l2.x() - l1.x())) 271 *(p.x() - l1.x())) < kCarTolerance ;277 *(p.x() - l1.x())) < kCarTolerance * 0.5; 272 278 } 273 279 … … 280 286 // l1 and l2 281 287 282 if ( p.x() < std::min(l1.x(), l2.x()) - kCarTolerance ||283 p.x() > std::max(l1.x(), l2.x()) + kCarTolerance ||284 p.y() < std::min(l1.y(), l2.y()) - kCarTolerance ||285 p.y() > std::max(l1.y(), l2.y()) + kCarTolerance )288 if ( p.x() < std::min(l1.x(), l2.x()) - kCarTolerance * 0.5 || 289 p.x() > std::max(l1.x(), l2.x()) + kCarTolerance * 0.5 || 290 p.y() < std::min(l1.y(), l2.y()) - kCarTolerance * 0.5 || 291 p.y() > std::max(l1.y(), l2.y()) + kCarTolerance * 0.5 ) 286 292 { 287 293 return false; … … 309 315 G4TwoVector c, G4TwoVector p) const 310 316 { 311 // Return true if p is inside of triangle abc, else returns false 317 // Return true if p is inside of triangle abc or on its edges, 318 // else returns false 312 319 313 320 // Check extent first … … 318 325 ( p.y() > a.y() && p.y() > b.y() && p.y() > c.y() ) ) return false; 319 326 320 return IsSameSide(p, a, b, c) 321 && IsSameSide(p, b, a, c) 322 && IsSameSide(p, c, a, b); 327 G4bool inside 328 = IsSameSide(p, a, b, c) 329 && IsSameSide(p, b, a, c) 330 && IsSameSide(p, c, a, b); 331 332 G4bool onEdge 333 = IsSameLineSegment(p, a, b) 334 || IsSameLineSegment(p, b, c) 335 || IsSameLineSegment(p, c, a); 336 337 return inside || onEdge; 323 338 } 324 339 … … 333 348 G4TwoVector t2 = pb - po; 334 349 335 G4double result 336 = (atan2(t1.y(), t1.x()) - atan2(t2.y(), t2.x())); 350 G4double result = (std::atan2(t1.y(), t1.x()) - std::atan2(t2.y(), t2.x())); 337 351 338 352 if ( result < 0 ) result += 2*pi; … … 439 453 // 440 454 G4double angle = GetAngle(c2->first, c3->first, c1->first); 441 //G4cout << angle << G4endl; 442 if ( angle > pi ) { 455 456 if ( angle > pi ) 457 { 443 458 // G4cout << "Skipping concave vertex " << c2->second << G4endl; 444 459 … … 449 464 ++c3; 450 465 if ( c3 == verticesToBeDone.end() ) { c3 = verticesToBeDone.begin(); } 466 467 // G4cout << "Looking at triangle : " 468 // << c1->second << " " << c2->second 469 // << " " << c3->second << G4endl; 470 451 471 } 452 472 … … 623 643 // Check first if outside extent 624 644 // 625 if ( p.x() < GetMinXExtent() - kCarTolerance ||626 p.x() > GetMaxXExtent() + kCarTolerance ||627 p.y() < GetMinYExtent() - kCarTolerance ||628 p.y() > GetMaxYExtent() + kCarTolerance ||629 p.z() < GetMinZExtent() - kCarTolerance ||630 p.z() > GetMaxZExtent() + kCarTolerance )645 if ( p.x() < GetMinXExtent() - kCarTolerance * 0.5 || 646 p.x() > GetMaxXExtent() + kCarTolerance * 0.5 || 647 p.y() < GetMinYExtent() - kCarTolerance * 0.5 || 648 p.y() > GetMaxYExtent() + kCarTolerance * 0.5 || 649 p.z() < GetMinZExtent() - kCarTolerance * 0.5 || 650 p.z() > GetMaxZExtent() + kCarTolerance * 0.5 ) 631 651 { 632 652 // G4cout << "G4ExtrudedSolid::Outside extent: " << p << G4endl; … … 660 680 if ( IsPointInside(fPolygon[(*it)[0]], fPolygon[(*it)[1]], 661 681 fPolygon[(*it)[2]], pscaled) ) { inside = true; } 662 663 if ( IsSameLineSegment(pscaled, fPolygon[(*it)[0]], fPolygon[(*it)[1]]) ||664 IsSameLineSegment(pscaled, fPolygon[(*it)[1]], fPolygon[(*it)[2]]) ||665 IsSameLineSegment(pscaled, fPolygon[(*it)[2]], fPolygon[(*it)[0]]) )666 { inside = true; }667 682 ++it; 668 683 } while ( (inside == false) && (it != fTriangles.end()) ); … … 672 687 // Check if on surface of z sides 673 688 // 674 if ( std::fabs( p.z() - fZSections[0].fZ ) < kCarTolerance ||675 std::fabs( p.z() - fZSections[fNz-1].fZ ) < kCarTolerance )689 if ( std::fabs( p.z() - fZSections[0].fZ ) < kCarTolerance * 0.5 || 690 std::fabs( p.z() - fZSections[fNz-1].fZ ) < kCarTolerance * 0.5 ) 676 691 { 677 692 // G4cout << "G4ExtrudedSolid::Inside return Surface (on z side)" -
trunk/source/geometry/solids/specific/src/G4Hype.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4Hype.cc,v 1.2 5.8.1 2008/04/23 08:10:24gcosmo Exp $27 // $Id: G4Hype.cc,v 1.27 2008/04/14 08:49:28 gcosmo Exp $ 28 28 // $Original: G4Hype.cc,v 1.0 1998/06/09 16:57:50 safai Exp $ 29 // GEANT4 tag $Name: geant4-09-01-patch-02$29 // GEANT4 tag $Name: HEAD $ 30 30 // 31 31 // -
trunk/source/geometry/solids/specific/src/G4IntersectingCone.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4IntersectingCone.cc,v 1. 8.8.2 2008/04/28 09:03:16gcosmo Exp $28 // GEANT4 tag $Name: geant4-09-01-patch-02$27 // $Id: G4IntersectingCone.cc,v 1.12 2008/04/28 08:59:47 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/src/G4Paraboloid.cc
r831 r850 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4Paraboloid.cc,v 1. 5.2.1 2008/04/23 08:10:24gcosmo Exp $27 // GEANT4 tag $Name: geant4-09-01-patch-02$26 // $Id: G4Paraboloid.cc,v 1.8 2008/07/17 07:33:00 gcosmo Exp $ 27 // GEANT4 tag $Name: HEAD $ 28 28 // 29 29 // class G4Paraboloid 30 30 // 31 31 // Implementation for G4Paraboloid class 32 //33 // History:34 32 // 35 33 // Author : Lukas Lindroos (CERN), July 2007 … … 82 80 } 83 81 84 // r1^2 = k1 * (-dz) + k285 // r2^2 = k1 * ( dz) + k286 // => r1^2 + r2^2 = k2 + k2 => k2 = (r2^2 + r1^2) / 287 // and r2^2 - r1^2 = k1 * dz - k1 * (-dz) => k1 = (r2^2 - r1^2) / 2 / dz82 // r1^2 = k1 * (-dz) + k2 83 // r2^2 = k1 * ( dz) + k2 84 // => r1^2 + r2^2 = k2 + k2 => k2 = (r2^2 + r1^2) / 2 85 // and r2^2 - r1^2 = k1 * dz - k1 * (-dz) => k1 = (r2^2 - r1^2) / 2 / dz 88 86 89 87 k1 = (r2 * r2 - r1 * r1) / 2 / dz; … … 283 281 rhoSurfTimesTol2 = (k1 * p.z() + k2) * sqr(kCarTolerance), 284 282 A = rho2 - ((k1 *p.z() + k2) + 0.25 * kCarTolerance * kCarTolerance); 285 283 286 284 if(A < 0 && sqr(A) > rhoSurfTimesTol2) 287 285 { 288 286 // Actually checking rho < radius of paraboloid at z = p.z(). 289 287 // We're either inside or in lower/upper cutoff area. 290 288 291 289 if(std::fabs(p.z()) > dz - 0.5 * kCarTolerance) 292 290 { … … 432 430 } 433 431 } 434 else // Direction away, no posibility of intersection 435 { return kInfinity; } 432 else // Direction away, no possibility of intersection 433 { 434 return kInfinity; 435 } 436 436 } 437 437 else if(r1 && p.z() < tolh - dz) … … 455 455 } 456 456 } 457 else// Direction away, no posibility of intersection 458 { return kInfinity; } 457 else // Direction away, no possibility of intersection 458 { 459 return kInfinity; 460 } 459 461 } 460 462 … … 577 579 /////////////////////////////////////////////////////////////////////////////// 578 580 // 579 // Calculate distance to surface of shape from `inside'581 // Calculate distance to surface of shape from 'inside' 580 582 581 583 G4double G4Paraboloid::DistanceToOut(const G4ThreeVector& p, … … 598 600 // to include all z) x^2 + y^2 = k1 * z + k2 => .. => 599 601 // => s = (A +- std::sqrt(A^2 + B)) / vRho2 600 // where 602 // where: 603 // 601 604 G4double A = k1 / 2 * v.z() - p.x() * v.x() - p.y() * v.y(); 602 // and 605 // 606 // and: 607 // 603 608 G4double B = (-rho2 + paraRho2) * vRho2; 604 609 … … 676 681 else if( ((A <= 0) && (B >= sqr(A) * (sqr(vRho2) - 1))) || (A >= 0)) 677 682 { 678 intersection = (A + std::sqrt(B + sqr(A))) / vRho2; 683 // intersection = (A + std::sqrt(B + sqr(A))) / vRho2; 684 // The above calculation has a precision problem: 685 // known problem of solving quadratic equation with small A 686 687 A = A/vRho2; 688 B = (k1 * p.z() + k2 - rho2)/vRho2; 689 intersection = B/(-A + std::sqrt(B + sqr(A))); 679 690 if(calcNorm) 680 691 { … … 700 711 { 701 712 // If this is true we're somewhere in the border. 702 713 703 714 G4ThreeVector normal = G4ThreeVector (p.x(), p.y(), -k1/2); 704 715 … … 706 717 { 707 718 // We're in the lower or upper edge 719 // 708 720 if( ((v.z() > 0) && (p.z() > 0)) || ((v.z() < 0) && (p.z() < 0)) ) 709 // If we're headig out of the object that is treated here 710 { 721 { // If we're heading out of the object that is treated here 711 722 if(calcNorm) 712 723 { … … 742 753 } 743 754 } 744 else if(normal.dot(v) >= 0) 745 { 746 if(calcNorm) 747 { 748 *validNorm = true; 749 *n = normal.unit(); 750 } 751 return 0; 752 } 755 // 756 // Problem in the Logic :: Following condition for point on upper surface 757 // and Vz<0 will return 0 (Problem #1015), but 758 // it has to return intersection with parabolic 759 // surface or with lower plane surface (z = -dz) 760 // The logic has to be :: If not found intersection until now, 761 // do not exit but continue to search for possible intersection. 762 // Only for point situated on both borders (Z and parabolic) 763 // this condition has to be taken into account and done later 764 // 765 // 766 // else if(normal.dot(v) >= 0) 767 // { 768 // if(calcNorm) 769 // { 770 // *validNorm = true; 771 // *n = normal.unit(); 772 // } 773 // return 0; 774 // } 753 775 754 776 if(v.z() > 0) … … 780 802 } 781 803 } 782 if( r1 &&v.z() < 0)804 if( v.z() < 0) 783 805 { 784 806 // Check for collision with lower edge. … … 809 831 } 810 832 811 if(vRho2 != 0) 812 { intersection = (A + std::sqrt(B + sqr(A))) / vRho2; } 833 // Note: comparison with zero below would not be correct ! 834 // 835 if(std::fabs(vRho2) > tol2) // precision error in the calculation of 836 { // intersection = (A+std::sqrt(B+sqr(A)))/vRho2 837 A = A/vRho2; 838 B = (k1 * p.z() + k2 - rho2); 839 if(std::fabs(B)>kCarTolerance) 840 { 841 B = (B)/vRho2; 842 intersection = B/(-A + std::sqrt(B + sqr(A))); 843 } 844 else // Point is On both borders: Z and parabolic 845 { // solution depends on normal.dot(v) sign 846 if(normal.dot(v) >= 0) 847 { 848 if(calcNorm) 849 { 850 *validNorm = true; 851 *n = normal.unit(); 852 } 853 return 0; 854 } 855 intersection = 2.*A; 856 } 857 } 813 858 else 814 { intersection = ((rho2 - k2) / k1 - p.z()) / v.z(); } 859 { 860 intersection = ((rho2 - k2) / k1 - p.z()) / v.z(); 861 } 815 862 816 863 if(calcNorm) -
trunk/source/geometry/solids/specific/src/G4PolyPhiFace.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4PolyPhiFace.cc,v 1.1 3 2007/07/19 12:57:14gcosmo Exp $28 // GEANT4 tag $Name: $27 // $Id: G4PolyPhiFace.cc,v 1.15 2008/05/15 11:41:59 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // … … 47 47 #include "G4GeometryTolerance.hh" 48 48 49 #include "Randomize.hh" 50 #include "G4TwoVector.hh" 51 49 52 // 50 53 // Constructor … … 63 66 { 64 67 kCarTolerance = G4GeometryTolerance::GetInstance()->GetSurfaceTolerance(); 68 fSurfaceArea = 0.; 65 69 66 70 numEdges = rz->NumVertices(); … … 103 107 // 104 108 corners = new G4PolyPhiFaceVertex[numEdges]; 105 106 109 // 107 110 // Fill them … … 110 113 111 114 G4PolyPhiFaceVertex *corn = corners; 115 G4PolyPhiFaceVertex *helper=corners; 116 112 117 iterRZ.Begin(); 113 118 do … … 117 122 corn->x = corn->r*radial.x(); 118 123 corn->y = corn->r*radial.y(); 124 125 // Add pointer on prev corner 126 // 127 if( corn == corners ) 128 { corn->prev = corners+numEdges-1;} 129 else 130 { corn->prev = helper; } 131 132 // Add pointer on next corner 133 // 134 if( corn < corners+numEdges-1 ) 135 { corn->next = corn+1;} 136 else 137 { corn->next = corners; } 138 139 helper = corn; 119 140 } while( ++corn, iterRZ.Next() ); 120 141 … … 322 343 normal = source.normal; 323 344 radial = source.radial; 324 surface = source.surface;345 surface = source.surface; 325 346 rMin = source.rMin; 326 347 rMax = source.rMax; … … 330 351 331 352 kCarTolerance = source.kCarTolerance; 353 fSurfaceArea = source.fSurfaceArea; 332 354 333 355 // … … 895 917 return answer; 896 918 } 919 920 // 921 // Calculation of Surface Area of a Triangle 922 // In the same time Random Point in Triangle is given 923 // 924 G4double G4PolyPhiFace::SurfaceTriangle( G4ThreeVector p1, 925 G4ThreeVector p2, 926 G4ThreeVector p3, 927 G4ThreeVector *p4 ) 928 { 929 G4ThreeVector v, w; 930 931 v = p3 - p1; 932 w = p1 - p2; 933 G4double lambda1 = G4UniformRand(); 934 G4double lambda2 = lambda1*G4UniformRand(); 935 936 *p4=p2 + lambda1*w + lambda2*v; 937 return 0.5*(v.cross(w)).mag(); 938 } 939 940 // 941 // Compute surface area 942 // 943 G4double G4PolyPhiFace::SurfaceArea() 944 { 945 if ( fSurfaceArea==0. ) { Triangulate(); } 946 return fSurfaceArea; 947 } 948 949 // 950 // Return random point on face 951 // 952 G4ThreeVector G4PolyPhiFace::GetPointOnFace() 953 { 954 Triangulate(); 955 return surface_point; 956 } 957 958 // 959 // Auxiliary Functions used for Finding the PointOnFace using Triangulation 960 // 961 962 // 963 // Calculation of 2*Area of Triangle with Sign 964 // 965 G4double G4PolyPhiFace::Area2( G4TwoVector a, 966 G4TwoVector b, 967 G4TwoVector c ) 968 { 969 return ((b.x()-a.x())*(c.y()-a.y())- 970 (c.x()-a.x())*(b.y()-a.y())); 971 } 972 973 // 974 // Boolean function for sign of Surface 975 // 976 G4bool G4PolyPhiFace::Left( G4TwoVector a, 977 G4TwoVector b, 978 G4TwoVector c ) 979 { 980 return Area2(a,b,c)>0; 981 } 982 983 // 984 // Boolean function for sign of Surface 985 // 986 G4bool G4PolyPhiFace::LeftOn( G4TwoVector a, 987 G4TwoVector b, 988 G4TwoVector c ) 989 { 990 return Area2(a,b,c)>=0; 991 } 992 993 // 994 // Boolean function for sign of Surface 995 // 996 G4bool G4PolyPhiFace::Collinear( G4TwoVector a, 997 G4TwoVector b, 998 G4TwoVector c ) 999 { 1000 return Area2(a,b,c)==0; 1001 } 1002 1003 // 1004 // Boolean function for finding "Proper" Intersection 1005 // That means Intersection of two lines segments (a,b) and (c,d) 1006 // 1007 G4bool G4PolyPhiFace::IntersectProp( G4TwoVector a, 1008 G4TwoVector b, 1009 G4TwoVector c, G4TwoVector d ) 1010 { 1011 if( Collinear(a,b,c) || Collinear(a,b,d)|| 1012 Collinear(c,d,a) || Collinear(c,d,b) ) { return false; } 1013 1014 G4bool Positive; 1015 Positive = !(Left(a,b,c))^!(Left(a,b,d)); 1016 return Positive && (!Left(c,d,a)^!Left(c,d,b)); 1017 } 1018 1019 // 1020 // Boolean function for determining if Point c is between a and b 1021 // For the tree points(a,b,c) on the same line 1022 // 1023 G4bool G4PolyPhiFace::Between( G4TwoVector a, G4TwoVector b, G4TwoVector c ) 1024 { 1025 if( !Collinear(a,b,c) ) { return false; } 1026 1027 if(a.x()!=b.x()) 1028 { 1029 return ((a.x()<=c.x())&&(c.x()<=b.x()))|| 1030 ((a.x()>=c.x())&&(c.x()>=b.x())); 1031 } 1032 else 1033 { 1034 return ((a.y()<=c.y())&&(c.y()<=b.y()))|| 1035 ((a.y()>=c.y())&&(c.y()>=b.y())); 1036 } 1037 } 1038 1039 // 1040 // Boolean function for finding Intersection "Proper" or not 1041 // Between two line segments (a,b) and (c,d) 1042 // 1043 G4bool G4PolyPhiFace::Intersect( G4TwoVector a, 1044 G4TwoVector b, 1045 G4TwoVector c, G4TwoVector d ) 1046 { 1047 if( IntersectProp(a,b,c,d) ) 1048 { return true; } 1049 else if( Between(a,b,c)|| 1050 Between(a,b,d)|| 1051 Between(c,d,a)|| 1052 Between(c,d,b) ) 1053 { return true; } 1054 else 1055 { return false; } 1056 } 1057 1058 // 1059 // Boolean Diagonalie help to determine 1060 // if diagonal s of segment (a,b) is convex or reflex 1061 // 1062 G4bool G4PolyPhiFace::Diagonalie( G4PolyPhiFaceVertex *a, 1063 G4PolyPhiFaceVertex *b ) 1064 { 1065 G4PolyPhiFaceVertex *corner = triangles; 1066 G4PolyPhiFaceVertex *corner_next=triangles; 1067 1068 // For each Edge (corner,corner_next) 1069 do 1070 { 1071 corner_next=corner->next; 1072 1073 // Skip edges incident to a of b 1074 // 1075 if( (corner!=a)&&(corner_next!=a) 1076 &&(corner!=b)&&(corner_next!=b) ) 1077 { 1078 G4TwoVector rz1,rz2,rz3,rz4; 1079 rz1 = G4TwoVector(a->r,a->z); 1080 rz2 = G4TwoVector(b->r,b->z); 1081 rz3 = G4TwoVector(corner->r,corner->z); 1082 rz4 = G4TwoVector(corner_next->r,corner_next->z); 1083 if( Intersect(rz1,rz2,rz3,rz4) ) { return false; } 1084 } 1085 corner=corner->next; 1086 1087 } while( corner != triangles ); 1088 1089 return true; 1090 } 1091 1092 // 1093 // Boolean function that determine if b is Inside Cone (a0,a,a1) 1094 // being a the center of the Cone 1095 // 1096 G4bool G4PolyPhiFace::InCone( G4PolyPhiFaceVertex *a, G4PolyPhiFaceVertex *b ) 1097 { 1098 // a0,a and a1 are consecutive vertices 1099 // 1100 G4PolyPhiFaceVertex *a0,*a1; 1101 a1=a->next; 1102 a0=a->prev; 1103 1104 G4TwoVector arz,arz0,arz1,brz; 1105 arz=G4TwoVector(a->r,a->z);arz0=G4TwoVector(a0->r,a0->z); 1106 arz1=G4TwoVector(a1->r,a1->z);brz=G4TwoVector(b->r,b->z); 1107 1108 1109 if(LeftOn(arz,arz1,arz0)) // If a is convex vertex 1110 { 1111 return Left(arz,brz,arz0)&&Left(brz,arz,arz1); 1112 } 1113 else // Else a is reflex 1114 { 1115 return !( LeftOn(arz,brz,arz1)&&LeftOn(brz,arz,arz0)); 1116 } 1117 } 1118 1119 // 1120 // Boolean function finding if Diagonal is possible 1121 // inside Polycone or PolyHedra 1122 // 1123 G4bool G4PolyPhiFace::Diagonal( G4PolyPhiFaceVertex *a, G4PolyPhiFaceVertex *b ) 1124 { 1125 return InCone(a,b) && InCone(b,a) && Diagonalie(a,b); 1126 } 1127 1128 // 1129 // Initialisation for Triangulisation by ear tips 1130 // For details see "Computational Geometry in C" by Joseph O'Rourke 1131 // 1132 void G4PolyPhiFace::EarInit() 1133 { 1134 G4PolyPhiFaceVertex *corner = triangles; 1135 G4PolyPhiFaceVertex *c_prev,*c_next; 1136 1137 do 1138 { 1139 // We need to determine three consecutive vertices 1140 // 1141 c_next=corner->next; 1142 c_prev=corner->prev; 1143 1144 // Calculation of ears 1145 // 1146 corner->ear=Diagonal(c_prev,c_next); 1147 corner=corner->next; 1148 1149 } while( corner!=triangles ); 1150 } 1151 1152 // 1153 // Triangulisation by ear tips for Polycone or Polyhedra 1154 // For details see "Computational Geometry in C" by Joseph O'Rourke 1155 // 1156 void G4PolyPhiFace::Triangulate() 1157 { 1158 // The copy of Polycone is made and this copy is reordered in order to 1159 // have a list of triangles. This list is used for GetPointOnFace(). 1160 1161 G4PolyPhiFaceVertex *tri_help = new G4PolyPhiFaceVertex[numEdges]; 1162 triangles = tri_help; 1163 G4PolyPhiFaceVertex *triang = triangles; 1164 1165 std::vector<G4double> areas; 1166 std::vector<G4ThreeVector> points; 1167 G4double area=0.; 1168 G4PolyPhiFaceVertex *v0,*v1,*v2,*v3,*v4; 1169 v2=triangles; 1170 1171 // Make copy for prev/next for triang=corners 1172 // 1173 G4PolyPhiFaceVertex *helper = corners; 1174 G4PolyPhiFaceVertex *helper2 = corners; 1175 do 1176 { 1177 triang->r = helper->r; 1178 triang->z = helper->z; 1179 triang->x = helper->x; 1180 triang->y= helper->y; 1181 1182 // add pointer on prev corner 1183 // 1184 if( helper==corners ) 1185 { triang->prev=triangles+numEdges-1; } 1186 else 1187 { triang->prev=helper2; } 1188 1189 // add pointer on next corner 1190 // 1191 if( helper<corners+numEdges-1 ) 1192 { triang->next=triang+1; } 1193 else 1194 { triang->next=triangles; } 1195 helper2=triang; 1196 helper=helper->next; 1197 triang=triang->next; 1198 1199 } while( helper!=corners ); 1200 1201 EarInit(); 1202 1203 G4int n=numEdges; 1204 G4int i=0; 1205 G4ThreeVector p1,p2,p3,p4; 1206 const G4int max_n_loops=numEdges*10000; // protection against infinite loop 1207 1208 // Each step of outer loop removes one ear 1209 // 1210 while(n>3) // Inner loop searches for one ear 1211 { 1212 v2=triangles; 1213 do 1214 { 1215 if(v2->ear) // Ear found. Fill variables 1216 { 1217 // (v1,v3) is diagonal 1218 // 1219 v3=v2->next; v4=v3->next; 1220 v1=v2->prev; v0=v1->prev; 1221 1222 // Calculate areas and points 1223 1224 p1=G4ThreeVector((v2)->x,(v2)->y,(v2)->z); 1225 p2=G4ThreeVector((v1)->x,(v1)->y,(v1)->z); 1226 p3=G4ThreeVector((v3)->x,(v3)->y,(v3)->z); 1227 1228 G4double result1 = SurfaceTriangle(p1,p2,p3,&p4 ); 1229 points.push_back(p4); 1230 areas.push_back(result1); 1231 area=area+result1; 1232 1233 // Update earity of diagonal endpoints 1234 // 1235 v1->ear=Diagonal(v0,v3); 1236 v3->ear=Diagonal(v1,v4); 1237 1238 // Cut off the ear v2 1239 // Has to be done for a copy and not for real PolyPhiFace 1240 // 1241 v1->next=v3; 1242 v3->prev=v1; 1243 triangles=v3; // In case the head was v2 1244 n--; 1245 1246 break; // out of inner loop 1247 } // end if ear found 1248 1249 v2=v2->next; 1250 1251 } while( v2!=triangles ); 1252 1253 i++; 1254 if(i>=max_n_loops) 1255 { 1256 G4Exception( "G4PolyPhiFace::Triangulation()", 1257 "Bad_Definition_of_Solid", FatalException, 1258 "Maximum number of steps is reached for triangulation!" ); 1259 } 1260 } // end outer while loop 1261 1262 if(v2->next) 1263 { 1264 // add last triangle 1265 // 1266 v2=v2->next; 1267 p1=G4ThreeVector((v2)->x,(v2)->y,(v2)->z); 1268 p2=G4ThreeVector((v2->next)->x,(v2->next)->y,(v2->next)->z); 1269 p3=G4ThreeVector((v2->prev)->x,(v2->prev)->y,(v2->prev)->z); 1270 G4double result1 = SurfaceTriangle(p1,p2,p3,&p4 ); 1271 points.push_back(p4); 1272 areas.push_back(result1); 1273 area=area+result1; 1274 } 1275 1276 // Surface Area is stored 1277 // 1278 fSurfaceArea = area; 1279 1280 // Second Step: choose randomly one surface 1281 // 1282 G4double chose = area*G4UniformRand(); 1283 1284 // Third Step: Get a point on choosen surface 1285 // 1286 G4double Achose1, Achose2; 1287 Achose1=0; Achose2=0.; 1288 i=0; 1289 do 1290 { 1291 Achose2+=areas[i]; 1292 if(chose>=Achose1 && chose<Achose2) 1293 { 1294 G4ThreeVector point; 1295 point=points[i] ; 1296 surface_point=point; 1297 break; 1298 } 1299 i++; Achose1=Achose2; 1300 } while( i<numEdges-2 ); 1301 1302 delete [] tri_help; 1303 } -
trunk/source/geometry/solids/specific/src/G4Polycone.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4Polycone.cc,v 1. 39 2007/10/02 09:50:46gcosmo Exp $28 // GEANT4 tag $Name: $27 // $Id: G4Polycone.cc,v 1.43 2008/05/15 13:45:15 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // … … 781 781 // 782 782 G4ThreeVector G4Polycone::GetPointOnSurface() const 783 { 784 G4double Area=0,totArea=0,Achose1=0,Achose2=0,phi,cosphi,sinphi,rRand; 785 G4int i=0; 786 G4int numPlanes = original_parameters->Num_z_planes; 787 788 phi = RandFlat::shoot(startPhi,endPhi); 789 cosphi = std::cos(phi); 790 sinphi = std::sin(phi); 791 792 rRand = RandFlat::shoot(original_parameters->Rmin[0], 793 original_parameters->Rmax[0]); 794 795 std::vector<G4double> areas; // (numPlanes+1); 796 std::vector<G4ThreeVector> points; // (numPlanes-1); 797 798 areas.push_back(pi*(sqr(original_parameters->Rmax[0]) 799 -sqr(original_parameters->Rmin[0]))); 800 801 for(i=0; i<numPlanes-1; i++) 802 { 803 Area = (original_parameters->Rmin[i]+original_parameters->Rmin[i+1])* 804 std::sqrt(sqr(original_parameters->Rmin[i] 805 -original_parameters->Rmin[i+1])+ 806 sqr(original_parameters->Z_values[i+1] 807 -original_parameters->Z_values[i])); 783 { 784 if (!genericPcon) // Polycone by faces 785 { 786 G4double Area=0,totArea=0,Achose1=0,Achose2=0,phi,cosphi,sinphi,rRand; 787 G4int i=0; 788 G4int numPlanes = original_parameters->Num_z_planes; 789 790 phi = RandFlat::shoot(startPhi,endPhi); 791 cosphi = std::cos(phi); 792 sinphi = std::sin(phi); 793 794 rRand = RandFlat::shoot(original_parameters->Rmin[0], 795 original_parameters->Rmax[0]); 796 797 std::vector<G4double> areas; // (numPlanes+1); 798 std::vector<G4ThreeVector> points; // (numPlanes-1); 799 800 areas.push_back(pi*(sqr(original_parameters->Rmax[0]) 801 -sqr(original_parameters->Rmin[0]))); 802 803 for(i=0; i<numPlanes-1; i++) 804 { 805 Area = (original_parameters->Rmin[i]+original_parameters->Rmin[i+1]) 806 * std::sqrt(sqr(original_parameters->Rmin[i] 807 -original_parameters->Rmin[i+1])+ 808 sqr(original_parameters->Z_values[i+1] 809 -original_parameters->Z_values[i])); 810 811 Area += (original_parameters->Rmax[i]+original_parameters->Rmax[i+1]) 812 * std::sqrt(sqr(original_parameters->Rmax[i] 813 -original_parameters->Rmax[i+1])+ 814 sqr(original_parameters->Z_values[i+1] 815 -original_parameters->Z_values[i])); 816 817 Area *= 0.5*(endPhi-startPhi); 808 818 809 Area += (original_parameters->Rmax[i]+original_parameters->Rmax[i+1])* 810 std::sqrt(sqr(original_parameters->Rmax[i] 811 -original_parameters->Rmax[i+1])+ 812 sqr(original_parameters->Z_values[i+1] 813 -original_parameters->Z_values[i])); 814 815 Area *= 0.5*(endPhi-startPhi); 816 817 if(startPhi==0.&& endPhi == twopi) 818 { 819 Area += std::fabs(original_parameters->Z_values[i+1] 820 -original_parameters->Z_values[i])* 821 (original_parameters->Rmax[i] 822 +original_parameters->Rmax[i+1] 823 -original_parameters->Rmin[i] 824 -original_parameters->Rmin[i+1]); 825 } 826 areas.push_back(Area); 827 totArea += Area; 828 } 829 830 areas.push_back(pi*(sqr(original_parameters->Rmax[numPlanes-1])- 831 sqr(original_parameters->Rmin[numPlanes-1]))); 832 833 totArea += (areas[0]+areas[numPlanes]); 834 G4double chose = RandFlat::shoot(0.,totArea); 835 836 if( (chose>=0.) && (chose<areas[0]) ) 837 { 838 return G4ThreeVector(rRand*cosphi, rRand*sinphi, 839 original_parameters->Z_values[0]); 840 } 841 842 for (i=0; i<numPlanes-1; i++) 843 { 844 Achose1 += areas[i]; 845 Achose2 = (Achose1+areas[i+1]); 846 if(chose>=Achose1 && chose<Achose2) 847 {// G4cout<<"will return Point On Cut"<<G4endl; 848 return GetPointOnCut(original_parameters->Rmin[i], 849 original_parameters->Rmax[i], 850 original_parameters->Rmin[i+1], 851 original_parameters->Rmax[i+1], 852 original_parameters->Z_values[i], 853 original_parameters->Z_values[i+1], Area); 854 } 855 } 856 857 rRand = RandFlat::shoot(original_parameters->Rmin[numPlanes-1], 858 original_parameters->Rmax[numPlanes-1]); 859 860 return G4ThreeVector(rRand*cosphi,rRand*sinphi, 861 original_parameters->Z_values[numPlanes-1]); 862 } 863 819 if(startPhi==0.&& endPhi == twopi) 820 { 821 Area += std::fabs(original_parameters->Z_values[i+1] 822 -original_parameters->Z_values[i])* 823 (original_parameters->Rmax[i] 824 +original_parameters->Rmax[i+1] 825 -original_parameters->Rmin[i] 826 -original_parameters->Rmin[i+1]); 827 } 828 areas.push_back(Area); 829 totArea += Area; 830 } 831 832 areas.push_back(pi*(sqr(original_parameters->Rmax[numPlanes-1])- 833 sqr(original_parameters->Rmin[numPlanes-1]))); 834 835 totArea += (areas[0]+areas[numPlanes]); 836 G4double chose = RandFlat::shoot(0.,totArea); 837 838 if( (chose>=0.) && (chose<areas[0]) ) 839 { 840 return G4ThreeVector(rRand*cosphi, rRand*sinphi, 841 original_parameters->Z_values[0]); 842 } 843 844 for (i=0; i<numPlanes-1; i++) 845 { 846 Achose1 += areas[i]; 847 Achose2 = (Achose1+areas[i+1]); 848 if(chose>=Achose1 && chose<Achose2) 849 { 850 return GetPointOnCut(original_parameters->Rmin[i], 851 original_parameters->Rmax[i], 852 original_parameters->Rmin[i+1], 853 original_parameters->Rmax[i+1], 854 original_parameters->Z_values[i], 855 original_parameters->Z_values[i+1], Area); 856 } 857 } 858 859 rRand = RandFlat::shoot(original_parameters->Rmin[numPlanes-1], 860 original_parameters->Rmax[numPlanes-1]); 861 862 return G4ThreeVector(rRand*cosphi,rRand*sinphi, 863 original_parameters->Z_values[numPlanes-1]); 864 865 } 866 else // Generic Polycone 867 { 868 return GetPointOnSurfaceGeneric(); 869 } 870 } 864 871 865 872 // -
trunk/source/geometry/solids/specific/src/G4PolyconeSide.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4PolyconeSide.cc,v 1.1 7 2007/08/13 10:33:04gcosmo Exp $28 // GEANT4 tag $Name: $27 // $Id: G4PolyconeSide.cc,v 1.19 2008/05/15 11:41:59 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // … … 46 46 #include "G4SolidExtentList.hh" 47 47 #include "G4GeometryTolerance.hh" 48 49 #include "Randomize.hh" 48 50 49 51 // … … 64 66 { 65 67 kCarTolerance = G4GeometryTolerance::GetInstance()->GetSurfaceTolerance(); 68 fSurfaceArea = 0.0; 66 69 67 70 // … … 211 214 212 215 kCarTolerance = source.kCarTolerance; 216 fSurfaceArea = source.fSurfaceArea; 213 217 214 218 cone = new G4IntersectingCone( *source.cone ); … … 1044 1048 y = 0.5*( y1+s1*ty1 + y2+s2*ty2 ); 1045 1049 } 1050 1051 // 1052 // Calculate surface area for GetPointOnSurface() 1053 // 1054 G4double G4PolyconeSide::SurfaceArea() 1055 { 1056 if(fSurfaceArea==0) 1057 { 1058 fSurfaceArea = (r[0]+r[1])* std::sqrt(sqr(r[0]-r[1])+sqr(z[0]-z[1])); 1059 fSurfaceArea *= 0.5*(deltaPhi); 1060 } 1061 return fSurfaceArea; 1062 } 1063 1064 // 1065 // GetPointOnFace 1066 // 1067 G4ThreeVector G4PolyconeSide::GetPointOnFace() 1068 { 1069 G4double x,y,zz; 1070 G4double rr,phi,dz,dr; 1071 dr=r[1]-r[0];dz=z[1]-z[0]; 1072 phi=startPhi+deltaPhi*G4UniformRand(); 1073 rr=r[0]+dr*G4UniformRand(); 1074 1075 x=rr*std::cos(phi); 1076 y=rr*std::sin(phi); 1077 1078 // PolyconeSide has a Ring Form 1079 // 1080 if (dz==0.) 1081 { 1082 zz=z[0]; 1083 } 1084 else 1085 { 1086 if(dr==0.) // PolyconeSide has a Tube Form 1087 { 1088 zz = z[0]+dz*G4UniformRand(); 1089 } 1090 else 1091 { 1092 zz = z[0]+(rr-r[0])*dz/dr; 1093 } 1094 } 1095 1096 return G4ThreeVector(x,y,zz); 1097 } -
trunk/source/geometry/solids/specific/src/G4Polyhedra.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4Polyhedra.cc,v 1. 36.8.1 2008/04/23 08:10:24gcosmo Exp $28 // GEANT4 tag $Name: geant4-09-01-patch-02$27 // $Id: G4Polyhedra.cc,v 1.42 2008/05/15 13:45:15 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // … … 674 674 G4ThreeVector G4Polyhedra::GetPointOnSurface() const 675 675 { 676 G4int j, numPlanes = original_parameters->Num_z_planes, Flag=0; 677 G4double chose, totArea=0., Achose1, Achose2, 678 rad1, rad2, sinphi1, sinphi2, cosphi1, cosphi2; 679 G4double a, b, l2, rang, 680 totalPhi,ksi, 681 area, aTop=0., aBottom=0.,zVal=0.; 682 G4ThreeVector p0, p1, p2, p3; 683 std::vector<G4double> aVector1; 684 std::vector<G4double> aVector2; 685 std::vector<G4double> aVector3; 686 687 totalPhi= (phiIsOpen) ? (endPhi-startPhi) : twopi; 688 ksi = totalPhi/numSide; 689 G4double cosksi = std::cos(ksi/2.); 690 691 // below we generate the areas relevant to our solid 692 // 693 for(j=0; j<numPlanes-1; j++) 694 { 695 a = original_parameters->Rmax[j+1]; 696 b = original_parameters->Rmax[j]; 697 l2 = sqr(original_parameters->Z_values[j] 698 -original_parameters->Z_values[j+1]) + sqr(b-a); 699 area = std::sqrt(l2-sqr((a-b)*cosksi))*(a+b)*cosksi; 700 aVector1.push_back(area); 701 } 702 703 for(j=0; j<numPlanes-1; j++) 704 { 705 a = original_parameters->Rmin[j+1];//*cosksi; 706 b = original_parameters->Rmin[j];//*cosksi; 707 l2 = sqr(original_parameters->Z_values[j] 708 -original_parameters->Z_values[j+1]) + sqr(b-a); 709 area = std::sqrt(l2-sqr((a-b)*cosksi))*(a+b)*cosksi; 710 aVector2.push_back(area); 711 } 712 713 for(j=0; j<numPlanes-1; j++) 714 { 715 if(phiIsOpen == true) 716 { 717 aVector3.push_back(0.5*(original_parameters->Rmax[j] 718 -original_parameters->Rmin[j] 719 +original_parameters->Rmax[j+1] 720 -original_parameters->Rmin[j+1]) 721 *std::fabs(original_parameters->Z_values[j+1] 722 -original_parameters->Z_values[j])); 723 } 724 else { aVector3.push_back(0.); } 725 } 726 727 for(j=0; j<numPlanes-1; j++) 728 { 729 totArea += numSide*(aVector1[j]+aVector2[j])+2.*aVector3[j]; 730 } 731 732 // must include top and bottom areas 733 if(original_parameters->Rmax[numPlanes-1] != 0.) 734 { 735 a = original_parameters->Rmax[numPlanes-1]; 736 b = original_parameters->Rmin[numPlanes-1]; 737 l2 = sqr(a-b); 738 aTop = std::sqrt(l2-sqr((a-b)*cosksi))*(a+b)*cosksi; 739 } 740 741 if(original_parameters->Rmax[0] != 0.) 742 { 743 a = original_parameters->Rmax[0]; 744 b = original_parameters->Rmin[0]; 745 l2 = sqr(a-b); 746 aBottom = std::sqrt(l2-sqr((a-b)*cosksi))*(a+b)*cosksi; 747 } 748 749 Achose1 = 0.; 750 Achose2 = numSide*(aVector1[0]+aVector2[0])+2.*aVector3[0]; 751 752 chose = RandFlat::shoot(0.,totArea+aTop+aBottom); 753 if( (chose >= 0.) && (chose < aTop + aBottom) ) 754 { 676 if( !genericPgon ) // Polyhedra by faces 677 { 678 G4int j, numPlanes = original_parameters->Num_z_planes, Flag=0; 679 G4double chose, totArea=0., Achose1, Achose2, 680 rad1, rad2, sinphi1, sinphi2, cosphi1, cosphi2; 681 G4double a, b, l2, rang, totalPhi, ksi, 682 area, aTop=0., aBottom=0., zVal=0.; 683 684 G4ThreeVector p0, p1, p2, p3; 685 std::vector<G4double> aVector1; 686 std::vector<G4double> aVector2; 687 std::vector<G4double> aVector3; 688 689 totalPhi= (phiIsOpen) ? (endPhi-startPhi) : twopi; 690 ksi = totalPhi/numSide; 691 G4double cosksi = std::cos(ksi/2.); 692 693 // Below we generate the areas relevant to our solid 694 // 695 for(j=0; j<numPlanes-1; j++) 696 { 697 a = original_parameters->Rmax[j+1]; 698 b = original_parameters->Rmax[j]; 699 l2 = sqr(original_parameters->Z_values[j] 700 -original_parameters->Z_values[j+1]) + sqr(b-a); 701 area = std::sqrt(l2-sqr((a-b)*cosksi))*(a+b)*cosksi; 702 aVector1.push_back(area); 703 } 704 705 for(j=0; j<numPlanes-1; j++) 706 { 707 a = original_parameters->Rmin[j+1];//*cosksi; 708 b = original_parameters->Rmin[j];//*cosksi; 709 l2 = sqr(original_parameters->Z_values[j] 710 -original_parameters->Z_values[j+1]) + sqr(b-a); 711 area = std::sqrt(l2-sqr((a-b)*cosksi))*(a+b)*cosksi; 712 aVector2.push_back(area); 713 } 714 715 for(j=0; j<numPlanes-1; j++) 716 { 717 if(phiIsOpen == true) 718 { 719 aVector3.push_back(0.5*(original_parameters->Rmax[j] 720 -original_parameters->Rmin[j] 721 +original_parameters->Rmax[j+1] 722 -original_parameters->Rmin[j+1]) 723 *std::fabs(original_parameters->Z_values[j+1] 724 -original_parameters->Z_values[j])); 725 } 726 else { aVector3.push_back(0.); } 727 } 728 729 for(j=0; j<numPlanes-1; j++) 730 { 731 totArea += numSide*(aVector1[j]+aVector2[j])+2.*aVector3[j]; 732 } 733 734 // Must include top and bottom areas 735 // 736 if(original_parameters->Rmax[numPlanes-1] != 0.) 737 { 738 a = original_parameters->Rmax[numPlanes-1]; 739 b = original_parameters->Rmin[numPlanes-1]; 740 l2 = sqr(a-b); 741 aTop = std::sqrt(l2-sqr((a-b)*cosksi))*(a+b)*cosksi; 742 } 743 744 if(original_parameters->Rmax[0] != 0.) 745 { 746 a = original_parameters->Rmax[0]; 747 b = original_parameters->Rmin[0]; 748 l2 = sqr(a-b); 749 aBottom = std::sqrt(l2-sqr((a-b)*cosksi))*(a+b)*cosksi; 750 } 751 752 Achose1 = 0.; 753 Achose2 = numSide*(aVector1[0]+aVector2[0])+2.*aVector3[0]; 754 755 chose = RandFlat::shoot(0.,totArea+aTop+aBottom); 756 if( (chose >= 0.) && (chose < aTop + aBottom) ) 757 { 758 chose = RandFlat::shoot(startPhi,startPhi+totalPhi); 759 rang = std::floor((chose-startPhi)/ksi-0.01); 760 if(rang<0) { rang=0; } 761 rang = std::fabs(rang); 762 sinphi1 = std::sin(startPhi+rang*ksi); 763 sinphi2 = std::sin(startPhi+(rang+1)*ksi); 764 cosphi1 = std::cos(startPhi+rang*ksi); 765 cosphi2 = std::cos(startPhi+(rang+1)*ksi); 766 chose = RandFlat::shoot(0., aTop + aBottom); 767 if(chose>=0. && chose<aTop) 768 { 769 rad1 = original_parameters->Rmin[numPlanes-1]; 770 rad2 = original_parameters->Rmax[numPlanes-1]; 771 zVal = original_parameters->Z_values[numPlanes-1]; 772 } 773 else 774 { 775 rad1 = original_parameters->Rmin[0]; 776 rad2 = original_parameters->Rmax[0]; 777 zVal = original_parameters->Z_values[0]; 778 } 779 p0 = G4ThreeVector(rad1*cosphi1,rad1*sinphi1,zVal); 780 p1 = G4ThreeVector(rad2*cosphi1,rad2*sinphi1,zVal); 781 p2 = G4ThreeVector(rad2*cosphi2,rad2*sinphi2,zVal); 782 p3 = G4ThreeVector(rad1*cosphi2,rad1*sinphi2,zVal); 783 return GetPointOnPlane(p0,p1,p2,p3); 784 } 785 else 786 { 787 for (j=0; j<numPlanes-1; j++) 788 { 789 if( ((chose >= Achose1) && (chose < Achose2)) || (j == numPlanes-2) ) 790 { 791 Flag = j; break; 792 } 793 Achose1 += numSide*(aVector1[j]+aVector2[j])+2.*aVector3[j]; 794 Achose2 = Achose1 + numSide*(aVector1[j+1]+aVector2[j+1]) 795 + 2.*aVector3[j+1]; 796 } 797 } 798 799 // At this point we have chosen a subsection 800 // between to adjacent plane cuts... 801 802 j = Flag; 755 803 756 chose = RandFlat::shoot(startPhi,startPhi+totalPhi); 757 rang = std::floor((chose-startPhi)/ksi-0.01); 758 if(rang<0)rang=0; 759 rang = std::fabs(rang); 760 sinphi1 = std::sin(startPhi+rang*ksi); 761 sinphi2 = std::sin(startPhi+(rang+1)*ksi); 762 cosphi1 = std::cos(startPhi+rang*ksi); 763 cosphi2 = std::cos(startPhi+(rang+1)*ksi); 764 chose = RandFlat::shoot(0., aTop + aBottom); 765 if(chose>=0. && chose<aTop) 766 { 767 rad1 = original_parameters->Rmin[numPlanes-1]; 768 rad2 = original_parameters->Rmax[numPlanes-1]; 769 zVal = original_parameters->Z_values[numPlanes-1]; 770 } 771 else 772 { 773 rad1 = original_parameters->Rmin[0]; 774 rad2 = original_parameters->Rmax[0]; 775 zVal = original_parameters->Z_values[0]; 776 } 777 p0 = G4ThreeVector(rad1*cosphi1,rad1*sinphi1,zVal); 778 p1 = G4ThreeVector(rad2*cosphi1,rad2*sinphi1,zVal); 779 p2 = G4ThreeVector(rad2*cosphi2,rad2*sinphi2,zVal); 780 p3 = G4ThreeVector(rad1*cosphi2,rad1*sinphi2,zVal); 781 return GetPointOnPlane(p0,p1,p2,p3); 782 } 783 else 784 { 785 for (j=0; j<numPlanes-1; j++) 786 { 787 if( ((chose >= Achose1) && (chose < Achose2)) || (j == numPlanes-2) ) 788 { 789 Flag = j; break; 790 } 791 Achose1 += numSide*(aVector1[j]+aVector2[j])+2.*aVector3[j]; 792 Achose2 = Achose1 + numSide*(aVector1[j+1]+aVector2[j+1]) 793 + 2.*aVector3[j+1]; 794 } 795 } 796 797 // at this point we have chosen a subsection 798 // between to adjacent plane cuts... 799 800 j = Flag; 804 totArea = numSide*(aVector1[j]+aVector2[j])+2.*aVector3[j]; 805 chose = RandFlat::shoot(0.,totArea); 806 807 if( (chose>=0.) && (chose<numSide*aVector1[j]) ) 808 { 809 chose = RandFlat::shoot(startPhi,startPhi+totalPhi); 810 rang = std::floor((chose-startPhi)/ksi-0.01); 811 if(rang<0) { rang=0; } 812 rang = std::fabs(rang); 813 rad1 = original_parameters->Rmax[j]; 814 rad2 = original_parameters->Rmax[j+1]; 815 sinphi1 = std::sin(startPhi+rang*ksi); 816 sinphi2 = std::sin(startPhi+(rang+1)*ksi); 817 cosphi1 = std::cos(startPhi+rang*ksi); 818 cosphi2 = std::cos(startPhi+(rang+1)*ksi); 819 zVal = original_parameters->Z_values[j]; 801 820 802 totArea = numSide*(aVector1[j]+aVector2[j])+2.*aVector3[j]; 803 chose = RandFlat::shoot(0.,totArea); 804 805 if( (chose>=0.) && (chose<numSide*aVector1[j]) ) 806 { 807 chose = RandFlat::shoot(startPhi,startPhi+totalPhi); 808 rang = std::floor((chose-startPhi)/ksi-0.01); 809 if(rang<0)rang=0; 810 rang = std::fabs(rang); 811 rad1 = original_parameters->Rmax[j]; 812 rad2 = original_parameters->Rmax[j+1]; 813 sinphi1 = std::sin(startPhi+rang*ksi); 814 sinphi2 = std::sin(startPhi+(rang+1)*ksi); 815 cosphi1 = std::cos(startPhi+rang*ksi); 816 cosphi2 = std::cos(startPhi+(rang+1)*ksi); 817 zVal = original_parameters->Z_values[j]; 821 p0 = G4ThreeVector(rad1*cosphi1,rad1*sinphi1,zVal); 822 p1 = G4ThreeVector(rad1*cosphi2,rad1*sinphi2,zVal); 823 824 zVal = original_parameters->Z_values[j+1]; 825 826 p2 = G4ThreeVector(rad2*cosphi2,rad2*sinphi2,zVal); 827 p3 = G4ThreeVector(rad2*cosphi1,rad2*sinphi1,zVal); 828 return GetPointOnPlane(p0,p1,p2,p3); 829 } 830 else if ( (chose >= numSide*aVector1[j]) 831 && (chose <= numSide*(aVector1[j]+aVector2[j])) ) 832 { 833 chose = RandFlat::shoot(startPhi,startPhi+totalPhi); 834 rang = std::floor((chose-startPhi)/ksi-0.01); 835 if(rang<0) { rang=0; } 836 rang = std::fabs(rang); 837 rad1 = original_parameters->Rmin[j]; 838 rad2 = original_parameters->Rmin[j+1]; 839 sinphi1 = std::sin(startPhi+rang*ksi); 840 sinphi2 = std::sin(startPhi+(rang+1)*ksi); 841 cosphi1 = std::cos(startPhi+rang*ksi); 842 cosphi2 = std::cos(startPhi+(rang+1)*ksi); 843 zVal = original_parameters->Z_values[j]; 844 845 p0 = G4ThreeVector(rad1*cosphi1,rad1*sinphi1,zVal); 846 p1 = G4ThreeVector(rad1*cosphi2,rad1*sinphi2,zVal); 847 848 zVal = original_parameters->Z_values[j+1]; 818 849 819 p0 = G4ThreeVector(rad1*cosphi1,rad1*sinphi1,zVal); 820 p1 = G4ThreeVector(rad1*cosphi2,rad1*sinphi2,zVal); 821 822 zVal = original_parameters->Z_values[j+1]; 823 824 p2 = G4ThreeVector(rad2*cosphi2,rad2*sinphi2,zVal); 825 p3 = G4ThreeVector(rad2*cosphi1,rad2*sinphi1,zVal); 850 p2 = G4ThreeVector(rad2*cosphi2,rad2*sinphi2,zVal); 851 p3 = G4ThreeVector(rad2*cosphi1,rad2*sinphi1,zVal); 852 return GetPointOnPlane(p0,p1,p2,p3); 853 } 854 855 chose = RandFlat::shoot(0.,2.2); 856 if( (chose>=0.) && (chose < 1.) ) 857 { 858 rang = startPhi; 859 } 860 else 861 { 862 rang = endPhi; 863 } 864 865 cosphi1 = std::cos(rang); rad1 = original_parameters->Rmin[j]; 866 sinphi1 = std::sin(rang); rad2 = original_parameters->Rmax[j]; 867 868 p0 = G4ThreeVector(rad1*cosphi1,rad1*sinphi1, 869 original_parameters->Z_values[j]); 870 p1 = G4ThreeVector(rad2*cosphi1,rad2*sinphi1, 871 original_parameters->Z_values[j]); 872 873 rad1 = original_parameters->Rmax[j+1]; 874 rad2 = original_parameters->Rmin[j+1]; 875 876 p2 = G4ThreeVector(rad1*cosphi1,rad1*sinphi1, 877 original_parameters->Z_values[j+1]); 878 p3 = G4ThreeVector(rad2*cosphi1,rad2*sinphi1, 879 original_parameters->Z_values[j+1]); 826 880 return GetPointOnPlane(p0,p1,p2,p3); 827 881 } 828 else if ( (chose >= numSide*aVector1[j]) 829 && (chose <= numSide*(aVector1[j]+aVector2[j])) ) 830 { 831 832 chose = RandFlat::shoot(startPhi,startPhi+totalPhi); 833 rang = std::floor((chose-startPhi)/ksi-0.01); 834 if(rang<0)rang=0; 835 rang = std::fabs(rang); 836 rad1 = original_parameters->Rmin[j]; 837 rad2 = original_parameters->Rmin[j+1]; 838 sinphi1 = std::sin(startPhi+rang*ksi); 839 sinphi2 = std::sin(startPhi+(rang+1)*ksi); 840 cosphi1 = std::cos(startPhi+rang*ksi); 841 cosphi2 = std::cos(startPhi+(rang+1)*ksi); 842 zVal = original_parameters->Z_values[j]; 843 844 p0 = G4ThreeVector(rad1*cosphi1,rad1*sinphi1,zVal); 845 p1 = G4ThreeVector(rad1*cosphi2,rad1*sinphi2,zVal); 846 847 zVal = original_parameters->Z_values[j+1]; 848 849 p2 = G4ThreeVector(rad2*cosphi2,rad2*sinphi2,zVal); 850 p3 = G4ThreeVector(rad2*cosphi1,rad2*sinphi1,zVal); 851 return GetPointOnPlane(p0,p1,p2,p3); 852 } 853 854 chose = RandFlat::shoot(0.,2.2); 855 if( (chose>=0.) && (chose < 1.) ) 856 { 857 rang = startPhi; 858 } 859 else 860 { 861 rang = endPhi; 862 } 863 864 cosphi1 = std::cos(rang); rad1 = original_parameters->Rmin[j]; 865 sinphi1 = std::sin(rang); rad2 = original_parameters->Rmax[j]; 866 867 p0 = G4ThreeVector(rad1*cosphi1,rad1*sinphi1, 868 original_parameters->Z_values[j]); 869 p1 = G4ThreeVector(rad2*cosphi1,rad2*sinphi1, 870 original_parameters->Z_values[j]); 871 872 rad1 = original_parameters->Rmax[j+1]; 873 rad2 = original_parameters->Rmin[j+1]; 874 875 p2 = G4ThreeVector(rad1*cosphi1,rad1*sinphi1, 876 original_parameters->Z_values[j+1]); 877 p3 = G4ThreeVector(rad2*cosphi1,rad2*sinphi1, 878 original_parameters->Z_values[j+1]); 879 return GetPointOnPlane(p0,p1,p2,p3); 880 } 881 882 else // Generic polyhedra 883 { 884 return GetPointOnSurfaceGeneric(); 885 } 886 } 882 887 883 888 // -
trunk/source/geometry/solids/specific/src/G4PolyhedraSide.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4PolyhedraSide.cc,v 1.1 3 2007/05/31 13:52:48gcosmo Exp $28 // GEANT4 tag $Name: $27 // $Id: G4PolyhedraSide.cc,v 1.15 2008/05/15 11:41:59 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // … … 35 35 // G4PolyhedraSide.cc 36 36 // 37 // Implemen ation of the face representing one segmented side of a Polyhedra37 // Implementation of the face representing one segmented side of a Polyhedra 38 38 // 39 39 // -------------------------------------------------------------------- … … 45 45 #include "G4SolidExtentList.hh" 46 46 #include "G4GeometryTolerance.hh" 47 48 #include "Randomize.hh" 47 49 48 50 // … … 64 66 65 67 kCarTolerance = G4GeometryTolerance::GetInstance()->GetSurfaceTolerance(); 66 68 fSurfaceArea=0.; 67 69 // 68 70 // Record values … … 359 361 360 362 kCarTolerance = source.kCarTolerance; 361 363 fSurfaceArea = source.fSurfaceArea; 364 362 365 cone = new G4IntersectingCone( *source.cone ); 363 366 … … 1140 1143 return std::sqrt( distFaceNorm*distFaceNorm + distOut2 ); 1141 1144 } 1145 1146 1147 // 1148 // Calculation of surface area of a triangle. 1149 // At the same time a random point in the triangle is given 1150 // 1151 G4double G4PolyhedraSide::SurfaceTriangle( G4ThreeVector p1, 1152 G4ThreeVector p2, 1153 G4ThreeVector p3, 1154 G4ThreeVector *p4 ) 1155 { 1156 G4ThreeVector v, w; 1157 1158 v = p3 - p1; 1159 w = p1 - p2; 1160 G4double lambda1 = G4UniformRand(); 1161 G4double lambda2 = lambda1*G4UniformRand(); 1162 1163 *p4=p2 + lambda1*w + lambda2*v; 1164 return 0.5*(v.cross(w)).mag(); 1165 } 1166 1167 1168 // 1169 // GetPointOnPlane 1170 // 1171 // Auxiliary method for GetPointOnSurface() 1172 // 1173 G4ThreeVector 1174 G4PolyhedraSide::GetPointOnPlane( G4ThreeVector p0, G4ThreeVector p1, 1175 G4ThreeVector p2, G4ThreeVector p3, 1176 G4double *Area ) 1177 { 1178 G4double chose,aOne,aTwo; 1179 G4ThreeVector point1,point2; 1180 aOne = SurfaceTriangle(p0,p1,p2,&point1); 1181 aTwo = SurfaceTriangle(p2,p3,p0,&point2); 1182 *Area= aOne+aTwo; 1183 1184 chose = G4UniformRand()*(aOne+aTwo); 1185 if( (chose>=0.) && (chose < aOne) ) 1186 { 1187 return (point1); 1188 } 1189 return (point2); 1190 } 1191 1192 1193 // 1194 // SurfaceArea() 1195 // 1196 G4double G4PolyhedraSide::SurfaceArea() 1197 { 1198 if( fSurfaceArea==0. ) 1199 { 1200 // Define the variables 1201 // 1202 G4double area,areas; 1203 G4ThreeVector point1; 1204 G4ThreeVector v1,v2,v3,v4; 1205 G4PolyhedraSideVec *vec = vecs; 1206 areas=0.; 1207 1208 // Do a loop on all SideEdge 1209 // 1210 do 1211 { 1212 // Define 4points for a Plane or Triangle 1213 // 1214 G4ThreeVector v1=vec->edges[0]->corner[0]; 1215 G4ThreeVector v2=vec->edges[0]->corner[1]; 1216 G4ThreeVector v3=vec->edges[1]->corner[1]; 1217 G4ThreeVector v4=vec->edges[1]->corner[0]; 1218 point1=GetPointOnPlane(v1,v2,v3,v4,&area); 1219 areas+=area; 1220 } while( ++vec < vecs + numSide); 1221 1222 fSurfaceArea=areas; 1223 } 1224 return fSurfaceArea; 1225 } 1226 1227 1228 // 1229 // GetPointOnFace() 1230 // 1231 G4ThreeVector G4PolyhedraSide::GetPointOnFace() 1232 { 1233 // Define the variables 1234 // 1235 std::vector<G4double>areas; 1236 std::vector<G4ThreeVector>points; 1237 G4double area=0; 1238 G4double result1; 1239 G4ThreeVector point1; 1240 G4ThreeVector v1,v2,v3,v4; 1241 G4PolyhedraSideVec *vec = vecs; 1242 1243 // Do a loop on all SideEdge 1244 // 1245 do 1246 { 1247 // Define 4points for a Plane or Triangle 1248 // 1249 G4ThreeVector v1=vec->edges[0]->corner[0]; 1250 G4ThreeVector v2=vec->edges[0]->corner[1]; 1251 G4ThreeVector v3=vec->edges[1]->corner[1]; 1252 G4ThreeVector v4=vec->edges[1]->corner[0]; 1253 point1=GetPointOnPlane(v1,v2,v3,v4,&result1); 1254 points.push_back(point1); 1255 areas.push_back(result1); 1256 area+=result1; 1257 } while( ++vec < vecs+numSide ); 1258 1259 // Choose randomly one of the surfaces and point on it 1260 // 1261 G4double chose = area*G4UniformRand(); 1262 G4double Achose1,Achose2; 1263 Achose1=0;Achose2=0.; 1264 G4int i=0; 1265 do 1266 { 1267 Achose2+=areas[i]; 1268 if(chose>=Achose1 && chose<Achose2) 1269 { 1270 point1=points[i] ; break; 1271 } 1272 i++; Achose1=Achose2; 1273 } while( i<numSide ); 1274 1275 return point1; 1276 } -
trunk/source/geometry/solids/specific/src/G4QuadrangularFacet.cc
r831 r850 26 26 // 27 27 // $Id: G4QuadrangularFacet.cc,v 1.6 2007/08/23 14:49:23 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -
trunk/source/geometry/solids/specific/src/G4ReduciblePolygon.cc
r831 r850 26 26 // 27 27 // $Id: G4ReduciblePolygon.cc,v 1.11 2006/06/29 18:48:53 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/src/G4SolidExtentList.cc
r831 r850 26 26 // 27 27 // $Id: G4SolidExtentList.cc,v 1.5 2007/05/11 13:54:29 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/src/G4TessellatedGeometryAlgorithms.cc
r831 r850 25 25 // 26 26 // $Id: G4TessellatedGeometryAlgorithms.cc,v 1.5 2007/12/12 16:51:12 gcosmo Exp $ 27 // GEANT4 tag $Name: $27 // GEANT4 tag $Name: HEAD $ 28 28 // 29 29 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -
trunk/source/geometry/solids/specific/src/G4TessellatedSolid.cc
r831 r850 25 25 // ******************************************************************** 26 26 // 27 // $Id: G4TessellatedSolid.cc,v 1.1 4.2.1 2008/04/23 08:10:24gcosmo Exp $28 // GEANT4 tag $Name: geant4-09-01-patch-02$27 // $Id: G4TessellatedSolid.cc,v 1.18 2008/03/13 11:58:28 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -
trunk/source/geometry/solids/specific/src/G4Tet.cc
r831 r850 29 29 // 30 30 // $Id: G4Tet.cc,v 1.11 2006/11/13 08:58:03 gcosmo Exp $ 31 // GEANT4 tag $Name: $31 // GEANT4 tag $Name: HEAD $ 32 32 // 33 33 // class G4Tet -
trunk/source/geometry/solids/specific/src/G4TriangularFacet.cc
r831 r850 26 26 // 27 27 // $Id: G4TriangularFacet.cc,v 1.10 2007/12/10 16:30:35 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -
trunk/source/geometry/solids/specific/src/G4TwistBoxSide.cc
r831 r850 26 26 // 27 27 // $Id: G4TwistBoxSide.cc,v 1.6 2007/05/23 09:31:02 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/src/G4TwistTrapAlphaSide.cc
r831 r850 26 26 // 27 27 // $Id: G4TwistTrapAlphaSide.cc,v 1.8 2007/05/23 13:26:06 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/src/G4TwistTrapFlatSide.cc
r831 r850 26 26 // 27 27 // $Id: G4TwistTrapFlatSide.cc,v 1.6 2007/05/23 09:31:02 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/src/G4TwistTrapParallelSide.cc
r831 r850 26 26 // 27 27 // $Id: G4TwistTrapParallelSide.cc,v 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/src/G4TwistTubsFlatSide.cc
r831 r850 26 26 // 27 27 // $Id: G4TwistTubsFlatSide.cc,v 1.7 2007/05/23 09:31:02 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/src/G4TwistTubsHypeSide.cc
r831 r850 26 26 // 27 27 // $Id: G4TwistTubsHypeSide.cc,v 1.6 2007/05/18 07:39:56 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/src/G4TwistTubsSide.cc
r831 r850 26 26 // 27 27 // $Id: G4TwistTubsSide.cc,v 1.5 2006/06/29 18:49:18 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/src/G4TwistedBox.cc
r831 r850 26 26 // 27 27 // $Id: G4TwistedBox.cc,v 1.12 2006/06/29 18:49:20 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/src/G4TwistedTrap.cc
r831 r850 26 26 // 27 27 // $Id: G4TwistedTrap.cc,v 1.14 2006/06/29 18:49:23 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/src/G4TwistedTrd.cc
r831 r850 26 26 // 27 27 // $Id: G4TwistedTrd.cc,v 1.7 2006/06/29 18:49:25 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/src/G4TwistedTubs.cc
r831 r850 26 26 // 27 27 // $Id: G4TwistedTubs.cc,v 1.24 2007/05/18 07:39:56 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/src/G4VCSGfaceted.cc
r831 r850 30 30 // and all its terms. 31 31 // 32 // $Id: G4VCSGfaceted.cc,v 1.2 0 2006/10/20 14:21:36gcosmo Exp $33 // GEANT4 tag $Name: $32 // $Id: G4VCSGfaceted.cc,v 1.25 2008/05/22 10:22:52 gcosmo Exp $ 33 // GEANT4 tag $Name: HEAD $ 34 34 // 35 35 // … … 51 51 #include "G4VoxelLimits.hh" 52 52 #include "G4AffineTransform.hh" 53 54 #include "Randomize.hh" 53 55 54 56 #include "G4Polyhedron.hh" … … 105 107 const G4VCSGfaceted &G4VCSGfaceted::operator=( const G4VCSGfaceted &source ) 106 108 { 107 if (&source == this) return *this;109 if (&source == this) { return *this; } 108 110 109 111 DeleteStuff(); … … 122 124 { 123 125 numFace = source.numFace; 124 if (numFace == 0) return;// odd, but permissable?126 if (numFace == 0) { return; } // odd, but permissable? 125 127 126 128 faces = new G4VCSGface*[numFace]; … … 128 130 G4VCSGface **face = faces, 129 131 **sourceFace = source.faces; 130 do { 132 do 133 { 131 134 *face = (*sourceFace)->Clone(); 132 135 } while( ++sourceFace, ++face < faces+numFace ); … … 146 149 { 147 150 G4VCSGface **face = faces; 148 do { 151 do 152 { 149 153 delete *face; 150 154 } while( ++face < faces + numFace ); … … 170 174 // 171 175 G4VCSGface **face = faces; 172 do { 176 do 177 { 173 178 (*face)->CalculateExtent( axis, voxelLimit, transform, extentList ); 174 179 } while( ++face < faces + numFace ); … … 194 199 G4VCSGface **face = faces; 195 200 G4double best = kInfinity; 196 do { 201 do 202 { 197 203 G4double distance; 198 204 EInside result = (*face)->Inside( p, kCarTolerance/2, &distance ); 199 if (result == kSurface) return kSurface;205 if (result == kSurface) { return kSurface; } 200 206 if (distance < best) 201 207 { … … 217 223 G4VCSGface **face = faces; 218 224 G4double best = kInfinity; 219 do { 225 do 226 { 220 227 G4double distance; 221 228 G4ThreeVector normal = (*face)->Normal( p, &distance ); … … 241 248 G4VCSGface *bestFace=0; 242 249 G4VCSGface **face = faces; 243 do { 250 do 251 { 244 252 G4double faceDistance, 245 253 faceDistFromSurface; … … 258 266 distFromSurface = faceDistFromSurface; 259 267 bestFace = *face; 260 if (distFromSurface <= 0) return 0;268 if (distFromSurface <= 0) { return 0; } 261 269 } 262 270 } … … 265 273 if (distance < kInfinity && distFromSurface<kCarTolerance/2) 266 274 { 267 if (bestFace->Distance(p,false) < kCarTolerance/2) distance = 0;275 if (bestFace->Distance(p,false) < kCarTolerance/2) { distance = 0; } 268 276 } 269 277 … … 297 305 298 306 G4VCSGface **face = faces; 299 do { 307 do 308 { 300 309 G4double faceDistance, 301 310 faceDistFromSurface; … … 309 318 // Intersecting face 310 319 // 311 if ( (distance < kInfinity) || (!faceAllBehind) ) allBehind = false;320 if ( (distance < kInfinity) || (!faceAllBehind) ) { allBehind = false; } 312 321 if (faceDistance < distance) 313 322 { … … 316 325 normal = faceNormal; 317 326 bestFace = *face; 318 if (distFromSurface <= 0) break;327 if (distFromSurface <= 0) { break; } 319 328 } 320 329 } … … 324 333 { 325 334 if (distFromSurface <= 0) 335 { 326 336 distance = 0; 337 } 327 338 else if (distFromSurface<kCarTolerance/2) 328 339 { 329 if (bestFace->Distance(p,true) < kCarTolerance/2) distance = 0;340 if (bestFace->Distance(p,true) < kCarTolerance/2) { distance = 0; } 330 341 } 331 342 … … 338 349 else 339 350 { 340 if (Inside(p) == kSurface) distance = 0;341 if (calcNorm) *validNorm = false;351 if (Inside(p) == kSurface) { distance = 0; } 352 if (calcNorm) { *validNorm = false; } 342 353 } 343 354 … … 365 376 G4VCSGface **face = faces; 366 377 G4double best = kInfinity; 367 do { 378 do 379 { 368 380 G4double distance = (*face)->Distance( p, outgoing ); 369 if (distance < best) best = distance;381 if (distance < best) { best = distance; } 370 382 } while( ++face < faces + numFace ); 371 383 … … 400 412 401 413 G4VCSGface **face = faces; 402 do { 414 do 415 { 403 416 const G4ThreeVector **axis = axes+5 ; 404 417 G4double *answer = answers+5; 405 do { 418 do 419 { 406 420 G4double testFace = (*face)->Extent( **axis ); 407 if (testFace > *answer) *answer = testFace;421 if (testFace > *answer) { *answer = testFace; } 408 422 } 409 423 while( --axis, --answer >= answers ); … … 412 426 413 427 return G4VisExtent( -answers[0], answers[1], 414 -answers[2], answers[3],415 -answers[4], answers[5] );428 -answers[2], answers[3], 429 -answers[4], answers[5] ); 416 430 } 417 431 … … 524 538 G4double G4VCSGfaceted::GetCubicVolume() 525 539 { 526 if(fCubicVolume != 0.) ;527 else fCubicVolume = EstimateCubicVolume(fStatistics,fCubVolEpsilon);540 if(fCubicVolume != 0.) {;} 541 else { fCubicVolume = EstimateCubicVolume(fStatistics,fCubVolEpsilon); } 528 542 return fCubicVolume; 529 543 } … … 535 549 G4double G4VCSGfaceted::GetSurfaceArea() 536 550 { 537 if(fSurfaceArea != 0.) ;538 else fSurfaceArea = EstimateCubicVolume(fStatistics,fAreaAccuracy);551 if(fSurfaceArea != 0.) {;} 552 else { fSurfaceArea = EstimateCubicVolume(fStatistics,fAreaAccuracy); } 539 553 return fSurfaceArea; 540 554 } … … 549 563 fpPolyhedron->GetNumberOfRotationStepsAtTimeOfCreation() != 550 564 fpPolyhedron->GetNumberOfRotationSteps()) 551 {552 delete fpPolyhedron;553 fpPolyhedron = CreatePolyhedron();554 }565 { 566 delete fpPolyhedron; 567 fpPolyhedron = CreatePolyhedron(); 568 } 555 569 return fpPolyhedron; 556 570 } 571 572 573 // 574 // GetPointOnSurfaceGeneric proportional to Areas of faces 575 // in case of GenericPolycone or GenericPolyhedra 576 // 577 G4ThreeVector G4VCSGfaceted::GetPointOnSurfaceGeneric( ) const 578 { 579 // Preparing variables 580 // 581 G4ThreeVector answer=G4ThreeVector(0.,0.,0.); 582 G4VCSGface **face = faces; 583 G4double area = 0; 584 G4int i; 585 std::vector<G4double> areas; 586 587 // First step: calculate surface areas 588 // 589 do 590 { 591 G4double result = (*face)->SurfaceArea( ); 592 areas.push_back(result); 593 area=area+result; 594 } while( ++face < faces + numFace ); 595 596 // Second Step: choose randomly one surface 597 // 598 G4VCSGface **face1 = faces; 599 G4double chose = area*G4UniformRand(); 600 G4double Achose1, Achose2; 601 Achose1=0; Achose2=0.; 602 i=0; 603 604 do 605 { 606 Achose2+=areas[i]; 607 if(chose>=Achose1 && chose<Achose2) 608 { 609 G4ThreeVector point; 610 point= (*face1)->GetPointOnFace(); 611 return point; 612 } 613 i++; 614 Achose1=Achose2; 615 } while( ++face1 < faces + numFace ); 616 617 return answer; 618 } -
trunk/source/geometry/solids/specific/src/G4VFacet.cc
r831 r850 26 26 // 27 27 // $Id: G4VFacet.cc,v 1.6 2007/08/23 14:45:03 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -
trunk/source/geometry/solids/specific/src/G4VTwistSurface.cc
r831 r850 26 26 // 27 27 // $Id: G4VTwistSurface.cc,v 1.9 2007/05/31 13:52:48 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/solids/specific/src/G4VTwistedFaceted.cc
r831 r850 25 25 // 26 26 // $Id: G4VTwistedFaceted.cc,v 1.18 2007/05/25 09:42:34 gcosmo Exp $ 27 // GEANT4 tag $Name: $27 // GEANT4 tag $Name: HEAD $ 28 28 // 29 29 // -
trunk/source/geometry/volumes/History
r831 r850 1 $Id: History,v 1.15 1 2008/02/04 09:29:49gcosmo Exp $1 $Id: History,v 1.153 2008/08/19 15:32:14 gcosmo Exp $ 2 2 ------------------------------------------------------------------- 3 3 … … 17 17 * Reverse chronological order (last date on top), please * 18 18 ---------------------------------------------------------- 19 20 Aug 19th, 2008 G.Cosmo - geomvol-V09-01-02 21 - Restored names of methods DumpInfo() to G4LogicalSkinSurface and 22 G4LogicalBorderSurface. 23 24 Jul 16th, 2008 P.Gumplinger - geomvol-V09-01-01 25 - Change the name of the method DumpInfo() to DumpTableInfo() 26 in G4LogicalSkinSurface and G4LogicalBorderSurface. 19 27 20 28 Feb 4th, 2008 I.Hrivnacova - geomvol-V09-01-00 -
trunk/source/geometry/volumes/include/G4AssemblyTriplet.hh
r831 r850 26 26 // 27 27 // $Id: G4AssemblyTriplet.hh,v 1.3 2007/11/16 16:20:25 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/volumes/include/G4AssemblyTriplet.icc
r831 r850 26 26 // 27 27 // $Id: G4AssemblyTriplet.icc,v 1.2 2006/06/29 18:56:49 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/volumes/include/G4AssemblyVolume.hh
r831 r850 26 26 // 27 27 // $Id: G4AssemblyVolume.hh,v 1.7 2006/06/29 18:56:51 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/volumes/include/G4AssemblyVolume.icc
r831 r850 26 26 // 27 27 // $Id: G4AssemblyVolume.icc,v 1.3 2006/06/29 18:56:53 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/volumes/include/G4GRSSolid.hh
r831 r850 26 26 // 27 27 // $Id: G4GRSSolid.hh,v 1.8 2006/06/29 18:56:55 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/volumes/include/G4GRSSolid.icc
r831 r850 26 26 // 27 27 // $Id: G4GRSSolid.icc,v 1.9 2006/06/29 18:56:57 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/volumes/include/G4GRSSolidHandle.hh
r831 r850 26 26 // 27 27 // $Id: G4GRSSolidHandle.hh,v 1.6 2006/06/29 18:56:59 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // Class G4GRSSolidHandle -
trunk/source/geometry/volumes/include/G4GRSVolume.hh
r831 r850 26 26 // 27 27 // $Id: G4GRSVolume.hh,v 1.8 2006/06/29 18:57:01 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/volumes/include/G4GRSVolume.icc
r831 r850 26 26 // 27 27 // $Id: G4GRSVolume.icc,v 1.10 2006/06/29 18:57:03 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/volumes/include/G4GRSVolumeHandle.hh
r831 r850 26 26 // 27 27 // $Id: G4GRSVolumeHandle.hh,v 1.6 2006/06/29 18:57:06 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // Class G4GRSVolumeHandle -
trunk/source/geometry/volumes/include/G4LogicalBorderSurface.hh
r831 r850 25 25 // 26 26 // 27 // $Id: G4LogicalBorderSurface.hh,v 1.1 5 2007/10/12 20:05:06 gumExp $28 // GEANT4 tag $Name: $27 // $Id: G4LogicalBorderSurface.hh,v 1.17 2008/08/19 15:31:52 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4LogicalBorderSurface -
trunk/source/geometry/volumes/include/G4LogicalBorderSurface.icc
r831 r850 26 26 // 27 27 // $Id: G4LogicalBorderSurface.icc,v 1.9 2006/06/29 18:57:11 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/volumes/include/G4LogicalSkinSurface.hh
r831 r850 25 25 // 26 26 // 27 // $Id: G4LogicalSkinSurface.hh,v 1.1 5 2007/10/12 20:08:28 gumExp $28 // GEANT4 tag $Name: $27 // $Id: G4LogicalSkinSurface.hh,v 1.17 2008/08/19 15:31:52 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4LogicalSkinSurface -
trunk/source/geometry/volumes/include/G4LogicalSkinSurface.icc
r831 r850 26 26 // 27 27 // $Id: G4LogicalSkinSurface.icc,v 1.9 2006/06/29 18:57:16 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/volumes/include/G4NavigationHistory.hh
r831 r850 26 26 // 27 27 // $Id: G4NavigationHistory.hh,v 1.13 2006/06/29 18:57:18 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4NavigationHistory -
trunk/source/geometry/volumes/include/G4NavigationHistory.icc
r831 r850 26 26 // 27 27 // $Id: G4NavigationHistory.icc,v 1.12 2006/06/29 18:57:20 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/volumes/include/G4NavigationLevel.hh
r831 r850 26 26 // 27 27 // $Id: G4NavigationLevel.hh,v 1.16 2006/06/29 18:57:22 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4NavigationLevel -
trunk/source/geometry/volumes/include/G4NavigationLevel.icc
r831 r850 26 26 // 27 27 // $Id: G4NavigationLevel.icc,v 1.20 2006/06/29 18:57:25 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // 30.09.97 J.Apostolakis Initial version. -
trunk/source/geometry/volumes/include/G4NavigationLevelRep.hh
r831 r850 26 26 // 27 27 // $Id: G4NavigationLevelRep.hh,v 1.9 2006/06/29 18:57:27 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // class G4NavigationLevelRep -
trunk/source/geometry/volumes/include/G4NavigationLevelRep.icc
r831 r850 26 26 // 27 27 // $Id: G4NavigationLevelRep.icc,v 1.14 2006/06/29 18:57:29 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // 1 October 1997 J.Apostolakis Initial version. -
trunk/source/geometry/volumes/include/G4PVParameterised.hh
r831 r850 26 26 // 27 27 // $Id: G4PVParameterised.hh,v 1.8 2007/04/11 07:56:38 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/volumes/include/G4PVPlacement.hh
r831 r850 26 26 // 27 27 // $Id: G4PVPlacement.hh,v 1.8 2007/04/11 07:56:38 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/volumes/include/G4PVReplica.hh
r831 r850 26 26 // 27 27 // $Id: G4PVReplica.hh,v 1.5 2006/06/29 18:57:36 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/volumes/include/G4ReflectionFactory.hh
r831 r850 26 26 // 27 27 // $Id: G4ReflectionFactory.hh,v 1.3 2006/06/29 18:57:39 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/volumes/include/G4TouchableHistory.hh
r831 r850 26 26 // 27 27 // $Id: G4TouchableHistory.hh,v 1.8 2006/06/29 18:57:42 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/volumes/include/G4TouchableHistory.icc
r831 r850 26 26 // 27 27 // $Id: G4TouchableHistory.icc,v 1.10 2006/12/07 14:26:28 japost Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/volumes/include/G4TouchableHistoryHandle.hh
r831 r850 26 26 // 27 27 // $Id: G4TouchableHistoryHandle.hh,v 1.6 2006/06/29 18:57:48 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // Class G4TouchableHistoryHandle -
trunk/source/geometry/volumes/src/G4AssemblyVolume.cc
r831 r850 26 26 // 27 27 // $Id: G4AssemblyVolume.cc,v 1.11 2008/02/03 09:12:50 ivana Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/volumes/src/G4GRSSolid.cc
r831 r850 26 26 // 27 27 // $Id: G4GRSSolid.cc,v 1.8 2006/06/29 18:57:53 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/volumes/src/G4GRSVolume.cc
r831 r850 26 26 // 27 27 // $Id: G4GRSVolume.cc,v 1.8 2006/06/29 18:57:55 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/volumes/src/G4LogicalBorderSurface.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4LogicalBorderSurface.cc,v 1.1 5 2007/10/12 20:15:23 gumExp $28 // GEANT4 tag $Name: $27 // $Id: G4LogicalBorderSurface.cc,v 1.17 2008/08/19 15:31:52 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/volumes/src/G4LogicalSkinSurface.cc
r831 r850 25 25 // 26 26 // 27 // $Id: G4LogicalSkinSurface.cc,v 1.1 4 2007/10/12 20:17:27 gumExp $28 // GEANT4 tag $Name: $27 // $Id: G4LogicalSkinSurface.cc,v 1.16 2008/08/19 15:31:52 gcosmo Exp $ 28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -------------------------------------------------------------------- -
trunk/source/geometry/volumes/src/G4NavigationHistory.cc
r831 r850 26 26 // 27 27 // $Id: G4NavigationHistory.cc,v 1.10 2006/06/29 18:58:02 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/volumes/src/G4NavigationLevel.cc
r831 r850 26 26 // 27 27 // $Id: G4NavigationLevel.cc,v 1.4 2006/06/29 18:58:04 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // 30.09.97 J.Apostolakis Initial version. -
trunk/source/geometry/volumes/src/G4NavigationLevelRep.cc
r831 r850 26 26 // 27 27 // $Id: G4NavigationLevelRep.cc,v 1.2 2006/06/29 18:58:06 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // 1 October 1997 J.Apostolakis Initial version. -
trunk/source/geometry/volumes/src/G4PVParameterised.cc
r831 r850 26 26 // 27 27 // $Id: G4PVParameterised.cc,v 1.10 2007/04/11 07:56:38 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/volumes/src/G4PVPlacement.cc
r831 r850 26 26 // 27 27 // $Id: G4PVPlacement.cc,v 1.16 2007/04/11 07:56:38 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/volumes/src/G4PVReplica.cc
r831 r850 26 26 // 27 27 // $Id: G4PVReplica.cc,v 1.7 2006/06/29 18:58:14 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/volumes/src/G4ReflectionFactory.cc
r831 r850 26 26 // 27 27 // $Id: G4ReflectionFactory.cc,v 1.6 2007/05/11 13:58:35 gcosmo Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 // -
trunk/source/geometry/volumes/src/G4TouchableHistory.cc
r831 r850 26 26 // 27 27 // $Id: G4TouchableHistory.cc,v 1.12 2006/06/29 18:58:20 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: HEAD $ 29 29 // 30 30 //
Note:
See TracChangeset
for help on using the changeset viewer.
