File indexing completed on 2025-08-05 08:17:11
0001
0002 #ifndef TRACKSEEDTRACKMAPCONVERTER_H
0003 #define TRACKSEEDTRACKMAPCONVERTER_H
0004
0005 #include <fun4all/SubsysReco.h>
0006
0007 #include <limits>
0008 #include <memory>
0009 #include <string>
0010
0011 class PHCompositeNode;
0012 class SvtxTrackMap;
0013 class SvtxTrack_v4;
0014 class TrackSeed;
0015 class TrackSeedContainer;
0016 class ActsGeometry;
0017 class TrkrClusterContainer;
0018 class TrackSeedTrackMapConverter : public SubsysReco
0019 {
0020 public:
0021 TrackSeedTrackMapConverter(const std::string &name = "TrackSeedTrackMapConverter");
0022
0023 virtual ~TrackSeedTrackMapConverter() = default;
0024
0025 int InitRun(PHCompositeNode *topNode) override;
0026 int process_event(PHCompositeNode *topNode) override;
0027 int End(PHCompositeNode *topNode) override;
0028
0029 void setFieldMap(const std::string &name) { m_fieldMap = name; }
0030 void setTrackMapName(const std::string &name) { m_trackMapName = name; }
0031 void setTrackSeedName(const std::string &name) { m_trackSeedName = name; }
0032 void cosmics() { m_cosmics = true; }
0033 void constField() { m_ConstField = true; }
0034
0035 private:
0036 int getNodes(PHCompositeNode *topNode);
0037
0038 void addKeys(std::unique_ptr<SvtxTrack_v4> &track, TrackSeed *seed);
0039 void addKeys(TrackSeed *seedToAddTo, TrackSeed *seedToAdd);
0040 std::pair<int, float> getCosmicCharge(TrackSeed *seed, float vertexradius) const;
0041 void lineFit(SvtxTrack_v4 *track, TrackSeed *seed);
0042
0043 ActsGeometry *m_tGeometry{nullptr};
0044 SvtxTrackMap *m_trackMap{nullptr};
0045 TrackSeedContainer *m_seedContainer{nullptr};
0046 TrackSeedContainer *m_tpcContainer{nullptr};
0047 TrackSeedContainer *m_siContainer{nullptr};
0048 TrkrClusterContainer *m_clusters{nullptr};
0049
0050 double fieldstrength{std::numeric_limits<double>::quiet_NaN()};
0051
0052 bool m_cosmics{false};
0053 bool m_ConstField{false};
0054 bool m_zeroField{false};
0055
0056 std::string m_fieldMap;
0057 std::string m_trackMapName{"SvtxTrackMap"};
0058 std::string m_trackSeedName{"TpcTrackSeedContainer"};
0059 };
0060
0061 #endif