Back to home page

sPhenix code displayed by LXR

 
 

    


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   // TH1 *hcalhist1 {nullptr};
0052   // TH2 *hcalhist2 {nullptr};
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 /* HCAL_HCALMON_H */