Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:20:54

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 fieldMap(std::string &fieldmap) { m_fieldMap = fieldmap; }
0039 
0040  private:
0041   int getNodes(PHCompositeNode *topNode);
0042   ActsPropagator::BTPPairResult
0043   propagateTrack(const Acts::BoundTrackParameters &params,
0044                  const unsigned int vtxid);
0045   Acts::Vector3 getVertex(const unsigned int vtxid);
0046   void updateSvtxTrack(SvtxTrack *track,
0047                        const Acts::BoundTrackParameters &params);
0048   void setVtxChi2();
0049 
0050   ActsGeometry *m_tGeometry = nullptr;
0051   SvtxVertexMap *m_vertexMap = nullptr;
0052   std::string m_trackMapName = "SvtxTrackMap";
0053   SvtxTrackMap *m_trackMap = nullptr;
0054   std::string m_fieldMap = "";
0055 };
0056 
0057 #endif