CMS 3D CMS Logo

BzeroReferenceTrajectory Class Reference

Class implementing the reference trajectory of a single particle in the absence of a magnetic field (B=0, hence the name), i.e. More...

#include <Alignment/ReferenceTrajectories/interface/BzeroReferenceTrajectory.h>

Inheritance diagram for BzeroReferenceTrajectory:

ReferenceTrajectory ReferenceTrajectoryBase ReferenceCounted

List of all members.

Public Member Functions

 BzeroReferenceTrajectory (const TrajectoryStateOnSurface &referenceTsos, const TransientTrackingRecHit::ConstRecHitContainer &recHits, bool hitsAreReverse, const MagneticField *magField, MaterialEffects materialEffects=combined, PropagationDirection propDir=alongMomentum, double mass=0.10565836, double momentumEstimate=1.5)
 Constructor with Tsos at first hit (in physical order) and list of hits [if (hitsAreReverse) ==> order of hits is in opposite direction compared to the flight of particle, but note that BzeroReferenceTrajectory::recHits() returns the hits always in order of flight], the material effects to be considered and a particle mass and a momentum extimate, the magnetic field of the event is needed for propagations etc.
virtual BzeroReferenceTrajectoryclone () const
virtual ~BzeroReferenceTrajectory ()

Private Attributes

double theMomentumEstimate


Detailed Description

Class implementing the reference trajectory of a single particle in the absence of a magnetic field (B=0, hence the name), i.e.

a straight track with only 4 parameters (no curvature parameter).

Given the TrajectoryStateOnSurface at the first hit and the list of all hits the local measurements, derivatives etc. as described in (and accessed via) ReferenceTrajectoryBase are calculated.

The covariance-matrix of the measurements may include effects of multiple-scattering or energy-loss effects or both. This can be defined in the constructor via the variable 'materialEffects (cf. ReferenceTrajectoryBase):

materialEffects = none/multipleScattering/energyLoss/combined

Since no a-priori momentum estimate exists, but is needed for the calculation of material effects, a fixed value is used (e.g. representing the average momentum of the cosmics spectrum).

By default, the mass is assumed to be the muon-mass, but can be changed via a constructor argument.

LIMITATIONS: So far all input hits have to be valid, but invalid hits would be needed to take into account the material effects in them...

Definition at line 36 of file BzeroReferenceTrajectory.h.


Constructor & Destructor Documentation

BzeroReferenceTrajectory::BzeroReferenceTrajectory ( const TrajectoryStateOnSurface referenceTsos,
const TransientTrackingRecHit::ConstRecHitContainer recHits,
bool  hitsAreReverse,
const MagneticField magField,
MaterialEffects  materialEffects = combined,
PropagationDirection  propDir = alongMomentum,
double  mass = 0.10565836,
double  momentumEstimate = 1.5 
)

Constructor with Tsos at first hit (in physical order) and list of hits [if (hitsAreReverse) ==> order of hits is in opposite direction compared to the flight of particle, but note that BzeroReferenceTrajectory::recHits() returns the hits always in order of flight], the material effects to be considered and a particle mass and a momentum extimate, the magnetic field of the event is needed for propagations etc.

Definition at line 11 of file BzeroReferenceTrajectory.cc.

References LocalTrajectoryParameters::charge(), ReferenceTrajectory::construct(), it, TrajectoryStateOnSurface::localError(), TrajectoryStateOnSurface::localParameters(), LocalTrajectoryParameters::mixedFormatVector(), LocalTrajectoryParameters::pzSign(), TrajectoryStateOnSurface::surface(), ReferenceTrajectory::surfaceSide(), ReferenceTrajectoryBase::theDerivatives, theMomentumEstimate, ReferenceTrajectoryBase::theParameters, and ReferenceTrajectoryBase::theValidityFlag.

Referenced by clone().

00017                                                                                          :
00018   ReferenceTrajectory( refTsos.localParameters().mixedFormatVector().kSize, recHits.size() ),
00019   theMomentumEstimate( momentumEstimate )
00020 {
00021   // no check against magField == 0
00022 
00023   // No estimate for momentum of cosmics available -> set to default value.
00024   theParameters = asHepVector<5>( refTsos.localParameters().mixedFormatVector() );
00025   theParameters[0] = 1./theMomentumEstimate;
00026 
00027   LocalTrajectoryParameters locParamWithFixedMomentum( theParameters,
00028                                                        refTsos.localParameters().pzSign(),
00029                                                        refTsos.localParameters().charge() );
00030 
00031   const TrajectoryStateOnSurface refTsosWithFixedMomentum(locParamWithFixedMomentum, refTsos.localError(),
00032                                                           refTsos.surface(), magField,
00033                                                           surfaceSide(propDir));
00034 
00035   if (hitsAreReverse)
00036   {
00037     TransientTrackingRecHit::ConstRecHitContainer fwdRecHits;
00038     fwdRecHits.reserve(recHits.size());
00039 
00040     for (TransientTrackingRecHit::ConstRecHitContainer::const_reverse_iterator it=recHits.rbegin(); it != recHits.rend(); ++it)
00041       fwdRecHits.push_back(*it);
00042 
00043     theValidityFlag = this->construct(refTsosWithFixedMomentum, fwdRecHits, mass, materialEffects, propDir, magField);
00044   } else {
00045     theValidityFlag = this->construct(refTsosWithFixedMomentum, recHits, mass, materialEffects, propDir, magField);
00046   }
00047 
00048   // Exclude momentum from the parameters and also the derivatives of the measurements w.r.t. the momentum.
00049   theParameters = theParameters.sub( 2, 5 );
00050   theDerivatives = theDerivatives.sub( 1, theDerivatives.num_row(), 2, 5 );
00051 }
}

virtual BzeroReferenceTrajectory::~BzeroReferenceTrajectory (  )  [inline, virtual]

Definition at line 56 of file BzeroReferenceTrajectory.h.

00056 {}


Member Function Documentation

virtual BzeroReferenceTrajectory* BzeroReferenceTrajectory::clone ( void   )  const [inline, virtual]

Reimplemented from ReferenceTrajectory.

Definition at line 58 of file BzeroReferenceTrajectory.h.

References BzeroReferenceTrajectory().

00059     { return new BzeroReferenceTrajectory(*this); }


Member Data Documentation

double BzeroReferenceTrajectory::theMomentumEstimate [private]

Definition at line 63 of file BzeroReferenceTrajectory.h.

Referenced by BzeroReferenceTrajectory().


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