From ec7b67e7afab249afa60be3dac1d4b38d28e7842 Mon Sep 17 00:00:00 2001 From: Morfouace <pierre.morfouace@cea.fr> Date: Mon, 4 Apr 2022 09:47:18 +0200 Subject: [PATCH] Updating sofia analysis classes --- NPLib/Detectors/Sofia/TSofFissionFragment.cxx | 4 +- NPLib/Detectors/Sofia/TSofFissionFragment.h | 12 +- NPLib/Detectors/Sofia/TSofMwpcPhysics.cxx | 76 +-- NPLib/Detectors/Sofia/TSofTwimPhysics.cxx | 20 + NPLib/Detectors/Sofia/TSofTwimPhysics.h | 1 + Projects/s455/Analysis.cxx | 512 +++++++++++++----- Projects/s455/Analysis.h | 1 + Projects/s455/RunToTreat.txt | 7 +- .../calibration/SofSci/SofSci_physics.cal | 4 +- .../SofTrim/SofTrim_SectionAlign.cal | 4 +- .../spline/spline_section_angle_26062021.root | Bin 0 -> 22735 bytes .../spline/spline_section_dt_26062021.root | Bin 0 -> 11186 bytes 12 files changed, 449 insertions(+), 192 deletions(-) create mode 100644 Projects/s455/calibration/SofTrim/spline/spline_section_angle_26062021.root create mode 100644 Projects/s455/calibration/SofTrim/spline/spline_section_dt_26062021.root diff --git a/NPLib/Detectors/Sofia/TSofFissionFragment.cxx b/NPLib/Detectors/Sofia/TSofFissionFragment.cxx index 53be42bac..d8e019597 100644 --- a/NPLib/Detectors/Sofia/TSofFissionFragment.cxx +++ b/NPLib/Detectors/Sofia/TSofFissionFragment.cxx @@ -45,6 +45,7 @@ TSofFissionFragment::~TSofFissionFragment() { void TSofFissionFragment::Clear() { fFF_Z.clear(); fFF_iZ.clear(); + fFF_Plastic.clear(); fFF_AoQ.clear(); fFF_A.clear(); fFF_Beta.clear(); @@ -53,6 +54,7 @@ void TSofFissionFragment::Clear() { fFF_Brho.clear(); fFF_DT.clear(); fFF_ThetaIn.clear(); + fFF_ThetaOut.clear(); fFF_TofPosX.clear(); fFF_TofPosY.clear(); fFF_PosX1.clear(); @@ -63,7 +65,7 @@ void TSofFissionFragment::Clear() { fFF_PosY3.clear(); fFF_Zsum = -1; - fFF_IntZsum = -1; + fFF_iZsum = -1; } diff --git a/NPLib/Detectors/Sofia/TSofFissionFragment.h b/NPLib/Detectors/Sofia/TSofFissionFragment.h index c265a6cca..48bd0f080 100644 --- a/NPLib/Detectors/Sofia/TSofFissionFragment.h +++ b/NPLib/Detectors/Sofia/TSofFissionFragment.h @@ -36,6 +36,7 @@ class TSofFissionFragment : public TObject { private: vector<double> fFF_Z; vector<int> fFF_iZ; + vector<int> fFF_Plastic; vector<double> fFF_AoQ; vector<double> fFF_A; vector<double> fFF_Beta; @@ -44,6 +45,7 @@ class TSofFissionFragment : public TObject { vector<double> fFF_Brho; vector<double> fFF_DT; vector<double> fFF_ThetaIn; + vector<double> fFF_ThetaOut; vector<double> fFF_TofPosX; vector<double> fFF_TofPosY; vector<double> fFF_PosX1; @@ -53,7 +55,7 @@ class TSofFissionFragment : public TObject { vector<double> fFF_PosY2; vector<double> fFF_PosY3; double fFF_Zsum; - int fFF_IntZsum; + int fFF_iZsum; ////////////////////////////////////////////////////////////// // Constructor and destructor @@ -78,7 +80,8 @@ class TSofFissionFragment : public TObject { public: ////////////////////// SETTERS //////////////////////// inline void SetZsum(double val){fFF_Zsum = val;};//! - inline void SetIntZsum(int val){fFF_IntZsum = val;};//! + inline void SetiZsum(int val){fFF_iZsum = val;};//! + inline void SetPlastic(int val){fFF_Plastic.push_back(val);};//! inline void SetZ(double val){fFF_Z.push_back(val);};//! inline void SetiZ(int val){fFF_iZ.push_back(val);};//! inline void SetAoQ(double val){fFF_AoQ.push_back(val);};//! @@ -89,6 +92,7 @@ class TSofFissionFragment : public TObject { inline void SetBrho(double val){fFF_Brho.push_back(val);};//! inline void SetDT(double val){fFF_DT.push_back(val);};//! inline void SetThetaIn(double val){fFF_ThetaIn.push_back(val);};//! + inline void SetThetaOut(double val){fFF_ThetaOut.push_back(val);};//! inline void SetTofPosX(double val){fFF_TofPosX.push_back(val);};//! inline void SetTofPosY(double val){fFF_TofPosY.push_back(val);};//! inline void SetPosX1(double val){fFF_PosX1.push_back(val);};//! @@ -106,7 +110,8 @@ class TSofFissionFragment : public TObject { int GetMultMwpc2() {return fFF_PosY2.size();}//! int GetMultMwpc3() {return fFF_PosY3.size();}//! inline double GetZsum() const {return fFF_Zsum;}//! - inline int GetIntZsum() const {return fFF_IntZsum;}//! + inline int GetiZsum() const {return fFF_iZsum;}//! + inline int GetPlastic(int i) const {return fFF_Plastic[i];}//! inline double GetZ(int i) const {return fFF_Z[i];}//! inline int GetiZ(int i) const {return fFF_iZ[i];}//! inline double GetAoQ(int i) const {return fFF_AoQ[i];}//! @@ -117,6 +122,7 @@ class TSofFissionFragment : public TObject { inline double GetBrho(int i) const {return fFF_Brho[i];}//! inline double GetDT(int i) const {return fFF_DT[i];}//! inline double GetThetaIn(int i) const {return fFF_ThetaIn[i];}//! + inline double GetThetaOut(int i) const {return fFF_ThetaOut[i];}//! inline double GetTofPosX(int i) const {return fFF_TofPosX[i];}//! inline double GetTofPosY(int i) const {return fFF_TofPosY[i];}//! inline double GetPosX1(int i) const {return fFF_PosX1[i];}//! diff --git a/NPLib/Detectors/Sofia/TSofMwpcPhysics.cxx b/NPLib/Detectors/Sofia/TSofMwpcPhysics.cxx index a7351c1f4..2bf422432 100644 --- a/NPLib/Detectors/Sofia/TSofMwpcPhysics.cxx +++ b/NPLib/Detectors/Sofia/TSofMwpcPhysics.cxx @@ -209,40 +209,52 @@ void TSofMwpcPhysics::BuildPhysicalEvent() { } - if(fClusterX.size()==fClusterY.size()){ - int size = fClusterX.size(); - vector<double> Xpos; - vector<double> Ypos; - for(unsigned int i=0; i<size; i++){ - // *** strip X *** // - vector<pair<int,int>> hitX; - hitX = fClusterX[i]; - double x = -1000; - int qleft = hitX[0].second; - int qmax = hitX[1].second; - int qright = hitX[2].second; - int padmax = hitX[2].first; - if(padmax>0 && padmax+1<288 && qmax>0 && qleft>0 && qright>0){ - x = GetPositionX(det_num, qmax, padmax, qleft, qright); - Xpos.push_back(x); - } - - // *** strip Y *** // - vector<pair<int,int>> hitY; - hitY = fClusterY[i]; - double y = -1000; - int qdown = hitY[0].second; - qmax = hitY[1].second; - int qup = hitY[2].second; - padmax = hitY[2].first; - if(padmax>0 && padmax+1<120 && qmax>0 && qdown>0 && qup>0){ - y = GetPositionY(det_num, qmax, padmax, qdown, qup); - Ypos.push_back(y); - } + // *** strip X *** // + int sizeX = fClusterX.size(); + vector<double> Xpos; + for(unsigned int i=0; i<sizeX; i++){ + vector<pair<int,int>> hitX; + hitX = fClusterX[i]; + double x = -1000; + int qleft = hitX[0].second; + int qmax = hitX[1].second; + int qright = hitX[2].second; + int padmax = hitX[2].first; + if(padmax>0 && padmax+1<288 && qmax>0 && qleft>0 && qright>0){ + x = GetPositionX(det_num, qmax, padmax, qleft, qright); + Xpos.push_back(x); + } + } + + // *** strip Y *** // + int sizeY = fClusterY.size(); + vector<double> Ypos; + for(unsigned int i=0; i<sizeY; i++){ + vector<pair<int,int>> hitY; + hitY = fClusterY[i]; + double y = -1000; + int qdown = hitY[0].second; + int qmax = hitY[1].second; + int qup = hitY[2].second; + int padmax = hitY[2].first; + if(padmax>0 && padmax+1<120 && qmax>0 && qdown>0 && qup>0){ + y = GetPositionY(det_num, qmax, padmax, qdown, qup); + Ypos.push_back(y); + } + } + + for(unsigned int i=0; i<Xpos.size(); i++){ + if(Xpos.size()==Ypos.size()){ + DetectorNbr.push_back(det_num); + PositionX1.push_back(Xpos[i]); + PositionX2.push_back(-1000); + PositionY.push_back(Ypos[i]); + } + else{ DetectorNbr.push_back(det_num); - PositionX1.push_back(x); + PositionX1.push_back(Xpos[i]); PositionX2.push_back(-1000); - PositionY.push_back(y); + PositionY.push_back(-1000); } } } diff --git a/NPLib/Detectors/Sofia/TSofTwimPhysics.cxx b/NPLib/Detectors/Sofia/TSofTwimPhysics.cxx index 8904b0635..98aa802c8 100644 --- a/NPLib/Detectors/Sofia/TSofTwimPhysics.cxx +++ b/NPLib/Detectors/Sofia/TSofTwimPhysics.cxx @@ -93,10 +93,15 @@ void TSofTwimPhysics::BuildPhysicalEvent() { double Esec2=0; double Esec3=0; double Esec4=0; + double Theta1=-10; + double Theta2=-10; + double Theta3=-10; + double Theta4=-10; double DTsec1=-1e6; double DTsec2=-1e6; double DTsec3=-1e6; double DTsec4=-1e6; + double AnodeDriftTime[4][16]; unsigned int mysizeE = m_PreTreatedData->GetMultiplicity(); for (UShort_t e = 0; e < mysizeE ; e++) { @@ -112,6 +117,8 @@ void TSofTwimPhysics::BuildPhysicalEvent() { AnodeEnergy.push_back(Energy); AnodeDT.push_back(DT); + AnodeDriftTime[SectionNbr-1][AnodeNumber-1] = DT; + if(SectionNbr==1){ anode_energy_sec1.push_back(Energy); if(AnodeNumber==8) @@ -166,24 +173,36 @@ void TSofTwimPhysics::BuildPhysicalEvent() { EnergySection.push_back(Esec1); DriftTime.push_back(DTsec1); SectionNbr.push_back(1); + + Theta1 = asin((AnodeDriftTime[0][11]-AnodeDriftTime[0][3])/(7*31.)); + Theta.push_back(Theta1); } if(Esec2>0){ Esec2 = Cal->ApplyCalibration("SofTwim/SEC2_ALIGN",Esec2); EnergySection.push_back(Esec2); DriftTime.push_back(DTsec2); SectionNbr.push_back(2); + + Theta2 = asin((AnodeDriftTime[1][11]-AnodeDriftTime[1][3])/(7*31.)); + Theta.push_back(Theta2); } if(Esec3>0){ Esec3 = Cal->ApplyCalibration("SofTwim/SEC3_ALIGN",Esec3); EnergySection.push_back(Esec3); DriftTime.push_back(DTsec3); SectionNbr.push_back(3); + + Theta3 = asin((AnodeDriftTime[2][11]-AnodeDriftTime[2][3])/(7*31.)); + Theta.push_back(Theta3); } if(Esec4>0){ Esec4 = Cal->ApplyCalibration("SofTwim/SEC4_ALIGN",Esec4); EnergySection.push_back(Esec4); DriftTime.push_back(DTsec4); SectionNbr.push_back(4); + + Theta4 = asin((AnodeDriftTime[3][11]-AnodeDriftTime[3][3])/(7*31.)); + Theta.push_back(Theta4); } m_Beta = -1; @@ -310,6 +329,7 @@ void TSofTwimPhysics::Clear() { AnodeSecNbr.clear(); AnodeEnergy.clear(); AnodeDT.clear(); + Theta.clear(); mult1 = 0; mult2 = 0; diff --git a/NPLib/Detectors/Sofia/TSofTwimPhysics.h b/NPLib/Detectors/Sofia/TSofTwimPhysics.h index 865d2f761..ac10c26c9 100644 --- a/NPLib/Detectors/Sofia/TSofTwimPhysics.h +++ b/NPLib/Detectors/Sofia/TSofTwimPhysics.h @@ -63,6 +63,7 @@ class TSofTwimPhysics : public TObject, public NPL::VDetector { vector<int> SectionNbr; vector<double> EnergySection; vector<double> DriftTime; + vector<double> Theta; vector<int> AnodeNbr; vector<int> AnodeSecNbr; vector<double> AnodeEnergy; diff --git a/Projects/s455/Analysis.cxx b/Projects/s455/Analysis.cxx index 07fd371ec..42e6afa0c 100644 --- a/Projects/s455/Analysis.cxx +++ b/Projects/s455/Analysis.cxx @@ -27,6 +27,33 @@ using namespace std; #include"NPDetectorManager.h" #include"NPPhysicalConstants.h" #include"NPGlobalSystemOfUnits.h" + + +//////////////////////////////////////////////////////////////////////////////// +struct TofPair +{ + double x = -1000; + double y = -1000; + double tof = -1000; + double velocity = -1; + double beta = -1; + double theta_in = -10; + double theta_out = -10; + int plastic = -1; + // + int isLorR = -1; + // *** isLorR = 1 -> Left + // *** isLorR = 2 -> Right + // + int isUorD = -1; + // *** isUorD = 1 -> Up + // *** isUorD = 2 -> Down + int section = -1; + double Esec = -1; + double DT = -100; +}; + + //////////////////////////////////////////////////////////////////////////////// Analysis::Analysis(){ } @@ -66,6 +93,42 @@ void Analysis::TreatEvent(){ SofTofW->BuildPhysicalEvent(); FissionFragmentAnalysis(); + //BeamFragmentAnalysis(); + } +} + +//////////////////////////////////////////////////////////////////////////////// +void Analysis::BeamFragmentAnalysis(){ + unsigned int softofw_size = SofTofW->PlasticNbr.size(); + + double L_CC = 8.45; + TofPair TofHit; + if(softofw_size==1){ + TofHit.plastic = SofTofW->PlasticNbr[0]; + TofHit.x = SofTofW->CalPosX[0]; + TofHit.y = SofTofW->CalPosY[0]; + TofHit.tof = SofTofW->CalTof[0]; + TofHit.velocity = L_CC/TofHit.tof; + TofHit.beta = TofHit.velocity * m/ns / NPUNITS::c_light; + + double Brho = 9.62543 + 0.0076642*TofHit.x; + double Lfactor = 9.17/L_CC; + double Beta = TofHit.beta*Lfactor; + double Gamma1 = 1. / sqrt(1 - Beta * Beta); + + double AoQ = Brho / (3.10761 * Beta * Gamma1); + + SofFF->SetTOF(TofHit.tof); + SofFF->SetTofPosX(TofHit.x); + SofFF->SetTofPosY(TofHit.y); + SofFF->SetPlastic(TofHit.plastic); + + SofFF->SetBeta(Beta); + SofFF->SetGamma(Gamma1); + SofFF->SetAoQ(AoQ); + SofFF->SetBrho(Brho); + + } } @@ -74,14 +137,6 @@ void Analysis::FissionFragmentAnalysis(){ unsigned int softofw_size = SofTofW->PlasticNbr.size(); unsigned int softwim_size = SofTwim->SectionNbr.size(); - double TOF_CC[2]; - double Plastic[2]; - double Plastic_left = -1; - double Plastic_right = -1; - double TOF_left = -1; - double TOF_right = -1; - double TOF_up = -1; - double TOF_down = -1; double E1 = -1; double E2 = -1; double E3 = -1; @@ -90,15 +145,11 @@ void Analysis::FissionFragmentAnalysis(){ double DT2 = -1000; double DT3 = -1000; double DT4 = -1000; + double Theta1 = -1000; + double Theta2 = -1000; + double Theta3 = -1000; + double Theta4 = -1000; double L_CC = 8.45; - double Beta_left = -1; - double Beta_right = -1; - double Beta_up = -1; - double Beta_down = -1; - double Beta1 = -1; - double Beta2 = -1; - double Beta3 = -1; - double Beta4 = -1; double Beta_norm = 0.745; double Gamma1 = -1; double Gamma2 = -1; @@ -116,25 +167,34 @@ void Analysis::FissionFragmentAnalysis(){ int iZ1 = -1; int iZ2 = -1; int iZsum = -1; - double ThetaIn1 = -1000; - double ThetaIn2 = -1000; - - for(int i = 0; i<2; i++){ - TOF_CC[i] = -1; - Plastic[i] = -1; - } - vector<double> PosY; - vector<double> PosX; + TofPair TofHit[2]; if(softofw_size==2){ for(unsigned int i=0; i<softofw_size; i++){ - TOF_CC[i] = SofTofW->CalTof[i]; - Plastic[i] = SofTofW->PlasticNbr[i]; - PosX.push_back(SofTofW->CalPosX[i]); - PosY.push_back(SofTofW->CalPosY[i]); + TofHit[i].plastic = SofTofW->PlasticNbr[i]; + TofHit[i].x = SofTofW->CalPosX[i]; + TofHit[i].y = SofTofW->CalPosY[i]; + TofHit[i].tof = SofTofW->CalTof[i]; + TofHit[i].velocity = L_CC/TofHit[i].tof; + TofHit[i].beta = TofHit[i].velocity * m/ns / NPUNITS::c_light; + } - SofFF->SetTofPosX(SofTofW->CalPosX[i]); - SofFF->SetTofPosY(SofTofW->CalPosY[i]); + if(TofHit[0].x>TofHit[1].x){ + TofHit[0].isLorR = 1; + TofHit[1].isLorR = 2; + } + else if(TofHit[0].x<TofHit[1].x){ + TofHit[0].isLorR = 2; + TofHit[1].isLorR = 1; + } + + if(TofHit[0].y>TofHit[1].y){ + TofHit[0].isUorD = 1; + TofHit[1].isUorD = 2; + } + else if(TofHit[0].y<TofHit[1].y){ + TofHit[0].isUorD = 2; + TofHit[1].isUorD = 1; } } @@ -154,38 +214,31 @@ void Analysis::FissionFragmentAnalysis(){ SofFF->SetPosY2(SofMwpc->PositionY[i]); } if(SofMwpc->DetectorNbr[i]==4){ - X3.push_back(SofMwpc->PositionX1[i]); - Y3.push_back(SofMwpc->PositionY[i]); - - SofFF->SetPosX3(SofMwpc->PositionX1[i]); - SofFF->SetPosY3(SofMwpc->PositionY[i]); + if(SofMwpc->PositionX1[i]!=-1000) + X3.push_back(SofMwpc->PositionX1[i]); + + if(SofMwpc->PositionY[i]!=-1000) + Y3.push_back(SofMwpc->PositionY[i]); + + //SofFF->SetPosX3(SofMwpc->PositionX1[i]); + //SofFF->SetPosY3(SofMwpc->PositionY[i]); } } + vector<double> good_posx; vector<double> good_posy; - for(unsigned int i=0; i<PosX.size(); i++){ - double tofx = PosX[i]; - double tofy = PosY[i]; + for(unsigned int i=0; i<2; i++){ + double tofx = TofHit[i].x; + //double tofy = TofHit[i].y; for(unsigned int k=0; k<X3.size(); k++){ double posx = X3[k]; if(abs(posx-tofx) < 100){ good_posx.push_back(posx); - good_posy.push_back(tofy); } } } - - /*if(good_posx.size()==2 && good_posy.size()==2){ - SofFF->SetTofPosX(good_posx[0]); - SofFF->SetTofPosX(good_posx[1]); - - SofFF->SetTofPosY(good_posy[0]); - SofFF->SetTofPosY(good_posy[1]); - }*/ - - int mult1 = SofTwim->mult1; int mult2 = SofTwim->mult2; int mult3 = SofTwim->mult3; @@ -202,18 +255,22 @@ void Analysis::FissionFragmentAnalysis(){ if(sec==1){ E1 = SofTwim->EnergySection[i]; DT1 = SofTwim->DriftTime[i]; + Theta1 = SofTwim->Theta[i]; } if(sec==2){ E2 = SofTwim->EnergySection[i]; DT2 = SofTwim->DriftTime[i]; + Theta2 = SofTwim->Theta[i]; } if(sec==3){ E3 = SofTwim->EnergySection[i]; DT3 = SofTwim->DriftTime[i]; + Theta3 = SofTwim->Theta[i]; } if(sec==4){ E4 = SofTwim->EnergySection[i]; DT4 = SofTwim->DriftTime[i]; + Theta4 = SofTwim->Theta[i]; } } @@ -237,122 +294,239 @@ void Analysis::FissionFragmentAnalysis(){ if(E4>0) E4 = E4/16; - if(Plastic[0]<Plastic[1]){ - Plastic_left = Plastic[0]; - Plastic_right = Plastic[1]; - TOF_left = TOF_CC[0]; - TOF_right = TOF_CC[1]; - } - if(Plastic[0]>Plastic[1]){ - Plastic_left = Plastic[1]; - Plastic_right = Plastic[0]; - TOF_left = TOF_CC[1]; - TOF_right = TOF_CC[0]; - } - if(PosY.size()==2){ - if(PosY[0]>PosY[1]){ - TOF_up = TOF_CC[0]; - TOF_down = TOF_CC[1]; + // *** case 1 *** // + if(E1!=-1 && E2!=-1){ + if(TofHit[0].isUorD==1 && TofHit[1].isUorD==2){ + TofHit[0].Esec = E2; + TofHit[1].Esec = E1; + + TofHit[0].theta_in = Theta2; + TofHit[1].theta_in = Theta1; + + TofHit[0].DT = DT2; + TofHit[1].DT = DT1; + + TofHit[0].section = 2; + TofHit[1].section = 1; } - if(PosY[0]<PosY[1]){ - TOF_up = TOF_CC[1]; - TOF_down = TOF_CC[0]; + if(TofHit[0].isUorD==2 && TofHit[1].isUorD==1){ + TofHit[0].Esec = E1; + TofHit[1].Esec = E2; + + TofHit[0].theta_in = Theta1; + TofHit[1].theta_in = Theta2; + + TofHit[0].DT = DT1; + TofHit[1].DT = DT2; + + TofHit[0].section = 1; + TofHit[1].section = 2; } } - double velocity_left = L_CC/TOF_left; - double velocity_right = L_CC/TOF_right; - Beta_left = velocity_left * m/ns / NPUNITS::c_light; - Beta_right = velocity_right * m/ns / NPUNITS::c_light; - - double velocity_down = L_CC/TOF_down; - double velocity_up = L_CC/TOF_up; - Beta_down = velocity_down * m/ns / NPUNITS::c_light; - Beta_up = velocity_up * m/ns / NPUNITS::c_light; - - if(E1!=-1 && E2!=-1){ - Beta1 = Beta_down; - Beta2 = Beta_up; - } + // *** case 2 *** // if(E1!=-1 && E3!=-1){ - Beta1 = Beta_down; - Beta3 = Beta_up; + if(TofHit[0].isUorD==1 && TofHit[1].isUorD==2){ + TofHit[0].Esec = E3; + TofHit[1].Esec = E1; + + TofHit[0].theta_in = Theta3; + TofHit[1].theta_in = Theta1; + + TofHit[0].DT = DT3; + TofHit[1].DT = DT1; + + TofHit[0].section = 3; + TofHit[1].section = 1; + } + if(TofHit[0].isUorD==2 && TofHit[1].isUorD==1){ + TofHit[0].Esec = E1; + TofHit[1].Esec = E3; + + TofHit[0].DT = DT1; + TofHit[1].DT = DT3; + + TofHit[0].theta_in = Theta1; + TofHit[1].theta_in = Theta3; + + TofHit[0].section = 1; + TofHit[1].section = 3; + } } + + // *** case 3 *** // if(E1!=-1 && E4!=-1){ - Beta1 = Beta_left; - Beta4 = Beta_right; + if(TofHit[0].isLorR==1 && TofHit[1].isLorR==2){ + TofHit[0].Esec = E1; + TofHit[1].Esec = E4; + + TofHit[0].theta_in = Theta1; + TofHit[1].theta_in = Theta4; + + TofHit[0].DT = DT1; + TofHit[1].DT = DT4; + + TofHit[0].section = 1; + TofHit[1].section = 4; + } + if(TofHit[0].isLorR==2 && TofHit[1].isLorR==1){ + TofHit[0].Esec = E4; + TofHit[1].Esec = E1; + + TofHit[0].theta_in = Theta4; + TofHit[1].theta_in = Theta1; + + TofHit[0].DT = DT4; + TofHit[1].DT = DT1; + + TofHit[0].section = 4; + TofHit[1].section = 1; + } } + + // *** case 4 *** // if(E2!=-1 && E3!=-1){ - Beta2 = Beta_left; - Beta3 = Beta_right; + if(TofHit[0].isLorR==1 && TofHit[1].isLorR==2){ + TofHit[0].Esec = E2; + TofHit[1].Esec = E3; + + TofHit[0].theta_in = Theta2; + TofHit[1].theta_in = Theta3; + + TofHit[0].DT = DT2; + TofHit[1].DT = DT3; + + TofHit[0].section = 2; + TofHit[1].section = 3; + } + if(TofHit[0].isLorR==2 && TofHit[1].isLorR==1){ + TofHit[0].Esec = E3; + TofHit[1].Esec = E2; + + TofHit[0].theta_in = Theta3; + TofHit[1].theta_in = Theta2; + + TofHit[0].DT = DT3; + TofHit[1].DT = DT2; + + TofHit[0].section = 3; + TofHit[1].section = 2; + } } + + // *** case 5 *** // if(E2!=-1 && E4!=-1){ - Beta2 = Beta_up; - Beta4 = Beta_down; + if(TofHit[0].isUorD==1 && TofHit[1].isUorD==2){ + TofHit[0].Esec = E2; + TofHit[1].Esec = E4; + + TofHit[0].theta_in = Theta2; + TofHit[1].theta_in = Theta4; + + TofHit[0].DT = DT2; + TofHit[1].DT = DT4; + + TofHit[0].section = 2; + TofHit[1].section = 4; + } + if(TofHit[0].isUorD==2 && TofHit[1].isUorD==1){ + TofHit[0].Esec = E4; + TofHit[1].Esec = E2; + + TofHit[0].theta_in = Theta4; + TofHit[1].theta_in = Theta2; + + TofHit[0].DT = DT4; + TofHit[1].DT = DT2; + + TofHit[0].section = 4; + TofHit[1].section = 2; + } } + + // *** case 6 *** // if(E3!=-1 && E4!=-1){ - Beta3 = Beta_up; - Beta4 = Beta_down; + if(TofHit[0].isUorD==1 && TofHit[1].isUorD==2){ + TofHit[0].Esec = E3; + TofHit[1].Esec = E4; + + TofHit[0].theta_in = Theta3; + TofHit[1].theta_in = Theta4; + + TofHit[0].DT = DT3; + TofHit[1].DT = DT4; + + TofHit[0].section = 3; + TofHit[1].section = 4; + } + if(TofHit[0].isUorD==2 && TofHit[1].isUorD==1){ + TofHit[0].Esec = E4; + TofHit[1].Esec = E3; + + TofHit[0].theta_in = Theta4; + TofHit[1].theta_in = Theta3; + + TofHit[0].DT = DT4; + TofHit[1].DT = DT3; + + TofHit[0].section = 4; + TofHit[1].section = 3; + } } - if(Beta1!=-1 && E1>0){ - E1 = E1 / fcorr_z_beta[0]->Eval(Beta1) * fcorr_z_beta[0]->Eval(Beta_norm); - E1 = E1 / fcorr_z_dt[0]->Eval(DT1) * fcorr_z_dt[0]->Eval(55); - } - if(Beta2!=-1 && E2>0){ - E2 = E2 / fcorr_z_beta[1]->Eval(Beta2) * fcorr_z_beta[1]->Eval(Beta_norm); - E2 = E2 / fcorr_z_dt[1]->Eval(DT2) * fcorr_z_dt[1]->Eval(55); - } - if(Beta3!=-1 && E3>0){ - E3 = E3 / fcorr_z_beta[2]->Eval(Beta3) * fcorr_z_beta[2]->Eval(Beta_norm); - E3 = E3 / fcorr_z_dt[2]->Eval(DT3) * fcorr_z_dt[2]->Eval(-55); - } - if(Beta4!=-1 && E4>0){ - E4 = E4 / fcorr_z_beta[3]->Eval(Beta4) * fcorr_z_beta[3]->Eval(Beta_norm); - E4 = E4 / fcorr_z_dt[3]->Eval(DT4) * fcorr_z_dt[3]->Eval(-55); - } + // *** spline correction *** // + for(int i=0; i<2; i++){ + int section = TofHit[i].section; + double drift_time; + if(section==1) drift_time = DT1; + if(section==2) drift_time = DT2; + if(section==3) drift_time = DT3; + if(section==4) drift_time = DT4; - // Z calibration // - if(E1>0 && E2>0 && E3==-1 && E4==-1){ - Z1 = E1; - Z2 = E2; - Beta_Z1 = Beta1; - Beta_Z2 = Beta2; - } - if(E1>0 && E2==-1 && E3>0 && E4==-1){ - Z1 = E1; - Z2 = E3; - Beta_Z1 = Beta1; - Beta_Z2 = Beta3; - } - if(E1>0 && E2==-1 && E3==-1 && E4>0){ - Z1 = E1; - Z2 = E4; - Beta_Z1 = Beta1; - Beta_Z2 = Beta4; - } - if(E1==-1 && E2>0 && E3>0 && E4==-1){ - Z1 = E2; - Z2 = E3; - Beta_Z1 = Beta2; - Beta_Z2 = Beta3; - } - if(E1==-1 && E2>0 && E3==-1 && E4>0){ - Z1 = E2; - Z2 = E4; - Beta_Z1 = Beta2; - Beta_Z2 = Beta4; + double DT_eval; + if(section<3) DT_eval=55; + if(section>2) DT_eval=-55; + if(section>0){ + TofHit[i].Esec = TofHit[i].Esec / fcorr_z_beta[section-1]->Eval(TofHit[i].beta) * fcorr_z_beta[section-1]->Eval(Beta_norm); + + TofHit[i].Esec = TofHit[i].Esec / fcorr_z_dt[section-1]->Eval(drift_time) * fcorr_z_dt[section-1]->Eval(DT_eval); + } } - if(E1==-1 && E2==-1 && E3>0 && E4>0){ - Z1 = E3; - Z2 = E4; - Beta_Z1 = Beta3; - Beta_Z2 = Beta4; + + + // *** Calculation Theta_out *** // + double XA; + double ZA = 2328.; + double XC; + double ZC = 4434.; + double XMW3 = -1436; + double ZMW3 = 8380; + double X3lab; + double Z3lab; + double Theta0 = 20.*deg; + TVector3 vOut; + TVector3 vZ = TVector3(0,0,1); + for(int i=0; i<2; i++){ + XA = TofHit[i].DT; + XC = XA+(ZC-ZA)*tan(TofHit[i].theta_in); + + X3lab = TofHit[i].x*cos(Theta0) + XMW3; + Z3lab = ZMW3 + TofHit[i].x*cos(Theta0); + + vOut = TVector3(X3lab-XC,0,Z3lab-ZC); + + double angle = vZ.Angle(vOut); + + TofHit[i].theta_out = angle; } + Z1 = TofHit[0].Esec; + Z2 = TofHit[1].Esec; + + if(Z1>0 && Z2>0){ Z1 = fZff_p0 + fZff_p1*Z1 + fZff_p2*Z1*Z1; Z2 = fZff_p0 + fZff_p1*Z2 + fZff_p2*Z2*Z2; @@ -367,6 +541,20 @@ void Analysis::FissionFragmentAnalysis(){ iZsum = iZ1 + iZ2; } + //double Bfactor = 2185./2413.; + //Brho1 = Bfactor*(9.62543 + 0.0076642*TofHit[0].x); + //Brho2 = Bfactor*(9.62543 + 0.0076642*TofHit[1].x); + + double MagB = 2185*2.2/3584; + double Leff = 2.067; + double Tilt = 14*deg; + double rho1 = Leff/abs(2*sin(0.5*(TofHit[0].theta_out-TofHit[0].theta_in))*cos(Tilt-0.5*(TofHit[0].theta_out-TofHit[0].theta_in))); + double rho2 = Leff/abs(2*sin(0.5*(TofHit[1].theta_out-TofHit[1].theta_in))*cos(Tilt-0.5*(TofHit[1].theta_out-TofHit[1].theta_in))); + double Brho1 = MagB*rho1; + double Brho2 = MagB*rho2; + double Lfactor = 1.;//9.5/L_CC; + Beta_Z1 = TofHit[0].beta*Lfactor; + Beta_Z2 = TofHit[1].beta*Lfactor; Gamma1 = 1. / sqrt(1 - Beta_Z1 * Beta_Z1); Gamma2 = 1. / sqrt(1 - Beta_Z2 * Beta_Z2); @@ -377,8 +565,24 @@ void Analysis::FissionFragmentAnalysis(){ A2 = AoQ2 * iZ2; // *** Filling the Fission Fragment Tree *** // - SofFF->SetTOF(TOF_left); - SofFF->SetTOF(TOF_right); + SofFF->SetTOF(TofHit[0].tof); + SofFF->SetTOF(TofHit[1].tof); + SofFF->SetTofPosX(TofHit[0].x); + SofFF->SetTofPosX(TofHit[1].x); + SofFF->SetTofPosY(TofHit[0].y); + SofFF->SetTofPosY(TofHit[1].y); + SofFF->SetPlastic(TofHit[0].plastic); + SofFF->SetPlastic(TofHit[1].plastic); + + for(int i=0; i<good_posx.size(); i++){ + SofFF->SetPosX3(good_posx[i]); + } + SofFF->SetThetaIn(TofHit[0].theta_in); + SofFF->SetThetaIn(TofHit[1].theta_in); + SofFF->SetThetaOut(TofHit[0].theta_out); + SofFF->SetThetaOut(TofHit[1].theta_out); + + SofFF->SetBeta(Beta_Z1); SofFF->SetBeta(Beta_Z2); SofFF->SetGamma(Gamma1); @@ -388,7 +592,7 @@ void Analysis::FissionFragmentAnalysis(){ SofFF->SetZ(Z1); SofFF->SetZ(Z2); SofFF->SetAoQ(AoQ1); - SofFF->SetAoQ(AoQ1); + SofFF->SetAoQ(AoQ2); SofFF->SetA(A1); SofFF->SetA(A2); SofFF->SetBrho(Brho1); @@ -400,7 +604,7 @@ void Analysis::FissionFragmentAnalysis(){ SofFF->SetDT(DT4); SofFF->SetZsum(Zsum); - SofFF->SetIntZsum(iZsum); + SofFF->SetiZsum(iZsum); } } } @@ -452,6 +656,7 @@ void Analysis::BeamAnalysis(){ double Y_p1 = 12.362; Zbeam = Zbeam/(Y_p0 + Y_p1*YCC)*Y_p0; + // Z calibration // Zbeam = fZbeam_p0 + fZbeam_p1*Zbeam + fZbeam_p2*Zbeam*Zbeam; Zbeam = sqrt(Zbeam); @@ -524,11 +729,15 @@ void Analysis::InitParameter(){ fDCC = -10000; fK_LS2 = -30e-8; - fRunID = 12; + fBrho0 = 12.3255; + fRunID = 6; // Beam parameter // fZBeta_p0 = 1; fZBeta_p1 = 0; + fZbeam_p0 = 1651.57; + fZbeam_p1 = 0.0876127; + fZbeam_p2 = 4.02563e-6; // FF parameter // fZff_p0 = 2.80063; @@ -646,8 +855,11 @@ void Analysis::InitParameter(){ fZbeam_p0 = 186.892; fZbeam_p1 = 0.20739; fZbeam_p2 = 1.61797e-6; - } + if(fRunID==15){ + fBrho0 = 12.3352; + } + } //////////////////////////////////////////////////////////////////////////////// diff --git a/Projects/s455/Analysis.h b/Projects/s455/Analysis.h index db6b3ce1a..dbd4a351c 100644 --- a/Projects/s455/Analysis.h +++ b/Projects/s455/Analysis.h @@ -50,6 +50,7 @@ class Analysis: public NPL::VAnalysis{ void ReInitValue(); void BeamAnalysis(); void FissionFragmentAnalysis(); + void BeamFragmentAnalysis(); static NPL::VAnalysis* Construct(); diff --git a/Projects/s455/RunToTreat.txt b/Projects/s455/RunToTreat.txt index 9c7e8b6b6..c0a52b7fe 100644 --- a/Projects/s455/RunToTreat.txt +++ b/Projects/s455/RunToTreat.txt @@ -2,6 +2,9 @@ TTreeName RawTree RootFileName + %/media/sofia/s455/raw/run_raw_0367.root + %/media/sofia/s455/raw/run_raw_0368.root + %/media/sofia/s455/raw/run_raw_0369.root %/media/sofia/s455/raw/run_raw_0419.root %/media/sofia/s455/raw/run_raw_0422.root @@ -46,10 +49,10 @@ RootFileName %/media/sofia/s455/raw/run_raw_0399.root %% 189Pb - %/media/pierre/proton/raw/run_raw_0400.root + /media/sofia/s455/raw/run_raw_0400.root %% 182Hg - /media/pierre/proton/raw/run_raw_0401.root + %/media/sofia/s455/raw/run_raw_0401.root %% 187Pb %/media/sofia/s455/raw/run_raw_0402.root diff --git a/Projects/s455/calibration/SofSci/SofSci_physics.cal b/Projects/s455/calibration/SofSci/SofSci_physics.cal index 8778ee911..b5d573448 100644 --- a/Projects/s455/calibration/SofSci/SofSci_physics.cal +++ b/Projects/s455/calibration/SofSci/SofSci_physics.cal @@ -1,4 +1,4 @@ -SofSci_TOF2INV_V -8.0515 0.00737389 +SofSci_TOF2INV_V -8.04267 0.00737389 SofSci_LENGTH_S2 135.614 -SofSci_DET1_POSPAR 45.0 80.0 +SofSci_DET1_POSPAR 90 54.6 SofSci_DET2_POSPAR 943.287 86.652 diff --git a/Projects/s455/calibration/SofTrim/SofTrim_SectionAlign.cal b/Projects/s455/calibration/SofTrim/SofTrim_SectionAlign.cal index 37d3efaaa..8a3e3df45 100644 --- a/Projects/s455/calibration/SofTrim/SofTrim_SectionAlign.cal +++ b/Projects/s455/calibration/SofTrim/SofTrim_SectionAlign.cal @@ -1,3 +1,3 @@ -SofTrim_SEC1_ALIGN -457.863 1.03809 +SofTrim_SEC1_ALIGN 310.216 1.00792 SofTrim_SEC2_ALIGN 0 1 -SofTrim_SEC3_ALIGN -2599.29 1.18757 +SofTrim_SEC3_ALIGN -1382.53 1.13744 diff --git a/Projects/s455/calibration/SofTrim/spline/spline_section_angle_26062021.root b/Projects/s455/calibration/SofTrim/spline/spline_section_angle_26062021.root new file mode 100644 index 0000000000000000000000000000000000000000..d246cb81becf321f2c03df5e9da6fdb51e9eefe2 GIT binary patch literal 22735 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 B5yt=k literal 0 HcmV?d00001 diff --git a/Projects/s455/calibration/SofTrim/spline/spline_section_dt_26062021.root b/Projects/s455/calibration/SofTrim/spline/spline_section_dt_26062021.root new file mode 100644 index 0000000000000000000000000000000000000000..18385be0794ccf796409baf33ecd092ca8e3a903 GIT binary patch literal 11186 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 literal 0 HcmV?d00001 -- GitLab