ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4ParameterisationCons.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4ParameterisationCons.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 // G4ParameterisationCons[Rho/Phi/Z]
27 //
28 // Class description:
29 //
30 // These classes represent the parameterised positioning equivalent to
31 // dividing a G4Cons 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 G4PARAMETERISATIONCONS_HH
37 #define G4PARAMETERISATIONCONS_HH 1
38 
40 
41 class G4VSolid;
42 class G4VPhysicalVolume;
43 
44 // Dummy declarations to get rid of warnings ...
45 //
46 class G4Trd;
47 class G4Trap;
48 class G4Box;
49 class G4Sphere;
50 class G4Orb;
51 class G4Ellipsoid;
52 class G4Torus;
53 class G4Para;
54 class G4Hype;
55 class G4Tubs;
56 class G4Polycone;
57 class G4Polyhedra;
58 
60 {
61  public: // with description
62 
63  G4VParameterisationCons( EAxis axis, G4int nCopies,
65  G4VSolid* msolid, DivisionType divType );
66 
67  virtual ~G4VParameterisationCons();
68 };
69 
71 {
72  public: // with description
73 
74  G4ParameterisationConsRho( EAxis axis, G4int nCopies,
76  G4VSolid* motherSolid, DivisionType divType );
78 
79  G4double GetMaxParameter() const;
80 
81  void ComputeTransformation( const G4int copyNo,
82  G4VPhysicalVolume* physVol ) const;
83  void ComputeDimensions( G4Cons& tubs, const G4int copyNo,
84  const G4VPhysicalVolume* physVol) const;
85 
86  private: // Dummy declarations to get rid of warnings ...
87 
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 {}
111  const G4VPhysicalVolume*) const {}
112 };
113 
115 {
116  public: // with description
117 
118  G4ParameterisationConsPhi( EAxis axis, G4int nCopies,
120  G4VSolid* motherSolid, DivisionType divType );
122 
123  G4double GetMaxParameter() const;
124 
125  void ComputeTransformation( const G4int copyNo,
126  G4VPhysicalVolume* physVol ) const;
127  void ComputeDimensions( G4Cons& tubs, const G4int copyNo,
128  const G4VPhysicalVolume* physVol ) const;
129 
130  private: // Dummy declarations to get rid of warnings ...
131 
133  const G4VPhysicalVolume*) const {}
135  const G4VPhysicalVolume*) const {}
137  const G4VPhysicalVolume*) const {}
139  const G4VPhysicalVolume*) const {}
141  const G4VPhysicalVolume*) const {}
143  const G4VPhysicalVolume*) const {}
145  const G4VPhysicalVolume*) const {}
147  const G4VPhysicalVolume*) const {}
149  const G4VPhysicalVolume*) const {}
151  const G4VPhysicalVolume*) const {}
153  const G4VPhysicalVolume*) const {}
155  const G4VPhysicalVolume*) const {}
156 };
157 
159 {
160  public: // with description
161 
162  G4ParameterisationConsZ( 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( G4Cons& 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