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
PHG4HcalSubsystem.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file PHG4HcalSubsystem.h
1
// Tell emacs that this is a C++ source
2
// -*- C++ -*-.
3
#ifndef G4DETECTORS_PHG4HCALSUBSYSTEM_H
4
#define G4DETECTORS_PHG4HCALSUBSYSTEM_H
5
6
#include <
g4main/PHG4Subsystem.h
>
7
8
#include <Geant4/G4String.hh>
9
#include <Geant4/G4Types.hh>
10
11
#include <string>
// for string
12
13
class
PHCompositeNode
;
14
class
PHG4Detector
;
15
class
PHG4HcalDetector
;
16
class
PHG4HcalSteppingAction
;
17
class
PHG4SteppingAction
;
18
19
class
PHG4HcalSubsystem
:
public
PHG4Subsystem
20
{
21
public
:
23
PHG4HcalSubsystem
(
const
std::string
&
name
=
"HCALCYLINDER"
,
const
int
layer
= 0);
24
26
~PHG4HcalSubsystem
(
void
)
override
27
{
28
}
29
31
36
int
InitRun
(
PHCompositeNode
*)
override
;
37
39
43
int
process_event
(
PHCompositeNode
*)
override
;
44
46
PHG4Detector
*
GetDetector
(
void
)
const override
;
47
PHG4SteppingAction
*
GetSteppingAction
(
void
)
const override
;
48
49
void
SetRadius
(
const
G4double dbl) {
radius
= dbl; }
50
void
SetLength
(
const
G4double dbl) {
length
= dbl; }
51
void
SetLengthViaRapidityCoverage
(
const
G4bool bl) {
lengthViaRapidityCoverage
= bl; }
52
void
SetPosition
(
const
G4double
x
,
const
G4double
y
,
const
G4double
z
)
53
{
54
xpos
=
x
;
55
ypos
=
y
;
56
zpos
=
z
;
57
}
58
void
SetTilt
(
const
double
tilt) {
_sciTilt
= tilt; }
59
void
SetTiltViaNcross
(
const
int
ncross);
60
void
SetScintWidth
(
const
double
wid) {
_sciWidth
= wid; }
61
void
SetNumScint
(
const
int
num) {
_sciNum
= num; }
62
void
SetScintPhi0
(
const
G4double phi0) {
_sciPhi0
= phi0; }
// in units of sampling cells
63
void
SetThickness
(
const
G4double dbl) {
TrackerThickness
= dbl; }
64
void
SetMaterial
(
const
std::string
&mat) {
material
= mat; }
65
void
SetActive
(
const
int
i
= 1) {
active
=
i
; }
66
void
SetAbsorberActive
(
const
int
i
= 1) {
absorberactive
=
i
; }
67
void
SuperDetector
(
const
std::string
&
name
) {
superdetector
=
name
; }
68
const
std::string
SuperDetector
() {
return
superdetector
; }
69
70
void
SetLightCorrection
(
float
inner_radius
,
float
inner_corr,
71
float
outer_radius
,
float
outer_corr)
72
{
73
light_balance_
=
true
;
74
light_balance_inner_radius_
=
inner_radius
;
75
light_balance_inner_corr_
= inner_corr;
76
light_balance_outer_radius_
=
outer_radius
;
77
light_balance_outer_corr_
= outer_corr;
78
}
79
void
SetLightScintModel
(
const
bool
b
=
true
)
80
{
81
light_scint_model_
=
b
;
82
}
83
84
void
Print
(
const
std::string
&what =
"ALL"
)
const override
;
85
86
private
:
88
89
PHG4HcalDetector
*
detector_
;
90
92
93
PHG4HcalSteppingAction
*
steppingAction_
;
94
G4double
radius
;
95
G4double
length
;
96
G4double
xpos
,
ypos
,
zpos
;
97
G4bool
lengthViaRapidityCoverage
;
98
G4double
TrackerThickness
;
99
G4String
material
;
100
G4double
_sciTilt
;
101
G4double
_sciWidth
;
102
G4int
_sciNum
;
103
G4double
_sciPhi0
;
// in units of sampling cells
104
int
active
;
105
int
absorberactive
;
106
int
layer
;
107
std::string
detector_type
;
108
std::string
superdetector
;
109
110
bool
light_scint_model_
;
111
bool
light_balance_
;
112
float
light_balance_inner_radius_
;
113
float
light_balance_inner_corr_
;
114
float
light_balance_outer_radius_
;
115
float
light_balance_outer_corr_
;
116
};
117
118
#endif
coresoftware
blob
master
simulation
g4simulation
g4detectors
PHG4HcalSubsystem.h
Built by
Jin Huang
. updated:
Sat Feb 17 2024 22:18:13
using
1.8.2 with
sPHENIX GitHub integration