VGM
Version 5.5
Toggle main menu visibility
Loading...
Searching...
No Matches
packages
RootGM
source
solids
EllipticalTube.cxx
Go to the documentation of this file.
1
// $Id$
2
3
// -----------------------------------------------------------------------
4
// The RootGM 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 Root elliptical tube solid.
16
//
17
// Author: Ivana Hrivnacova; IPN Orsay
18
19
#include "
RootGM/solids/EllipticalTube.h
"
20
#include "
RootGM/common/Units.h
"
21
#include "
RootGM/solids/SolidMap.h
"
22
23
#include "TGeoEltu.h"
24
25
//_____________________________________________________________________________
26
RootGM::EllipticalTube::EllipticalTube
(
27
const
std::string& name,
double
dx,
double
dy,
double
hz)
28
:
VGM
::ISolid(),
29
VGM
::IEllipticalTube(),
30
BaseVGM
::
VEllipticalTube
(),
31
fEllipticalTube(new TGeoEltu(name.data(), dx /
RootGM
::
Units
::Length(),
32
dy /
RootGM
::
Units
::Length(), hz /
RootGM
::
Units
::Length()))
33
{
38
39
RootGM::SolidMap::Instance
()->
AddSolid
(
this
, fEllipticalTube);
40
}
41
42
//_____________________________________________________________________________
43
RootGM::EllipticalTube::EllipticalTube
(TGeoEltu* eltu)
44
:
VGM
::ISolid(),
45
VGM
::IEllipticalTube(),
46
BaseVGM
::
VEllipticalTube
(),
47
fEllipticalTube(eltu)
48
{
50
51
RootGM::SolidMap::Instance
()->
AddSolid
(
this
, fEllipticalTube);
52
}
53
54
//_____________________________________________________________________________
55
RootGM::EllipticalTube::EllipticalTube
()
56
:
VGM
::ISolid(),
VGM
::IEllipticalTube(),
BaseVGM
::
VEllipticalTube
()
57
{
59
}
60
61
//_____________________________________________________________________________
62
RootGM::EllipticalTube::EllipticalTube
(
const
EllipticalTube
& rhs)
63
:
VGM
::ISolid(rhs),
VGM
::IEllipticalTube(rhs),
BaseVGM
::
VEllipticalTube
(rhs)
64
{
66
}
67
68
//_____________________________________________________________________________
69
RootGM::EllipticalTube::~EllipticalTube
()
70
{
71
//
72
}
73
74
//_____________________________________________________________________________
75
std::string
RootGM::EllipticalTube::Name
()
const
76
{
77
return
fEllipticalTube->GetName();
78
}
79
80
//_____________________________________________________________________________
81
double
RootGM::EllipticalTube::Dx
()
const
82
{
83
return
fEllipticalTube->GetA() *
RootGM::Units::Length
();
84
}
85
86
//_____________________________________________________________________________
87
double
RootGM::EllipticalTube::Dy
()
const
88
{
89
return
fEllipticalTube->GetB() *
RootGM::Units::Length
();
90
}
91
92
//_____________________________________________________________________________
93
double
RootGM::EllipticalTube::ZHalfLength
()
const
94
{
95
return
fEllipticalTube->GetDz() *
RootGM::Units::Length
();
96
}
Units.h
EllipticalTube.h
SolidMap.h
BaseVGM::VEllipticalTube::VEllipticalTube
VEllipticalTube()
Definition
VEllipticalTube.cxx:30
RootGM::EllipticalTube::~EllipticalTube
virtual ~EllipticalTube()
Definition
EllipticalTube.cxx:69
RootGM::EllipticalTube::Dx
virtual double Dx() const
Return the semi-axis of the ellipse along x in mm.
Definition
EllipticalTube.cxx:81
RootGM::EllipticalTube::Dy
virtual double Dy() const
Return the semi-axis of the ellipse along y in mm.
Definition
EllipticalTube.cxx:87
RootGM::EllipticalTube::EllipticalTube
EllipticalTube()
Definition
EllipticalTube.cxx:55
RootGM::EllipticalTube::Name
virtual std::string Name() const
Return the name of this solid.
Definition
EllipticalTube.cxx:75
RootGM::EllipticalTube::ZHalfLength
virtual double ZHalfLength() const
Return the half-length along the z axis in mm.
Definition
EllipticalTube.cxx:93
RootGM::EllipticalTube::EllipticalTube
EllipticalTube(const std::string &name, double dx, double dy, double hz)
Definition
EllipticalTube.cxx:26
RootGM::SolidMap::AddSolid
void AddSolid(VGM::ISolid *, TGeoShape *)
Definition
SolidMap.cxx:59
RootGM::SolidMap::Instance
static SolidMap * Instance()
Definition
SolidMap.cxx:28
RootGM::Units
Conversion from Root physical units to VGM units.
Definition
Units.h:28
RootGM::Units::Length
static double Length()
Return Root length unit in VGM units.
Definition
Units.h:84
BaseVGM
BaseVGM utilities.
Definition
utilities.h:23
RootGM
VGM implementation for Root.
Definition
axis.h:28
VGM
VGM interfaces.
Definition
VMedium.h:28
Generated on
for VGM by
1.17.0