#include "TVirtualMCApplication.h"
+#include "TFluka.h"
#include "Fdblprc.h" //(DBLPRC) fluka common
//
// #include "TCallf77.h"
*----------------------------------------------------------------------*
*/
- idisc = 0;
Double_t bc[3];
Double_t xc[3];
- xc[1] = x;
- xc[0] = y;
+ xc[0] = x;
+ xc[1] = y;
xc[2] = z;
-
+
+//
+// Check if stopping has been required by user
+//
+ idisc = 0;
+ TFluka* fluka = (TFluka*) gMC;
+ if (fluka->GetStoppingCondition()) {
+ fluka->ResetStoppingCondition();
+ idisc = 1;
+ }
+
(TVirtualMCApplication::Instance())->Field(xc, bc);
b = sqrt(bc[0] * bc[0] + bc[1] * bc[1] + bc[2] * bc[2]);
if (b) {
- btx = bc[1]/b;
- bty = bc[0]/b;
+ btx = bc[0]/b;
+ bty = bc[1]/b;
Double_t btt = btx * btx + bty * bty;
if (btt >= (Double_t) 1.) {
btx /= TMath::Sqrt(btt);
b /= TMath::Sqrt(btt);
btz = (Double_t) 0.;
} else {
- btz = TMath::Sqrt((Double_t) 1. - btt);
+ btz = TMath::Sign(TMath::Sqrt((Double_t) 1. - btt), bc[2]);
}
} else {
btx = 0.;