CGEM BOSS 6.6.5.i
BESIII Offline Software System
Loading...
Searching...
No Matches
Mdc/MdcAlignAlg/MdcAlignAlg-00-01-04/MdcAlignAlg/Millepede.h
Go to the documentation of this file.
1#ifndef MILLEPEDE_H
2#define MILLEPEDE_H 1
3
4/** @class Millepede Millepede.h AlignmentTools/Millepede.h
5 *
6 *
7 * @author Sebastien Viret
8 * @date 2005-07-29
9 */
10
11#include <vector>
13
14using namespace Alignment;
15
16class Millepede{
17public:
18 /// Standard constructor
20 ~Millepede( ); ///< Destructor
21
22 /// Initialization
23 bool initialize();
24
25 bool InitMille(bool DOF[], double Sigm[], int nglo
26 , int nloc, double startfact, int nstd
27 , double res_cut, double res_cut_init);
28 bool MakeGlobalFit(double par[], double error[], double pull[]);
29 bool ParGlo(int index, double param);
30 bool ParSig(int index, double sigma);
31 bool ConstF(double dercs[], double rhs);
32 bool EquLoc(double dergb[], double derlc[], double dernl[], double rmeas, double sigma);
33 bool ZerLoc(double dergb[], double derlc[], double dernl[]);
34 bool FitLoc(int n, double track_params[], int single_fit);
36 void SetTrackNumber(int value);
37
38private:
39
40// Option set-up here
41
42/* the following 4 statements are moved to Alignment.h by wulh on 06/08/29 */
43// static const bool m_iteration = true; // */
44// static const bool debug_mode = false; // More printouts */
45// static const bool verbose_mode = false; // Definitely more printouts (matrices,...) */
46// static const bool verbose_reject = false;//\* added by wulh on 06/08/28 *\/ */
47
48
49// Max. dimensions
50
51 static const int mglobl = 400; // Max. number of global parameters
52 static const int mlocal = 20; // Max. number of local parameters
53 static const int mcs = 10; // Max. number of constraint equations
54 static const int mgl = 410; // mglobl+mlocal
55
56
57// Private methods
58
59 bool InitUn (double cutfac);
60 bool PrtGlo();
61
62 double ErrPar(int i);
63 double CorPar(int i, int j);
64 int SpmInv(double v[][mgl], double b[], int n, double diag[], bool flag[]);
65 int SpmInv(double v[][mlocal], double b[], int n, double diag[], bool flag[]);
66 bool SpAVAt(double v[][mlocal], double a[][mlocal], double w[][mglobl], int n, int m);
67 bool SpAX(double a[][mlocal], double x[], double y[], int n, int m);
68 double chindl(int n, int nd);
69
70// Matrices
71
72 double cgmat[mgl][mgl];
73 double clmat[mlocal][mlocal];
74 double clcmat[mglobl][mlocal];
75 double corrm[mglobl][mglobl];
76 double adercs[mcs][mglobl];
77
78
79// Vectors and useful variables
80
81 double corrv[mglobl], psigm[mglobl], pparm[mglobl], dparm[mglobl];
82 double scdiag[mglobl], blvec[mlocal], arhs[mcs], diag[mgl], bgvec[mgl];
83
84 int indgb[mglobl], nlnpa[mglobl], indnz[mglobl], indbk[mglobl], indlc[mlocal];
85
86 bool scflag[mglobl];
87
88 std::vector<int> indst;
89 std::vector<double> arest;
90 std::vector<double> arenl;
91
92 std::vector<int> storeind;
93 std::vector<int> storeplace;
94 std::vector<double> storeare;
95 std::vector<double> storenl;
96
97 int store_row_size;
98
99 int m_track_number;
100 double m_residual_cut_init;
101 double m_residual_cut;
102
103 double cfactr, cfactref;
104
105 int itert, nst, nfl, ncs, nstdev;
106 int loctot, locrej, nagb, nalc, nrank;
107
108};
109#endif // MILLEPEDE_H
const Int_t n
**********Class see also m_nmax DOUBLE PRECISION m_amel DOUBLE PRECISION m_x2 DOUBLE PRECISION m_alfinv DOUBLE PRECISION m_Xenph INTEGER m_KeyWtm INTEGER m_idyfs DOUBLE PRECISION m_zini DOUBLE PRECISION m_q2 DOUBLE PRECISION m_Wt_KF DOUBLE PRECISION m_WtCut INTEGER m_KFfin *COMMON c_KarLud $ !Input CMS energy[GeV] $ !CMS energy after beam spread beam strahlung[GeV] $ !Beam energy spread[GeV] $ !z boost due to beam spread $ !electron beam mass *ff pair spectrum $ !minimum v
Definition KarLud.h:35
bool initialize()
Initialization.
bool InitMille(bool DOF[], double Sigm[], int nlay, int nglo_on_lay, int nloc, double startfact, int nstd, double res_cut, double res_cut_init)
void SetTrackNumber(int value)
bool ZerLoc(double dergb[], double derlc[], double dernl[])
bool EquLoc(double dergb[], double derlc[], double dernl[], double rmeas, double sigma)
bool MakeGlobalFit(double par[], double error[], double pull[])
bool ParGlo(int index, double param)
bool FitLoc(int n, double track_params[], int single_fit)
int GetTrackNumber()
bool ParSig(int index, double sigma)
~Millepede()
Destructor.
Millepede()
Standard constructor.
bool ConstF(double dercs[], double rhs)