VGM
Version 5.5
Toggle main menu visibility
Loading...
Searching...
No Matches
packages
Geant4GM
source
solids
EllipticalTube.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 EllipticalTube
14
// --------------------
15
// VGM implementation for Geant4 elliptical tube solid.
16
//
17
// Author: Ivana Hrivnacova; IPN Orsay
18
19
#include "
ClhepVGM/Units.h
"
20
21
#include "
Geant4GM/solids/EllipticalTube.h
"
22
#include "
Geant4GM/solids/SolidMap.h
"
23
24
#include "G4EllipticalTube.hh"
25
#include "G4ReflectedSolid.hh"
26
27
#
28
//_____________________________________________________________________________
29
Geant4GM::EllipticalTube::EllipticalTube
(
30
const
std::string& name,
double
dx,
double
dy,
double
hz)
31
:
VGM
::ISolid(),
32
VGM
::IEllipticalTube(),
33
BaseVGM
::
VEllipticalTube
(),
34
fEllipticalTube(new G4EllipticalTube(name, dx /
ClhepVGM
::Units::Length(),
35
dy /
ClhepVGM
::Units::Length(), hz /
ClhepVGM
::Units::Length()))
36
{
41
42
Geant4GM::SolidMap::Instance
()->
AddSolid
(
this
, fEllipticalTube);
43
}
44
45
//_____________________________________________________________________________
46
Geant4GM::EllipticalTube::EllipticalTube
(
47
G4EllipticalTube* eltu, G4ReflectedSolid* reflEltu)
48
:
VGM
::ISolid(),
49
VGM
::IEllipticalTube(),
50
BaseVGM
::
VEllipticalTube
(),
51
fEllipticalTube(eltu)
52
{
54
55
if
(reflEltu)
56
Geant4GM::SolidMap::Instance
()->AddSolid(
this
, reflEltu);
57
else
58
Geant4GM::SolidMap::Instance
()->
AddSolid
(
this
, eltu);
59
}
60
61
//_____________________________________________________________________________
62
Geant4GM::EllipticalTube::EllipticalTube
()
63
:
VGM
::ISolid(),
VGM
::IEllipticalTube(),
BaseVGM
::
VEllipticalTube
()
64
{
66
}
67
68
//_____________________________________________________________________________
69
Geant4GM::EllipticalTube::EllipticalTube
(
const
EllipticalTube
& rhs)
70
:
VGM
::ISolid(rhs),
VGM
::IEllipticalTube(rhs),
BaseVGM
::
VEllipticalTube
(rhs)
71
{
73
}
74
75
//_____________________________________________________________________________
76
Geant4GM::EllipticalTube::~EllipticalTube
()
77
{
78
//
79
}
80
81
//_____________________________________________________________________________
82
std::string
Geant4GM::EllipticalTube::Name
()
const
83
{
84
return
fEllipticalTube->GetName();
85
}
86
87
//_____________________________________________________________________________
88
double
Geant4GM::EllipticalTube::Dx
()
const
89
{
90
return
fEllipticalTube->GetDx() *
ClhepVGM::Units::Length
();
91
}
92
93
//_____________________________________________________________________________
94
double
Geant4GM::EllipticalTube::Dy
()
const
95
{
96
return
fEllipticalTube->GetDy() *
ClhepVGM::Units::Length
();
97
}
98
99
//_____________________________________________________________________________
100
double
Geant4GM::EllipticalTube::ZHalfLength
()
const
101
{
102
return
fEllipticalTube->GetDz() *
ClhepVGM::Units::Length
();
103
}
Units.h
EllipticalTube.h
SolidMap.h
BaseVGM::VEllipticalTube::VEllipticalTube
VEllipticalTube()
Definition
VEllipticalTube.cxx:30
ClhepVGM::Units::Length
static double Length()
Return CLHEP default length unit in VGM units.
Definition
Units.cxx:83
Geant4GM::EllipticalTube::Dy
virtual double Dy() const
Return the semi-axis of the ellipse along y in mm.
Definition
EllipticalTube.cxx:94
Geant4GM::EllipticalTube::EllipticalTube
EllipticalTube(const std::string &name, double dx, double dy, double hz)
Definition
EllipticalTube.cxx:29
Geant4GM::EllipticalTube::ZHalfLength
virtual double ZHalfLength() const
Return the half-length along the z axis in mm.
Definition
EllipticalTube.cxx:100
Geant4GM::EllipticalTube::EllipticalTube
EllipticalTube()
Definition
EllipticalTube.cxx:62
Geant4GM::EllipticalTube::~EllipticalTube
virtual ~EllipticalTube()
Definition
EllipticalTube.cxx:76
Geant4GM::EllipticalTube::Name
virtual std::string Name() const
Return the name of this solid.
Definition
EllipticalTube.cxx:82
Geant4GM::EllipticalTube::Dx
virtual double Dx() const
Return the semi-axis of the ellipse along x in mm.
Definition
EllipticalTube.cxx:88
Geant4GM::SolidMap::Instance
static SolidMap * Instance()
Definition
SolidMap.cxx:28
Geant4GM::SolidMap::AddSolid
void AddSolid(VGM::ISolid *, G4VSolid *)
Definition
SolidMap.cxx:59
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