CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
EgammaHLTGsfTrackVarProducer::TrackExtrapolator Class Reference

Public Member Functions

GlobalVector extrapolateTrackMomToPoint (const reco::GsfTrack &gsfTrack, const GlobalPoint &pointToExtrapTo)
 
GlobalPoint extrapolateTrackPosToPoint (const reco::GsfTrack &gsfTrack, const GlobalPoint &pointToExtrapTo)
 
const MultiTrajectoryStateTransformmtsTransform () const
 
TrackExtrapolatoroperator= (const TrackExtrapolator &rhs)
 
void setup (const edm::EventSetup &iSetup)
 
edm::ESHandle< TrackerGeometrytrackerGeomHandle () const
 
 TrackExtrapolator ()
 
 TrackExtrapolator (const TrackExtrapolator &rhs)
 
 ~TrackExtrapolator ()
 

Private Attributes

unsigned long long cacheIDMagField_
 
unsigned long long cacheIDTDGeom_
 
edm::ESHandle< MagneticFieldmagField_
 
const MultiTrajectoryStateTransformmtsTransform_
 
edm::ESHandle< TrackerGeometrytrackerHandle_
 

Detailed Description

Definition at line 62 of file EgammaHLTGsfTrackVarProducer.cc.

Constructor & Destructor Documentation

EgammaHLTGsfTrackVarProducer::TrackExtrapolator::TrackExtrapolator ( )
inline
EgammaHLTGsfTrackVarProducer::TrackExtrapolator::TrackExtrapolator ( const TrackExtrapolator rhs)

Definition at line 291 of file EgammaHLTGsfTrackVarProducer.cc.

References mtsTransform_.

293  : cacheIDTDGeom_(rhs.cacheIDTDGeom_),
294  cacheIDMagField_(rhs.cacheIDMagField_),
295  magField_(rhs.magField_),
296  trackerHandle_(rhs.trackerHandle_) {
297  if (rhs.mtsTransform_)
298  mtsTransform_ = new MultiTrajectoryStateTransform(*rhs.mtsTransform_);
299  else
300  mtsTransform_ = nullptr;
301 }
EgammaHLTGsfTrackVarProducer::TrackExtrapolator::~TrackExtrapolator ( )
inline

Member Function Documentation

GlobalVector EgammaHLTGsfTrackVarProducer::TrackExtrapolator::extrapolateTrackMomToPoint ( const reco::GsfTrack gsfTrack,
const GlobalPoint pointToExtrapTo 
)

Definition at line 350 of file EgammaHLTGsfTrackVarProducer.cc.

References DEFINE_FWK_MODULE, MultiTrajectoryStateTransform::extrapolatedState(), MultiTrajectoryStateTransform::innerStateOnSurface(), multiTrajectoryStateMode::momentumFromModeCartesian(), and mtsTransform().

Referenced by ~TrackExtrapolator().

351  {
353  TrajectoryStateOnSurface posTSOS = mtsTransform()->extrapolatedState(innTSOS, pointToExtrapTo);
354  GlobalVector extrapolatedMom;
355  multiTrajectoryStateMode::momentumFromModeCartesian(posTSOS, extrapolatedMom);
356  return extrapolatedMom;
357 }
const MultiTrajectoryStateTransform * mtsTransform() const
TrajectoryStateOnSurface extrapolatedState(const TrajectoryStateOnSurface tsos, const GlobalPoint &point) const
TrajectoryStateOnSurface innerStateOnSurface(const reco::GsfTrack &tk) const
bool momentumFromModeCartesian(TrajectoryStateOnSurface const &tsos, GlobalVector &momentum)
GlobalPoint EgammaHLTGsfTrackVarProducer::TrackExtrapolator::extrapolateTrackPosToPoint ( const reco::GsfTrack gsfTrack,
const GlobalPoint pointToExtrapTo 
)

Definition at line 341 of file EgammaHLTGsfTrackVarProducer.cc.

References MultiTrajectoryStateTransform::extrapolatedState(), MultiTrajectoryStateTransform::innerStateOnSurface(), mtsTransform(), and multiTrajectoryStateMode::positionFromModeCartesian().

Referenced by EgammaHLTGsfTrackVarProducer::produce(), and ~TrackExtrapolator().

342  {
344  TrajectoryStateOnSurface posTSOS = mtsTransform()->extrapolatedState(innTSOS, pointToExtrapTo);
345  GlobalPoint extrapolatedPos;
346  multiTrajectoryStateMode::positionFromModeCartesian(posTSOS, extrapolatedPos);
347  return extrapolatedPos;
348 }
const MultiTrajectoryStateTransform * mtsTransform() const
TrajectoryStateOnSurface extrapolatedState(const TrajectoryStateOnSurface tsos, const GlobalPoint &point) const
bool positionFromModeCartesian(TrajectoryStateOnSurface const &tsos, GlobalPoint &position)
TrajectoryStateOnSurface innerStateOnSurface(const reco::GsfTrack &tk) const
const MultiTrajectoryStateTransform* EgammaHLTGsfTrackVarProducer::TrackExtrapolator::mtsTransform ( ) const
inline
EgammaHLTGsfTrackVarProducer::TrackExtrapolator * EgammaHLTGsfTrackVarProducer::TrackExtrapolator::operator= ( const TrackExtrapolator rhs)

Definition at line 303 of file EgammaHLTGsfTrackVarProducer.cc.

References cacheIDMagField_, cacheIDTDGeom_, magField_, mtsTransform_, and trackerHandle_.

Referenced by ~TrackExtrapolator().

304  {
305  if (this != &rhs) { //just to ensure we're not copying ourselves
306  cacheIDTDGeom_ = rhs.cacheIDTDGeom_;
307  cacheIDMagField_ = rhs.cacheIDMagField_;
308  magField_ = rhs.magField_;
309  trackerHandle_ = rhs.trackerHandle_;
310 
311  delete mtsTransform_;
312  if (rhs.mtsTransform_)
313  mtsTransform_ = new MultiTrajectoryStateTransform(*rhs.mtsTransform_);
314  else
315  mtsTransform_ = nullptr;
316  }
317  return this;
318 }
void EgammaHLTGsfTrackVarProducer::TrackExtrapolator::setup ( const edm::EventSetup iSetup)

Definition at line 320 of file EgammaHLTGsfTrackVarProducer.cc.

References edm::eventsetup::EventSetupRecord::cacheIdentifier(), cacheIDMagField_, cacheIDTDGeom_, edm::EventSetup::get(), magField_, mtsTransform_, edm::ESHandle< T >::product(), and trackerHandle_.

Referenced by EgammaHLTGsfTrackVarProducer::produce(), and ~TrackExtrapolator().

320  {
321  bool updateField(false);
323  updateField = true;
324  cacheIDMagField_ = iSetup.get<IdealMagneticFieldRecord>().cacheIdentifier();
325  iSetup.get<IdealMagneticFieldRecord>().get(magField_);
326  }
327 
328  bool updateGeometry(false);
330  updateGeometry = true;
331  cacheIDTDGeom_ = iSetup.get<TrackerDigiGeometryRecord>().cacheIdentifier();
333  }
334 
335  if (updateField || updateGeometry || !mtsTransform_) {
336  delete mtsTransform_;
338  }
339 }
unsigned long long cacheIdentifier() const
T get() const
Definition: EventSetup.h:73
T const * product() const
Definition: ESHandle.h:86
edm::ESHandle<TrackerGeometry> EgammaHLTGsfTrackVarProducer::TrackExtrapolator::trackerGeomHandle ( ) const
inline

Definition at line 82 of file EgammaHLTGsfTrackVarProducer.cc.

References trackerHandle_.

82 { return trackerHandle_; }

Member Data Documentation

unsigned long long EgammaHLTGsfTrackVarProducer::TrackExtrapolator::cacheIDMagField_
private

Definition at line 64 of file EgammaHLTGsfTrackVarProducer.cc.

Referenced by operator=(), and setup().

unsigned long long EgammaHLTGsfTrackVarProducer::TrackExtrapolator::cacheIDTDGeom_
private

Definition at line 63 of file EgammaHLTGsfTrackVarProducer.cc.

Referenced by operator=(), and setup().

edm::ESHandle<MagneticField> EgammaHLTGsfTrackVarProducer::TrackExtrapolator::magField_
private

Definition at line 66 of file EgammaHLTGsfTrackVarProducer.cc.

Referenced by operator=(), and setup().

const MultiTrajectoryStateTransform* EgammaHLTGsfTrackVarProducer::TrackExtrapolator::mtsTransform_
private
edm::ESHandle<TrackerGeometry> EgammaHLTGsfTrackVarProducer::TrackExtrapolator::trackerHandle_
private

Definition at line 67 of file EgammaHLTGsfTrackVarProducer.cc.

Referenced by operator=(), setup(), and trackerGeomHandle().