00001 #ifndef ALIGNMENT_H
00002 #define ALIGNMENT_H
00003
00004 #include <string>
00005 #include <vector>
00006
00007 namespace Alignment{
00008
00009
00010 void expd(double veca[3], double vecb[3], double val[3]);
00011
00012
00013 int dist2Line(double sta[3], double stb[3], double veca[3],
00014 double vecb[3],double &d, double &za, double &zb, int fgZcal = 1);
00015
00016
00017 double docaLineWire(double trkpar[], double wirest[],
00018 double wirev[], double &zwire, int fgZcal = 1);
00019
00020
00021 double docaHelixWireNewton(double trkpar[], double wirest[],
00022 double wirev[], double &zwire, double zini);
00023 double docaHelixWire(double trkpar[], double wirest[],
00024 double wirev[], double &zwire, double zini);
00025
00026 bool getDoca(double trkpar[], double wpos[], double &doca,
00027 double whitPos[], double zini);
00028 double getPhiIni(double trkpar[], double rLayer, double pos[]);
00029
00030 int getEpId(int lay, int iEnd);
00031
00032
00033
00034 extern bool gFlagMag;
00035
00036
00037 extern int gNiter;
00038
00039 const double CC = 2.99792458E10;
00040 const double PI = 3.141592653;
00041 const double PI2 = 6.283185307;
00042 const double HFPI = 1.570796327;
00043
00044 const int WIRENMAX = 6796;
00045 const int LAYERNMAX = 43;
00046 const int CELLNMAX = 288;
00047 const int INNERNMAX = 8;
00048 const int NEP = 16;
00049 const int NTRKPAR = 5;
00050 const int NTRKPARALL = 10;
00051
00052 const double BFIELD = 1.0;
00053
00054
00055
00056 const std::string MSG_DEBUG("DEBUG: ");
00057 const std::string MSG_INFO("INFO: ");
00058 const std::string MSG_WARNING("WARNING: ");
00059 const std::string MSG_ERROR("ERROR: ");
00060 const std::string MSG_FATAL("FATAL: ");
00061
00062 const int NDOFALIGN = 3;
00063
00064
00065
00066 const bool m_iteration = true;
00067 const bool debug_mode = false;
00068 const bool verbose_mode = false;
00069 const bool verbose_reject = false;
00070
00071 const bool g_dofs[3] = {1, 1, 1};
00072
00073
00074
00075
00076
00077 const double g_Sigm[3] = {0.1, 0.01, 0.05};
00078
00079
00080
00081
00082
00083 const double g_res_cut = 1.2;
00084 const double g_res_cut_init = 3.;
00085 const double g_start_chi_cut = 100.;
00086
00087 const int gNsamLC = 100;
00088 const int gNsamGB = 100;
00089
00090 const double gStepLC[5] = {0.001, 0.001, 0.00001, 0.0001, 0.0001};
00091 const double gStepGB[48] = {0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001,
00092 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001,
00093 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001,
00094 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001,
00095 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001,
00096 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001};
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113 }
00114
00115 #endif
00116