Back to home page

sPhenix code displayed by LXR

 
 

    


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

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 TH1;
0012 class PHCompositeNode;
0013 
0014 class TrackFittingQA : public SubsysReco
0015 {
0016  public:
0017   TrackFittingQA(const std::string& name = "TrackFittingQA");
0018   ~TrackFittingQA() override = default;
0019 
0020   /// Cuts (bounds are inclusive, e.g. set_min_intt_states(2) means 1 state tracks are ignored, while 2 state tracks are kept)
0021   /// Defaults are all-inclusive
0022   void set_min_quality ( float const& min_quality ) { m_min_quality = min_quality; }
0023   void set_max_quality ( float const& max_quality ) { m_max_quality = max_quality; }
0024   void set_min_p ( float const& min_p ) { m_min_p = min_p; }
0025   void set_min_pt ( float const& min_pt ) { m_min_pt = min_pt; }
0026   void set_max_abs_eta ( float const& max_abs_eta ) { m_max_abs_eta = max_abs_eta; }
0027   void set_min_intt_states ( int const& min_intt_states ) { m_min_intt_states = min_intt_states; }
0028   void set_min_mvtx_states ( int const& min_mvtx_states ) { m_min_mvtx_states = min_mvtx_states; }
0029   void set_min_tpc_states ( int const& min_tpc_states ) { m_min_tpc_states = min_tpc_states; }
0030   void set_min_tpot_states ( int const& min_tpot_states ) { m_min_tpot_states = min_tpot_states; }
0031   void set_min_crossing ( short const& min_crossing ) { m_min_crossing = min_crossing; }
0032   void set_max_crossing ( short const& max_crossing ) { m_max_crossing = max_crossing; }
0033 
0034   /// sets the name of node to retrieve the track map from (default member value is "SvtxTrackMap")
0035   void set_track_map_name(std::string const& track_map_node_name) { m_track_map_node_name = track_map_node_name; }
0036 
0037   /// sets the name of node to retrieve the state map from (default member value is "SvtxAlignmentStateMap")
0038   //    void set_state_map_name (std::string const& state_map_node_name) {m_state_map_node_name = state_map_node_name;}
0039 
0040   int Init(PHCompositeNode*) override;
0041   int InitRun(PHCompositeNode*) override;
0042 
0043   int process_event(PHCompositeNode*) override;
0044 
0045   int ResetEvent(PHCompositeNode*) override;
0046 
0047   int EndRun(const int runnumber) override;
0048   int End(PHCompositeNode*) override;
0049 
0050   int Reset(PHCompositeNode*) override;
0051   void Print(std::string const& = "ALL") const override;
0052 
0053  private:
0054   TH1* m_quality_hist[2]{};
0055   TH1* m_p_hist[2]{};
0056   TH1* m_pt_hist[2]{};
0057   TH1* m_eta_hist[2]{};
0058   TH1* m_phi_eta_hist[2]{};
0059   TH1* m_intt_states_hist[2]{};
0060   TH1* m_mvtx_states_hist[2]{};
0061   TH1* m_tpc_states_hist[2]{};
0062   TH1* m_tpot_states_hist[2]{};
0063   // ...
0064   // residual plots as a function of tpc sector (Mariia)
0065 
0066   std::string m_track_map_node_name = "SvtxTrackMap";
0067 
0068   /// Cuts
0069   float m_min_quality{0};
0070   float m_max_quality{std::numeric_limits<float>::max()};
0071   float m_min_p{0};
0072   float m_min_pt{0};
0073   float m_max_abs_eta{std::numeric_limits<float>::max()};
0074   int m_min_intt_states{0};
0075   int m_min_mvtx_states{0};
0076   int m_min_tpc_states{0};
0077   int m_min_tpot_states{0};
0078   short m_min_crossing{0};
0079   short m_max_crossing{std::numeric_limits<short>::max()};
0080 };
0081 
0082 #endif  // TRACKFITTINGQA_H