Table of Contents
News
18/02/2008
The current HEAD of the Alignment project compiles without problems against the latest verions of Lbcom (v6r14) and Rec (v5r3).
19/03/2008
The current HEAD of the Alignment project compiles without problems against the latest verions of Lbcom (v6r15) and Rec (v5r4).
There is a major bug in DetDesc v18r4. The inverse of the alignment conditions transform is set incorrectly. This has been fixed in the head and DetDesc has been re-tagged as v18r4p1. See the release notes for further info.
Building and running the Alignment framework against the LHCb Nightlies
# setenv User_release_area ${HOME}/MyAlignmentStuff
# setenvAlignment v3r1 --nightly lhcb1
# cd AlignmentSys/cmt
# cmt config
# source setup.csh
setenvAlignment v3r1 --nightly lhcb1 will set the environment to use the most recent nigthly. To use a different day do setenvAlignment v3r1 --nightly lhcb1
Setting up the Alignment framework
Here I'll give step by step instructions on how to set up the Alignment framework for those interested in debugging/testing the framework or want contribute.
Setting the environment and compiling the packages
The following is only necessary if you want to use different versions of Rec and Lbcom, typically the latest, than the official release.
In your $User_release_area_rea do
~/cmtuser>getpack ALIGNMENT ALIGNMENT_vXrY
where vXrY is the latest release of the alignment project.
By default the environment variable $User_release_area is set to ${HOME}/cmtuser. If you want to set it to different path, e.g. ${HOME}/MyUserReleaseArea, do (in tsch):
~>unsetenv CMTPROJECTPATH
~>setenv User_release_area ${HOME}/MyUserReleaseArea
~>setenv CMTPROJECTPATH ${User_release_area}:${LHCb_release_area}:${Gaudi_release_area}:${LCG_release_area}
Then modify the file project.cmt in ~/cmtuser/ALIGNMENT/ALIGNMENT_vXrY/cmt with your favourite editor so that your preferred versions of Rec and Lbcom are picked up, e.g.
~/cmtuser/ALIGNMENT/ALIGNMENT_vXrY/cmt> nano -w project.cmt
...
#use LBCOM LBCOM_v6r11 don't use
use LBCOM LBCOM_v6r13 #use this one
#use REC REC_v5r0 don't use
use REC REC_v5r2 #use this one
...
- Now to set the Alignment environment simply do
~>setenvAlignment vXrY
this will set the environment and create a directory Alignment_vXrY in your $User_release_area
That's it!!
Example:
~>setenvAlignment v2r3
~/cmtuser/Alignment_v2r3>getpack -r AlignmentSys v2r3
~/cmtuser/Alignment_v2r3>cd AlignmentSys/v2r3/cmt/
~/cmtuser/Alignment_v2r3/AlignmentSys/v2r3/cmt >source setup.csh
~/cmtuser/Alignment_v2r3/AlignmentSys/v2r3/cmt >cmt br -select=$User_release_area -global make
or if you want to use the HEAD
~>setenvAlignment v2r3
~/cmtuser/Alignment_v2r3>getpack -rh AlignmentSys v2r3
~/cmtuser/Alignment_v2r3>cd AlignmentSys/v2r3/cmt/
~/cmtuser/Alignment_v2r3/AlignmentSys/v2r3/cmt >source setup.csh
~/cmtuser/Alignment_v2r3/AlignmentSys/v2r3/cmt >cmt br -select=$User_release_area -global make
If the version of the Alignment project you want to use hasn't been officially released then you first need to getpack the project, i.e.
~/cmtuser>getpack ALIGNMENT ALIGNMENT_v2r3
What if there are bug fixes in the HEAD of any packages (dependencies) that are not in the Alignment project?
Say that the HEAD of LHCbKernel contains a bug fix to the trajectory code and you want to use it. Then all you need to do is
~>setenvLHCb vXrY
~/cmtuser/LHCb_vXrY>getpack Kernel/LHCbKernel head
~/cmtuser/LHCb_vXrY>cd ~/cmtuser/Alignment_vUrV
~/cmtuser/Alignment_vUrV>nano -w cmt/project.cmt
project Alignment_vUrV
use LHCb_vXrY #use my version of LHCb
use ALIGNMENT ALIGNMENT_vUrV
~/cmtuser/Alignment_vUrV>cd AlignmentSys/vUrV/cmt
~/cmtuser/Alignment_vUrV/AlignmentSys/vUrV/cm>cmt config
~/cmtuser/Alignment_vUrV/AlignmentSys/vUrV/cm>source setup.csh
~/cmtuser/Alignment_vUrV/AlignmentSys/vUrV/cm>cmt br -select=$User_release_area -global make
Monitoring histograms
The following monitoring histograms are produced by the alignment algorithm
Histo Type |
Histo ID |
Histo Title |
Note |
IHistogram2D |
10 |
Track chi2 distribution vs iteration |
distribution of the tracks per iteration |
IHistogram2D |
11 |
Normalised track chi2 distribution vs iteration |
Normalised, i.e. divided by the nDoF, distribution of the tracks per iteration |
IProfile1D |
20 |
Total number of used tracks for alignment vs iteration |
Tracks used for alignment per iteration |
IProfile1D |
30 |
Total sum of track chi2 vs iteration |
per iteration |
IProfile1D |
31 |
Average sum of track chi2 vs iteration |
per iteration |
IProfile1D |
32 |
Normalised total sum of track chi2 vs iteration |
per iteration |
IProfile1D |
40 |
Delta Alignment chi2 vs iteration |
per iteration |
IProfile1D |
41 |
Delta Alignment normalised chi2 vs iteration |
per iteration |
IHistogram2D |
1000+n |
Residual vs iteration for element n |
IHistogram2D |
2000+n |
Pull vs iteration for for element n |
IHistogram1D |
3000+n |
Number of hits vs iteration for element n |
IHistogram1D |
10000+n |
Delta Tx vs iteration for element n |
IHistogram1D |
20000+n |
Delta Ty vs iteration for element n |
IHistogram1D |
30000+n |
Delta Tz vs iteration for element n |
IHistogram1D |
40000+n |
Delta Rx vs iteration for element n |
IHistogram1D |
50000+n |
Delta Ry vs iteration for element n |
IHistogram1D |
60000+n |
Delta Rz vs iteration for element n |