File indexing completed on 2025-08-05 08:17:21
0001 #include <fun4all/SubsysReco.h>
0002 #include <trackbase/ActsGeometry.h>
0003 #include <trackbase/TrackFitUtils.h>
0004 #include <trackbase/TrkrClusterCrossingAssoc.h>
0005 #include <trackbase_historic/SvtxTrackMap.h>
0006 #include <trackbase_historic/TrackSeedContainer.h>
0007
0008 class PHSiliconHelicalPropagator : public SubsysReco
0009 {
0010 public:
0011 PHSiliconHelicalPropagator(const std::string& name = "PHSiliconHelicalPropagator");
0012 ~PHSiliconHelicalPropagator();
0013
0014 int InitRun(PHCompositeNode* topNode) override;
0015 int process_event(PHCompositeNode* topNode) override;
0016 int End(PHCompositeNode* topNode) override;
0017
0018 void set_track_map_name(const std::string& name) { _track_map_name = name; }
0019 void zeroField() { m_zeroField = true; }
0020 void dca_xy_cut(const float cut) { _dca_cut = cut; }
0021 void dca_z_cut(const float cut) { _dca_z_cut = cut; }
0022
0023 private:
0024 int createSeedContainer(TrackSeedContainer*& container, const std::string& container_name, PHCompositeNode* topNode);
0025
0026 ActsGeometry* _tgeometry = nullptr;
0027 TrackSeedContainer* _si_seeds = nullptr;
0028 TrackSeedContainer* _tpc_seeds = nullptr;
0029 TrackSeedContainer* _svtx_seeds = nullptr;
0030 TrkrClusterContainer* _cluster_map = nullptr;
0031 TrkrClusterCrossingAssoc* _cluster_crossing_map = nullptr;
0032
0033 float _dca_cut = 1.;
0034 float _dca_z_cut = 1.;
0035 bool m_zeroField = false;
0036 std::string _track_map_name = "SvtxTrackSeedContainer";
0037 };