Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/geometry/solids/specific/src/G4TwistedTrap.cc

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 implementation
 27 //
 28 // Author: 10/11/2004 - O.Link (Oliver.Link@cern.ch)
 29 // --------------------------------------------------------------------
 30 
 31 #include "G4TwistedTrap.hh"
 32 #include "G4SystemOfUnits.hh"
 33 #include "G4Polyhedron.hh"
 34 
 35 //=====================================================================
 36 //* Constructors ------------------------------------------------------
 37 
 38 G4TwistedTrap::G4TwistedTrap( const G4String& pName,
 39                                     G4double  pPhiTwist,
 40                                     G4double  pDx1,
 41                                     G4double  pDx2,
 42                                     G4double  pDy,
 43                                     G4double  pDz )
 44   : G4VTwistedFaceted( pName, pPhiTwist,pDz,0.,0.,
 45                        pDy, pDx1, pDx2, pDy, pDx1, pDx2,0. )
 46 {
 47 }
 48 
 49 G4TwistedTrap::
 50 G4TwistedTrap(const G4String& pName,      // Name of instance
 51                     G4double  pPhiTwist,  // twist angle
 52                     G4double  pDz,        // half z length
 53                     G4double  pTheta,  // direction between end planes
 54                     G4double  pPhi,    // defined by polar and azimuthal angles
 55                     G4double  pDy1,    // half y length at -pDz
 56                     G4double  pDx1,    // half x length at -pDz,-pDy
 57                     G4double  pDx2,    // half x length at -pDz,+pDy
 58                     G4double  pDy2,    // half y length at +pDz
 59                     G4double  pDx3,    // half x length at +pDz,-pDy
 60                     G4double  pDx4,    // half x length at +pDz,+pDy
 61                     G4double  pAlph )  // tilt angle
 62   : G4VTwistedFaceted( pName, pPhiTwist, pDz, pTheta,
 63                        pPhi, pDy1, pDx1, pDx2, pDy2, pDx3, pDx4, pAlph )
 64 {
 65 }
 66 
 67 //=====================================================================
 68 // Fake default constructor - sets only member data and allocates memory
 69 //                            for usage restricted to object persistency.
 70 
 71 G4TwistedTrap::G4TwistedTrap( __void__& a )
 72   : G4VTwistedFaceted(a)
 73 {
 74 }
 75 
 76 //=====================================================================
 77 //* Destructor --------------------------------------------------------
 78 
 79 G4TwistedTrap::~G4TwistedTrap() = default;
 80 
 81 //=====================================================================
 82 //* Copy constructor --------------------------------------------------
 83 
 84 G4TwistedTrap::G4TwistedTrap(const G4TwistedTrap& rhs)
 85   : G4VTwistedFaceted(rhs)
 86 {
 87   fpPolyhedron = GetPolyhedron();
 88 }
 89 
 90 //=====================================================================
 91 //* Assignment operator -----------------------------------------------
 92 
 93 G4TwistedTrap& G4TwistedTrap::operator = (const G4TwistedTrap& rhs) 
 94 {
 95    // Check assignment to self
 96    //
 97    if (this == &rhs)  { return *this; }
 98 
 99    // Copy base class data
100    //
101    G4VTwistedFaceted::operator=(rhs);
102    fpPolyhedron = GetPolyhedron();
103 
104    return *this;
105 }
106 
107 //=====================================================================
108 //* StreamInfo --------------------------------------------------------
109 
110 std::ostream& G4TwistedTrap::StreamInfo(std::ostream& os) const
111 {
112   //
113   // Stream object contents to an output stream
114   //
115   os << "-----------------------------------------------------------\n"
116      << "    *** Dump for solid - " << GetName() << " ***\n"
117      << "    ===================================================\n"
118      << " Solid type: G4TwistedTrap\n"
119      << " Parameters: \n"
120      << "    Twist angle         = " << GetPhiTwist()/degree << " deg"
121      << G4endl 
122      << "    Polar Angle Theta   = " << GetPolarAngleTheta()/degree << " deg"
123      << G4endl 
124      << "    Azimuthal Angle Phi = " << GetAzimuthalAnglePhi()/degree << " deg"
125      << G4endl 
126      << "    pDy1 = " << GetY1HalfLength()/cm << " cm" << G4endl
127      << "    pDx1 = " << GetX1HalfLength()/cm << " cm" << G4endl
128      << "    pDx2 = " << GetX2HalfLength()/cm << " cm" << G4endl
129      << "    pDy2 = " << GetY2HalfLength()/cm << " cm" << G4endl
130      << "    pDx3 = " << GetX3HalfLength()/cm << " cm" << G4endl
131      << "    pDx4 = " << GetX4HalfLength()/cm << " cm" << G4endl
132      << "    pDz = "  << GetZHalfLength()/cm << " cm" << G4endl
133      << "    Tilt Angle Alpha    = " << GetTiltAngleAlpha()/degree << " deg"
134      << G4endl 
135      << "-----------------------------------------------------------\n";
136 
137   return os;
138 }
139 
140 //=====================================================================
141 //* GetEntityType -----------------------------------------------------
142 
143 G4GeometryType G4TwistedTrap::GetEntityType() const
144 {
145   return {"G4TwistedTrap"};
146 }
147 
148 //=====================================================================
149 //* Clone -------------------------------------------------------------
150 
151 G4VSolid* G4TwistedTrap::Clone() const
152 {
153   return new G4TwistedTrap(*this);
154 }
155