#include <ReferenceTrajectoryBase.h>
Classes | |
struct | Config |
Public Types | |
enum | MaterialEffects { none, multipleScattering, energyLoss, combined, breakPoints, brokenLinesCoarse, brokenLinesFine, localGBL, curvlinGBL } |
typedef ReferenceCountingPointer< ReferenceTrajectoryBase > | ReferenceTrajectoryPtr |
Protected Member Functions | |
unsigned int | numberOfUsedRecHits (const TransientTrackingRecHit::ConstRecHitContainer &recHits) const |
ReferenceTrajectoryBase (unsigned int nPar, unsigned int nHits, unsigned int nVirtualPar, unsigned int nVirtualMeas) | |
bool | useRecHit (const TransientTrackingRecHit::ConstRecHitPointer &hitPtr) const |
Protected Attributes | |
AlgebraicMatrix | theDerivatives |
Eigen::MatrixXd | theGblExtDerivatives |
Eigen::VectorXd | theGblExtMeasurements |
Eigen::VectorXd | theGblExtPrecisions |
std::vector< std::pair< std::vector< gbl::GblPoint >, Eigen::MatrixXd > > | theGblInput |
AlgebraicMatrix | theInnerLocalToTrajectory |
AlgebraicMatrix | theInnerTrajectoryToCurvilinear |
AlgebraicVector | theMeasurements |
AlgebraicSymMatrix | theMeasurementsCov |
int | theNomField |
unsigned int | theNumberOfHits |
unsigned int | theNumberOfPars |
unsigned int | theNumberOfVirtualMeas |
unsigned int | theNumberOfVirtualPars |
bool | theParamCovFlag |
AlgebraicSymMatrix | theParameterCov |
AlgebraicVector | theParameters |
TransientTrackingRecHit::ConstRecHitContainer | theRecHits |
AlgebraicSymMatrix | theTrajectoryPositionCov |
AlgebraicVector | theTrajectoryPositions |
std::vector< TrajectoryStateOnSurface > | theTsosVec |
bool | theValidityFlag |
Static Protected Attributes | |
static constexpr unsigned int | nMeasPerHit {2} |
Author : Gero Flucke (based on code for ORCA by Edmund Widl) date : 2006/09/17 last update:
by :
Base class for reference 'trajectories' of single- or multiparticles stated. Inheriting classes have to calculate all relevant quantities accessed through member functions of this base class:
The local measured x/y coordinates on all crossed detectors as vector:
m = (x1, y1, x2, y2, ..., xN, yN) [transposed vector shown]
their covariance matrix (possibly containing correlations between hits due to material effects which are not taken into account by the ideal trajectory parametrisation, cf. below),
similarly the local x/y cordinates of the reference trajectory with covariance,
the parameters of the (ideal) 'trajectory' (e.g. 5 values for a single track or 9 for a two-track-state with vertex constraint),
the derivatives of the local coordinates of the reference trajectory with respect to the initial 'trajectory'-parameters, e.g. for n parameters 'p' and N hits with 'x/y' coordinates:
D = ( dx1/dp1, dx1/dp2, ..., dx1/dpn,
dy1/dp1, dy1/dp2, ..., dy1/dpn, dx2/dp1, dx2/dp2, ..., dx2/dpn, dy2/dp1, dy2/dp2, ..., dy2/dpn, . . . . . . dxN/dp1, dxN/dp2, ..., dxN/dpn, dyN/dp1, dyN/dp2, ..., dyN/dpn )
and finally the TrajectoryStateOnSurface's of the reference trajectory.
Take care to check validity of the calculation (isValid()) before using the results.
.............................................................................
090730 C. Kleinwort: 'Break Points' introduced for better description of multiple scattering (correlations)
For each detector layer (in the hit collection) two ortogonal scattering angles are introduced as new local track parameters ("break points"). To constrain those to the expected mean (=0.) and variance (~1/p^2 X/X0) corresponding measurements are added. Invalid hits may be used to produce break points too (UseInvalidHits = True).
Break points have been implemented for: ReferenceTrajectory, BzeroReferenceTrajectory, DualReferenceTrajectory and DualBzeroReferenceTrajectory For 'Dual' trajectories they make no sense as only the correlations between the hits
in a track half are accounted for and not those between the halves!
Break Points are selected by TrajectoryFactory.MaterialEffects = "BreakPoints"
090909 C. Kleinwort: 'Broken Lines' introduced for description of multiple scattering (V. Blobel, Nuclear Instruments and Methods A, 566 (2006), pp. 14-17) Fine Broken Lines are selected by TrajectoryFactory.MaterialEffects = "BrokenLinesFine" (exact derivatives) Coarse Broken Lines are selected by TrajectoryFactory.MaterialEffects = "BrokenLines[Coarse]" (approximate derivatives, closeby hits (ds<1cm) combined)
091127 C. Kleinwort: 1) 'Broken Lines' extended to PCA, required for beamspot constraint and TwoBodyDecayTrajectory, selected with "BrokenLines[Coarse]Pca" or "BrokenLinesFinePca" 2) For coarse Broken Lines linear interpolation is used for combined hits 3) TwoBodyDecayTrajectory implemented for break points and Broken Lines
141103 C. Kleinwort: 'General Broken Lines' introduced for description of multiple scattering (C. Kleinwort, Nuclear Instruments and Methods A, 673 (2012), pp. 107-110) needs GBL version >= V01-13-00 (from svnsrv.desy.de) Selected by TrajectoryFactory.MaterialEffects = "LocalGBL" or = "CurvlinGBL" (for trajectory constructed in local or curvilinear system)
Definition at line 105 of file ReferenceTrajectoryBase.h.
typedef ReferenceCountingPointer<ReferenceTrajectoryBase> ReferenceTrajectoryBase::ReferenceTrajectoryPtr |
Definition at line 107 of file ReferenceTrajectoryBase.h.
Enumerator | |
---|---|
none | |
multipleScattering | |
energyLoss | |
combined | |
breakPoints | |
brokenLinesCoarse | |
brokenLinesFine | |
localGBL | |
curvlinGBL |
Definition at line 109 of file ReferenceTrajectoryBase.h.
|
inlineoverride |
Definition at line 140 of file ReferenceTrajectoryBase.h.
|
explicitprotected |
|
pure virtual |
|
inline |
Returns the derivatives of the local coordinates of the reference trajectory (i.e. trajectoryPositions) w.r.t. the initial 'trajectory'-parameters.
Definition at line 164 of file ReferenceTrajectoryBase.h.
References theDerivatives.
Referenced by TwoBodyDecayTrajectory::construct(), and DualReferenceTrajectory::construct().
|
inline |
Returns the GBL external derivatives.
Definition at line 179 of file ReferenceTrajectoryBase.h.
References theGblExtDerivatives.
|
inline |
Returns the GBL external derivatives.
Definition at line 183 of file ReferenceTrajectoryBase.h.
References theGblExtMeasurements.
|
inline |
Returns the GBL external derivatives.
Definition at line 187 of file ReferenceTrajectoryBase.h.
References theGblExtPrecisions.
|
inline |
Returns the GBL input
Definition at line 175 of file ReferenceTrajectoryBase.h.
References theGblInput.
Referenced by TwoBodyDecayTrajectory::construct().
|
inline |
Definition at line 142 of file ReferenceTrajectoryBase.h.
References theValidityFlag.
Referenced by ntupleDataFormat._Object::_checkIsValid(), TwoBodyDecayTrajectory::construct(), DualReferenceTrajectory::construct(), and core.AutoHandle.AutoHandle::ReallyLoad().
|
inline |
Returns the transformation of local to tracjectory parameters
Definition at line 171 of file ReferenceTrajectoryBase.h.
References theInnerLocalToTrajectory.
Referenced by TwoBodyDecayTrajectory::construct().
|
inline |
Returns the full covariance matrix of the measurements. ORCA-equivalent: covariance()
Definition at line 150 of file ReferenceTrajectoryBase.h.
References theMeasurementsCov.
Referenced by TwoBodyDecayTrajectory::construct(), and DualReferenceTrajectory::construct().
|
inline |
Returns the measurements in local coordinates.
Definition at line 146 of file ReferenceTrajectoryBase.h.
References theMeasurements.
Referenced by TwoBodyDecayTrajectory::construct(), and DualReferenceTrajectory::construct().
|
inline |
Definition at line 222 of file ReferenceTrajectoryBase.h.
References theNomField.
Referenced by TwoBodyDecayTrajectory::construct().
|
inline |
Definition at line 221 of file ReferenceTrajectoryBase.h.
References nMeasPerHit, and theNumberOfHits.
Referenced by TwoBodyDecayTrajectory::construct(), and DualReferenceTrajectory::construct().
|
inline |
Definition at line 217 of file ReferenceTrajectoryBase.h.
References theNumberOfHits.
Referenced by TwoBodyDecayTrajectory::construct().
|
inline |
Definition at line 218 of file ReferenceTrajectoryBase.h.
References theNumberOfPars.
Referenced by TwoBodyDecayTrajectory::construct().
|
protected |
|
inline |
Definition at line 219 of file ReferenceTrajectoryBase.h.
References theNumberOfVirtualMeas.
Referenced by TwoBodyDecayTrajectory::construct(), and DualReferenceTrajectory::construct().
|
inline |
Definition at line 220 of file ReferenceTrajectoryBase.h.
References theNumberOfVirtualPars.
Referenced by TwoBodyDecayTrajectory::construct().
|
inline |
Returns the covariance matrix of the 'track'-parameters.
Definition at line 206 of file ReferenceTrajectoryBase.h.
References theParameterCov.
|
inline |
Returns true if the covariance matrix of the 'track'-parameters is set.
Definition at line 195 of file ReferenceTrajectoryBase.h.
References theParamCovFlag.
|
inline |
Returns the set of 'track'-parameters.
Definition at line 191 of file ReferenceTrajectoryBase.h.
References theParameters.
Referenced by ReferenceTrajectory::fillDerivatives().
|
inline |
Returns the TransientTrackingRecHits (as ConstRecHitPointer's), order might depend on concrete implementation of inheriting class
Definition at line 215 of file ReferenceTrajectoryBase.h.
References theRecHits.
Referenced by BzeroReferenceTrajectory::BzeroReferenceTrajectory(), TwoBodyDecayTrajectory::construct(), DualBzeroReferenceTrajectory::construct(), DualReferenceTrajectory::construct(), ReferenceTrajectory::construct(), numberOfUsedRecHits(), ReferenceTrajectory::ReferenceTrajectory(), and TwoBodyDecayTrajectory::TwoBodyDecayTrajectory().
|
inline |
Set the covariance matrix of the 'track'-parameters.
Definition at line 199 of file ReferenceTrajectoryBase.h.
References relativeConstraints::error, theParamCovFlag, and theParameterCov.
|
inline |
Returns the covariance matrix of the reference trajectory.
Definition at line 159 of file ReferenceTrajectoryBase.h.
References theTrajectoryPositionCov.
Referenced by DualReferenceTrajectory::construct().
|
inline |
Returns the local coordinates of the reference trajectory. ORCA-equivalent: referenceTrack()
Definition at line 155 of file ReferenceTrajectoryBase.h.
References theTrajectoryPositions.
Referenced by TwoBodyDecayTrajectory::construct(), and DualReferenceTrajectory::construct().
|
inline |
Returns the Tsos at the surfaces of the hits, parallel to recHits()
Definition at line 210 of file ReferenceTrajectoryBase.h.
References theTsosVec.
Referenced by TwoBodyDecayTrajectory::construct(), DualReferenceTrajectory::construct(), and TwoBodyDecayTrajectory::constructTsosVecWithErrors().
|
inline |
Returns the transformation of tracjectory to curvilinear parameters
Definition at line 168 of file ReferenceTrajectoryBase.h.
References theInnerTrajectoryToCurvilinear.
|
protected |
Definition at line 38 of file ReferenceTrajectoryBase.cc.
Referenced by ReferenceTrajectory::construct(), ReferenceTrajectory::getHitProjectionMatrix(), and numberOfUsedRecHits().
|
staticconstexprprotected |
Definition at line 269 of file ReferenceTrajectoryBase.h.
Referenced by ReferenceTrajectory::addMaterialEffectsBp(), ReferenceTrajectory::addMaterialEffectsBrl(), ReferenceTrajectory::addMaterialEffectsCov(), DualReferenceTrajectory::construct(), ReferenceTrajectory::construct(), TwoBodyDecayTrajectory::constructSingleTsosWithErrors(), and numberOfHitMeas().
|
protected |
Definition at line 255 of file ReferenceTrajectoryBase.h.
Referenced by ReferenceTrajectory::addMaterialEffectsBp(), ReferenceTrajectory::addMaterialEffectsBrl(), BzeroReferenceTrajectory::BzeroReferenceTrajectory(), TwoBodyDecayTrajectory::construct(), DualReferenceTrajectory::construct(), ReferenceTrajectory::construct(), derivatives(), and ReferenceTrajectory::fillDerivatives().
|
protected |
Definition at line 265 of file ReferenceTrajectoryBase.h.
Referenced by TwoBodyDecayTrajectory::construct(), and gblExtDerivatives().
|
protected |
Definition at line 266 of file ReferenceTrajectoryBase.h.
Referenced by TwoBodyDecayTrajectory::construct(), and gblExtMeasurements().
|
protected |
Definition at line 267 of file ReferenceTrajectoryBase.h.
Referenced by TwoBodyDecayTrajectory::construct(), and gblExtPrecisions().
|
protected |
Definition at line 262 of file ReferenceTrajectoryBase.h.
Referenced by ReferenceTrajectory::addMaterialEffectsCurvlinGbl(), ReferenceTrajectory::addMaterialEffectsLocalGbl(), TwoBodyDecayTrajectory::construct(), and gblInput().
|
protected |
Definition at line 260 of file ReferenceTrajectoryBase.h.
Referenced by ReferenceTrajectory::addMaterialEffectsBrl(), ReferenceTrajectory::construct(), and localToTrajectory().
|
protected |
Definition at line 258 of file ReferenceTrajectoryBase.h.
Referenced by ReferenceTrajectory::addMaterialEffectsBrl(), ReferenceTrajectory::construct(), and trajectoryToCurv().
|
protected |
Definition at line 246 of file ReferenceTrajectoryBase.h.
Referenced by ReferenceTrajectory::addMaterialEffectsCurvlinGbl(), ReferenceTrajectory::addMaterialEffectsLocalGbl(), TwoBodyDecayTrajectory::construct(), DualReferenceTrajectory::construct(), ReferenceTrajectory::fillMeasurementAndError(), and measurements().
|
protected |
Definition at line 247 of file ReferenceTrajectoryBase.h.
Referenced by ReferenceTrajectory::addMaterialEffectsBp(), ReferenceTrajectory::addMaterialEffectsBrl(), ReferenceTrajectory::addMaterialEffectsCov(), ReferenceTrajectory::addMaterialEffectsCurvlinGbl(), ReferenceTrajectory::addMaterialEffectsLocalGbl(), TwoBodyDecayTrajectory::construct(), DualReferenceTrajectory::construct(), ReferenceTrajectory::fillMeasurementAndError(), and measurementErrors().
|
protected |
Definition at line 263 of file ReferenceTrajectoryBase.h.
Referenced by TwoBodyDecayTrajectory::construct(), ReferenceTrajectory::construct(), and nominalField().
|
protected |
Definition at line 238 of file ReferenceTrajectoryBase.h.
Referenced by TwoBodyDecayTrajectory::construct(), ReferenceTrajectory::construct(), numberOfHitMeas(), and numberOfHits().
|
protected |
Definition at line 239 of file ReferenceTrajectoryBase.h.
Referenced by ReferenceTrajectory::addMaterialEffectsBp(), ReferenceTrajectory::addMaterialEffectsBrl(), TwoBodyDecayTrajectory::construct(), DualReferenceTrajectory::construct(), and numberOfPar().
|
protected |
Definition at line 240 of file ReferenceTrajectoryBase.h.
Referenced by ReferenceTrajectory::addMaterialEffectsBrl(), TwoBodyDecayTrajectory::construct(), and numberOfVirtualMeas().
|
protected |
Definition at line 241 of file ReferenceTrajectoryBase.h.
Referenced by ReferenceTrajectory::addMaterialEffectsBrl(), TwoBodyDecayTrajectory::construct(), ReferenceTrajectory::construct(), and numberOfVirtualPar().
|
protected |
Definition at line 236 of file ReferenceTrajectoryBase.h.
Referenced by parameterErrorsAvailable(), and setParameterErrors().
|
protected |
Definition at line 253 of file ReferenceTrajectoryBase.h.
Referenced by parameterErrors(), and setParameterErrors().
|
protected |
|
protected |
Definition at line 244 of file ReferenceTrajectoryBase.h.
Referenced by TwoBodyDecayTrajectory::construct(), DualReferenceTrajectory::construct(), ReferenceTrajectory::construct(), recHits(), and ReferenceTrajectoryBase().
|
protected |
Definition at line 250 of file ReferenceTrajectoryBase.h.
Referenced by TwoBodyDecayTrajectory::construct(), DualReferenceTrajectory::construct(), ReferenceTrajectory::construct(), TwoBodyDecayTrajectory::constructSingleTsosWithErrors(), and trajectoryPositionErrors().
|
protected |
Definition at line 249 of file ReferenceTrajectoryBase.h.
Referenced by ReferenceTrajectory::addMaterialEffectsCurvlinGbl(), ReferenceTrajectory::addMaterialEffectsLocalGbl(), TwoBodyDecayTrajectory::construct(), DualReferenceTrajectory::construct(), ReferenceTrajectory::fillTrajectoryPositions(), and trajectoryPositions().
|
protected |
Definition at line 243 of file ReferenceTrajectoryBase.h.
Referenced by TwoBodyDecayTrajectory::construct(), DualReferenceTrajectory::construct(), ReferenceTrajectory::construct(), TwoBodyDecayTrajectory::constructSingleTsosWithErrors(), ReferenceTrajectoryBase(), and trajectoryStates().
|
protected |
Definition at line 235 of file ReferenceTrajectoryBase.h.
Referenced by BzeroReferenceTrajectory::BzeroReferenceTrajectory(), DualBzeroReferenceTrajectory::DualBzeroReferenceTrajectory(), DualReferenceTrajectory::DualReferenceTrajectory(), isValid(), ReferenceTrajectory::ReferenceTrajectory(), and TwoBodyDecayTrajectory::TwoBodyDecayTrajectory().