Geant4 Cross Reference |
1 // 1 // 2 // ******************************************* 2 // ******************************************************************** 3 // * License and Disclaimer << 3 // * DISCLAIMER * 4 // * 4 // * * 5 // * The Geant4 software is copyright of th << 5 // * The following disclaimer summarizes all the specific disclaimers * 6 // * the Geant4 Collaboration. It is provided << 6 // * of contributors to this software. The specific disclaimers,which * 7 // * conditions of the Geant4 Software License << 7 // * govern, are listed with their locations in: * 8 // * LICENSE and available at http://cern.ch/ << 8 // * http://cern.ch/geant4/license * 9 // * include a list of copyright holders. << 10 // * 9 // * * 11 // * Neither the authors of this software syst 10 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 11 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 12 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 13 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file << 14 // * use. * 16 // * for the full disclaimer and the limitatio << 17 // * 15 // * * 18 // * This code implementation is the result << 16 // * This code implementation is the intellectual property of the * 19 // * technical work of the GEANT4 collaboratio << 17 // * GEANT4 collaboration. * 20 // * By using, copying, modifying or distri << 18 // * By copying, distributing or modifying the Program (or any work * 21 // * any work based on the software) you ag << 19 // * based on the Program) you indicate your acceptance of this * 22 // * use in resulting scientific publicati << 20 // * statement, and all its terms. * 23 // * acceptance of all terms of the Geant4 Sof << 24 // ******************************************* 21 // ******************************************************************** 25 // 22 // 26 // 23 // >> 24 // $Id: G4VModel.cc,v 1.9 2003/06/16 17:14:32 gunter Exp $ >> 25 // GEANT4 tag $Name: geant4-05-02-patch-01 $ 27 // 26 // 28 // 27 // 29 // John Allison 31st December 1997. 28 // John Allison 31st December 1997. 30 // Base class for models. 29 // Base class for models. 31 30 32 #include "G4VModel.hh" 31 #include "G4VModel.hh" 33 32 34 #include "G4RotationMatrix.hh" << 35 #include "G4ModelingParameters.hh" 33 #include "G4ModelingParameters.hh" 36 34 37 G4VModel::G4VModel (const G4ModelingParameters << 35 G4VModel::G4VModel (const G4Transform3D& modelTransformation, 38 fType ("Other"), << 36 const G4ModelingParameters* pMP): 39 fGlobalTag ("Empty"), << 37 fTransform (modelTransformation), 40 fGlobalDescription ("Empty"), << 41 fpMP (pMP) 38 fpMP (pMP) 42 {} << 39 { >> 40 fGlobalTag = "Default Global Tag"; >> 41 fGlobalDescription = "Default Global Description"; >> 42 } 43 43 44 G4VModel::~G4VModel () {} 44 G4VModel::~G4VModel () {} 45 45 46 G4String G4VModel::GetCurrentTag () const { 46 G4String G4VModel::GetCurrentTag () const { 47 // Override in concrete class if concept of << 47 return G4String("Default Current Tag"); 48 return fGlobalTag; << 49 } 48 } 50 49 51 G4String G4VModel::GetCurrentDescription () co 50 G4String G4VModel::GetCurrentDescription () const { 52 // Override in concrete class if concept of << 51 return G4String("Default Current Description"); 53 return fGlobalDescription; << 54 } 52 } 55 53 56 G4bool G4VModel::Validate (G4bool) { 54 G4bool G4VModel::Validate (G4bool) { 57 return true; 55 return true; 58 } 56 } 59 57 60 std::ostream& operator << (std::ostream& os, c << 58 std::ostream& operator << (std::ostream& os, const G4VModel& m) { 61 os << model.fGlobalDescription; << 59 os << m.fGlobalDescription; 62 os << "\n Modeling parameters:"; 60 os << "\n Modeling parameters:"; 63 const G4ModelingParameters* mp = model.fpMP; << 61 if (m.fpMP) { 64 if (mp) os << "\n " << *mp; << 62 os << "\n " << *(m.fpMP); 65 else os << " none."; << 63 } 66 os << "\n Extent: " << model.fExtent; << 64 else { >> 65 os << " none."; >> 66 } >> 67 os << "\n Extent: " << m.fExtent; >> 68 os << "\n Transformation: "; >> 69 os << "\n Rotation: "; >> 70 HepRotation rotation = m.fTransform.getRotation (); >> 71 os << rotation.thetaX() << ", " >> 72 << rotation.phiX() << ", " >> 73 << rotation.thetaY() << ", " >> 74 << rotation.phiY() << ", " >> 75 << rotation.thetaZ() << ", " >> 76 << rotation.phiZ(); >> 77 os << "\n Translation: " << m.fTransform.getTranslation (); 67 return os; 78 return os; 68 } 79 } 69 80