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