File indexing completed on 2025-07-01 07:56:14
0001
0002
0003
0004 #pragma once
0005
0006 #include <spdlog/spdlog.h>
0007
0008 #include <TH1D.h>
0009 #include <TH2D.h>
0010 #include <TMath.h>
0011 #include <TRegexp.h>
0012
0013 #include <edm4eic/CherenkovParticleIDCollection.h>
0014 #include <edm4hep/MCParticleCollection.h>
0015 #include <edm4hep/utils/vector_utils.h>
0016 #include <edm4hep/utils/kinematics.h>
0017
0018 #include "Tools.h"
0019 #include "ChargedParticle.h"
0020
0021 namespace benchmarks {
0022
0023 class CherenkovPIDAnalysis {
0024
0025 public:
0026 CherenkovPIDAnalysis() = default;
0027 ~CherenkovPIDAnalysis() {}
0028
0029
0030 void AlgorithmInit(
0031 std::string rad_name,
0032 std::shared_ptr<spdlog::logger>& logger
0033 );
0034 void AlgorithmProcess(
0035 const edm4hep::MCParticleCollection& mc_parts,
0036 const edm4eic::CherenkovParticleIDCollection& cherenkov_pids
0037 );
0038 void AlgorithmFinish();
0039
0040 private:
0041
0042
0043 std::string m_rad_name;
0044 TString m_rad_name_trun;
0045 TString m_rad_title;
0046
0047
0048
0049 TH1D *m_npe_dist;
0050 TH1D *m_theta_dist;
0051 TH1D *m_thetaResid_dist;
0052 TH1D *m_mcWavelength_dist;
0053 TH1D *m_mcRindex_dist;
0054 TH1D *m_highestWeight_dist;
0055 TH2D *m_photonTheta_vs_photonPhi;
0056
0057 TH2D *m_npe_vs_p;
0058 TH2D *m_theta_vs_p;
0059 TH2D *m_thetaResid_vs_p;
0060 TH2D *m_highestWeight_vs_p;
0061
0062 TH2D *m_npe_vs_eta;
0063 TH2D *m_theta_vs_eta;
0064 TH2D *m_thetaResid_vs_eta;
0065 TH2D *m_highestWeight_vs_eta;
0066
0067
0068 std::shared_ptr<spdlog::logger> m_log;
0069
0070 };
0071
0072 }