Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHTruthTrackSeeding.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHTruthTrackSeeding.h
1 
7 #ifndef TRACKRECO_PHTRUTHTRACKSEEDING_H
8 #define TRACKRECO_PHTRUTHTRACKSEEDING_H
9 
10 #include "PHTrackSeeding.h"
11 #include <trackbase/ActsGeometry.h>
12 #include <trackbase/TrkrDefs.h>
13 #include <string> // for string
14 #include <vector>
15 #include <memory>
16 #include <gsl/gsl_rng.h>
17 
18 // forward declarations
19 class PHCompositeNode;
21 class PHG4HitContainer;
22 class TrkrHitTruthAssoc;
25 class SvtxClusterEval;
26 class TrackSeed;
27 class TrackSeedContainer;
28 class PHG4Particle;
29 
34 
36 {
37  public:
38  PHTruthTrackSeeding(const std::string& name = "PHTruthTrackSeeding");
39 
40  unsigned int get_min_clusters_per_track() const
41  {
43  }
44 
45  void set_min_clusters_per_track(unsigned int minClustersPerTrack)
46  {
47  _min_clusters_per_track = minClustersPerTrack;
48  }
49 
50  void set_min_layer(unsigned int minLayer)
51  {
52  _min_layer = minLayer;
53  }
54 
55  void set_max_layer(unsigned int maxLayer)
56  {
57  _max_layer = maxLayer;
58  }
59 
61  double get_min_momentum() const
62  {
63  return _min_momentum;
64  }
65 
67  void set_min_momentum(double m)
68  {
69  _min_momentum = m;
70  }
71 
72  protected:
73  int Setup(PHCompositeNode* topNode) override;
74 
75  int Process(PHCompositeNode* topNode) override;
76 
77  int End() override;
78 
79  private:
81  int GetNodes(PHCompositeNode* topNode);
82  int CreateNodes(PHCompositeNode* topNode);
83 
84  void buildTrackSeed(std::vector<TrkrDefs::cluskey> clusters,
87 
89  /* this is a copy of the code in PHTruthSiliconAssociation */
90  std::set<short int> getInttCrossings(TrackSeed*) const;
91 
98 
101 
102  unsigned int _min_clusters_per_track = 3;
103  unsigned int _min_layer = 0;
104  unsigned int _max_layer = 60;
105 
107  double _min_momentum = 50e-3;
108 
111 
113 
114  bool _circle_fit_seed = false;
115 
117  class Deleter
118  {
119  public:
121  void operator() (gsl_rng* rng) const { gsl_rng_free(rng); }
122  };
123 
125 
126  std::unique_ptr<gsl_rng, Deleter> m_rng;
127 
128 };
129 
130 #endif