GeneralBrokenLines  V02-02-01
using EIGEN
Namespaces | Functions
exampleDc.cpp File Reference
#include <time.h>
#include "exampleDc.h"
#include "GblTrajectory.h"

Go to the source code of this file.


 Namespace for the general broken lines package.


void exampleDc ()
 Drift chamber example. More...
GblDetectorLayer gbl::CreateLayerDc (const std::string aName, unsigned int layer, double xPos, double yPos, double zPos, double thickness, double xzAngle, double stereoAngle, double uRes)
 Create a drift chamber layer with 1D measurement. More...

Detailed Description

Example drift chamber application.

Claus Kleinwort, DESY, 2018 (

Definition in file exampleDc.cpp.

Function Documentation

◆ exampleDc()

void exampleDc ( )

Drift chamber example.

Simulate and reconstruct helical tracks in a sector of (forward) drift chambers.

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


  • Beam forward (+Z) direction
  • Constant magnetic field in Z direction
  • Planar drift chambers with normal in XZ plane, center at Y=0, 1D measurement from (azimuthal) wires, cell size 2 cm.
  • Multiple scattering in detectors (gas, wires, walls) (air in between ignored)
  • Curvilinear system (T,U,V) as local coordinate system and (q/p, slopes, offsets) as local track parameters
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, chamber alignment):

method inversion 3 0.1
chiscut 30. 6.
! fix first chamber as reference
1001 0. -1.
1002 0. -1.
1003 0. -1.
1004 0. -1.
1005 0. -1.
1006 0. -1.

Definition at line 73 of file exampleDc.cpp.

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