Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/geometry/solids/CSG/include/G4Trd.hh

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /geometry/solids/CSG/include/G4Trd.hh (Version 11.3.0) and /geometry/solids/CSG/include/G4Trd.hh (Version ReleaseNotes)


** Warning: Cannot open xref database.

  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 // G4Trd                                          
 27 //                                                
 28 // Class description:                             
 29 //                                                
 30 //   A G4Trd is a trapezoid with the x and y d    
 31 //   functions:                                   
 32 //                                                
 33 //   Member Data:                                 
 34 //                                                
 35 //     fDx1    Half-length along x at the surf    
 36 //     fDx2    Half-length along x at the surf    
 37 //     fDy1    Half-length along y at the surf    
 38 //     fDy2    Half-length along y at the surf    
 39 //     fDz     Half-length along z axis           
 40                                                   
 41 // 12.01.95 P.Kent: Old prototype code convert    
 42 // 21.04.97 J.Apostolakis: Added Set Methods      
 43 // 19.11.99 V.Grichine: kUndefined was added t    
 44 // -------------------------------------------    
 45 #ifndef G4TRD_HH                                  
 46 #define G4TRD_HH                                  
 47                                                   
 48 #include "G4GeomTypes.hh"                         
 49                                                   
 50 #if defined(G4GEOM_USE_USOLIDS)                   
 51 #define G4GEOM_USE_UTRD 1                         
 52 #endif                                            
 53                                                   
 54 #if defined(G4GEOM_USE_UTRD)                      
 55   #define G4UTrd G4Trd                            
 56   #include "G4UTrd.hh"                            
 57 #else                                             
 58                                                   
 59 #include "G4CSGSolid.hh"                          
 60 #include "G4Polyhedron.hh"                        
 61                                                   
 62 class G4Trd : public G4CSGSolid                   
 63 {                                                 
 64   public:                                         
 65                                                   
 66     G4Trd( const G4String& pName,                 
 67                  G4double pdx1, G4double pdx2,    
 68                  G4double pdy1, G4double pdy2,    
 69                  G4double pdz );                  
 70       //                                          
 71       // Constructs a trapezoid with name, and    
 72                                                   
 73    ~G4Trd() override;                             
 74       //                                          
 75       // Destructor                               
 76                                                   
 77     // Accessors                                  
 78                                                   
 79     inline G4double GetXHalfLength1() const;      
 80     inline G4double GetXHalfLength2() const;      
 81     inline G4double GetYHalfLength1() const;      
 82     inline G4double GetYHalfLength2() const;      
 83     inline G4double GetZHalfLength()  const;      
 84                                                   
 85     // Modifiers                                  
 86                                                   
 87     inline void SetXHalfLength1(G4double val);    
 88     inline void SetXHalfLength2(G4double val);    
 89     inline void SetYHalfLength1(G4double val);    
 90     inline void SetYHalfLength2(G4double val);    
 91     inline void SetZHalfLength(G4double val);     
 92                                                   
 93     void SetAllParameters ( G4double pdx1, G4d    
 94                             G4double pdy1, G4d    
 95                             G4double pdz );       
 96                                                   
 97     // Methods of solid                           
 98                                                   
 99     G4double GetCubicVolume() override;           
100     G4double GetSurfaceArea() override;           
101                                                   
102     void ComputeDimensions(       G4VPVParamet    
103                             const G4int n,        
104                             const G4VPhysicalV    
105                                                   
106     void BoundingLimits(G4ThreeVector& pMin, G    
107                                                   
108     G4bool CalculateExtent(const EAxis pAxis,     
109                            const G4VoxelLimits    
110                            const G4AffineTrans    
111                                  G4double& pMi    
112                                                   
113     EInside Inside( const G4ThreeVector& p ) c    
114                                                   
115     G4ThreeVector SurfaceNormal( const G4Three    
116                                                   
117     G4double DistanceToIn( const G4ThreeVector    
118                            const G4ThreeVector    
119                                                   
120     G4double DistanceToIn( const G4ThreeVector    
121                                                   
122     G4double DistanceToOut( const G4ThreeVecto    
123                             const G4ThreeVecto    
124                             const G4bool calcN    
125                                   G4bool* vali    
126                                   G4ThreeVecto    
127                                                   
128     G4double DistanceToOut( const G4ThreeVecto    
129                                                   
130     G4GeometryType GetEntityType() const overr    
131                                                   
132     G4ThreeVector GetPointOnSurface() const ov    
133                                                   
134     G4bool IsFaceted() const override;            
135                                                   
136     G4VSolid* Clone() const override;             
137                                                   
138     std::ostream& StreamInfo( std::ostream& os    
139                                                   
140     // Visualisation functions                    
141                                                   
142     void          DescribeYourselfTo (G4VGraph    
143     G4Polyhedron* CreatePolyhedron   () const     
144                                                   
145     G4Trd(__void__&);                             
146       // Fake default constructor for usage re    
147       // persistency for clients requiring pre    
148       // persistifiable objects.                  
149                                                   
150     G4Trd(const G4Trd& rhs);                      
151     G4Trd& operator=(const G4Trd& rhs);           
152       // Copy constructor and assignment opera    
153                                                   
154   private:                                        
155                                                   
156     void CheckParameters();                       
157       // Check parameters                         
158                                                   
159     void MakePlanes();                            
160       // Set side planes                          
161                                                   
162     G4ThreeVector ApproxSurfaceNormal( const G    
163       // Algorithm for SurfaceNormal() followi    
164       // specification for points not on the s    
165                                                   
166   private:                                        
167                                                   
168     G4double halfCarTolerance;                    
169     G4double fDx1,fDx2,fDy1,fDy2,fDz,fHx,fHy;     
170     struct { G4double a,b,c,d; } fPlanes[4];      
171 };                                                
172                                                   
173 #include "G4Trd.icc"                              
174                                                   
175 #endif                                            
176                                                   
177 #endif                                            
178