Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G3Division.hh
Go to the documentation of this file.
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$
28//
29// ----------------------
30// Class description:
31//
32// This class tranforms G3 divided volumes to G4 replicated volumes.
33// UpdateVTE() method checks parameters of mother volume
34// and in case they are complete the solid that will be replicated
35// is created. In case of division with offset an additinal envelope
36// VTE (G3VolTableEntry instance) is created.
37// CreatePVReplica() methods creates the G4PVReplica instance.
38
39// ----------------------
40//
41// by I.Hrivnacova, V.Berejnoi, 27 Sep 99
42
43#ifndef G3DIVISION_HH
44#define G3DIVISION_HH 1
45
46#include "globals.hh"
47#include "geomdefs.hh"
48
49class G3VolTableEntry;
51class G4LogicalVolume;
52
54
56{
57 public: // with description
58
60 G4int nofDivision, G4int iaxis, G4int nmed, G4double c0,
61 G4double step);
63 const G3Division& division);
64 virtual ~G3Division();
65
66 // methods
67 void UpdateVTE();
68 void CreatePVReplica();
69
70 private:
71
72 // methods
73 void SetRangeAndAxis();
74 void CreateSolid(G4String shape, G4double par[], G4int npar);
75 G3VolTableEntry* CreateEnvelope(G4String shape, G4double hi, G4double lo,
76 G4double par[], G4int npar);
77 G3VolTableEntry* Dvn ();
78 G3VolTableEntry* Dvn2();
79 G3VolTableEntry* Dvt ();
80 G3VolTableEntry* Dvt2();
81 void Exception(G4String where, G4String what);
82
83 // data members
84 G3DivType fType;
85 G3VolTableEntry* fVTE;
86 G3VolTableEntry* fMVTE;
87 G4int fNofDivisions; // ndiv/ndvmx
88 G4int fIAxis;
89 G4int fNmed;
90 G4double fC0;
91 G4double fStep;
92 G4double fLowRange;
93 G4double fHighRange;
94 G4double fWidth;
95 G4double fOffset;
96 EAxis fAxis;
97};
98
99#endif //G3_DIVISION_H
G3DivType
Definition: G3Division.hh:53
@ kDvt
Definition: G3Division.hh:53
@ kDvt2
Definition: G3Division.hh:53
@ kDvn2
Definition: G3Division.hh:53
@ kDvn
Definition: G3Division.hh:53
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
void CreatePVReplica()
Definition: G3Division.cc:126
void UpdateVTE()
Definition: G3Division.cc:95
virtual ~G3Division()
Definition: G3Division.cc:90
EAxis
Definition: geomdefs.hh:54