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 G4PARAMETERISATIONCONS_HH
0037 #define G4PARAMETERISATIONCONS_HH 1
0038
0039 #include "G4VDivisionParameterisation.hh"
0040
0041 class G4VSolid;
0042 class G4VPhysicalVolume;
0043
0044
0045
0046 class G4Trd;
0047 class G4Trap;
0048 class G4Box;
0049 class G4Sphere;
0050 class G4Orb;
0051 class G4Ellipsoid;
0052 class G4Torus;
0053 class G4Para;
0054 class G4Hype;
0055 class G4Tubs;
0056 class G4Polycone;
0057 class G4Polyhedra;
0058
0059 class G4VParameterisationCons : public G4VDivisionParameterisation
0060 {
0061 public:
0062
0063 G4VParameterisationCons( EAxis axis, G4int nCopies,
0064 G4double offset, G4double step,
0065 G4VSolid* msolid, DivisionType divType );
0066
0067 ~G4VParameterisationCons() override;
0068 };
0069
0070 class G4ParameterisationConsRho : public G4VParameterisationCons
0071 {
0072 public:
0073
0074 G4ParameterisationConsRho( EAxis axis, G4int nCopies,
0075 G4double offset, G4double step,
0076 G4VSolid* motherSolid, DivisionType divType );
0077 ~G4ParameterisationConsRho() override;
0078
0079 G4double GetMaxParameter() const override;
0080
0081 void ComputeTransformation( const G4int copyNo,
0082 G4VPhysicalVolume* physVol ) const override;
0083 void ComputeDimensions( G4Cons& tubs, const G4int copyNo,
0084 const G4VPhysicalVolume* physVol) const override;
0085
0086 private:
0087
0088 void ComputeDimensions (G4Trd&,const G4int,
0089 const G4VPhysicalVolume*) const override {}
0090 void ComputeDimensions (G4Trap&,const G4int,
0091 const G4VPhysicalVolume*) const override {}
0092 void ComputeDimensions (G4Box&,const G4int,
0093 const G4VPhysicalVolume*) const override {}
0094 void ComputeDimensions (G4Sphere&,const G4int,
0095 const G4VPhysicalVolume*) const override {}
0096 void ComputeDimensions (G4Orb&,const G4int,
0097 const G4VPhysicalVolume*) const override {}
0098 void ComputeDimensions (G4Ellipsoid&,const G4int,
0099 const G4VPhysicalVolume*) const override {}
0100 void ComputeDimensions (G4Torus&,const G4int,
0101 const G4VPhysicalVolume*) const override {}
0102 void ComputeDimensions (G4Para&,const G4int,
0103 const G4VPhysicalVolume*) const override {}
0104 void ComputeDimensions (G4Hype&,const G4int,
0105 const G4VPhysicalVolume*) const override {}
0106 void ComputeDimensions (G4Tubs&,const G4int,
0107 const G4VPhysicalVolume*) const override {}
0108 void ComputeDimensions (G4Polycone&,const G4int,
0109 const G4VPhysicalVolume*) const override {}
0110 void ComputeDimensions (G4Polyhedra&,const G4int,
0111 const G4VPhysicalVolume*) const override {}
0112 };
0113
0114 class G4ParameterisationConsPhi : public G4VParameterisationCons
0115 {
0116 public:
0117
0118 G4ParameterisationConsPhi( EAxis axis, G4int nCopies,
0119 G4double offset, G4double step,
0120 G4VSolid* motherSolid, DivisionType divType );
0121 ~G4ParameterisationConsPhi() override;
0122
0123 G4double GetMaxParameter() const override;
0124
0125 void ComputeTransformation( const G4int copyNo,
0126 G4VPhysicalVolume* physVol ) const override;
0127 void ComputeDimensions( G4Cons& tubs, const G4int copyNo,
0128 const G4VPhysicalVolume* physVol ) const override;
0129
0130 private:
0131
0132 void ComputeDimensions (G4Trd&,const G4int,
0133 const G4VPhysicalVolume*) const override {}
0134 void ComputeDimensions (G4Trap&,const G4int,
0135 const G4VPhysicalVolume*) const override {}
0136 void ComputeDimensions (G4Box&,const G4int,
0137 const G4VPhysicalVolume*) const override {}
0138 void ComputeDimensions (G4Sphere&,const G4int,
0139 const G4VPhysicalVolume*) const override {}
0140 void ComputeDimensions (G4Orb&,const G4int,
0141 const G4VPhysicalVolume*) const override {}
0142 void ComputeDimensions (G4Ellipsoid&,const G4int,
0143 const G4VPhysicalVolume*) const override {}
0144 void ComputeDimensions (G4Torus&,const G4int,
0145 const G4VPhysicalVolume*) const override {}
0146 void ComputeDimensions (G4Para&,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 G4ParameterisationConsZ : public G4VParameterisationCons
0159 {
0160 public:
0161
0162 G4ParameterisationConsZ( EAxis axis, G4int nCopies,
0163 G4double offset, G4double step,
0164 G4VSolid* motherSolid, DivisionType divType );
0165 ~G4ParameterisationConsZ() override;
0166
0167 G4double GetMaxParameter() const override;
0168
0169 void ComputeTransformation( const G4int copyNo,
0170 G4VPhysicalVolume* physVol ) const override;
0171 void ComputeDimensions( G4Cons& tubs, const G4int copyNo,
0172 const G4VPhysicalVolume* physVol ) const override;
0173
0174 private:
0175
0176 void ComputeDimensions (G4Trd&,const G4int,
0177 const G4VPhysicalVolume*) const override {}
0178 void ComputeDimensions (G4Trap&,const G4int,
0179 const G4VPhysicalVolume*) const override {}
0180 void ComputeDimensions (G4Box&,const G4int,
0181 const G4VPhysicalVolume*) const override {}
0182 void ComputeDimensions (G4Sphere&,const G4int,
0183 const G4VPhysicalVolume*) const override {}
0184 void ComputeDimensions (G4Orb&,const G4int,
0185 const G4VPhysicalVolume*) const override {}
0186 void ComputeDimensions (G4Ellipsoid&,const G4int,
0187 const G4VPhysicalVolume*) const override {}
0188 void ComputeDimensions (G4Torus&,const G4int,
0189 const G4VPhysicalVolume*) const override {}
0190 void ComputeDimensions (G4Para&,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