CMS 3D CMS Logo

VolumeMaterialEffectsUpdator Class Reference

Computes an updated TrajectoryStateOnSurface after applying estimated material effects. More...

#include <TrackingTools/MaterialEffects/interface/VolumeMaterialEffectsUpdator.h>

List of all members.

Public Types

typedef
VolumeMaterialEffectsEstimate 
Estimate
typedef std::vector< const
VolumeMaterialEffectsEstimate * > 
EstimateContainer

Public Member Functions

TrajectoryStateOnSurface updateState (const TrajectoryStateOnSurface &TSoS, const PropagationDirection propDir, const EstimateContainer &estimates) const
 Updates TrajectoryStateOnSurface with several material effects (momentum and covariance matrix are potentially affected.
TrajectoryStateOnSurface updateState (const TrajectoryStateOnSurface &TSoS, const PropagationDirection propDir, const Estimate &estimate) const
 Updates TrajectoryStateOnSurface with material effects (momentum and covariance matrix are potentially affected.
 VolumeMaterialEffectsUpdator ()


Detailed Description

Computes an updated TrajectoryStateOnSurface after applying estimated material effects.

Definition at line 16 of file VolumeMaterialEffectsUpdator.h.


Member Typedef Documentation

typedef VolumeMaterialEffectsEstimate VolumeMaterialEffectsUpdator::Estimate

Definition at line 19 of file VolumeMaterialEffectsUpdator.h.

typedef std::vector<const VolumeMaterialEffectsEstimate*> VolumeMaterialEffectsUpdator::EstimateContainer

Definition at line 20 of file VolumeMaterialEffectsUpdator.h.


Constructor & Destructor Documentation

VolumeMaterialEffectsUpdator::VolumeMaterialEffectsUpdator (  )  [inline]

Definition at line 23 of file VolumeMaterialEffectsUpdator.h.

00023 {}


Member Function Documentation

TrajectoryStateOnSurface VolumeMaterialEffectsUpdator::updateState ( const TrajectoryStateOnSurface TSoS,
const PropagationDirection  propDir,
const EstimateContainer estimates 
) const

Updates TrajectoryStateOnSurface with several material effects (momentum and covariance matrix are potentially affected.

Definition at line 20 of file VolumeMaterialEffectsUpdator.cc.

References alongMomentum, anyDirection, TrajectoryStateOnSurface::charge(), TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::globalParameters(), TrajectoryStateOnSurface::globalPosition(), TrajectoryStateOnSurface::hasError(), i, TrajectoryStateOnSurface::localError(), TrajectoryStateOnSurface::localParameters(), lp, GlobalTrajectoryParameters::magneticField(), TrajectoryStateOnSurface::magneticField(), LocalTrajectoryError::matrix(), TrajectoryStateOnSurface::surface(), TrajectoryStateOnSurface::surfaceSide(), and LocalTrajectoryParameters::updateP().

00023 {
00024   // Sanity check on propagation direction
00025   if ( propDir==anyDirection )  return TrajectoryStateOnSurface();
00026   //
00027   // Update momentum. In case of failure: return invalid state
00028   //
00029   double dpSum(0.);
00030   for ( EstimateContainer::const_iterator i=estimates.begin();
00031         i!=estimates.end(); ++i ) {
00032     double dp = (**i).deltaP();
00033     if ( propDir==alongMomentum )  dpSum += dp;
00034     else  dpSum -= dp;
00035   }
00036   LocalTrajectoryParameters lp = tsos.localParameters();
00037   if ( !lp.updateP(dpSum) )  return TrajectoryStateOnSurface();
00038   //
00039   // Update covariance matrix?
00040   //
00041   if ( tsos.hasError() ) {
00042 //     AlgebraicSymMatrix55 eloc(tsos.localError().matrix());
00043     AlgebraicSymMatrix55 matCov;
00044     for ( EstimateContainer::const_iterator i=estimates.begin();
00045           i!=estimates.end(); ++i ) {
00046       matCov += (**i).deltaLocalError();
00047     }
00048     //
00049     // transform to local system of trackfor the time being: brute force
00050     // could / should try to construct the matrix in curvilinear
00051     //
00052     // Plane consistent with material effects estimate (perp. to track at ref. pos.)
00053     ReferenceCountingPointer<BoundPlane> 
00054       perpPlane(PerpendicularBoundPlaneBuilder()(tsos.globalPosition(),
00055                                                  tsos.globalMomentum()));
00056     // Parameters need to construct Jacobian (ref. point and ref. direction)
00057     LocalTrajectoryParameters perpPars(LocalPoint(0.,0.,0.),
00058                                        LocalVector(0.,0.,1.),
00059                                        tsos.charge());
00060     // Jacobian to go from perpendicular plane to curvilinear
00061     JacobianLocalToCurvilinear jacLocToCurv(*perpPlane,perpPars,*tsos.magneticField());
00062     // Jacobian to go from curvilinear to local frame of the reference tsos
00063     JacobianCurvilinearToLocal jacCurvToLoc(tsos.surface(),tsos.localParameters(),
00064                                             *tsos.magneticField());
00065     // Combined Jacobian
00066     AlgebraicMatrix55 jac(jacLocToCurv.jacobian()*jacCurvToLoc.jacobian());
00067     // Add transformed material effects error matrix to the one from the TSOS
00068     AlgebraicSymMatrix55 eloc(tsos.localError().matrix());
00069     eloc += ROOT::Math::Similarity(jac,matCov);
00070     return TrajectoryStateOnSurface(lp,LocalTrajectoryError(eloc),tsos.surface(),
00071                                     &(tsos.globalParameters().magneticField()),
00072                                     tsos.surfaceSide());
00073   }
00074   else {
00075     return TrajectoryStateOnSurface(lp,tsos.surface(),
00076                                     &(tsos.globalParameters().magneticField()),
00077                                     tsos.surfaceSide());
00078   }
00079 }

TrajectoryStateOnSurface VolumeMaterialEffectsUpdator::updateState ( const TrajectoryStateOnSurface TSoS,
const PropagationDirection  propDir,
const Estimate estimate 
) const

Updates TrajectoryStateOnSurface with material effects (momentum and covariance matrix are potentially affected.

Definition at line 12 of file VolumeMaterialEffectsUpdator.cc.

00015 {
00016   return updateState(tsos,propDir,EstimateContainer(1,&estimate));
00017 }


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:35:46 2009 for CMSSW by  doxygen 1.5.4