File indexing completed on 2025-08-05 08:17:17
0001 #ifndef TRACKRECO_PHACTSVERTEXPROPAGATOR_H
0002 #define TRACKRECO_PHACTSVERTEXPROPAGATOR_H
0003
0004 #include "ActsPropagator.h"
0005
0006 #include <fun4all/SubsysReco.h>
0007 #include <trackbase/ActsGeometry.h>
0008 #include <trackbase/TrkrDefs.h>
0009
0010 #include <Acts/Definitions/Algebra.hpp>
0011 #include <Acts/EventData/TrackParameters.hpp>
0012 #include <Acts/Surfaces/CylinderSurface.hpp>
0013 #include <Acts/Utilities/Result.hpp>
0014
0015 #include <ActsExamples/EventData/Trajectories.hpp>
0016
0017 class SvtxTrackMap;
0018 class SvtxVertexMap;
0019 class SvtxTrack;
0020
0021 class PHActsVertexPropagator : public SubsysReco
0022 {
0023 public:
0024 using BoundTrackParam =
0025 const Acts::BoundTrackParameters;
0026 using BoundTrackParamResult = Acts::Result<BoundTrackParam>;
0027 using SurfacePtr = std::shared_ptr<const Acts::Surface>;
0028 using Trajectory = ActsExamples::Trajectories;
0029
0030 PHActsVertexPropagator(const std::string &name = "PHActsVertexPropagator");
0031
0032 int Init(PHCompositeNode *topNode) override;
0033 int InitRun(PHCompositeNode *topNode) override;
0034 int process_event(PHCompositeNode *topNode) override;
0035 int End(PHCompositeNode *topNode) override;
0036
0037 void setTrackMapName(std::string const& track_map_name) { m_trackMapName = track_map_name; }
0038 void setTrajectoriesName(std::string const& trajectories_name) { m_trajectories_name = trajectories_name; }
0039 void fieldMap(std::string &fieldmap) { m_fieldMap = fieldmap; }
0040
0041 private:
0042 int getNodes(PHCompositeNode *topNode);
0043 ActsPropagator::BTPPairResult
0044 propagateTrack(const Acts::BoundTrackParameters ¶ms,
0045 const unsigned int vtxid);
0046 Acts::Vector3 getVertex(const unsigned int vtxid);
0047 void updateSvtxTrack(SvtxTrack *track,
0048 const Acts::BoundTrackParameters ¶ms);
0049 void setVtxChi2();
0050
0051 ActsGeometry *m_tGeometry = nullptr;
0052 SvtxVertexMap *m_vertexMap = nullptr;
0053 std::string m_trackMapName = "SvtxTrackMap";
0054 std::string m_trajectories_name = "ActsTrajectories";
0055 SvtxTrackMap *m_trackMap = nullptr;
0056 std::map<const unsigned int, Trajectory> *m_trajectories = nullptr;
0057 std::string m_fieldMap = "";
0058 };
0059
0060 #endif