diff --git a/NPLib/Physics/NPQFS.cxx b/NPLib/Physics/NPQFS.cxx
index 0eca56b43739e4fa15791704956dd0f1bef61013..6f93995a9af808dc12f7c6c48a756b48ba442e05 100644
--- a/NPLib/Physics/NPQFS.cxx
+++ b/NPLib/Physics/NPQFS.cxx
@@ -156,6 +156,12 @@ void QFS::ReadConfigurationFile(NPL::InputParser parser){
           fshoot1 = blocks[i]->GetInt("ShootLight");
           fshoot2 = blocks[i]->GetInt("ShootLight");
       }
+      if(blocks[i]->HasToken("ShootLight1")){
+          fshoot1 = blocks[i]->GetInt("ShootLight1");
+      }
+      if(blocks[i]->HasToken("ShootLight2")){
+          fshoot2 = blocks[i]->GetInt("ShootLight2");
+      }
       if(blocks[i]->HasToken("PerpMomentumPath")){
           vector<string> file_perp = blocks[i]->GetVectorString("PerpMomentumPath");
           TH1F* Perptemp = Read1DProfile(file_perp[0], file_perp[1]);
diff --git a/NPLib/Physics/NPQFS.h b/NPLib/Physics/NPQFS.h
index 0016793dde93bf66fcd5f72c8b332f444be2b78d..052490510f3f38c8ced984a740dfbcd704058549 100644
--- a/NPLib/Physics/NPQFS.h
+++ b/NPLib/Physics/NPQFS.h
@@ -182,6 +182,7 @@ namespace NPL{
     bool     GetShoot2()         const        {return fshoot2;}
     bool     GetShootB()         const        {return fshootB;}
     double   GetThetaCM()        const        {return fThetaCM;}
+    double   GetPhiCM()          const        {return fPhiCM;}
     double   GetMomentumSigma()  const        {return fMomentumSigma;}
     TVector3 GetInternalMomentum() const   {return fInternalMomentum;}
  
diff --git a/NPSimulation/Process/BeamReaction.cc b/NPSimulation/Process/BeamReaction.cc
index f87e3afe7e588e1b266fc7514b040b9325a1a176..f10c3859c91d038df1d7ff0e8757921553aac9c2 100644
--- a/NPSimulation/Process/BeamReaction.cc
+++ b/NPSimulation/Process/BeamReaction.cc
@@ -442,7 +442,8 @@ void NPS::BeamReaction::DoIt(const G4FastTrack& fastTrack,
     /////////////////////////////////////////////////////////////////
 
     // Shoot and Set a Random ThetaCM
-    double theta = G4RandFlat::shoot() *  pi;
+    double costheta = G4RandFlat::shoot() * 2 - 1;
+    double theta = acos(costheta);
     double phi = G4RandFlat::shoot() * 2. * pi - pi; //rand in [-pi,pi]
     m_QFS.SetThetaCM(theta);
     m_QFS.SetPhiCM(phi);
diff --git a/Projects/Strasse/geometry/strasse_optimized.detector b/Projects/Strasse/geometry/strasse_optimized.detector
index f15b2d8076a49f0ff5448c6c2c74c3c571f69332..28c2da128b5aca9d5f2da4f8467afea2a323ec13 100644
--- a/Projects/Strasse/geometry/strasse_optimized.detector
+++ b/Projects/Strasse/geometry/strasse_optimized.detector
@@ -12,7 +12,7 @@ Target
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1
 Strasse Info
   Inner_Wafer_Length= 127 mm
-  Inner_Wafer_Width= 33 mm
+  Inner_Wafer_Width= 30.6 mm
   Inner_Wafer_Thickness= 200 micrometer
   Inner_Wafer_AlThickness= 0.4 micrometer
   Inner_Wafer_PADExternal= 0 mm
@@ -28,7 +28,7 @@ Strasse Info
   Inner_PCB_MidWidth= 1 mm
   Inner_PCB_Thickness= 1.6 mm
   Outer_Wafer_Length= 124 mm
-  Outer_Wafer_Width= 68 mm
+  Outer_Wafer_Width= 65.6 mm
   Outer_Wafer_Thickness= 300 micrometer
   Outer_Wafer_AlThickness= 0.4 micrometer
   Outer_Wafer_PADExternal= 0 mm
@@ -84,9 +84,9 @@ Strasse Chamber
   Z= -30 mm
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-Catana CSV
- Path= geometry/Catana.csv 
- Pos= 0 0 100 mm
- Rshift= 100 micrometer
+%Catana CSV
+% Path= geometry/Catana.csv 
+% Pos= 0 0 100 mm
+% Rshift= 100 micrometer