Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
0003 
0004 /*!
0005  *  \file         TpcClusterCleaner.h
0006  *  \brief       Class for removing bad TPC clusters
0007  *  \author  Tony Frawley <afrawley@fsu.edu>
0008  */
0009 
0010 #ifndef TPCCLUSTERCLEANER_H
0011 #define TPCCLUSTERCLEANER_H
0012 
0013 #include <fun4all/SubsysReco.h>
0014 
0015 #include <string>
0016 #include <vector>
0017 
0018 class PHCompositeNode;
0019 class TrkrCluster;
0020 class TrkrClusterContainer;
0021 
0022 class TpcClusterCleaner : public SubsysReco
0023 {
0024  public:
0025   TpcClusterCleaner(const std::string &name = "TpcClusterCleaner");
0026 
0027   ~TpcClusterCleaner() override;
0028 
0029   int InitRun(PHCompositeNode *topNode) override;
0030   int process_event(PHCompositeNode *topNode) override;
0031   int End(PHCompositeNode *topNode) override;
0032 
0033   void set_rphi_error_low_cut(double cut) { _rphi_error_low_cut = cut; }
0034   void set_rphi_error_high_cut(double cut) { _rphi_error_high_cut = cut; }
0035 
0036   void set_new_rphi_error(double err) { _new_rphi_error = err; }
0037   void set_new_z_error(double err) { _new_z_error = err; }
0038 
0039  private:
0040   void rotate_error(double erphi, double ez, double phi, double error[][3]);
0041 
0042   int GetNodes(PHCompositeNode *topNode);
0043   TrkrClusterContainer *_cluster_map = nullptr;
0044 
0045   double _rphi_error_low_cut = 0.01;
0046   double _rphi_error_high_cut = 0.1;  // made large enough to not matter for now
0047 
0048   double _new_rphi_error = 0.05;
0049   double _new_z_error = 0.1;
0050 };
0051 
0052 #endif  // TPCCLUSTERCLEANER_H