Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/geometry/solids/specific/include/G4TwistedTrap.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 ]

  1 //
  2 // ********************************************************************
  3 // * License and Disclaimer                                           *
  4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.                             *
 10 // *                                                                  *
 11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                                                  *
 18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // ********************************************************************
 25 //
 26 // G4TwistedTrap
 27 //
 28 // Class description:
 29 //
 30 //  A G4TwistedTrap is a general twisted trapezoid: The faces perpendicular to the
 31 //  z planes are trapezia, and their centres are not necessarily on
 32 //  a line parallel to the z axis.
 33 //
 34 //      pDz     Half-length along the z-axis
 35 //      pTheta  Polar angle of the line joining the centres of the faces
 36 //              at -/+pDz
 37 //      pPhi    Azimuthal angle of the line joing the centre of the face at
 38 //              -pDz to the centre of the face at +pDz
 39 //      pDy1    Half-length along y of the face at -pDz
 40 //      pDx1    Half-length along x of the side at y=-pDy1 of the face at -pDz
 41 //      pDx2    Half-length along x of the side at y=+pDy1 of the face at -pDz
 42 //
 43 //      pDy2    Half-length along y of the face at +pDz
 44 //      pDx3    Half-length along x of the side at y=-pDy2 of the face at +pDz
 45 //      pDx4    Half-length along x of the side at y=+pDy2 of the face at +pDz
 46 //      pAlph   Angle with respect to the y axis from the centre of the side
 47 //
 48 //
 49 //  A special regular case of a trapezoid with equal endcaps is available, 
 50 //  with polar,azimuthal and tilt angles set to zero.
 51 //
 52  
 53 // Author: 27-Oct-2004 - O.Link (Oliver.Link@cern.ch)
 54 // --------------------------------------------------------------------
 55 #ifndef G4TWISTEDTRAP_HH
 56 #define G4TWISTEDTRAP_HH
 57 
 58 #include "G4VTwistedFaceted.hh"
 59 
 60 class G4TwistedTrap : public G4VTwistedFaceted
 61 {
 62   public:
 63 
 64     G4TwistedTrap(const G4String& pName,
 65                         G4double  pPhiTwist,
 66                         G4double  pDx1,  // half x length at -pDz,-pDy
 67                         G4double  pDx2,  // half x length at -pDz,+pDy
 68                         G4double  pDy,
 69                         G4double  pDz);
 70 
 71 
 72     G4TwistedTrap(const G4String& pName,       // Name of instance
 73                         G4double  pPhiTwist,   // twist angle
 74                         G4double  pDz,     // half z length
 75                         G4double  pTheta,  // direction between end planes
 76                         G4double  pPhi,    // defined by polar and azim. angles
 77                         G4double  pDy1,    // half y length at -pDz
 78                         G4double  pDx1,    // half x length at -pDz,-pDy
 79                         G4double  pDx2,    // half x length at -pDz,+pDy
 80                         G4double  pDy2,    // half y length at +pDz
 81                         G4double  pDx3,    // half x length at +pDz,-pDy
 82                         G4double  pDx4,    // half x length at +pDz,+pDy
 83                         G4double  pAlph    // tilt angle
 84                   );
 85  
 86     ~G4TwistedTrap() override;
 87 
 88     // accessors
 89 
 90     inline G4double GetY1HalfLength() const { return GetDy1() ; }
 91     inline G4double GetX1HalfLength() const { return GetDx1() ; }
 92     inline G4double GetX2HalfLength() const { return GetDx2() ; }
 93     inline G4double GetY2HalfLength() const { return GetDy2() ; }
 94     inline G4double GetX3HalfLength() const { return GetDx3() ; }
 95     inline G4double GetX4HalfLength() const { return GetDx4() ; }
 96     inline G4double GetZHalfLength()  const { return GetDz()  ; }
 97     inline G4double GetPhiTwist()     const { return GetTwistAngle() ; }
 98     inline G4double GetTiltAngleAlpha()    const { return GetAlpha() ; }
 99     inline G4double GetPolarAngleTheta()   const { return GetTheta() ; }
100     inline G4double GetAzimuthalAnglePhi() const { return GetPhi()   ; }
101 
102     G4GeometryType GetEntityType() const override;
103 
104     G4VSolid* Clone() const override;
105 
106     std::ostream &StreamInfo(std::ostream& os) const override;
107 
108     G4TwistedTrap(__void__&);
109       // Fake default constructor for usage restricted to direct object
110       // persistency for clients requiring preallocation of memory for
111       // persistifiable objects.
112 
113     G4TwistedTrap(const G4TwistedTrap& rhs);
114     G4TwistedTrap& operator=(const G4TwistedTrap& rhs); 
115       // Copy constructor and assignment operator.
116 } ;
117 
118 #endif
119