Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:18:34

0001 /*!
0002  *  \file       PHTrackSetMerging.h
0003  *  \brief      Base class for track container merging
0004  *  \author     Christof Roland <cer@mit.edu>
0005  */
0006 
0007 #ifndef TRACKRECO_PHTRACKSETMERGING_H
0008 #define TRACKRECO_PHTRACKSETMERGING_H
0009 
0010 // PHENIX includes
0011 #include <fun4all/SubsysReco.h>
0012 
0013 // STL includes
0014 #include <string>
0015 
0016 // forward declarations
0017 class PHCompositeNode;
0018 
0019 //class SvtxClusterMap;
0020 class TrkrClusterContainer;
0021 class SvtxVertexMap;
0022 class SvtxTrackMap;
0023 
0024 /// \class PHTrackSetMerging
0025 ///
0026 /// \brief Base class for track seeding
0027 ///
0028 class PHTrackSetMerging : public SubsysReco
0029 {
0030  public:
0031   PHTrackSetMerging(const std::string &name = "PHTrackSetMerging");
0032   ~PHTrackSetMerging() override {}
0033 
0034   int Init(PHCompositeNode *topNode) override;
0035   int InitRun(PHCompositeNode *topNode) override;
0036   int process_event(PHCompositeNode *topNode) override;
0037   int End(PHCompositeNode *topNode) override;
0038   int Setup(PHCompositeNode *topNode);
0039   void set_track_map_name_in1(const std::string &map_name) { _track_map_name_in1 = map_name; }
0040   void set_track_map_name_in2(const std::string &map_name) { _track_map_name_in2 = map_name; }
0041   void set_track_map_name_out(const std::string &map_name) { _track_map_name_out = map_name; }
0042 
0043  protected:
0044   /// setup interface for trackers, called in InitRun, setup things like pointers to nodes.
0045   /// overrided in derived classes
0046    //  virtual
0047 
0048   /// process event interface for trackers, called in process_event.
0049   /// implemented in derived classes
0050   virtual int Process(PHCompositeNode *topNode) = 0;
0051 
0052   /// Called in SubsysReco::End
0053     // virtual int End() = 0;
0054 
0055   //SvtxClusterMap *_cluster_map;
0056   TrkrClusterContainer *_cluster_map = nullptr;
0057   SvtxVertexMap *_vertex_map = nullptr;
0058   SvtxTrackMap *_track_map_in1 = nullptr;
0059   SvtxTrackMap *_track_map_in2 = nullptr;
0060   SvtxTrackMap *_track_map_out = nullptr;
0061 
0062   std::string _track_map_name_in1 = "SvtxTrackMap1";
0063   std::string _track_map_name_in2 = "SvtxTrackMap2";
0064   std::string _track_map_name_out = "SvtxTrackMapMerged";
0065 
0066  private:
0067   /// create new node output pointers
0068   int CreateNodes(PHCompositeNode *topNode);
0069 
0070   /// fetch node pointers
0071   int GetNodes(PHCompositeNode *topNode);
0072 };
0073 
0074 #endif