source: trunk/source/g3tog4/src/G4gsvolu.cc @ 1232

Last change on this file since 1232 was 1228, checked in by garnier, 14 years ago

update geant4.9.3 tag

File size: 3.3 KB
Line 
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//
27// $Id: G4gsvolu.cc,v 1.10 2006/06/29 18:15:06 gunter Exp $
28// GEANT4 tag $Name: geant4-09-03 $
29//
30// by I.Hrivnacova, 13.10.99
31
32#include <iomanip>
33#include "G3VolTable.hh"
34#include "globals.hh"
35#include "G3toG4.hh"
36#include "G3toG4MakeSolid.hh"
37
38void PG4gsvolu(G4String tokens[]) {
39    // fill the parameter containers
40    G3fillParams(tokens,PTgsvolu);
41
42    // interpret the parameters
43    G4String vname = Spar[0];
44    G4String shape = Spar[1];
45    G4int nmed = Ipar[0];
46    G4int npar = Ipar[1];
47    G4double *pars = Rpar;
48
49    G4gsvolu(vname, shape, nmed, pars, npar);
50}
51
52G3VolTableEntry* G4CreateVTE(G4String vname, G4String shape, G4int nmed,
53                             G4double Rpar[], G4int npar)
54{   
55  // create the solid
56  G4bool hasNegPars;
57  G4bool deferred;   
58  G4bool okAxis[3];
59  G4VSolid* solid
60    = G3toG4MakeSolid(vname, shape, Rpar, npar, hasNegPars, deferred, okAxis); 
61
62  // if solid has been deferred
63  // VTE is created with hasNegPars = true 
64  if (deferred) hasNegPars = true;   
65
66  // create VTE
67  G3VolTableEntry* vte
68     = new G3VolTableEntry(vname, shape, Rpar, npar, nmed, solid, hasNegPars);
69  G3Vol.PutVTE(vte);
70 
71  return vte;
72}
73
74void G4gsvolu(G4String vname, G4String shape, G4int nmed, G4double* Rpar,
75              G4int npar)
76{
77  /*
78  G4cout << "Creating logical volume " << vname << " shape " << shape
79         << " nmed " << nmed << " #pars "<< npar << " parameters (cm): ";
80  for (int ipar=0; ipar< npar; ipar++) G4cout << std::setw(8) << Rpar[ipar];
81  G4cout << G4endl;
82  */
83  if (G3Vol.GetVTE(vname)) {
84    // abort if VTE with given name exists
85    G4Exception("G4gsvolu: Attempt to create volume " + vname + " twice.");
86  }
87  else { 
88    G4CreateVTE(vname, shape, nmed, Rpar, npar);
89  } 
90}
Note: See TracBrowser for help on using the repository browser.