ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G3Division.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G3Division.hh
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
//
28
// ----------------------
29
// Class description:
30
//
31
// This class tranforms G3 divided volumes to G4 replicated volumes.
32
// UpdateVTE() method checks parameters of mother volume
33
// and in case they are complete the solid that will be replicated
34
// is created. In case of division with offset an additinal envelope
35
// VTE (G3VolTableEntry instance) is created.
36
// CreatePVReplica() methods creates the G4PVReplica instance.
37
38
// ----------------------
39
//
40
// by I.Hrivnacova, V.Berejnoi, 27 Sep 99
41
42
#ifndef G3DIVISION_HH
43
#define G3DIVISION_HH 1
44
45
#include "
globals.hh
"
46
#include "
geomdefs.hh
"
47
48
class
G3VolTableEntry
;
49
class
G4VPhysicalVolume
;
50
class
G4LogicalVolume
;
51
52
enum
G3DivType
{
kDvn
,
kDvn2
,
kDvt
,
kDvt2
};
53
54
class
G3Division
55
{
56
public
:
// with description
57
58
G3Division
(
G3DivType
type,
G3VolTableEntry
* vte,
G3VolTableEntry
* mvte,
59
G4int
nofDivision,
G4int
iaxis,
G4int
nmed,
G4double
c0,
60
G4double
step
);
61
G3Division
(
G3VolTableEntry
* vte,
G3VolTableEntry
* mvte,
62
const
G3Division
& division);
63
virtual
~G3Division
();
64
65
// methods
66
void
UpdateVTE
();
67
void
CreatePVReplica
();
68
69
private
:
70
71
// methods
72
void
SetRangeAndAxis
();
73
void
CreateSolid
(
G4String
shape,
G4double
par[],
G4int
npar);
74
G3VolTableEntry
*
CreateEnvelope
(
G4String
shape,
G4double
hi,
G4double
lo,
75
G4double
par[],
G4int
npar);
76
G3VolTableEntry
*
Dvn
();
77
G3VolTableEntry
*
Dvn2
();
78
G3VolTableEntry
*
Dvt
();
79
G3VolTableEntry
*
Dvt2
();
80
void
Exception
(
G4String
where,
G4String
what);
81
82
// data members
83
G3DivType
fType
;
84
G3VolTableEntry
*
fVTE
;
85
G3VolTableEntry
*
fMVTE
;
86
G4int
fNofDivisions
;
// ndiv/ndvmx
87
G4int
fIAxis
;
88
G4int
fNmed
;
89
G4double
fC0
;
90
G4double
fStep
;
91
G4double
fLowRange
;
92
G4double
fHighRange
;
93
G4double
fWidth
;
94
G4double
fOffset
;
95
EAxis
fAxis
;
96
};
97
98
#endif //G3_DIVISION_H
geant4
tree
geant4-10.6-release
source
g3tog4
include
G3Division.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:15
using
1.8.2 with
ECCE GitHub integration