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#pragma once
10
11#include <globals.hh>
12#include <G4ErrorSurfaceTarget.hh>
13#include <G4ThreeVector.hh>
14#include <G4Plane3D.hh>
15#include <G4String.hh>
16
17namespace Belle2 {
22
23 namespace Simulation {
24
27 class ExtCylSurfaceTarget : public G4ErrorSurfaceTarget {
28
29 public:
30
33 ExtCylSurfaceTarget(const G4double&, const G4double&, const G4double&);
34
37
40 virtual G4ThreeVector IntersectLocal(const G4ThreeVector& point,
41 const G4ThreeVector& direc) const;
42
44 virtual G4double GetDistanceFromPoint(const G4ThreeVector& point,
45 const G4ThreeVector& direc) const;
46
48 virtual G4double GetDistanceFromPoint(const G4ThreeVector& point) const;
49
51 virtual G4Plane3D GetTangentPlane(const G4ThreeVector& point) const;
52
54 virtual void Dump(const G4String& msg) const;
55
56 private:
57
59 G4double m_radius;
60
62 G4double m_zmin;
63
65 G4double m_zmax;
66
68 G4double m_tolerance;
69
70 };
71
72 } // end of namespace Simulation
73
75} // end of namespace Belle2
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.