BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
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
12#include <vector>
13
14using namespace Alignment;
15
16class Millepede {
17public:
18 /// Standard constructor
19 Millepede();
20 ~Millepede(); ///< Destructor
21
22 /// Initialization
23 bool initialize();
24
25 bool InitMille( bool DOF[], double Sigm[], int nglo, int nloc, double startfact, int nstd,
26 double res_cut, double res_cut_init );
27 bool MakeGlobalFit( double par[], double error[], double pull[] );
28 bool ParGlo( int index, double param );
29 bool ParSig( int index, double sigma );
30 bool ConstF( double dercs[], double rhs );
31 bool EquLoc( double dergb[], double derlc[], double dernl[], double rmeas, double sigma );
32 bool ZerLoc( double dergb[], double derlc[], double dernl[] );
33 bool FitLoc( int n, double track_params[], int single_fit );
34 int GetTrackNumber();
35 void SetTrackNumber( int value );
36
37private:
38 // Option set-up here
39
40 /* the following 4 statements are moved to Alignment.h by wulh on 06/08/29 */
41 // static const bool m_iteration = true; // */
42 // static const bool debug_mode = false; // More printouts */
43 // static const bool verbose_mode = false; // Definitely more printouts (matrices,...) */
44 // static const bool verbose_reject = false;//\* added by wulh on 06/08/28 *\/ */
45
46 // Max. dimensions
47
48 static const int mglobl = 400; // Max. number of global parameters
49 static const int mlocal = 20; // Max. number of local parameters
50 static const int mcs = 10; // Max. number of constraint equations
51 static const int mgl = 410; // mglobl+mlocal
52
53 // Private methods
54
55 bool InitUn( double cutfac );
56 bool PrtGlo();
57
58 double ErrPar( int i );
59 double CorPar( int i, int j );
60 int SpmInv( double v[][mgl], double b[], int n, double diag[], bool flag[] );
61 int SpmInv( double v[][mlocal], double b[], int n, double diag[], bool flag[] );
62 bool SpAVAt( double v[][mlocal], double a[][mlocal], double w[][mglobl], int n, int m );
63 bool SpAX( double a[][mlocal], double x[], double y[], int n, int m );
64 double chindl( int n, int nd );
65
66 // Matrices
67
68 double cgmat[mgl][mgl];
69 double clmat[mlocal][mlocal];
70 double clcmat[mglobl][mlocal];
71 double corrm[mglobl][mglobl];
72 double adercs[mcs][mglobl];
73
74 // Vectors and useful variables
75
76 double corrv[mglobl], psigm[mglobl], pparm[mglobl], dparm[mglobl];
77 double scdiag[mglobl], blvec[mlocal], arhs[mcs], diag[mgl], bgvec[mgl];
78
79 int indgb[mglobl], nlnpa[mglobl], indnz[mglobl], indbk[mglobl], indlc[mlocal];
80
81 bool scflag[mglobl];
82
83 std::vector<int> indst;
84 std::vector<double> arest;
85 std::vector<double> arenl;
86
87 std::vector<int> storeind;
88 std::vector<int> storeplace;
89 std::vector<double> storeare;
90 std::vector<double> storenl;
91
92 int store_row_size;
93
94 int m_track_number;
95 double m_residual_cut_init;
96 double m_residual_cut;
97
98 double cfactr, cfactref;
99
100 int itert, nst, nfl, ncs, nstdev;
101 int loctot, locrej, nagb, nalc, nrank;
102};
103#endif // MILLEPEDE_H
const Int_t n
double w
**********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 nglo, int nloc, double startfact, int nstd, double res_cut, double res_cut_init)
Definition Millepede.cxx:43
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.
Definition Millepede.cxx:27
Millepede()
Standard constructor.
Definition Millepede.cxx:23
bool ConstF(double dercs[], double rhs)