Analysis Software
Documentation for
sPHENIX
simulation software
Home page
Related Pages
Modules
Namespaces
Classes
Files
Examples
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
PHG4Prototype2OuterHcalDetector.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file PHG4Prototype2OuterHcalDetector.h
1
// Tell emacs that this is a C++ source
2
// -*- C++ -*-.
3
#ifndef G4CALOPROTOTYPE_PHG4PROTOTYPE2OUTERHCALDETECTOR_H
4
#define G4CALOPROTOTYPE_PHG4PROTOTYPE2OUTERHCALDETECTOR_H
5
6
#include <
g4main/PHG4Detector.h
>
7
8
#include <Geant4/G4TwoVector.hh>
9
10
#include <map>
11
#include <set>
12
#include <string>
// for string
13
14
class
G4AssemblyVolume;
15
class
G4LogicalVolume;
16
class
G4VPhysicalVolume
;
17
class
PHCompositeNode
;
18
class
PHG4Subsystem
;
19
class
PHParameters
;
20
21
class
PHG4Prototype2OuterHcalDetector
:
public
PHG4Detector
22
{
23
public
:
25
PHG4Prototype2OuterHcalDetector
(
PHG4Subsystem
* subsys,
PHCompositeNode
* Node,
PHParameters
*
parameters
,
const
std::string
& dnam);
26
28
virtual
~PHG4Prototype2OuterHcalDetector
();
29
31
virtual
void
ConstructMe
(G4LogicalVolume* world);
32
33
virtual
void
Print
(
const
std::string
& what =
"ALL"
)
const
;
34
36
37
int
IsInPrototype2OuterHcal
(
G4VPhysicalVolume
*)
const
;
39
40
void
SuperDetector
(
const
std::string
&
name
) {
m_SuperDetector
=
name
; }
41
const
std::string
SuperDetector
()
const
{
return
m_SuperDetector
; }
42
int
get_Layer
()
const
{
return
m_Layer
; }
43
44
G4LogicalVolume*
ConstructSteelPlate
(G4LogicalVolume* hcalenvelope);
45
G4LogicalVolume*
ConstructScintillatorBox
(G4LogicalVolume* hcalenvelope);
46
G4LogicalVolume*
ConstructScintillatorBoxHiEta
(G4LogicalVolume* hcalenvelope);
47
G4LogicalVolume*
ConstructScintiTileU1
(G4LogicalVolume* hcalenvelope);
48
G4LogicalVolume*
ConstructScintiTileU2
(G4LogicalVolume* hcalenvelope);
49
G4LogicalVolume*
ConstructScintiTile9
(G4LogicalVolume* hcalenvelope);
50
G4LogicalVolume*
ConstructScintiTile10
(G4LogicalVolume* hcalenvelope);
51
G4LogicalVolume*
ConstructScintiTile11
(G4LogicalVolume* hcalenvelope);
52
G4LogicalVolume*
ConstructScintiTile12
(G4LogicalVolume* hcalenvelope);
53
double
GetScintiAngle
();
54
55
int
get_scinti_row_id
(
const
std::string
& volname);
56
int
get_steel_plate_id
(
const
std::string
& volname);
57
58
private
:
59
int
ConstructOuterHcal
(G4LogicalVolume* sandwich);
60
std::set<G4LogicalVolume*>
m_ActiveVolumeSet
;
61
PHParameters
*
m_Params
;
62
G4LogicalVolume*
m_OuterHcalSteelPlate
;
63
G4AssemblyVolume*
m_OuterHcalAssembly
;
64
G4TwoVector
m_SteelPlateCornerUpperLeft
;
65
G4TwoVector
m_SteelPlateCornerUpperRight
;
66
G4TwoVector
m_SteelPlateCornerLowerRight
;
67
G4TwoVector
m_SteelPlateCornerLowerLeft
;
68
69
double
m_ScintiUoneFrontSize
;
70
G4TwoVector
m_ScintiUoneCornerUpperLeft
;
71
G4TwoVector
m_ScintiUoneCornerUpperRight
;
72
G4TwoVector
m_ScintiUoneCornerLowerRight
;
73
G4TwoVector
m_ScintiUoneCornerLowerLeft
;
74
75
G4TwoVector
m_ScintiU2CornerUpperLeft
;
76
G4TwoVector
m_ScintiU2CornerUpperRight
;
77
G4TwoVector
m_ScintiU2CornerLowerRight
;
78
G4TwoVector
m_ScintiU2CornerLowerLeft
;
79
double
m_ScintiT9DistanceToCorner
;
80
double
m_ScintiT9FrontSize
;
81
G4TwoVector
m_ScintiT9CornerUpperLeft
;
82
G4TwoVector
m_ScintiT9CornerUpperRight
;
83
G4TwoVector
m_ScintiT9CornerLowerRight
;
84
G4TwoVector
m_ScintiT9CornerLowerLeft
;
85
86
double
m_ScintiT10FrontSize
;
87
G4TwoVector
m_ScintiT10CornerUpperLeft
;
88
G4TwoVector
m_ScintiT10CornerUpperRight
;
89
G4TwoVector
m_ScintiT10CornerLowerRight
;
90
G4TwoVector
m_ScintiT10CornerLowerLeft
;
91
92
double
m_ScintiT11FrontSize
;
93
G4TwoVector
m_ScintiT11CornerUpperLeft
;
94
G4TwoVector
m_ScintiT11CornerUpperRight
;
95
G4TwoVector
m_ScintiT11CornerLowerRight
;
96
G4TwoVector
m_ScintiT11CornerLowerLeft
;
97
98
double
m_ScintiT12FrontSize
;
99
G4TwoVector
m_ScintiT12CornerUpperLeft
;
100
G4TwoVector
m_ScintiT12CornerUpperRight
;
101
G4TwoVector
m_ScintiT12CornerLowerRight
;
102
G4TwoVector
m_ScintiT12CornerLowerLeft
;
103
104
double
m_ScintiX
;
105
double
m_ScintiXHiEta
;
106
double
m_SteelZ
;
107
double
m_SizeZ
;
108
double
m_ScintiTileZ
;
109
double
m_ScintiTileThickness
;
110
double
m_ScintiBoxSmaller
;
111
double
m_GapBetweenTiles
;
112
double
m_ScintiGap
;
113
double
m_TiltAngle
;
114
double
m_DeltaPhi
;
115
double
m_VolumeSteel
;
116
double
m_VolumeScintillator
;
117
118
int
m_NScintiPlates
;
119
int
m_NSteelPlates
;
120
121
int
m_ActiveFlag
;
122
int
m_AbsorberActiveFlag
;
123
124
int
m_Layer
;
125
std::string
m_SuperDetector
;
126
std::map<std::string, int>
m_SteelPlateIdMap
;
127
std::map<std::string, int>
m_ScintillatorIdMap
;
128
};
129
130
#endif
prototype
blob
master
simulation
g4simulation
g4caloprototype
PHG4Prototype2OuterHcalDetector.h
Built by
Jin Huang
. updated:
Sat Feb 17 2024 22:18:29
using
1.8.2 with
sPHENIX GitHub integration