diff --git a/Projects/AlPhaPha/2024/Analysis.cxx b/Projects/AlPhaPha/2024/Analysis.cxx index 32f574f809f05bdd6fd0fad5084d7ddab9cfa63d..8e25260c22852da47032736e0de72b7adadde15c 100644 --- a/Projects/AlPhaPha/2024/Analysis.cxx +++ b/Projects/AlPhaPha/2024/Analysis.cxx @@ -482,6 +482,7 @@ void Analysis::VamosAnalysis(){ FF_Y1 = FPMW->PositionY[0]; FF_Y3 = FPMW->PositionY[2]; + //FF_IC_Y = FPMW->Yf + (1442.6+6774.4-7600)*tan(FPMW->Phif/1000); FF_IC_Y = FPMW->Yf + (1442.6+6774.4-7600)*tan(FPMW->Phif/1000); FF_IC_X = FPMW->Xf + (1442.6+6774.4-7600)*tan(FPMW->Thetaf/1000); diff --git a/Projects/AlPhaPha/2024/macro/chio/XYCalibration/VerifCorrelation.C b/Projects/AlPhaPha/2024/macro/chio/XYCalibration/VerifCorrelation.C new file mode 100644 index 0000000000000000000000000000000000000000..c386bbdcb379fd8c03b08ebfcb3c739389d12f48 --- /dev/null +++ b/Projects/AlPhaPha/2024/macro/chio/XYCalibration/VerifCorrelation.C @@ -0,0 +1,101 @@ +#include "TICPhysics.h" +#include "TTimeData.h" +#include <TChain.h> +#include <TH2.h> +#include <TH3.h> + +vector<double> TxtToVector(const char *Path); + +void VerifCorrelation(){ + + //=========================================================================================================== + // Loading var + //=========================================================================================================== + TChain* chain = new TChain("PhysicsTree"); + chain->Add("../../../root/analysis/VamosCalib247.root"); + + TTimeData *Time = new TTimeData(); + TICPhysics* IC = new TICPhysics() ; + double FF_IC_X, FF_IC_Y, FF_V13, FF_DriftTime; + + + vector<double> Toff13 , Toff14, Toff23, Toff24; + const char* Path13 = "../../../mwpc/Toff/output/Toff13.txt"; + const char* Path14 = "../../../mwpc/Toff/output/Toff14.txt"; + const char* Path23 = "../../../mwpc/Toff/output/Toff23.txt"; + const char* Path24 = "../../../mwpc/Toff/output/Toff24.txt"; + + Toff13 = TxtToVector(Path13); + Toff14 = TxtToVector(Path14); + Toff23 = TxtToVector(Path23); + Toff24 = TxtToVector(Path24); + + + chain->SetBranchStatus("FF_IC_X", true); + chain->SetBranchAddress("FF_IC_X", &FF_IC_X); + chain->SetBranchStatus("FF_IC_Y", true); + chain->SetBranchAddress("FF_IC_Y", &FF_IC_Y); + + chain->SetBranchStatus("IC", true); + chain->SetBranchAddress("IC", &IC); + + chain->SetBranchStatus("Time", true); + chain->SetBranchAddress("Time", &Time); + + + TH2F *ICXY = new TH2F("ICXY","ICXY",1000,-1000,1000,1000,-1000,1000); + + int Nentries = chain->GetEntries(); + //int Nentries = 1000000; + auto start = std::chrono::high_resolution_clock::now(); + + for (int e = 0; e < Nentries; e++) { + if (e % 100000 == 0 && e > 0 ) { + auto now = std::chrono::high_resolution_clock::now(); + std::chrono::duration<double> elapsed = now - start; + double avgTimePerIteration = elapsed.count() / e; + double timeLeft = avgTimePerIteration * (Nentries - e); + + std::cout << "********** Estimated time left: " << int(timeLeft) << " seconds **********" << "\r" << flush; + } + + chain->GetEntry(e); + + + if(Time->GetMWPC13Mult()==1 && IC->fIC_raw[8] >0){ + UShort_t FPMW_Section = Time->GetSection_MWPC3(0); + FF_DriftTime = 10* (IC->fIC_TS.at(0) - Time->GetTS_MWPC13(0)) - ((Time->GetTime_MWPC13(0)+Toff13.at(FPMW_Section))) ; + + + double ICRatio = IC->fIC_raw[0]/IC->fIC_raw[1]; + + if(IC->fIC_raw[8] >0 ) { + ICXY->Fill(FF_IC_X,FF_IC_Y,ICRatio); + } + } + } + TCanvas *c = new TCanvas("c","c"); + ICXY->SetMinimum(0); + ICXY->Draw("surf"); +} + +vector<double> TxtToVector(const char *Path){ + string line; + vector<double> values; + ifstream file(Path); + + if (file.is_open()) { + while (std::getline(file, line)) { + try { + values.push_back(std::stod(line)); + } catch (const std::invalid_argument& e) { + std::cerr << "Invalid number in line: " << line << '\n'; + } + } + file.close(); + } else { + std::cerr << "Error opening file.\n"; + } + + return values; +} diff --git a/Projects/AlPhaPha/2024/macro/chio/YCalibration/DECorr.C b/Projects/AlPhaPha/2024/macro/chio/YCalibration/DECorr.C index 5e6eb7d3eea92eeefe6356653819a83dc8bea771..2b4463b219c2d96a623bbb7a2d64441778a3dfed 100644 --- a/Projects/AlPhaPha/2024/macro/chio/YCalibration/DECorr.C +++ b/Projects/AlPhaPha/2024/macro/chio/YCalibration/DECorr.C @@ -201,8 +201,8 @@ void DECorr(bool cut = false, bool spline = false) { double IC1corr = (IC->fIC_raw[1]*(1-0.000686068*FF_IC_Y))*(1-4.88238e-05*FF_IC_Y+7.40395e-06*FF_IC_Y*FF_IC_Y); double DE_Bis = 0.5*(IC1corr+IC->fIC_raw[2]+IC->fIC_raw[3])+IC->fIC_raw[4]; - DE = 0.5*(ICcorr_Y.at(0)+ IC->fIC_raw[1] +IC->fIC_raw[2]+IC->fIC_raw[3])+IC->fIC_raw[4]; - DE_splined = 0.5*(ICcorr_Y[0]+ ICcorr_Y[1] +ICcorr_Y[2]+ICcorr_Y[3])+ICcorr_Y[4]; + DE = 0.5*(IC->fIC_raw[0]+ IC->fIC_raw[1] +IC->fIC_raw[2]+IC->fIC_raw[3])+IC->fIC_raw[4]; + DE_splined = 0.5*(ICcorr_Y[1] +IC->fIC_raw[2]+IC->fIC_raw[3])+IC->fIC_raw[4]; //DE_splined = 0.5*( ICcorr_Y[1] +IC->fIC_raw[2]+IC->fIC_raw[3])+IC->fIC_raw[4]; @@ -222,7 +222,7 @@ void DECorr(bool cut = false, bool spline = false) { hDE_E_splined->Fill(E,DE_splined); hDE_Ebis->Fill(E,DE_Bis); - hDE_V->Fill(FF_V13,DE_splined); + hDE_V->Fill(FF_V13,DE); //******* Coor DE ************ if (spline== true ){ @@ -248,23 +248,33 @@ void DECorr(bool cut = false, bool spline = false) { hDE_Ebis_corr->Fill(E,DE_Ybis); } - bool CutCharge = CutZ->IsInside(FF_V13,DE_splined); + bool CutCharge; + if (cut == true) { + CutCharge = CutZ->IsInside(FF_V13,DE); + } //bool CutChargeBis = CutZ->IsInside(E,DE_Y_Recur); //bool CutVbis = CutZbis->IsInside(E,DE_Bis); // DE_Y in a cut hDE_Y_corr_nocut->Fill(FF_IC_Y,DE); hDE_Y_splined_nocut->Fill(FF_IC_Y,DE_splined); - if (cut == true && CutV && CutCharge) { - + if (cut == true ) { + if (CutV && CutCharge){ + hDE_Y->Fill(FF_IC_Y,DE); + hDE_Y_splined->Fill(FF_IC_Y,DE_splined); + hDE_Y_corr->Fill(FF_IC_Y,DE_corr); + + hIC_Y->Fill(FF_IC_Y,IC->fIC_raw[1]); + hIC_Y_splined->Fill(FF_IC_Y,ICcorr_Y.at(1)); + } + }//end cut + else { hDE_Y->Fill(FF_IC_Y,DE); hDE_Y_splined->Fill(FF_IC_Y,DE_splined); hDE_Y_corr->Fill(FF_IC_Y,DE_corr); hIC_Y->Fill(FF_IC_Y,IC->fIC_raw[1]); - hIC_Y_splined->Fill(FF_IC_Y,ICcorr_Y.at(1)); - }//end cut - else {;} + hIC_Y_splined->Fill(FF_IC_Y,ICcorr_Y.at(1));} if (cut == true && CutVbis) { hDE_Y_bis->Fill(FF_IC_Y,DE_Bis); @@ -313,7 +323,7 @@ void DECorr(bool cut = false, bool spline = false) { hDE_Y_splined_nocut->ProfileX()->Draw(); c4->cd(2); hDE_Y_corr_nocut->ProfileX()->Draw(); - + TCanvas *c1 = new TCanvas("c1","c1",1500,1000); diff --git a/Projects/AlPhaPha/2024/macro/chio/YCalibration/Legacy/PlotOnline.C b/Projects/AlPhaPha/2024/macro/chio/YCalibration/PlotOnline.C similarity index 52% rename from Projects/AlPhaPha/2024/macro/chio/YCalibration/Legacy/PlotOnline.C rename to Projects/AlPhaPha/2024/macro/chio/YCalibration/PlotOnline.C index 113fa6f5223d4488fc2ea7a43620e05bc4844b4a..d301d3ccd30b950fa2f91f2c89aecc5d17b330a5 100644 --- a/Projects/AlPhaPha/2024/macro/chio/YCalibration/Legacy/PlotOnline.C +++ b/Projects/AlPhaPha/2024/macro/chio/YCalibration/PlotOnline.C @@ -1,4 +1,6 @@ +#include <TAxis.h> +#include <TCanvas.h> #include <TF1.h> #include <TFile.h> #include <TSpline.h> @@ -9,7 +11,11 @@ void PlotOnline(){ TFile *fSplineIC = new TFile("Output/spline_P2P_2024.root","open"); - TSpline3 *spline_X = (TSpline3 *)fSplineIC->Get("fspline_IC1_Y"); + TSpline3 *spline_Y = (TSpline3 *)fSplineIC->Get("fspline_IC1_Y"); + TCanvas *c = new TCanvas("c","c"); f1->Draw(); + f1->SetTitle("Lucas correction"); + f1->GetXaxis()->SetTitle("Y"); + f1->GetYaxis()->SetTitle("De Correction"); } diff --git a/Projects/AlPhaPha/2024/macro/chio/YCalibration/SplineChioP2P.C b/Projects/AlPhaPha/2024/macro/chio/YCalibration/SplineChioP2P.C index b7f9f49fdc086db467ce4415e16816398b183b20..2819b39f1c8a617e6f030459944c76a7ce656093 100644 --- a/Projects/AlPhaPha/2024/macro/chio/YCalibration/SplineChioP2P.C +++ b/Projects/AlPhaPha/2024/macro/chio/YCalibration/SplineChioP2P.C @@ -53,7 +53,7 @@ void SplineChioP2P() { NCallSpline+=1; SplineAllIC.at(1)= (SplineICurrent); // - SplineAllIC.erase(SplineAllIC.begin() + 1); + ///SplineAllIC.erase(SplineAllIC.begin() + 1); ///activate this to not make the //spline of IC1 @@ -123,7 +123,7 @@ vector<TH2F*> HistoFillerIC(int segment, vector<vector<TSpline3*>> Spline_All_IC // Input and setters TChain* chain = new TChain("PhysicsTree"); - chain->Add("../../../root/analysis/VamosCalib241.root"); + chain->Add("../../../root/analysis/VamosCalib247.root"); TICPhysics* IC = new TICPhysics() ; double FF_IC_X, FF_IC_Y; @@ -180,8 +180,8 @@ vector<TH2F*> HistoFillerIC(int segment, vector<vector<TSpline3*>> Spline_All_IC // Beginning loop on entries //=========================================================================================================== - int Nentries = chain->GetEntries(); - //int Nentries = 1000000; + //int Nentries = chain->GetEntries(); + int Nentries = 1000000; auto start = std::chrono::high_resolution_clock::now(); for (int e = 0; e < Nentries; e++) { @@ -262,7 +262,7 @@ vector<vector<TH2F*>>HistoFillerICcorr(int segment, vector<vector<TSpline3*>> Sp // Input and setters TChain* chain = new TChain("PhysicsTree"); - chain->Add("../../../root/analysis/VamosCalib241.root"); + chain->Add("../../../root/analysis/VamosCalib247.root"); TICPhysics* IC = new TICPhysics() ; double FF_IC_X, FF_IC_Y; diff --git a/Projects/AlPhaPha/2024/macro/mwpc/Toff/ToffGenerator.cxx b/Projects/AlPhaPha/2024/macro/mwpc/Toff/ToffGenerator.cxx index c9168b6f883e712bf7d67dbc367186c3c73b0507..67cdf48e7998a346a967d7822d3081dec826d17d 100644 --- a/Projects/AlPhaPha/2024/macro/mwpc/Toff/ToffGenerator.cxx +++ b/Projects/AlPhaPha/2024/macro/mwpc/Toff/ToffGenerator.cxx @@ -116,8 +116,9 @@ void ToffGenerator(bool Create = true ){ if (M13 == 2 && (abs(S13[0]-S13[1]) == 1)){ vector<int> Pos = SortSection(S13); - hToff13->Fill(S13[0],Time->GetTime_MWPC13(Pos[0]) - Time->GetTime_MWPC13(Pos[1])); - hToffOnline13->Fill(S13[0],(Time->GetTime_MWPC13(Pos[0]) - Toff[S13[0]]) -( Time->GetTime_MWPC13(Pos[1]) -Toff[S13[1]] ) ); + hToff13->Fill(S13[0], Time->GetTime_MWPC13(Pos[0]) - Time->GetTime_MWPC13(Pos[1]) ); + + hToffOnline13->Fill(S13[0], (Time->GetTime_MWPC13(Pos[0]) - Toff[S13[0]]) -( Time->GetTime_MWPC13(Pos[1]) -Toff[S13[1]] )); } if (M23 == 2 && (abs(S23[0]-S23[1]) == 1)){ vector<int> Pos = SortSection(S23); @@ -405,7 +406,7 @@ void ToffGenerator(bool Create = true ){ if (M13 == 2 && (abs(S13[0]-S13[1]) == 1)){ vector<int> Pos = SortSection(S13); - hCorrToff13->Fill(S13[0],(Time->GetTime_MWPC13(Pos[0]) + Toff13.at(S13[0])) - (Time->GetTime_MWPC13(Pos[1]) + Toff13.at(S13[1]))); + hCorrToff13->Fill(S13[0],(Time->GetTime_MWPC13(Pos[0]) - double(Time->GetTS_MWPC13(Pos[0]))+ Toff13.at(S13[0])) - (Time->GetTime_MWPC13(Pos[1]) - double(Time->GetTS_MWPC13(Pos[1]))+ Toff13.at(S13[1]))); } diff --git a/Projects/AlPhaPha/conversion/2024/convert.C b/Projects/AlPhaPha/conversion/2024/convert.C index 08455d207b623bdb3b9a78a97f2f49c49229d16a..18862b4db7ae08b352682ad41b75c31096815830 100644 --- a/Projects/AlPhaPha/conversion/2024/convert.C +++ b/Projects/AlPhaPha/conversion/2024/convert.C @@ -78,7 +78,7 @@ void convert(int run=204){ for (int i=0; i<ICRawM; i++){ m_ic->SetIC_TS(ICRawTS[i]); m_ic->SetIC_Section(i+1); - m_ic->SetIC_Charge(ICRaw[i]); + m_ic->SetIC_Charge(IC[i]); } // Time // @@ -267,14 +267,15 @@ void InitInputTree(){ input_tree->SetBranchAddress("MTOF_FP1_T1VTS",&MTOF_FP1_T1VTS); // IC - input_tree->SetBranchStatus("ICRaw","true"); - input_tree->SetBranchAddress("ICRaw",&ICRaw); + input_tree->SetBranchStatus("IC","true"); + input_tree->SetBranchAddress("IC",&IC); input_tree->SetBranchStatus("ICRawTS","true"); input_tree->SetBranchAddress("ICRawTS",&ICRawTS); input_tree->SetBranchStatus("ICRawM","true"); input_tree->SetBranchAddress("ICRawM",&ICRawM); + // FPMW0-X input_tree->SetBranchStatus("FPMW0_XRawM","true"); input_tree->SetBranchAddress("FPMW0_XRawM",&FPMW0_XRawM); diff --git a/Projects/AlPhaPha/conversion/2024/convert.h b/Projects/AlPhaPha/conversion/2024/convert.h index 58d519283dc94f40822850e5299ba5df1a4570f7..a53108fc74eba43b2f45270e9e15c3019f82671e 100644 --- a/Projects/AlPhaPha/conversion/2024/convert.h +++ b/Projects/AlPhaPha/conversion/2024/convert.h @@ -49,7 +49,7 @@ ULong64_t fPISTA_TS_sec; ULong64_t PISTA_TS; // IC // -UShort_t ICRaw[11]; +Float_t IC[11]; long ICRawTS[11]; int ICRawM;