Main Page
Namespaces
Classes
Package Documentation
DetectorDescription
Core
src
Trap.cc
Go to the documentation of this file.
1
#include "
DetectorDescription/Core/src/Trap.h
"
2
3
#include <cmath>
4
#include <vector>
5
6
#include "CLHEP/Units/GlobalSystemOfUnits.h"
7
#include "CLHEP/Units/SystemOfUnits.h"
8
#include "
DetectorDescription/Core/interface/DDSolidShapes.h
"
9
#include "
DetectorDescription/Core/src/Solid.h
"
10
11
using
std::sqrt
;
12
13
DDI::Trap::Trap
(
double
pDz,
14
double
pTheta,
15
double
pPhi,
16
double
pDy1,
double
pDx1,
double
pDx2,
17
double
pAlp1,
18
double
pDy2,
double
pDx3,
double
pDx4,
19
double
pAlp2 )
20
:
Solid
(
DDSolidShape
::
ddtrap
)
21
{
22
p_
.emplace_back(pDz);
// ......... 0
23
p_
.emplace_back(pTheta);
// .. 1
24
p_
.emplace_back(pPhi);
// ....... 2
25
p_
.emplace_back(pDy1);
// ........ 3
26
p_
.emplace_back(pDx1);
// ........ 4
27
p_
.emplace_back(pDx2);
// ........ 5
28
p_
.emplace_back(pAlp1);
// ....... 6
29
p_
.emplace_back(pDy2);
// ........ 7
30
p_
.emplace_back(pDx3);
// ......... 8
31
p_
.emplace_back(pDx4);
// ........ 9
32
p_
.emplace_back(pAlp2);
33
}
34
35
36
void
DDI::Trap::stream
(std::ostream & os)
const
37
{
38
os <<
" dz="
<<
p_
[0]/cm
39
<<
" theta="
<<
p_
[1]/deg
40
<<
" phi="
<<
p_
[2]/deg
41
<<
" dy1="
<<
p_
[3]/cm
42
<<
" dx1="
<<
p_
[4]/cm
43
<<
" dx2="
<<
p_
[5]/cm
44
<<
" alpha1="
<<
p_
[6]/deg
45
<<
" dy2="
<<
p_
[7]/cm
46
<<
" dx3="
<<
p_
[8]/cm
47
<<
" dx4="
<<
p_
[9]/cm
48
<<
" alpha2="
<<
p_
[10]/deg;
49
}
50
51
double
DDI::Trap::volume
()
const
52
{
53
double
volume
= 0;
54
55
double
dz
=
p_
[0]*2.;
56
double
dy1 =
p_
[3]*2.;
57
double
dx1 =
p_
[4]*2.;
58
double
dx2 =
p_
[5]*2.;
59
double
dy2 =
p_
[7]*2.;
60
double
dx3 =
p_
[8]*2.;
61
double
dx4 =
p_
[9]*2.;
62
63
volume = ((dx1 + dx2 + dx3 + dx4)*(dy1 + dy2) +
64
(dx4 + dx3 - dx2 - dx1)*(dy2 - dy1)/3)*dz*0.125;
65
66
return
volume
;
67
}
DDSolidShape
DDSolidShape
Definition:
DDSolidShapes.h:4
PVValHelper::dz
Definition:
PVValidationHelpers.h:46
DDI::Trap::Trap
Trap(double pDz, double pTheta, double pPhi, double pDy1, double pDx1, double pDx2, double pAlp1, double pDy2, double pDx3, double pDx4, double pAlp2)
Definition:
Trap.cc:13
DDI::Trap::stream
void stream(std::ostream &) const override
Definition:
Trap.cc:36
mathSSE::sqrt
T sqrt(T t)
Definition:
SSEVec.h:18
DDSolidShapes.h
Solid.h
DDI::Trap::volume
double volume() const override
Definition:
Trap.cc:51
DDI::Solid
Definition:
Solid.h:10
DDI::Solid::p_
std::vector< double > p_
Definition:
Solid.h:32
Trap.h
DDSolidShape::ddtrap
Generated for CMSSW Reference Manual by
1.8.11