Belle II Software  release-05-01-25
ExtCylSurfaceTarget.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Leo Piilonen *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #ifndef EXTCYLSURFACETARGET_H
12 #define EXTCYLSURFACETARGET_H
13 
14 #include <globals.hh>
15 #include <G4ErrorSurfaceTarget.hh>
16 #include <G4ThreeVector.hh>
17 #include <G4Plane3D.hh>
18 #include <G4String.hh>
19 
20 namespace Belle2 {
26  namespace Simulation {
27 
30  class ExtCylSurfaceTarget : public G4ErrorSurfaceTarget {
31 
32  public:
33 
36  ExtCylSurfaceTarget(const G4double&, const G4double&, const G4double&);
37 
40 
43  virtual G4ThreeVector IntersectLocal(const G4ThreeVector& point,
44  const G4ThreeVector& direc) const;
45 
47  virtual G4double GetDistanceFromPoint(const G4ThreeVector& point,
48  const G4ThreeVector& direc) const;
49 
51  virtual G4double GetDistanceFromPoint(const G4ThreeVector& point) const;
52 
54  virtual G4Plane3D GetTangentPlane(const G4ThreeVector& point) const;
55 
57  virtual void Dump(const G4String& msg) const;
58 
59  private:
60 
62  G4double m_radius;
63 
65  G4double m_zmin;
66 
68  G4double m_zmax;
69 
71  G4double m_tolerance;
72 
73  };
74 
75  } // end of namespace Simulation
76 
78 } // end of namespace Belle2
79 
80 #endif // EXTCYLSURFACETARGET_H
Belle2::Simulation::ExtCylSurfaceTarget::m_zmax
G4double m_zmax
Cylinder maximum-z coordinate.
Definition: ExtCylSurfaceTarget.h:76
Belle2::Simulation::ExtCylSurfaceTarget::Dump
virtual void Dump(const G4String &msg) const
Dump the cylinder parameters.
Definition: ExtCylSurfaceTarget.cc:121
Belle2::Simulation::ExtCylSurfaceTarget::ExtCylSurfaceTarget
ExtCylSurfaceTarget(const G4double &, const G4double &, const G4double &)
Construct the closed cylindrical surface No coordinate transformations allowed: cylinder is coaxial w...
Definition: ExtCylSurfaceTarget.cc:21
Belle2::Simulation::ExtCylSurfaceTarget::GetDistanceFromPoint
virtual G4double GetDistanceFromPoint(const G4ThreeVector &point, const G4ThreeVector &direc) const
Get the distance from a point to the cylinder along direc.
Definition: ExtCylSurfaceTarget.cc:38
Belle2::Simulation::ExtCylSurfaceTarget::m_radius
G4double m_radius
Cylinder radius.
Definition: ExtCylSurfaceTarget.h:70
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::Simulation::ExtCylSurfaceTarget::~ExtCylSurfaceTarget
~ExtCylSurfaceTarget()
Destructor.
Definition: ExtCylSurfaceTarget.cc:34
Belle2::Simulation::ExtCylSurfaceTarget::GetTangentPlane
virtual G4Plane3D GetTangentPlane(const G4ThreeVector &point) const
Get the plane tangent to the cylinder at a given point.
Definition: ExtCylSurfaceTarget.cc:107
Belle2::Simulation::ExtCylSurfaceTarget::m_tolerance
G4double m_tolerance
Tolerance for distance between a point and cylinder's curved surface.
Definition: ExtCylSurfaceTarget.h:79
Belle2::Simulation::ExtCylSurfaceTarget::m_zmin
G4double m_zmin
Cylinder minimum-z coordinate.
Definition: ExtCylSurfaceTarget.h:73
Belle2::Simulation::ExtCylSurfaceTarget::IntersectLocal
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...
Definition: ExtCylSurfaceTarget.cc:76