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 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 class G4VParameterisationPara : public G4VDivisionParameterisation
0059 {
0060 public:
0061
0062 G4VParameterisationPara( EAxis axis, G4int nCopies,
0063 G4double offset, G4double step,
0064 G4VSolid* msolid, DivisionType divType );
0065
0066 ~G4VParameterisationPara() override;
0067 };
0068
0069 class G4ParameterisationParaX : public G4VParameterisationPara
0070 {
0071 public:
0072
0073 G4ParameterisationParaX( EAxis axis, G4int nCopies,
0074 G4double offset, G4double step,
0075 G4VSolid* msolid, DivisionType divType );
0076 ~G4ParameterisationParaX() override;
0077
0078 G4double GetMaxParameter() const override;
0079
0080 void ComputeTransformation( const G4int copyNo,
0081 G4VPhysicalVolume* physVol ) const override;
0082 void ComputeDimensions(G4Para& para, const G4int copyNo,
0083 const G4VPhysicalVolume* pv) const override;
0084
0085
0086 private:
0087
0088 void ComputeDimensions (G4Cons&,const G4int,
0089 const G4VPhysicalVolume*) const override {}
0090 void ComputeDimensions (G4Box&,const G4int,
0091 const G4VPhysicalVolume*) const override {}
0092 void ComputeDimensions (G4Sphere&,const G4int,
0093 const G4VPhysicalVolume*) const override {}
0094 void ComputeDimensions (G4Orb&,const G4int,
0095 const G4VPhysicalVolume*) const override {}
0096 void ComputeDimensions (G4Ellipsoid&,const G4int,
0097 const G4VPhysicalVolume*) const override {}
0098 void ComputeDimensions (G4Torus&,const G4int,
0099 const G4VPhysicalVolume*) const override {}
0100 void ComputeDimensions (G4Trd&,const G4int,
0101 const G4VPhysicalVolume*) const override {}
0102 void ComputeDimensions (G4Trap&,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
0115 class G4ParameterisationParaY : public G4VParameterisationPara
0116 {
0117 public:
0118
0119 G4ParameterisationParaY( EAxis axis, G4int nCopies,
0120 G4double offset, G4double step,
0121 G4VSolid* msolid, DivisionType divType );
0122 ~G4ParameterisationParaY() override;
0123
0124 G4double GetMaxParameter() const override;
0125
0126 void ComputeTransformation( const G4int copyNo,
0127 G4VPhysicalVolume* physVol ) const override;
0128 void ComputeDimensions(G4Para& para, const G4int copyNo,
0129 const G4VPhysicalVolume* pv) const override;
0130
0131
0132 private:
0133
0134 void ComputeDimensions (G4Cons&,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 (G4Trd&,const G4int,
0147 const G4VPhysicalVolume*) const override {}
0148 void ComputeDimensions (G4Trap&,const G4int,
0149 const G4VPhysicalVolume*) const override {}
0150 void ComputeDimensions (G4Hype&,const G4int,
0151 const G4VPhysicalVolume*) const override {}
0152 void ComputeDimensions (G4Tubs&,const G4int,
0153 const G4VPhysicalVolume*) const override {}
0154 void ComputeDimensions (G4Polycone&,const G4int,
0155 const G4VPhysicalVolume*) const override {}
0156 void ComputeDimensions (G4Polyhedra&,const G4int,
0157 const G4VPhysicalVolume*) const override {}
0158 };
0159
0160
0161 class G4ParameterisationParaZ : public G4VParameterisationPara
0162 {
0163 public:
0164
0165 G4ParameterisationParaZ( EAxis axis, G4int nCopies,
0166 G4double offset, G4double step,
0167 G4VSolid* msolid, DivisionType divType );
0168 ~G4ParameterisationParaZ() override;
0169
0170 G4double GetMaxParameter() const override;
0171
0172 void ComputeTransformation( const G4int copyNo,
0173 G4VPhysicalVolume* physVol ) const override;
0174 void ComputeDimensions(G4Para& para, const G4int copyNo,
0175 const G4VPhysicalVolume* pv) const override;
0176
0177
0178 private:
0179
0180 void ComputeDimensions (G4Cons&,const G4int,
0181 const G4VPhysicalVolume*) const override {}
0182 void ComputeDimensions (G4Box&,const G4int,
0183 const G4VPhysicalVolume*) const override {}
0184 void ComputeDimensions (G4Sphere&,const G4int,
0185 const G4VPhysicalVolume*) const override {}
0186 void ComputeDimensions (G4Orb&,const G4int,
0187 const G4VPhysicalVolume*) const override {}
0188 void ComputeDimensions (G4Ellipsoid&,const G4int,
0189 const G4VPhysicalVolume*) const override {}
0190 void ComputeDimensions (G4Torus&,const G4int,
0191 const G4VPhysicalVolume*) const override {}
0192 void ComputeDimensions (G4Trd&,const G4int,
0193 const G4VPhysicalVolume*) const override {}
0194 void ComputeDimensions (G4Trap&,const G4int,
0195 const G4VPhysicalVolume*) const override {}
0196 void ComputeDimensions (G4Hype&,const G4int,
0197 const G4VPhysicalVolume*) const override {}
0198 void ComputeDimensions (G4Tubs&,const G4int,
0199 const G4VPhysicalVolume*) const override {}
0200 void ComputeDimensions (G4Polycone&,const G4int,
0201 const G4VPhysicalVolume*) const override {}
0202 void ComputeDimensions (G4Polyhedra&,const G4int,
0203 const G4VPhysicalVolume*) const override {}
0204 };
0205
0206 #endif