CMS 3D CMS Logo

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 &par, const MuonServiceProxy *, edm::ConsumesCollector &iC)
 
 FastTSGFromPropagation (const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
 constructor More...
 
void init (const MuonServiceProxy *) override
 initialize More...
 
void setEvent (const edm::Event &) override
 set an event More...
 
void trackerSeeds (const TrackCand &, const TrackingRegion &, const TrackerTopology *tTopo, std::vector< TrajectorySeed > &) override
 generate seed(s) for a track More...
 
 ~FastTSGFromPropagation () override
 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< TrajectoryMeasurementfindMeasurements (const DetLayer *, const TrajectoryStateOnSurface &) const
 look for measurements on the first compatible layer 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 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< FastTrackerRecHitCombinationCollectionrecHitCombinations
 
edm::EDGetTokenT< FastTrackerRecHitCombinationCollectionrecHitCombinationsToken_
 
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 Chi2MeasurementEstimatortheEstimator
 
double theFixedErrorRescaling
 
double theFlexErrorRescaling
 
const TrackerGeometrytheGeometry
 
double theMaxChi2
 
edm::ESHandle< MeasurementTrackertheMeasTracker
 
edm::Handle< MeasurementTrackerEventtheMeasTrackerEvent
 
edm::EDGetTokenT< MeasurementTrackerEventtheMeasurementTrackerEventToken_
 
std::unique_ptr< const DirectTrackerNavigationtheNavigation
 
std::string thePropagatorName
 
std::string theResetMethod
 
bool theSelectStateFlag
 
const MuonServiceProxytheService
 
double theSigmaZ
 
edm::EDGetTokenT< edm::SimTrackContainertheSimTrackCollectionToken_
 
edm::Handle< edm::SimTrackContainertheSimTracks
 
edm::ESHandle< GeometricSearchTrackertheTracker
 
edm::ESHandle< TransientTrackingRecHitBuildertheTTRHBuilder
 
bool theUpdateStateFlag
 
std::unique_ptr< const TrajectoryStateUpdatortheUpdator
 
bool theUseVertexStateFlag
 

Additional Inherited Members

- Public Types inherited from TrackerSeedGenerator
typedef std::vector< TrajectorySeedBTSeedCollection
 
typedef std::pair< const Trajectory *, reco::TrackRefTrackCand
 
- 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 48 of file FastTSGFromPropagation.h.

Constructor & Destructor Documentation

◆ FastTSGFromPropagation() [1/2]

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

constructor

Definition at line 48 of file FastTSGFromPropagation.cc.

49  : FastTSGFromPropagation(iConfig, nullptr, iC) {}

◆ FastTSGFromPropagation() [2/2]

FastTSGFromPropagation::FastTSGFromPropagation ( const edm::ParameterSet par,
const MuonServiceProxy service,
edm::ConsumesCollector iC 
)

Definition at line 51 of file FastTSGFromPropagation.cc.

54  : theCategory("FastSimulation|Muons|FastTSGFromPropagation"),
55  theTracker(),
56  theNavigation(),
58  theUpdator(),
59  theEstimator(),
60  theSigmaZ(0.0),
61  theConfig(iConfig),
63  iC.consumes<edm::SimTrackContainer>(theConfig.getParameter<edm::InputTag>("SimTrackCollectionLabel"))),
66  beamSpot_(iC.consumes<reco::BeamSpot>(iConfig.getParameter<edm::InputTag>("beamSpot"))),
68  iC.consumes<MeasurementTrackerEvent>(iConfig.getParameter<edm::InputTag>("MeasurementTrackerEvent"))) {}

◆ ~FastTSGFromPropagation()

FastTSGFromPropagation::~FastTSGFromPropagation ( )
override

destructor

Definition at line 70 of file FastTSGFromPropagation.cc.

70 { LogTrace(theCategory) << " FastTSGFromPropagation dtor called "; }

References LogTrace, and theCategory.

Member Function Documentation

◆ adjust() [1/2]

void FastTSGFromPropagation::adjust ( FreeTrajectoryState state) const
private

adjust the error matrix of the FTS

Definition at line 514 of file FastTSGFromPropagation.cc.

514  {
515  //rescale the error
516  if (theResetMethod == "discreate") {
517  state.rescaleError(theFlexErrorRescaling);
518  return;
519  }
520 
521  //rescale the error
522  if (theResetMethod == "fixed" || !theErrorMatrixAdjuster) {
523  state.rescaleError(theFixedErrorRescaling);
524  return;
525  }
526 
527  CurvilinearTrajectoryError oMat = state.curvilinearError();
528  CurvilinearTrajectoryError sfMat = theErrorMatrixAdjuster->get(state.momentum()); //FIXME with position
529  MuonErrorMatrix::multiply(oMat, sfMat);
530 
531  state = FreeTrajectoryState(state.parameters(), oMat);
532 }

References MuonErrorMatrix::multiply(), theErrorMatrixAdjuster, theFixedErrorRescaling, theFlexErrorRescaling, and theResetMethod.

Referenced by innerState(), and outerTkState().

◆ adjust() [2/2]

void FastTSGFromPropagation::adjust ( TrajectoryStateOnSurface state) const
private

adjust the error matrix of the TSOS

Definition at line 534 of file FastTSGFromPropagation.cc.

534  {
535  //rescale the error
536  if (theResetMethod == "discreate") {
537  state.rescaleError(theFlexErrorRescaling);
538  return;
539  }
540 
541  if (theResetMethod == "fixed" || !theErrorMatrixAdjuster) {
542  state.rescaleError(theFixedErrorRescaling);
543  return;
544  }
545 
546  CurvilinearTrajectoryError oMat = state.curvilinearError();
547  CurvilinearTrajectoryError sfMat = theErrorMatrixAdjuster->get(state.globalMomentum()); //FIXME with position
548  MuonErrorMatrix::multiply(oMat, sfMat);
549 
550  state =
551  TrajectoryStateOnSurface(state.weight(), state.globalParameters(), oMat, state.surface(), state.surfaceSide());
552 }

References MuonErrorMatrix::multiply(), theErrorMatrixAdjuster, theFixedErrorRescaling, theFlexErrorRescaling, and theResetMethod.

◆ createSeed() [1/2]

TrajectorySeed FastTSGFromPropagation::createSeed ( const TrajectoryStateOnSurface tsos,
const DetId id 
) const
private

create a hitless seed from a trajectory state

Definition at line 432 of file FastTSGFromPropagation.cc.

432  {
434  return createSeed(tsos, container, id);
435 }

Referenced by trackerSeeds().

◆ createSeed() [2/2]

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 437 of file FastTSGFromPropagation.cc.

439  {
441  return TrajectorySeed(seedTSOS, container, oppositeToMomentum);
442 }

References oppositeToMomentum, and trajectoryStateTransform::persistentState().

◆ dxyDis()

double FastTSGFromPropagation::dxyDis ( const TrajectoryStateOnSurface tsos) const
private

◆ estimator()

const Chi2MeasurementEstimator* FastTSGFromPropagation::estimator ( void  ) const
inlineprivate

Definition at line 80 of file FastTSGFromPropagation.h.

80 { return theEstimator.get(); }

References theEstimator.

Referenced by findMeasurements(), and trackerSeeds().

◆ findMeasurements()

std::vector< TrajectoryMeasurement > FastTSGFromPropagation::findMeasurements ( const DetLayer nl,
const TrajectoryStateOnSurface staState 
) const
private

look for measurements on the first compatible layer

Definition at line 450 of file FastTSGFromPropagation.cc.

451  {
452  std::vector<TrajectoryMeasurement> result;
453 
454  std::vector<DetLayer::DetWithState> compatDets = nl->compatibleDets(staState, *propagator(), *estimator());
455  if (compatDets.empty())
456  return result;
457 
458  for (std::vector<DetLayer::DetWithState>::const_iterator idws = compatDets.begin(); idws != compatDets.end();
459  ++idws) {
460  if (idws->second.isValid() && (idws->first)) {
461  std::vector<TrajectoryMeasurement> tmptm =
462  theMeasTrackerEvent->idToDet(idws->first->geographicalId())
463  .fastMeasurements(idws->second, idws->second, *propagator(), *estimator());
464  //validMeasurements(tmptm);
465  // if ( tmptm.size() > 2 ) {
466  // std::stable_sort(tmptm.begin(),tmptm.end(),increasingEstimate());
467  // result.insert(result.end(),tmptm.begin(), tmptm.begin()+2);
468  // } else {
469  result.insert(result.end(), tmptm.begin(), tmptm.end());
470  // }
471  }
472  }
473 
474  return result;
475 }

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

Referenced by trackerSeeds().

◆ getRescalingFactor()

void FastTSGFromPropagation::getRescalingFactor ( const TrackCand staMuon)
private

Definition at line 503 of file FastTSGFromPropagation.cc.

503  {
504  float pt = (staMuon.second)->pt();
505  if (pt < 13.0)
507  else if (pt < 30.0)
509  else
511  return;
512 }

References DiDispStaMuonMonitor_cfi::pt, and theFlexErrorRescaling.

Referenced by trackerSeeds().

◆ init()

void FastTSGFromPropagation::init ( const MuonServiceProxy service)
overridevirtual

initialize

Reimplemented from TrackerSeedGenerator.

Definition at line 305 of file FastTSGFromPropagation.cc.

305  {
306  theMaxChi2 = theConfig.getParameter<double>("MaxChi2");
307 
308  theFixedErrorRescaling = theConfig.getParameter<double>("ErrorRescaling");
309 
310  theFlexErrorRescaling = 1.0;
311 
313 
314  if (theResetMethod != "discrete" && theResetMethod != "fixed" && theResetMethod != "matrix") {
315  edm::LogError("FastTSGFromPropagation") << "Wrong error rescaling method: " << theResetMethod << "\n"
316  << "Possible choices are: discrete, fixed, matrix.\n"
317  << "Use discrete method" << std::endl;
318  theResetMethod = "discrete";
319  }
320 
321  theEstimator = std::make_unique<Chi2MeasurementEstimator>(theMaxChi2);
322 
323  theCacheId_MT = 0;
324 
325  theCacheId_TG = 0;
326 
328 
330 
331  theUseVertexStateFlag = theConfig.getParameter<bool>("UseVertexState");
332 
333  theUpdateStateFlag = theConfig.getParameter<bool>("UpdateState");
334 
335  theSelectStateFlag = theConfig.getParameter<bool>("SelectState");
336 
337  theUpdator = std::make_unique<KFUpdator>();
338 
339  theSigmaZ = theConfig.getParameter<double>("SigmaZ");
340 
342  if (theResetMethod == "matrix" && !errorMatrixPset.empty()) {
343  theAdjustAtIp = errorMatrixPset.getParameter<bool>("atIP");
344  theErrorMatrixAdjuster = std::make_unique<MuonErrorMatrix>(errorMatrixPset);
345  } else {
346  theAdjustAtIp = false;
347  theErrorMatrixAdjuster.reset();
348  }
349 
350  theService->eventSetup().get<TrackerRecoGeometryRecord>().get(theTracker);
351  theNavigation = std::make_unique<DirectTrackerNavigation>(theTracker);
352 
354  theService->eventSetup().get<TrackerDigiGeometryRecord>().get(geometry);
355  theGeometry = &(*geometry);
356 
357  theService->eventSetup().get<TransientRecHitRecord>().get("WithTrackAngle", theTTRHBuilder);
358 }

References HLT_FULL_cff::errorMatrixPset, relativeConstraints::geometry, get, 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.

◆ innerState()

TrajectoryStateOnSurface FastTSGFromPropagation::innerState ( const TrackCand staMuon) const
private

Definition at line 395 of file FastTSGFromPropagation.cc.

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  } else if (staMuon.first->direction() == oppositeToMomentum) {
402  innerTS = staMuon.first->lastMeasurement().updatedState();
403  }
404  } else {
406  *(staMuon.second), *theService->trackingGeometry(), &*theService->magneticField());
407  }
408  //rescale the error
409  adjust(innerTS);
410 
411  return innerTS;
412 }

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

Referenced by outerTkState().

◆ outerTkState()

TrajectoryStateOnSurface FastTSGFromPropagation::outerTkState ( const TrackCand staMuon) const
private

Definition at line 414 of file FastTSGFromPropagation.cc.

414  {
416 
417  if (theUseVertexStateFlag && staMuon.second->pt() > 1.0) {
418  FreeTrajectoryState iniState =
419  trajectoryStateTransform::initialFreeState(*(staMuon.second), &*theService->magneticField());
420  //rescale the error at IP
421  adjust(iniState);
422 
423  StateOnTrackerBound fromInside(&*(theService->propagator("PropagatorWithMaterial")));
424  result = fromInside(iniState);
425  } else {
426  StateOnTrackerBound fromOutside(&*propagator());
427  result = fromOutside(innerState(staMuon));
428  }
429  return result;
430 }

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

Referenced by trackerSeeds().

◆ passSelection()

bool FastTSGFromPropagation::passSelection ( const TrajectoryStateOnSurface tsos) const
private

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

Definition at line 477 of file FastTSGFromPropagation.cc.

477  {
478  if (!theSelectStateFlag)
479  return true;
480  else {
481  if (theBeamSpot.isValid()) {
482  return ((fabs(zDis(tsos) - theBeamSpot->z0()) < theSigmaZ));
483 
484  } else {
485  return ((fabs(zDis(tsos)) < theSigmaZ));
486  // double theDxyCut = 100;
487  // return ( (zDis(tsos) < theSigmaZ) && (dxyDis(tsos) < theDxyCut) );
488  }
489  }
490 }

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

Referenced by trackerSeeds().

◆ propagator()

edm::ESHandle<Propagator> FastTSGFromPropagation::propagator ( ) const
inlineprivate

◆ setEvent()

void FastTSGFromPropagation::setEvent ( const edm::Event iEvent)
overridevirtual

set an event

Reimplemented from TrackerSeedGenerator.

Definition at line 360 of file FastTSGFromPropagation.cc.

360  {
361  iEvent.getByToken(beamSpot_, theBeamSpot);
362 
363  // retrieve the MC truth (SimTracks)
366 
367  unsigned long long newCacheId_MT = theService->eventSetup().get<CkfComponentsRecord>().cacheIdentifier();
368 
369  if (theUpdateStateFlag && newCacheId_MT != theCacheId_MT) {
370  LogTrace(theCategory) << "Measurment Tracker Geometry changed!";
371  theCacheId_MT = newCacheId_MT;
372  theService->eventSetup().get<CkfComponentsRecord>().get(theMeasTracker);
373  }
374 
375  if (theUpdateStateFlag) {
377  }
378 
379  bool trackerGeomChanged = false;
380 
381  unsigned long long newCacheId_TG = theService->eventSetup().get<TrackerRecoGeometryRecord>().cacheIdentifier();
382 
383  if (newCacheId_TG != theCacheId_TG) {
384  LogTrace(theCategory) << "Tracker Reco Geometry changed!";
385  theCacheId_TG = newCacheId_TG;
386  theService->eventSetup().get<TrackerRecoGeometryRecord>().get(theTracker);
387  trackerGeomChanged = true;
388  }
389 
390  if (trackerGeomChanged && theTracker.product()) {
391  theNavigation = std::make_unique<DirectTrackerNavigation>(theTracker);
392  }
393 }

References beamSpot_, get, iEvent, LogTrace, edm::ESHandle< T >::product(), recHitCombinations, recHitCombinationsToken_, theBeamSpot, theCacheId_MT, theCacheId_TG, theCategory, theMeasTracker, theMeasTrackerEvent, theMeasurementTrackerEventToken_, theNavigation, theService, theSimTrackCollectionToken_, theSimTracks, theTracker, and theUpdateStateFlag.

◆ stateOnDet()

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 554 of file FastTSGFromPropagation.cc.

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());
567  pts = PTrajectoryStateOnDet(ts.localParameters(), ts.globalMomentum().perp(), localErrors, detid, surfaceSide);
568 }

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

◆ trackerSeeds()

void FastTSGFromPropagation::trackerSeeds ( const TrackCand staMuon,
const TrackingRegion region,
const TrackerTopology tTopo,
std::vector< TrajectorySeed > &  result 
)
override

generate seed(s) for a track

Definition at line 72 of file FastTSGFromPropagation.cc.

75  {
76  if (theResetMethod == "discrete")
77  getRescalingFactor(staMuon);
78 
79  TrajectoryStateOnSurface staState = outerTkState(staMuon);
80 
81  if (!staState.isValid()) {
82  LogTrace(theCategory) << "Error: initial state from L2 muon is invalid.";
83  return;
84  }
85 
86  LogTrace(theCategory) << "begin of trackerSeed:\n staState pos: " << staState.globalPosition()
87  << " mom: " << staState.globalMomentum() << "pos eta: " << staState.globalPosition().eta()
88  << "mom eta: " << staState.globalMomentum().eta();
89 
90  std::vector<const DetLayer*> nls = theNavigation->compatibleLayers(*(staState.freeState()), oppositeToMomentum);
91 
92  LogTrace(theCategory) << " compatible layers: " << nls.size();
93 
94  if (nls.empty())
95  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(); inl != nls.end(); inl++, ndesLayer++) {
105  if ((*inl == nullptr))
106  break;
107  // if ( (inl != nls.end()-1 ) && ( (*inl)->subDetector() == GeomDetEnumerators::TEC ) && ( (*(inl+1))->subDetector() == GeomDetEnumerators::TOB ) ) continue;
108  alltm = findMeasurements(*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 "
117  << staState.globalMomentum().perp();
118  usePredictedState = true;
119  } else {
120  LogTrace(theCategory) << " Measurements for seeds: " << alltm.size();
121  std::stable_sort(alltm.begin(), alltm.end(), increasingEstimate());
122  if (alltm.size() > 5)
123  alltm.erase(alltm.begin() + 5, alltm.end());
124 
125  const edm::SimTrackContainer* simTracks = &(*theSimTracks);
126  TrajectorySeedHitCandidate theSeedHits;
127  std::vector<TrajectorySeedHitCandidate> outerHits;
128 
129  //std::vector<TrajectorySeed> tmpTS;
130  bool isMatch = false;
131  for (std::vector<TrajectoryMeasurement>::const_iterator itm = alltm.begin(); itm != alltm.end(); itm++) {
132  const TrajectoryStateOnSurface seedState = itm->predictedState();
133  double preY = seedState.globalPosition().y();
134 
135  // Check SimTrack
136  FreeTrajectoryState simtrack_trackerstate;
137  for (unsigned icomb = 0; icomb < recHitCombinations->size(); ++icomb) {
138  const auto& recHitCombination = (*recHitCombinations)[icomb];
139  if (recHitCombination.empty())
140  continue;
141  int32_t simTrackId = recHitCombination.back()->simTrackId(0);
142  const SimTrack& simtrack = (*simTracks)[simTrackId];
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(
152  position, momentum, charge, &*theService->magneticField().product());
153  simtrack_trackerstate = FreeTrajectoryState(glb_parameters);
154 
155  unsigned int outerId = 0;
156  for (const auto& recHitRef : recHitCombination) {
157  theSeedHits = TrajectorySeedHitCandidate(recHitRef.get(), tTopo);
158  unsigned int id = theSeedHits.hit()->geographicalId().rawId();
159  if (preY < 0) {
160  if (id > outerId)
161  outerId = id;
162  } else {
163  if (id > outerId)
164  outerId = id;
165  }
166  }
167  for (const auto& recHitRef : recHitCombination) {
168  theSeedHits = TrajectorySeedHitCandidate(recHitRef.get(), tTopo);
169  if (itm->recHit()->hit()->geographicalId().rawId() == theSeedHits.hit()->geographicalId().rawId()) {
170  auto aTrackingRecHit = std::unique_ptr<TrackingRecHit>(theSeedHits.hit()->clone());
172  if (!recHit)
173  continue;
174  TrajectoryStateOnSurface updatedTSOS = updator()->update(seedState, *(recHit));
175  if (updatedTSOS.isValid() && passSelection(updatedTSOS)) {
177  container.push_back(recHit->hit()->clone());
179  TrajectorySeed ts = createSeed(updatedTSOS, container, recHit->geographicalId());
180  // check direction
181  const TrajectorySeed* aSeed = &ts;
182  PTrajectoryStateOnDet PTSOD = aSeed->startingState();
183 
184  const GeomDet* g = theGeometry->idToDet(PTSOD.detId());
186  PTSOD, &(g->surface()), &*theService->magneticField().product());
187  if (tsos.globalMomentum().basicVector() * seedState.globalMomentum().basicVector() < 0.)
188  continue;
189  result.push_back(ts);
190  isMatch = true;
191  }
192  }
193  }
194  }
195  }
196  if (!isMatch) {
197  // if there is no hits w.r.t. TM, find outermost hit
198  for (std::vector<TrajectoryMeasurement>::const_iterator itm = alltm.begin(); itm != alltm.end(); itm++) {
199  const TrajectoryStateOnSurface seedState = itm->predictedState();
200  double preY = seedState.globalPosition().y();
201 
202  // Check SimTrack
203  TrackingRecHit* aTrackingRecHit;
204  FreeTrajectoryState simtrack_trackerstate;
205 
206  for (unsigned icomb = 0; icomb < recHitCombinations->size(); ++icomb) {
207  const auto& recHitCombination = (*recHitCombinations)[icomb];
208  if (recHitCombination.empty())
209  continue;
210  int32_t simTrackId = recHitCombination.back()->simTrackId(0);
211  const SimTrack& simtrack = (*simTracks)[simTrackId];
212 
214  simtrack.trackerSurfacePosition().y(),
215  simtrack.trackerSurfacePosition().z());
216  GlobalVector momentum(simtrack.trackerSurfaceMomentum().x(),
217  simtrack.trackerSurfaceMomentum().y(),
218  simtrack.trackerSurfaceMomentum().z());
219  int charge = (int)simtrack.charge();
220  GlobalTrajectoryParameters glb_parameters(
221  position, momentum, charge, &*theService->magneticField().product());
222  simtrack_trackerstate = FreeTrajectoryState(glb_parameters);
223 
224  unsigned int outerId = 0;
225  for (const auto& recHitRef : recHitCombination) {
226  theSeedHits = TrajectorySeedHitCandidate(recHitRef.get(), tTopo);
227  unsigned int id = theSeedHits.hit()->geographicalId().rawId();
228  if (preY < 0) {
229  if (id > outerId)
230  outerId = id;
231  } else {
232  if (id > outerId)
233  outerId = id;
234  }
235  }
236  for (const auto& recHitRef : recHitCombination) {
237  theSeedHits = TrajectorySeedHitCandidate(recHitRef.get(), tTopo);
238  if (outerId == theSeedHits.hit()->geographicalId().rawId()) {
239  aTrackingRecHit = theSeedHits.hit()->clone();
241  if (!recHit)
242  continue;
243  TrajectoryStateOnSurface updatedTSOS = updator()->update(seedState, *(recHit));
244  if (updatedTSOS.isValid() && passSelection(updatedTSOS)) {
246  container.push_back(recHit->hit()->clone());
248  TrajectorySeed ts = createSeed(updatedTSOS, container, recHit->geographicalId());
249  // check direction
250  const TrajectorySeed* aSeed = &ts;
251  PTrajectoryStateOnDet PTSOD = aSeed->startingState();
252 
253  const GeomDet* g = theGeometry->idToDet(PTSOD.detId());
255  PTSOD, &(g->surface()), &*theService->magneticField().product());
256  if (tsos.globalMomentum().basicVector() * seedState.globalMomentum().basicVector() < 0.)
257  continue;
258  result.push_back(ts);
259  }
260  }
261  }
262  }
263  }
264  }
265 
266  /*
267  for( unsigned ir = 0; ir < tmpTS.size(); ir++ ) {
268  const BasicTrajectorySeed* aSeed = &((tmpTS)[ir]);
269  PTrajectoryStateOnDet PTSOD = aSeed->startingState();
270 
271  DetId seedDetId(PTSOD.detId());
272  const GeomDet * g = theGeometry->idToDet(seedDetId);
273  TrajectoryStateOnSurface tsos = trajectoryStateTransform::transientState(PTSOD, &(g->surface()), &*theService->magneticField().product());
274  cout << "tsos3 = " << tsos.globalMomentum() << endl;
275  if( _index == ir ) {
276  cout << "tsos4 = " << tsos.globalMomentum() << endl;
277  result.push_back(tmpTS[ir]);
278  }
279  }
280  */
281  LogTrace(theCategory) << "result: " << result.size();
282  return;
283  }
284  }
285 
286  if (!theUpdateStateFlag || usePredictedState) { //use predicted states
287  LogTrace(theCategory) << "use predicted state: ";
288  for (std::vector<const DetLayer*>::const_iterator inl = nls.begin(); inl != nls.end(); inl++) {
289  if (!result.empty() || *inl == nullptr) {
290  break;
291  }
292  std::vector<DetLayer::DetWithState> compatDets = (*inl)->compatibleDets(staState, *propagator(), *estimator());
293  LogTrace(theCategory) << " compatDets " << compatDets.size();
294  if (compatDets.empty())
295  continue;
296  TrajectorySeed ts = createSeed(compatDets.front().second, compatDets.front().first->geographicalId());
297  result.push_back(ts);
298  }
299  LogTrace(theCategory) << "result: " << result.size();
300  return;
301  }
302  return;
303 }

References PV3DBase< T, PVType, FrameType >::basicVector(), TransientTrackingRecHitBuilder::build(), CoreSimTrack::charge(), ALCARECOTkAlJpsiMuMu_cff::charge, FastTrackerRecHit::clone(), createSeed(), PTrajectoryStateOnDet::detId(), estimator(), PV3DBase< T, PVType, FrameType >::eta(), findMeasurements(), TrajectoryStateOnSurface::freeState(), g, TrackingRecHit::geographicalId(), getRescalingFactor(), TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::globalPosition(), TrajectorySeedHitCandidate::hit(), triggerObjects_cff::id, TrackerGeometry::idToDet(), createfilelist::int, TrajectoryStateOnSurface::isValid(), LogTrace, oppositeToMomentum, outerTkState(), passSelection(), PV3DBase< T, PVType, FrameType >::perp(), position, propagator(), edm::OwnVector< T, P >::push_back(), DetId::rawId(), rpcPointValidation_cfi::recHit, recHitCombinations, mps_fire::result, fastTrackingUtilities::setRecHitCombinationIndex(), TrackCandidateProducer_cfi::simTracks, theCategory, theGeometry, theNavigation, theResetMethod, theService, theTTRHBuilder, theUpdateStateFlag, SimTrack::trackerSurfaceMomentum(), SimTrack::trackerSurfacePosition(), trajectoryStateTransform::transientState(), TrajectoryStateUpdator::update(), updator(), and PV3DBase< T, PVType, FrameType >::y().

◆ updator()

const TrajectoryStateUpdator* FastTSGFromPropagation::updator ( ) const
inlineprivate

Definition at line 78 of file FastTSGFromPropagation.h.

78 { return theUpdator.get(); }

References theUpdator.

Referenced by trackerSeeds().

◆ validMeasurements()

void FastTSGFromPropagation::validMeasurements ( std::vector< TrajectoryMeasurement > &  tms) const
private

select valid measurements

Definition at line 444 of file FastTSGFromPropagation.cc.

444  {
445  std::vector<TrajectoryMeasurement>::iterator tmsend = std::remove_if(tms.begin(), tms.end(), isInvalid());
446  tms.erase(tmsend, tms.end());
447  return;
448 }

◆ zDis()

double FastTSGFromPropagation::zDis ( const TrajectoryStateOnSurface tsos) const
private

Member Data Documentation

◆ beamSpot_

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

Definition at line 170 of file FastTSGFromPropagation.h.

Referenced by setEvent().

◆ recHitCombinations

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

Definition at line 175 of file FastTSGFromPropagation.h.

Referenced by setEvent(), and trackerSeeds().

◆ recHitCombinationsToken_

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

Definition at line 169 of file FastTSGFromPropagation.h.

Referenced by setEvent().

◆ theAdjustAtIp

bool FastTSGFromPropagation::theAdjustAtIp
private

Definition at line 163 of file FastTSGFromPropagation.h.

Referenced by init().

◆ theBeamSpot

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

Definition at line 173 of file FastTSGFromPropagation.h.

Referenced by passSelection(), and setEvent().

◆ theCacheId_MT

unsigned long long FastTSGFromPropagation::theCacheId_MT
private

Definition at line 126 of file FastTSGFromPropagation.h.

Referenced by init(), and setEvent().

◆ theCacheId_TG

unsigned long long FastTSGFromPropagation::theCacheId_TG
private

Definition at line 127 of file FastTSGFromPropagation.h.

Referenced by init(), and setEvent().

◆ theCategory

std::string FastTSGFromPropagation::theCategory
private

Definition at line 129 of file FastTSGFromPropagation.h.

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

◆ theConfig

const edm::ParameterSet FastTSGFromPropagation::theConfig
private

Definition at line 167 of file FastTSGFromPropagation.h.

Referenced by init().

◆ theErrorMatrixAdjuster

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

Definition at line 161 of file FastTSGFromPropagation.h.

Referenced by adjust(), and init().

◆ theEstimator

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

Definition at line 143 of file FastTSGFromPropagation.h.

Referenced by estimator(), and init().

◆ theFixedErrorRescaling

double FastTSGFromPropagation::theFixedErrorRescaling
private

Definition at line 149 of file FastTSGFromPropagation.h.

Referenced by adjust(), and init().

◆ theFlexErrorRescaling

double FastTSGFromPropagation::theFlexErrorRescaling
private

Definition at line 147 of file FastTSGFromPropagation.h.

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

◆ theGeometry

const TrackerGeometry* FastTSGFromPropagation::theGeometry
private

Definition at line 137 of file FastTSGFromPropagation.h.

Referenced by init(), and trackerSeeds().

◆ theMaxChi2

double FastTSGFromPropagation::theMaxChi2
private

Definition at line 145 of file FastTSGFromPropagation.h.

Referenced by init().

◆ theMeasTracker

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

Definition at line 133 of file FastTSGFromPropagation.h.

Referenced by setEvent().

◆ theMeasTrackerEvent

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

Definition at line 176 of file FastTSGFromPropagation.h.

Referenced by findMeasurements(), and setEvent().

◆ theMeasurementTrackerEventToken_

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

Definition at line 171 of file FastTSGFromPropagation.h.

Referenced by setEvent().

◆ theNavigation

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

Definition at line 135 of file FastTSGFromPropagation.h.

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

◆ thePropagatorName

std::string FastTSGFromPropagation::thePropagatorName
private

Definition at line 159 of file FastTSGFromPropagation.h.

Referenced by init(), and propagator().

◆ theResetMethod

std::string FastTSGFromPropagation::theResetMethod
private

Definition at line 155 of file FastTSGFromPropagation.h.

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

◆ theSelectStateFlag

bool FastTSGFromPropagation::theSelectStateFlag
private

Definition at line 157 of file FastTSGFromPropagation.h.

Referenced by init(), and passSelection().

◆ theService

const MuonServiceProxy* FastTSGFromPropagation::theService
private

◆ theSigmaZ

double FastTSGFromPropagation::theSigmaZ
private

Definition at line 165 of file FastTSGFromPropagation.h.

Referenced by init(), and passSelection().

◆ theSimTrackCollectionToken_

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

Definition at line 168 of file FastTSGFromPropagation.h.

Referenced by setEvent().

◆ theSimTracks

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

Definition at line 174 of file FastTSGFromPropagation.h.

Referenced by setEvent().

◆ theTracker

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

Definition at line 131 of file FastTSGFromPropagation.h.

Referenced by init(), and setEvent().

◆ theTTRHBuilder

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

Definition at line 177 of file FastTSGFromPropagation.h.

Referenced by init(), and trackerSeeds().

◆ theUpdateStateFlag

bool FastTSGFromPropagation::theUpdateStateFlag
private

Definition at line 153 of file FastTSGFromPropagation.h.

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

◆ theUpdator

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

Definition at line 141 of file FastTSGFromPropagation.h.

Referenced by init(), and updator().

◆ theUseVertexStateFlag

bool FastTSGFromPropagation::theUseVertexStateFlag
private

Definition at line 151 of file FastTSGFromPropagation.h.

Referenced by init(), and outerTkState().

Vector3DBase
Definition: Vector3DBase.h:8
TrackerGeometry::idToDet
const TrackerGeomDet * idToDet(DetId) const override
Definition: TrackerGeometry.cc:193
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
FastTSGFromPropagation::outerTkState
TrajectoryStateOnSurface outerTkState(const TrackCand &) const
Definition: FastTSGFromPropagation.cc:414
FastTSGFromPropagation::updator
const TrajectoryStateUpdator * updator() const
Definition: FastTSGFromPropagation.h:78
service
Definition: service.py:1
mps_fire.i
i
Definition: mps_fire.py:428
FastTSGFromPropagation::theUpdateStateFlag
bool theUpdateStateFlag
Definition: FastTSGFromPropagation.h:153
MuonErrorMatrix::multiply
static void multiply(CurvilinearTrajectoryError &initial_error, const CurvilinearTrajectoryError &scale_error)
multiply term by term the two matrix
Definition: MuonErrorMatrix.cc:445
GeomDet
Definition: GeomDet.h:27
trajectoryStateTransform::initialFreeState
FreeTrajectoryState initialFreeState(const reco::Track &tk, const MagneticField *field, bool withErr=true)
Definition: TrajectoryStateTransform.cc:58
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
reco::BeamSpot::z0
double z0() const
z coordinate
Definition: BeamSpot.h:65
trajectoryStateTransform::persistentState
PTrajectoryStateOnDet persistentState(const TrajectoryStateOnSurface &ts, unsigned int detid)
Definition: TrajectoryStateTransform.cc:14
TrajectoryStateOnSurface::globalPosition
GlobalPoint globalPosition() const
Definition: TrajectoryStateOnSurface.h:65
geometry
Definition: geometry.py:1
fastTrackingUtilities::setRecHitCombinationIndex
void setRecHitCombinationIndex(edm::OwnVector< T > &recHits, int32_t icomb)
Definition: FastTrackingUtilities.h:11
SimTrack::trackerSurfaceMomentum
const math::XYZTLorentzVectorD & trackerSurfaceMomentum() const
Definition: SimTrack.h:42
TransientRecHitRecord
Definition: TransientRecHitRecord.h:14
oppositeToMomentum
Definition: PropagationDirection.h:4
TrackCandidateProducer_cfi.simTracks
simTracks
Definition: TrackCandidateProducer_cfi.py:15
relativeConstraints.geometry
geometry
Definition: relativeConstraints.py:39
FastTSGFromPropagation::theGeometry
const TrackerGeometry * theGeometry
Definition: FastTSGFromPropagation.h:137
CoreSimTrack::charge
float charge() const
charge
Definition: CoreSimTrack.cc:17
GeometricSearchDet::compatibleDets
virtual std::vector< DetWithState > compatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
Definition: GeometricSearchDet.cc:35
TrackerRecoGeometryRecord
Definition: TrackerRecoGeometryRecord.h:14
FastTSGFromPropagation::estimator
const Chi2MeasurementEstimator * estimator() const
Definition: FastTSGFromPropagation.h:80
FastTSGFromPropagation::theNavigation
std::unique_ptr< const DirectTrackerNavigation > theNavigation
Definition: FastTSGFromPropagation.h:135
LocalTrajectoryError::matrix
const AlgebraicSymMatrix55 & matrix() const
Definition: LocalTrajectoryError.h:60
TransientTrackingRecHitBuilder::build
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
FastTSGFromPropagation::beamSpot_
edm::EDGetTokenT< reco::BeamSpot > beamSpot_
Definition: FastTSGFromPropagation.h:170
TrajectorySeedHitCandidate
Definition: TrajectorySeedHitCandidate.h:23
TrackingRecHit::geographicalId
DetId geographicalId() const
Definition: TrackingRecHit.h:120
rpcPointValidation_cfi.recHit
recHit
Definition: rpcPointValidation_cfi.py:7
FastTSGFromPropagation::recHitCombinations
edm::Handle< FastTrackerRecHitCombinationCollection > recHitCombinations
Definition: FastTSGFromPropagation.h:175
FastTSGFromPropagation::theSigmaZ
double theSigmaZ
Definition: FastTSGFromPropagation.h:165
FastTSGFromPropagation::recHitCombinationsToken_
edm::EDGetTokenT< FastTrackerRecHitCombinationCollection > recHitCombinationsToken_
Definition: FastTSGFromPropagation.h:169
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
TrajectorySeedHitCandidate::hit
const FastTrackerRecHit * hit() const
The Hit itself.
Definition: TrajectorySeedHitCandidate.h:36
PTrajectoryStateOnDet::detId
unsigned int detId() const
Definition: PTrajectoryStateOnDet.h:65
TrajectoryStateOnSurface::freeState
FreeTrajectoryState const * freeState(bool withErrors=true) const
Definition: TrajectoryStateOnSurface.h:58
CurvilinearTrajectoryError
Definition: CurvilinearTrajectoryError.h:27
FastTSGFromPropagation::innerState
TrajectoryStateOnSurface innerState(const TrackCand &) const
Definition: FastTSGFromPropagation.cc:395
CkfComponentsRecord
Definition: CkfComponentsRecord.h:22
FastTSGFromPropagation::theEstimator
std::unique_ptr< const Chi2MeasurementEstimator > theEstimator
Definition: FastTSGFromPropagation.h:143
FastTSGFromPropagation::theFixedErrorRescaling
double theFixedErrorRescaling
Definition: FastTSGFromPropagation.h:149
visualization-live-secondInstance_cfg.m
m
Definition: visualization-live-secondInstance_cfg.py:72
TrackerDigiGeometryRecord
Definition: TrackerDigiGeometryRecord.h:15
FastTSGFromPropagation::propagator
edm::ESHandle< Propagator > propagator() const
Definition: FastTSGFromPropagation.h:82
reco::BeamSpot
Definition: BeamSpot.h:21
edm::ESHandle< TrackerGeometry >
FastTSGFromPropagation::theErrorMatrixAdjuster
std::unique_ptr< MuonErrorMatrix > theErrorMatrixAdjuster
Definition: FastTSGFromPropagation.h:161
edm::ConsumesCollector::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: ConsumesCollector.h:55
GlobalTrajectoryParameters
Definition: GlobalTrajectoryParameters.h:15
dqmdumpme.k
k
Definition: dqmdumpme.py:60
Point3DBase< float, GlobalTag >
FastTSGFromPropagation::theTTRHBuilder
edm::ESHandle< TransientTrackingRecHitBuilder > theTTRHBuilder
Definition: FastTSGFromPropagation.h:177
FastTSGFromPropagation::theMaxChi2
double theMaxChi2
Definition: FastTSGFromPropagation.h:145
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
FastTSGFromPropagation::FastTSGFromPropagation
FastTSGFromPropagation(const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
constructor
Definition: FastTSGFromPropagation.cc:48
TrajectoryStateOnSurface::localParameters
const LocalTrajectoryParameters & localParameters() const
Definition: TrajectoryStateOnSurface.h:73
FastTrackerRecHitCombinationCollection
std::vector< FastTrackerRecHitCombination > FastTrackerRecHitCombinationCollection
Definition: FastTrackerRecHitCollection.h:12
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
TrajectoryStateUpdator::update
virtual TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const =0
FastTSGFromPropagation::theUseVertexStateFlag
bool theUseVertexStateFlag
Definition: FastTSGFromPropagation.h:151
SimTrack::trackerSurfacePosition
const math::XYZVectorD & trackerSurfacePosition() const
Definition: SimTrack.h:40
FastTSGFromPropagation::findMeasurements
std::vector< TrajectoryMeasurement > findMeasurements(const DetLayer *, const TrajectoryStateOnSurface &) const
look for measurements on the first compatible layer
Definition: FastTSGFromPropagation.cc:450
FastTSGFromPropagation::theCacheId_TG
unsigned long long theCacheId_TG
Definition: FastTSGFromPropagation.h:127
edm::ParameterSet
Definition: ParameterSet.h:47
FastTSGFromPropagation::theMeasTracker
edm::ESHandle< MeasurementTracker > theMeasTracker
Definition: FastTSGFromPropagation.h:133
FastTSGFromPropagation::theMeasTrackerEvent
edm::Handle< MeasurementTrackerEvent > theMeasTrackerEvent
Definition: FastTSGFromPropagation.h:176
FastTSGFromPropagation::theUpdator
std::unique_ptr< const TrajectoryStateUpdator > theUpdator
Definition: FastTSGFromPropagation.h:141
position
static int position[264][3]
Definition: ReadPGInfo.cc:289
PV3DBase::eta
T eta() const
Definition: PV3DBase.h:73
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
FastTSGFromPropagation::theBeamSpot
edm::Handle< reco::BeamSpot > theBeamSpot
Definition: FastTSGFromPropagation.h:173
FastTSGFromPropagation::theSimTracks
edm::Handle< edm::SimTrackContainer > theSimTracks
Definition: FastTSGFromPropagation.h:174
TrackingRecHit::ConstRecHitPointer
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
Definition: TrackingRecHit.h:25
createfilelist.int
int
Definition: createfilelist.py:10
MuonServiceProxy::propagator
edm::ESHandle< Propagator > propagator(std::string propagatorName) const
get the propagator
Definition: MuonServiceProxy.cc:177
FastTSGFromPropagation::theSimTrackCollectionToken_
edm::EDGetTokenT< edm::SimTrackContainer > theSimTrackCollectionToken_
Definition: FastTSGFromPropagation.h:168
iEvent
int iEvent
Definition: GenABIO.cc:224
trajectoryStateTransform::transientState
TrajectoryStateOnSurface transientState(const PTrajectoryStateOnDet &ts, const Surface *surface, const MagneticField *field)
Definition: TrajectoryStateTransform.cc:35
FastTSGFromPropagation::theCacheId_MT
unsigned long long theCacheId_MT
Definition: FastTSGFromPropagation.h:126
StateOnTrackerBound
Definition: StateOnTrackerBound.h:13
FastTSGFromPropagation::createSeed
TrajectorySeed createSeed(const TrajectoryStateOnSurface &, const DetId &) const
create a hitless seed from a trajectory state
Definition: FastTSGFromPropagation.cc:432
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
get
#define get
RPCpg::pts
static const double pts[33]
Definition: Constants.h:30
PV3DBase::basicVector
const BasicVectorType & basicVector() const
Definition: PV3DBase.h:53
TrackingRecHit
Definition: TrackingRecHit.h:21
FastTSGFromPropagation::theCategory
std::string theCategory
Definition: FastTSGFromPropagation.h:129
FastTSGFromPropagation::thePropagatorName
std::string thePropagatorName
Definition: FastTSGFromPropagation.h:159
TrajectoryStateOnSurface::globalMomentum
GlobalVector globalMomentum() const
Definition: TrajectoryStateOnSurface.h:66
FastTSGFromPropagation::theResetMethod
std::string theResetMethod
Definition: FastTSGFromPropagation.h:155
FastTSGFromPropagation::theTracker
edm::ESHandle< GeometricSearchTracker > theTracker
Definition: FastTSGFromPropagation.h:131
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
FastTSGFromPropagation::zDis
double zDis(const TrajectoryStateOnSurface &tsos) const
Definition: FastTSGFromPropagation.cc:498
RunInfoPI::state
state
Definition: RunInfoPayloadInspectoHelper.h:16
FreeTrajectoryState
Definition: FreeTrajectoryState.h:27
edm::SimTrackContainer
std::vector< SimTrack > SimTrackContainer
Definition: SimTrackContainer.h:12
SimTrack
Definition: SimTrack.h:9
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:29
FastTSGFromPropagation::theService
const MuonServiceProxy * theService
Definition: FastTSGFromPropagation.h:139
FastTSGFromPropagation::theSelectStateFlag
bool theSelectStateFlag
Definition: FastTSGFromPropagation.h:157
TrajectorySeed
Definition: TrajectorySeed.h:18
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::OwnVector::push_back
void push_back(D *&d)
Definition: OwnVector.h:326
FastTSGFromPropagation::theConfig
const edm::ParameterSet theConfig
Definition: FastTSGFromPropagation.h:167
FastTSGFromPropagation::passSelection
bool passSelection(const TrajectoryStateOnSurface &) const
check some quantity and beam-spot compatibility and decide to continue
Definition: FastTSGFromPropagation.cc:477
mps_fire.result
result
Definition: mps_fire.py:311
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:234
PTrajectoryStateOnDet
Definition: PTrajectoryStateOnDet.h:10
FastTSGFromPropagation::theFlexErrorRescaling
double theFlexErrorRescaling
Definition: FastTSGFromPropagation.h:147
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
trajectoryStateTransform::innerStateOnSurface
TrajectoryStateOnSurface innerStateOnSurface(const reco::Track &tk, const TrackingGeometry &geom, const MagneticField *field, bool withErr=true)
Definition: TrajectoryStateTransform.cc:110
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
FastTSGFromPropagation::theMeasurementTrackerEventToken_
edm::EDGetTokenT< MeasurementTrackerEvent > theMeasurementTrackerEventToken_
Definition: FastTSGFromPropagation.h:171
FastTSGFromPropagation::getRescalingFactor
void getRescalingFactor(const TrackCand &staMuon)
Definition: FastTSGFromPropagation.cc:503
TrajectoryStateOnSurface::localError
const LocalTrajectoryError & localError() const
Definition: TrajectoryStateOnSurface.h:77
HLT_FULL_cff.errorMatrixPset
errorMatrixPset
Definition: HLT_FULL_cff.py:46146
AlgebraicSymMatrix55
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
Definition: AlgebraicROOTObjects.h:23
TrajectoryStateOnSurface::surfaceSide
SurfaceSide surfaceSide() const
Position relative to material, defined relative to momentum vector.
Definition: TrajectoryStateOnSurface.h:89
PV3DBase::perp
T perp() const
Definition: PV3DBase.h:69
edm::InputTag
Definition: InputTag.h:15
FastTrackerRecHit::clone
FastTrackerRecHit * clone() const override
Definition: FastTrackerRecHit.h:66
alongMomentum
Definition: PropagationDirection.h:4
TrajectoryStateOnSurface::isValid
bool isValid() const
Definition: TrajectoryStateOnSurface.h:54
g
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
edm::OwnVector< TrackingRecHit >
FastTSGFromPropagation::theAdjustAtIp
bool theAdjustAtIp
Definition: FastTSGFromPropagation.h:163
FastTSGFromPropagation::adjust
void adjust(FreeTrajectoryState &) const
adjust the error matrix of the FTS
Definition: FastTSGFromPropagation.cc:514
HLTSiStripMonitoring_cff.MeasurementTrackerEvent
MeasurementTrackerEvent
Definition: HLTSiStripMonitoring_cff.py:224