From fd28d40c5f715f4eefeed355b075fb88fb4cc1b9 Mon Sep 17 00:00:00 2001 From: Gordon McCann Date: Fri, 24 Jun 2022 15:37:10 -0400 Subject: [PATCH] Trying messing with SABRE geometry params to get better reconstruction results --- src/Histogrammer.cpp | 15 ++++++++++++++- src/Reconstructor.h | 7 +++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/Histogrammer.cpp b/src/Histogrammer.cpp index 200622c..796692d 100644 --- a/src/Histogrammer.cpp +++ b/src/Histogrammer.cpp @@ -319,12 +319,25 @@ namespace SabreRecon { FillHistogram2D({"xavg_sabreE","xavg_sabreE;xavg; E(MeV)",600,-300.0,300.0,400,0,20.0},m_eventPtr->xavg, biggestSabre.ringE); FillHistogram2D({"9Btheta_sabreTheta","9Btheta_sabreTheta;#theta_{9B};#theta_{SABRE}",180,0.0,180.0,180,0.0,180.0}, recon9B.residThetaLab*s_rad2deg, sabreCoords.Theta()*s_rad2deg); FillHistogram2D({"sabreE_relAngle","sabreE_relAngle;#theta_{rel};E(MeV)",180,0.0,180.0,400,0.0,20.0},relAngle*s_rad2deg,biggestSabre.ringE); + FillHistogram2D({"sabreTheta_5Liex","sabreTheta_5Liex;#theta (deg);E_x (MeV)",180,0.0,180.0,1000,-5.0,25.0},sabreCoords.Theta()*s_rad2deg,recon5Li.excitation); + FillHistogram2D({"sabreTheta_7Beex","sabreTheta_7Beex;#theta (deg);E_x (MeV)",180,0.0,180.0,1000,-20.0,10.0},sabreCoords.Theta()*s_rad2deg,recon7Be.excitation); + FillHistogram2D({"sabreTheta_14Nex","sabreTheta_14Nex;#theta (deg);E_x (MeV)",180,0.0,180.0,1000,-20.0,10.0},sabreCoords.Theta()*s_rad2deg,recon14N.excitation); + FillHistogram2D({"sabrePhi_5Liex","sabrePhi_5Liex;#phi (deg);E_x (MeV)",360,0.0,360.0,1000,-5.0,25.0},Phi360(sabreCoords.Phi())*s_rad2deg,recon5Li.excitation); + FillHistogram2D({"sabrePhi_7Beex","sabrePhi_7Beex;#phi (deg);E_x (MeV)",360,0.0,360.0,1000,-20.0,10.0},Phi360(sabreCoords.Phi())*s_rad2deg,recon7Be.excitation); + FillHistogram2D({"sabrePhi_14Nex","sabrePhi_14Nex;#phi (deg);E_x (MeV)",360,0.0,360.0,1000,-20.0,10.0},Phi360(sabreCoords.Phi())*s_rad2deg,recon14N.excitation); - if(m_eventPtr->xavg > -186.0 && m_eventPtr->xavg < -178.0 && (biggestSabre.detID == 2 || biggestSabre.detID == 3)) + if(m_eventPtr->xavg > -186.0 && m_eventPtr->xavg < -178.0) //nub { FillHistogram2D({"sabreE_sabreTheta_nub","sabreE_sabreTheta_nub;#theta (deg);E(MeV)",180,0.0,180.0,400,0.0,20.0},sabreCoords.Theta()*s_rad2deg,biggestSabre.ringE); FillHistogram2D({"sabreE_sabrePhi_nub","sabreE_sabreTheta_nub;#phi (deg);E(MeV)",360,0.0,360.0,400,0.0,20.0},Phi360(sabreCoords.Phi())*s_rad2deg,biggestSabre.ringE); } + else if(m_eventPtr->xavg > -195.0 && m_eventPtr->xavg < -185.0) //Nabin peak + { + FillHistogram2D({"sabreTheta_5Liex_nabinPeak","sabreTheta_5Liex_nabinPeak;#theta (deg);E_x (MeV)",180,0.0,180.0,1000,-5.0,25.0},sabreCoords.Theta()*s_rad2deg,recon5Li.excitation); + FillHistogram2D({"sabreTheta_7Beex_nabinPeak","sabreTheta_7Beex_nabinPeak;#theta (deg);E_x (MeV)",180,0.0,180.0,1000,-20.0,10.0},sabreCoords.Theta()*s_rad2deg,recon7Be.excitation); + FillHistogram2D({"sabrePhi_5Liex_nabinPeak","sabrePhi_5Liex_nabinPeak;#phi (deg);E_x (MeV)",360,0.0,360.0,1000,-5.0,25.0},Phi360(sabreCoords.Phi())*s_rad2deg,recon5Li.excitation); + FillHistogram2D({"sabrePhi_7Beex_nabinPeak","sabrePhi_7Beex_nabinPeak;#phi (deg);E_x (MeV)",360,0.0,360.0,1000,-20.0,10.0},Phi360(sabreCoords.Phi())*s_rad2deg,recon7Be.excitation); + } //Gate on reconstr. excitation structures; overlaping cases are possible! if(recon5Li.excitation > -2.0 && recon5Li.excitation < 2.0) diff --git a/src/Reconstructor.h b/src/Reconstructor.h index 6942daf..3790872 100644 --- a/src/Reconstructor.h +++ b/src/Reconstructor.h @@ -90,8 +90,11 @@ namespace SabreRecon { //SABRE constants static constexpr double s_phiDet[5] = { 306.0, 18.0, 234.0, 162.0, 90.0 }; - static constexpr double s_tiltAngle = 40.0; - static constexpr double s_zOffset = -0.1245; + //static constexpr double s_tiltAngle = 40.0; + static constexpr double s_tiltAngle = 38.0; + static constexpr double s_zOffset = -0.1245; //Erin's SABRE code + //static constexpr double s_zOffset = -0.1142; //From Ken's diagram + //static constexpr double s_zOffset = -0.1367; //Ken's diagram plus extra shift for our geometry static constexpr double s_sabreDeadlayerThickness = 50.0 * 1.0e-7 * 2.3296 * 1.0e6; // 50 nm deadlayer -> ug/cm^2 //Kinematics constants