Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-12-17 09:21:27

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
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   /// sets the name of node to retrieve the track map from (default member value is "SvtxTrackMap")
0022   void set_track_map_name(std::string const& track_map_node_name) { m_track_map_node_name = track_map_node_name; }
0023 
0024   /// sets the name of node to retrieve the state map from (default member value is "SvtxAlignmentStateMap")
0025   //    void set_state_map_name (std::string const& state_map_node_name) {m_state_map_node_name = state_map_node_name;}
0026 
0027   /// Histogram ranges (see member declarations for default values)
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   /// Cuts (bounds are inclusive, e.g. set_min_intt_states(2) means 1 state tracks are ignored, while 2 state tracks are kept)
0036   /// Defaults are all-inclusive
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   // residual plots as a function of tpc sector (Mariia)
0087 
0088   std::string m_track_map_node_name = "SvtxTrackMap";
0089 
0090   /// Cuts
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  // TRACKFITTINGQA_H