Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-03 08:18:12

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 {}
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