File indexing completed on 2026-07-16 08:12:43
0001 #ifndef SEPDTOWERANALYSIS_H
0002 #define SEPDTOWERANALYSIS_H
0003
0004 #include <fun4all/SubsysReco.h>
0005
0006 #include <string>
0007
0008 class PHCompositeNode;
0009 class TFile;
0010 class TH1F;
0011 class TH2F;
0012 class TTree;
0013 class TProfile;
0014
0015 class sEPDTowerAnalysis : public SubsysReco
0016 {
0017 public:
0018 sEPDTowerAnalysis(const std::string &name = "sEPDTowerAnalysis");
0019 ~sEPDTowerAnalysis() override;
0020
0021 int Init(PHCompositeNode *topNode) override;
0022 int InitRun(PHCompositeNode *topNode) override;
0023 int process_event(PHCompositeNode *topNode) override;
0024 int End(PHCompositeNode *topNode) override;
0025
0026 void SetOutputFile(const std::string &filename) { m_outputFile = filename; }
0027
0028 private:
0029 std::string m_outputFile;
0030 TFile *m_file;
0031
0032 TH1F *h_energy_all;
0033 TH1F *h_energy_all_with_negative;
0034 TH1F *h_energy_tile;
0035 TH1F *h_energy_valid_time;
0036 TH1F *h_energy_nan_time;
0037 TH1F *h_time_all;
0038 TH1F *h_chi2_all;
0039 TH1F *h_pedestal_all;
0040 TH2F *h_energy_vs_time;
0041 TH2F *h_energy_vs_chi2;
0042 TProfile *h_energy_vs_chi2_profile;
0043 TH2F *h_chi2_vs_energy;
0044 TProfile *h_chi2_vs_energy_profile;
0045
0046 TH1F *h_energy_fast;
0047 TH1F *h_time_fast;
0048 TH1F *h_chi2_fast;
0049 TH1F *h_pedestal_fast;
0050 TH2F *h_energy_vs_chi2_fast;
0051
0052 TH2F *h_energy_template_vs_fast;
0053 TH2F *h_energy_template_vs_fast_time_cut1;
0054 TH2F *h_energy_template_vs_fast_time_cut2;
0055 TH2F *h_energy_template_vs_fast_fast_time_cut1;
0056 TH2F *h_energy_template_vs_fast_fast_time_cut2;
0057 TH1F *h_time_template;
0058 TH1F *h_time_fast_separate;
0059 TH2F *h_pedestal_template_vs_fast;
0060 TH2F *h_time_template_vs_fast;
0061
0062 TH1F *h_event_summary;
0063 TH1F *h_energy_categories;
0064
0065 TTree *m_tree;
0066 int m_event;
0067 int m_channel;
0068 int m_idx;
0069
0070 float m_energy;
0071 float m_time;
0072 float m_chi2;
0073 float m_pedestal;
0074 bool m_valid_time;
0075
0076 float m_energy_fast;
0077 float m_time_fast;
0078 float m_chi2_fast;
0079 float m_pedestal_fast;
0080 bool m_valid_time_fast;
0081
0082 int m_total_channels;
0083 int m_channels_with_signal;
0084 int m_channels_valid_time;
0085 int m_channels_nan_time;
0086 int m_channels_zero_suppressed;
0087 };
0088
0089 #endif