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 /// \file materials/include/G4LatticePhysical. 27 /// \brief Definition of the G4LatticePhysical 28 // 29 // 20131114 Add verbosity for diagnostic outp 30 // 20131116 Replace G4Transform3D with G4Rota 31 32 #ifndef G4LatticePhysical_h 33 #define G4LatticePhysical_h 1 34 35 #include "G4LatticeLogical.hh" 36 #include "G4RotationMatrix.hh" 37 #include "G4ThreeVector.hh" 38 39 class G4LatticePhysical 40 { 41 public: 42 G4LatticePhysical(const G4LatticeLogical* La 43 const G4RotationMatrix* Rot = nullptr); / 44 virtual ~G4LatticePhysical() = default; 45 46 void SetVerboseLevel(G4int vb) { verboseLeve 47 48 // NOTE: Pass by value to allow in-situ rot 49 G4double MapKtoV(G4int, G4ThreeVector) const 50 G4ThreeVector MapKtoVDir(G4int, G4ThreeVecto 51 52 void SetLatticeLogical(const G4LatticeLogica 53 void SetPhysicalOrientation(const G4Rotation 54 void SetLatticeOrientation(G4double, G4doubl 55 void SetMillerOrientation(G4int, G4int, G4in 56 57 public: 58 const G4LatticeLogical* GetLattice() const { 59 60 G4double GetScatteringConstant() const { ret 61 G4double GetAnhDecConstant() const { return 62 G4double GetLDOS() const { return fLattice-> 63 G4double GetSTDOS() const { return fLattice- 64 G4double GetFTDOS() const { return fLattice- 65 G4double GetBeta() const { return fLattice-> 66 G4double GetGamma() const { return fLattice- 67 G4double GetLambda() const { return fLattice 68 G4double GetMu() const { return fLattice->Ge 69 70 // Apply orientation transforms to specified 71 G4ThreeVector RotateToGlobal(const G4ThreeVe 72 G4ThreeVector RotateToLocal(const G4ThreeVec 73 74 private: 75 G4int verboseLevel{0}; // Enable diagnostic 76 77 G4double fTheta{0}, fPhi{0}; // Lattice ori 78 const G4LatticeLogical* fLattice; // Underl 79 80 G4RotationMatrix fLocalToGlobal; 81 G4RotationMatrix fGlobalToLocal; 82 }; 83 84 #endif 85