From d8d13b33e97c33beafbcb229aee81fa738c0d772 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9odore=20Efremov?= <Theodore.EFREMOV@cea.fr>
Date: Wed, 30 Oct 2024 08:44:23 +0100
Subject: [PATCH] Streamlined drawing of histogram in SplineChioXY

---
 .../macro/chio/CalibrationChio/SplineChioXY.C | 76 ++++++++++++-------
 1 file changed, 49 insertions(+), 27 deletions(-)

diff --git a/Projects/AlPhaPha/2024/macro/chio/CalibrationChio/SplineChioXY.C b/Projects/AlPhaPha/2024/macro/chio/CalibrationChio/SplineChioXY.C
index 9def00632..abe1f0c04 100644
--- a/Projects/AlPhaPha/2024/macro/chio/CalibrationChio/SplineChioXY.C
+++ b/Projects/AlPhaPha/2024/macro/chio/CalibrationChio/SplineChioXY.C
@@ -15,6 +15,7 @@ using namespace std;
 TSpline3* MakeSpline(TH2F* hInput, Int_t NCallee, double XMin , double
     XMax, double YMin, double YMax);
 void HistoFiller();
+void HistoDrawer(vector<TH2F*> h);
 
 //////////////////////////////////////////////////////////////////////////////////////////
 void SplineChioXY( bool Create = false) {
@@ -25,7 +26,7 @@ void SplineChioXY( bool Create = false) {
     cout << "Creating Histo.root" << endl;
     HistoFiller(); //Deactivated after one launch of the macro
     cout << "Histo.root created and loaded" << endl ;
-    }
+  }
 
 
   else if (inFile && !inFile->IsZombie()) {
@@ -33,7 +34,7 @@ void SplineChioXY( bool Create = false) {
   }
 
   else {
-   cerr << "Make your mind" << endl;
+    cerr << "Make your mind" << endl;
   }
 
 
@@ -42,6 +43,11 @@ void SplineChioXY( bool Create = false) {
   hIC.push_back((TH2F*)inFile->Get("hChio_IC0_IC1_Y_all"));
   hIC.push_back((TH2F*)inFile->Get("hChio_IC1_X"));
   hIC.push_back((TH2F*)inFile->Get("hChio_IC1_Y"));
+  hIC.push_back((TH2F*)inFile->Get("hChio_IC0_X"));
+  hIC.push_back((TH2F*)inFile->Get("hChio_IC0_Y"));
+
+  HistoDrawer(hIC);
+
 
   TFile* fspline = new TFile("Output/spline_Chio_2024.root", "recreate");
 
@@ -51,14 +57,17 @@ void SplineChioXY( bool Create = false) {
   XMin[1] = -70  ;   XMax[1] = 79  ; YMin[1] = 0 ; YMax[1] = 2 ; 
   XMin[2] = -520 ;   XMax[2] = 380 ; YMin[2] = 2000 ; YMax[2] = 9500 ; 
   XMin[3] = -70  ;   XMax[3] = 79  ; YMin[3] = 2000 ; YMax[3] = 9500 ; 
+  XMin[4] = -520 ;   XMax[4] = 380 ; YMin[4] = 2000 ; YMax[4] = 9500 ; 
+  XMin[5] = -70  ;   XMax[5] = 79  ; YMin[5] = 2000 ; YMax[5] = 9500 ; 
 
 
 
-  for (int i = 0; i < hIC.size(); i++) {
+  for (int i = 0; i < NHist; i++) {
 
     TSpline3* spline = MakeSpline(hIC[i] , i, XMin[i] , XMax[i], YMin[i], YMax[i]);
-    if (i < 2) spline->SetName(Form("fsplineIC0_%d", i ));
-    else if (i>=2) spline->SetName(Form("fsplineIC1_%d",i));    
+    if (i < 2) spline->SetName(Form("fsplineIC01_%d", i ));
+    else if (i>=2 && i<4) spline->SetName(Form("fsplineIC1_%d",i));   
+    else if (i>=4) spline->SetName(Form("fsplineIC0_%d",i)); 
     spline->Write();
   } //End loop on histogram
 
@@ -101,6 +110,10 @@ void HistoFiller() {
       "hChio_IC1_Y", 1000, -160, 160, 500, 2000, 9500);
   TH2F* hChio_IC1_X = new TH2F("hChio_IC1_X",
       "hChio_IC1_X", 1000, -800, 800, 500, 2000, 9500);
+  TH2F* hChio_IC0_X = new TH2F("hChio_IC0_X",
+      "hChio_IC0_X", 1000, -800, 800, 500, 2000, 9500);
+  TH2F* hChio_IC0_Y = new TH2F("hChio_IC0_Y",
+      "hChio_IC0_Y", 1000, -160, 160, 500, 2000, 9500);
 
 
 
@@ -126,13 +139,15 @@ void HistoFiller() {
     }
 
     //if (IC->Eres>11000 && IC->Eres < 12000){
-      hChio_IC0_IC1_X_all->Fill(FF_IC_X , fIC_raw[1] / fIC_raw[0] );
-      hChio_IC0_IC1_Y_all->Fill(FF_IC_Y , fIC_raw[1] / fIC_raw[0] );
+    hChio_IC0_IC1_X_all->Fill(FF_IC_X , fIC_raw[1] / fIC_raw[0] );
+    hChio_IC0_IC1_Y_all->Fill(FF_IC_Y , fIC_raw[1] / fIC_raw[0] );
+
+    hChio_IC1_X->Fill(FF_IC_X, fIC_raw[1]);
+    hChio_IC1_Y->Fill(FF_IC_Y, fIC_raw[1]);
 
-      hChio_IC1_X->Fill(FF_IC_X, fIC_raw[1]);
-      hChio_IC1_Y->Fill(FF_IC_Y, fIC_raw[1]);
+    hChio_IC0_X->Fill(FF_IC_X, fIC_raw[0]);
+    hChio_IC0_Y->Fill(FF_IC_Y, fIC_raw[0]);
     //}
-    // for(int i=0;i<Ncuts;i++) if(cutZ[i]->IsInside(FF_Eres,FF_DE)) {hChioDE_E[i]->Fill(FF_Eres,FF_DE); break;}
 
   } // end loop on entries
 
@@ -140,28 +155,13 @@ void HistoFiller() {
   //                                       Output Canvas and files
   //===========================================================================================================
 
-  TCanvas* canX = new TCanvas("X", "X", 0, 0, 2000, 1000);
-  canX->cd();
-  hChio_IC0_IC1_X_all->Draw("colz");
-
-  TCanvas* canY = new TCanvas("Y", "Y", 0, 0, 2000, 1000);
-  canY->cd();
-  hChio_IC0_IC1_Y_all->Draw("colz");
-
-  TCanvas* canX1 = new TCanvas("X1", "X1", 0, 0, 2000, 1000);
-  canX1->cd();
-  hChio_IC1_X->Draw("colz");
-
-  TCanvas* canY1 = new TCanvas("Y1", "Y1", 0, 0, 2000, 1000);
-  canY1->cd();
-  hChio_IC1_Y->Draw("colz");
-
-
   TFile* outFile = new TFile("Output/Histo.root", "recreate");
   hChio_IC0_IC1_X_all->Write();
   hChio_IC0_IC1_Y_all->Write();
   hChio_IC1_Y->Write();
   hChio_IC1_X->Write();
+  hChio_IC0_X->Write();
+  hChio_IC0_Y->Write();
   outFile->Close();
 } // End HistoFiller
 
@@ -261,3 +261,25 @@ TSpline3* MakeSpline(TH2F* hInput, Int_t NCallee, double XMin = 0 , double
   return gspline;
 
 } // end makespline
+
+void HistoDrawer(vector<TH2F*> h){
+
+  int NHisto = static_cast<int>(h.size());
+
+  TCanvas* CanX= new TCanvas("CanX","CanX",0,0,2000,1000);
+  TCanvas* CanY= new TCanvas("CanY","CanY",0,0,2000,1000);
+
+  CanX->Divide(NHisto/2);
+  CanY->Divide(NHisto/2);
+
+  for ( int i=0 ; i < NHisto ; i+=2 ){
+    //All x are even and all y are odd
+    int CanvaNumber = (i+1)/2 + 1 ;
+    CanX->cd(CanvaNumber);
+    h[i]->Draw("colz");
+
+    CanY->cd(CanvaNumber);
+    h[i+1]->Draw("colz");
+
+  }
+}
-- 
GitLab