Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
0003 #ifndef PHCOSMICTRACKMERGER_H
0004 #define PHCOSMICTRACKMERGER_H
0005 
0006 #include <fun4all/SubsysReco.h>
0007 
0008 #include <trackbase/ActsGeometry.h>
0009 
0010 #include <TFile.h>
0011 #include <TH1.h>
0012 #include <TH2.h>
0013 
0014 #include <string>
0015 #include <vector>
0016 
0017 class PHCompositeNode;
0018 class TrackSeedContainer;
0019 class TrkrClusterContainer;
0020 class TrackSeed;
0021 class ActsGeometry;
0022 
0023 class PHCosmicTrackMerger : public SubsysReco
0024 {
0025   using KeyPosMap = std::pair<std::vector<TrkrDefs::cluskey>, std::vector<Acts::Vector3>>;
0026 
0027  public:
0028   PHCosmicTrackMerger(const std::string &name = "PHCosmicTrackMerger");
0029 
0030   ~PHCosmicTrackMerger() override;
0031 
0032   int Init(PHCompositeNode *) override;
0033   int InitRun(PHCompositeNode *topNode) override;
0034   int process_event(PHCompositeNode *topNode) override;
0035   int End(PHCompositeNode *) override;
0036 
0037   void zero_field() { m_zeroField = true; }
0038   void dca_xycut(const float cut) { m_dcaxycut = cut; }
0039   void dca_rzcut(const float cut) { m_dcarzcut = cut; }
0040   void iter(const int it) { m_iter = it; }
0041   void removeOutliers() { m_removeOutliers = true; }
0042 
0043  private:
0044   void addKeys(TrackSeed *toAddTo, TrackSeed *toAdd);
0045   void removeOutliers(TrackSeed *seed);
0046   void getBestClustersPerLayer(TrackSeed *seed);
0047 
0048   ActsGeometry *m_geometry = nullptr;
0049   KeyPosMap getGlobalPositions(TrackSeed *seed);
0050   TrkrClusterContainer *m_clusterMap = nullptr;
0051   TrackSeedContainer *m_seeds = nullptr;
0052   TrackSeedContainer *m_tpcSeeds = nullptr;
0053   TrackSeedContainer *m_siliconSeeds = nullptr;
0054 
0055   float m_dcaxycut = 0.5;  // cm
0056   float m_dcarzcut = 2.;   // cm
0057   bool m_zeroField = false;
0058   int m_iter = 0;
0059   bool m_removeOutliers = false;
0060 };
0061 
0062 #endif  // PHCOSMICTRACKMERGER_H