VGM Version 5.3
Loading...
Searching...
No Matches
ICtubs.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_CTUBS_H
21#define VGM_I_CTUBS_H
22
23#include "VGM/solids/ISolid.h"
24
25#include <iostream>
26
27namespace VGM {
28
29class ICtubs : public virtual ISolid
30{
31 public:
32 virtual ~ICtubs() {}
33
34 // methods
35
36 virtual SolidType Type() const = 0;
37 virtual std::string Name() const = 0;
38
41 virtual double InnerRadius() const = 0;
44 virtual double OuterRadius() const = 0;
47 virtual double ZHalfLength() const = 0;
50 virtual double StartPhi() const = 0;
53 virtual double DeltaPhi() const = 0;
54
57 virtual double NxLow() const = 0;
58
61 virtual double NyLow() const = 0;
62
65 virtual double NzLow() const = 0;
66
69 virtual double NxHigh() const = 0;
70
73 virtual double NyHigh() const = 0;
74
77 virtual double NzHigh() const = 0;
78
79 // streaming
80 virtual std::ostream& Put(std::ostream& out) const = 0;
81};
82
83} // namespace VGM
84
85std::ostream& operator<<(std::ostream& out, const VGM::ICtubs& ctubs);
86
87#endif // VGM_I_TUBS_H
std::ostream & operator<<(std::ostream &out, const VGM::ICtubs &ctubs)
Definition VCtubs.cxx:22
The VGM interface to cut tubs solids.
Definition ICtubs.h:30
virtual double OuterRadius() const =0
Return the outside radius in mm.
virtual double NxHigh() const =0
X-component of the normal unit vector to the cut plane in +z.
virtual double ZHalfLength() const =0
Return the half-length along the z axis in m.
virtual double DeltaPhi() const =0
Return the opening angle of the segment in deg.
virtual ~ICtubs()
Definition ICtubs.h:32
virtual double NyLow() const =0
Y-component of the normal unit vector to the cut plane in -z.
virtual double NzLow() const =0
Z-component of the normal unit vector to the cut plane in -z.
virtual double NzHigh() const =0
Z-component of the normal unit vector to the cut plane in +z.
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.
virtual double InnerRadius() const =0
Return the inside radius in mm.
virtual double StartPhi() const =0
Return the starting angle of the segment in deg.
virtual double NxLow() const =0
X-component of the normal unit vector to the cut plane in -z.
virtual double NyHigh() const =0
Y-component of the normal unit vector to the cut plane in +z.
virtual SolidType Type() const =0
Return the type of this solid.
The VGM interface to solids.
Definition ISolid.h:58
VGM interfaces.
Definition VMedium.h:28
SolidType
Definition ISolid.h:29