File indexing completed on 2025-08-06 08:17:31
0001 #include <string>
0002 #include <vector> // for vector
0003
0004 class EmcModule;
0005 class TH1F;
0006
0007 class BEmcProfile
0008 {
0009 public:
0010 explicit BEmcProfile(const std::string& fname);
0011
0012
0013 explicit BEmcProfile(const BEmcProfile&) = delete;
0014 BEmcProfile& operator=(const BEmcProfile&) = delete;
0015
0016 virtual ~BEmcProfile();
0017
0018 float GetProb(std::vector<EmcModule>* plist, int NX, float en, float theta, float phi);
0019 static float GetTowerEnergy(int iy, int iz, std::vector<EmcModule>* plist, int nx);
0020 void PredictEnergy(int ip, float en, float theta, float phi, float ddz, float ddy, float& ep, float& err);
0021 float PredictEnergyR(float energy, float theta, float phi, float rr);
0022
0023 bool IsLoaded() { return bloaded; }
0024 int Verbosity() const { return m_Verbosity; }
0025 void Verbosity(const int i) { m_Verbosity = i; }
0026
0027 protected:
0028 bool bloaded;
0029
0030 float thresh;
0031 int nen;
0032 int nth;
0033
0034 float* energy_array;
0035 float* theta_array;
0036
0037 TH1F** hmean;
0038 TH1F** hsigma;
0039 TH1F** hr4;
0040
0041 private:
0042 int m_Verbosity;
0043 };