Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2026-08-31 08:21:25

0001 #pragma once
0002 
0003 #include <fun4all/SubsysReco.h>
0004 
0005 #include <string>
0006 
0007 class PHCompositeNode;
0008 class Tpc_PolyTrack;
0009 class Tpc_PolyTrackContainer;
0010 class TpcCrossingDecisionContainer;
0011 class ActsGeometry;
0012 class TrackSeedContainer;
0013 
0014 class TpcPolyTrackSeedConverter : public SubsysReco
0015 {
0016  public:
0017   explicit TpcPolyTrackSeedConverter(const std::string& name = "TpcPolyTrackSeedConverter");
0018   ~TpcPolyTrackSeedConverter() override = default;
0019 
0020   int InitRun(PHCompositeNode*) override;
0021   int process_event(PHCompositeNode*) override;
0022 
0023   void setInputNodeName(const std::string& name) { m_inputNodeName = name; }
0024   void setOutputNodeName(const std::string& name) { m_outputNodeName = name; }
0025   void setCrossingDecisionNodeName(const std::string& name) { m_crossingDecisionNodeName = name; }
0026   void setCrossingPeriodNs(double value) { m_crossingPeriodNs = value; }
0027 
0028  private:
0029   int getNodes(PHCompositeNode*);
0030   int createNodes(PHCompositeNode*);
0031   bool isValidTrack(const Tpc_PolyTrack*) const;
0032   bool publishSeed(const Tpc_PolyTrack*) const;
0033 
0034   std::string m_inputNodeName;
0035   std::string m_outputNodeName;
0036   std::string m_crossingDecisionNodeName {"TPC_CROSSING_DECISIONS"};
0037   Tpc_PolyTrackContainer* m_polyTracks {nullptr};
0038   TpcCrossingDecisionContainer* m_crossingDecisions {nullptr};
0039   ActsGeometry* m_geometry {nullptr};
0040   TrackSeedContainer* m_trackSeeds {nullptr};
0041   double m_crossingPeriodNs {106.56};
0042 };