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
RawTowerBuilder.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file RawTowerBuilder.h
1
#ifndef G4CALO_RAWTOWERBUILDER_H
2
#define G4CALO_RAWTOWERBUILDER_H
3
4
#include <
fun4all/SubsysReco.h
>
5
6
#include <
g4detectors/PHG4CellDefs.h
>
7
8
#include <cmath>
9
#include <string>
10
11
class
PHCompositeNode
;
12
class
RawTowerContainer
;
13
class
RawTowerGeomContainer
;
14
15
class
RawTowerBuilder
:
public
SubsysReco
16
{
17
public
:
18
RawTowerBuilder
(
const
std::string
&
name
=
"RawTowerBuilder"
);
19
~RawTowerBuilder
()
override
{}
20
int
InitRun
(
PHCompositeNode
*topNode)
override
;
21
int
process_event
(
PHCompositeNode
*topNode)
override
;
22
void
Detector
(
const
std::string
&d) {
m_Detector
= d; }
23
void
EminCut
(
const
double
e
) {
m_Emin
=
e
; }
24
void
checkenergy
(
const
int
i
= 1) {
m_ChkEnergyConservationFlag
=
i
; }
25
enum
enu_tower_energy_src
26
{
28
kEnergyDeposition
,
30
kLightYield
31
};
32
enum
ProcessTowerType
33
{
34
kRawTowerOnly
= 0,
35
kTowerInfoOnly
= 1,
36
kBothTowers
=2
37
};
38
39
40
enu_tower_energy_src
41
get_tower_energy_src
()
const
42
{
43
return
m_TowerEnergySrcEnum
;
44
}
45
46
void
47
set_tower_energy_src
(
enu_tower_energy_src
towerEnergySrc)
48
{
49
m_TowerEnergySrcEnum
= towerEnergySrc;
50
}
51
52
std::string
53
get_sim_tower_node_prefix
()
const
54
{
55
return
m_SimTowerNodePrefix
;
56
}
57
58
void
59
set_sim_tower_node_prefix
(
const
std::string
&simTowerNodePrefix)
60
{
61
m_SimTowerNodePrefix
= simTowerNodePrefix;
62
}
63
64
void
set_towerinfo
(
RawTowerBuilder::ProcessTowerType
UseTowerInfo )
65
{
66
m_UseTowerInfo
= UseTowerInfo;
67
}
68
69
protected
:
70
void
CreateNodes
(
PHCompositeNode
*topNode);
71
72
RawTowerContainer
*
m_TowerContainer
=
nullptr
;
73
/* TowerInfoContainer *m_TowerInfoContainer = nullptr; */
74
RawTowerGeomContainer
*
m_RawTowerGeomContainer
=
nullptr
;
75
76
std::string
m_Detector
=
"NONE"
;
77
std::string
m_TowerNodeName
;
78
std::string
m_TowerInfoNodeName
;
79
std::string
m_TowerGeomNodeName
;
80
std::string
m_SimTowerNodePrefix
;
81
82
enu_tower_energy_src
m_TowerEnergySrcEnum
=
kLightYield
;
83
int
m_CellBinning
=
PHG4CellDefs::undefined
;
84
int
m_ChkEnergyConservationFlag
= 0;
85
int
m_NumLayers
= -1;
86
int
m_NumPhiBins
= -1;
87
int
m_NumEtaBins
= -1;
88
double
m_Emin
= 1
e
-6;
89
double
m_EtaMin
= NAN;
90
double
m_PhiMin
= NAN;
91
double
m_EtaStep
= NAN;
92
double
m_PhiStep
= NAN;
93
RawTowerBuilder::ProcessTowerType
m_UseTowerInfo
= RawTowerBuilder::ProcessTowerType::kBothTowers;
// 0 just produce RawTowers, 1 just produce TowerInfo objects, and 2 produce both
94
};
95
96
#endif // G4CALO_RAWTOWERBUILDER_H
coresoftware
blob
master
simulation
g4simulation
g4calo
RawTowerBuilder.h
Built by
Jin Huang
. updated:
Sat Feb 17 2024 22:18:12
using
1.8.2 with
sPHENIX GitHub integration