Warning, /CalibPPS/AlignmentRelative/README.md is written in an unsupported language. File is not indexed.
0001 # introduction
0002
0003 Alignment of (CT-)PPS detectors (housed in Roman Pots) proceeds in the following conceptual steps
0004 * relative alignment among sensors - by minimisation of track-hit residuals
0005 * global alignment of RPs wrt the beam - by exploiting symmetries in observed hit patterns
0006
0007 The alignment is applied separately to each arm of the spectrometer (LHC sectors 45 adn 56). For more details see e.g. this [note](http://cds.cern.ch/record/2256296).
0008
0009 This package implements the first step, "track-based alignment" among RP sensors. The alignment corrections of relevance are transverse shifts (in x and y) a rotations about the beam axis (z). The method is based on minimisation of residuals between hits and reconstructed tracks. Certain misalignment modes do not generate residuals (e.g. global shift or rotation) and are therefore inaccessible to the track-based alignment. Sometimes, these modes are also referred to as "singular". In order to find a solution to the alignment task, user must specify "constraints" which provide information about the inaccessible/singular alignment modes. These constraints may come from the second step (global alignment) as outlined above.
0010
0011 For the following reasons, the track-based alignment is performed in an iterative manner:
0012 * the treatment of rotations in linearised (sin alpha ~ alpha, etc.)
0013 * a priory, it is not clear that a hit with large residual is either an outlier (noise or so) or hit from a sensor with large misalignment
0014
0015 Therefore the alignment starts with a large tolerace (don't exclude hits with large misalignments) and gradually (in iterations over the same data) makes the quality cuts stricter (to remove outliers).
0016
0017 The implementation inherits from the code originally developed for TOTEM and described in this [thesis](http://cdsweb.cern.ch/record/1441140). The original code was developed for Si strip detectors, the current implementation can cope also with the Si pixel detectors of PPS. There is some code also for the timing RPs (diamonds), but it is of experimental nature.
0018
0019 # input
0020
0021 For strip RPs, the alignment takes the input from "U-V patterns", i.e. linear rec-hit patterns in U-z and V-z planes.
0022
0023 For pixel RPs, the alignment can take the input
0024 * either from rec-hits (only from planes with a single hit)
0025 * or reconstructed tracks (reconstruction provides some suppression of outliers).
0026
0027 One should not use both input methods in the same time (double counting).
0028
0029 # files
0030
0031 In interface/
0032 * AlignmentAlgorithm.h: abstract interface of a track-based algorithm
0033 * AlignmentConstraint.h: information about a constraint (fixing an alignment mode inaccessible to track-based alignment)
0034 * AlignmentGeometry.h: summary of geometry-related data used in alignment analysis
0035 * AlignmentResult.h: structure holding the track-based alignment results
0036 * AlignmentTask.h: information about alignment task
0037 * HitCollection.h: collection of sensor hits (from strip or pixel sensors)
0038 * IdealResult.h: predicts the result of track-based alignment under the imposed constraints
0039 * JanAlignmentAlgorithm.h: an implementation of track-hit minimisation algorithm
0040 * LocalTrackFit.h: straight-line fit through all RPs in one arm
0041 * LocalTrackFitter.h: code to make the per-arm track fits
0042 * SingularMode.h: information about inaccessible/singular modes
0043 * StraightTrackAlignment.h: common code for all track-based alignment algorithms
0044 * Utilities.h: common code
0045
0046 In plugins/
0047 * PPSFastLocalSimulation.cc: a fast per-arm simulation to test the alignment code
0048 * PPSModifySingularModes.cc: module to modify the singular modes in a track-based alignment result
0049 * PPSStraightTrackAligner.cc: module to run the track-based alignment
0050
0051 # tests
0052
0053 * test_with_mc: Monte-Carlo tests of the alignment code
0054 * simple: a very basic test
0055 * iterations: script to test alignment convergence in several iterations
0056 * statistics: script to test statistical properties
0057
0058 * test_modify_singular_modes: an example how to modify the singular modes
0059
0060 * test_with_data: a full/real-life example of alignment application to (LHC) data
0061