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

Example drift chamber application. More...

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

Go to the source code of this file.

Namespaces

namespace  gbl
 Namespace for the general broken lines package.
 

Functions

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.

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

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

Setup:

  • 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

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, chamber alignment):

Cfiles
milleBinaryISN.dat
method inversion 3 0.1
chiscut 30. 6.
printcounts
! fix first chamber as reference
parameter
1001 0. -1.
1002 0. -1.
1003 0. -1.
1004 0. -1.
1005 0. -1.
1006 0. -1.
end

Definition at line 90 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::GblHelixPrediction::getMeasPred(), gbl::GblDetectorLayer::getMeasSystemDirs(), gbl::GblHelixPrediction::getPosition(), gbl::GblDetectorLayer::getPrecision(), gbl::GblDetectorLayer::getRadiationLength(), gbl::GblDetectorLayer::getRigidBodyDerGlobal(), gbl::GblDetectorLayer::getRigidBodyGlobalLabel(), gbl::GblDetectorLayer::intersectWithHelix(), gbl::GblTrajectory::milleOut(), gbl::GblSimpleHelix::moveToXY(), gbl::unif(), and gbl::unrm().