diff --git a/benchmarks/rich/include/CherenkovPIDAnalysis.h b/benchmarks/rich/include/CherenkovPIDAnalysis.h index 76a310e73d028856d5068c5984059deea75863dc..857d693bd4bccf5e595dcf7d3b0160d34b508ca9 100644 --- a/benchmarks/rich/include/CherenkovPIDAnalysis.h +++ b/benchmarks/rich/include/CherenkovPIDAnalysis.h @@ -52,16 +52,22 @@ namespace benchmarks { TH1D *m_mcWavelength_dist; TH1D *m_mcRindex_dist; TH1D *m_highestWeight_dist; + TH1D *m_speTheta_dist; + TH1D *m_speResid_dist; TH2D *m_photonTheta_vs_photonPhi; // - momentum scans TH2D *m_npe_vs_p; TH2D *m_theta_vs_p; + TH2D *m_spetheta_vs_p; TH2D *m_thetaResid_vs_p; + TH2D *m_spethetaResid_vs_p; TH2D *m_highestWeight_vs_p; // - pseudorapidity scans TH2D *m_npe_vs_eta; TH2D *m_theta_vs_eta; + TH2D *m_spetheta_vs_eta; TH2D *m_thetaResid_vs_eta; + TH2D *m_spehetaResid_vs_eta; TH2D *m_highestWeight_vs_eta; // logger diff --git a/benchmarks/rich/src/CherenkovPIDAnalysis.cc b/benchmarks/rich/src/CherenkovPIDAnalysis.cc index 795dbe814d9a7640b253fddec5f7570063a4ef47..d57d7c7e796115d0e499f0ca3b14848dc10307bb 100644 --- a/benchmarks/rich/src/CherenkovPIDAnalysis.cc +++ b/benchmarks/rich/src/CherenkovPIDAnalysis.cc @@ -31,20 +31,32 @@ namespace benchmarks { ); m_theta_dist = new TH1D( "theta_dist_"+m_rad_name_trun, - "Estimated Cherenkov Angle for "+m_rad_title+";#theta [mrad]", + "Reconstructed Cherenkov Angle for "+m_rad_title+";#theta [mrad]", Tools::theta_bins, 0, Tools::theta_max ); m_thetaResid_dist = new TH1D( "thetaResid_dist_"+m_rad_name_trun, - "Estimated Cherenkov Angle Residual for "+m_rad_title+";#Delta#theta [mrad]", + "Reconstructed Cherenkov Angle Residual for "+m_rad_title+";#Delta#theta [mrad]", Tools::theta_bins, -Tools::thetaResid_max, Tools::thetaResid_max ); m_photonTheta_vs_photonPhi = new TH2D( "photonTheta_vs_photonPhi_"+m_rad_name_trun, - "Estimated Photon #theta vs #phi for "+m_rad_title+";#phi [rad];#theta [mrad]", + "Reconstructed Photon #theta vs #phi for "+m_rad_title+";#phi [rad];#theta [mrad]", Tools::phi_bins, -TMath::Pi(), TMath::Pi(), Tools::theta_bins, 0, Tools::theta_max ); + m_speTheta_dist = new TH1D( + "speTheta_dist_"+m_rad_name_trun, + "Reconstructed Photon SPE #theta for" +m_rad_title+";#theta[mrad], + Tools::theta_bins, 0, Tools::theta_max + ); + + m_speResid_dist = new TH1D( + "speResid_dist_"+m_rad_name_trun, + "Reconstructed SPE Cherenkov Angle Residual for "+m_rad_title+";#Delta#theta [mrad]", + Tools::theta_bins, -Tools::thetaResid_max, Tools::thetaResid_max + ); + // truth distributions m_mcWavelength_dist = new TH1D( @@ -74,13 +86,25 @@ namespace benchmarks { ); m_theta_vs_p = new TH2D( "theta_vs_p_"+m_rad_name_trun, - "Estimated Cherenkov Angle vs. Particle Momentum for "+m_rad_title+";p [GeV];#theta [mrad]", + "Reconstructed Cherenkov Angle vs. Particle Momentum for "+m_rad_title+";p [GeV];#theta [mrad]", Tools::momentum_bins, 0, Tools::momentum_max, Tools::theta_bins, 0, Tools::theta_max ); m_thetaResid_vs_p = new TH2D( "thetaResid_vs_p_"+m_rad_name_trun, - "Estimated Cherenkov Angle Residual vs. Particle Momentum for "+m_rad_title+";p [GeV];#Delta#theta [mrad]", + "Reconstructed Cherenkov Angle Residual vs. Particle Momentum for "+m_rad_title+";p [GeV];#Delta#theta [mrad]", + Tools::momentum_bins, 0, Tools::momentum_max, + Tools::theta_bins, -Tools::thetaResid_max, Tools::thetaResid_max + ); + m_spetheta_vs_p = new TH2D( + "theta_vs_p_"+m_rad_name_trun, + "Reconstructed Cherenkov Angle vs. Particle Momentum for "+m_rad_title+";p [GeV];#theta [mrad]", + Tools::momentum_bins, 0, Tools::momentum_max, + Tools::theta_bins, 0, Tools::theta_max + ); + m_spethetaResid_vs_p = new TH2D( + "thetaResid_vs_p_"+m_rad_name_trun, + "Reconstructed Cherenkov Angle Residual vs. Particle Momentum for "+m_rad_title+";p [GeV];#Delta#theta [mrad]", Tools::momentum_bins, 0, Tools::momentum_max, Tools::theta_bins, -Tools::thetaResid_max, Tools::thetaResid_max ); @@ -100,16 +124,29 @@ namespace benchmarks { ); m_theta_vs_eta = new TH2D( "theta_vs_eta_"+m_rad_name_trun, - "Estimated Cherenkov Angle vs. Pseudorapidity for "+m_rad_title+";#eta;#theta [mrad]", + "Reconstructed Cherenkov Angle vs. Pseudorapidity for "+m_rad_title+";#eta;#theta [mrad]", Tools::eta_bins, Tools::eta_min, Tools::eta_max, Tools::theta_bins, 0, Tools::theta_max ); m_thetaResid_vs_eta = new TH2D( "thetaResid_vs_eta_"+m_rad_name_trun, - "Estimated Cherenkov Angle Residual vs. Pseudorapidity for "+m_rad_title+";#eta;#Delta#theta [mrad]", + "Reconstructed Cherenkov Angle Residual vs. Pseudorapidity for "+m_rad_title+";#eta;#Delta#theta [mrad]", Tools::eta_bins, Tools::eta_min, Tools::eta_max, Tools::theta_bins, -Tools::thetaResid_max, Tools::thetaResid_max ); + m_spetheta_vs_eta = new TH2D( + "theta_vs_eta_"+m_rad_name_trun, + "Reconstructed SPE Cherenkov Angle vs. Pseudorapidity for "+m_rad_title+";#eta;#theta [mrad]", + Tools::eta_bins, Tools::eta_min, Tools::eta_max, + Tools::theta_bins, 0, Tools::theta_max + ); + m_spethetaResid_vs_eta = new TH2D( + "thetaResid_vs_eta_"+m_rad_name_trun, + "Reconstructed SPE Cherenkov Angle Residual vs. Pseudorapidity for "+m_rad_title+";#eta;#Delta#theta [mrad]", + Tools::eta_bins, Tools::eta_min, Tools::eta_max, + Tools::theta_bins, -Tools::thetaResid_max, Tools::thetaResid_max + ); + m_highestWeight_vs_eta = new TH2D( "highestWeight_vs_eta_"+m_rad_name_trun, "Highest PDG Weight vs. Pseudorapidity for "+m_rad_title+";#eta", @@ -200,8 +237,15 @@ namespace benchmarks { m_thetaResid_dist->Fill( theta_resid_mrad); m_thetaResid_vs_p->Fill( charged_particle_momentum, theta_resid_mrad); m_thetaResid_vs_eta->Fill( charged_particle_eta, theta_resid_mrad); - for(const auto& [theta,phi] : cherenkov_pid.getThetaPhiPhotons()) - m_photonTheta_vs_photonPhi->Fill( phi, theta*1e3); // [rad] -> [mrad] + for(const auto& [theta,phi] : cherenkov_pid.getThetaPhiPhotons()){ + m_photonTheta_vs_photonPhi->Fill( phi, theta*1e3); + m_speTheta_dist->Fill(theta*1e3); + m_speResid_dist->Fill((theta-theta_exp)*1e3); + m_spetheta_vs_p->Fill(charged_particle_momentum,theta*1e3); + m_spethetaResid_vs_p->Fill(charged_particle_momentum,(theta-theta_exp)*1e3); + m_spetheta_vs_eta->Fill(charged_particle_eta,theta*1e3); + m_spethetaResid_vs_eta->Fill(charged_particle_eta,(theta-theta_exp)*1e3); + } // [rad] -> [mrad] m_mcWavelength_dist->Fill( Tools::HC / cherenkov_pid.getPhotonEnergy() ); // energy [GeV] -> wavelength [nm] m_mcRindex_dist->Fill( mc_rindex);