Back to home page

sPhenix code displayed by LXR

 
 

    


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  // TRACKSEEDTRACKMAPCONVERTER_H