CVS - Administrative privileges
Description
Place for SteppingHelixPropagator: a propagator using a simplified geometry/material treatment.
Public interface
SteppingHelixPropagator
- ::propagate(FTS, Cylinder) and ::propagate(FTS, Plane) methods are avialable through Propagator abstract base class interface.
- FTS ::propagate(FTS, GlobalPoint) provides extrapolation to PCA to a point (useful for vertexing)
- FTS ::propagate(FTS, GlobalPoint, GlobalPoint) provides extrapolation to PCA to a line (e.g., beamline) The above two methods are only available as members of SteppingHelixPropagator class (not through Propagator class interface).
Note that the propagator can be configured to propagate (via ES/.cfi or via "PropagationDirection")
- alongMomentum – the direction of propagation is along momentum
- oppositeToMomentum – the direction of propagation is opposite to momentum
- 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)
- bool debug = val – turn on/off (val=true/false [default false]) debug output: CAREFUL it's VERY VERBOSE
- bool AssumeNoMaterial = val – turn off/on (val=true/false [default false]) material effects (eloss, multiple scattering)
- bool NoErrorPropagation = val – turn off/on (val=true/false [default false]) error propagation (was a significant speed up eons ago)
- 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)
- 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).
- 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.
- bool sendLogWarning = val – turn on/off (val=true/false [default false]) LogWarning messages for propagation failures
- 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 for access through ES
The .cfi file names (base) correspond to the ComponentName value
- SteppingHelixPropagatorAlong.cfi : propagate "alongMomentum"
- SteppingHelixPropagatorOpposite.cfi : propagate "oppositeToMomentum"
- SteppingHelixPropagatorAny.cfi : choose propagation direction based on a straight-line quess from inState to destSurface ("anyDirection")
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.