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
TpcClusterizer.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file TpcClusterizer.h
1
#ifndef TPC_TPCCLUSTERIZER_H
2
#define TPC_TPCCLUSTERIZER_H
3
4
#include <
fun4all/SubsysReco.h
>
5
#include <
trackbase/TrkrCluster.h
>
6
#include <
trackbase/ActsGeometry.h
>
7
8
#include <map>
9
#include <vector>
10
#include <string>
11
12
class
ClusHitsVerbosev1
;
13
class
PHCompositeNode
;
14
class
TrkrHitSet
;
15
class
TrkrHitSetContainer
;
16
class
RawHitSet
;
17
class
RawHitSetContainer
;
18
class
TrkrClusterContainer
;
19
class
TrkrClusterHitAssoc
;
20
class
TrainingHitsContainer
;
21
class
PHG4TpcCylinderGeom
;
22
class
PHG4TpcCylinderGeomContainer
;
23
24
//typedef std::pair<int, int> iphiz;
25
//typedef std::pair<double, iphiz> ihit;
26
typedef
std::pair<unsigned short, unsigned short>
iphiz
;
27
typedef
std::pair<unsigned short, iphiz>
ihit
;
28
29
class
TpcClusterizer
:
public
SubsysReco
30
{
31
public
:
32
TpcClusterizer
(
const
std::string
&
name
=
"TpcClusterizer"
);
33
~TpcClusterizer
()
override
=
default
;
34
35
int
InitRun
(
PHCompositeNode
*topNode)
override
;
36
int
process_event
(
PHCompositeNode
*topNode)
override
;
37
int
End
(
PHCompositeNode
*topNode)
override
;
38
39
void
set_sector_fiducial_cut
(
const
double
cut){
SectorFiducialCut
= cut; }
40
void
set_store_hits
(
bool
store_hits) {
_store_hits
= store_hits; }
41
void
set_use_nn
(
bool
use_nn) {
_use_nn
= use_nn; }
42
void
set_do_hit_association
(
bool
do_assoc){
do_hit_assoc
= do_assoc;}
43
void
set_do_wedge_emulation
(
bool
do_wedge){
do_wedge_emulation
= do_wedge;}
44
void
set_do_sequential
(
bool
do_seq){
do_sequential
= do_seq;}
45
void
set_do_split
(
bool
split){
do_split
= split;}
46
void
set_pedestal
(
float
val) {
pedestal
= val;}
47
void
set_seed_threshold
(
float
val) {
seed_threshold
= val;}
48
void
set_edge_threshold
(
float
val) {
edge_threshold
= val;}
49
void
set_min_err_squared
(
float
val) {
min_err_squared
= val;}
50
void
set_min_clus_size
(
float
val) {
min_clus_size
= val;}
51
void
set_min_adc_sum
(
float
val) {
min_adc_sum
= val;}
52
void
set_remove_singles
(
bool
do_sing){
do_singles
= do_sing;}
53
void
set_read_raw
(
bool
read_raw){
do_read_raw
= read_raw;}
54
void
set_max_cluster_half_size_phi
(
unsigned
short
size
) {
MaxClusterHalfSizePhi
=
size
;}
55
void
set_max_cluster_half_size_z
(
unsigned
short
size
) {
MaxClusterHalfSizeT
=
size
;}
56
57
void
set_ClusHitsVerbose
(
bool
set
=
true
) {
record_ClusHitsVerbose
=
set
; };
58
void
set_rawdata_reco
() {
59
set_do_hit_association
(
false
);
60
set_do_split
(
false
);
61
set_pedestal
(0);
62
set_seed_threshold
(5);
63
set_edge_threshold
(3);
64
set_min_err_squared
(0);
65
set_min_clus_size
(0);
66
set_min_adc_sum
(5);
67
set_remove_singles
(
true
);
68
set_max_cluster_half_size_phi
(5);
69
set_max_cluster_half_size_z
(8);
70
};
71
ClusHitsVerbosev1
*
mClusHitsVerbose
{
nullptr
};
72
73
private
:
74
bool
is_in_sector_boundary
(
int
phibin,
int
sector,
PHG4TpcCylinderGeom
*layergeom)
const
;
75
bool
record_ClusHitsVerbose
{
false
};
76
77
TrkrHitSetContainer
*
m_hits
=
nullptr
;
78
RawHitSetContainer
*
m_rawhits
=
nullptr
;
79
TrkrClusterContainer
*
m_clusterlist
=
nullptr
;
80
TrkrClusterHitAssoc
*
m_clusterhitassoc
=
nullptr
;
81
ActsGeometry
*
m_tGeometry
=
nullptr
;
82
bool
_store_hits
=
false
;
83
bool
_use_nn
=
false
;
84
bool
do_hit_assoc
=
true
;
85
bool
do_wedge_emulation
=
false
;
86
bool
do_sequential
=
false
;
87
bool
do_read_raw
=
false
;
88
bool
do_singles
=
false
;
89
bool
do_split
=
true
;
90
double
pedestal
= 74.4;
91
double
seed_threshold
= 5;
92
double
edge_threshold
= 0;
93
double
min_err_squared
= 0.01;
94
double
min_clus_size
= 1;
95
double
min_adc_sum
= 10;
96
double
SectorFiducialCut
= 0.5;
97
unsigned
short
MaxClusterHalfSizePhi
= 3;
98
unsigned
short
MaxClusterHalfSizeT
= 5;
99
100
double
m_tdriftmax
= 0;
101
double
AdcClockPeriod
= 53.0;
// ns
102
103
// TPC shaping offset correction parameter
104
// From Tony Frawley July 5, 2022
105
double
m_sampa_tbias
= 39.6;
// ns
106
107
TrainingHitsContainer
*
m_training
;
108
};
109
110
#endif
coresoftware
blob
master
offline
packages
tpc
TpcClusterizer.h
Built by
Jin Huang
. updated:
Sat Feb 17 2024 22:18:08
using
1.8.2 with
sPHENIX GitHub integration