Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-03 08:17:45

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
0003 #ifndef AZIMUTHALSEEDER_H
0004 #define AZIMUTHALSEEDER_H
0005 
0006 #include <fun4all/SubsysReco.h>
0007 #include <trackbase/ActsGeometry.h>
0008 #include <trackbase/TrkrDefs.h>
0009 
0010 #include <string>
0011 #include <vector>
0012 class PHCompositeNode;
0013 
0014 class ActsGeometry;
0015 class TrkrClusterContainer;
0016 class TrackSeedContainer;
0017 class TFile;
0018 class TH2;
0019 
0020 class AzimuthalSeeder : public SubsysReco
0021 {
0022  public:
0023   using PositionMap = std::map<TrkrDefs::cluskey, Acts::Vector3>;
0024   struct seed
0025   {
0026     std::vector<TrkrDefs::cluskey> ckeys;
0027     std::vector<Acts::Vector3> globpos;
0028   };
0029   using SeedVector = std::vector<seed>;
0030   AzimuthalSeeder(const std::string &name = "AzimuthalSeeder");
0031 
0032   ~AzimuthalSeeder() override = default;
0033 
0034   int Init(PHCompositeNode *topNode) override;
0035   int InitRun(PHCompositeNode *topNode) override;
0036   int process_event(PHCompositeNode *topNode) override;
0037   int End(PHCompositeNode *topNode) override;
0038   void histos() { m_outfile = true; }
0039   void residualLimit(const float limit) { m_outlierLimit = limit; }
0040 
0041  private:
0042   int getNodes(PHCompositeNode *topNode);
0043   int createNodes(PHCompositeNode *topNode);
0044   std::unique_ptr<TFile> file = nullptr;
0045   TH2 *h_phi = nullptr;
0046   TH2 *h_phi2 = nullptr;
0047   TH2 *h_phi3 = nullptr;
0048   bool m_outfile = false;
0049   std::string m_trackMapName = "SiliconTrackSeedContainer";
0050   ActsGeometry *m_tGeometry = nullptr;
0051   TrkrClusterContainer *m_clusterContainer = nullptr;
0052   TrackSeedContainer *m_seedContainer = nullptr;
0053 
0054   float m_outlierLimit = 0.1;
0055 };
0056 
0057 #endif  // AZIMUTHALSEEDER_H