Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4ErrorCylSurfaceTarget.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26// G4ErrorCylSurfaceTarget
27//
28// Class Description:
29//
30// Limits step when track reaches a cylindrical surface.
31
32// Created: P.Arce, September 2004
33// --------------------------------------------------------------------
34#ifndef G4ERRORCYLSURFACETARGET_HH
35#define G4ERRORCYLSURFACETARGET_HH 1
36
37#include "globals.hh"
39#include "G4ThreeVector.hh"
40#include "G4RotationMatrix.hh"
41#include "G4AffineTransform.hh"
42#include "G4Plane3D.hh"
43
45{
46 public:
47
48 G4ErrorCylSurfaceTarget( const G4double& radius,
49 const G4ThreeVector& trans=G4ThreeVector(),
50 const G4RotationMatrix& rotm=G4RotationMatrix() );
51 // Constructs cylindrical surface by radius, translation and rotation
52
53 G4ErrorCylSurfaceTarget( const G4double& radius,
54 const G4AffineTransform& trans );
55 // Constructs cylindrical surface by radius and affine transformation
56
58
59 virtual G4ThreeVector IntersectLocal( const G4ThreeVector& point,
60 const G4ThreeVector& direc ) const;
61 // Intersects the cylindrical surface with the line in local (cylinder)
62 // coordinates, given by point and direction
63
64 virtual G4double GetDistanceFromPoint( const G4ThreeVector& point,
65 const G4ThreeVector& direc ) const;
66 // Distance from a point to the cylindrical surface in a given direction
67
68 virtual G4double GetDistanceFromPoint( const G4ThreeVector& point ) const;
69 // Minimal distance from a point to the cylindrical surface in any
70 // direction
71
72 virtual G4Plane3D GetTangentPlane( const G4ThreeVector& point ) const;
73 // Get plane tangent to cylindrical surface at a given point
74
75 virtual void Dump( const G4String& msg ) const;
76 // Dump cylindrical surface parameter
77
78 private:
79
80 G4double fradius;
81 G4AffineTransform ftransform;
82};
83
84#endif
CLHEP::HepRotation G4RotationMatrix
CLHEP::Hep3Vector G4ThreeVector
double G4double
Definition: G4Types.hh:83
virtual G4Plane3D GetTangentPlane(const G4ThreeVector &point) const
~G4ErrorCylSurfaceTarget()=default
virtual G4ThreeVector IntersectLocal(const G4ThreeVector &point, const G4ThreeVector &direc) const
virtual void Dump(const G4String &msg) const
virtual G4double GetDistanceFromPoint(const G4ThreeVector &point, const G4ThreeVector &direc) const