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
0021
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
0051
0052 double par0_neg = 0.0503;
0053 double par0_pos = -0.0503;
0054 };
0055
0056 #endif