VGM Version 5.3
Loading...
Searching...
No Matches
ITrap.h
Go to the documentation of this file.
1// $Id$
2
3// -----------------------------------------------------------------------
4// The VGM 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
19
20#ifndef VGM_I_TRAP_H
21#define VGM_I_TRAP_H
22
23#include "VGM/solids/ISolid.h"
24
25#include <iostream>
26
27namespace VGM {
28
29class ITrap : public virtual ISolid
30{
31 public:
32 virtual ~ITrap() {}
33
34 // methods
35
36 virtual SolidType Type() const = 0;
37 virtual std::string Name() const = 0;
38
41 virtual double ZHalfLength() const = 0;
45 virtual double Theta() const = 0;
49 virtual double Phi() const = 0;
52 virtual double YHalfLengthMinusZ() const = 0;
56 virtual double XHalfLengthMinusZMinusY() const = 0;
60 virtual double XHalfLengthMinusZPlusY() const = 0;
65 virtual double AlphaMinusZ() const = 0;
68 virtual double YHalfLengthPlusZ() const = 0;
72 virtual double XHalfLengthPlusZMinusY() const = 0;
76 virtual double XHalfLengthPlusZPlusY() const = 0;
81 virtual double AlphaPlusZ() const = 0;
82
83 // streaming
84 virtual std::ostream& Put(std::ostream& out) const = 0;
85};
86
87} // namespace VGM
88
89std::ostream& operator<<(std::ostream& out, const VGM::ITrap& trap);
90
91#endif // VGM_I_TRAP_H
std::ostream & operator<<(std::ostream &out, const VGM::ITrap &trap)
Definition VTrap.cxx:22
The VGM interface to solids.
Definition ISolid.h:58
The VGM interface to trap solids.
Definition ITrap.h:30
virtual SolidType Type() const =0
Return the type of this solid.
virtual double Phi() const =0
Return the azimuthal angle of the line joining the centres of the faces at -hz and +hz in deg.
virtual double XHalfLengthPlusZMinusY() const =0
Return the half-length along x of the side at -hy of the face at +hz in m.
virtual double AlphaPlusZ() const =0
Return the angle with respect to the y axis from the centre of the side at -hy to the centre at +hy o...
virtual double ZHalfLength() const =0
Return the half-length along the z axis in mm.
virtual double YHalfLengthMinusZ() const =0
Return the half-length along y of the face at -hz in mm.
virtual double XHalfLengthMinusZMinusY() const =0
Return the half-length along x of the side at -hy of the face at -hz in mm.
virtual ~ITrap()
Definition ITrap.h:32
virtual double YHalfLengthPlusZ() const =0
Return the half-length along y of the face at +hz in m.
virtual double XHalfLengthPlusZPlusY() const =0
Return the half-length along x of the side at +hy of the face at +hz in m.
virtual double Theta() const =0
Return the polar angle of the line joining the centres of the faces at -hz and +hz in deg.
virtual double AlphaMinusZ() const =0
Return the angle with respect to the y axis from the centre of the side at -hy to the centre at +hy o...
virtual double XHalfLengthMinusZPlusY() const =0
Return the half-length along x of the side at +hy of the face at +hz in mm.
virtual std::string Name() const =0
Return the name of this solid.
virtual std::ostream & Put(std::ostream &out) const =0
Put the printing of the solid parameters in the out stream.
VGM interfaces.
Definition VMedium.h:28
SolidType
Definition ISolid.h:29