EIC Software
Reference for
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
PHActsTrackProjection.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file PHActsTrackProjection.h
1
#ifndef TRACKRECO_PHACTSTRACKPROJECTION_H
2
#define TRACKRECO_PHACTSTRACKPROJECTION_H
3
4
#include <
fun4all/SubsysReco.h
>
5
#include <
trackbase/TrkrDefs.h
>
6
#include <
trackbase_historic/SvtxTrack.h
>
7
8
#include <
trackbase/ActsTrackingGeometry.h
>
9
10
#include <
Acts/Utilities/Definitions.hpp
>
11
#include <
Acts/Propagator/Propagator.hpp
>
12
#include <
Acts/Utilities/Result.hpp
>
13
#include <
Acts/Surfaces/CylinderSurface.hpp
>
14
#include <
Acts/EventData/TrackParameters.hpp
>
15
16
#include <
ActsExamples/EventData/TrkrClusterMultiTrajectory.hpp
>
17
18
class
PHCompositeNode
;
19
class
RawClusterContainer
;
20
class
RawTowerContainer
;
21
class
RawTowerGeomContainer
;
22
class
SvtxTrackMap
;
23
class
SvtxTrack
;
24
class
SvtxVertexMap
;
25
26
#include <memory>
27
#include <map>
28
#include <string>
29
30
using
BoundTrackParamPtr
=
31
std::unique_ptr<const Acts::BoundTrackParameters>;
32
using
BoundTrackParamPtrResult
=
Acts::Result<BoundTrackParamPtr>
;
33
using
SurfacePtr
= std::shared_ptr<const Acts::Surface>;
34
using
Trajectory
=
ActsExamples::TrkrClusterMultiTrajectory
;
35
36
44
class
PHActsTrackProjection
:
public
SubsysReco
45
{
46
47
public
:
48
PHActsTrackProjection
(
const
std::string&
name
49
=
"PHActsTrackProjection"
);
50
51
int
Init
(
PHCompositeNode
*topNode)
override
;
52
int
InitRun
(
PHCompositeNode
*topNode)
override
;
53
int
process_event
(
PHCompositeNode
*topNode)
override
;
54
int
End
(
PHCompositeNode
*topNode)
override
;
55
56
private
:
57
58
int
getNodes
(
PHCompositeNode
*topNode);
59
int
projectTracks
(
PHCompositeNode
*topNode,
int
caloLayer);
60
62
BoundTrackParamPtrResult
propagateTrack
(
63
const
Acts::BoundTrackParameters
& params,
64
const
SurfacePtr
&targetSurf);
65
67
int
setCaloContainerNodes
(
PHCompositeNode
*topNode,
68
const
int
caloLayer);
69
71
int
makeCaloSurfacePtrs
(
PHCompositeNode
*topNode);
72
74
void
updateSvtxTrack
(
const
Acts::BoundTrackParameters
& params,
75
SvtxTrack
* svtxTrack,
76
const
int
caloLayer);
77
79
void
getSquareTowerEnergies
(
int
phiBin,
int
etaBin,
80
double
& energy3x3,
81
double
& energy5x5);
82
84
void
getClusterProperties
(
double
phi
,
double
eta
,
85
double
& minIndex,
double
& minDphi,
86
double
& minDeta,
double
& minE);
87
Acts::BoundTrackParameters
makeTrackParams
(
SvtxTrack
* track);
88
double
deltaPhi
(
const
double
& phi);
89
Acts::Vector3D
getVertex
(
SvtxTrack
* track);
90
92
ActsTrackingGeometry
*
m_tGeometry
=
nullptr
;
93
SvtxTrackMap
*
m_trackMap
=
nullptr
;
94
SvtxVertexMap
*
m_vertexMap
=
nullptr
;
95
std::map<const unsigned int, Trajectory> *
m_trajectories
{
nullptr
};
96
97
100
const
static
int
m_nCaloLayers
= 3;
101
std::vector<std::string>
m_caloNames
;
102
std::vector<SvtxTrack::CAL_LAYER>
m_caloTypes
;
103
std::map<std::string, SurfacePtr>
m_caloSurfaces
;
104
105
RawTowerGeomContainer
*
m_towerGeomContainer
=
nullptr
;
106
RawTowerContainer
*
m_towerContainer
=
nullptr
;
107
RawClusterContainer
*
m_clusterContainer
=
nullptr
;
108
109
bool
m_useCemcPosRecalib
=
false
;
110
111
int
m_event
= 0;
112
};
113
114
#endif
fun4all_coresoftware
blob
master
offline
packages
trackreco
PHActsTrackProjection.h
Built by
Jin Huang
. updated:
Mon Jan 22 2024 12:43:46
using
1.8.2 with
EIC GitHub integration