File indexing completed on 2025-12-17 09:21:30
0001 #ifndef G4CENTRALITY_PHG4CENTRALITYRECO_H
0002 #define G4CENTRALITY_PHG4CENTRALITYRECO_H
0003
0004
0005
0006
0007
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