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
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/ActsGeometry.h
>
9
10
#include "
ActsPropagator.h
"
11
12
#include <
Acts/Definitions/Algebra.hpp
>
13
#include <
Acts/EventData/TrackParameters.hpp
>
14
#include <
Acts/Surfaces/CylinderSurface.hpp
>
15
#include <
Acts/Utilities/Result.hpp
>
16
17
#include <
ActsExamples/EventData/Trajectories.hpp
>
18
19
class
PHCompositeNode
;
20
class
RawClusterContainer
;
21
class
TowerInfoContainer
;
22
class
RawTowerGeomContainer
;
23
class
SvtxTrackMap
;
24
class
SvtxTrack
;
25
class
SvtxVertexMap
;
26
27
#include <map>
28
#include <memory>
29
#include <string>
30
38
class
PHActsTrackProjection
:
public
SubsysReco
39
{
40
public
:
41
using
BoundTrackParam
=
42
const
Acts::BoundTrackParameters
;
43
using
SurfacePtr
= std::shared_ptr<const Acts::Surface>;
44
using
Trajectory
=
ActsExamples::Trajectories
;
45
using
BoundTrackParamResult
=
ActsPropagator::BTPPairResult
;
46
47
PHActsTrackProjection
(
const
std::string
&
name
=
"PHActsTrackProjection"
);
48
49
int
Init
(
PHCompositeNode
*topNode)
override
;
50
int
InitRun
(
PHCompositeNode
*topNode)
override
;
51
int
process_event
(
PHCompositeNode
*topNode)
override
;
52
int
End
(
PHCompositeNode
*topNode)
override
;
53
54
void
useConstField
(
bool
field
) {
m_constField
=
field
; }
55
void
setConstFieldVal
(
float
b
) {
m_constFieldVal
=
b
; }
56
58
void
setLayerRadius
(
SvtxTrack::CAL_LAYER
layer
,
59
const
float
rad
)
60
{
61
if
(
m_caloRadii
.find(layer) !=
m_caloRadii
.end())
62
{
63
m_caloRadii
[
layer
] =
rad
;
64
}
65
else
66
{
67
m_caloRadii
.insert(std::make_pair(layer, rad));
68
}
69
}
70
71
private
:
72
int
getNodes
(
PHCompositeNode
*topNode);
73
int
projectTracks
(
int
caloLayer);
74
76
BoundTrackParamResult
propagateTrack
(
77
const
Acts::BoundTrackParameters
¶ms,
78
const
int
caloLayer,
79
const
SurfacePtr
&targetSurf);
80
82
int
setCaloContainerNodes
(
PHCompositeNode
*topNode,
83
const
int
caloLayer);
84
86
int
makeCaloSurfacePtrs
(
PHCompositeNode
*topNode);
87
89
void
updateSvtxTrack
(
const
ActsPropagator::BoundTrackParamPair
¶ms,
90
SvtxTrack
*svtxTrack,
91
const
int
caloLayer);
92
94
void
getSquareTowerEnergies
(
int
phiBin,
int
etaBin,
95
double
&energy3x3,
96
double
&energy5x5);
97
99
void
getClusterProperties
(
double
phi
,
double
eta
,
100
double
&minIndex,
double
&minDphi,
101
double
&minDeta,
double
&minE);
102
double
deltaPhi
(
const
double
&
phi
);
103
105
ActsGeometry
*
m_tGeometry
=
nullptr
;
106
SvtxTrackMap
*
m_trackMap
=
nullptr
;
107
SvtxVertexMap
*
m_vertexMap
=
nullptr
;
108
111
const
static
int
m_nCaloLayers
= 3;
112
std::vector<std::string>
m_caloNames
;
113
std::vector<SvtxTrack::CAL_LAYER>
m_caloTypes
;
114
std::map<std::string, SurfacePtr>
m_caloSurfaces
;
117
std::map<SvtxTrack::CAL_LAYER, float>
m_caloRadii
;
118
119
RawTowerGeomContainer
*
m_towerGeomContainer
=
nullptr
;
120
TowerInfoContainer
*
m_towerContainer
=
nullptr
;
121
RawClusterContainer
*
m_clusterContainer
=
nullptr
;
122
123
bool
m_constField
=
true
;
124
float
m_constFieldVal
= 1.4;
125
bool
m_useCemcPosRecalib
=
false
;
126
bool
m_calosAvailable
=
true
;
127
128
int
m_event
= 0;
129
};
130
131
#endif
coresoftware
blob
master
offline
packages
trackreco
PHActsTrackProjection.h
Built by
Jin Huang
. updated:
Sat Feb 17 2024 22:18:10
using
1.8.2 with
sPHENIX GitHub integration