File indexing completed on 2025-08-03 08:18:12
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 {}
0025
0026 int InitRun(PHCompositeNode *topNode) override;
0027 int process_event(PHCompositeNode *topNode) override;
0028 int End(PHCompositeNode *topNode) override;
0029
0030 void DoCentralityCalibration(bool do_centrality_calibration)
0031 {
0032 _do_centrality_calibration = do_centrality_calibration;
0033 }
0034
0035 PHParameters &GetCalibrationParameters()
0036 {
0037 return _centrality_calibration_params;
0038 }
0039
0040 private:
0041 void CreateNode(PHCompositeNode *topNode);
0042 void FillNode(PHCompositeNode *topNode);
0043
0044 PHParameters _centrality_calibration_params;
0045
0046 bool _do_centrality_calibration {true};
0047
0048 std::map<float, int> _cent_cal_bimp;
0049 std::map<float, int> _cent_cal_epd;
0050 std::map<float, int> _cent_cal_mbd;
0051
0052 float _bimp {std::numeric_limits<float>::quiet_NaN()};
0053 float _bimp_cent {std::numeric_limits<float>::quiet_NaN()};
0054
0055 float _epd_N {std::numeric_limits<float>::quiet_NaN()};
0056 float _epd_S {std::numeric_limits<float>::quiet_NaN()};
0057 float _epd_NS {std::numeric_limits<float>::quiet_NaN()};
0058 float _epd_cent {std::numeric_limits<float>::quiet_NaN()};
0059
0060 float _mbd_N {std::numeric_limits<float>::quiet_NaN()};
0061 float _mbd_S {std::numeric_limits<float>::quiet_NaN()};
0062 float _mbd_NS {std::numeric_limits<float>::quiet_NaN()};
0063 float _mbd_cent {std::numeric_limits<float>::quiet_NaN()};
0064 };
0065
0066 #endif