VGM
Version 5.5
Toggle main menu visibility
Loading...
Searching...
No Matches
packages
Geant4GM
source
solids
Torus.cxx
Go to the documentation of this file.
1
// $Id$
2
3
// -----------------------------------------------------------------------
4
// The Geant4GM package of the Virtual Geometry Model
5
// Copyright (C) 2007, Ivana Hrivnacova
6
// All rights reserved.
7
//
8
// For the licensing terms see vgm/LICENSE.
9
// Contact: ivana@ipno.in2p3.fr
10
// -----------------------------------------------------------------------
11
12
//
13
// Class Torus
14
// ---------------
15
// VGM implementation for Geant4 torus solid.
16
//
17
// Author: Ivana Hrivnacova; IPN Orsay
18
19
#include "
ClhepVGM/Units.h
"
20
21
#include "
Geant4GM/solids/SolidMap.h
"
22
#include "
Geant4GM/solids/Torus.h
"
23
24
#include "G4ReflectedSolid.hh"
25
#include "G4Torus.hh"
26
27
//_____________________________________________________________________________
28
Geant4GM::Torus::Torus
(
const
std::string& name,
double
rin,
double
rout,
29
double
rax,
double
sphi,
double
dphi)
30
:
VGM
::ISolid(),
31
VGM
::ITorus(),
32
BaseVGM
::
VTorus
(),
33
fTorus(new G4Torus(name, rin /
ClhepVGM
::Units::Length(),
34
rout /
ClhepVGM
::Units::Length(), rax /
ClhepVGM
::Units::Length(),
35
sphi /
ClhepVGM
::Units::Angle(), dphi /
ClhepVGM
::Units::Angle()))
36
{
44
45
Geant4GM::SolidMap::Instance
()->
AddSolid
(
this
, fTorus);
46
}
47
48
//_____________________________________________________________________________
49
Geant4GM::Torus::Torus
(G4Torus* torus, G4ReflectedSolid* reflTorus)
50
:
VGM
::ISolid(),
VGM
::ITorus(),
BaseVGM
::
VTorus
(), fTorus(torus)
51
{
53
54
if
(reflTorus)
55
Geant4GM::SolidMap::Instance
()->AddSolid(
this
, reflTorus);
56
else
57
Geant4GM::SolidMap::Instance
()->
AddSolid
(
this
, torus);
58
}
59
60
//_____________________________________________________________________________
61
Geant4GM::Torus::Torus
() :
VGM
::ISolid(),
VGM
::ITorus(),
BaseVGM
::
VTorus
()
62
{
64
}
65
66
//_____________________________________________________________________________
67
Geant4GM::Torus::Torus
(
const
Torus
& rhs)
68
:
VGM
::ISolid(rhs),
VGM
::ITorus(rhs),
BaseVGM
::
VTorus
(rhs)
69
{
71
}
72
73
//_____________________________________________________________________________
74
Geant4GM::Torus::~Torus
()
75
{
76
//
77
}
78
79
//_____________________________________________________________________________
80
std::string
Geant4GM::Torus::Name
()
const
{
return
fTorus->GetName(); }
81
82
//_____________________________________________________________________________
83
double
Geant4GM::Torus::InnerRadius
()
const
84
{
85
return
fTorus->GetRmin() *
ClhepVGM::Units::Length
();
86
}
87
88
//_____________________________________________________________________________
89
double
Geant4GM::Torus::OuterRadius
()
const
90
{
91
return
fTorus->GetRmax() *
ClhepVGM::Units::Length
();
92
}
93
94
//_____________________________________________________________________________
95
double
Geant4GM::Torus::AxialRadius
()
const
96
{
97
return
fTorus->GetRtor() *
ClhepVGM::Units::Length
();
98
}
99
100
//_____________________________________________________________________________
101
double
Geant4GM::Torus::StartPhi
()
const
102
{
103
return
fTorus->GetSPhi() *
ClhepVGM::Units::Angle
();
104
}
105
106
//_____________________________________________________________________________
107
double
Geant4GM::Torus::DeltaPhi
()
const
108
{
109
return
fTorus->GetDPhi() *
ClhepVGM::Units::Angle
();
110
}
Units.h
SolidMap.h
Torus.h
BaseVGM::VTorus::VTorus
VTorus()
Definition
VTorus.cxx:30
ClhepVGM::Units::Length
static double Length()
Return CLHEP default length unit in VGM units.
Definition
Units.cxx:83
ClhepVGM::Units::Angle
static double Angle()
Return CLHEP default angle unit in VGM units.
Definition
Units.cxx:92
Geant4GM::SolidMap::Instance
static SolidMap * Instance()
Definition
SolidMap.cxx:28
Geant4GM::SolidMap::AddSolid
void AddSolid(VGM::ISolid *, G4VSolid *)
Definition
SolidMap.cxx:59
Geant4GM::Torus::Torus
Torus()
Definition
Torus.cxx:61
Geant4GM::Torus::Name
virtual std::string Name() const
Return the name of this solid.
Definition
Torus.cxx:80
Geant4GM::Torus::StartPhi
virtual double StartPhi() const
Return the starting phi angle of the segment in deg (with 0 being the +x axis).
Definition
Torus.cxx:101
Geant4GM::Torus::Torus
Torus(const std::string &name, double rin, double rout, double rax, double sphi, double dphi)
Definition
Torus.cxx:28
Geant4GM::Torus::OuterRadius
virtual double OuterRadius() const
Return the outside radius of the torus in mm.
Definition
Torus.cxx:89
Geant4GM::Torus::~Torus
virtual ~Torus()
Definition
Torus.cxx:74
Geant4GM::Torus::InnerRadius
virtual double InnerRadius() const
Return the inside radius of the torus in mm.
Definition
Torus.cxx:83
Geant4GM::Torus::DeltaPhi
virtual double DeltaPhi() const
Return the opening phi angle of the segment in deg.
Definition
Torus.cxx:107
Geant4GM::Torus::AxialRadius
virtual double AxialRadius() const
Return the axial (swept) radius of the torus in mm.
Definition
Torus.cxx:95
BaseVGM
BaseVGM utilities.
Definition
utilities.h:23
ClhepVGM
ClhepVGM utilities.
Definition
transform.h:29
VGM
VGM interfaces.
Definition
VMedium.h:28
Generated on
for VGM by
1.17.0