File indexing completed on 2025-12-17 09:21:27
0001
0002
0003 #ifndef TRACKFITTINGQA_H
0004 #define TRACKFITTINGQA_H
0005
0006 #include <fun4all/SubsysReco.h>
0007
0008 #include <string>
0009 #include <limits>
0010
0011 class PHCompositeNode;
0012 class TH1;
0013 class TProfile;
0014
0015 class TrackFittingQA : public SubsysReco
0016 {
0017 public:
0018 TrackFittingQA(const std::string& name = "TrackFittingQA");
0019 ~TrackFittingQA() override = default;
0020
0021
0022 void set_track_map_name(std::string const& track_map_node_name) { m_track_map_node_name = track_map_node_name; }
0023
0024
0025
0026
0027
0028 void set_quality_hist_xrange (std::pair<float, float> const& quality_hist_xrange) { m_quality_hist_xrange = quality_hist_xrange; }
0029 void set_p_hist_xrange (std::pair<float, float> const& p_hist_xrange) { m_p_hist_xrange = p_hist_xrange; }
0030 void set_pt_hist_xrange (std::pair<float, float> const& pt_hist_xrange) { m_pt_hist_xrange = pt_hist_xrange; }
0031 void set_pt_err_hist_xrange (std::pair<float, float> const& pt_err_hist_xrange) { m_pt_err_hist_xrange = pt_err_hist_xrange; }
0032 void set_pt_err_hist_yrange (std::pair<float, float> const& pt_err_hist_yrange) { m_pt_err_hist_yrange = pt_err_hist_yrange; }
0033
0034
0035
0036
0037 void set_min_quality ( float const& min_quality ) { m_min_quality = min_quality; }
0038 void set_max_quality ( float const& max_quality ) { m_max_quality = max_quality; }
0039 void set_min_p ( float const& min_p ) { m_min_p = min_p; }
0040 void set_min_pt ( float const& min_pt ) { m_min_pt = min_pt; }
0041 void set_max_abs_eta ( float const& max_abs_eta ) { m_max_abs_eta = max_abs_eta; }
0042 void set_min_intt_states ( int const& min_intt_states ) { m_min_intt_states = min_intt_states; }
0043 void set_min_mvtx_states ( int const& min_mvtx_states ) { m_min_mvtx_states = min_mvtx_states; }
0044 void set_min_tpc_states ( int const& min_tpc_states ) { m_min_tpc_states = min_tpc_states; }
0045 void set_min_tpot_states ( int const& min_tpot_states ) { m_min_tpot_states = min_tpot_states; }
0046 void set_min_crossing ( short const& min_crossing ) { m_min_crossing = min_crossing; }
0047 void set_max_crossing ( short const& max_crossing ) { m_max_crossing = max_crossing; }
0048
0049
0050 int Init(PHCompositeNode*) override;
0051 int InitRun(PHCompositeNode*) override;
0052
0053 int process_event(PHCompositeNode*) override;
0054
0055 int ResetEvent(PHCompositeNode*) override;
0056
0057 int EndRun(const int runnumber) override;
0058 int End(PHCompositeNode*) override;
0059
0060 int Reset(PHCompositeNode*) override;
0061 void Print(std::string const& = "ALL") const override;
0062
0063 private:
0064
0065 TH1* m_quality_hist[2]{};
0066 std::pair<float, float> m_quality_hist_xrange {0.0, 100.0};
0067
0068 TH1* m_p_hist[2]{};
0069 std::pair<float, float> m_p_hist_xrange {0.0, 12.0};
0070
0071 TH1* m_pt_hist[2]{};
0072 std::pair<float, float> m_pt_hist_xrange {0.0, 8.0};
0073
0074 TH1* m_pt_err_hist[2]{};
0075 TProfile* m_pt_err_profile[2]{};
0076 std::pair<float, float> m_pt_err_hist_xrange {0.0, 2.0};
0077 std::pair<float, float> m_pt_err_hist_yrange {0.0, 0.01};
0078
0079 TH1* m_eta_hist[2]{};
0080 TH1* m_phi_eta_hist[2]{};
0081 TH1* m_intt_states_hist[2]{};
0082 TH1* m_mvtx_states_hist[2]{};
0083 TH1* m_tpc_states_hist[2]{};
0084 TH1* m_tpot_states_hist[2]{};
0085
0086
0087
0088 std::string m_track_map_node_name = "SvtxTrackMap";
0089
0090
0091 float m_min_quality{0};
0092 float m_max_quality{std::numeric_limits<float>::max()};
0093 float m_min_p{0};
0094 float m_min_pt{0};
0095 float m_max_abs_eta{std::numeric_limits<float>::max()};
0096 int m_min_intt_states{0};
0097 int m_min_mvtx_states{0};
0098 int m_min_tpc_states{0};
0099 int m_min_tpot_states{0};
0100 short m_min_crossing{0};
0101 short m_max_crossing{std::numeric_limits<short>::max()};
0102 };
0103
0104 #endif