00001
00002
00003
00004
00005
00006
00007
00008 #include "StMuHelix.h"
00009
00010 StMuHelix::StMuHelix(const StPhysicalHelixD &hh, double field) {
00011 mP = hh.momentum(field*kilogauss);
00012 mOrigin = hh.origin();
00013 mQ = hh.charge( field*kilogauss );
00014 mB = field;
00015 }
00016
00017 int StMuHelix::bad() const
00018 {
00019 double qwe;
00020 if(!mOrigin.valid()) return 10;
00021 if(!mP.valid ()) return 20;
00022
00023 qwe = fabs(mP.x())+fabs(mP.y());
00024 if (qwe <=1.e-10) return 21;
00025
00026 if (abs(mQ) > 10) return 30;
00027
00028 if (!::finite(mB)) return 40;
00029 if (fabs(mB) > 1000) return 41;
00030 return 0;
00031 }
00032 StPhysicalHelix StMuHelix::helix() const
00033 {
00034 return StPhysicalHelix(mP,mOrigin,mB*kilogauss,mQ);
00035 }
00036
00037 ClassImp(StMuHelix)
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057