GeneralBrokenLines V03-01-03
using EIGEN
Functions
GBLpp.cpp File Reference
#include <iostream>

Go to the source code of this file.

Functions

void exampleSit ()
 Silicon tracker example. More...
 
int main ()
 

Function Documentation

◆ exampleSit()

void exampleSit ( )

Silicon tracker example.

Simulate and reconstruct helical tracks in silicon pixel and (1D or 2D) strip detectors.

Create points on initial trajectory, create trajectory from points, fit and write trajectory to MP-II binary file (for rigid body alignment).

Setup:

  • Beam (mainly) in X direction
  • Constant magnetic field in Z direction
  • Silicon sensors measuring in YZ plane, orthogonal (pixel) or non-orthogonal (stereo strips) measurement systems
  • Multiple scattering in sensors (air in between ignored)
  • Curvilinear system (T,U,V) as local coordinate system and (q/p, slopes, offsets) as local track parameters

Alignment with MP-II:

  • The alignables are the objects to be aligned. This can be single detector elements (with a 1D or 2D measurement) or sets of those with similar or different orientations.
  • MP-II determines only alignment corrections. For the absolute detector position and orientation an external reference is needed or the appropriate number of degrees of freedom have to be fixed (in the alignment as internal reference).

Local systems. Up to three (different) local coordinate systems can be defined at each point:

  • Track model linearization (propagation, fitting), e.g. curvilinear system
  • Measurement, defined by two (optionally non-orthogonal) measurement directions, normal to detector plane and detector position (offset)
  • Alignment, defined by two orthogonal directions in detector plane, normal to that and detector position (offset). If different from measurement system for alignables with a single 1D measurements the unmeasured component has to be fixed by a linear equality constraint for MP-II.
Remarks
To exercise (mis)alignment different sets of layers (with different geometry) for simulation and reconstruction can be used.

Example steering file for Millepede-II (B=0):

Cfiles
milleBinaryISN.dat
method inversion 3 0.1
chiscut 30. 6.
printcounts
! fix first pixel and last stereo layer as reference
parameter
1 0. -1.
2 0. -1.
3 0. -1.
4 0. -1.
5 0. -1.
6 0. -1.
61 0. -1.
62 0. -1.
63 0. -1.
64 0. -1.
65 0. -1.
66 0. -1.
! from GblDetectorLayer::printMP2Constraint():
! MillePede-II: constraints for alignables with SINGLE 1D measurements
Constraint 0. ! fix unmeasured direction in S1D8
71 -0.707107
72 0.707107
Constraint 0. ! fix unmeasured direction in S1D9
81 0.707107
82 0.707107
! End of lines to be added to MillePede-II steering file
end

Definition at line 105 of file exampleSit.cpp.

References gbl::GblPoint::addGlobals(), gbl::GblPoint::addMeasurement(), gbl::GblPoint::addScatterer(), gbl::CreateLayerSit(), gbl::GblTrajectory::fit(), gbl::gblMultipleScatteringError(), gbl::gblSimpleJacobian(), gbl::GblHelixPrediction::getArcLength(), gbl::GblHelixPrediction::getCosIncidence(), gbl::GblHelixPrediction::getCurvilinearDirs(), gbl::GblHelixPrediction::getDirection(), gbl::GblHelixPrediction::getMeasPred(), gbl::GblDetectorLayer::getMeasSystemDirs(), gbl::GblHelixPrediction::getPosition(), gbl::GblDetectorLayer::getPrecision(), gbl::GblDetectorLayer::getRadiationLength(), gbl::GblDetectorLayer::getRigidBodyDerLocal(), gbl::GblDetectorLayer::getRigidBodyGlobalLabel(), gbl::GblDetectorLayer::intersectWithHelix(), gbl::GblTrajectory::milleOut(), gbl::GblSimpleHelix::moveToXY(), gbl::unif(), and gbl::unrm().

Referenced by main().

◆ main()

int main ( )

Definition at line 13 of file GBLpp.cpp.

References exampleSit().