Belle II Software development
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
18namespace 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...
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.