Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 #ifndef TPC_TPCSIMPLECLUSTERIZER_H
0002 #define TPC_TPCSIMPLECLUSTERIZER_H
0003 
0004 #include <fun4all/SubsysReco.h>
0005 #include <trackbase/ActsGeometry.h>
0006 #include <trackbase/TrkrCluster.h>
0007 
0008 #include <map>
0009 #include <string>
0010 #include <vector>
0011 
0012 class PHCompositeNode;
0013 class TrkrHitSet;
0014 class TrkrHitSetContainer;
0015 class TrkrClusterContainer;
0016 class TrkrClusterHitAssoc;
0017 class PHG4TpcCylinderGeom;
0018 class PHG4TpcCylinderGeomContainer;
0019 
0020 // typedef std::pair<int, int> iphiz;
0021 // typedef std::pair<double, iphiz> ihit;
0022 typedef std::pair<unsigned short, unsigned short> iphiz;
0023 typedef std::pair<unsigned short, iphiz> ihit;
0024 
0025 class TpcSimpleClusterizer : public SubsysReco
0026 {
0027  public:
0028   TpcSimpleClusterizer(const std::string &name = "TpcSimpleClusterizer");
0029   ~TpcSimpleClusterizer() override = default;
0030 
0031   int InitRun(PHCompositeNode *topNode) override;
0032   int process_event(PHCompositeNode *topNode) override;
0033   int End(PHCompositeNode *topNode) override;
0034 
0035   void set_sector_fiducial_cut(const double cut) { SectorFiducialCut = cut; }
0036   void set_do_hit_association(bool do_assoc) { do_hit_assoc = do_assoc; }
0037 
0038  private:
0039   bool is_in_sector_boundary(int phibin, int sector, PHG4TpcCylinderGeom *layergeom) const;
0040 
0041   TrkrHitSetContainer *m_hits = nullptr;
0042   TrkrClusterContainer *m_clusterlist = nullptr;
0043   TrkrClusterHitAssoc *m_clusterhitassoc = nullptr;
0044   ActsGeometry *m_tGeometry = nullptr;
0045 
0046   bool do_hit_assoc = true;
0047   double pedestal = 74.4;
0048   double SectorFiducialCut = 0.5;
0049 
0050   // TPC shaping offset correction parameters
0051   // From Tony Frawley May 13, 2021
0052   double par0_neg = 0.0503;
0053   double par0_pos = -0.0503;
0054 };
0055 
0056 #endif