File indexing completed on 2025-08-05 08:20:24
0001 #ifndef HCAL_HCALMON_H
0002 #define HCAL_HCALMON_H
0003
0004 #include <onlmon/OnlMon.h>
0005
0006 #include <vector>
0007
0008 class CaloWaveformFitting;
0009 class TowerInfoContainer;
0010 class Event;
0011 class TH1;
0012 class TProfile;
0013 class TProfile2D;
0014 class TH2;
0015 class Packet;
0016 class runningMean;
0017 class eventReceiverClient;
0018
0019 class HcalMon : public OnlMon
0020 {
0021 public:
0022 HcalMon(const std::string& name);
0023 virtual ~HcalMon();
0024
0025 int process_event(Event* evt);
0026 int Init();
0027 int BeginRun(const int runno);
0028 int Reset();
0029 std::vector<float> getSignal(Packet* p, const int channel);
0030 std::vector<float> anaWaveform(Packet* p, const int channel);
0031 void set_anaGL1(bool state)
0032 {
0033 anaGL1 = state;
0034 return;
0035 }
0036 void set_trig1(int val)
0037 {
0038 trig1 = val;
0039 return;
0040 }
0041 void set_trig2(int val)
0042 {
0043 trig2 = val;
0044 return;
0045 }
0046
0047 private:
0048 static constexpr int Nsector {32};
0049 static constexpr int Ntower {1536};
0050 static constexpr int m_nChannels {192};
0051
0052
0053 TH2* h2_hcal_hits {nullptr};
0054 TH2* h2_hcal_hits_trig[64] {nullptr};
0055 TProfile2D* pr_zsFrac_etaphi {nullptr};
0056 TProfile2D* pr_zsFrac_etaphi_all {nullptr};
0057 TH1* h_waveform_twrAvg {nullptr};
0058 TH1* h_waveform_time {nullptr};
0059 TH1* h_waveform_pedestal {nullptr};
0060 TH2* h2_hcal_rm {nullptr};
0061 TH2* h2_hcal_rm_alltrig {nullptr};
0062 TH2* h2_hcal_mean {nullptr};
0063 TH2* h2_hcal_waveform {nullptr};
0064 TH2* h2_hcal_correlation {nullptr};
0065 TH2* h2_hcal_time {nullptr};
0066 TH1* h_sectorAvg_total {nullptr};
0067 TH1* h_event {nullptr};
0068 TH1* h_ntower {nullptr};
0069 TH1* h1_packet_chans {nullptr};
0070 TH1* h1_packet_length {nullptr};
0071 TH1* h1_packet_number {nullptr};
0072 TH1* h1_packet_event {nullptr};
0073 TH1* h_rm_sectorAvg[32] {nullptr};
0074 TH1* h_rm_tower[24][64]{{nullptr}};
0075 TH1* h_hcal_trig {nullptr};
0076 TH2* h_caloPack_gl1_clock_diff {nullptr};
0077 TProfile* h_evtRec {nullptr};
0078 TProfile2D* p2_pre_post{nullptr};
0079 CaloWaveformFitting* WaveformProcessing {nullptr};
0080 eventReceiverClient* erc {nullptr};
0081
0082 int evtcnt {0};
0083 int idummy {0};
0084 int packetlow {8001};
0085 int packethigh {8008};
0086 int trig1 {28};
0087 int trig2 {5};
0088 int trig3 {10};
0089 int trig4 {4};
0090
0091 bool anaGL1 {true};
0092 bool usetrig4_10 {true};
0093
0094
0095 std::vector<runningMean*> rm_vector_sectAvg;
0096 std::vector<runningMean*> rm_vector_twr;
0097 std::vector<runningMean*> rm_vector_twrhit_alltrig;
0098 std::vector<runningMean*> rm_vector_twrhit;
0099 std::vector<runningMean*> rm_vector_twrTime;
0100 std::vector<runningMean*> rm_packet_number;
0101 std::vector<runningMean*> rm_packet_length;
0102 std::vector<runningMean*> rm_packet_chans;
0103
0104 };
0105
0106 #endif