ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4ParameterisationBox.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4ParameterisationBox.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 // G4ParameterisationBox[X/Y/Z]
27 //
28 // Class description:
29 //
30 // These classes represent the parameterised positioning equivalent to
31 // dividing a G4Box 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 G4PARAMETERISATIONBOX_HH
37 #define G4PARAMETERISATIONBOX_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 G4Trd;
48 class G4Sphere;
49 class G4Orb;
50 class G4Ellipsoid;
51 class G4Torus;
52 class G4Para;
53 class G4Hype;
54 class G4Tubs;
55 class G4Polycone;
56 class G4Polyhedra;
57 
59 {
60  public: // with description
61 
62  G4VParameterisationBox( EAxis axis, G4int nCopies,
64  G4VSolid* msolid, DivisionType divType );
65 
66  virtual ~G4VParameterisationBox();
67 };
68 
70 {
71  public: // with description
72 
73  G4ParameterisationBoxX( 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(G4Box& box, const G4int copyNo,
83  const G4VPhysicalVolume* physVol) const;
84 
85  private: // Dummy declarations to get rid of warnings ...
86 
88  const G4VPhysicalVolume*) const {}
90  const G4VPhysicalVolume*) const {}
92  const G4VPhysicalVolume*) const {}
94  const G4VPhysicalVolume*) const {}
96  const G4VPhysicalVolume*) const {}
98  const G4VPhysicalVolume*) const {}
100  const G4VPhysicalVolume*) const {}
102  const G4VPhysicalVolume*) const {}
104  const G4VPhysicalVolume*) const {}
106  const G4VPhysicalVolume*) const {}
108  const G4VPhysicalVolume*) const {}
110  const G4VPhysicalVolume*) const {}
111 };
112 
114 {
115  public: // with description
116 
117  G4ParameterisationBoxY( EAxis axis, G4int nCopies,
119  G4VSolid* msolid, DivisionType divType );
121 
122  G4double GetMaxParameter() const;
123 
124  void ComputeTransformation( const G4int copyNo,
125  G4VPhysicalVolume* physVol ) const;
126 
127  void ComputeDimensions(G4Box& box, 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  G4ParameterisationBoxZ( EAxis axis, G4int nCopies,
164  G4VSolid* msolid, DivisionType divType );
166 
167  G4double GetMaxParameter() const;
168 
169  void ComputeTransformation( const G4int copyNo,
170  G4VPhysicalVolume* physVol ) const;
171  void ComputeDimensions(G4Box& box, 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