Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2026-10-16 08:28:58

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
0003 
0004 #ifndef PHSILICONSEEDPRUNER_H
0005 #define PHSILICONSEEDPRUNER_H
0006 
0007 #include <fun4all/SubsysReco.h>
0008 
0009 #include <gsl/gsl_rng.h>
0010 
0011 #include <cstddef>
0012 #include <string>
0013 
0014 class PHCompositeNode;
0015 class TrackSeedContainer;
0016 
0017 class PHSiliconSeedPruner : public SubsysReco
0018 {
0019  public:
0020   PHSiliconSeedPruner(const std::string& name = "PHSiliconSeedPruner");
0021   ~PHSiliconSeedPruner() override;
0022 
0023   PHSiliconSeedPruner(const PHSiliconSeedPruner&) = delete;
0024   PHSiliconSeedPruner& operator=(const PHSiliconSeedPruner&) = delete;
0025   PHSiliconSeedPruner(PHSiliconSeedPruner&&) = delete;
0026   PHSiliconSeedPruner& operator=(PHSiliconSeedPruner&&) = delete;
0027 
0028   int InitRun(PHCompositeNode* topNode) override;
0029   int process_event(PHCompositeNode* topNode) override;
0030 
0031   void set_track_map_name(const std::string& name) { m_trackMapName = name; }
0032   void set_output_track_map_name(const std::string& name) { m_outputTrackMapName = name; }
0033   void set_random_seed(unsigned int seed);
0034 
0035  private:
0036   static constexpr std::size_t kMvtxLayerCount = 3;
0037   static constexpr std::size_t kMaxRepresentatives = 10;
0038   static constexpr std::size_t kSearchBudget = 2000000;
0039   static constexpr std::size_t kHeuristicRestarts = 256;
0040   static constexpr std::size_t kDebugMinimumGroupSize = 10;
0041 
0042   TrackSeedContainer* m_siliconSeeds{nullptr};
0043   TrackSeedContainer* m_prunedSiliconSeeds{nullptr};
0044   std::string m_trackMapName{"SiliconTrackSeedContainer"};              // the default input node name for the TrackSeedContainer
0045   std::string m_outputTrackMapName{"PrunedSiliconTrackSeedContainer"};  // the default output node name for the TrackSeedContainer
0046 
0047   unsigned int m_randomSeed{0};  // the default random seed
0048   gsl_rng* m_rng{nullptr};
0049 };
0050 
0051 #endif  // PHSILICONSEEDPRUNER_H