GeneralBrokenLines V03-01-03
using EIGEN
Namespaces | Functions
exampleSit.cpp File Reference

Example silicon tracker application. More...

#include <time.h>
#include "exampleSit.h"
#include "GblTrajectory.h"

Go to the source code of this file.

Namespaces

namespace  gbl
 Namespace for the general broken lines package.
 

Functions

void exampleSit ()
 Silicon tracker example. More...
 
GblDetectorLayer gbl::CreateLayerSit (const std::string aName, unsigned int layer, double xPos, double yPos, double zPos, double thickness, double uAngle, double uRes)
 Create a silicon layer with 1D measurement. More...
 
GblDetectorLayer gbl::CreateLayerSit (const std::string aName, unsigned int layer, double xPos, double yPos, double zPos, double thickness, double uAngle, double uRes, double vAngle, double vRes)
 Create a silicon layer with 2D measurement. More...
 

Detailed Description

Example silicon tracker application.

Author
Claus Kleinwort, DESY, 2018 (Claus.nosp@m..Kle.nosp@m.inwor.nosp@m.t@de.nosp@m.sy.de)

Definition in file exampleSit.cpp.

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().