Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4ParameterisationTrd.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26//
27// $Id$
28//
29// classes G4ParameterisationTrdX
30// G4ParameterisationTrdY
31// G4ParameterisationTrdZ
32//
33// Class description:
34//
35// This class represents the parameterised positioning equivalent to
36// dividing a trapezoid along one of each axis X, Y, Z.
37
38// History:
39// -------
40// 09.05.01 - P.Arce, Initial version
41// 08.04.04 - I.Hrivnacova, Implemented reflection
42// --------------------------------------------------------------------
43#ifndef G4ParameterisationTrd_H
44#define G4ParameterisationTrd_H 1
45
46#include <vector>
47
49#include "G4VSolid.hh"
50
52
53// Dummy declarations to get rid of warnings ...
54//
55class G4Cons;
56class G4Box;
57class G4Sphere;
58class G4Orb;
59class G4Torus;
60class G4Para;
61class G4Hype;
62class G4Tubs;
63class G4Polycone;
64class G4Polyhedra;
65
67{
68 public: // with description
69
70 G4VParameterisationTrd( EAxis axis, G4int nCopies,
71 G4double offset, G4double step,
72 G4VSolid* msolid, DivisionType divType );
73
75
76 protected:
77
79};
80
82{
83 public: // with description
84
85 G4ParameterisationTrdX( EAxis axis, G4int nCopies,
86 G4double width, G4double offset,
87 G4VSolid* motherSolid, DivisionType divType );
89
91
93
94 void ComputeTransformation(const G4int copyNo,
95 G4VPhysicalVolume* physVol) const;
96
97 void ComputeDimensions(G4Trd& trd, const G4int copyNo,
98 const G4VPhysicalVolume* pv) const;
99
100 void ComputeDimensions(G4Trap& trd, const G4int copyNo,
101 const G4VPhysicalVolume* pv) const;
102
104
105
106 private: // Dummy declarations to get rid of warnings ...
107
108 void ComputeDimensions (G4Cons&,const G4int,
109 const G4VPhysicalVolume*) const {}
110 void ComputeDimensions (G4Box&,const G4int,
111 const G4VPhysicalVolume*) const {}
112 void ComputeDimensions (G4Sphere&,const G4int,
113 const G4VPhysicalVolume*) const {}
114 void ComputeDimensions (G4Orb&,const G4int,
115 const G4VPhysicalVolume*) const {}
116 void ComputeDimensions (G4Torus&,const G4int,
117 const G4VPhysicalVolume*) const {}
118 void ComputeDimensions (G4Para&,const G4int,
119 const G4VPhysicalVolume*) const {}
120 void ComputeDimensions (G4Hype&,const G4int,
121 const G4VPhysicalVolume*) const {}
122 void ComputeDimensions (G4Tubs&,const G4int,
123 const G4VPhysicalVolume*) const {}
125 const G4VPhysicalVolume*) const {}
127 const G4VPhysicalVolume*) const {}
128
129 void ComputeTrapParams();
130};
131
132
134{
135 public: // with description
136
137 G4ParameterisationTrdY( EAxis axis, G4int nCopies,
138 G4double width, G4double offset,
139 G4VSolid* motherSolid, DivisionType divType );
141
143
145
146 void ComputeTransformation(const G4int copyNo,
147 G4VPhysicalVolume *physVol) const;
148
149 void ComputeDimensions(G4Trd& trd, const G4int copyNo,
150 const G4VPhysicalVolume* pv) const;
151
152 private: // Dummy declarations to get rid of warnings ...
153
154 void ComputeDimensions (G4Cons&,const G4int,
155 const G4VPhysicalVolume*) const {}
156 void ComputeDimensions (G4Box&,const G4int,
157 const G4VPhysicalVolume*) const {}
158 void ComputeDimensions (G4Sphere&,const G4int,
159 const G4VPhysicalVolume*) const {}
160 void ComputeDimensions (G4Orb&,const G4int,
161 const G4VPhysicalVolume*) const {}
162 void ComputeDimensions (G4Torus&,const G4int,
163 const G4VPhysicalVolume*) const {}
164 void ComputeDimensions (G4Para&,const G4int,
165 const G4VPhysicalVolume*) const {}
166 void ComputeDimensions (G4Trap&,const G4int,
167 const G4VPhysicalVolume*) const {}
168 void ComputeDimensions (G4Hype&,const G4int,
169 const G4VPhysicalVolume*) const {}
170 void ComputeDimensions (G4Tubs&,const G4int,
171 const G4VPhysicalVolume*) const {}
173 const G4VPhysicalVolume*) const {}
175 const G4VPhysicalVolume*) const {}
176};
177
178
180{
181 public: // with description
182
183 G4ParameterisationTrdZ( EAxis axis, G4int nCopies,
184 G4double width, G4double offset,
185 G4VSolid* motherSolid, DivisionType divType );
187
189
190 void ComputeTransformation(const G4int copyNo,
191 G4VPhysicalVolume* physVol) const;
192 void ComputeDimensions(G4Trd& trd, const G4int copyNo,
193 const G4VPhysicalVolume* pv) const;
194
195 private: // Dummy declarations to get rid of warnings ...
196
197 void ComputeDimensions (G4Cons&,const G4int,
198 const G4VPhysicalVolume*) const {}
199 void ComputeDimensions (G4Box&,const G4int,
200 const G4VPhysicalVolume*) const {}
201 void ComputeDimensions (G4Sphere&,const G4int,
202 const G4VPhysicalVolume*) const {}
203 void ComputeDimensions (G4Orb&,const G4int,
204 const G4VPhysicalVolume*) const {}
205 void ComputeDimensions (G4Torus&,const G4int,
206 const G4VPhysicalVolume*) const {}
207 void ComputeDimensions (G4Para&,const G4int,
208 const G4VPhysicalVolume*) const {}
209 void ComputeDimensions (G4Trap&,const G4int,
210 const G4VPhysicalVolume*) const {}
211 void ComputeDimensions (G4Hype&,const G4int,
212 const G4VPhysicalVolume*) const {}
213 void ComputeDimensions (G4Tubs&,const G4int,
214 const G4VPhysicalVolume*) const {}
216 const G4VPhysicalVolume*) const {}
218 const G4VPhysicalVolume*) const {}
219};
220
221#endif
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
bool G4bool
Definition: G4Types.hh:67
Definition: G4Box.hh:55
Definition: G4Cons.hh:75
Definition: G4Hype.hh:67
Definition: G4Orb.hh:52
Definition: G4Para.hh:77
void ComputeTransformation(const G4int copyNo, G4VPhysicalVolume *physVol) const
void ComputeDimensions(G4Trd &trd, const G4int copyNo, const G4VPhysicalVolume *pv) const
G4VSolid * ComputeSolid(const G4int, G4VPhysicalVolume *)
void ComputeDimensions(G4Trd &trd, const G4int copyNo, const G4VPhysicalVolume *pv) const
void ComputeTransformation(const G4int copyNo, G4VPhysicalVolume *physVol) const
void ComputeTransformation(const G4int copyNo, G4VPhysicalVolume *physVol) const
void ComputeDimensions(G4Trd &trd, const G4int copyNo, const G4VPhysicalVolume *pv) const
Definition: G4Trd.hh:63
Definition: G4Tubs.hh:77
EAxis
Definition: geomdefs.hh:54