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 *----------------------------------------------------------------------*
34 printf("\n ========> magfld\n");
48 (TVirtualMCApplication::Instance())->Field(xc, bc);
50 b = sqrt(bc[0] * bc[0] + bc[1] * bc[1] + bc[2] * bc[2]);
54 Double_t btt = btx * btx + bty * bty;
55 if (btt >= (Double_t) 1.) {
56 btx /= TMath::Sqrt(btt);
57 bty /= TMath::Sqrt(btt);
58 b /= TMath::Sqrt(btt);
61 btz = TMath::Sqrt((Double_t) 1. - btt);
71 printf("\n #magfld: x, y, z, btx, bty, btz, b %f %f %f %f %f %f %f \n",
72 x, y, z, btx, bty, btz, b);