//----------------------------------------------------------- // File and Version Information: // $Id$ // // Description: // Implementation of class LSLEQM // see LSLEQM.hh for details // // Environment: // Software developed for the PANDA Detector at FAIR. // // Author List: // Sebastian Neubert TUM (original author) // // //----------------------------------------------------------- // Panda Headers ---------------------- // This Class' Header ------------------ #include "LSLEQM.h" // C/C++ Headers ---------------------- #include // Collaborating Class Headers -------- #include "AbsBFieldIfc.h" // Class Member definitions ----------- TVectorT LSLEQM::eval(const TVectorT&u, const TVectorT& uprim, const TVectorT& par) { // default values in case no bfield is given double Bx=0.; double By=0.; double Bz=2.; if(u[2]>200.)Bz=0.; if(u[2]>350. && u[2]<450.)By=0.5; if(_field!=NULL){ TVectorT B=_field->get(u); Bx=B[0];By=B[1];Bz=B[2]; } double xprim2=uprim[0]*uprim[0]; double yprim2=uprim[1]*uprim[1]; double dsdz=sqrt(1.+xprim2+yprim2); double kappP=0.00299792458*par[0]; // [GeV/c T^-1 cm^-1] TVectorT result(u); result[0]=kappP*dsdz*(uprim[0]*uprim[1]*Bx-(1+xprim2)*By+uprim[1]*Bz); result[1]=kappP*dsdz*(-uprim[0]*uprim[1]*By+(1+yprim2)*Bx-uprim[0]*Bz); result[2]=0; return result; }