ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4ParameterisationTubs.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4ParameterisationTubs.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 // G4ParameterisationTubs[Rho/Phi/Z]
27 //
28 // Class description:
29 //
30 // This class represents the parameterised positioning equivalent to
31 // dividing a G4Tubs 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 G4PARAMETERISATIONTUBS_HH
37 #define G4PARAMETERISATIONTUBS_HH 1
38 
40 
41 class G4VPhysicalVolume;
42 
43 // Dummy declarations to get rid of warnings ...
44 //
45 class G4Trd;
46 class G4Trap;
47 class G4Cons;
48 class G4Sphere;
49 class G4Orb;
50 class G4Ellipsoid;
51 class G4Torus;
52 class G4Para;
53 class G4Hype;
54 class G4Polycone;
55 class G4Polyhedra;
56 
58 {
59  public: // with description
60 
61  G4VParameterisationTubs( EAxis axis, G4int nCopies,
63  G4VSolid* msolid, DivisionType divType );
64 
65  virtual ~G4VParameterisationTubs();
66 };
67 
69 {
70  public: // with description
71 
72  G4ParameterisationTubsRho( EAxis axis, G4int nCopies,
74  G4VSolid* motherSolid, DivisionType divType );
76 
77  G4double GetMaxParameter() const;
78 
79  void ComputeTransformation(const G4int copyNo,
80  G4VPhysicalVolume* physVol) const;
81  void ComputeDimensions(G4Tubs& tubs, const G4int copyNo,
82  const G4VPhysicalVolume* physVol) const;
83 
84  private: // Dummy declarations to get rid of warnings ...
85 
87  const G4VPhysicalVolume*) const {}
89  const G4VPhysicalVolume*) const {}
91  const G4VPhysicalVolume*) const {}
93  const G4VPhysicalVolume*) const {}
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 {}
110 };
111 
112 
114 {
115  public: // with description
116 
117  G4ParameterisationTubsPhi( EAxis axis, G4int nCopies,
119  G4VSolid* motherSolid, DivisionType divType );
121 
122  G4double GetMaxParameter() const;
123 
124  void ComputeTransformation(const G4int copyNo,
125  G4VPhysicalVolume* physVol) const;
126  void ComputeDimensions(G4Tubs& tubs, const G4int copyNo,
127  const G4VPhysicalVolume* physVol) const;
128 
129  private: // Dummy declarations to get rid of warnings ...
130 
132  const G4VPhysicalVolume*) const {}
134  const G4VPhysicalVolume*) const {}
136  const G4VPhysicalVolume*) const {}
138  const G4VPhysicalVolume*) const {}
140  const G4VPhysicalVolume*) const {}
142  const G4VPhysicalVolume*) const {}
144  const G4VPhysicalVolume*) const {}
146  const G4VPhysicalVolume*) const {}
148  const G4VPhysicalVolume*) const {}
150  const G4VPhysicalVolume*) const {}
152  const G4VPhysicalVolume*) const {}
154  const G4VPhysicalVolume*) const {}
155 };
156 
157 
159 {
160  public: // with description
161 
162  G4ParameterisationTubsZ( EAxis axis, G4int nCopies,
164  G4VSolid* motherSolid, DivisionType divType );
166 
167  G4double GetMaxParameter() const;
168 
169  void ComputeTransformation(const G4int copyNo,
170  G4VPhysicalVolume* physVol) const;
171  void ComputeDimensions(G4Tubs& tubs, const G4int copyNo,
172  const G4VPhysicalVolume* physVol) const;
173 
174  private: // Dummy declarations to get rid of warnings ...
175 
177  const G4VPhysicalVolume*) const {}
179  const G4VPhysicalVolume*) const {}
181  const G4VPhysicalVolume*) const {}
183  const G4VPhysicalVolume*) const {}
185  const G4VPhysicalVolume*) const {}
187  const G4VPhysicalVolume*) const {}
189  const G4VPhysicalVolume*) const {}
191  const G4VPhysicalVolume*) const {}
193  const G4VPhysicalVolume*) const {}
195  const G4VPhysicalVolume*) const {}
197  const G4VPhysicalVolume*) const {}
199  const G4VPhysicalVolume*) const {}
200 };
201 
202 #endif