CMS 3D CMS Logo

Package TrackPropagation/SteppingHelixPropagator

CVS - Administrative privileges

Description

Place for SteppingHelixPropagator: a propagator using a simplified geometry/material treatment.

Public interface

SteppingHelixPropagator

Note that the propagator can be configured to propagate (via ES/.cfi or via "PropagationDirection")

  1. alongMomentum -- the direction of propagation is along momentum
  2. oppositeToMomentum -- the direction of propagation is opposite to momentum
  3. anyDirection -- the direction is estimated internally as the direction of the shorter distance to the destination point.

Propagation behavior can be controlled by the following flags (it is preferable though to just use what's set in the standard .cfi files)

  1. bool debug = val -- turn on/off (val=true/false [default false]) debug output: CAREFUL it's VERY VERBOSE
  2. bool AssumeNoMaterial = val -- turn off/on (val=true/false [default false]) material effects (eloss, multiple scattering)
  3. bool NoErrorPropagation = val -- turn off/on (val=true/false [default false]) error propagation (was a significant speed up eons ago)
  4. bool useMagVolumes = val -- turn on/off (val=true/false [default true]) accounting for MagVolume boundaries. Helps to account for B-field irregularities (effect: internally stop at each MagVolume boundary)
  5. bool useMatVolumes = val -- turn on/off (val=true/false [default true]) accounting for material volume boundaries. Helps to account for material irregularities (effect: internally stop at each material volume boundary). The volumes are defined specific to the propagator and are presently hard-coded (the plan is to get it available through det description some day).
  6. bool returnTangentPlane = val -- do/do-not (val=true/false [default true]) return a TSOS built on a tangent plane for input propagation to a non-Plane surface.
  7. bool sendLogWarning = val -- turn on/off (val=true/false [default false]) LogWarning messages for propagation failures
  8. bool ApplyRadX0Correction = val -- turn on/off (val=true/false [default true]) accounting for non-linear growth of sigma^2 of the multiple scattering component (pick up of non-Gaussian tails) (see more below).

Modules

src/SteppingHelixPropagatorESProducer .. with module.cc -- provide a preconfigured S.H.Propagator through the event setup test/SteppingHelixPropagatorAnalyzer .. see below.

To use a pre-configured extrapolator user is advised to access the propagator via event setup, e.g., ESHandle<Propagator> shPropAlong; iSetup.get<TrackingComponentsRecord>().get("SteppingHelixPropagatorAlong", shPropAlong); which will provide a preconfigured propagator with propagation direction along momentum. The corresponding config include file is TrackPropagation/SteppingHelixPropagator/data/SteppingHelixPropagatorAlong.cfi . The other (suffix) options are "Any" and "Opposite" (see above for definitions).

Configuration files

The .cfi file names (base) correspond to the ComponentName value

Unit tests and examples

SteppingHelixPropagatorAnalyzer.cc can be used to produce ntuples of MC hit matching. testPropagatorAnalyzer.cfg and .sh files help runnig the Analyzer MuProp.h and .C files correspond to (compileable) root scripts for making analyzis of the ntuple.

Status and planned development

Still in development. Muon swimming is working fine. Decent quality error propagation is also implemented. Radiation length non-additive (1+0.036*log(x)) effects relevant to multiple scattering are optionally accounted assuming the path integral at the starting point is zero. Note that accounting for it is configured by default if the propagator is extracted from event setup. This effect can be handled properly if using (local to SteppingHelixPropagator only) interface with SteppingHelixStateInfo. The errors in the cov matrix due to multiple scattering appear to be good to within a few percent. Since the tails of Eloss fluctuations are not accounted for (not a Gaussian part), the distributions of the matching values might be wider than predicted from naive model of Gaussian errors.


Last updated: @ Author: Slava Krutelyov.