Geant4
v4-10.4-release
메인 페이지
관련된 페이지
모듈
네임스페이스
클래스
파일들
파일 목록
파일 멤버
모두
클래스
네임스페이스들
파일들
함수
변수
타입정의
열거형 타입
열거형 멤버
Friends
매크로
그룹들
페이지들
examples
extended
eventgenerator
HepMC
HepMCEx01
src
eventgenerator/HepMC/HepMCEx01/src/ExN04CalorimeterROGeometry.cc
이 파일의 문서화 페이지로 가기
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
//
28
//
29
// $Id: ExN04CalorimeterROGeometry.cc 77801 2013-11-28 13:33:20Z gcosmo $
30
//
31
32
#include "
G4Box.hh
"
33
#include "
G4LogicalVolume.hh
"
34
#include "
G4Material.hh
"
35
#include "
G4PVPlacement.hh
"
36
#include "
G4PVReplica.hh
"
37
#include "
G4SDManager.hh
"
38
#include "
G4SystemOfUnits.hh
"
39
#include "
G4ThreeVector.hh
"
40
#include "
G4Tubs.hh
"
41
#include "
G4VPhysicalVolume.hh
"
42
#include "ExN04CalorimeterROGeometry.hh"
43
#include "ExN04DummySD.hh"
44
45
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
46
ExN04CalorimeterROGeometry::ExN04CalorimeterROGeometry
()
47
:
G4VReadOutGeometry
()
48
{
49
#include "ExN04DetectorParameterDef.icc"
50
}
51
52
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
53
ExN04CalorimeterROGeometry::ExN04CalorimeterROGeometry
(
G4String
aString)
54
:
G4VReadOutGeometry
(aString)
55
{
56
#include "ExN04DetectorParameterDef.icc"
57
}
58
59
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
60
ExN04CalorimeterROGeometry::~ExN04CalorimeterROGeometry
()
61
{
62
}
63
64
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
65
G4VPhysicalVolume
*
ExN04CalorimeterROGeometry::Build
()
66
{
67
// A dummy material is used to fill the volumes of the readout geometry.
68
// ( It will be allowed to set a NULL pointer in volumes of such virtual
69
// division in future, since this material is irrelevant for tracking.)
70
G4Material
*
dummyMat
=
71
new
G4Material
(
name
=
"dummyMat"
, 1., 1.*
g
/
mole
, 1.*
g
/
cm3
);
72
73
//Builds the ReadOut World:
74
G4Box
* ROWorldBox =
new
G4Box
(
"ROWorldBox"
,
75
fexpHall_x
,
fexpHall_y
,
fexpHall_z
);
76
G4LogicalVolume
* ROWorldLog =
new
G4LogicalVolume
(ROWorldBox, dummyMat,
77
"ROWorldLogical"
, 0, 0, 0);
78
G4PVPlacement
* ROWorldPhys =
new
G4PVPlacement
(0,
G4ThreeVector
(),
79
"ROWorldPhysical"
,
80
ROWorldLog,
81
0,
false
, 0);
82
// Calorimeter volume:
83
G4VSolid
* caloROtub
84
=
new
G4Tubs
(
"caloROtub"
,
fcaloTubs_rmin
,
fcaloTubs_rmax
,
85
fcaloTubs_dz
,
fcaloTubs_sphi
,
fcaloTubs_dphi
);
86
G4LogicalVolume
* caloROlog
87
=
new
G4LogicalVolume
(caloROtub, dummyMat,
"caloROlogical"
,0,0,0);
88
G4VPhysicalVolume
* caloROphys
89
=
new
G4PVPlacement
(0,
G4ThreeVector
(),
"calROphysical"
, caloROlog,
90
ROWorldPhys,
false
, 0);
91
92
// -------------------------------
93
// Calorimeter readout division:
94
// -------------------------------
95
// Phi division first: 48 sectors
96
G4VSolid
* caloROphiDivisionTub
97
=
new
G4Tubs
(
"caloROphiDivision"
,
fcaloCell_rmin
,
fcaloCell_rmax
,
98
fcaloCell_dz
,
fcaloCell_sphi
,
fcaloCell_dphi
);
99
G4LogicalVolume
* caloROphiDivisionLog
100
=
new
G4LogicalVolume
(caloROphiDivisionTub,
101
dummyMat,
"caloROphiDivisionLogical"
,0,0,0);
102
G4VPhysicalVolume
* caloROphiDivisionPhys
103
=
new
G4PVReplica
(
"caloROphiDivisionPhysical"
, caloROphiDivisionLog,
104
caloROphys,
kPhi
,
fsegmentsinPhi
,
fcaloCell_dphi
);
105
// then z division: 20 slices:
106
G4VSolid
* caloROcellTub
107
=
new
G4Tubs
(
"caloROcellTub"
,
fcaloRing_rmin
,
fcaloRing_rmax
,
108
fcaloRing_dz
,
fcaloRing_sphi
,
fcaloRing_dphi
);
109
G4LogicalVolume
* caloROcellLog
110
=
new
G4LogicalVolume
(caloROcellTub, dummyMat,
"caloROcellLogical"
,0,0,0);
111
// G4VPhysicalVolume * caloROcellPhys =
112
new
G4PVReplica
(
"caloROcellPhysical"
, caloROcellLog, caloROphiDivisionPhys,
113
kZAxis
,
fsegmentsinZ
, 2.*
fcaloRing_dz
);
114
115
116
//Flags the cells as sensitive .The pointer here serves
117
// as a flag only to check for sensitivity.
118
// (Could we make it by a simple cast of a non-NULL value ?)
119
ExN04DummySD
* dummySensi =
new
ExN04DummySD
;
120
caloROcellLog->
SetSensitiveDetector
(dummySensi);
121
122
return
ROWorldPhys;
123
}
kPhi
Definition:
geomdefs.hh:54
name
const XML_Char * name
Definition:
expat.h:151
ExN04CalorimeterROGeometry::fsegmentsinPhi
G4int fsegmentsinPhi
Definition:
eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterROGeometry.hh:65
ExN04CalorimeterROGeometry::fcaloTubs_rmin
G4double fcaloTubs_rmin
Definition:
eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterROGeometry.hh:49
G4PVReplica
Definition:
G4PVReplica.hh:119
ExN04CalorimeterROGeometry::fcaloTubs_rmax
G4double fcaloTubs_rmax
Definition:
eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterROGeometry.hh:48
G4ThreeVector
CLHEP::Hep3Vector G4ThreeVector
Definition:
G4ThreeVector.hh:42
G4VSolid
Definition:
G4VSolid.hh:87
G4VReadOutGeometry
Definition:
G4VReadOutGeometry.hh:40
kZAxis
Definition:
geomdefs.hh:54
G4Material.hh
ExN04CalorimeterROGeometry::~ExN04CalorimeterROGeometry
~ExN04CalorimeterROGeometry()
Definition:
eventgenerator/HepMC/HepMCEx01/src/ExN04CalorimeterROGeometry.cc:60
G4Tubs
Definition:
G4Tubs.hh:85
ExN04CalorimeterROGeometry::fcaloTubs_dz
G4double fcaloTubs_dz
Definition:
eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterROGeometry.hh:50
G4Material
Definition:
G4Material.hh:121
ExN04CalorimeterROGeometry::fsegmentsinZ
G4int fsegmentsinZ
Definition:
eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterROGeometry.hh:58
G4String
Definition:
examples/extended/parallel/TopC/ParN02/AnnotatedFiles/G4String.hh:45
ExN04CalorimeterROGeometry::fexpHall_z
G4double fexpHall_z
Definition:
eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterROGeometry.hh:35
ExN04CalorimeterROGeometry::fcaloRing_dz
G4double fcaloRing_dz
Definition:
eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterROGeometry.hh:61
ExN04CalorimeterROGeometry::fcaloCell_rmax
G4double fcaloCell_rmax
Definition:
eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterROGeometry.hh:66
ExN04CalorimeterROGeometry::fcaloRing_rmax
G4double fcaloRing_rmax
Definition:
eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterROGeometry.hh:59
ExN04CalorimeterROGeometry::fexpHall_x
G4double fexpHall_x
Definition:
eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterROGeometry.hh:33
ExN04CalorimeterROGeometry::dummyMat
G4Material * dummyMat
Definition:
parallel/TopC/ParN04/include/ExN04CalorimeterROGeometry.hh:47
g
static constexpr double g
Definition:
G4SIunits.hh:183
ExN04CalorimeterROGeometry::fcaloRing_rmin
G4double fcaloRing_rmin
Definition:
eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterROGeometry.hh:60
G4VPhysicalVolume.hh
ExN04CalorimeterROGeometry::fcaloCell_dz
G4double fcaloCell_dz
Definition:
eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterROGeometry.hh:68
G4Box
Definition:
G4Box.hh:64
ExN04CalorimeterROGeometry::ExN04CalorimeterROGeometry
ExN04CalorimeterROGeometry()
ExN04CalorimeterROGeometry::fcaloCell_dphi
G4double fcaloCell_dphi
Definition:
eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterROGeometry.hh:70
G4SystemOfUnits.hh
ExN04CalorimeterROGeometry::fcaloCell_rmin
G4double fcaloCell_rmin
Definition:
eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterROGeometry.hh:67
G4Box.hh
G4ThreeVector.hh
ExN04CalorimeterROGeometry::Build
G4VPhysicalVolume * Build()
Definition:
eventgenerator/HepMC/HepMCEx01/src/ExN04CalorimeterROGeometry.cc:65
G4LogicalVolume.hh
G4PVPlacement.hh
G4PVPlacement
Definition:
G4PVPlacement.hh:51
G4SDManager.hh
G4Tubs.hh
G4LogicalVolume
Definition:
G4LogicalVolume.hh:190
ExN04CalorimeterROGeometry::fcaloTubs_dphi
G4double fcaloTubs_dphi
Definition:
eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterROGeometry.hh:52
ExN04DummySD
Definition:
eventgenerator/HepMC/HepMCEx01/include/ExN04DummySD.hh:42
G4VPhysicalVolume
Definition:
G4VPhysicalVolume.hh:82
ExN04CalorimeterROGeometry::fcaloCell_sphi
G4double fcaloCell_sphi
Definition:
eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterROGeometry.hh:69
ExN04CalorimeterROGeometry::fcaloTubs_sphi
G4double fcaloTubs_sphi
Definition:
eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterROGeometry.hh:51
mole
static constexpr double mole
Definition:
G4SIunits.hh:286
ExN04CalorimeterROGeometry::fcaloRing_dphi
G4double fcaloRing_dphi
Definition:
eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterROGeometry.hh:63
G4PVReplica.hh
ExN04CalorimeterROGeometry::fcaloRing_sphi
G4double fcaloRing_sphi
Definition:
eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterROGeometry.hh:62
cm3
static constexpr double cm3
Definition:
G4SIunits.hh:121
ExN04CalorimeterROGeometry::fexpHall_y
G4double fexpHall_y
Definition:
eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterROGeometry.hh:34
G4LogicalVolume::SetSensitiveDetector
void SetSensitiveDetector(G4VSensitiveDetector *pSDetector)
Definition:
G4LogicalVolume.cc:444
다음에 의해 생성됨 :
1.8.5