File indexing completed on 2025-01-18 09:58:50
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 class G4VParameterisationBox : public G4VDivisionParameterisation
0059 {
0060 public:
0061
0062 G4VParameterisationBox( EAxis axis, G4int nCopies,
0063 G4double offset, G4double step,
0064 G4VSolid* msolid, DivisionType divType );
0065
0066 ~G4VParameterisationBox() override;
0067 };
0068
0069 class G4ParameterisationBoxX : public G4VParameterisationBox
0070 {
0071 public:
0072
0073 G4ParameterisationBoxX( EAxis axis, G4int nCopies,
0074 G4double offset, G4double step,
0075 G4VSolid* msolid, DivisionType divType );
0076 ~G4ParameterisationBoxX() override;
0077
0078 G4double GetMaxParameter() const override;
0079
0080 void ComputeTransformation( const G4int copyNo,
0081 G4VPhysicalVolume* physVol ) const override;
0082 void ComputeDimensions(G4Box& box, const G4int copyNo,
0083 const G4VPhysicalVolume* physVol) const override;
0084
0085 private:
0086
0087 void ComputeDimensions (G4Cons&,const G4int,
0088 const G4VPhysicalVolume*) const override {}
0089 void ComputeDimensions (G4Trd&,const G4int,
0090 const G4VPhysicalVolume*) const override {}
0091 void ComputeDimensions (G4Sphere&,const G4int,
0092 const G4VPhysicalVolume*) const override {}
0093 void ComputeDimensions (G4Orb&,const G4int,
0094 const G4VPhysicalVolume*) const override {}
0095 void ComputeDimensions (G4Ellipsoid&,const G4int,
0096 const G4VPhysicalVolume*) const override {}
0097 void ComputeDimensions (G4Torus&,const G4int,
0098 const G4VPhysicalVolume*) const override {}
0099 void ComputeDimensions (G4Para&,const G4int,
0100 const G4VPhysicalVolume*) const override {}
0101 void ComputeDimensions (G4Trap&,const G4int,
0102 const G4VPhysicalVolume*) const override {}
0103 void ComputeDimensions (G4Hype&,const G4int,
0104 const G4VPhysicalVolume*) const override {}
0105 void ComputeDimensions (G4Tubs&,const G4int,
0106 const G4VPhysicalVolume*) const override {}
0107 void ComputeDimensions (G4Polycone&,const G4int,
0108 const G4VPhysicalVolume*) const override {}
0109 void ComputeDimensions (G4Polyhedra&,const G4int,
0110 const G4VPhysicalVolume*) const override {}
0111 };
0112
0113 class G4ParameterisationBoxY : public G4VParameterisationBox
0114 {
0115 public:
0116
0117 G4ParameterisationBoxY( EAxis axis, G4int nCopies,
0118 G4double offset, G4double step,
0119 G4VSolid* msolid, DivisionType divType );
0120 ~G4ParameterisationBoxY() override;
0121
0122 G4double GetMaxParameter() const override;
0123
0124 void ComputeTransformation( const G4int copyNo,
0125 G4VPhysicalVolume* physVol ) const override;
0126
0127 void ComputeDimensions(G4Box& box, const G4int copyNo,
0128 const G4VPhysicalVolume* physVol) const override;
0129
0130 private:
0131
0132 void ComputeDimensions (G4Cons&,const G4int,
0133 const G4VPhysicalVolume*) const override {}
0134 void ComputeDimensions (G4Trd&,const G4int,
0135 const G4VPhysicalVolume*) const override {}
0136 void ComputeDimensions (G4Sphere&,const G4int,
0137 const G4VPhysicalVolume*) const override {}
0138 void ComputeDimensions (G4Orb&,const G4int,
0139 const G4VPhysicalVolume*) const override {}
0140 void ComputeDimensions (G4Ellipsoid&,const G4int,
0141 const G4VPhysicalVolume*) const override {}
0142 void ComputeDimensions (G4Torus&,const G4int,
0143 const G4VPhysicalVolume*) const override {}
0144 void ComputeDimensions (G4Para&,const G4int,
0145 const G4VPhysicalVolume*) const override {}
0146 void ComputeDimensions (G4Trap&,const G4int,
0147 const G4VPhysicalVolume*) const override {}
0148 void ComputeDimensions (G4Hype&,const G4int,
0149 const G4VPhysicalVolume*) const override {}
0150 void ComputeDimensions (G4Tubs&,const G4int,
0151 const G4VPhysicalVolume*) const override {}
0152 void ComputeDimensions (G4Polycone&,const G4int,
0153 const G4VPhysicalVolume*) const override {}
0154 void ComputeDimensions (G4Polyhedra&,const G4int,
0155 const G4VPhysicalVolume*) const override {}
0156 };
0157
0158 class G4ParameterisationBoxZ : public G4VParameterisationBox
0159 {
0160 public:
0161
0162 G4ParameterisationBoxZ( EAxis axis, G4int nCopies,
0163 G4double offset, G4double step,
0164 G4VSolid* msolid, DivisionType divType );
0165 ~G4ParameterisationBoxZ() override;
0166
0167 G4double GetMaxParameter() const override;
0168
0169 void ComputeTransformation( const G4int copyNo,
0170 G4VPhysicalVolume* physVol ) const override;
0171 void ComputeDimensions(G4Box& box, const G4int copyNo,
0172 const G4VPhysicalVolume* physVol) const override;
0173
0174 private:
0175
0176 void ComputeDimensions (G4Cons&,const G4int,
0177 const G4VPhysicalVolume*) const override {}
0178 void ComputeDimensions (G4Trd&,const G4int,
0179 const G4VPhysicalVolume*) const override {}
0180 void ComputeDimensions (G4Sphere&,const G4int,
0181 const G4VPhysicalVolume*) const override {}
0182 void ComputeDimensions (G4Orb&,const G4int,
0183 const G4VPhysicalVolume*) const override {}
0184 void ComputeDimensions (G4Ellipsoid&,const G4int,
0185 const G4VPhysicalVolume*) const override {}
0186 void ComputeDimensions (G4Torus&,const G4int,
0187 const G4VPhysicalVolume*) const override {}
0188 void ComputeDimensions (G4Para&,const G4int,
0189 const G4VPhysicalVolume*) const override {}
0190 void ComputeDimensions (G4Trap&,const G4int,
0191 const G4VPhysicalVolume*) const override {}
0192 void ComputeDimensions (G4Hype&,const G4int,
0193 const G4VPhysicalVolume*) const override {}
0194 void ComputeDimensions (G4Tubs&,const G4int,
0195 const G4VPhysicalVolume*) const override {}
0196 void ComputeDimensions (G4Polycone&,const G4int,
0197 const G4VPhysicalVolume*) const override {}
0198 void ComputeDimensions (G4Polyhedra&,const G4int,
0199 const G4VPhysicalVolume*) const override {}
0200 };
0201
0202 #endif