Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 // G4ParameterisationBox[X/Y/Z] 27 // 28 // Class description: 29 // 30 // These classes represent the parameterised p 31 // dividing a G4Box along one of each axis X, 32 33 // 09.05.01 - P.Arce, Initial version 34 // 08.04.04 - I.Hrivnacova, Implemented reflec 35 // ------------------------------------------- 36 #ifndef G4PARAMETERISATIONBOX_HH 37 #define G4PARAMETERISATIONBOX_HH 1 38 39 #include "G4VDivisionParameterisation.hh" 40 41 class G4VSolid; 42 class G4VPhysicalVolume; 43 44 // Dummy declarations to get rid of warnings . 45 // 46 class G4Cons; 47 class G4Trd; 48 class G4Sphere; 49 class G4Orb; 50 class G4Ellipsoid; 51 class G4Torus; 52 class G4Para; 53 class G4Hype; 54 class G4Tubs; 55 class G4Polycone; 56 class G4Polyhedra; 57 58 class G4VParameterisationBox : public G4VDivis 59 { 60 public: // with description 61 62 G4VParameterisationBox( EAxis axis, G4int 63 G4double offset, G 64 G4VSolid* msolid, 65 66 ~G4VParameterisationBox() override; 67 }; 68 69 class G4ParameterisationBoxX : public G4VParam 70 { 71 public: // with description 72 73 G4ParameterisationBoxX( EAxis axis, G4int 74 G4double offset, G 75 G4VSolid* msolid, 76 ~G4ParameterisationBoxX() override; 77 78 G4double GetMaxParameter() const override; 79 80 void ComputeTransformation( const G4int co 81 G4VPhysi 82 void ComputeDimensions(G4Box& box, const G 83 const G4VPhysicalVo 84 85 private: // Dummy declarations to get rid 86 87 void ComputeDimensions (G4Cons&,const G4in 88 const G4VPhysicalV 89 void ComputeDimensions (G4Trd&,const G4int 90 const G4VPhysicalV 91 void ComputeDimensions (G4Sphere&,const G4 92 const G4VPhysicalV 93 void ComputeDimensions (G4Orb&,const G4int 94 const G4VPhysicalV 95 void ComputeDimensions (G4Ellipsoid&,const 96 const G4VPhysicalV 97 void ComputeDimensions (G4Torus&,const G4i 98 const G4VPhysicalV 99 void ComputeDimensions (G4Para&,const G4in 100 const G4VPhysicalV 101 void ComputeDimensions (G4Trap&,const G4in 102 const G4VPhysicalV 103 void ComputeDimensions (G4Hype&,const G4in 104 const G4VPhysicalV 105 void ComputeDimensions (G4Tubs&,const G4in 106 const G4VPhysicalV 107 void ComputeDimensions (G4Polycone&,const 108 const G4VPhysicalV 109 void ComputeDimensions (G4Polyhedra&,const 110 const G4VPhysicalV 111 }; 112 113 class G4ParameterisationBoxY : public G4VParam 114 { 115 public: // with description 116 117 G4ParameterisationBoxY( EAxis axis, G4int 118 G4double offset, G 119 G4VSolid* msolid, 120 ~G4ParameterisationBoxY() override; 121 122 G4double GetMaxParameter() const override; 123 124 void ComputeTransformation( const G4int co 125 G4VPhysi 126 127 void ComputeDimensions(G4Box& box, const G 128 const G4VPhysicalVo 129 130 private: // Dummy declarations to get rid o 131 132 void ComputeDimensions (G4Cons&,const G4in 133 const G4VPhysicalV 134 void ComputeDimensions (G4Trd&,const G4int 135 const G4VPhysicalV 136 void ComputeDimensions (G4Sphere&,const G4 137 const G4VPhysicalV 138 void ComputeDimensions (G4Orb&,const G4int 139 const G4VPhysicalV 140 void ComputeDimensions (G4Ellipsoid&,const 141 const G4VPhysicalV 142 void ComputeDimensions (G4Torus&,const G4i 143 const G4VPhysicalV 144 void ComputeDimensions (G4Para&,const G4in 145 const G4VPhysicalV 146 void ComputeDimensions (G4Trap&,const G4in 147 const G4VPhysicalV 148 void ComputeDimensions (G4Hype&,const G4in 149 const G4VPhysicalV 150 void ComputeDimensions (G4Tubs&,const G4in 151 const G4VPhysicalV 152 void ComputeDimensions (G4Polycone&,const 153 const G4VPhysicalV 154 void ComputeDimensions (G4Polyhedra&,const 155 const G4VPhysicalV 156 }; 157 158 class G4ParameterisationBoxZ : public G4VParam 159 { 160 public: // with description 161 162 G4ParameterisationBoxZ( EAxis axis, G4int 163 G4double offset, G 164 G4VSolid* msolid, 165 ~G4ParameterisationBoxZ() override; 166 167 G4double GetMaxParameter() const override; 168 169 void ComputeTransformation( const G4int co 170 G4VPhysi 171 void ComputeDimensions(G4Box& box, const G 172 const G4VPhysicalVo 173 174 private: // Dummy declarations to get rid o 175 176 void ComputeDimensions (G4Cons&,const G4in 177 const G4VPhysicalV 178 void ComputeDimensions (G4Trd&,const G4int 179 const G4VPhysicalV 180 void ComputeDimensions (G4Sphere&,const G4 181 const G4VPhysicalV 182 void ComputeDimensions (G4Orb&,const G4int 183 const G4VPhysicalV 184 void ComputeDimensions (G4Ellipsoid&,const 185 const G4VPhysicalV 186 void ComputeDimensions (G4Torus&,const G4i 187 const G4VPhysicalV 188 void ComputeDimensions (G4Para&,const G4in 189 const G4VPhysicalV 190 void ComputeDimensions (G4Trap&,const G4in 191 const G4VPhysicalV 192 void ComputeDimensions (G4Hype&,const G4in 193 const G4VPhysicalV 194 void ComputeDimensions (G4Tubs&,const G4in 195 const G4VPhysicalV 196 void ComputeDimensions (G4Polycone&,const 197 const G4VPhysicalV 198 void ComputeDimensions (G4Polyhedra&,const 199 const G4VPhysicalV 200 }; 201 202 #endif 203