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::InputTag beamSpot_
 
bool theAdjustAtIp
 
edm::Handle< reco::BeamSpottheBeamSpot
 
unsigned long long theCacheId_MT
 
unsigned long long theCacheId_TG
 
std::string theCategory
 
edm::ParameterSet theConfig
 
MuonErrorMatrixtheErrorMatrixAdjuster
 
const Chi2MeasurementEstimatortheEstimator
 
double theFixedErrorRescaling
 
double theFlexErrorRescaling
 
const TrackerGeometrytheGeometry
 
edm::Handle
< SiTrackerGSMatchedRecHit2DCollection
theGSRecHits
 
edm::InputTag theHitProducer
 
double theMaxChi2
 
edm::ESHandle< MeasurementTrackertheMeasTracker
 
edm::Handle
< MeasurementTrackerEvent
theMeasTrackerEvent
 
edm::InputTag theMeasurementTrackerEventTag
 
const DirectTrackerNavigationtheNavigation
 
std::string thePropagatorName
 
std::string theResetMethod
 
bool theSelectStateFlag
 
const MuonServiceProxytheService
 
double theSigmaZ
 
edm::InputTag theSimTrackCollectionLabel
 
edm::Handle
< edm::SimTrackContainer
theSimTracks
 
LayerMeasurements theTkLayerMeasurements
 
edm::ESHandle
< GeometricSearchTracker
theTracker
 
TrajectoryStateTransformtheTSTransformer
 
edm::ESHandle
< TransientTrackingRecHitBuilder
theTTRHBuilder
 
bool theUpdateStateFlag
 
const TrajectoryStateUpdatortheUpdator
 
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 46 of file FastTSGFromPropagation.h.

Constructor & Destructor Documentation

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

constructor

Definition at line 48 of file FastTSGFromPropagation.cc.

References edm::ParameterSet::getParameter(), theCategory, and theMeasurementTrackerEventTag.

49  beamSpot_(iConfig.getParameter<edm::InputTag>("beamSpot"))
50 {
51  theCategory = "FastSimulation|Muons||FastTSGFromPropagation";
52  theMeasurementTrackerEventTag = iConfig.getParameter<edm::InputTag>("MeasurementTrackerEvent");
53 }
const Chi2MeasurementEstimator * theEstimator
const DirectTrackerNavigation * theNavigation
edm::ESHandle< GeometricSearchTracker > theTracker
const MuonServiceProxy * theService
edm::InputTag theMeasurementTrackerEventTag
LayerMeasurements theTkLayerMeasurements
FastTSGFromPropagation::FastTSGFromPropagation ( const edm::ParameterSet par,
const MuonServiceProxy service,
edm::ConsumesCollector iC 
)

Definition at line 55 of file FastTSGFromPropagation.cc.

References edm::ParameterSet::getParameter(), theCategory, and theMeasurementTrackerEventTag.

56  beamSpot_(iConfig.getParameter<edm::InputTag>("beamSpot"))
57 {
58  theCategory = "FastSimulation|Muons|FastTSGFromPropagation";
59  theMeasurementTrackerEventTag = iConfig.getParameter<edm::InputTag>("MeasurementTrackerEvent");
60 }
const Chi2MeasurementEstimator * theEstimator
const DirectTrackerNavigation * theNavigation
edm::ESHandle< GeometricSearchTracker > theTracker
const MuonServiceProxy * theService
edm::InputTag theMeasurementTrackerEventTag
const TrajectoryStateUpdator * theUpdator
LayerMeasurements theTkLayerMeasurements
FastTSGFromPropagation::~FastTSGFromPropagation ( )
virtual

destructor

Definition at line 62 of file FastTSGFromPropagation.cc.

References LogTrace, theCategory, theErrorMatrixAdjuster, theEstimator, theNavigation, and theUpdator.

63 {
64 
65  LogTrace(theCategory) << " FastTSGFromPropagation dtor called ";
66  if ( theNavigation ) delete theNavigation;
67  if ( theUpdator ) delete theUpdator;
68  if ( theEstimator ) delete theEstimator;
70 
71 }
const Chi2MeasurementEstimator * theEstimator
const DirectTrackerNavigation * theNavigation
const TrajectoryStateUpdator * theUpdator
#define LogTrace(id)
MuonErrorMatrix * theErrorMatrixAdjuster

Member Function Documentation

void FastTSGFromPropagation::adjust ( FreeTrajectoryState state) const
private

adjust the error matrix of the FTS

Definition at line 520 of file FastTSGFromPropagation.cc.

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

Referenced by innerState(), and outerTkState().

520  {
521 
522  //rescale the error
523  if ( theResetMethod == "discreate" ) {
525  return;
526  }
527 
528  //rescale the error
529  if ( theResetMethod == "fixed" || !theErrorMatrixAdjuster) {
531  return;
532  }
533 
535  CurvilinearTrajectoryError sfMat = theErrorMatrixAdjuster->get(state.momentum());//FIXME with position
536  MuonErrorMatrix::multiply(oMat, sfMat);
537 
538  state = FreeTrajectoryState(state.parameters(),
539  oMat);
540 }
const GlobalTrajectoryParameters & parameters() const
CurvilinearTrajectoryError get(GlobalVector momentum, bool convolute=true)
main method to be used. Retrieve a 5x5 symetrical matrix according to parametrization of error or sca...
const CurvilinearTrajectoryError & curvilinearError() const
static void multiply(CurvilinearTrajectoryError &initial_error, const CurvilinearTrajectoryError &scale_error)
multiply term by term the two matrix
GlobalVector momentum() const
MuonErrorMatrix * theErrorMatrixAdjuster
void rescaleError(double factor)
void FastTSGFromPropagation::adjust ( TrajectoryStateOnSurface state) const
private

adjust the error matrix of the TSOS

Definition at line 542 of file FastTSGFromPropagation.cc.

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

542  {
543 
544  //rescale the error
545  if ( theResetMethod == "discreate" ) {
547  return;
548  }
549 
550  if ( theResetMethod == "fixed" || !theErrorMatrixAdjuster) {
552  return;
553  }
554 
556  CurvilinearTrajectoryError sfMat = theErrorMatrixAdjuster->get(state.globalMomentum());//FIXME with position
557  MuonErrorMatrix::multiply(oMat, sfMat);
558 
560  oMat,
561  state.surface(),
562  state.surfaceSide(),
563  state.weight());
564 }
const CurvilinearTrajectoryError & curvilinearError() const
CurvilinearTrajectoryError get(GlobalVector momentum, bool convolute=true)
main method to be used. Retrieve a 5x5 symetrical matrix according to parametrization of error or sca...
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
MuonErrorMatrix * theErrorMatrixAdjuster
const GlobalTrajectoryParameters & globalParameters() const
GlobalVector globalMomentum() const
TrajectorySeed FastTSGFromPropagation::createSeed ( const TrajectoryStateOnSurface tsos,
const DetId id 
) const
private

create a hitless seed from a trajectory state

Definition at line 433 of file FastTSGFromPropagation.cc.

Referenced by trackerSeeds().

433  {
434 
436  return createSeed(tsos, container, id);
437 
438 }
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 440 of file FastTSGFromPropagation.cc.

References oppositeToMomentum, and trajectoryStateTransform::persistentState().

440  {
441 
443  return TrajectorySeed(seedTSOS,container,oppositeToMomentum);
444 
445 }
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 81 of file FastTSGFromPropagation.h.

References theEstimator.

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

81 { return theEstimator; }
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 481 of file FastTSGFromPropagation.cc.

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

481  {
482 
483  std::vector<TrajectoryMeasurement> result = tkLayerMeasurements()->measurements((*nl), staState, *propagator(), *estimator());
484  validMeasurements(result);
485  return result;
486 }
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: query.py:137
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 456 of file FastTSGFromPropagation.cc.

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

Referenced by trackerSeeds().

456  {
457 
458  std::vector<TrajectoryMeasurement> result;
459 
460  std::vector<DetLayer::DetWithState> compatDets = nl->compatibleDets(staState, *propagator(), *estimator());
461  if ( compatDets.empty() ) return result;
462 
463  for (std::vector<DetLayer::DetWithState>::const_iterator idws = compatDets.begin(); idws != compatDets.end(); ++idws) {
464  if ( idws->second.isValid() && (idws->first) ) {
465  std::vector<TrajectoryMeasurement> tmptm =
466  theMeasTrackerEvent->idToDet(idws->first->geographicalId()).fastMeasurements(idws->second, idws->second, *propagator(), *estimator());
467  //validMeasurements(tmptm);
468 // if ( tmptm.size() > 2 ) {
469 // std::stable_sort(tmptm.begin(),tmptm.end(),increasingEstimate());
470 // result.insert(result.end(),tmptm.begin(), tmptm.begin()+2);
471 // } else {
472  result.insert(result.end(),tmptm.begin(), tmptm.end());
473 // }
474  }
475  }
476 
477  return result;
478 
479 }
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: query.py:137
edm::ESHandle< Propagator > propagator() const
void FastTSGFromPropagation::getRescalingFactor ( const TrackCand staMuon)
private

Definition at line 511 of file FastTSGFromPropagation.cc.

References RecoTauCleanerPlugins::pt, and theFlexErrorRescaling.

Referenced by trackerSeeds().

511  {
512  float pt = (staMuon.second)->pt();
513  if ( pt < 13.0 ) theFlexErrorRescaling = 3;
514  else if ( pt < 30.0 ) theFlexErrorRescaling = 5;
515  else theFlexErrorRescaling = 10;
516  return;
517 }
void FastTSGFromPropagation::init ( const MuonServiceProxy service)
virtual

initialize

Reimplemented from TrackerSeedGenerator.

Definition at line 294 of file FastTSGFromPropagation.cc.

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

294  {
295 
296  theMaxChi2 = theConfig.getParameter<double>("MaxChi2");
297 
298  theFixedErrorRescaling = theConfig.getParameter<double>("ErrorRescaling");
299 
300  theFlexErrorRescaling = 1.0;
301 
303 
304  if (theResetMethod != "discrete" && theResetMethod != "fixed" && theResetMethod != "matrix" ) {
305  edm::LogError("FastTSGFromPropagation")
306  <<"Wrong error rescaling method: "<<theResetMethod <<"\n"
307  <<"Possible choices are: discrete, fixed, matrix.\n"
308  <<"Use discrete method" <<std::endl;
309  theResetMethod = "discrete";
310  }
311 
313 
314  theCacheId_MT = 0;
315 
316  theCacheId_TG = 0;
317 
319 
320  theService = service;
321 
322  theUseVertexStateFlag = theConfig.getParameter<bool>("UseVertexState");
323 
324  theUpdateStateFlag = theConfig.getParameter<bool>("UpdateState");
325 
326  theSelectStateFlag = theConfig.getParameter<bool>("SelectState");
327 
328  theSimTrackCollectionLabel = theConfig.getParameter<edm::InputTag>("SimTrackCollectionLabel");
330 
331  theUpdator = new KFUpdator();
332 
333  theSigmaZ = theConfig.getParameter<double>("SigmaZ");
334 
335  edm::ParameterSet errorMatrixPset = theConfig.getParameter<edm::ParameterSet>("errorMatrixPset");
336  if ( theResetMethod == "matrix" && !errorMatrixPset.empty()){
337  theAdjustAtIp = errorMatrixPset.getParameter<bool>("atIP");
338  theErrorMatrixAdjuster = new MuonErrorMatrix(errorMatrixPset);
339  } else {
340  theAdjustAtIp =false;
342  }
343 
344  theService->eventSetup().get<TrackerRecoGeometryRecord>().get(theTracker);
346 
348  theService->eventSetup().get<TrackerDigiGeometryRecord>().get(geometry);
349  theGeometry = &(*geometry);
350 
351  theService->eventSetup().get<TransientRecHitRecord>().get("WithTrackAngle", theTTRHBuilder);
352 
353 }
T getParameter(std::string const &) const
const Chi2MeasurementEstimator * theEstimator
unsigned long long theCacheId_MT
const DirectTrackerNavigation * theNavigation
edm::ESHandle< GeometricSearchTracker > theTracker
CurvilinearTrajectoryError get(GlobalVector momentum, bool convolute=true)
main method to be used. Retrieve a 5x5 symetrical matrix according to parametrization of error or sca...
const MuonServiceProxy * theService
const TrajectoryStateUpdator * theUpdator
MuonErrorMatrix * theErrorMatrixAdjuster
const TrackerGeometry * theGeometry
edm::InputTag theSimTrackCollectionLabel
ESHandle< TrackerGeometry > geometry
edm::ESHandle< TransientTrackingRecHitBuilder > theTTRHBuilder
unsigned long long theCacheId_TG
TrajectoryStateOnSurface FastTSGFromPropagation::innerState ( const TrackCand staMuon) const
private

Definition at line 394 of file FastTSGFromPropagation.cc.

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

Referenced by outerTkState().

394  {
395 
396  TrajectoryStateOnSurface innerTS;
397 
398  if ( staMuon.first && staMuon.first->isValid() ) {
399  if (staMuon.first->direction() == alongMomentum) {
400  innerTS = staMuon.first->firstMeasurement().updatedState();
401  }
402  else if (staMuon.first->direction() == oppositeToMomentum) {
403  innerTS = staMuon.first->lastMeasurement().updatedState();
404  }
405  } else {
406  innerTS = trajectoryStateTransform::innerStateOnSurface(*(staMuon.second),*theService->trackingGeometry(), &*theService->magneticField());
407  }
408  //rescale the error
409  adjust(innerTS);
410 
411  return innerTS;
412 
413 }
void adjust(FreeTrajectoryState &) const
adjust the error matrix of the FTS
TrajectoryStateOnSurface innerStateOnSurface(const reco::Track &tk, const TrackingGeometry &geom, const MagneticField *field)
const MuonServiceProxy * theService
TrajectoryStateOnSurface FastTSGFromPropagation::outerTkState ( const TrackCand staMuon) const
private

Definition at line 415 of file FastTSGFromPropagation.cc.

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

Referenced by trackerSeeds().

415  {
416 
418 
419  if ( theUseVertexStateFlag && staMuon.second->pt() > 1.0 ) {
420  FreeTrajectoryState iniState = trajectoryStateTransform::initialFreeState(*(staMuon.second), &*theService->magneticField());
421  //rescale the error at IP
422  adjust(iniState);
423 
424  StateOnTrackerBound fromInside(&*(theService->propagator("PropagatorWithMaterial")));
425  result = fromInside(iniState);
426  } else {
427  StateOnTrackerBound fromOutside(&*propagator());
428  result = fromOutside(innerState(staMuon));
429  }
430  return result;
431 }
void adjust(FreeTrajectoryState &) const
adjust the error matrix of the FTS
const MuonServiceProxy * theService
tuple result
Definition: query.py:137
TrajectoryStateOnSurface innerState(const TrackCand &) const
FreeTrajectoryState initialFreeState(const reco::Track &tk, const MagneticField *field)
edm::ESHandle< Propagator > propagator() const
bool FastTSGFromPropagation::passSelection ( const TrajectoryStateOnSurface tsos) const
private

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

Definition at line 488 of file FastTSGFromPropagation.cc.

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

Referenced by trackerSeeds().

488  {
489  if ( !theSelectStateFlag ) return true;
490  else {
491  if ( theBeamSpot.isValid() ) {
492  return ( ( fabs(zDis(tsos) - theBeamSpot->z0() ) < theSigmaZ) );
493 
494  } else {
495  return ( ( fabs(zDis(tsos)) < theSigmaZ) );
496 // double theDxyCut = 100;
497 // return ( (zDis(tsos) < theSigmaZ) && (dxyDis(tsos) < theDxyCut) );
498  }
499  }
500 
501 }
edm::Handle< reco::BeamSpot > theBeamSpot
bool isValid() const
Definition: HandleBase.h:76
double zDis(const TrajectoryStateOnSurface &tsos) const
edm::ESHandle<Propagator> FastTSGFromPropagation::propagator ( void  ) const
inlineprivate

Definition at line 83 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 355 of file FastTSGFromPropagation.cc.

References beamSpot_, edm::Event::getByLabel(), LogTrace, theBeamSpot, theCacheId_MT, theCacheId_TG, theCategory, theGSRecHits, theHitProducer, theMeasTracker, theMeasTrackerEvent, theMeasurementTrackerEventTag, theNavigation, theService, theSimTrackCollectionLabel, theSimTracks, theTkLayerMeasurements, theTracker, and theUpdateStateFlag.

355  {
356 
358 
359  // retrieve the MC truth (SimTracks)
362 
363 
364  unsigned long long newCacheId_MT = theService->eventSetup().get<CkfComponentsRecord>().cacheIdentifier();
365 
366  if ( theUpdateStateFlag && newCacheId_MT != theCacheId_MT ) {
367  LogTrace(theCategory) << "Measurment Tracker Geometry changed!";
368  theCacheId_MT = newCacheId_MT;
369  theService->eventSetup().get<CkfComponentsRecord>().get(theMeasTracker);
370  }
371 
372  if ( theUpdateStateFlag ) {
375  }
376 
377  bool trackerGeomChanged = false;
378 
379  unsigned long long newCacheId_TG = theService->eventSetup().get<TrackerRecoGeometryRecord>().cacheIdentifier();
380 
381  if ( newCacheId_TG != theCacheId_TG ) {
382  LogTrace(theCategory) << "Tracker Reco Geometry changed!";
383  theCacheId_TG = newCacheId_TG;
384  theService->eventSetup().get<TrackerRecoGeometryRecord>().get(theTracker);
385  trackerGeomChanged = true;
386  }
387 
388  if ( trackerGeomChanged && (&*theTracker) ) {
389  if ( theNavigation ) delete theNavigation;
391  }
392 }
edm::Handle< MeasurementTrackerEvent > theMeasTrackerEvent
edm::ESHandle< MeasurementTracker > theMeasTracker
edm::Handle< reco::BeamSpot > theBeamSpot
unsigned long long theCacheId_MT
edm::Handle< edm::SimTrackContainer > theSimTracks
const DirectTrackerNavigation * theNavigation
edm::ESHandle< GeometricSearchTracker > theTracker
const MuonServiceProxy * theService
edm::InputTag theMeasurementTrackerEventTag
LayerMeasurements theTkLayerMeasurements
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:390
#define LogTrace(id)
edm::Handle< SiTrackerGSMatchedRecHit2DCollection > theGSRecHits
edm::InputTag theSimTrackCollectionLabel
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 566 of file FastTSGFromPropagation.cc.

References cond::rpcobgas::detid, i, j, gen::k, TrajectoryStateOnSurface::localError(), TrajectoryStateOnSurface::localParameters(), m, LocalTrajectoryError::matrix(), and TrajectoryStateOnSurface::surfaceSide().

569 {
570  const AlgebraicSymMatrix55& m = ts.localError().matrix();
571  int dim = 5;
572  float localErrors[15];
573  int k = 0;
574  for (int i=0; i<dim; ++i) {
575  for (int j=0; j<=i; ++j) {
576  localErrors[k++] = m(i,j);
577  }
578  }
579  int surfaceSide = static_cast<int>(ts.surfaceSide());
581  localErrors, detid,
582  surfaceSide);
583 }
int i
Definition: DBlmapReader.cc:9
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
int k[5][pyjets_maxn]
const LayerMeasurements* FastTSGFromPropagation::tkLayerMeasurements ( ) const
inlineprivate

Definition at line 77 of file FastTSGFromPropagation.h.

References theTkLayerMeasurements.

Referenced by findMeasurements().

77 { 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 73 of file FastTSGFromPropagation.cc.

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

74  {
75 
76  if ( theResetMethod == "discrete" ) getRescalingFactor(staMuon);
77 
78  TrajectoryStateOnSurface staState = outerTkState(staMuon);
79 
80  if ( !staState.isValid() ) {
81  LogTrace(theCategory) << "Error: initial state from L2 muon is invalid.";
82  return;
83  }
84 
85  LogTrace(theCategory) << "begin of trackerSeed:\n staState pos: "<<staState.globalPosition()
86  << " mom: "<<staState.globalMomentum()
87  <<"pos eta: "<<staState.globalPosition().eta()
88  <<"mom eta: "<<staState.globalMomentum().eta();
89 
90 
91  std::vector<const DetLayer*> nls = theNavigation->compatibleLayers(*(staState.freeState()), oppositeToMomentum);
92 
93  LogTrace(theCategory) << " compatible layers: "<<nls.size();
94 
95  if ( nls.empty() ) return;
96 
97  int ndesLayer = 0;
98 
99  bool usePredictedState = false;
100 
101  if ( theUpdateStateFlag ) { //use updated states
102  std::vector<TrajectoryMeasurement> alltm;
103 
104  for (std::vector<const DetLayer*>::const_iterator inl = nls.begin();
105  inl != nls.end(); inl++, ndesLayer++ ) {
106  if ( (*inl == 0) ) break;
107 // if ( (inl != nls.end()-1 ) && ( (*inl)->subDetector() == GeomDetEnumerators::TEC ) && ( (*(inl+1))->subDetector() == GeomDetEnumerators::TOB ) ) continue;
108  alltm = findMeasurements_new(*inl, staState);
109  if ( (!alltm.empty()) ) {
110  LogTrace(theCategory) << "final compatible layer: "<<ndesLayer;
111  break;
112  }
113  }
114 
115  if ( alltm.empty() ) {
116  LogTrace(theCategory) << " NO Measurements Found: eta: "<<staState.globalPosition().eta() <<"pt "<<staState.globalMomentum().perp();
117  usePredictedState = true;
118  } else {
119  LogTrace(theCategory) << " Measurements for seeds: "<<alltm.size();
120  std::stable_sort(alltm.begin(),alltm.end(),increasingEstimate());
121  if ( alltm.size() > 5 ) alltm.erase(alltm.begin() + 5, alltm.end());
122 
123  const edm::SimTrackContainer* simTracks = &(*theSimTracks);
124  const std::vector<unsigned> theSimTrackIds = theGSRecHits->ids();
125  TrackerRecHit theSeedHits;
126  std::vector<TrackerRecHit> outerHits;
127 
128  //std::vector<TrajectorySeed> tmpTS;
129  bool isMatch = false;
130  for (std::vector<TrajectoryMeasurement>::const_iterator itm = alltm.begin(); itm != alltm.end(); itm++) {
131  const TrajectoryStateOnSurface seedState = itm->predictedState();
132  double preY = seedState.globalPosition().y();
133 
134  // Check SimTrack
135  TrackingRecHit* aTrackingRecHit;
136  FreeTrajectoryState simtrack_trackerstate;
137  for( unsigned tkId=0; tkId != theSimTrackIds.size(); ++tkId ) {
138  const SimTrack & simtrack = (*simTracks)[theSimTrackIds[tkId]];
139  SiTrackerGSMatchedRecHit2DCollection::range theRecHitRange = theGSRecHits->get(theSimTrackIds[tkId]);
140  SiTrackerGSMatchedRecHit2DCollection::const_iterator theRecHitRangeIteratorBegin = theRecHitRange.first;
141  SiTrackerGSMatchedRecHit2DCollection::const_iterator theRecHitRangeIteratorEnd = theRecHitRange.second;
143 
145  simtrack.trackerSurfacePosition().y(),
146  simtrack.trackerSurfacePosition().z());
147  GlobalVector momentum(simtrack.trackerSurfaceMomentum().x(),
148  simtrack.trackerSurfaceMomentum().y(),
149  simtrack.trackerSurfaceMomentum().z());
150  int charge = (int)simtrack.charge();
151  GlobalTrajectoryParameters glb_parameters(position, momentum, charge, &*theService->magneticField().product());
152  simtrack_trackerstate = FreeTrajectoryState(glb_parameters);
153 
154  unsigned int outerId = 0;
155  for( iterRecHit = theRecHitRangeIteratorBegin; iterRecHit != theRecHitRangeIteratorEnd; ++iterRecHit) {
156  theSeedHits = TrackerRecHit(&(*iterRecHit), theGeometry, tTopo);
157  unsigned int id = theSeedHits.hit()->geographicalId().rawId();
158  if( preY < 0 ) {
159  if( id > outerId ) outerId = id;
160  }
161  else {
162  if( id > outerId ) outerId = id;
163  }
164  }
165  for( iterRecHit = theRecHitRangeIteratorBegin; iterRecHit != theRecHitRangeIteratorEnd; ++iterRecHit) {
166  theSeedHits = TrackerRecHit(&(*iterRecHit), theGeometry, tTopo);
167  if( itm->recHit()->hit()->geographicalId().rawId() == theSeedHits.hit()->geographicalId().rawId() ) {
168  aTrackingRecHit = theSeedHits.hit()->clone();
169  TransientTrackingRecHit::ConstRecHitPointer recHit = theTTRHBuilder->build(aTrackingRecHit);
170  if( !recHit ) continue;
171  TrajectoryStateOnSurface updatedTSOS = updator()->update(seedState, *(recHit));
172  if( updatedTSOS.isValid() && passSelection(updatedTSOS) ) {
174  container.push_back(recHit->hit()->clone());
175  TrajectorySeed ts = createSeed(updatedTSOS, container, recHit->geographicalId());
176  // check direction
177  const BasicTrajectorySeed* aSeed = &ts;
178  PTrajectoryStateOnDet PTSOD = aSeed->startingState();
179 
180  const GeomDet *g = theGeometry->idToDet(PTSOD.detId());
181  TrajectoryStateOnSurface tsos = trajectoryStateTransform::transientState(PTSOD, &(g->surface()), &*theService->magneticField().product());
182  if( tsos.globalMomentum().basicVector()*seedState.globalMomentum().basicVector() < 0. ) continue;
183  result.push_back(ts);
184  isMatch = true;
185  }
186  }
187  }
188  }
189  }
190  if( !isMatch ) {
191  // if there is no hits w.r.t. TM, find outermost hit
192  for (std::vector<TrajectoryMeasurement>::const_iterator itm = alltm.begin(); itm != alltm.end(); itm++) {
193  const TrajectoryStateOnSurface seedState = itm->predictedState();
194  double preY = seedState.globalPosition().y();
195 
196  // Check SimTrack
197  TrackingRecHit* aTrackingRecHit;
198  FreeTrajectoryState simtrack_trackerstate;
199  for( unsigned tkId=0; tkId != theSimTrackIds.size(); ++tkId ) {
200  const SimTrack & simtrack = (*simTracks)[theSimTrackIds[tkId]];
201  SiTrackerGSMatchedRecHit2DCollection::range theRecHitRange = theGSRecHits->get(theSimTrackIds[tkId]);
202  SiTrackerGSMatchedRecHit2DCollection::const_iterator theRecHitRangeIteratorBegin = theRecHitRange.first;
203  SiTrackerGSMatchedRecHit2DCollection::const_iterator theRecHitRangeIteratorEnd = theRecHitRange.second;
205 
207  simtrack.trackerSurfacePosition().y(),
208  simtrack.trackerSurfacePosition().z());
209  GlobalVector momentum(simtrack.trackerSurfaceMomentum().x(),
210  simtrack.trackerSurfaceMomentum().y(),
211  simtrack.trackerSurfaceMomentum().z());
212  int charge = (int)simtrack.charge();
213  GlobalTrajectoryParameters glb_parameters(position, momentum, charge, &*theService->magneticField().product());
214  simtrack_trackerstate = FreeTrajectoryState(glb_parameters);
215 
216  unsigned int outerId = 0;
217  for( iterRecHit = theRecHitRangeIteratorBegin; iterRecHit != theRecHitRangeIteratorEnd; ++iterRecHit) {
218  theSeedHits = TrackerRecHit(&(*iterRecHit), theGeometry, tTopo);
219  unsigned int id = theSeedHits.hit()->geographicalId().rawId();
220  if( preY < 0 ) {
221  if( id > outerId ) outerId = id;
222  }
223  else {
224  if( id > outerId ) outerId = id;
225  }
226  }
227  for( iterRecHit = theRecHitRangeIteratorBegin; iterRecHit != theRecHitRangeIteratorEnd; ++iterRecHit) {
228  theSeedHits = TrackerRecHit(&(*iterRecHit), theGeometry, tTopo);
229  if( outerId == theSeedHits.hit()->geographicalId().rawId() ) {
230  aTrackingRecHit = theSeedHits.hit()->clone();
231  TransientTrackingRecHit::ConstRecHitPointer recHit = theTTRHBuilder->build(aTrackingRecHit);
232  if( !recHit ) continue;
233  TrajectoryStateOnSurface updatedTSOS = updator()->update(seedState, *(recHit));
234  if( updatedTSOS.isValid() && passSelection(updatedTSOS) ) {
236  container.push_back(recHit->hit()->clone());
237  TrajectorySeed ts = createSeed(updatedTSOS, container, recHit->geographicalId());
238  // check direction
239  const BasicTrajectorySeed* aSeed = &ts;
240  PTrajectoryStateOnDet PTSOD = aSeed->startingState();
241 
242  const GeomDet *g = theGeometry->idToDet(PTSOD.detId());
243  TrajectoryStateOnSurface tsos = trajectoryStateTransform::transientState(PTSOD, &(g->surface()), &*theService->magneticField().product());
244  if( tsos.globalMomentum().basicVector()*seedState.globalMomentum().basicVector() < 0. ) continue;
245  result.push_back(ts);
246  }
247  }
248  }
249  }
250  }
251  }
252 
253  /*
254  for( unsigned ir = 0; ir < tmpTS.size(); ir++ ) {
255  const BasicTrajectorySeed* aSeed = &((tmpTS)[ir]);
256  PTrajectoryStateOnDet PTSOD = aSeed->startingState();
257 
258  DetId seedDetId(PTSOD.detId());
259  const GeomDet * g = theGeometry->idToDet(seedDetId);
260  TrajectoryStateOnSurface tsos = trajectoryStateTransform::transientState(PTSOD, &(g->surface()), &*theService->magneticField().product());
261  cout << "tsos3 = " << tsos.globalMomentum() << endl;
262  if( _index == ir ) {
263  cout << "tsos4 = " << tsos.globalMomentum() << endl;
264  result.push_back(tmpTS[ir]);
265  }
266  }
267  */
268  LogTrace(theCategory) << "result: "<<result.size();
269  return;
270  }
271  }
272 
273  if ( !theUpdateStateFlag || usePredictedState ) { //use predicted states
274  LogTrace(theCategory) << "use predicted state: ";
275  for (std::vector<const DetLayer*>::const_iterator inl = nls.begin();
276  inl != nls.end(); inl++ ) {
277 
278  if ( !result.empty() || *inl == 0 ) {
279  break;
280  }
281  std::vector<DetLayer::DetWithState> compatDets = (*inl)->compatibleDets(staState, *propagator(), *estimator());
282  LogTrace(theCategory) << " compatDets "<<compatDets.size();
283  if ( compatDets.empty() ) continue;
284  TrajectorySeed ts = createSeed(compatDets.front().second, compatDets.front().first->geographicalId());
285  result.push_back(ts);
286 
287  }
288  LogTrace(theCategory) << "result: "<<result.size();
289  return;
290  }
291  return;
292 }
const math::XYZVectorD & trackerSurfacePosition() const
Definition: SimTrack.h:36
std::pair< const_iterator, const_iterator > range
iterator range
Definition: RangeMap.h:50
T perp() const
Definition: PV3DBase.h:72
const DirectTrackerNavigation * theNavigation
virtual TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TransientTrackingRecHit &) const =0
virtual RecHit2DLocalPos * clone() const =0
T y() const
Definition: PV3DBase.h:63
GlobalPoint globalPosition() const
const MuonServiceProxy * theService
float charge() const
charge
Definition: CoreSimTrack.cc:3
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:35
double charge(const std::vector< uint8_t > &Ampls)
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
static int position[TOTALCHAMBERS][3]
Definition: ReadPGInfo.cc:509
const Chi2MeasurementEstimator * estimator() const
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
void getRescalingFactor(const TrackCand &staMuon)
C::const_iterator const_iterator
constant access iterator type
Definition: RangeMap.h:43
void push_back(D *&d)
Definition: OwnVector.h:273
bool passSelection(const TrajectoryStateOnSurface &) const
check some quantity and beam-spot compatibility and decide to continue
FreeTrajectoryState const * freeState(bool withErrors=true) const
tuple result
Definition: query.py:137
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
virtual const GeomDet * idToDet(DetId) const
#define LogTrace(id)
edm::Handle< SiTrackerGSMatchedRecHit2DCollection > theGSRecHits
const TrackerGeometry * theGeometry
TrajectoryStateOnSurface transientState(const PTrajectoryStateOnDet &ts, const Surface *surface, const MagneticField *field)
const TrajectoryStateUpdator * updator() const
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
T eta() const
Definition: PV3DBase.h:76
const GSSiTrackerRecHit2DLocalPos * hit() const
Definition: TrackerRecHit.h:76
GlobalVector globalMomentum() const
std::vector< const DetLayer * > compatibleLayers(const FreeTrajectoryState &fts, PropagationDirection timeDirection) const
find compatible layers for a given trajectory state
DetId geographicalId() const
const BasicVectorType & basicVector() const
Definition: PV3DBase.h:56
edm::ESHandle< TransientTrackingRecHitBuilder > theTTRHBuilder
std::vector< SimTrack > SimTrackContainer
const TrajectoryStateUpdator* FastTSGFromPropagation::updator ( ) const
inlineprivate

Definition at line 79 of file FastTSGFromPropagation.h.

References theUpdator.

Referenced by trackerSeeds().

79 {return theUpdator;}
const TrajectoryStateUpdator * theUpdator
void FastTSGFromPropagation::validMeasurements ( std::vector< TrajectoryMeasurement > &  tms) const
private

select valid measurements

Definition at line 448 of file FastTSGFromPropagation.cc.

Referenced by findMeasurements().

448  {
449 
450  std::vector<TrajectoryMeasurement>::iterator tmsend = std::remove_if(tms.begin(), tms.end(), isInvalid());
451  tms.erase(tmsend, tms.end());
452  return;
453 
454 }
double FastTSGFromPropagation::zDis ( const TrajectoryStateOnSurface tsos) const
private

Member Data Documentation

edm::InputTag FastTSGFromPropagation::beamSpot_
private

Definition at line 176 of file FastTSGFromPropagation.h.

Referenced by setEvent().

bool FastTSGFromPropagation::theAdjustAtIp
private

Definition at line 171 of file FastTSGFromPropagation.h.

Referenced by init().

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

Definition at line 179 of file FastTSGFromPropagation.h.

Referenced by passSelection(), and setEvent().

unsigned long long FastTSGFromPropagation::theCacheId_MT
private

Definition at line 128 of file FastTSGFromPropagation.h.

Referenced by init(), and setEvent().

unsigned long long FastTSGFromPropagation::theCacheId_TG
private

Definition at line 129 of file FastTSGFromPropagation.h.

Referenced by init(), and setEvent().

std::string FastTSGFromPropagation::theCategory
private
edm::ParameterSet FastTSGFromPropagation::theConfig
private

Definition at line 175 of file FastTSGFromPropagation.h.

Referenced by init().

MuonErrorMatrix* FastTSGFromPropagation::theErrorMatrixAdjuster
private

Definition at line 169 of file FastTSGFromPropagation.h.

Referenced by adjust(), init(), and ~FastTSGFromPropagation().

const Chi2MeasurementEstimator* FastTSGFromPropagation::theEstimator
private

Definition at line 146 of file FastTSGFromPropagation.h.

Referenced by estimator(), init(), and ~FastTSGFromPropagation().

double FastTSGFromPropagation::theFixedErrorRescaling
private

Definition at line 154 of file FastTSGFromPropagation.h.

Referenced by adjust(), and init().

double FastTSGFromPropagation::theFlexErrorRescaling
private

Definition at line 152 of file FastTSGFromPropagation.h.

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

const TrackerGeometry* FastTSGFromPropagation::theGeometry
private

Definition at line 140 of file FastTSGFromPropagation.h.

Referenced by init(), and trackerSeeds().

edm::Handle<SiTrackerGSMatchedRecHit2DCollection> FastTSGFromPropagation::theGSRecHits
private

Definition at line 181 of file FastTSGFromPropagation.h.

Referenced by setEvent(), and trackerSeeds().

edm::InputTag FastTSGFromPropagation::theHitProducer
private

Definition at line 161 of file FastTSGFromPropagation.h.

Referenced by init(), and setEvent().

double FastTSGFromPropagation::theMaxChi2
private

Definition at line 150 of file FastTSGFromPropagation.h.

Referenced by init().

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

Definition at line 137 of file FastTSGFromPropagation.h.

Referenced by setEvent().

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

Definition at line 182 of file FastTSGFromPropagation.h.

Referenced by findMeasurements_new(), and setEvent().

edm::InputTag FastTSGFromPropagation::theMeasurementTrackerEventTag
private

Definition at line 177 of file FastTSGFromPropagation.h.

Referenced by FastTSGFromPropagation(), and setEvent().

const DirectTrackerNavigation* FastTSGFromPropagation::theNavigation
private

Definition at line 139 of file FastTSGFromPropagation.h.

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

std::string FastTSGFromPropagation::thePropagatorName
private

Definition at line 167 of file FastTSGFromPropagation.h.

Referenced by init(), and propagator().

std::string FastTSGFromPropagation::theResetMethod
private

Definition at line 163 of file FastTSGFromPropagation.h.

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

bool FastTSGFromPropagation::theSelectStateFlag
private

Definition at line 165 of file FastTSGFromPropagation.h.

Referenced by init(), and passSelection().

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

Definition at line 173 of file FastTSGFromPropagation.h.

Referenced by init(), and passSelection().

edm::InputTag FastTSGFromPropagation::theSimTrackCollectionLabel
private

Definition at line 160 of file FastTSGFromPropagation.h.

Referenced by init(), and setEvent().

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

Definition at line 180 of file FastTSGFromPropagation.h.

Referenced by setEvent().

LayerMeasurements FastTSGFromPropagation::theTkLayerMeasurements
private

Definition at line 133 of file FastTSGFromPropagation.h.

Referenced by setEvent(), and tkLayerMeasurements().

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

Definition at line 135 of file FastTSGFromPropagation.h.

Referenced by init(), and setEvent().

TrajectoryStateTransform* FastTSGFromPropagation::theTSTransformer
private

Definition at line 148 of file FastTSGFromPropagation.h.

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

Definition at line 183 of file FastTSGFromPropagation.h.

Referenced by init(), and trackerSeeds().

bool FastTSGFromPropagation::theUpdateStateFlag
private

Definition at line 158 of file FastTSGFromPropagation.h.

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

const TrajectoryStateUpdator* FastTSGFromPropagation::theUpdator
private

Definition at line 144 of file FastTSGFromPropagation.h.

Referenced by init(), updator(), and ~FastTSGFromPropagation().

bool FastTSGFromPropagation::theUseVertexStateFlag
private

Definition at line 156 of file FastTSGFromPropagation.h.

Referenced by init(), and outerTkState().