forked from sPHENIX-Collaboration/coresoftware
/
PHActsVertexPropagator.h
53 lines (41 loc) · 1.69 KB
/
PHActsVertexPropagator.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#ifndef TRACKRECO_PHACTSVERTEXPROPAGATOR_H
#define TRACKRECO_PHACTSVERTEXPROPAGATOR_H
#include <fun4all/SubsysReco.h>
#include <trackbase/TrkrDefs.h>
#include <trackbase/ActsTrackingGeometry.h>
#include <Acts/Utilities/Definitions.hpp>
#include <Acts/Propagator/Propagator.hpp>
#include <Acts/Utilities/Result.hpp>
#include <Acts/Surfaces/CylinderSurface.hpp>
#include <Acts/EventData/TrackParameters.hpp>
#include <ActsExamples/EventData/TrkrClusterMultiTrajectory.hpp>
class SvtxTrackMap;
class SvtxVertexMap;
class SvtxTrack;
using BoundTrackParamPtr =
std::unique_ptr<const Acts::BoundTrackParameters>;
using BoundTrackParamPtrResult = Acts::Result<BoundTrackParamPtr>;
using SurfacePtr = std::shared_ptr<const Acts::Surface>;
using Trajectory = ActsExamples::TrkrClusterMultiTrajectory;
class PHActsVertexPropagator : public SubsysReco
{
public:
PHActsVertexPropagator(const std::string& name = "PHActsVertexPropagator");
int Init(PHCompositeNode *topNode) override;
int InitRun(PHCompositeNode *topNode) override;
int process_event(PHCompositeNode *topNode) override;
int End(PHCompositeNode *topNode) override;
private:
int getNodes(PHCompositeNode *topNode);
void setTrackVertexTo0();
BoundTrackParamPtrResult propagateTrack(const Acts::BoundTrackParameters& params,
const unsigned int vtxid);
Acts::Vector3D getVertex(const unsigned int vtxid);
void updateSvtxTrack(SvtxTrack* track, const Acts::BoundTrackParameters& params);
void updateTrackDCA(SvtxTrack* track);
ActsTrackingGeometry *m_tGeometry = nullptr;
SvtxVertexMap *m_vertexMap = nullptr;
SvtxTrackMap *m_trackMap = nullptr;
std::map<const unsigned int, Trajectory> *m_trajectories = nullptr;
};
#endif