ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4ParameterisationPara.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4ParameterisationPara.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 // G4ParameterisationPara[X,Y,Z]
27 //
28 // Class description:
29 //
30 // These classes represent the parameterised positioning equivalent to
31 // dividing a G4Para along one of each axis X, Y, Z.
32 
33 // 09.05.01 - P.Arce, Initial version
34 // 08.04.04 - I.Hrivnacova, Implemented reflection
35 // --------------------------------------------------------------------
36 #ifndef G4PARAMETERISATIONPARA_HH
37 #define G4PARAMETERISATIONPARA_HH 1
38 
40 
41 class G4VSolid;
42 class G4VPhysicalVolume;
43 
44 // Dummy declarations to get rid of warnings ...
45 //
46 class G4Cons;
47 class G4Cons;
48 class G4Sphere;
49 class G4Orb;
50 class G4Ellipsoid;
51 class G4Torus;
52 class G4Trd;
53 class G4Hype;
54 class G4Tubs;
55 class G4Polycone;
56 class G4Polyhedra;
57 
59 {
60  public: // with description
61 
62  G4VParameterisationPara( EAxis axis, G4int nCopies,
64  G4VSolid* msolid, DivisionType divType );
65 
66  virtual ~G4VParameterisationPara();
67 };
68 
70 {
71  public: // with description
72 
73  G4ParameterisationParaX( EAxis axis, G4int nCopies,
75  G4VSolid* msolid, DivisionType divType );
77 
78  G4double GetMaxParameter() const;
79 
80  void ComputeTransformation( const G4int copyNo,
81  G4VPhysicalVolume* physVol ) const;
82  void ComputeDimensions(G4Para& para, const G4int copyNo,
83  const G4VPhysicalVolume* pv) const;
84 
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 
114 
116 {
117  public: // with description
118 
119  G4ParameterisationParaY( EAxis axis, G4int nCopies,
121  G4VSolid* msolid, DivisionType divType );
123 
124  G4double GetMaxParameter() const;
125 
126  void ComputeTransformation( const G4int copyNo,
127  G4VPhysicalVolume* physVol ) const;
128  void ComputeDimensions(G4Para& para, const G4int copyNo,
129  const G4VPhysicalVolume* pv) const;
130 
131 
132  private: // Dummy declarations to get rid of warnings ...
133 
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 {}
157  const G4VPhysicalVolume*) const {}
158 };
159 
160 
162 {
163  public: // with description
164 
165  G4ParameterisationParaZ( EAxis axis, G4int nCopies,
167  G4VSolid* msolid, DivisionType divType );
169 
170  G4double GetMaxParameter() const;
171 
172  void ComputeTransformation( const G4int copyNo,
173  G4VPhysicalVolume* physVol ) const;
174  void ComputeDimensions(G4Para& para, const G4int copyNo,
175  const G4VPhysicalVolume* pv) const;
176 
177 
178  private: // Dummy declarations to get rid of warnings ...
179 
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 {}
201  const G4VPhysicalVolume*) const {}
203  const G4VPhysicalVolume*) const {}
204 };
205 
206 #endif