File indexing completed on 2025-08-06 08:18:43
0001
0002
0003
0004 #ifndef JETKINEMATICCHECK_H
0005 #define JETKINEMATICCHECK_H
0006
0007 #include "JetQADefs.h"
0008
0009 #include <fun4all/Fun4AllHistoManager.h>
0010 #include <fun4all/SubsysReco.h>
0011
0012 #include <qautils/QAHistManagerDef.h>
0013
0014 #include <string>
0015 #include <vector>
0016
0017 class TH1;
0018 class TH2;
0019 class TH3;
0020 class PHCompositeNode;
0021 class TriggerAnalyzer;
0022
0023 class JetKinematicCheck : public SubsysReco
0024 {
0025 public:
0026 JetKinematicCheck(const std::string &moduleName = "JetKinematicCheck",
0027 const std::string &recojetnameR02 = "AntiKt_Tower_r02",
0028 const std::string &recojetnameR03 = "AntiKt_Tower_r03",
0029 const std::string &recojetnameR04 = "AntiKt_Tower_r04",
0030 const std::string &recojetnameR05 = "AntiKt_Tower_r05");
0031
0032 ~JetKinematicCheck() override;
0033
0034
0035 void setEtaRange(double low, double high)
0036 {
0037 m_etaRange.first = low;
0038 m_etaRange.second = high;
0039 }
0040
0041
0042 void setPtRange(double low, double high)
0043 {
0044 m_ptRange.first = low;
0045 m_ptRange.second = high;
0046 }
0047
0048
0049 void setHistTag(const std::string &tag)
0050 {
0051 m_histTag = tag;
0052 }
0053
0054
0055 void setRestrictEtaRange(const bool restrictEtaRange = true)
0056 {
0057 m_restrictEtaRange = restrictEtaRange;
0058 }
0059
0060
0061 void setTrgToSelect(const uint32_t trig = JetQADefs::GL1::MBDNSJet1)
0062 {
0063 m_doTrgSelect = true;
0064 m_trgToSelect = trig;
0065 }
0066
0067
0068
0069
0070
0071
0072 int Init(PHCompositeNode *topNode) override;
0073
0074
0075
0076
0077
0078
0079 int InitRun(PHCompositeNode *topNode) override;
0080
0081
0082
0083
0084 int process_event(PHCompositeNode *topNode) override;
0085
0086
0087 int EndRun(const int runnumber) override;
0088
0089
0090 int End(PHCompositeNode *topNode) override;
0091
0092 private:
0093 Fun4AllHistoManager *hm{nullptr};
0094 TriggerAnalyzer *m_analyzer{nullptr};
0095
0096 std::string m_moduleName;
0097 std::string m_recoJetNameR02;
0098 std::string m_recoJetNameR03;
0099 std::string m_recoJetNameR04;
0100 std::string m_recoJetNameR05;
0101 std::string m_histTag {"AllTrig"};
0102
0103
0104 bool m_restrictEtaRange {true};
0105 std::pair<double, double> m_etaRange {-1.1,1.1};
0106 std::pair<double, double> m_ptRange {10,100};
0107
0108
0109 bool m_doTrgSelect {false};
0110 uint32_t m_trgToSelect{JetQADefs::GL1::MBDNSJet1};
0111
0112
0113 std::vector<float> m_eta;
0114 std::vector<float> m_phi;
0115 std::vector<float> m_pt;
0116 std::vector<float> m_radii;
0117
0118
0119 TH1 *h_jet_pt_spectra_r02 {nullptr};
0120 TH1 *h_jet_pt_spectra_r03 {nullptr};
0121 TH1 *h_jet_pt_spectra_r04 {nullptr};
0122 TH1 *h_jet_pt_spectra_r05 {nullptr};
0123 TH2 *h_jet_eta_phi_r02 {nullptr};
0124 TH2 *h_jet_eta_phi_r03 {nullptr};
0125 TH2 *h_jet_eta_phi_r04 {nullptr};
0126 TH2 *h_jet_eta_phi_r05 {nullptr};
0127 TH2 *h_jet_mass_pt_r02 {nullptr};
0128 TH1 *h_jet_average_mass_pt_1D_r02 {nullptr};
0129 TH2 *h_jet_mass_pt_r03 {nullptr};
0130 TH1 *h_jet_average_mass_pt_1D_r03 {nullptr};
0131 TH2 *h_jet_mass_pt_r04 {nullptr};
0132 TH1 *h_jet_average_mass_pt_1D_r04 {nullptr};
0133 TH2 *h_jet_mass_pt_r05 {nullptr};
0134 TH1 *h_jet_average_mass_pt_1D_r05 {nullptr};
0135 TH2 *h_jet_mass_eta_r02 {nullptr};
0136 TH1 *h_jet_average_mass_eta_1D_r02 {nullptr};
0137 TH2 *h_jet_mass_eta_r03 {nullptr};
0138 TH1 *h_jet_average_mass_eta_1D_r03 {nullptr};
0139 TH2 *h_jet_mass_eta_r04 {nullptr};
0140 TH1 *h_jet_average_mass_eta_1D_r04 {nullptr};
0141 TH2 *h_jet_mass_eta_r05 {nullptr};
0142 TH1 *h_jet_average_mass_eta_1D_r05 {nullptr};
0143 };
0144
0145 #endif