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
TpcSpaceChargeReconstruction.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file TpcSpaceChargeReconstruction.h
1
#ifndef TPCCALIB_TPCSPACECHARGERECONSTRUCTION_H
2
#define TPCCALIB_TPCSPACECHARGERECONSTRUCTION_H
3
8
#include <
fun4all/SubsysReco.h
>
9
#include <phparameter/PHParameterInterface.h>
10
#include <
tpc/TpcDistortionCorrection.h
>
11
#include <
tpc/TpcClusterZCrossingCorrection.h
>
12
#include <
trackbase/ActsSurfaceMaps.h
>
13
#include <
trackbase/ActsTrackingGeometry.h
>
14
#include <
trackbase/ClusterErrorPara.h
>
15
17
#include <
Acts/Utilities/BinnedArray.hpp
>
18
#include <
Acts/Definitions/Algebra.hpp
>
19
#include <
Acts/Utilities/Logger.hpp
>
20
21
#include <TString.h>
22
23
#include <memory>
24
#include <vector>
25
26
// forward declaration
27
class
ActsGeometry
;
28
29
class
SvtxTrack
;
30
class
SvtxTrackMap
;
31
class
TpcSpaceChargeMatrixContainer
;
32
class
TrkrCluster
;
33
class
TrkrClusterContainer
;
34
35
class
TFile;
36
class
TH1;
37
class
TH2;
38
53
class
TpcSpaceChargeReconstruction
:
public
SubsysReco
,
public
PHParameterInterface
54
{
55
public
:
56
58
TpcSpaceChargeReconstruction
(
const
std::string
& =
"TPCSPACECHARGERECONSTRUCTION"
);
59
61
62
64
void
set_use_micromegas
(
bool
value
)
65
{
m_use_micromegas
=
value
; }
66
68
void
set_min_pt
(
double
value
)
69
{
m_min_pt
=
value
; }
70
72
76
void
set_grid_dimensions
(
int
phibins
,
int
rbins,
int
zbins );
77
78
80
void
set_save_histograms
(
bool
value
) {
m_savehistograms
=
value
; }
81
83
void
set_histogram_outputfile
(
const
std::string
&outputfile) {
m_histogramfilename
= outputfile;}
84
86
89
void
set_outputfile
(
const
std::string
&
filename
)
90
{
m_outputfile
=
filename
; }
91
93
95
int
Init
(
PHCompositeNode
*)
override
;
96
98
int
InitRun
(
PHCompositeNode
*)
override
;
99
101
int
process_event
(
PHCompositeNode
*)
override
;
102
104
int
End
(
PHCompositeNode
*)
override
;
105
107
void
SetDefaultParameters
()
override
;
108
109
private
:
110
112
int
load_nodes
(
PHCompositeNode
* );
113
115
void
create_histograms
();
116
118
122
Acts::Vector3
get_global_position
(
TrkrDefs::cluskey
,
TrkrCluster
*,
short
int
/* crossing */
)
const
;
123
125
void
process_tracks
();
126
128
bool
accept_track
(
SvtxTrack
* )
const
;
129
131
void
process_track
(
SvtxTrack
* );
132
134
int
get_cell_index
(
const
Acts::Vector3
& );
135
137
int
m_event
= 0;
138
140
std::string
m_outputfile
=
"TpcSpaceChargeMatrices.root"
;
141
143
bool
m_use_micromegas
=
true
;
144
146
double
m_min_pt
= 0.5;
147
149
ActsGeometry
*
m_tgeometry
=
nullptr
;
150
152
153
// residual cuts in r, phi plane
154
float
m_max_talpha
= 0.6;
155
float
m_max_drphi
= 0.5;
156
157
// residual cuts in r, z plane
158
float
m_max_tbeta
= 1.5;
159
float
m_max_dz
= 0.5;
161
163
ClusterErrorPara
m_cluster_error_parametrization
;
164
166
std::unique_ptr<TpcSpaceChargeMatrixContainer>
m_matrix_container
;
167
169
170
int
m_total_tracks
= 0;
171
int
m_accepted_tracks
= 0;
172
173
int
m_total_clusters
= 0;
174
int
m_accepted_clusters
= 0;
176
177
179
180
181
bool
m_savehistograms
=
false
;
182
184
std::string
m_histogramfilename
=
"TpcSpaceChargeReconstruction.root"
;
185
std::unique_ptr<TFile>
m_histogramfile
;
186
187
using
TH1_map_t
= std::map<int,TH1*>;
188
using
TH2_map_t
= std::map<int,TH2*>;
189
190
TH1_map_t
m_h_drphi
;
191
TH1_map_t
m_h_dz
;
192
TH2_map_t
m_h_drphi_alpha
;
193
TH2_map_t
m_h_dz_beta
;
195
197
198
SvtxTrackMap
*
m_track_map
=
nullptr
;
199
TrkrClusterContainer
*
m_cluster_map
=
nullptr
;
200
201
// crossing z correction
202
TpcClusterZCrossingCorrection
m_clusterCrossingCorrection
;
203
204
// distortion corrections
205
TpcDistortionCorrectionContainer
*
m_dcc_static
=
nullptr
;
206
TpcDistortionCorrectionContainer
*
m_dcc_average
=
nullptr
;
207
TpcDistortionCorrectionContainer
*
m_dcc_fluctuation
=
nullptr
;
208
210
TpcDistortionCorrection
m_distortionCorrection
;
212
213
};
214
215
#endif
coresoftware
blob
master
offline
packages
tpccalib
TpcSpaceChargeReconstruction.h
Built by
Jin Huang
. updated:
Sat Feb 17 2024 22:18:08
using
1.8.2 with
sPHENIX GitHub integration