#include <Alignment/ReferenceTrajectories/interface/BzeroReferenceTrajectory.h>
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 BzeroReferenceTrajectory * | clone () const |
virtual | ~BzeroReferenceTrajectory () |
Private Attributes | |
double | theMomentumEstimate |
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.
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] |
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); }
double BzeroReferenceTrajectory::theMomentumEstimate [private] |