From aa67669afb7ccfe2937502f6fb08754cb4ec8f52 Mon Sep 17 00:00:00 2001 From: "theodore.efremov" <theodore.efremov@cea.fr> Date: Fri, 29 Nov 2024 09:36:13 +0100 Subject: [PATCH] Advanced in chio analysis --- .../2024/macro/chio/YCalibration/DECorr.C | 111 ++++++++++++------ .../macro/chio/YCalibration/SplineChioP2P.C | 3 +- 2 files changed, 79 insertions(+), 35 deletions(-) diff --git a/Projects/AlPhaPha/2024/macro/chio/YCalibration/DECorr.C b/Projects/AlPhaPha/2024/macro/chio/YCalibration/DECorr.C index 766978d6e..b30e6ca72 100644 --- a/Projects/AlPhaPha/2024/macro/chio/YCalibration/DECorr.C +++ b/Projects/AlPhaPha/2024/macro/chio/YCalibration/DECorr.C @@ -109,16 +109,28 @@ void DECorr(bool cut = false, bool spline = false) { //Defining output histo TH2F* hDE_E = new TH2F("DE_E","DE_E",1000,0,22000,1000,0,28000); + TH2F* hDE_E_splined = new TH2F("DE_E_splined","DE_E_splined",1000,0,22000,1000,0,28000); TH2F* hDE_Ebis = new TH2F("DE_Ebis","DE_Ebis",1000,0,22000,1000,0,24000); + + TH2F* hDE_Y = new TH2F("DE_Y","DE_Y",1000,-100,100,1000,0,22000); TH2F* hDE_Y_splined = new TH2F("DE_Ysplined","DE_Ysplined",1000,-100,100,1000,0,22000); + TH2F* hDE_Y_splined_nocut = new TH2F("DE_Ysplined_nocut","DE_Ysplined_nocut",1000,-100,100,1000,0,22000); + TH2F* hIC_Y = new TH2F("IC_Y","IC_Y",1000,-100,100,1000,0,22000); + TH2F* hIC_Y_splined = new TH2F("IC_Ysplined","IC_Ysplined",1000,-100,100,1000,0,22000); + + TH2F* hDE_Y_corr = new TH2F("DE_Ycorr","DE_Ycorr",1000,-100,100,1000,0,22000); + TH2F* hDE_Y_corr_nocut = new TH2F("DE_Ycorr_nocut","DE_Ycorr_nocut",1000,-100,100,1000,0,22000); + TH2F* hDE_Y_bis = new TH2F("DE_Ybis","DE_Ybis",1000,-100,100,1000,0,22000); TH2F* hDEbis_Y_corr = new TH2F("DE_Ybiscorr","DE_Ybiscorr",1000,-100,100,1000,0,22000); + TH2F* hDE_E_corr = new TH2F("DE_Ecorr","DE_Ecorr",1000,0,22000,1000,0,28000); TH2F* hDE_Ebis_corr = new TH2F("DE_Ebiscorr","DE_Ebiscorr",1000,0,22000,1000,0,24000); TH2F* hDE_E_Recur = new TH2F("DE_E_Recur","DE_E_Recur",1000,0,22000,1000,0,28000); + TH2F* hDE_V = new TH2F("DE_V","DE_V",1000,0,5,1000,0,28000); // Def Lim spline double Ymin = -100 , Ymax =100; @@ -174,8 +186,8 @@ void DECorr(bool cut = false, bool spline = false) { }//endloop seg - double DE = 0 , DE_splined=0,E =0, Ecorr ,DE_Ycorr=0, DE_Ybis=0, DE_Y_Recur=0; - + double DE = 0 , DE_splined=0 ,DE_corr=0, DE_Ybis=0, DE_Y_Recur=0; + double E =0, Ecorr=0; for (int seg = 0 ; seg < sizeof(IC->fIC_raw)/sizeof(IC->fIC_raw[0]) ; seg++ ){ if (seg >4){ E += IC->fIC_raw[seg] ; @@ -183,24 +195,39 @@ void DECorr(bool cut = false, bool spline = false) { } } + + + // ********************* DE setter ********************* 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*(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[0]+ ICcorr_Y[1] +ICcorr_Y[2]+ICcorr_Y[3])+ICcorr_Y[4]; - DE_splined = 0.5*( ICcorr_Y[1] +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_splined = 0.5*( ICcorr_Y[1] +IC->fIC_raw[2]+IC->fIC_raw[3])+IC->fIC_raw[4]; + + + //************* Cut ****************** + bool CutV = abs( FF_V13-3.94)<0.01; + bool CutVbis = abs( FF_V13-3.94)<0.01; + + //bool CutV = true; + //bool CutVbis = true; + + //***********Fill histo************* - bool CutV = FF_V13 > 4.2999 && FF_V13 <=4.3; - bool CutVbis = FF_V13 > 4.2999 && FF_V13 <=4.3; - //bool CutV = true; //nocut if (FF_IC_Y >Ymin && FF_IC_Y <Ymax ){ - //hDE_E->Fill(E,DE); - hDE_E->Fill(E,DE_splined); + + //*************Init DE_E***************** + hDE_E->Fill(E,DE); + hDE_E_splined->Fill(E,DE_splined); hDE_Ebis->Fill(E,DE_Bis); - if (spline== true && FF_IC_Y >Ymin && FF_IC_Y<Ymax ){ - DE_Ycorr = DE_splined * splineDEcorr->Eval(0) / splineDEcorr->Eval(FF_IC_Y); - hDE_E_corr->Fill(E,DE_Ycorr); + hDE_V->Fill(FF_V13,DE_splined); + + //******* Coor DE ************ + if (spline== true ){ + DE_corr = DE_splined * splineDEcorr->Eval(0) / splineDEcorr->Eval(FF_IC_Y); + hDE_E_corr->Fill(E,DE_corr); DE_Ybis = DE_Bis * splineDEbis->Eval(0) / splineDEbis->Eval(FF_IC_Y); hDE_Ebis_corr->Fill(E,DE_Ybis); @@ -208,26 +235,34 @@ void DECorr(bool cut = false, bool spline = false) { DE_Y_Recur = DE_splined; for (int i=0; i<vsplineDE.size() ; i++){ - DE_Y_Recur = DE_Y_Recur * vsplineDE.at(i)->Eval(0) / vsplineDE.at(i)->Eval(FF_IC_Y); + DE_Y_Recur = DE_Y_Recur * vsplineDE.at(i)->Eval(0) / vsplineDE.at(i)->Eval(FF_IC_Y); } - hDE_E_Recur->Fill(E,DE_Y_Recur); - } + hDE_E_Recur->Fill(E,DE_Y_Recur); + } + else { - DE_Ycorr = DE_splined; - hDE_E_corr->Fill(E,DE_Ycorr); + DE_corr = DE_splined; + hDE_E_corr->Fill(E,DE_corr); DE_Ybis = DE_Bis ; hDE_Ebis_corr->Fill(E,DE_Ybis); } - //bool CutV = CutZ->IsInside(E,DE_splined); - //bool CutV = CutZ->IsInside(E,DE_Y_Recur); + bool CutCharge = CutZ->IsInside(FF_V13,DE_splined); + //bool CutChargeBis = CutZ->IsInside(E,DE_Y_Recur); //bool CutVbis = CutZbis->IsInside(E,DE_Bis); - - if (cut == true && CutV) { - hDE_Y->Fill(FF_IC_Y,DE_splined); - //hDE_Y_corr->Fill(FF_IC_Y,DE_splined); - hDE_Y_corr->Fill(FF_IC_Y,DE_Y_Recur); + // 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) { + + 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 {;} @@ -244,9 +279,9 @@ void DECorr(bool cut = false, bool spline = false) { TSpline3 *splineDE, *osplineDEbis; if (spline == true){ - splineDE = MakeSpline(hDE_Y_corr,0,Ymin,Ymax,0,23000); + splineDE = MakeSpline(hDE_Y_splined,0,Ymin,Ymax,0,23000); osplineDEbis = MakeSpline(hDE_Y_bis,1,Ymin,Ymax,0,23000); - TFile *fSpline = new TFile("Output/splineDE.root","update"); + TFile *fSpline = new TFile("Output/splineDE.root","recreate"); splineDE->SetName("SplineDe_0"); splineDE->Write(); osplineDEbis->SetName("SplineDebis"); @@ -261,20 +296,28 @@ void DECorr(bool cut = false, bool spline = false) { c->Divide(2,2); c->cd(1); gPad->SetLogz(); - hDE_Y_corr->ProfileX()->Draw(); + hDE_Y->ProfileX()->Draw(); c->cd(2); gPad->SetLogz(); - hDE_Y->ProfileX()->Draw(); + hDE_Y_splined->ProfileX()->Draw(); c->cd(3); gPad->SetLogz(); - hDEbis_Y_corr->ProfileX()->Draw(); + hIC_Y->ProfileX()->Draw(); c->cd(4); gPad->SetLogz(); - hDE_Y_bis->ProfileX()->Draw(); + hIC_Y_splined->ProfileX()->Draw(); + + TCanvas *c4 = new TCanvas("c4","c4",1500,1000); + c4->Divide(2); + c4->cd(1); + hDE_Y_splined_nocut->ProfileX()->Draw(); + c4->cd(2); + hDE_Y_corr_nocut->ProfileX()->Draw(); + TCanvas *c1 = new TCanvas("c1","c1",1500,1000); - hDE_E->Draw(); + hDE_V->Draw(); TCanvas* c2 = new TCanvas("c2","c2",1500,1000); c2->Divide(2 + 3*spline); @@ -287,10 +330,10 @@ void DECorr(bool cut = false, bool spline = false) { if (spline){ c2->cd(3); gPad->SetLogz(); - hDE_E_corr->Draw(); + hDE_E_splined->Draw(); c2->cd(4); gPad->SetLogz(); - hDE_E_Recur->Draw(); + hDE_E_corr->Draw(); c2->cd(5); gPad->SetLogz(); hDE_Ebis_corr->Draw(); diff --git a/Projects/AlPhaPha/2024/macro/chio/YCalibration/SplineChioP2P.C b/Projects/AlPhaPha/2024/macro/chio/YCalibration/SplineChioP2P.C index 65e11afa9..b7f9f49fd 100644 --- a/Projects/AlPhaPha/2024/macro/chio/YCalibration/SplineChioP2P.C +++ b/Projects/AlPhaPha/2024/macro/chio/YCalibration/SplineChioP2P.C @@ -53,7 +53,8 @@ void SplineChioP2P() { NCallSpline+=1; SplineAllIC.at(1)= (SplineICurrent); // - //SplineAllIC.erase(SplineAllIC.begin() + 1); //activate this to not make the + SplineAllIC.erase(SplineAllIC.begin() + 1); + ///activate this to not make the //spline of IC1 -- GitLab