ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
TrackEvaluation.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file TrackEvaluation.h
1
#ifndef G4EVAL_TRACKEVALUATION_H
2
#define G4EVAL_TRACKEVALUATION_H
3
9
#include "
TrackEvaluationContainerv1.h
"
10
11
#include <
fun4all/SubsysReco.h
>
12
#include <
trackbase/TrkrDefs.h
>
13
#include <
trackbase_historic/ActsTransformations.h
>
14
15
#include <map>
16
#include <set>
17
#include <string>
18
#include <vector>
19
20
struct
ActsSurfaceMaps
;
21
struct
ActsTrackingGeometry
;
22
class
PHG4CylinderCellGeomContainer
;
23
class
PHG4CylinderGeomContainer
;
24
class
PHG4Hit
;
25
class
PHG4HitContainer
;
26
class
PHG4Particle
;
27
class
PHG4TruthInfoContainer
;
28
class
SvtxTrack
;
29
class
SvtxTrackMap
;
30
class
TrkrCluster
;
31
class
TrkrClusterContainer
;
32
class
TrkrClusterHitAssoc
;
33
class
TrkrHitSetContainer
;
34
class
TrkrHitTruthAssoc
;
35
36
class
TrackEvaluation
:
public
SubsysReco
37
{
38
public
:
39
41
TrackEvaluation
(
const
std::string& =
"TrackEvaluation"
);
42
44
int
Init
(
PHCompositeNode
*)
override
;
45
47
int
InitRun
(
PHCompositeNode
*)
override
;
48
50
int
process_event
(
PHCompositeNode
*)
override
;
51
53
int
End
(
PHCompositeNode
*)
override
;
54
55
enum
Flags
56
{
57
EvalEvent
= 1<<0,
58
EvalClusters
= 1<<1,
59
EvalTracks
= 1<<2
60
};
61
63
void
set_flags
(
int
flags )
64
{
m_flags
= flags; }
65
66
private
:
67
69
int
load_nodes
(
PHCompositeNode
* );
70
72
void
evaluate_event
();
73
75
void
evaluate_clusters
();
76
78
void
evaluate_tracks
();
79
80
// get geant hits associated to a cluster
81
using
G4HitSet
= std::set<PHG4Hit*>;
82
G4HitSet
find_g4hits
(
TrkrDefs::cluskey
)
const
;
83
85
std::pair<int,int>
get_max_contributor
(
SvtxTrack
* )
const
;
86
88
int
get_embed
(
PHG4Particle
*)
const
;
89
91
TrackEvaluationContainerv1::ClusterStruct
create_cluster
(
TrkrDefs::cluskey
,
TrkrCluster
* )
const
;
92
94
void
add_trk_information
(
TrackEvaluationContainerv1::ClusterStruct
&,
SvtxTrackState
* )
const
;
95
97
101
void
add_trk_information_micromegas
(
TrackEvaluationContainerv1::ClusterStruct
&,
int
/* tileid */
,
SvtxTrackState
* )
const
;
102
103
// add truth information
104
void
add_truth_information
(
TrackEvaluationContainerv1::ClusterStruct
&, std::set<PHG4Hit*> )
const
;
105
106
// add truth information
111
void
add_truth_information_micromegas
(
TrackEvaluationContainerv1::ClusterStruct
&,
int
/* tileid */
, std::set<PHG4Hit*> )
const
;
112
114
TrackEvaluationContainerv1
*
m_container
=
nullptr
;
115
117
int
m_flags
=
EvalEvent
|
EvalClusters
|
EvalTracks
;
118
120
ActsSurfaceMaps
*
m_surfmaps
=
nullptr
;
121
123
ActsTrackingGeometry
*
m_tGeometry
=
nullptr
;
124
126
ActsTransformations
m_transformer
;
127
129
TrkrHitSetContainer
*
m_hitsetcontainer
=
nullptr
;
130
132
TrkrClusterContainer
*
m_cluster_map
=
nullptr
;
133
135
TrkrClusterHitAssoc
*
m_cluster_hit_map
=
nullptr
;
136
138
TrkrHitTruthAssoc
*
m_hit_truth_map
=
nullptr
;
139
141
SvtxTrackMap
*
m_track_map
=
nullptr
;
142
144
145
PHG4HitContainer
*
m_g4hits_tpc
=
nullptr
;
146
PHG4HitContainer
*
m_g4hits_intt
=
nullptr
;
147
PHG4HitContainer
*
m_g4hits_mvtx
=
nullptr
;
148
PHG4HitContainer
*
m_g4hits_micromegas
=
nullptr
;
150
152
PHG4TruthInfoContainer
*
m_g4truthinfo
=
nullptr
;
153
155
PHG4CylinderCellGeomContainer
*
m_tpc_geom_container
=
nullptr
;
156
158
PHG4CylinderGeomContainer
*
m_micromegas_geom_container
=
nullptr
;
159
160
// map cluster keys to g4hits
161
using
G4HitMap
= std::map<TrkrDefs::cluskey,G4HitSet>;
162
mutable
G4HitMap
m_g4hit_map
;
163
164
};
165
166
#endif // G4EVAL_TrackEvaluation_H
coresoftware
blob
master
simulation
g4simulation
g4eval
TrackEvaluation.h
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:43
using
1.8.2 with
ECCE GitHub integration