ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4ParameterisationPolycone.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4ParameterisationPolycone.hh
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 // G4ParameterisationPolycone[Rho/Phi/Z]
27 //
28 // Class description:
29 //
30 // These classes represent the parameterised positioning equivalent to
31 // dividing a G4Polycone along one of each axis Rho, Phi, Z.
32 
33 // 09.05.01 - P.Arce, Initial version
34 // 08.04.04 - I.Hrivnacova, Implemented reflection
35 //---------------------------------------------------------------------
36 #ifndef G4PARAMETERISATIONPOLYCONE_HH
37 #define G4PARAMETERISATIONPOLYCONE_HH 1
38 
40 #include "G4Polycone.hh"
41 
42 class G4VPhysicalVolume;
43 
44 // Dummy declarations to get rid of warnings ...
45 //
46 class G4Trd;
47 class G4Trap;
48 class G4Cons;
49 class G4Orb;
50 class G4Ellipsoid;
51 class G4Sphere;
52 class G4Torus;
53 class G4Para;
54 class G4Hype;
55 class G4Tubs;
56 class G4Polyhedra;
57 
59 {
60  public: // with description
61 
64  G4VSolid* msolid, DivisionType divType );
65 
67 };
68 
69 //---------------------------------------------------------------------
70 // Class G4ParameterisationPolyconeRho
71 //---------------------------------------------------------------------
72 
74 {
75  public: // with description
76 
79  G4VSolid* motherSolid,
80  DivisionType divType );
82 
84 
85  G4double GetMaxParameter() const;
86 
87  void ComputeTransformation( const G4int copyNo,
88  G4VPhysicalVolume* physVol ) const;
89  void ComputeDimensions( G4Polycone& pcone, const G4int copyNo,
90  const G4VPhysicalVolume* physVol ) const;
91 
92  private: // Dummy declarations to get rid of warnings ...
93 
95  const G4VPhysicalVolume*) const {}
97  const G4VPhysicalVolume*) const {}
99  const G4VPhysicalVolume*) const {}
101  const G4VPhysicalVolume*) const {}
103  const G4VPhysicalVolume*) const {}
105  const G4VPhysicalVolume*) const {}
107  const G4VPhysicalVolume*) const {}
109  const G4VPhysicalVolume*) const {}
111  const G4VPhysicalVolume*) const {}
113  const G4VPhysicalVolume*) const {}
115  const G4VPhysicalVolume*) const {}
117  const G4VPhysicalVolume*) const {}
118 };
119 
120 //---------------------------------------------------------------------
121 // Class G4ParameterisationPolyconePhi
122 //---------------------------------------------------------------------
123 
125 {
126  public: // with description
127 
130  G4VSolid* motherSolid,
131  DivisionType divType );
133 
134  G4double GetMaxParameter() const;
135 
136  void ComputeTransformation( const G4int copyNo,
137  G4VPhysicalVolume* physVol ) const;
138  void ComputeDimensions( G4Polycone& pcone, const G4int copyNo,
139  const G4VPhysicalVolume* physVol ) const;
140 
141  private: // Dummy declarations to get rid of warnings ...
142 
144  const G4VPhysicalVolume*) const {}
146  const G4VPhysicalVolume*) const {}
148  const G4VPhysicalVolume*) const {}
150  const G4VPhysicalVolume*) const {}
152  const G4VPhysicalVolume*) const {}
154  const G4VPhysicalVolume*) const {}
156  const G4VPhysicalVolume*) const {}
158  const G4VPhysicalVolume*) const {}
160  const G4VPhysicalVolume*) const {}
162  const G4VPhysicalVolume*) const {}
164  const G4VPhysicalVolume*) const {}
166  const G4VPhysicalVolume*) const {}
167 };
168 
169 //---------------------------------------------------------------------
170 // Class G4ParameterisationPolyconeZ
171 //---------------------------------------------------------------------
172 
174 {
175  public: // with description
176 
177  G4ParameterisationPolyconeZ( EAxis axis, G4int nCopies,
179  G4VSolid* motherSolid,
180  DivisionType divType );
182 
184 
185  G4double GetMaxParameter() const;
186 
187  void ComputeTransformation( const G4int copyNo,
188  G4VPhysicalVolume* physVol ) const;
189  void ComputeDimensions( G4Polycone& pcone, const G4int copyNo,
190  const G4VPhysicalVolume* physVol ) const;
191 
192  private:
193 
195  G4double z2, G4double r2) const;
196  G4double GetRmin(G4double z, G4int nsegment) const;
197  G4double GetRmax(G4double z, G4int nsegment) const;
198 
199  // Dummy declarations to get rid of warnings ...
200 
202  const G4VPhysicalVolume*) const {}
204  const G4VPhysicalVolume*) const {}
206  const G4VPhysicalVolume*) const {}
208  const G4VPhysicalVolume*) const {}
210  const G4VPhysicalVolume*) const {}
212  const G4VPhysicalVolume*) const {}
214  const G4VPhysicalVolume*) const {}
216  const G4VPhysicalVolume*) const {}
218  const G4VPhysicalVolume*) const {}
220  const G4VPhysicalVolume*) const {}
222  const G4VPhysicalVolume*) const {}
224  const G4VPhysicalVolume*) const {}
225  private:
226 
229 };
230 
231 #endif