Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2026-07-16 08:13:58

0001 #ifndef BCOLUMICOUNT_STREAMINGLUMIRECO_H
0002 #define BCOLUMICOUNT_STREAMINGLUMIRECO_H
0003 
0004 #include "StreamingLumiInfo.h"
0005 
0006 #include <fun4all/SubsysReco.h>
0007 #include <fun4all/Fun4AllHistoManager.h>
0008 
0009 #include <string>
0010 #include <utility>
0011 #include <array>
0012 
0013 class TH1;
0014 
0015 class StreamingLumiReco : public SubsysReco
0016 {
0017  public:
0018   StreamingLumiReco(const std::string &name = "STREAMINGBCOLUMIRECO");
0019   ~StreamingLumiReco() override = default;
0020 
0021   int Init(PHCompositeNode *topNode) override;
0022   int InitRun(PHCompositeNode *topNode) override;
0023   int process_event(PHCompositeNode *topNode) override;
0024   int EndRun(const int runnumber) override;
0025 
0026   virtual const std::array<double, 120> get_bunchnumber_lumi_raw() const { return m_bunchnumber_lumi_raw; }
0027   virtual const std::array<double, 120> get_bunchnumber_lumi_live() const { return m_bunchnumber_lumi_live; }
0028   virtual const std::array<double, 120> get_bunchnumber_lumi_scaled() const { return m_bunchnumber_lumi_scaled; }
0029 
0030   virtual double get_lumi_raw() const { return m_lumi_raw; }
0031   virtual double get_lumi_live() const { return m_lumi_live; }
0032   virtual double get_lumi_scaled() const { return m_lumi_scaled; }
0033 
0034   virtual void set_default_positive_window_length(int val) { m_default_positive_window_length = val; }
0035   virtual void set_default_negative_window_length(int val) { m_default_negative_window_length = val; }
0036 
0037 
0038  private:
0039   static int CreateNodeTree(PHCompositeNode *topNode);
0040 
0041   int m_bunches = 120;
0042   unsigned int m_default_positive_window_length{340};
0043   unsigned int m_default_negative_window_length{20};
0044 
0045   //double m_xsec_MBDNS = 24.07*1e9; //convert to pb from Vernier scan DOUBLE CHECK VALUE!
0046 
0047   uint64_t m_rawgl1scaler{0};
0048 
0049   std::array<long, 120> m_bunchnumber_MBDNS_raw{0};
0050   std::array<long, 120> m_bunchnumber_MBDNS_live{0};
0051   std::array<long, 120> m_bunchnumber_MBDNS_scaled{0};
0052 
0053   std::array<long, 120> m_bunchnumber_crossings{0};
0054 
0055   std::array<double, 120> m_bunchnumber_lumi_raw{0.};
0056   std::array<double, 120> m_bunchnumber_lumi_live{0.};
0057   std::array<double, 120> m_bunchnumber_lumi_scaled{0.};
0058 
0059   double m_lumi_raw{0.};
0060   double m_lumi_live{0.};
0061   double m_lumi_scaled{0.};
0062 
0063   StreamingLumiInfo *m_streaming_lumi_info = nullptr;
0064 
0065 };
0066 
0067 #endif  // BCOLUMICOUNT_STREAMINGLUMIRECO_H