From eb83b90c7feb1ecec1a8958764936e708a0bb639 Mon Sep 17 00:00:00 2001
From: deserevi <deserevi@nptool>
Date: Wed, 9 Feb 2011 11:01:01 +0000
Subject: [PATCH] * Add error message and exit NPSimulation when charge or mass
 is not conserved   in the reaction.

---
 NPLib/Physics/NPReaction.cxx | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

diff --git a/NPLib/Physics/NPReaction.cxx b/NPLib/Physics/NPReaction.cxx
index 805317b20..67e172b55 100644
--- a/NPLib/Physics/NPReaction.cxx
+++ b/NPLib/Physics/NPReaction.cxx
@@ -83,20 +83,26 @@ void Reaction::SetEveryThing(string name1, string name2, string name3, string na
 {
    //------------- Constructor with nuclei names and beam energy ------------
      
-   fNuclei1       = new Nucleus(name1);
-   fNuclei2       = new Nucleus(name2);
-   fNuclei3       = new Nucleus(name3);
-   fNuclei4       = new Nucleus(name4);
-   fBeamEnergy = BeamEnergy;
-   fThetaCM    = 0;
+   fNuclei1         = new Nucleus(name1);
+   fNuclei2         = new Nucleus(name2);
+   fNuclei3         = new Nucleus(name3);
+   fNuclei4         = new Nucleus(name4);
+   fBeamEnergy      = BeamEnergy;
+   fThetaCM         = 0;
    fExcitationLight = ExcitationEnergyLight;
    fExcitationHeavy = ExcitationEnergyHeavy;
-   fQValue     = (  fNuclei1->GetMassExcess() + fNuclei2->GetMassExcess()
-        - fNuclei3->GetMassExcess() - fNuclei4->GetMassExcess()) / 1000;
+   fQValue          = (fNuclei1->GetMassExcess() + fNuclei2->GetMassExcess()
+                      - fNuclei3->GetMassExcess() - fNuclei4->GetMassExcess()) / 1000;
 
    int masse  = fNuclei1->GetA() + fNuclei2->GetA() - fNuclei3->GetA() - fNuclei4->GetA();
    int charge = fNuclei1->GetZ() + fNuclei2->GetZ() - fNuclei3->GetZ() - fNuclei4->GetZ();
-   if (masse || charge) cout << "Problem with charge or mass conservation" << endl;
+   if (masse || charge) {
+      cout << endl;
+      cout << "**********************************       Error       **********************************" << endl;
+      cout << "* NPReaction: charge of mass not conserved.        Check you event generator file     *" << endl;
+      cout << "***************************************************************************************" << endl;
+      exit(1);
+   }
    
    ///Read the differential cross section
    string GlobalPath = getenv("NPTOOL");
-- 
GitLab