Geant4_10
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
source
examples
extended
biasing
GB02
src
GB02DetectorConstruction.cc
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
#include "
GB02DetectorConstruction.hh
"
27
#include "
G4SystemOfUnits.hh
"
28
29
#include "
G4Material.hh
"
30
#include "
G4NistManager.hh
"
31
32
#include "
G4Box.hh
"
33
#include "
G4LogicalVolume.hh
"
34
#include "
G4LogicalVolumeStore.hh
"
35
#include "
G4PVPlacement.hh
"
36
#include "
G4UniformMagField.hh
"
37
38
#include "
G4VisAttributes.hh
"
39
#include "
G4Colour.hh
"
40
41
#include "
G4NistManager.hh
"
42
43
#include "
GB02BOptrMultiParticleForceCollision.hh
"
44
45
46
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
47
48
GB02DetectorConstruction::GB02DetectorConstruction
()
49
{}
50
51
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
52
53
GB02DetectorConstruction::~GB02DetectorConstruction
()
54
{}
55
56
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
57
58
G4VPhysicalVolume
*
GB02DetectorConstruction::Construct
()
59
{
60
G4Material
* worldMaterial =
G4NistManager::Instance
()->
FindOrBuildMaterial
(
"G4_Galactic"
);
61
G4Material
* defaultMaterial =
G4NistManager::Instance
()->
FindOrBuildMaterial
(
"G4_lN2"
);
62
63
64
G4VSolid
* solidWorld =
new
G4Box
(
"World"
, 10*
m
, 10*
m
, 10*
m
);
65
66
G4LogicalVolume
* logicWorld =
new
G4LogicalVolume
(solidWorld,
//its solid
67
worldMaterial,
//its material
68
"World"
);
//its name
69
70
G4PVPlacement
* physiWorld =
new
G4PVPlacement
(0,
//no rotation
71
G4ThreeVector
(),
//at (0,0,0)
72
logicWorld,
//its logical volume
73
"World"
,
//its name
74
0,
//its mother volume
75
false
,
//no boolean operation
76
0);
//copy number
77
78
// -----------------------------------
79
// -- volume where biasing is applied:
80
// -----------------------------------
81
G4double
halfZ = 10*
cm
;
82
G4VSolid
* solidTest =
new
G4Box
(
"test.solid"
, 1*
m
, 1*
m
, halfZ );
83
84
G4LogicalVolume
* logicTest =
new
G4LogicalVolume
(solidTest,
//its solid
85
defaultMaterial,
//its material
86
"test.logical"
);
//its name
87
88
new
G4PVPlacement
(0,
// no rotation
89
G4ThreeVector
(0,0, halfZ),
// volume entrance at (0,0,0)
90
logicTest,
// its logical volume
91
"test.phys"
,
// its name
92
logicWorld,
// its mother volume
93
false
,
// no boolean operation
94
0);
// copy number
95
96
97
return
physiWorld;
98
}
99
100
101
void
GB02DetectorConstruction::ConstructSDandField
()
102
{
103
// -- Fetch volume for biasing:
104
G4LogicalVolume
* logicTest =
G4LogicalVolumeStore::GetInstance
()->
GetVolume
(
"test.logical"
);
105
106
// ----------------------------------------------
107
// -- operator creation and attachment to volume:
108
// ----------------------------------------------
109
GB02BOptrMultiParticleForceCollision
* testMany =
new
GB02BOptrMultiParticleForceCollision
();
110
testMany->
AddParticle
(
"gamma"
);
111
testMany->
AddParticle
(
"neutron"
);
112
testMany->
AttachTo
(logicTest);
113
G4cout
<<
" Attaching biasing operator "
<< testMany->
GetName
()
114
<<
" to logical volume "
<< logicTest->
GetName
()
115
<<
G4endl
;
116
}
G4NistManager::FindOrBuildMaterial
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
Definition:
G4NistManager.hh:446
GB02DetectorConstruction::Construct
virtual G4VPhysicalVolume * Construct()
Definition:
GB02DetectorConstruction.cc:58
G4UniformMagField.hh
G4LogicalVolume::GetName
G4String GetName() const
G4ThreeVector
CLHEP::Hep3Vector G4ThreeVector
Definition:
G4ThreeVector.hh:42
G4PVPlacement
Definition:
G4PVPlacement.hh:51
G4VPhysicalVolume
Definition:
G4VPhysicalVolume.hh:80
G4Box
Definition:
G4Box.hh:63
G4NistManager.hh
GB02DetectorConstruction.hh
G4Material
Definition:
G4Material.hh:118
G4Box.hh
python.hepunit.m
m
Definition:
hepunit.py:54
G4NistManager::Instance
static G4NistManager * Instance()
Definition:
G4NistManager.cc:68
G4LogicalVolumeStore::GetVolume
G4LogicalVolume * GetVolume(const G4String &name, G4bool verbose=true) const
Definition:
G4LogicalVolumeStore.cc:159
GB02BOptrMultiParticleForceCollision::AddParticle
void AddParticle(G4String particleName)
Definition:
GB02BOptrMultiParticleForceCollision.cc:38
G4VisAttributes.hh
GB02DetectorConstruction::~GB02DetectorConstruction
~GB02DetectorConstruction()
Definition:
GB02DetectorConstruction.cc:53
G4VSolid
Definition:
G4VSolid.hh:87
G4cout
G4GLOB_DLL std::ostream G4cout
G4Material.hh
G4Colour.hh
G4LogicalVolume
Definition:
G4LogicalVolume.hh:187
G4LogicalVolumeStore::GetInstance
static G4LogicalVolumeStore * GetInstance()
Definition:
G4LogicalVolumeStore.cc:181
python.hepunit.cm
cm
Definition:
hepunit.py:50
G4VBiasingOperator::AttachTo
void AttachTo(const G4LogicalVolume *)
Definition:
G4VBiasingOperator.cc:47
G4LogicalVolume.hh
GB02BOptrMultiParticleForceCollision
Definition:
GB02BOptrMultiParticleForceCollision.hh:35
GB02DetectorConstruction::GB02DetectorConstruction
GB02DetectorConstruction()
Definition:
GB02DetectorConstruction.cc:48
G4endl
#define G4endl
Definition:
G4ios.hh:61
G4LogicalVolumeStore.hh
GB02BOptrMultiParticleForceCollision.hh
G4double
double G4double
Definition:
G4Types.hh:76
G4SystemOfUnits.hh
G4PVPlacement.hh
G4VBiasingOperator::GetName
const G4String GetName() const
Definition:
G4VBiasingOperator.hh:277
GB02DetectorConstruction::ConstructSDandField
virtual void ConstructSDandField()
Definition:
GB02DetectorConstruction.cc:101
Generated on Sat Dec 14 2013 14:33:06 for Geant4_10 by
1.8.5