From d4663ba52146db604e0fd11c56b1348110bf9146 Mon Sep 17 00:00:00 2001 From: flavigny <flavigny@lpccaen.in2p3.fr> Date: Tue, 22 Jun 2021 09:33:06 +0200 Subject: [PATCH] * Included possible cut on TSumXY in BigRIPS PPAC --- .../Detectors/BigRIPS/TBigRIPSPPACPhysics.cxx | 33 ++++++++++++++---- NPLib/Detectors/BigRIPS/TBigRIPSPPACPhysics.h | 34 +++++++++++-------- 2 files changed, 47 insertions(+), 20 deletions(-) diff --git a/NPLib/Detectors/BigRIPS/TBigRIPSPPACPhysics.cxx b/NPLib/Detectors/BigRIPS/TBigRIPSPPACPhysics.cxx index 501c5526d..0bebd1f5a 100644 --- a/NPLib/Detectors/BigRIPS/TBigRIPSPPACPhysics.cxx +++ b/NPLib/Detectors/BigRIPS/TBigRIPSPPACPhysics.cxx @@ -167,13 +167,20 @@ void TBigRIPSPPACPhysics::PreTreat(){ multiHit.push_back(Nmulti); //Calculate TSum, TDiff and X/Y + double TSumX_tmp, TSumY_tmp; double TDiffX_tmp, TDiffY_tmp; double X_tmp, Y_tmp; - if(tmp.HasTXs() && tmp.HasTA()){TSumX.push_back(TX1[0]+TX2[0]-2*TA[0]);} - else {TSumX.push_back(-99999);} + if(tmp.HasTXs() && tmp.HasTA()){ + TSumX_tmp = TX1[0]+TX2[0]-2*TA[0]; + TSumX.push_back(TSumX_tmp); + }else { + TSumX_tmp = -99999; + TSumX.push_back(TSumX_tmp); + } - if(tmp.HasTXs()){ + if(tmp.HasTXs() && ( ignore_txsum_cut[id] || + (TSumX_tmp >= txsum_min[id] && TSumX_tmp <= txsum_max[id]) ) ){ TDiffX_tmp = (TX1[0] - TX2[0] - xns_off[id]); TDiffX.push_back(TDiffX_tmp); X_tmp = -1*((TDiffX_tmp * x_ns2mm[id])/2. - x_offset[id] - xpos_offset[id]); @@ -183,10 +190,16 @@ void TBigRIPSPPACPhysics::PreTreat(){ X.push_back(-99999); } - if(tmp.HasTYs() && tmp.HasTA()) {TSumY.push_back(TY1[0]+TY2[0]-2*TA[0]);} - else {TSumY.push_back(-99999);} + if(tmp.HasTYs() && tmp.HasTA()) { + TSumY_tmp = TY1[0]+TY2[0]-2*TA[0]; + TSumY.push_back(TSumY_tmp); + } else { + TSumY_tmp = -99999; + TSumY.push_back(TSumY_tmp); + } - if(tmp.HasTYs()) { + if(tmp.HasTYs() && (ignore_tysum_cut[id] || + (TSumY_tmp >= tysum_min[id] && TSumY_tmp <= tysum_max[id])) ){ TDiffY_tmp = (TY1[0] - TY2[0] - yns_off[id]); TDiffY.push_back(TDiffY_tmp); Y_tmp = ((TDiffY_tmp * y_ns2mm[id])/2. - y_offset[id] - ypos_offset[id]); @@ -302,6 +315,14 @@ void TBigRIPSPPACPhysics::AddPPACs(string name, NPL::XmlParser& xml){ y_offset[ID] = b[i]->AsDouble("yoffset"); xpos_offset[ID] = b[i]->AsDouble("xpos_off"); ypos_offset[ID] = b[i]->AsDouble("ypos_off"); + txsum_min[ID] = b[i]->AsDouble("txsum_min"); + txsum_max[ID] = b[i]->AsDouble("txsum_max"); + tysum_min[ID] = b[i]->AsDouble("tysum_min"); + tysum_max[ID] = b[i]->AsDouble("tysum_max"); + ignore_txsum_cut[ID] = false; + if(txsum_min[ID] >= txsum_max[ID]) ignore_txsum_cut[ID] = true; + ignore_tysum_cut[ID] = false; + if(tysum_min[ID] >= tysum_max[ID]) ignore_tysum_cut[ID] = true; } } } diff --git a/NPLib/Detectors/BigRIPS/TBigRIPSPPACPhysics.h b/NPLib/Detectors/BigRIPS/TBigRIPSPPACPhysics.h index e2b441201..23226e8a0 100644 --- a/NPLib/Detectors/BigRIPS/TBigRIPSPPACPhysics.h +++ b/NPLib/Detectors/BigRIPS/TBigRIPSPPACPhysics.h @@ -81,19 +81,25 @@ class TBigRIPSPPACPhysics : public TObject, public NPL::VDetector{ map<int,double> RawUpperLimit;//! Upper Value of TDC range considered for a PPAC map<int,double> RawLowerLimit;//! Lower Value of TDC range considered for a PPAC map<int,int> IDtoFP;//! Focal plane where the PPAC is located - map<int,double> ch2ns_TX1; - map<int,double> ch2ns_TX2; - map<int,double> ch2ns_TY1; - map<int,double> ch2ns_TY2; - map<int,double> ch2ns_TA; - map<int,double> xns_off; - map<int,double> yns_off; - map<int,double> x_offset; - map<int,double> xpos_offset; - map<int,double> x_ns2mm; - map<int,double> y_offset; - map<int,double> ypos_offset; - map<int,double> y_ns2mm; + map<int,double> ch2ns_TX1;//! + map<int,double> ch2ns_TX2;//! + map<int,double> ch2ns_TY1;//! + map<int,double> ch2ns_TY2;//! + map<int,double> ch2ns_TA;//! + map<int,double> xns_off;//! + map<int,double> yns_off;//! + map<int,double> x_offset;//! + map<int,double> xpos_offset;//! + map<int,double> x_ns2mm;//! + map<int,bool> ignore_txsum_cut;//! + map<int,double> txsum_min;//! + map<int,double> txsum_max;//! + map<int,double> y_offset;//! + map<int,double> ypos_offset;//! + map<int,double> y_ns2mm;//! + map<int,bool> ignore_tysum_cut;//! + map<int,double> tysum_min;//! + map<int,double> tysum_max;//! public: // Innherited from VDetector Class @@ -141,7 +147,7 @@ class TBigRIPSPPACPhysics : public TObject, public NPL::VDetector{ // Write Spectra to file void WriteSpectra(); - public: // Specific to SamuraiFDC2 Array + public: // Specific // Clear The PreTeated object void ClearPreTreatedData() {m_PreTreatedData->Clear();} -- GitLab