Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-12-17 09:21:30

0001 #ifndef G4CENTRALITY_PHG4CENTRALITYRECO_H
0002 #define G4CENTRALITY_PHG4CENTRALITYRECO_H
0003 
0004 //===========================================================
0005 /// \file PHG4CentralityReco.h
0006 /// \brief Centrality quantity construction & calibration
0007 /// \author Dennis V. Perepelitsa
0008 //===========================================================
0009 
0010 #include <fun4all/SubsysReco.h>
0011 
0012 #include <phparameter/PHParameters.h>
0013 
0014 #include <limits>
0015 #include <map>
0016 #include <string>
0017 
0018 class PHCompositeNode;
0019 
0020 class PHG4CentralityReco : public SubsysReco
0021 {
0022  public:
0023   PHG4CentralityReco(const std::string &name = "PHG4CentralityReco");
0024   ~PHG4CentralityReco() override = default;
0025 
0026   int InitRun(PHCompositeNode *topNode) override;
0027   int process_event(PHCompositeNode *topNode) override;
0028 
0029   void DoCentralityCalibration(bool do_centrality_calibration)
0030   {
0031     _do_centrality_calibration = do_centrality_calibration;
0032   }
0033 
0034   PHParameters &GetCalibrationParameters()
0035   {
0036     return _centrality_calibration_params;
0037   }
0038 
0039  private:
0040   void CreateNode(PHCompositeNode *topNode);
0041   void FillNode(PHCompositeNode *topNode) const;
0042 
0043   PHParameters _centrality_calibration_params;
0044 
0045   bool _do_centrality_calibration{true};
0046 
0047   std::map<float, int> _cent_cal_bimp;
0048   std::map<float, int> _cent_cal_epd;
0049   std::map<float, int> _cent_cal_mbd;
0050 
0051   float _bimp{std::numeric_limits<float>::quiet_NaN()};
0052   float _bimp_cent{std::numeric_limits<float>::quiet_NaN()};
0053 
0054   float _epd_N{std::numeric_limits<float>::quiet_NaN()};
0055   float _epd_S{std::numeric_limits<float>::quiet_NaN()};
0056   float _epd_NS{std::numeric_limits<float>::quiet_NaN()};
0057   float _epd_cent{std::numeric_limits<float>::quiet_NaN()};
0058 
0059   float _mbd_N{std::numeric_limits<float>::quiet_NaN()};
0060   float _mbd_S{std::numeric_limits<float>::quiet_NaN()};
0061   float _mbd_NS{std::numeric_limits<float>::quiet_NaN()};
0062   float _mbd_cent{std::numeric_limits<float>::quiet_NaN()};
0063 };
0064 
0065 #endif