File indexing completed on 2026-09-17 09:13:49
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 G4PARAMETERISATIONPARA_HH
0037 #define G4PARAMETERISATIONPARA_HH 1
0038
0039 #include "G4VDivisionParameterisation.hh"
0040
0041 class G4VSolid;
0042 class G4VPhysicalVolume;
0043
0044
0045
0046 class G4Cons;
0047 class G4Cons;
0048 class G4Sphere;
0049 class G4Orb;
0050 class G4Ellipsoid;
0051 class G4Torus;
0052 class G4Trd;
0053 class G4Hype;
0054 class G4Tubs;
0055 class G4Polycone;
0056 class G4Polyhedra;
0057
0058
0059
0060
0061
0062
0063 class G4VParameterisationPara : public G4VDivisionParameterisation
0064 {
0065 public:
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077 G4VParameterisationPara( EAxis axis, G4int nCopies,
0078 G4double offset, G4double step,
0079 G4VSolid* pSolid, DivisionType divType );
0080
0081
0082
0083
0084 ~G4VParameterisationPara() override;
0085 };
0086
0087
0088
0089
0090
0091
0092 class G4ParameterisationParaX : public G4VParameterisationPara
0093 {
0094 public:
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105 G4ParameterisationParaX( EAxis axis, G4int nCopies,
0106 G4double offset, G4double step,
0107 G4VSolid* pSolid, DivisionType divType );
0108
0109
0110
0111
0112 ~G4ParameterisationParaX() 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(G4Para& para, const G4int copyNo,
0126 const G4VPhysicalVolume* pv) const override;
0127
0128
0129 private:
0130
0131 void ComputeDimensions (G4Cons&,const G4int,
0132 const G4VPhysicalVolume*) const override {}
0133 void ComputeDimensions (G4Box&,const G4int,
0134 const G4VPhysicalVolume*) const override {}
0135 void ComputeDimensions (G4Sphere&,const G4int,
0136 const G4VPhysicalVolume*) const override {}
0137 void ComputeDimensions (G4Orb&,const G4int,
0138 const G4VPhysicalVolume*) const override {}
0139 void ComputeDimensions (G4Ellipsoid&,const G4int,
0140 const G4VPhysicalVolume*) const override {}
0141 void ComputeDimensions (G4Torus&,const G4int,
0142 const G4VPhysicalVolume*) const override {}
0143 void ComputeDimensions (G4Trd&,const G4int,
0144 const G4VPhysicalVolume*) const override {}
0145 void ComputeDimensions (G4Trap&,const G4int,
0146 const G4VPhysicalVolume*) const override {}
0147 void ComputeDimensions (G4Hype&,const G4int,
0148 const G4VPhysicalVolume*) const override {}
0149 void ComputeDimensions (G4Tubs&,const G4int,
0150 const G4VPhysicalVolume*) const override {}
0151 void ComputeDimensions (G4Polycone&,const G4int,
0152 const G4VPhysicalVolume*) const override {}
0153 void ComputeDimensions (G4Polyhedra&,const G4int,
0154 const G4VPhysicalVolume*) const override {}
0155 };
0156
0157
0158
0159
0160
0161
0162
0163 class G4ParameterisationParaY : public G4VParameterisationPara
0164 {
0165 public:
0166
0167
0168
0169
0170
0171
0172
0173
0174
0175
0176 G4ParameterisationParaY( EAxis axis, G4int nCopies,
0177 G4double offset, G4double step,
0178 G4VSolid* msolid, DivisionType divType );
0179
0180
0181
0182
0183 ~G4ParameterisationParaY() override;
0184
0185
0186
0187
0188
0189 G4double GetMaxParameter() const override;
0190
0191
0192
0193
0194 void ComputeTransformation( const G4int copyNo,
0195 G4VPhysicalVolume* physVol ) const override;
0196 void ComputeDimensions(G4Para& para, const G4int copyNo,
0197 const G4VPhysicalVolume* pv) const override;
0198
0199
0200 private:
0201
0202 void ComputeDimensions (G4Cons&,const G4int,
0203 const G4VPhysicalVolume*) const override {}
0204 void ComputeDimensions (G4Box&,const G4int,
0205 const G4VPhysicalVolume*) const override {}
0206 void ComputeDimensions (G4Sphere&,const G4int,
0207 const G4VPhysicalVolume*) const override {}
0208 void ComputeDimensions (G4Orb&,const G4int,
0209 const G4VPhysicalVolume*) const override {}
0210 void ComputeDimensions (G4Ellipsoid&,const G4int,
0211 const G4VPhysicalVolume*) const override {}
0212 void ComputeDimensions (G4Torus&,const G4int,
0213 const G4VPhysicalVolume*) const override {}
0214 void ComputeDimensions (G4Trd&,const G4int,
0215 const G4VPhysicalVolume*) const override {}
0216 void ComputeDimensions (G4Trap&,const G4int,
0217 const G4VPhysicalVolume*) const override {}
0218 void ComputeDimensions (G4Hype&,const G4int,
0219 const G4VPhysicalVolume*) const override {}
0220 void ComputeDimensions (G4Tubs&,const G4int,
0221 const G4VPhysicalVolume*) const override {}
0222 void ComputeDimensions (G4Polycone&,const G4int,
0223 const G4VPhysicalVolume*) const override {}
0224 void ComputeDimensions (G4Polyhedra&,const G4int,
0225 const G4VPhysicalVolume*) const override {}
0226 };
0227
0228
0229
0230
0231
0232
0233
0234 class G4ParameterisationParaZ : public G4VParameterisationPara
0235 {
0236 public:
0237
0238
0239
0240
0241
0242
0243
0244
0245
0246
0247 G4ParameterisationParaZ( EAxis axis, G4int nCopies,
0248 G4double offset, G4double step,
0249 G4VSolid* msolid, DivisionType divType );
0250
0251
0252
0253
0254 ~G4ParameterisationParaZ() override;
0255
0256
0257
0258
0259
0260 G4double GetMaxParameter() const override;
0261
0262
0263
0264
0265 void ComputeTransformation( const G4int copyNo,
0266 G4VPhysicalVolume* physVol ) const override;
0267 void ComputeDimensions(G4Para& para, const G4int copyNo,
0268 const G4VPhysicalVolume* pv) const override;
0269
0270
0271 private:
0272
0273 void ComputeDimensions (G4Cons&,const G4int,
0274 const G4VPhysicalVolume*) const override {}
0275 void ComputeDimensions (G4Box&,const G4int,
0276 const G4VPhysicalVolume*) const override {}
0277 void ComputeDimensions (G4Sphere&,const G4int,
0278 const G4VPhysicalVolume*) const override {}
0279 void ComputeDimensions (G4Orb&,const G4int,
0280 const G4VPhysicalVolume*) const override {}
0281 void ComputeDimensions (G4Ellipsoid&,const G4int,
0282 const G4VPhysicalVolume*) const override {}
0283 void ComputeDimensions (G4Torus&,const G4int,
0284 const G4VPhysicalVolume*) const override {}
0285 void ComputeDimensions (G4Trd&,const G4int,
0286 const G4VPhysicalVolume*) const override {}
0287 void ComputeDimensions (G4Trap&,const G4int,
0288 const G4VPhysicalVolume*) const override {}
0289 void ComputeDimensions (G4Hype&,const G4int,
0290 const G4VPhysicalVolume*) const override {}
0291 void ComputeDimensions (G4Tubs&,const G4int,
0292 const G4VPhysicalVolume*) const override {}
0293 void ComputeDimensions (G4Polycone&,const G4int,
0294 const G4VPhysicalVolume*) const override {}
0295 void ComputeDimensions (G4Polyhedra&,const G4int,
0296 const G4VPhysicalVolume*) const override {}
0297 };
0298
0299 #endif