ROOT
6.14/05
Reference Guide
graf3d
g3d
src
TTRAP.cxx
Go to the documentation of this file.
1
// @(#)root/g3d:$Id$
2
// Author: Nenad Buncic 19/09/95
3
4
/*************************************************************************
5
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6
* All rights reserved. *
7
* *
8
* For the licensing terms see $ROOTSYS/LICENSE. *
9
* For the list of contributors see $ROOTSYS/README/CREDITS. *
10
*************************************************************************/
11
12
#include "
TTRAP.h
"
13
#include "
TNode.h
"
14
#include "
TMath.h
"
15
16
ClassImp
(
TTRAP
);
17
18
/** \class TTRAP
19
\ingroup g3d
20
A general trapezoid.
21
22
\image html g3d_trap.png
23
24
The faces perpendicular to z are trapezia and
25
their centres are not necessarily on a line parallel to the z axis.
26
This shape has 14 parameters.
27
28
- name: name of the shape
29
- title: shape's title
30
- material: (see TMaterial)
31
- dz: half-length along the z axis
32
- theta: polar angle of the line joining the centre of the face
33
at -DZ to the centre of the one at +DZ
34
- phi: azimuthal angle of the line joining the centre of the face
35
at -DZ to the centre of the one at +DZ
36
- h1: half-length along y of the face at -DZ
37
- bl1: half-length along x of the side at -H1 in y of the face
38
at -DZ in z
39
- tl1: half-length along x of the side at +H1 in y of the face
40
at -DZ in z
41
- alpha1: angle with respect to the y axis from the centre of the
42
side at -H1 in y to the centre of the side at +H1 in y
43
of the face at -DZ in z
44
- h2: half-length along y of the face at +DZ
45
- bl2: half-length along x of the side at -H2 in y of the
46
face at +DZ in z
47
- tl2: half-length along x of the side at +H2 in y of the face
48
at +DZ in z
49
- alpha2: angle with respect to the y axis from the centre of the side
50
at -H2 in y to the centre of the side at +H2 in y of the
51
face at +DZ in z
52
*/
53
54
////////////////////////////////////////////////////////////////////////////////
55
/// TRAP shape default constructor
56
57
TTRAP::TTRAP
()
58
{
59
fH1
= 0.;
60
fBl1
= 0.;
61
fTl1
= 0.;
62
fAlpha1
= 0.;
63
fH2
= 0.;
64
fBl2
= 0.;
65
fTl2
= 0.;
66
fAlpha2
= 0.;
67
}
68
69
////////////////////////////////////////////////////////////////////////////////
70
/// TRAP shape normal constructor
71
72
TTRAP::TTRAP
(
const
char
*
name
,
const
char
*title,
const
char
*material,
Float_t
dz,
Float_t
theta,
Float_t
phi,
73
Float_t
h1
,
Float_t
bl1,
Float_t
tl1,
Float_t
alpha1,
Float_t
h2,
74
Float_t
bl2,
Float_t
tl2,
Float_t
alpha2) :
TBRIK
(name, title,material,theta,phi,dz)
75
{
76
fH1
=
h1
;
77
fBl1
= bl1;
78
fTl1
= tl1;
79
fAlpha1
= alpha1;
80
fH2
= h2;
81
fBl2
= bl2;
82
fTl2
= tl2;
83
fAlpha2
= alpha2;
84
}
85
86
////////////////////////////////////////////////////////////////////////////////
87
/// TRAP shape default destructor
88
89
TTRAP::~TTRAP
()
90
{
91
}
92
93
////////////////////////////////////////////////////////////////////////////////
94
/// Create TRAP points
95
96
void
TTRAP::SetPoints
(
Double_t
*
points
)
const
97
{
98
const
Float_t
pi
=
Float_t
(
TMath::Pi
());
99
Float_t
alpha1 =
fAlpha1
* pi/180.0;
100
Float_t
alpha2 =
fAlpha2
* pi/180.0;
101
Float_t
theta =
TBRIK::fDx
* pi/180.0;
102
Float_t
phi =
TBRIK::fDy
* pi/180.0;
103
Float_t
tth =
TMath::Tan
(theta);
104
Float_t
tx = tth*
TMath::Cos
(phi);
105
Float_t
ty = tth*
TMath::Sin
(phi);
106
Float_t
tth1 =
TMath::Tan
(alpha1);
107
Float_t
tth2 =
TMath::Tan
(alpha2);
108
109
if
(points) {
110
points[ 0] = -
fDz
*tx-tth1*
fH1
-
fBl1
; points[ 1] = -
fH1
-
fDz
*ty ; points[ 2] = -
fDz
;
111
points[ 3] = -
fDz
*tx+tth1*
fH1
-
fTl1
; points[ 4] =
fH1
-
fDz
*ty ; points[ 5] = -
fDz
;
112
points[ 6] = -
fDz
*tx+tth1*
fH1
+
fTl1
; points[ 7] =
fH1
-
fDz
*ty ; points[ 8] = -
fDz
;
113
points[ 9] = -
fDz
*tx-tth1*
fH1
+
fBl1
; points[10] = -
fH1
-
fDz
*ty ; points[11] = -
fDz
;
114
points[12] =
fDz
*tx-tth2*
fH2
-
fBl2
; points[13] = -
fH2
+
fDz
*ty ; points[14] =
fDz
;
115
points[15] =
fDz
*tx+tth2*
fH2
-
fTl2
; points[16] =
fH2
+
fDz
*ty ; points[17] =
fDz
;
116
points[18] =
fDz
*tx+tth2*
fH2
+
fTl2
; points[19] =
fH2
+
fDz
*ty ; points[20] =
fDz
;
117
points[21] =
fDz
*tx-tth2*
fH2
+
fBl2
; points[22] = -
fH2
+
fDz
*ty ; points[23] =
fDz
;
118
}
119
120
}
TTRAP::fTl2
Float_t fTl2
Definition:
TTRAP.h:41
TGeoUnit::pi
static constexpr double pi
Definition:
TGeoSystemOfUnits.h:67
TTRAP::fAlpha1
Float_t fAlpha1
Definition:
TTRAP.h:38
Float_t
float Float_t
Definition:
RtypesCore.h:53
TTRAP::fBl2
Float_t fBl2
Definition:
TTRAP.h:40
TBRIK::fDx
Float_t fDx
Definition:
TBRIK.h:29
TTRAP::~TTRAP
virtual ~TTRAP()
TRAP shape default destructor.
Definition:
TTRAP.cxx:89
TTRAP::fH2
Float_t fH2
Definition:
TTRAP.h:39
TTRAP::fBl1
Float_t fBl1
Definition:
TTRAP.h:36
TTRAP.h
h1
TH1F * h1
Definition:
legend1.C:5
TMath::Pi
constexpr Double_t Pi()
Definition:
TMath.h:38
TTRAP::fH1
Float_t fH1
Definition:
TTRAP.h:35
points
point * points
Definition:
X3DBuffer.c:20
TTRAP
A general trapezoid.
Definition:
TTRAP.h:33
TMath::Cos
Double_t Cos(Double_t)
Definition:
TMath.h:640
TBRIK
A box with faces perpendicular to the axes.
Definition:
TBRIK.h:26
TTRAP::TTRAP
TTRAP()
TRAP shape default constructor.
Definition:
TTRAP.cxx:57
ClassImp
#define ClassImp(name)
Definition:
Rtypes.h:359
Double_t
double Double_t
Definition:
RtypesCore.h:55
TTRAP::fTl1
Float_t fTl1
Definition:
TTRAP.h:37
TMath::Sin
Double_t Sin(Double_t)
Definition:
TMath.h:636
TMath.h
TMath::Tan
Double_t Tan(Double_t)
Definition:
TMath.h:644
name
char name[80]
Definition:
TGX11.cxx:109
TBRIK::fDy
Float_t fDy
Definition:
TBRIK.h:30
TBRIK::fDz
Float_t fDz
Definition:
TBRIK.h:31
TTRAP::SetPoints
virtual void SetPoints(Double_t *points) const
Create TRAP points.
Definition:
TTRAP.cxx:96
TTRAP::fAlpha2
Float_t fAlpha2
Definition:
TTRAP.h:42
TNode.h