From bcf9f8ae1906ec203f992989756d25c28f6d4dc5 Mon Sep 17 00:00:00 2001
From: Adrien Matta <matta@lpccaen.in2p3.fr>
Date: Mon, 11 Sep 2023 09:48:02 +0200
Subject: [PATCH] * Fixing GetTheta calling in ShowResult of Gaspard benchmarck

---
 Benchmarks/gaspard/ShowResults.C | 202 ++++++++++++++++---------------
 1 file changed, 102 insertions(+), 100 deletions(-)

diff --git a/Benchmarks/gaspard/ShowResults.C b/Benchmarks/gaspard/ShowResults.C
index 053a03ba1..da6e53501 100644
--- a/Benchmarks/gaspard/ShowResults.C
+++ b/Benchmarks/gaspard/ShowResults.C
@@ -26,126 +26,131 @@
  *****************************************************************************/
 
 // C++ headers
-#include <iostream>
-#include <ctime>
 #include <cstdlib>
+#include <ctime>
+#include <iostream>
 using namespace std;
 
-// ROOT headers
-#include "TROOT.h"
-#include "TStyle.h"
-#include "TCanvas.h"
-#include "TSystem.h"
-#include "TFile.h"
-#include "TString.h"
-#include "TEllipse.h"
-#include "TLegend.h"
-#include "TTree.h"
-#include "TBranch.h"
-#include "TH1F.h"
-#include "TH2F.h"
-#include "TGraph.h"
-
-// nptool headers
-#include "TReactionConditions.h"
-#include "TInteractionCoordinates.h"
-#include "NPReaction.h"
+//// ROOT headers
+// #include "TROOT.h"
+// #include "TStyle.h"
+// #include "TCanvas.h"
+// #include "TSystem.h"
+// #include "TFile.h"
+// #include "TString.h"
+// #include "TEllipse.h"
+// #include "TLegend.h"
+// #include "TTree.h"
+// #include "TBranch.h"
+// #include "TH1F.h"
+// #include "TH2F.h"
+// #include "TGraph.h"
+//
+//// nptool headers
+// #include "TReactionConditions.h"
+// #include "TInteractionCoordinates.h"
+// #include "NPReaction.h"
 using namespace NPL;
 
 TCanvas* canvas1;
 TCanvas* canvas2;
 
-void ShowResults(const char * fname = "benchmark_gaspard"){
-  // for the style 
+void ShowResults(const char* fname = "benchmark_gaspard") {
+  // for the style
   gStyle->SetOptStat(0);
-  gROOT->SetStyle("nptool");     
-  gROOT->ForceStyle(true);  
+  gROOT->SetStyle("nptool");
+  gROOT->ForceStyle(true);
 
   // Open output ROOT file from NPTool simulation run
   TString path = gSystem->Getenv("NPTOOL");
   path += "/Outputs/Simulation/";
   TString inFileName = fname;
-  if (!inFileName.Contains("root")) inFileName += ".root";
-  TFile *inFile = new TFile(path + inFileName);
-  if (!inFile->IsOpen()) exit(1);
-  TTree *tree   = (TTree*) inFile->Get("SimulatedTree");
+  if (!inFileName.Contains("root"))
+    inFileName += ".root";
+  TFile* inFile = new TFile(path + inFileName);
+  if (!inFile->IsOpen())
+    exit(1);
+  TTree* tree = (TTree*)inFile->Get("SimulatedTree");
 
   // Connect the branches of the TTree and activate then if necessary
   // TReactionConditions branch
-  TReactionConditions *reacCond = 0;
+  TReactionConditions* reacCond = 0;
   tree->SetBranchAddress("ReactionConditions", &reacCond);
   tree->SetBranchStatus("ReactionConditions", 1);
-  
+
   // TInteractionCoordinates branch
-  TInteractionCoordinates *interCoord = 0;
+  TInteractionCoordinates* interCoord = 0;
   tree->SetBranchAddress("InteractionCoordinates", &interCoord);
   tree->SetBranchStatus("InteractionCoordinates", 1);
 
   // Declare histograms
   // for incident beam
-  TH2F *hEmittanceXY     = new TH2F("hEmittanceXY",     "Beam Position on Target (x, y)", 200, -10, 10, 200, -10, 10);
-  TH2F *hEmittanceXTheta = new TH2F("hEmittanceXTheta", "Beam Emittance (#theta_{x}-90,x)", 200, -10, 10, 200, -2, 2);
-  TH2F *hEmittanceYPhi   = new TH2F("hEmittanceYPhi",   "Beam Emittance (#phi_{y}-90,y)", 200, -10, 10, 200, -2, 2);
-  TH1F *hIncidentTheta   = new TH1F("hIncidentTheta",   "Beam Incident Theta (Polar angle)", 100,   0, 2);
-  TH1F *hIncidentPhi     = new TH1F("hIncidentPhi",     "Beam Incident Phi (Azimuthal angle)", 370,  -185, 185);
-  TH1F *hIncidentZ       = new TH1F("hIncidentZ",       "Beam z-position of interaction", 200,  -0.007, 0.007);
+  TH2F* hEmittanceXY = new TH2F("hEmittanceXY", "Beam Position on Target (x, y)", 200, -10, 10, 200, -10, 10);
+  TH2F* hEmittanceXTheta = new TH2F("hEmittanceXTheta", "Beam Emittance (#theta_{x}-90,x)", 200, -10, 10, 200, -2, 2);
+  TH2F* hEmittanceYPhi = new TH2F("hEmittanceYPhi", "Beam Emittance (#phi_{y}-90,y)", 200, -10, 10, 200, -2, 2);
+  TH1F* hIncidentTheta = new TH1F("hIncidentTheta", "Beam Incident Theta (Polar angle)", 100, 0, 2);
+  TH1F* hIncidentPhi = new TH1F("hIncidentPhi", "Beam Incident Phi (Azimuthal angle)", 370, -185, 185);
+  TH1F* hIncidentZ = new TH1F("hIncidentZ", "Beam z-position of interaction", 200, -0.007, 0.007);
 
   // for emitted particle
-  TH1F *hEmittedThetaCM = new TH1F("hEmittedThetaCM", "Light Ejectile Theta CM",               180, 0, 180);
-  TH1F *hEmittedThetaIF = new TH1F("hEmittedThetaIF", "Light Ejectile Theta (reaction frame)", 180, 0, 180);
-  TH1F *hEmittedPhiIF   = new TH1F("hEmittedPhiIF",   "Light Ejectile Phi (reaction frame)",   360, 0, 360);
-  TH1F *hEmittedThetaWF = new TH1F("hEmittedThetaWF", "Light Ejectile Theta (detector frame)", 180, 0, 180);
-  TH1F *hEmittedPhiWF   = new TH1F("hEmittedPhiWF",   "Light Ejectile Phi (detector frame)",   360, 0, 360);
-  TH1F *hControlPhi     = new TH1F("hControlPhi",     "Light Ejectile IncidentPhi + EmittedPhi", 360, 0, 360);
-  TH2F *hEmittedETheta  = new TH2F("hEmittedETheta",  "Kinematic line", 1800, 0, 180, 1800, 0, 60);
-
+  TH1F* hEmittedThetaCM = new TH1F("hEmittedThetaCM", "Light Ejectile Theta CM", 180, 0, 180);
+  TH1F* hEmittedThetaIF = new TH1F("hEmittedThetaIF", "Light Ejectile Theta (reaction frame)", 180, 0, 180);
+  TH1F* hEmittedPhiIF = new TH1F("hEmittedPhiIF", "Light Ejectile Phi (reaction frame)", 360, 0, 360);
+  TH1F* hEmittedThetaWF = new TH1F("hEmittedThetaWF", "Light Ejectile Theta (detector frame)", 180, 0, 180);
+  TH1F* hEmittedPhiWF = new TH1F("hEmittedPhiWF", "Light Ejectile Phi (detector frame)", 360, 0, 360);
+  TH1F* hControlPhi = new TH1F("hControlPhi", "Light Ejectile IncidentPhi + EmittedPhi", 360, 0, 360);
+  TH2F* hEmittedETheta = new TH2F("hEmittedETheta", "Kinematic line", 1800, 0, 180, 1800, 0, 60);
 
   // for emitted particle but gated on interaction in detector
-  TH2F *hEmittedETheta_detected  = new TH2F("hEmittedETheta_detected",  "Kinematic line (interaction in det.)",1800, 0, 180, 1800, 0, 60);
-  TH1F *hEmittedThetaIF_detected = new TH1F("hEmittedThetaIF_detected", "Light Ejectile Theta in reaction frame (interaction in det.)",180, 0, 180);
-  TH1F *hEmittedThetaCM_detected = new TH1F("hEmittedThetaCM_detected", "Light Ejectile ThetaCM (interaction in det.)",180, 0, 180);
+  TH2F* hEmittedETheta_detected =
+      new TH2F("hEmittedETheta_detected", "Kinematic line (interaction in det.)", 1800, 0, 180, 1800, 0, 60);
+  TH1F* hEmittedThetaIF_detected =
+      new TH1F("hEmittedThetaIF_detected", "Light Ejectile Theta in reaction frame (interaction in det.)", 180, 0, 180);
+  TH1F* hEmittedThetaCM_detected =
+      new TH1F("hEmittedThetaCM_detected", "Light Ejectile ThetaCM (interaction in det.)", 180, 0, 180);
 
   // Read the TTree
   Int_t nentries = tree->GetEntries();
   cout << endl << " TTree contains " << nentries << " events" << endl;
 
   for (Int_t i = 0; i < nentries; i++) {
-    if (i%10000 == 0 && i!=0)  {
+    if (i % 10000 == 0 && i != 0) {
       cout.precision(5);
-      Double_t percent = (Double_t)i/nentries ;
-      cout  << "\r Progression:  " << percent*100 << " %" << flush;
+      Double_t percent = (Double_t)i / nentries;
+      cout << "\r Progression:  " << percent * 100 << " %" << flush;
     }
-    else if (i==nentries-1)  cout << "\r Progression:" << " 100%" << endl;
+    else if (i == nentries - 1)
+      cout << "\r Progression:"
+           << " 100%" << endl;
 
     // Get entry
     tree->GetEntry(i);
 
     // Fill histos
     // incident beam
-    hEmittanceXY     -> Fill(reacCond->GetVertexPositionX(), reacCond->GetVertexPositionY());
-    hIncidentZ       -> Fill(reacCond->GetVertexPositionZ());
-    hEmittanceXTheta -> Fill(reacCond->GetVertexPositionX(), reacCond->GetBeamEmittanceThetaX()-90);
-    hEmittanceYPhi   -> Fill(reacCond->GetVertexPositionY(), reacCond->GetBeamEmittancePhiY()-90);
-    hIncidentTheta   -> Fill(reacCond->GetBeamEmittanceTheta());
-    hIncidentPhi     -> Fill(reacCond->GetBeamEmittancePhi());
+    hEmittanceXY->Fill(reacCond->GetVertexPositionX(), reacCond->GetVertexPositionY());
+    hIncidentZ->Fill(reacCond->GetVertexPositionZ());
+    hEmittanceXTheta->Fill(reacCond->GetVertexPositionX(), reacCond->GetBeamEmittanceThetaX() - 90);
+    hEmittanceYPhi->Fill(reacCond->GetVertexPositionY(), reacCond->GetBeamEmittancePhiY() - 90);
+    hIncidentTheta->Fill(reacCond->GetBeamEmittanceTheta());
+    hIncidentPhi->Fill(reacCond->GetBeamEmittancePhi());
 
     // ejected particle
-    hEmittedThetaCM  -> Fill(reacCond->GetThetaCM());
-    hEmittedThetaIF  -> Fill(reacCond->GetThetaLab_BeamFrame(0));
-    hEmittedThetaWF  -> Fill(reacCond->GetThetaLab_WorldFrame(0));
-    hEmittedETheta   -> Fill(reacCond->GetThetaLab_BeamFrame(0), reacCond->GetKineticEnergy(0));
+    hEmittedThetaCM->Fill(reacCond->GetThetaCM());
+    hEmittedThetaIF->Fill(reacCond->GetTheta_BeamFrame(0));
+    hEmittedThetaWF->Fill(reacCond->GetTheta_WorldFrame(0));
+    hEmittedETheta->Fill(reacCond->GetTheta_BeamFrame(0), reacCond->GetKineticEnergy(0));
 
     if (interCoord->GetDetectedMultiplicity() > 0) {
-      hEmittedETheta_detected  -> Fill(reacCond->GetThetaLab_BeamFrame(0), reacCond->GetKineticEnergy(0));
-      hEmittedThetaIF_detected -> Fill(reacCond->GetThetaLab_BeamFrame(0));
-      hEmittedThetaCM_detected -> Fill(reacCond->GetThetaCM());
+      hEmittedETheta_detected->Fill(reacCond->GetTheta_BeamFrame(0), reacCond->GetKineticEnergy(0));
+      hEmittedThetaIF_detected->Fill(reacCond->GetTheta_BeamFrame(0));
+      hEmittedThetaCM_detected->Fill(reacCond->GetThetaCM());
     }
   }
 
-
   // Display beam histograms
-  canvas1 = new TCanvas("canvas1", "Incident beam properties from EventGenerator", 700,0,  500,750);
-  canvas1->Divide(2,3);
+  canvas1 = new TCanvas("canvas1", "Incident beam properties from EventGenerator", 700, 0, 500, 750);
+  canvas1->Divide(2, 3);
 
   canvas1->cd(1);
   hEmittanceXTheta->Draw("colz");
@@ -155,7 +160,7 @@ void ShowResults(const char * fname = "benchmark_gaspard"){
   canvas1->cd(2);
   hEmittanceYPhi->Draw("colz");
   hEmittanceYPhi->SetXTitle("Y (mm)");
-  hEmittanceYPhi->SetYTitle("#Phi_{Y} (deg)"); 
+  hEmittanceYPhi->SetYTitle("#Phi_{Y} (deg)");
 
   canvas1->cd(3);
   hIncidentTheta->Draw();
@@ -164,16 +169,16 @@ void ShowResults(const char * fname = "benchmark_gaspard"){
   canvas1->cd(4);
   hIncidentPhi->Draw();
   hIncidentPhi->SetXTitle("Incident #phi (deg)");
-  
+
   canvas1->cd(5);
   hEmittanceXY->Draw("colz");
   hEmittanceXY->SetXTitle("Position on Target X (mm)");
-  hEmittanceXY->SetYTitle("Position on Target Y (mm)"); 
-  TEllipse *target = new TEllipse(0,0,7.5,7.5);
+  hEmittanceXY->SetYTitle("Position on Target Y (mm)");
+  TEllipse* target = new TEllipse(0, 0, 7.5, 7.5);
   target->SetFillStyle(0000);
   target->SetLineStyle(2);
   target->Draw("same");
-  TEllipse *targetCenter = new TEllipse(1.0,2.0,0.2,0.2);
+  TEllipse* targetCenter = new TEllipse(1.0, 2.0, 0.2, 0.2);
   targetCenter->Draw("same");
 
   canvas1->cd(6);
@@ -181,24 +186,24 @@ void ShowResults(const char * fname = "benchmark_gaspard"){
   hIncidentZ->SetXTitle("Z (mm)");
 
   // Display detector histograms
-  canvas2 = new TCanvas("canvas2", "Emitted particle properties",500,500);
-  canvas2->Divide(2,2);
+  canvas2 = new TCanvas("canvas2", "Emitted particle properties", 500, 500);
+  canvas2->Divide(2, 2);
 
   canvas2->cd(1);
   hEmittedThetaCM->SetXTitle("#theta_{c.m.}");
   hEmittedThetaCM->SetYTitle("counts / 1^{#circ}");
-  hEmittedThetaCM->SetLineColor(kBlue-3);
-  hEmittedThetaCM->SetFillColor(kBlue-3);
+  hEmittedThetaCM->SetLineColor(kBlue - 3);
+  hEmittedThetaCM->SetFillColor(kBlue - 3);
   hEmittedThetaCM->GetYaxis()->SetTitleOffset(1.18);
   hEmittedThetaCM->Draw();
-  
-  hEmittedThetaCM_detected->SetLineColor(kOrange-3);
-  hEmittedThetaCM_detected->SetFillColor(kOrange-3);
+
+  hEmittedThetaCM_detected->SetLineColor(kOrange - 3);
+  hEmittedThetaCM_detected->SetFillColor(kOrange - 3);
   hEmittedThetaCM_detected->Draw("same");
-  
+
   TLegend* leg = new TLegend(0.53, 0.68, 0.81, 0.9);
-  leg->AddEntry(hEmittedThetaCM,"Emitted","f");
-  leg->AddEntry(hEmittedThetaCM_detected,"Detected","f");
+  leg->AddEntry(hEmittedThetaCM, "Emitted", "f");
+  leg->AddEntry(hEmittedThetaCM_detected, "Detected", "f");
   leg->Draw();
 
   canvas2->cd(2);
@@ -206,48 +211,45 @@ void ShowResults(const char * fname = "benchmark_gaspard"){
   hEmittedETheta_detected->SetYTitle("E_{Lab} (MeV)");
   hEmittedETheta_detected->Draw();
   NPL::Reaction r("132Sn(d,p)133Sn@1320");
-  TGraph* Kine = r.GetKinematicLine3(); 
+  TGraph* Kine = r.GetKinematicLine3();
   Kine->SetLineWidth(1);
   Kine->SetLineStyle(2);
-  Kine->SetLineColor(kOrange-3);
+  Kine->SetLineColor(kOrange - 3);
   Kine->Draw("c same");
 
   canvas2->cd(3);
   hEmittedThetaIF->SetXTitle("#theta_{Lab}");
   hEmittedThetaIF->SetYTitle("counts / 1^{#circ}");
-  hEmittedThetaIF->SetLineColor(kBlue-3);
-  hEmittedThetaIF->SetFillColor(kBlue-3);
+  hEmittedThetaIF->SetLineColor(kBlue - 3);
+  hEmittedThetaIF->SetFillColor(kBlue - 3);
   hEmittedThetaIF->GetYaxis()->SetTitleOffset(1.18);
   hEmittedThetaIF->Draw();
 
-  hEmittedThetaIF_detected->SetLineColor(kOrange-3);
-  hEmittedThetaIF_detected->SetFillColor(kOrange-3);
+  hEmittedThetaIF_detected->SetLineColor(kOrange - 3);
+  hEmittedThetaIF_detected->SetFillColor(kOrange - 3);
   hEmittedThetaIF_detected->Draw("same");
 
   canvas2->cd(4);
-  TH1F *hEfficiency = new TH1F("hEfficiency", "Efficiency", 180, 0, 180);
+  TH1F* hEfficiency = new TH1F("hEfficiency", "Efficiency", 180, 0, 180);
   hEfficiency->Divide(hEmittedThetaIF_detected, hEmittedThetaIF, 100, 1);
   hEfficiency->GetXaxis()->SetTitle("#theta (deg)");
   hEfficiency->GetYaxis()->SetTitle("#epsilon (%)");
   hEfficiency->Draw();
 
-
   TFile* referenceFile = new TFile("reference.root");
-  TCanvas* canvas1_ref = (TCanvas*) referenceFile->FindObjectAny("canvas1_ref");
-  canvas1_ref->SetTitle(  Form("FROM reference.root: %s",canvas1_ref->GetTitle()) );
-  TCanvas* canvas2_ref = (TCanvas*) referenceFile->FindObjectAny("canvas2_ref");
-  canvas2_ref->SetTitle(  Form("FROM reference.root: %s",canvas2_ref->GetTitle()) );
+  TCanvas* canvas1_ref = (TCanvas*)referenceFile->FindObjectAny("canvas1_ref");
+  canvas1_ref->SetTitle(Form("FROM reference.root: %s", canvas1_ref->GetTitle()));
+  TCanvas* canvas2_ref = (TCanvas*)referenceFile->FindObjectAny("canvas2_ref");
+  canvas2_ref->SetTitle(Form("FROM reference.root: %s", canvas2_ref->GetTitle()));
   canvas1_ref->Draw();
   canvas2_ref->Draw();
-
 }
 
-
 ////////////////////////////////////////////////////////////////////////////////
 // Use this method to overwrite the reference file only
 // DO NOT USE UNLESS YOU WANT TO MAKE A CHANGE TO THE BENCHMARK
-void WriteGaspardReference(){
-  TFile *outFile = new TFile("reference.root","RECREATE");
+void WriteGaspardReference() {
+  TFile* outFile = new TFile("reference.root", "RECREATE");
   canvas1->SetName("canvas1_ref");
   canvas2->SetName("canvas2_ref");
   canvas1->Write();
-- 
GitLab