CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Member Functions | Private Member Functions | Private Attributes
FastTSGFromPropagation Class Reference

#include <FastTSGFromPropagation.h>

Inheritance diagram for FastTSGFromPropagation:
TrackerSeedGenerator

Classes

struct  increasingEstimate
 
struct  isInvalid
 

Public Member Functions

 FastTSGFromPropagation (const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
 constructor More...
 
 FastTSGFromPropagation (const edm::ParameterSet &par, const MuonServiceProxy *, edm::ConsumesCollector &iC)
 
void init (const MuonServiceProxy *)
 initialize More...
 
void setEvent (const edm::Event &)
 set an event More...
 
void trackerSeeds (const TrackCand &, const TrackingRegion &, const TrackerTopology *tTopo, std::vector< TrajectorySeed > &)
 generate seed(s) for a track More...
 
virtual ~FastTSGFromPropagation ()
 destructor More...
 
- Public Member Functions inherited from TrackerSeedGenerator
const edm::EventgetEvent () const
 
 TrackerSeedGenerator ()
 
virtual void trackerSeeds (const TrackCand &, const TrackingRegion &, const TrackerTopology *, BTSeedCollection &)
 
virtual ~TrackerSeedGenerator ()
 destructor More...
 

Private Member Functions

void adjust (FreeTrajectoryState &) const
 adjust the error matrix of the FTS More...
 
void adjust (TrajectoryStateOnSurface &) const
 adjust the error matrix of the TSOS More...
 
TrajectorySeed createSeed (const TrajectoryStateOnSurface &, const DetId &) const
 create a hitless seed from a trajectory state More...
 
TrajectorySeed createSeed (const TrajectoryStateOnSurface &tsos, const edm::OwnVector< TrackingRecHit > &container, const DetId &id) const
 create a seed from a trajectory state More...
 
double dxyDis (const TrajectoryStateOnSurface &tsos) const
 
const Chi2MeasurementEstimatorestimator () const
 
std::vector
< TrajectoryMeasurement
findMeasurements (const DetLayer *, const TrajectoryStateOnSurface &) const
 look for measurements on the first compatible layer More...
 
std::vector
< TrajectoryMeasurement
findMeasurements_new (const DetLayer *, const TrajectoryStateOnSurface &) const
 look for measurements on the first compatible layer (faster way) More...
 
void getRescalingFactor (const TrackCand &staMuon)
 
TrajectoryStateOnSurface innerState (const TrackCand &) const
 
TrajectoryStateOnSurface outerTkState (const TrackCand &) const
 
bool passSelection (const TrajectoryStateOnSurface &) const
 check some quantity and beam-spot compatibility and decide to continue More...
 
edm::ESHandle< Propagatorpropagator () const
 
void stateOnDet (const TrajectoryStateOnSurface &ts, unsigned int detid, PTrajectoryStateOnDet &pts) const
 A mere copy (without memory leak) of an existing tracking method. More...
 
const LayerMeasurementstkLayerMeasurements () const
 
const TrajectoryStateUpdatorupdator () const
 
void validMeasurements (std::vector< TrajectoryMeasurement > &) const
 select valid measurements More...
 
double zDis (const TrajectoryStateOnSurface &tsos) const
 

Private Attributes

edm::EDGetTokenT< reco::BeamSpotbeamSpot_
 
edm::Handle
< FastTrackerRecHitCombinationCollection
recHitCombinations
 
edm::EDGetTokenT
< FastTrackerRecHitCombinationCollection
recHitCombinationsToken_
 
bool theAdjustAtIp
 
edm::Handle< reco::BeamSpottheBeamSpot
 
unsigned long long theCacheId_MT
 
unsigned long long theCacheId_TG
 
std::string theCategory
 
const edm::ParameterSet theConfig
 
std::unique_ptr< MuonErrorMatrixtheErrorMatrixAdjuster
 
std::unique_ptr< const
Chi2MeasurementEstimator
theEstimator
 
double theFixedErrorRescaling
 
double theFlexErrorRescaling
 
const TrackerGeometrytheGeometry
 
double theMaxChi2
 
edm::ESHandle< MeasurementTrackertheMeasTracker
 
edm::Handle
< MeasurementTrackerEvent
theMeasTrackerEvent
 
edm::EDGetTokenT
< MeasurementTrackerEvent
theMeasurementTrackerEventToken_
 
std::unique_ptr< const
DirectTrackerNavigation
theNavigation
 
std::string thePropagatorName
 
std::string theResetMethod
 
bool theSelectStateFlag
 
const MuonServiceProxytheService
 
double theSigmaZ
 
edm::EDGetTokenT
< edm::SimTrackContainer
theSimTrackCollectionToken_
 
edm::Handle
< edm::SimTrackContainer
theSimTracks
 
LayerMeasurements theTkLayerMeasurements
 
edm::ESHandle
< GeometricSearchTracker
theTracker
 
edm::ESHandle
< TransientTrackingRecHitBuilder
theTTRHBuilder
 
bool theUpdateStateFlag
 
std::unique_ptr< const
TrajectoryStateUpdator
theUpdator
 
bool theUseVertexStateFlag
 

Additional Inherited Members

- Public Types inherited from TrackerSeedGenerator
typedef std::vector
< TrajectorySeed
BTSeedCollection
 
typedef std::pair< const
Trajectory *, reco::TrackRef
TrackCand
 
- Protected Attributes inherited from TrackerSeedGenerator
const edm::EventtheEvent
 
const MuonServiceProxytheProxyService
 

Detailed Description

Emulate TSGFromPropagation in RecoMuon

Author
Hwidong Yoo - Purdue University

Tracker Seed Generator by propagating and updating a standAlone muon to the first 2 (or 1) rechits it meets in tracker system

Emulate TSGFromPropagation in RecoMuon

Author
Hwidong Yoo - Purdue University

Definition at line 50 of file FastTSGFromPropagation.h.

Constructor & Destructor Documentation

FastTSGFromPropagation::FastTSGFromPropagation ( const edm::ParameterSet pset,
edm::ConsumesCollector iC 
)

constructor

Definition at line 47 of file FastTSGFromPropagation.cc.

47  : FastTSGFromPropagation(iConfig, nullptr, iC) {
48 }
FastTSGFromPropagation(const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
constructor
FastTSGFromPropagation::FastTSGFromPropagation ( const edm::ParameterSet par,
const MuonServiceProxy service,
edm::ConsumesCollector iC 
)

Definition at line 50 of file FastTSGFromPropagation.cc.

50  :
51  theCategory("FastSimulation|Muons|FastTSGFromPropagation"),
55  beamSpot_(iC.consumes<reco::BeamSpot>(iConfig.getParameter<edm::InputTag>("beamSpot"))),
56  theMeasurementTrackerEventToken_(iC.consumes<MeasurementTrackerEvent>(iConfig.getParameter<edm::InputTag>("MeasurementTrackerEvent"))) {
57 }
std::unique_ptr< const TrajectoryStateUpdator > theUpdator
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
T getParameter(std::string const &) const
edm::EDGetTokenT< edm::SimTrackContainer > theSimTrackCollectionToken_
edm::ESHandle< GeometricSearchTracker > theTracker
const MuonServiceProxy * theService
edm::EDGetTokenT< MeasurementTrackerEvent > theMeasurementTrackerEventToken_
const edm::ParameterSet theConfig
LayerMeasurements theTkLayerMeasurements
std::unique_ptr< const DirectTrackerNavigation > theNavigation
edm::EDGetTokenT< reco::BeamSpot > beamSpot_
std::vector< FastTrackerRecHitCombination > FastTrackerRecHitCombinationCollection
std::unique_ptr< const Chi2MeasurementEstimator > theEstimator
edm::EDGetTokenT< FastTrackerRecHitCombinationCollection > recHitCombinationsToken_
std::vector< SimTrack > SimTrackContainer
FastTSGFromPropagation::~FastTSGFromPropagation ( )
virtual

destructor

Definition at line 59 of file FastTSGFromPropagation.cc.

References LogTrace, and theCategory.

59  {
60  LogTrace(theCategory) << " FastTSGFromPropagation dtor called ";
61 }
#define LogTrace(id)

Member Function Documentation

void FastTSGFromPropagation::adjust ( FreeTrajectoryState state) const
private

adjust the error matrix of the FTS

Definition at line 507 of file FastTSGFromPropagation.cc.

References FreeTrajectoryState::curvilinearError(), FreeTrajectoryState::momentum(), MuonErrorMatrix::multiply(), FreeTrajectoryState::parameters(), FreeTrajectoryState::rescaleError(), theErrorMatrixAdjuster, theFixedErrorRescaling, theFlexErrorRescaling, and theResetMethod.

Referenced by innerState(), and outerTkState().

507  {
508 
509  //rescale the error
510  if ( theResetMethod == "discreate" ) {
512  return;
513  }
514 
515  //rescale the error
516  if ( theResetMethod == "fixed" || !theErrorMatrixAdjuster) {
518  return;
519  }
520 
522  CurvilinearTrajectoryError sfMat = theErrorMatrixAdjuster->get(state.momentum());//FIXME with position
523  MuonErrorMatrix::multiply(oMat, sfMat);
524 
525  state = FreeTrajectoryState(state.parameters(),
526  oMat);
527 }
const GlobalTrajectoryParameters & parameters() const
const CurvilinearTrajectoryError & curvilinearError() const
static void multiply(CurvilinearTrajectoryError &initial_error, const CurvilinearTrajectoryError &scale_error)
multiply term by term the two matrix
GlobalVector momentum() const
void rescaleError(double factor)
std::unique_ptr< MuonErrorMatrix > theErrorMatrixAdjuster
void FastTSGFromPropagation::adjust ( TrajectoryStateOnSurface state) const
private

adjust the error matrix of the TSOS

Definition at line 529 of file FastTSGFromPropagation.cc.

References TrajectoryStateOnSurface::curvilinearError(), TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::globalParameters(), MuonErrorMatrix::multiply(), TrajectoryStateOnSurface::rescaleError(), TrajectoryStateOnSurface::surface(), TrajectoryStateOnSurface::surfaceSide(), theErrorMatrixAdjuster, theFixedErrorRescaling, theFlexErrorRescaling, theResetMethod, and TrajectoryStateOnSurface::weight().

529  {
530 
531  //rescale the error
532  if ( theResetMethod == "discreate" ) {
534  return;
535  }
536 
537  if ( theResetMethod == "fixed" || !theErrorMatrixAdjuster) {
539  return;
540  }
541 
543  CurvilinearTrajectoryError sfMat = theErrorMatrixAdjuster->get(state.globalMomentum());//FIXME with position
544  MuonErrorMatrix::multiply(oMat, sfMat);
545 
546  state = TrajectoryStateOnSurface(state.weight(),
547  state.globalParameters(),
548  oMat,
549  state.surface(),
550  state.surfaceSide());
551 }
const CurvilinearTrajectoryError & curvilinearError() const
const SurfaceType & surface() const
SurfaceSide surfaceSide() const
Position relative to material, defined relative to momentum vector.
static void multiply(CurvilinearTrajectoryError &initial_error, const CurvilinearTrajectoryError &scale_error)
multiply term by term the two matrix
const GlobalTrajectoryParameters & globalParameters() const
GlobalVector globalMomentum() const
std::unique_ptr< MuonErrorMatrix > theErrorMatrixAdjuster
TrajectorySeed FastTSGFromPropagation::createSeed ( const TrajectoryStateOnSurface tsos,
const DetId id 
) const
private

create a hitless seed from a trajectory state

Definition at line 420 of file FastTSGFromPropagation.cc.

Referenced by trackerSeeds().

420  {
421 
423  return createSeed(tsos, container, id);
424 
425 }
TrajectorySeed createSeed(const TrajectoryStateOnSurface &, const DetId &) const
create a hitless seed from a trajectory state
TrajectorySeed FastTSGFromPropagation::createSeed ( const TrajectoryStateOnSurface tsos,
const edm::OwnVector< TrackingRecHit > &  container,
const DetId id 
) const
private

create a seed from a trajectory state

Definition at line 427 of file FastTSGFromPropagation.cc.

References oppositeToMomentum, and trajectoryStateTransform::persistentState().

427  {
428 
430  return TrajectorySeed(seedTSOS,container,oppositeToMomentum);
431 
432 }
PTrajectoryStateOnDet persistentState(const TrajectoryStateOnSurface &ts, unsigned int detid)
double FastTSGFromPropagation::dxyDis ( const TrajectoryStateOnSurface tsos) const
private
const Chi2MeasurementEstimator* FastTSGFromPropagation::estimator ( void  ) const
inlineprivate

Definition at line 84 of file FastTSGFromPropagation.h.

References theEstimator.

Referenced by findMeasurements(), findMeasurements_new(), and trackerSeeds().

84 { return theEstimator.get(); }
std::unique_ptr< const Chi2MeasurementEstimator > theEstimator
std::vector< TrajectoryMeasurement > FastTSGFromPropagation::findMeasurements ( const DetLayer nl,
const TrajectoryStateOnSurface staState 
) const
private

look for measurements on the first compatible layer

Definition at line 468 of file FastTSGFromPropagation.cc.

References estimator(), LayerMeasurements::measurements(), propagator(), mps_fire::result, tkLayerMeasurements(), and validMeasurements().

468  {
469 
470  std::vector<TrajectoryMeasurement> result = tkLayerMeasurements()->measurements((*nl), staState, *propagator(), *estimator());
471  validMeasurements(result);
472  return result;
473 }
std::vector< TrajectoryMeasurement > measurements(const DetLayer &layer, const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
const LayerMeasurements * tkLayerMeasurements() const
void validMeasurements(std::vector< TrajectoryMeasurement > &) const
select valid measurements
const Chi2MeasurementEstimator * estimator() const
tuple result
Definition: mps_fire.py:83
edm::ESHandle< Propagator > propagator() const
std::vector< TrajectoryMeasurement > FastTSGFromPropagation::findMeasurements_new ( const DetLayer nl,
const TrajectoryStateOnSurface staState 
) const
private

look for measurements on the first compatible layer (faster way)

Definition at line 443 of file FastTSGFromPropagation.cc.

References GeometricSearchDet::compatibleDets(), estimator(), propagator(), mps_fire::result, and theMeasTrackerEvent.

Referenced by trackerSeeds().

443  {
444 
445  std::vector<TrajectoryMeasurement> result;
446 
447  std::vector<DetLayer::DetWithState> compatDets = nl->compatibleDets(staState, *propagator(), *estimator());
448  if ( compatDets.empty() ) return result;
449 
450  for (std::vector<DetLayer::DetWithState>::const_iterator idws = compatDets.begin(); idws != compatDets.end(); ++idws) {
451  if ( idws->second.isValid() && (idws->first) ) {
452  std::vector<TrajectoryMeasurement> tmptm =
453  theMeasTrackerEvent->idToDet(idws->first->geographicalId()).fastMeasurements(idws->second, idws->second, *propagator(), *estimator());
454  //validMeasurements(tmptm);
455 // if ( tmptm.size() > 2 ) {
456 // std::stable_sort(tmptm.begin(),tmptm.end(),increasingEstimate());
457 // result.insert(result.end(),tmptm.begin(), tmptm.begin()+2);
458 // } else {
459  result.insert(result.end(),tmptm.begin(), tmptm.end());
460 // }
461  }
462  }
463 
464  return result;
465 
466 }
edm::Handle< MeasurementTrackerEvent > theMeasTrackerEvent
virtual std::vector< DetWithState > compatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
const Chi2MeasurementEstimator * estimator() const
tuple result
Definition: mps_fire.py:83
edm::ESHandle< Propagator > propagator() const
void FastTSGFromPropagation::getRescalingFactor ( const TrackCand staMuon)
private

Definition at line 498 of file FastTSGFromPropagation.cc.

References EnergyCorrector::pt, and theFlexErrorRescaling.

Referenced by trackerSeeds().

498  {
499  float pt = (staMuon.second)->pt();
500  if ( pt < 13.0 ) theFlexErrorRescaling = 3;
501  else if ( pt < 30.0 ) theFlexErrorRescaling = 5;
502  else theFlexErrorRescaling = 10;
503  return;
504 }
void FastTSGFromPropagation::init ( const MuonServiceProxy service)
virtual

initialize

Reimplemented from TrackerSeedGenerator.

Definition at line 286 of file FastTSGFromPropagation.cc.

References geometry, edm::ParameterSet::getParameter(), AlCaHLTBitMon_QueryRunRegistry::string, theAdjustAtIp, theCacheId_MT, theCacheId_TG, theConfig, theErrorMatrixAdjuster, theEstimator, theFixedErrorRescaling, theFlexErrorRescaling, theGeometry, theMaxChi2, theNavigation, thePropagatorName, theResetMethod, theSelectStateFlag, theService, theSigmaZ, theTracker, theTTRHBuilder, theUpdateStateFlag, theUpdator, and theUseVertexStateFlag.

286  {
287 
288  theMaxChi2 = theConfig.getParameter<double>("MaxChi2");
289 
290  theFixedErrorRescaling = theConfig.getParameter<double>("ErrorRescaling");
291 
292  theFlexErrorRescaling = 1.0;
293 
295 
296  if (theResetMethod != "discrete" && theResetMethod != "fixed" && theResetMethod != "matrix" ) {
297  edm::LogError("FastTSGFromPropagation")
298  <<"Wrong error rescaling method: "<<theResetMethod <<"\n"
299  <<"Possible choices are: discrete, fixed, matrix.\n"
300  <<"Use discrete method" <<std::endl;
301  theResetMethod = "discrete";
302  }
303 
305 
306  theCacheId_MT = 0;
307 
308  theCacheId_TG = 0;
309 
311 
312  theService = service;
313 
314  theUseVertexStateFlag = theConfig.getParameter<bool>("UseVertexState");
315 
316  theUpdateStateFlag = theConfig.getParameter<bool>("UpdateState");
317 
318  theSelectStateFlag = theConfig.getParameter<bool>("SelectState");
319 
320  theUpdator.reset(new KFUpdator());
321 
322  theSigmaZ = theConfig.getParameter<double>("SigmaZ");
323 
324  edm::ParameterSet errorMatrixPset = theConfig.getParameter<edm::ParameterSet>("errorMatrixPset");
325  if ( theResetMethod == "matrix" && !errorMatrixPset.empty()){
326  theAdjustAtIp = errorMatrixPset.getParameter<bool>("atIP");
327  theErrorMatrixAdjuster.reset(new MuonErrorMatrix(errorMatrixPset));
328  } else {
329  theAdjustAtIp =false;
330  theErrorMatrixAdjuster.reset();
331  }
332 
333  theService->eventSetup().get<TrackerRecoGeometryRecord>().get(theTracker);
335 
337  theService->eventSetup().get<TrackerDigiGeometryRecord>().get(geometry);
338  theGeometry = &(*geometry);
339 
340  theService->eventSetup().get<TransientRecHitRecord>().get("WithTrackAngle", theTTRHBuilder);
341 
342 }
std::unique_ptr< const TrajectoryStateUpdator > theUpdator
T getParameter(std::string const &) const
unsigned long long theCacheId_MT
edm::ESHandle< GeometricSearchTracker > theTracker
const MuonServiceProxy * theService
const edm::ParameterSet theConfig
const TrackerGeometry * theGeometry
std::unique_ptr< const DirectTrackerNavigation > theNavigation
ESHandle< TrackerGeometry > geometry
std::unique_ptr< const Chi2MeasurementEstimator > theEstimator
edm::ESHandle< TransientTrackingRecHitBuilder > theTTRHBuilder
unsigned long long theCacheId_TG
std::unique_ptr< MuonErrorMatrix > theErrorMatrixAdjuster
TrajectoryStateOnSurface FastTSGFromPropagation::innerState ( const TrackCand staMuon) const
private

Definition at line 381 of file FastTSGFromPropagation.cc.

References adjust(), alongMomentum, trajectoryStateTransform::innerStateOnSurface(), oppositeToMomentum, and theService.

Referenced by outerTkState().

381  {
382 
383  TrajectoryStateOnSurface innerTS;
384 
385  if ( staMuon.first && staMuon.first->isValid() ) {
386  if (staMuon.first->direction() == alongMomentum) {
387  innerTS = staMuon.first->firstMeasurement().updatedState();
388  }
389  else if (staMuon.first->direction() == oppositeToMomentum) {
390  innerTS = staMuon.first->lastMeasurement().updatedState();
391  }
392  } else {
393  innerTS = trajectoryStateTransform::innerStateOnSurface(*(staMuon.second),*theService->trackingGeometry(), &*theService->magneticField());
394  }
395  //rescale the error
396  adjust(innerTS);
397 
398  return innerTS;
399 
400 }
void adjust(FreeTrajectoryState &) const
adjust the error matrix of the FTS
const MuonServiceProxy * theService
TrajectoryStateOnSurface innerStateOnSurface(const reco::Track &tk, const TrackingGeometry &geom, const MagneticField *field, bool withErr=true)
TrajectoryStateOnSurface FastTSGFromPropagation::outerTkState ( const TrackCand staMuon) const
private

Definition at line 402 of file FastTSGFromPropagation.cc.

References adjust(), trajectoryStateTransform::initialFreeState(), innerState(), propagator(), mps_fire::result, theService, and theUseVertexStateFlag.

Referenced by trackerSeeds().

402  {
403 
405 
406  if ( theUseVertexStateFlag && staMuon.second->pt() > 1.0 ) {
407  FreeTrajectoryState iniState = trajectoryStateTransform::initialFreeState(*(staMuon.second), &*theService->magneticField());
408  //rescale the error at IP
409  adjust(iniState);
410 
411  StateOnTrackerBound fromInside(&*(theService->propagator("PropagatorWithMaterial")));
412  result = fromInside(iniState);
413  } else {
414  StateOnTrackerBound fromOutside(&*propagator());
415  result = fromOutside(innerState(staMuon));
416  }
417  return result;
418 }
void adjust(FreeTrajectoryState &) const
adjust the error matrix of the FTS
const MuonServiceProxy * theService
tuple result
Definition: mps_fire.py:83
TrajectoryStateOnSurface innerState(const TrackCand &) const
edm::ESHandle< Propagator > propagator() const
FreeTrajectoryState initialFreeState(const reco::Track &tk, const MagneticField *field, bool withErr=true)
bool FastTSGFromPropagation::passSelection ( const TrajectoryStateOnSurface tsos) const
private

check some quantity and beam-spot compatibility and decide to continue

Definition at line 475 of file FastTSGFromPropagation.cc.

References edm::HandleBase::isValid(), theBeamSpot, theSelectStateFlag, theSigmaZ, and zDis().

Referenced by trackerSeeds().

475  {
476  if ( !theSelectStateFlag ) return true;
477  else {
478  if ( theBeamSpot.isValid() ) {
479  return ( ( fabs(zDis(tsos) - theBeamSpot->z0() ) < theSigmaZ) );
480 
481  } else {
482  return ( ( fabs(zDis(tsos)) < theSigmaZ) );
483 // double theDxyCut = 100;
484 // return ( (zDis(tsos) < theSigmaZ) && (dxyDis(tsos) < theDxyCut) );
485  }
486  }
487 
488 }
edm::Handle< reco::BeamSpot > theBeamSpot
bool isValid() const
Definition: HandleBase.h:75
double zDis(const TrajectoryStateOnSurface &tsos) const
edm::ESHandle<Propagator> FastTSGFromPropagation::propagator ( ) const
inlineprivate

Definition at line 86 of file FastTSGFromPropagation.h.

References MuonServiceProxy::propagator(), thePropagatorName, and theService.

Referenced by findMeasurements(), findMeasurements_new(), outerTkState(), and trackerSeeds().

const MuonServiceProxy * theService
edm::ESHandle< Propagator > propagator(std::string propagatorName) const
get the propagator
void FastTSGFromPropagation::setEvent ( const edm::Event iEvent)
virtual

set an event

Reimplemented from TrackerSeedGenerator.

Definition at line 344 of file FastTSGFromPropagation.cc.

References beamSpot_, edm::Event::getByToken(), LogTrace, recHitCombinations, recHitCombinationsToken_, theBeamSpot, theCacheId_MT, theCacheId_TG, theCategory, theMeasTracker, theMeasTrackerEvent, theMeasurementTrackerEventToken_, theNavigation, theService, theSimTrackCollectionToken_, theSimTracks, theTkLayerMeasurements, theTracker, and theUpdateStateFlag.

344  {
345 
347 
348  // retrieve the MC truth (SimTracks)
351 
352  unsigned long long newCacheId_MT = theService->eventSetup().get<CkfComponentsRecord>().cacheIdentifier();
353 
354  if ( theUpdateStateFlag && newCacheId_MT != theCacheId_MT ) {
355  LogTrace(theCategory) << "Measurment Tracker Geometry changed!";
356  theCacheId_MT = newCacheId_MT;
357  theService->eventSetup().get<CkfComponentsRecord>().get(theMeasTracker);
358  }
359 
360  if ( theUpdateStateFlag ) {
363  }
364 
365  bool trackerGeomChanged = false;
366 
367  unsigned long long newCacheId_TG = theService->eventSetup().get<TrackerRecoGeometryRecord>().cacheIdentifier();
368 
369  if ( newCacheId_TG != theCacheId_TG ) {
370  LogTrace(theCategory) << "Tracker Reco Geometry changed!";
371  theCacheId_TG = newCacheId_TG;
372  theService->eventSetup().get<TrackerRecoGeometryRecord>().get(theTracker);
373  trackerGeomChanged = true;
374  }
375 
376  if ( trackerGeomChanged && (&*theTracker) ) {
378  }
379 }
edm::Handle< MeasurementTrackerEvent > theMeasTrackerEvent
edm::ESHandle< MeasurementTracker > theMeasTracker
edm::Handle< reco::BeamSpot > theBeamSpot
unsigned long long theCacheId_MT
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:462
edm::EDGetTokenT< edm::SimTrackContainer > theSimTrackCollectionToken_
edm::Handle< edm::SimTrackContainer > theSimTracks
edm::ESHandle< GeometricSearchTracker > theTracker
const MuonServiceProxy * theService
edm::EDGetTokenT< MeasurementTrackerEvent > theMeasurementTrackerEventToken_
LayerMeasurements theTkLayerMeasurements
#define LogTrace(id)
std::unique_ptr< const DirectTrackerNavigation > theNavigation
edm::Handle< FastTrackerRecHitCombinationCollection > recHitCombinations
edm::EDGetTokenT< reco::BeamSpot > beamSpot_
edm::EDGetTokenT< FastTrackerRecHitCombinationCollection > recHitCombinationsToken_
unsigned long long theCacheId_TG
void FastTSGFromPropagation::stateOnDet ( const TrajectoryStateOnSurface ts,
unsigned int  detid,
PTrajectoryStateOnDet pts 
) const
private

A mere copy (without memory leak) of an existing tracking method.

should check if corresponds to m

Definition at line 553 of file FastTSGFromPropagation.cc.

References TrajectoryStateOnSurface::globalMomentum(), i, j, relval_2017::k, TrajectoryStateOnSurface::localError(), TrajectoryStateOnSurface::localParameters(), visualization-live-secondInstance_cfg::m, LocalTrajectoryError::matrix(), PV3DBase< T, PVType, FrameType >::perp(), and TrajectoryStateOnSurface::surfaceSide().

556 {
557  const AlgebraicSymMatrix55& m = ts.localError().matrix();
558  int dim = 5;
559  float localErrors[15];
560  int k = 0;
561  for (int i=0; i<dim; ++i) {
562  for (int j=0; j<=i; ++j) {
563  localErrors[k++] = m(i,j);
564  }
565  }
566  int surfaceSide = static_cast<int>(ts.surfaceSide());
568  localErrors, detid,
569  surfaceSide);
570 }
int i
Definition: DBlmapReader.cc:9
T perp() const
Definition: PV3DBase.h:72
const LocalTrajectoryParameters & localParameters() const
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
SurfaceSide surfaceSide() const
Position relative to material, defined relative to momentum vector.
int j
Definition: DBlmapReader.cc:9
const AlgebraicSymMatrix55 & matrix() const
const LocalTrajectoryError & localError() const
GlobalVector globalMomentum() const
const LayerMeasurements* FastTSGFromPropagation::tkLayerMeasurements ( ) const
inlineprivate

Definition at line 80 of file FastTSGFromPropagation.h.

References theTkLayerMeasurements.

Referenced by findMeasurements().

80 { return &theTkLayerMeasurements; }
LayerMeasurements theTkLayerMeasurements
void FastTSGFromPropagation::trackerSeeds ( const TrackCand staMuon,
const TrackingRegion region,
const TrackerTopology tTopo,
std::vector< TrajectorySeed > &  result 
)

generate seed(s) for a track

Definition at line 63 of file FastTSGFromPropagation.cc.

References PV3DBase< T, PVType, FrameType >::basicVector(), CoreSimTrack::charge(), RecoTauCleanerPlugins::charge, FastTrackerRecHit::clone(), createSeed(), PTrajectoryStateOnDet::detId(), estimator(), PV3DBase< T, PVType, FrameType >::eta(), findMeasurements_new(), TrajectoryStateOnSurface::freeState(), g, TrackingRecHit::geographicalId(), getRescalingFactor(), TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::globalPosition(), TrajectorySeedHitCandidate::hit(), TrackerGeometry::idToDet(), TrajectoryStateOnSurface::isValid(), LogTrace, oppositeToMomentum, outerTkState(), passSelection(), PV3DBase< T, PVType, FrameType >::perp(), position, propagator(), edm::OwnVector< T, P >::push_back(), DetId::rawId(), recHitCombinations, fastTrackingUtilities::setRecHitCombinationIndex(), GeomDet::surface(), theCategory, theGeometry, theNavigation, theResetMethod, theService, theTTRHBuilder, theUpdateStateFlag, SimTrack::trackerSurfaceMomentum(), SimTrack::trackerSurfacePosition(), trajectoryStateTransform::transientState(), TrajectoryStateUpdator::update(), updator(), and PV3DBase< T, PVType, FrameType >::y().

64  {
65 
66  if ( theResetMethod == "discrete" ) getRescalingFactor(staMuon);
67 
68  TrajectoryStateOnSurface staState = outerTkState(staMuon);
69 
70  if ( !staState.isValid() ) {
71  LogTrace(theCategory) << "Error: initial state from L2 muon is invalid.";
72  return;
73  }
74 
75  LogTrace(theCategory) << "begin of trackerSeed:\n staState pos: "<<staState.globalPosition()
76  << " mom: "<<staState.globalMomentum()
77  <<"pos eta: "<<staState.globalPosition().eta()
78  <<"mom eta: "<<staState.globalMomentum().eta();
79 
80 
81  std::vector<const DetLayer*> nls = theNavigation->compatibleLayers(*(staState.freeState()), oppositeToMomentum);
82 
83  LogTrace(theCategory) << " compatible layers: "<<nls.size();
84 
85  if ( nls.empty() ) return;
86 
87  int ndesLayer = 0;
88 
89  bool usePredictedState = false;
90 
91  if ( theUpdateStateFlag ) { //use updated states
92  std::vector<TrajectoryMeasurement> alltm;
93 
94  for (std::vector<const DetLayer*>::const_iterator inl = nls.begin();
95  inl != nls.end(); inl++, ndesLayer++ ) {
96  if ( (*inl == 0) ) break;
97 // if ( (inl != nls.end()-1 ) && ( (*inl)->subDetector() == GeomDetEnumerators::TEC ) && ( (*(inl+1))->subDetector() == GeomDetEnumerators::TOB ) ) continue;
98  alltm = findMeasurements_new(*inl, staState);
99  if ( (!alltm.empty()) ) {
100  LogTrace(theCategory) << "final compatible layer: "<<ndesLayer;
101  break;
102  }
103  }
104 
105  if ( alltm.empty() ) {
106  LogTrace(theCategory) << " NO Measurements Found: eta: "<<staState.globalPosition().eta() <<"pt "<<staState.globalMomentum().perp();
107  usePredictedState = true;
108  } else {
109  LogTrace(theCategory) << " Measurements for seeds: "<<alltm.size();
110  std::stable_sort(alltm.begin(),alltm.end(),increasingEstimate());
111  if ( alltm.size() > 5 ) alltm.erase(alltm.begin() + 5, alltm.end());
112 
113  const edm::SimTrackContainer* simTracks = &(*theSimTracks);
114  TrajectorySeedHitCandidate theSeedHits;
115  std::vector<TrajectorySeedHitCandidate> outerHits;
116 
117  //std::vector<TrajectorySeed> tmpTS;
118  bool isMatch = false;
119  for (std::vector<TrajectoryMeasurement>::const_iterator itm = alltm.begin(); itm != alltm.end(); itm++) {
120  const TrajectoryStateOnSurface seedState = itm->predictedState();
121  double preY = seedState.globalPosition().y();
122 
123  // Check SimTrack
124  TrackingRecHit* aTrackingRecHit;
125  FreeTrajectoryState simtrack_trackerstate;
126  for( unsigned icomb = 0;icomb < recHitCombinations->size();++icomb){
127  const auto & recHitCombination = (*recHitCombinations)[icomb];
128  if(recHitCombination.size() ==0)
129  continue;
130  int32_t simTrackId = recHitCombination.back()->simTrackId(0);
131  const SimTrack & simtrack = (*simTracks)[simTrackId];
132 
134  simtrack.trackerSurfacePosition().y(),
135  simtrack.trackerSurfacePosition().z());
136  GlobalVector momentum(simtrack.trackerSurfaceMomentum().x(),
137  simtrack.trackerSurfaceMomentum().y(),
138  simtrack.trackerSurfaceMomentum().z());
139  int charge = (int)simtrack.charge();
140  GlobalTrajectoryParameters glb_parameters(position, momentum, charge, &*theService->magneticField().product());
141  simtrack_trackerstate = FreeTrajectoryState(glb_parameters);
142 
143  unsigned int outerId = 0;
144  for( const auto & recHitRef : recHitCombination) {
145  theSeedHits = TrajectorySeedHitCandidate(recHitRef.get(), tTopo);
146  unsigned int id = theSeedHits.hit()->geographicalId().rawId();
147  if( preY < 0 ) {
148  if( id > outerId ) outerId = id;
149  }
150  else {
151  if( id > outerId ) outerId = id;
152  }
153  }
154  for( const auto & recHitRef : recHitCombination ) {
155  theSeedHits = TrajectorySeedHitCandidate(recHitRef.get(),tTopo);
156  if( itm->recHit()->hit()->geographicalId().rawId() == theSeedHits.hit()->geographicalId().rawId() ) {
157  aTrackingRecHit = theSeedHits.hit()->clone();
158  TransientTrackingRecHit::ConstRecHitPointer recHit = theTTRHBuilder->build(aTrackingRecHit);
159  if( !recHit ) continue;
160  TrajectoryStateOnSurface updatedTSOS = updator()->update(seedState, *(recHit));
161  if( updatedTSOS.isValid() && passSelection(updatedTSOS) ) {
163  container.push_back(recHit->hit()->clone());
165  TrajectorySeed ts = createSeed(updatedTSOS, container, recHit->geographicalId());
166  // check direction
167  const TrajectorySeed* aSeed = &ts;
168  PTrajectoryStateOnDet PTSOD = aSeed->startingState();
169 
170  const GeomDet *g = theGeometry->idToDet(PTSOD.detId());
171  TrajectoryStateOnSurface tsos = trajectoryStateTransform::transientState(PTSOD, &(g->surface()), &*theService->magneticField().product());
172  if( tsos.globalMomentum().basicVector()*seedState.globalMomentum().basicVector() < 0. ) continue;
173  result.push_back(ts);
174  isMatch = true;
175  }
176  }
177  }
178  }
179  }
180  if( !isMatch ) {
181  // if there is no hits w.r.t. TM, find outermost hit
182  for (std::vector<TrajectoryMeasurement>::const_iterator itm = alltm.begin(); itm != alltm.end(); itm++) {
183  const TrajectoryStateOnSurface seedState = itm->predictedState();
184  double preY = seedState.globalPosition().y();
185 
186  // Check SimTrack
187  TrackingRecHit* aTrackingRecHit;
188  FreeTrajectoryState simtrack_trackerstate;
189 
190  for( unsigned icomb = 0;icomb < recHitCombinations->size();++icomb){
191  const auto & recHitCombination = (*recHitCombinations)[icomb];
192  if(recHitCombination.size() ==0)
193  continue;
194  int32_t simTrackId = recHitCombination.back()->simTrackId(0);
195  const SimTrack & simtrack = (*simTracks)[simTrackId];
196 
198  simtrack.trackerSurfacePosition().y(),
199  simtrack.trackerSurfacePosition().z());
200  GlobalVector momentum(simtrack.trackerSurfaceMomentum().x(),
201  simtrack.trackerSurfaceMomentum().y(),
202  simtrack.trackerSurfaceMomentum().z());
203  int charge = (int)simtrack.charge();
204  GlobalTrajectoryParameters glb_parameters(position, momentum, charge, &*theService->magneticField().product());
205  simtrack_trackerstate = FreeTrajectoryState(glb_parameters);
206 
207  unsigned int outerId = 0;
208  for( const auto & recHitRef : recHitCombination ) {
209  theSeedHits = TrajectorySeedHitCandidate(recHitRef.get(),tTopo);
210  unsigned int id = theSeedHits.hit()->geographicalId().rawId();
211  if( preY < 0 ) {
212  if( id > outerId ) outerId = id;
213  }
214  else {
215  if( id > outerId ) outerId = id;
216  }
217  }
218  for( const auto & recHitRef : recHitCombination ) {
219  theSeedHits = TrajectorySeedHitCandidate(recHitRef.get(),tTopo);
220  if( outerId == theSeedHits.hit()->geographicalId().rawId() ) {
221  aTrackingRecHit = theSeedHits.hit()->clone();
222  TransientTrackingRecHit::ConstRecHitPointer recHit = theTTRHBuilder->build(aTrackingRecHit);
223  if( !recHit ) continue;
224  TrajectoryStateOnSurface updatedTSOS = updator()->update(seedState, *(recHit));
225  if( updatedTSOS.isValid() && passSelection(updatedTSOS) ) {
227  container.push_back(recHit->hit()->clone());
229  TrajectorySeed ts = createSeed(updatedTSOS, container, recHit->geographicalId());
230  // check direction
231  const TrajectorySeed* aSeed = &ts;
232  PTrajectoryStateOnDet PTSOD = aSeed->startingState();
233 
234  const GeomDet *g = theGeometry->idToDet(PTSOD.detId());
235  TrajectoryStateOnSurface tsos = trajectoryStateTransform::transientState(PTSOD, &(g->surface()), &*theService->magneticField().product());
236  if( tsos.globalMomentum().basicVector()*seedState.globalMomentum().basicVector() < 0. ) continue;
237  result.push_back(ts);
238  }
239  }
240  }
241  }
242  }
243  }
244 
245  /*
246  for( unsigned ir = 0; ir < tmpTS.size(); ir++ ) {
247  const BasicTrajectorySeed* aSeed = &((tmpTS)[ir]);
248  PTrajectoryStateOnDet PTSOD = aSeed->startingState();
249 
250  DetId seedDetId(PTSOD.detId());
251  const GeomDet * g = theGeometry->idToDet(seedDetId);
252  TrajectoryStateOnSurface tsos = trajectoryStateTransform::transientState(PTSOD, &(g->surface()), &*theService->magneticField().product());
253  cout << "tsos3 = " << tsos.globalMomentum() << endl;
254  if( _index == ir ) {
255  cout << "tsos4 = " << tsos.globalMomentum() << endl;
256  result.push_back(tmpTS[ir]);
257  }
258  }
259  */
260  LogTrace(theCategory) << "result: "<<result.size();
261  return;
262  }
263  }
264 
265  if ( !theUpdateStateFlag || usePredictedState ) { //use predicted states
266  LogTrace(theCategory) << "use predicted state: ";
267  for (std::vector<const DetLayer*>::const_iterator inl = nls.begin();
268  inl != nls.end(); inl++ ) {
269 
270  if ( !result.empty() || *inl == 0 ) {
271  break;
272  }
273  std::vector<DetLayer::DetWithState> compatDets = (*inl)->compatibleDets(staState, *propagator(), *estimator());
274  LogTrace(theCategory) << " compatDets "<<compatDets.size();
275  if ( compatDets.empty() ) continue;
276  TrajectorySeed ts = createSeed(compatDets.front().second, compatDets.front().first->geographicalId());
277  result.push_back(ts);
278 
279  }
280  LogTrace(theCategory) << "result: "<<result.size();
281  return;
282  }
283  return;
284 }
virtual FastTrackerRecHit * clone() const override
void setRecHitCombinationIndex(edm::OwnVector< T > &recHits, int32_t icomb)
const math::XYZVectorD & trackerSurfacePosition() const
Definition: SimTrack.h:36
T perp() const
Definition: PV3DBase.h:72
T y() const
Definition: PV3DBase.h:63
GlobalPoint globalPosition() const
const MuonServiceProxy * theService
float charge() const
charge
Definition: CoreSimTrack.cc:18
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:40
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
const Chi2MeasurementEstimator * estimator() const
tuple result
Definition: mps_fire.py:83
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
void getRescalingFactor(const TrackCand &staMuon)
void push_back(D *&d)
Definition: OwnVector.h:290
virtual TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const =0
bool passSelection(const TrajectoryStateOnSurface &) const
check some quantity and beam-spot compatibility and decide to continue
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
FreeTrajectoryState const * freeState(bool withErrors=true) const
std::vector< TrajectoryMeasurement > findMeasurements_new(const DetLayer *, const TrajectoryStateOnSurface &) const
look for measurements on the first compatible layer (faster way)
unsigned int detId() const
TrajectoryStateOnSurface outerTkState(const TrackCand &) const
#define LogTrace(id)
const TrackerGeometry * theGeometry
TrajectoryStateOnSurface transientState(const PTrajectoryStateOnDet &ts, const Surface *surface, const MagneticField *field)
const TrajectoryStateUpdator * updator() const
std::unique_ptr< const DirectTrackerNavigation > theNavigation
const math::XYZTLorentzVectorD & trackerSurfaceMomentum() const
Definition: SimTrack.h:38
edm::ESHandle< Propagator > propagator() const
TrajectorySeed createSeed(const TrajectoryStateOnSurface &, const DetId &) const
create a hitless seed from a trajectory state
edm::Handle< FastTrackerRecHitCombinationCollection > recHitCombinations
T eta() const
Definition: PV3DBase.h:76
GlobalVector globalMomentum() const
static int position[264][3]
Definition: ReadPGInfo.cc:509
const FastTrackerRecHit * hit() const
The Hit itself.
DetId geographicalId() const
const BasicVectorType & basicVector() const
Definition: PV3DBase.h:56
edm::ESHandle< TransientTrackingRecHitBuilder > theTTRHBuilder
std::vector< SimTrack > SimTrackContainer
virtual const TrackerGeomDet * idToDet(DetId) const
const TrajectoryStateUpdator* FastTSGFromPropagation::updator ( ) const
inlineprivate

Definition at line 82 of file FastTSGFromPropagation.h.

References theUpdator.

Referenced by trackerSeeds().

82 {return theUpdator.get();}
std::unique_ptr< const TrajectoryStateUpdator > theUpdator
void FastTSGFromPropagation::validMeasurements ( std::vector< TrajectoryMeasurement > &  tms) const
private

select valid measurements

Definition at line 435 of file FastTSGFromPropagation.cc.

Referenced by findMeasurements().

435  {
436 
437  std::vector<TrajectoryMeasurement>::iterator tmsend = std::remove_if(tms.begin(), tms.end(), isInvalid());
438  tms.erase(tmsend, tms.end());
439  return;
440 
441 }
double FastTSGFromPropagation::zDis ( const TrajectoryStateOnSurface tsos) const
private

Member Data Documentation

edm::EDGetTokenT<reco::BeamSpot> FastTSGFromPropagation::beamSpot_
private

Definition at line 177 of file FastTSGFromPropagation.h.

Referenced by setEvent().

edm::Handle<FastTrackerRecHitCombinationCollection> FastTSGFromPropagation::recHitCombinations
private

Definition at line 182 of file FastTSGFromPropagation.h.

Referenced by setEvent(), and trackerSeeds().

edm::EDGetTokenT<FastTrackerRecHitCombinationCollection> FastTSGFromPropagation::recHitCombinationsToken_
private

Definition at line 176 of file FastTSGFromPropagation.h.

Referenced by setEvent().

bool FastTSGFromPropagation::theAdjustAtIp
private

Definition at line 170 of file FastTSGFromPropagation.h.

Referenced by init().

edm::Handle<reco::BeamSpot> FastTSGFromPropagation::theBeamSpot
private

Definition at line 180 of file FastTSGFromPropagation.h.

Referenced by passSelection(), and setEvent().

unsigned long long FastTSGFromPropagation::theCacheId_MT
private

Definition at line 131 of file FastTSGFromPropagation.h.

Referenced by init(), and setEvent().

unsigned long long FastTSGFromPropagation::theCacheId_TG
private

Definition at line 132 of file FastTSGFromPropagation.h.

Referenced by init(), and setEvent().

std::string FastTSGFromPropagation::theCategory
private

Definition at line 134 of file FastTSGFromPropagation.h.

Referenced by setEvent(), trackerSeeds(), and ~FastTSGFromPropagation().

const edm::ParameterSet FastTSGFromPropagation::theConfig
private

Definition at line 174 of file FastTSGFromPropagation.h.

Referenced by init().

std::unique_ptr<MuonErrorMatrix> FastTSGFromPropagation::theErrorMatrixAdjuster
private

Definition at line 168 of file FastTSGFromPropagation.h.

Referenced by adjust(), and init().

std::unique_ptr<const Chi2MeasurementEstimator> FastTSGFromPropagation::theEstimator
private

Definition at line 150 of file FastTSGFromPropagation.h.

Referenced by estimator(), and init().

double FastTSGFromPropagation::theFixedErrorRescaling
private

Definition at line 156 of file FastTSGFromPropagation.h.

Referenced by adjust(), and init().

double FastTSGFromPropagation::theFlexErrorRescaling
private

Definition at line 154 of file FastTSGFromPropagation.h.

Referenced by adjust(), getRescalingFactor(), and init().

const TrackerGeometry* FastTSGFromPropagation::theGeometry
private

Definition at line 144 of file FastTSGFromPropagation.h.

Referenced by init(), and trackerSeeds().

double FastTSGFromPropagation::theMaxChi2
private

Definition at line 152 of file FastTSGFromPropagation.h.

Referenced by init().

edm::ESHandle<MeasurementTracker> FastTSGFromPropagation::theMeasTracker
private

Definition at line 140 of file FastTSGFromPropagation.h.

Referenced by setEvent().

edm::Handle<MeasurementTrackerEvent> FastTSGFromPropagation::theMeasTrackerEvent
private

Definition at line 183 of file FastTSGFromPropagation.h.

Referenced by findMeasurements_new(), and setEvent().

edm::EDGetTokenT<MeasurementTrackerEvent> FastTSGFromPropagation::theMeasurementTrackerEventToken_
private

Definition at line 178 of file FastTSGFromPropagation.h.

Referenced by setEvent().

std::unique_ptr<const DirectTrackerNavigation> FastTSGFromPropagation::theNavigation
private

Definition at line 142 of file FastTSGFromPropagation.h.

Referenced by init(), setEvent(), and trackerSeeds().

std::string FastTSGFromPropagation::thePropagatorName
private

Definition at line 166 of file FastTSGFromPropagation.h.

Referenced by init(), and propagator().

std::string FastTSGFromPropagation::theResetMethod
private

Definition at line 162 of file FastTSGFromPropagation.h.

Referenced by adjust(), init(), and trackerSeeds().

bool FastTSGFromPropagation::theSelectStateFlag
private

Definition at line 164 of file FastTSGFromPropagation.h.

Referenced by init(), and passSelection().

const MuonServiceProxy* FastTSGFromPropagation::theService
private
double FastTSGFromPropagation::theSigmaZ
private

Definition at line 172 of file FastTSGFromPropagation.h.

Referenced by init(), and passSelection().

edm::EDGetTokenT<edm::SimTrackContainer> FastTSGFromPropagation::theSimTrackCollectionToken_
private

Definition at line 175 of file FastTSGFromPropagation.h.

Referenced by setEvent().

edm::Handle<edm::SimTrackContainer> FastTSGFromPropagation::theSimTracks
private

Definition at line 181 of file FastTSGFromPropagation.h.

Referenced by setEvent().

LayerMeasurements FastTSGFromPropagation::theTkLayerMeasurements
private

Definition at line 136 of file FastTSGFromPropagation.h.

Referenced by setEvent(), and tkLayerMeasurements().

edm::ESHandle<GeometricSearchTracker> FastTSGFromPropagation::theTracker
private

Definition at line 138 of file FastTSGFromPropagation.h.

Referenced by init(), and setEvent().

edm::ESHandle<TransientTrackingRecHitBuilder> FastTSGFromPropagation::theTTRHBuilder
private

Definition at line 184 of file FastTSGFromPropagation.h.

Referenced by init(), and trackerSeeds().

bool FastTSGFromPropagation::theUpdateStateFlag
private

Definition at line 160 of file FastTSGFromPropagation.h.

Referenced by init(), setEvent(), and trackerSeeds().

std::unique_ptr<const TrajectoryStateUpdator> FastTSGFromPropagation::theUpdator
private

Definition at line 148 of file FastTSGFromPropagation.h.

Referenced by init(), and updator().

bool FastTSGFromPropagation::theUseVertexStateFlag
private

Definition at line 158 of file FastTSGFromPropagation.h.

Referenced by init(), and outerTkState().