Belle II Software  release-08-01-10
ExtCylSurfaceTarget.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 #ifndef EXTCYLSURFACETARGET_H
10 #define EXTCYLSURFACETARGET_H
11 
12 #include <globals.hh>
13 #include <G4ErrorSurfaceTarget.hh>
14 #include <G4ThreeVector.hh>
15 #include <G4Plane3D.hh>
16 #include <G4String.hh>
17 
18 namespace Belle2 {
24  namespace Simulation {
25 
28  class ExtCylSurfaceTarget : public G4ErrorSurfaceTarget {
29 
30  public:
31 
34  ExtCylSurfaceTarget(const G4double&, const G4double&, const G4double&);
35 
38 
41  virtual G4ThreeVector IntersectLocal(const G4ThreeVector& point,
42  const G4ThreeVector& direc) const;
43 
45  virtual G4double GetDistanceFromPoint(const G4ThreeVector& point,
46  const G4ThreeVector& direc) const;
47 
49  virtual G4double GetDistanceFromPoint(const G4ThreeVector& point) const;
50 
52  virtual G4Plane3D GetTangentPlane(const G4ThreeVector& point) const;
53 
55  virtual void Dump(const G4String& msg) const;
56 
57  private:
58 
60  G4double m_radius;
61 
63  G4double m_zmin;
64 
66  G4double m_zmax;
67 
69  G4double m_tolerance;
70 
71  };
72 
73  } // end of namespace Simulation
74 
76 } // end of namespace Belle2
77 
78 #endif // EXTCYLSURFACETARGET_H
Defines a closed cylinder for the geant4e "target", the surface that encloses the volume within which...
G4double m_tolerance
Tolerance for distance between a point and cylinder's curved surface.
virtual G4Plane3D GetTangentPlane(const G4ThreeVector &point) const
Get the plane tangent to the cylinder at a given point.
virtual void Dump(const G4String &msg) const
Dump the cylinder parameters.
virtual G4ThreeVector IntersectLocal(const G4ThreeVector &point, const G4ThreeVector &direc) const
Return the intersection of the cylinder with the line defined in local (cylinder) coordinates by poin...
ExtCylSurfaceTarget(const G4double &, const G4double &, const G4double &)
Construct the closed cylindrical surface No coordinate transformations allowed: cylinder is coaxial w...
G4double m_zmax
Cylinder maximum-z coordinate.
virtual G4double GetDistanceFromPoint(const G4ThreeVector &point, const G4ThreeVector &direc) const
Get the distance from a point to the cylinder along direc.
G4double m_zmin
Cylinder minimum-z coordinate.
Abstract base class for different kinds of events.