Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 #ifndef TRACKBASEHISTORIC_TRACKSEED_H
0002 #define TRACKBASEHISTORIC_TRACKSEED_H
0003 
0004 #include <phool/PHObject.h>
0005 
0006 #include <trackbase/TrkrDefs.h>
0007 #include <g4main/PHG4HitDefs.h>
0008 #include <cmath>
0009 #include <limits>
0010 #include <set>
0011 
0012 class TrackSeed : public PHObject
0013 {
0014  public:
0015   typedef std::set<TrkrDefs::cluskey> ClusterKeySet;
0016   typedef ClusterKeySet::const_iterator ConstClusterKeyIter;
0017   typedef ClusterKeySet::iterator ClusterKeyIter;
0018 
0019   ~TrackSeed() override = default;
0020 
0021   void identify(std::ostream& os = std::cout) const override
0022   {
0023     os << "TrackSeed base class\n";
0024   }
0025 
0026   int isValid() const override { return 0; }
0027   PHObject* CloneMe() const override { return nullptr; }
0028   using PHObject::CopyFrom;
0029 
0030   virtual void CopyFrom(const TrackSeed&) {}
0031 
0032   virtual void CopyFrom(TrackSeed*) {}
0033 
0034   ///@name accessors
0035   //@{
0036   virtual int get_charge() const { return std::numeric_limits<int>::max(); }
0037   virtual float get_phi() const { return NAN; }
0038   virtual float get_pz() const { return NAN; }
0039   virtual float get_qOverR() const { return NAN; }
0040   virtual float get_X0() const { return NAN; }
0041   virtual float get_Y0() const { return NAN; }
0042   virtual float get_slope() const { return NAN; }
0043   virtual float get_Z0() const { return NAN; }
0044   virtual float get_eta() const { return NAN; }
0045   virtual float get_theta() const { return NAN; }
0046   virtual float get_pt() const { return NAN; }
0047   virtual float get_p() const { return NAN; }
0048   virtual float get_px() const { return NAN; }
0049   virtual float get_py() const { return NAN; }
0050   virtual short int get_crossing() const { return 0; }
0051 
0052   virtual unsigned int get_silicon_seed_index() const { return 0; }
0053   virtual unsigned int get_tpc_seed_index() const { return 0; }
0054   virtual short int get_crossing_estimate() const { return 0; }
0055 
0056   virtual bool empty_cluster_keys() const { return true; }
0057   virtual size_t size_cluster_keys() const { return 0; }
0058 
0059   virtual ConstClusterKeyIter find_cluster_key(TrkrDefs::cluskey) const;
0060   virtual ConstClusterKeyIter begin_cluster_keys() const;
0061   virtual ConstClusterKeyIter end_cluster_keys() const;
0062   virtual ClusterKeyIter begin_cluster_keys();
0063   virtual ClusterKeyIter find_cluster_keys(unsigned int);
0064   virtual ClusterKeyIter end_cluster_keys();
0065 
0066   //@}
0067 
0068   ///@name modifiers
0069   //@{
0070   virtual void set_crossing(const short int) {}
0071   virtual void set_qOverR(const float) {}
0072   virtual void set_X0(const float) {}
0073   virtual void set_Y0(const float) {}
0074   virtual void set_slope(const float) {}
0075   virtual void set_Z0(const float) {}
0076   virtual void set_phi(const float) {}
0077 
0078   virtual void set_silicon_seed_index(const unsigned int) {}
0079   virtual void set_tpc_seed_index(const unsigned int) {}
0080   virtual void set_crossing_estimate(const short int) {}
0081 
0082   virtual void clear_cluster_keys() {}
0083 
0084   virtual void insert_cluster_key(TrkrDefs::cluskey) {}
0085   virtual size_t erase_cluster_key(TrkrDefs::cluskey) { return 0; }
0086   //@}
0087 
0088   ///@name Truth tracking interfaces
0089   //@{
0090   typedef std::map<int, std::set<PHG4HitDefs::keytype> > HitIdMap;
0091   typedef HitIdMap::iterator HitIdIter;
0092   typedef HitIdMap::const_iterator HitIdConstIter;
0093 
0094   virtual unsigned int get_truth_track_id() const { return std::numeric_limits<unsigned int>::max(); }
0095   virtual void set_truth_track_id(unsigned int) {}
0096   virtual void set_num_measurements(int) {}
0097   virtual unsigned int get_num_measurements() const { return 0; }
0098   virtual bool empty_g4hit_id() const { return true; }
0099   virtual size_t size_g4hit_id() const { return 0; }
0100   virtual void add_g4hit_id(int, PHG4HitDefs::keytype) {}
0101   virtual HitIdIter begin_g4hit_id();
0102   virtual HitIdConstIter begin_g4hit_id() const;
0103   virtual HitIdIter find_g4hit_id(int);
0104   virtual HitIdConstIter find_g4hit_id(int) const;
0105   virtual HitIdIter end_g4hit_id();
0106   virtual HitIdConstIter end_g4hit_id() const;
0107   virtual size_t remove_g4hit_id(int, PHG4HitDefs::keytype) { return 0; }
0108   virtual size_t remove_g4hit_volume(int) { return 0; }
0109   virtual void clear_g4hit_id() {}
0110   virtual const HitIdMap& g4hit_ids() const;
0111   // @}
0112 
0113   protected:
0114   TrackSeed() = default;
0115 
0116   ClassDefOverride(TrackSeed, 1);
0117 };
0118 
0119 #endif