File indexing completed on 2026-09-16 09:11:00
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036 #ifndef G4PARAMETERISATIONBOX_HH
0037 #define G4PARAMETERISATIONBOX_HH 1
0038
0039 #include "G4VDivisionParameterisation.hh"
0040
0041 class G4VSolid;
0042 class G4VPhysicalVolume;
0043
0044
0045
0046 class G4Cons;
0047 class G4Trd;
0048 class G4Sphere;
0049 class G4Orb;
0050 class G4Ellipsoid;
0051 class G4Torus;
0052 class G4Para;
0053 class G4Hype;
0054 class G4Tubs;
0055 class G4Polycone;
0056 class G4Polyhedra;
0057
0058
0059
0060
0061
0062
0063 class G4VParameterisationBox : public G4VDivisionParameterisation
0064 {
0065 public:
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077 G4VParameterisationBox( EAxis axis, G4int nCopies,
0078 G4double offset, G4double step,
0079 G4VSolid* pSolid, DivisionType divType );
0080
0081
0082
0083
0084 ~G4VParameterisationBox() override;
0085 };
0086
0087
0088
0089
0090
0091
0092 class G4ParameterisationBoxX : public G4VParameterisationBox
0093 {
0094 public:
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105 G4ParameterisationBoxX( EAxis axis, G4int nCopies,
0106 G4double offset, G4double step,
0107 G4VSolid* pSolid, DivisionType divType );
0108
0109
0110
0111
0112 ~G4ParameterisationBoxX() override;
0113
0114
0115
0116
0117
0118 G4double GetMaxParameter() const override;
0119
0120
0121
0122
0123 void ComputeTransformation( const G4int copyNo,
0124 G4VPhysicalVolume* physVol ) const override;
0125 void ComputeDimensions(G4Box& box, const G4int copyNo,
0126 const G4VPhysicalVolume* physVol) const override;
0127
0128 private:
0129
0130 void ComputeDimensions (G4Cons&,const G4int,
0131 const G4VPhysicalVolume*) const override {}
0132 void ComputeDimensions (G4Trd&,const G4int,
0133 const G4VPhysicalVolume*) const override {}
0134 void ComputeDimensions (G4Sphere&,const G4int,
0135 const G4VPhysicalVolume*) const override {}
0136 void ComputeDimensions (G4Orb&,const G4int,
0137 const G4VPhysicalVolume*) const override {}
0138 void ComputeDimensions (G4Ellipsoid&,const G4int,
0139 const G4VPhysicalVolume*) const override {}
0140 void ComputeDimensions (G4Torus&,const G4int,
0141 const G4VPhysicalVolume*) const override {}
0142 void ComputeDimensions (G4Para&,const G4int,
0143 const G4VPhysicalVolume*) const override {}
0144 void ComputeDimensions (G4Trap&,const G4int,
0145 const G4VPhysicalVolume*) const override {}
0146 void ComputeDimensions (G4Hype&,const G4int,
0147 const G4VPhysicalVolume*) const override {}
0148 void ComputeDimensions (G4Tubs&,const G4int,
0149 const G4VPhysicalVolume*) const override {}
0150 void ComputeDimensions (G4Polycone&,const G4int,
0151 const G4VPhysicalVolume*) const override {}
0152 void ComputeDimensions (G4Polyhedra&,const G4int,
0153 const G4VPhysicalVolume*) const override {}
0154 };
0155
0156
0157
0158
0159
0160
0161 class G4ParameterisationBoxY : public G4VParameterisationBox
0162 {
0163 public:
0164
0165
0166
0167
0168
0169
0170
0171
0172
0173
0174 G4ParameterisationBoxY( EAxis axis, G4int nCopies,
0175 G4double offset, G4double step,
0176 G4VSolid* pSolid, DivisionType divType );
0177
0178
0179
0180
0181 ~G4ParameterisationBoxY() override;
0182
0183
0184
0185
0186
0187
0188 G4double GetMaxParameter() const override;
0189
0190
0191
0192
0193 void ComputeTransformation( const G4int copyNo,
0194 G4VPhysicalVolume* physVol ) const override;
0195 void ComputeDimensions(G4Box& box, const G4int copyNo,
0196 const G4VPhysicalVolume* physVol) const override;
0197
0198 private:
0199
0200 void ComputeDimensions (G4Cons&,const G4int,
0201 const G4VPhysicalVolume*) const override {}
0202 void ComputeDimensions (G4Trd&,const G4int,
0203 const G4VPhysicalVolume*) const override {}
0204 void ComputeDimensions (G4Sphere&,const G4int,
0205 const G4VPhysicalVolume*) const override {}
0206 void ComputeDimensions (G4Orb&,const G4int,
0207 const G4VPhysicalVolume*) const override {}
0208 void ComputeDimensions (G4Ellipsoid&,const G4int,
0209 const G4VPhysicalVolume*) const override {}
0210 void ComputeDimensions (G4Torus&,const G4int,
0211 const G4VPhysicalVolume*) const override {}
0212 void ComputeDimensions (G4Para&,const G4int,
0213 const G4VPhysicalVolume*) const override {}
0214 void ComputeDimensions (G4Trap&,const G4int,
0215 const G4VPhysicalVolume*) const override {}
0216 void ComputeDimensions (G4Hype&,const G4int,
0217 const G4VPhysicalVolume*) const override {}
0218 void ComputeDimensions (G4Tubs&,const G4int,
0219 const G4VPhysicalVolume*) const override {}
0220 void ComputeDimensions (G4Polycone&,const G4int,
0221 const G4VPhysicalVolume*) const override {}
0222 void ComputeDimensions (G4Polyhedra&,const G4int,
0223 const G4VPhysicalVolume*) const override {}
0224 };
0225
0226
0227
0228
0229
0230
0231 class G4ParameterisationBoxZ : public G4VParameterisationBox
0232 {
0233 public:
0234
0235
0236
0237
0238
0239
0240
0241
0242
0243
0244 G4ParameterisationBoxZ( EAxis axis, G4int nCopies,
0245 G4double offset, G4double step,
0246 G4VSolid* pSolid, DivisionType divType );
0247
0248
0249
0250
0251 ~G4ParameterisationBoxZ() override;
0252
0253
0254
0255
0256
0257
0258 G4double GetMaxParameter() const override;
0259
0260
0261
0262
0263 void ComputeTransformation( const G4int copyNo,
0264 G4VPhysicalVolume* physVol ) const override;
0265 void ComputeDimensions(G4Box& box, const G4int copyNo,
0266 const G4VPhysicalVolume* physVol) const override;
0267
0268 private:
0269
0270 void ComputeDimensions (G4Cons&,const G4int,
0271 const G4VPhysicalVolume*) const override {}
0272 void ComputeDimensions (G4Trd&,const G4int,
0273 const G4VPhysicalVolume*) const override {}
0274 void ComputeDimensions (G4Sphere&,const G4int,
0275 const G4VPhysicalVolume*) const override {}
0276 void ComputeDimensions (G4Orb&,const G4int,
0277 const G4VPhysicalVolume*) const override {}
0278 void ComputeDimensions (G4Ellipsoid&,const G4int,
0279 const G4VPhysicalVolume*) const override {}
0280 void ComputeDimensions (G4Torus&,const G4int,
0281 const G4VPhysicalVolume*) const override {}
0282 void ComputeDimensions (G4Para&,const G4int,
0283 const G4VPhysicalVolume*) const override {}
0284 void ComputeDimensions (G4Trap&,const G4int,
0285 const G4VPhysicalVolume*) const override {}
0286 void ComputeDimensions (G4Hype&,const G4int,
0287 const G4VPhysicalVolume*) const override {}
0288 void ComputeDimensions (G4Tubs&,const G4int,
0289 const G4VPhysicalVolume*) const override {}
0290 void ComputeDimensions (G4Polycone&,const G4int,
0291 const G4VPhysicalVolume*) const override {}
0292 void ComputeDimensions (G4Polyhedra&,const G4int,
0293 const G4VPhysicalVolume*) const override {}
0294 };
0295
0296 #endif