1 #include "TVirtualMCApplication.h"
2 #include "Fdblprc.h" //(DBLPRC) fluka common
4 // #include "TCallf77.h"
11 #define type_of_call _stdcall
14 extern "C" void type_of_call magfld(double& x, double& y, double& z,
15 double& btx, double& bty, double& btz, double& b,
20 *----------------------------------------------------------------------*
24 * x,y,z = current position *
25 * nreg = current region *
27 * btx,bty,btz = cosines of the magn. field vector *
28 * B = magnetic field intensity (Tesla) *
29 * idisc = set to 1 if the particle has to be discarded *
31 *----------------------------------------------------------------------*
45 (TVirtualMCApplication::Instance())->Field(xc, bc);
47 b = sqrt(bc[0] * bc[0] + bc[1] * bc[1] + bc[2] * bc[2]);
51 Double_t btt = btx * btx + bty * bty;
52 if (btt >= (Double_t) 1.) {
53 btx /= TMath::Sqrt(btt);
54 bty /= TMath::Sqrt(btt);
55 b /= TMath::Sqrt(btt);
58 btz = TMath::Sqrt((Double_t) 1. - btt);