Home |
Short Presentation |
Mechanical Constraints |
Misalignment Studies |
Alignment Techniques |
Application to VELO |
C++ code |
Latest News |
Links |
Standalone C++ Millepede
A. Introduction
This page is intended to give access to the C++ version of Millepede used for the VELO (available on LHCb software repository in the AlignmentTools package), but in a standalone way.B. How to run the code?
B1. First quick look
Get the Knossos package which is available here. Then untar it: It will create a Knossos_v* directory containing all the sources of the code. You just have to compile it (you need to have ROOT installed to do this): Then (if it doesn't compile check that the ROOTSYS directory is correctly entered into the Makefile. You will also need to replace -m32 by -m64 if you are using 64 bit machine.), run the code:./knossos -r 1 -n 100 -o Result.root > output.log
to see what the commands represent, type: The command will perform the alignment of the toy detector with 100 events, with one set of misalignment (1 run). An event consists in a set of tracks coming from the same primary vertex, centered on (X,Y) = (0,0). Mean Z position of the primary vertex could be set in constants.h (dist_PV parameter). In order to see the results, just type: This root program will produce the following plots, giving you, for the differents degrees of freedom, the misalignment before correction (fig. 1), after correction (fig. 2), and the corresponding pull (fig. 3). Plots shown here have been obtained with 50 runs, ie 100 different sets of misalignments.B2. Going a little bit further...
In this example we use a toy detector which is just a set of XY planes along the Z axis. Planes characteristics are set in the file constants.h.
-------------------------------------------------------------------
// Option set-up here
static const bool m_iteration = true; //
static const bool debug_mode = false; // More printouts
static const bool verbose_mode = false; // Definitely more printouts (matrices,...)
-------------------------------------------------------------------
-------------------------------------------------------------------
// Option set-up here
static const bool m_iteration = true; //
static const bool debug_mode = true; // More printouts
static const bool verbose_mode = false; // Definitely more printouts (matrices,...)
-------------------------------------------------------------------
-------------------------------------------------------------------
// Option set-up here
static const bool m_iteration = true; //
static const bool debug_mode = true; // More printouts
static const bool verbose_mode = true; // Definitely more printouts (matrices,...)
-------------------------------------------------------------------
C. Conclusions
All these programs are 'of course' not 100% failsafe. So if you find a bug, something wrong, or only if you have questions or remarks, please send me a mail.D. Older versions
Version 1.2 : version still available here. Version 1.3 has now a fully generic treatment of non-linear terms.