Back to home page

sPhenix code displayed by LXR

 
 

    


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 &params,
0045                  const unsigned int vtxid);
0046   Acts::Vector3 getVertex(const unsigned int vtxid);
0047   void updateSvtxTrack(SvtxTrack *track,
0048                        const Acts::BoundTrackParameters &params);
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