CMS 3D CMS Logo

FastTSGFromPropagation.cc
Go to the documentation of this file.
2 
18 
21 // #include "RecoTracker/MeasurementDet/interface/TkStripMeasurementDet.h"
25 
28 
32 
41 
43 
44 using namespace std;
45 
47  : FastTSGFromPropagation(iConfig, nullptr, iC) {}
48 
52  : theCategory("FastSimulation|Muons|FastTSGFromPropagation"),
53  theTracker(),
54  theNavigation(),
55  theService(service),
56  theUpdator(),
57  theEstimator(),
58  theSigmaZ(0.0),
59  theConfig(iConfig),
60  theSimTrackCollectionToken_(
61  iC.consumes<edm::SimTrackContainer>(theConfig.getParameter<edm::InputTag>("SimTrackCollectionLabel"))),
62  recHitCombinationsToken_(
63  iC.consumes<FastTrackerRecHitCombinationCollection>(theConfig.getParameter<edm::InputTag>("HitProducer"))),
64  beamSpot_(iC.consumes<reco::BeamSpot>(iConfig.getParameter<edm::InputTag>("beamSpot"))),
65  theMeasurementTrackerEventToken_(
66  iC.consumes<MeasurementTrackerEvent>(iConfig.getParameter<edm::InputTag>("MeasurementTrackerEvent"))) {}
67 
68 FastTSGFromPropagation::~FastTSGFromPropagation() { LogTrace(theCategory) << " FastTSGFromPropagation dtor called "; }
69 
71  const TrackingRegion& region,
72  const TrackerTopology* tTopo,
73  std::vector<TrajectorySeed>& result) {
74  if (theResetMethod == "discrete")
75  getRescalingFactor(staMuon);
76 
77  TrajectoryStateOnSurface staState = outerTkState(staMuon);
78 
79  if (!staState.isValid()) {
80  LogTrace(theCategory) << "Error: initial state from L2 muon is invalid.";
81  return;
82  }
83 
84  LogTrace(theCategory) << "begin of trackerSeed:\n staState pos: " << staState.globalPosition()
85  << " mom: " << staState.globalMomentum() << "pos eta: " << staState.globalPosition().eta()
86  << "mom eta: " << staState.globalMomentum().eta();
87 
88  std::vector<const DetLayer*> nls = theNavigation->compatibleLayers(*(staState.freeState()), oppositeToMomentum);
89 
90  LogTrace(theCategory) << " compatible layers: " << nls.size();
91 
92  if (nls.empty())
93  return;
94 
95  int ndesLayer = 0;
96 
97  bool usePredictedState = false;
98 
99  if (theUpdateStateFlag) { //use updated states
100  std::vector<TrajectoryMeasurement> alltm;
101 
102  for (std::vector<const DetLayer*>::const_iterator inl = nls.begin(); inl != nls.end(); inl++, ndesLayer++) {
103  if ((*inl == nullptr))
104  break;
105  // if ( (inl != nls.end()-1 ) && ( (*inl)->subDetector() == GeomDetEnumerators::TEC ) && ( (*(inl+1))->subDetector() == GeomDetEnumerators::TOB ) ) continue;
106  alltm = findMeasurements(*inl, staState);
107  if ((!alltm.empty())) {
108  LogTrace(theCategory) << "final compatible layer: " << ndesLayer;
109  break;
110  }
111  }
112 
113  if (alltm.empty()) {
114  LogTrace(theCategory) << " NO Measurements Found: eta: " << staState.globalPosition().eta() << "pt "
115  << staState.globalMomentum().perp();
116  usePredictedState = true;
117  } else {
118  LogTrace(theCategory) << " Measurements for seeds: " << alltm.size();
119  std::stable_sort(alltm.begin(), alltm.end(), increasingEstimate());
120  if (alltm.size() > 5)
121  alltm.erase(alltm.begin() + 5, alltm.end());
122 
123  const edm::SimTrackContainer* simTracks = &(*theSimTracks);
124  TrajectorySeedHitCandidate theSeedHits;
125  std::vector<TrajectorySeedHitCandidate> outerHits;
126 
127  //std::vector<TrajectorySeed> tmpTS;
128  bool isMatch = false;
129  for (std::vector<TrajectoryMeasurement>::const_iterator itm = alltm.begin(); itm != alltm.end(); itm++) {
130  const TrajectoryStateOnSurface seedState = itm->predictedState();
131  double preY = seedState.globalPosition().y();
132 
133  // Check SimTrack
134  FreeTrajectoryState simtrack_trackerstate;
135  for (unsigned icomb = 0; icomb < recHitCombinations->size(); ++icomb) {
136  const auto& recHitCombination = (*recHitCombinations)[icomb];
137  if (recHitCombination.empty())
138  continue;
139  int32_t simTrackId = recHitCombination.back()->simTrackId(0);
140  const SimTrack& simtrack = (*simTracks)[simTrackId];
141 
143  simtrack.trackerSurfacePosition().y(),
144  simtrack.trackerSurfacePosition().z());
145  GlobalVector momentum(simtrack.trackerSurfaceMomentum().x(),
146  simtrack.trackerSurfaceMomentum().y(),
147  simtrack.trackerSurfaceMomentum().z());
148  int charge = (int)simtrack.charge();
149  GlobalTrajectoryParameters glb_parameters(
150  position, momentum, charge, &*theService->magneticField().product());
151  simtrack_trackerstate = FreeTrajectoryState(glb_parameters);
152 
153  unsigned int outerId = 0;
154  for (const auto& recHitRef : recHitCombination) {
155  theSeedHits = TrajectorySeedHitCandidate(recHitRef.get(), tTopo);
156  unsigned int id = theSeedHits.hit()->geographicalId().rawId();
157  if (preY < 0) {
158  if (id > outerId)
159  outerId = id;
160  } else {
161  if (id > outerId)
162  outerId = id;
163  }
164  }
165  for (const auto& recHitRef : recHitCombination) {
166  theSeedHits = TrajectorySeedHitCandidate(recHitRef.get(), tTopo);
167  if (itm->recHit()->hit()->geographicalId().rawId() == theSeedHits.hit()->geographicalId().rawId()) {
168  auto aTrackingRecHit = std::unique_ptr<TrackingRecHit>(theSeedHits.hit()->clone());
170  if (!recHit)
171  continue;
172  TrajectoryStateOnSurface updatedTSOS = updator()->update(seedState, *(recHit));
173  if (updatedTSOS.isValid() && passSelection(updatedTSOS)) {
175  container.push_back(recHit->hit()->clone());
177  TrajectorySeed ts = createSeed(updatedTSOS, container, recHit->geographicalId());
178  // check direction
179  const TrajectorySeed* aSeed = &ts;
180  PTrajectoryStateOnDet PTSOD = aSeed->startingState();
181 
182  const GeomDet* g = theGeometry->idToDet(PTSOD.detId());
184  PTSOD, &(g->surface()), &*theService->magneticField().product());
185  if (tsos.globalMomentum().basicVector() * seedState.globalMomentum().basicVector() < 0.)
186  continue;
187  result.push_back(ts);
188  isMatch = true;
189  }
190  }
191  }
192  }
193  }
194  if (!isMatch) {
195  // if there is no hits w.r.t. TM, find outermost hit
196  for (std::vector<TrajectoryMeasurement>::const_iterator itm = alltm.begin(); itm != alltm.end(); itm++) {
197  const TrajectoryStateOnSurface seedState = itm->predictedState();
198  double preY = seedState.globalPosition().y();
199 
200  // Check SimTrack
201  TrackingRecHit* aTrackingRecHit;
202  FreeTrajectoryState simtrack_trackerstate;
203 
204  for (unsigned icomb = 0; icomb < recHitCombinations->size(); ++icomb) {
205  const auto& recHitCombination = (*recHitCombinations)[icomb];
206  if (recHitCombination.empty())
207  continue;
208  int32_t simTrackId = recHitCombination.back()->simTrackId(0);
209  const SimTrack& simtrack = (*simTracks)[simTrackId];
210 
212  simtrack.trackerSurfacePosition().y(),
213  simtrack.trackerSurfacePosition().z());
214  GlobalVector momentum(simtrack.trackerSurfaceMomentum().x(),
215  simtrack.trackerSurfaceMomentum().y(),
216  simtrack.trackerSurfaceMomentum().z());
217  int charge = (int)simtrack.charge();
218  GlobalTrajectoryParameters glb_parameters(
219  position, momentum, charge, &*theService->magneticField().product());
220  simtrack_trackerstate = FreeTrajectoryState(glb_parameters);
221 
222  unsigned int outerId = 0;
223  for (const auto& recHitRef : recHitCombination) {
224  theSeedHits = TrajectorySeedHitCandidate(recHitRef.get(), tTopo);
225  unsigned int id = theSeedHits.hit()->geographicalId().rawId();
226  if (preY < 0) {
227  if (id > outerId)
228  outerId = id;
229  } else {
230  if (id > outerId)
231  outerId = id;
232  }
233  }
234  for (const auto& recHitRef : recHitCombination) {
235  theSeedHits = TrajectorySeedHitCandidate(recHitRef.get(), tTopo);
236  if (outerId == theSeedHits.hit()->geographicalId().rawId()) {
237  aTrackingRecHit = theSeedHits.hit()->clone();
239  if (!recHit)
240  continue;
241  TrajectoryStateOnSurface updatedTSOS = updator()->update(seedState, *(recHit));
242  if (updatedTSOS.isValid() && passSelection(updatedTSOS)) {
244  container.push_back(recHit->hit()->clone());
246  TrajectorySeed ts = createSeed(updatedTSOS, container, recHit->geographicalId());
247  // check direction
248  const TrajectorySeed* aSeed = &ts;
249  PTrajectoryStateOnDet PTSOD = aSeed->startingState();
250 
251  const GeomDet* g = theGeometry->idToDet(PTSOD.detId());
253  PTSOD, &(g->surface()), &*theService->magneticField().product());
254  if (tsos.globalMomentum().basicVector() * seedState.globalMomentum().basicVector() < 0.)
255  continue;
256  result.push_back(ts);
257  }
258  }
259  }
260  }
261  }
262  }
263 
264  /*
265  for( unsigned ir = 0; ir < tmpTS.size(); ir++ ) {
266  const BasicTrajectorySeed* aSeed = &((tmpTS)[ir]);
267  PTrajectoryStateOnDet PTSOD = aSeed->startingState();
268 
269  DetId seedDetId(PTSOD.detId());
270  const GeomDet * g = theGeometry->idToDet(seedDetId);
271  TrajectoryStateOnSurface tsos = trajectoryStateTransform::transientState(PTSOD, &(g->surface()), &*theService->magneticField().product());
272  cout << "tsos3 = " << tsos.globalMomentum() << endl;
273  if( _index == ir ) {
274  cout << "tsos4 = " << tsos.globalMomentum() << endl;
275  result.push_back(tmpTS[ir]);
276  }
277  }
278  */
279  LogTrace(theCategory) << "result: " << result.size();
280  return;
281  }
282  }
283 
284  if (!theUpdateStateFlag || usePredictedState) { //use predicted states
285  LogTrace(theCategory) << "use predicted state: ";
286  for (std::vector<const DetLayer*>::const_iterator inl = nls.begin(); inl != nls.end(); inl++) {
287  if (!result.empty() || *inl == nullptr) {
288  break;
289  }
290  std::vector<DetLayer::DetWithState> compatDets = (*inl)->compatibleDets(staState, *propagator(), *estimator());
291  LogTrace(theCategory) << " compatDets " << compatDets.size();
292  if (compatDets.empty())
293  continue;
294  TrajectorySeed ts = createSeed(compatDets.front().second, compatDets.front().first->geographicalId());
295  result.push_back(ts);
296  }
297  LogTrace(theCategory) << "result: " << result.size();
298  return;
299  }
300  return;
301 }
302 
304  theMaxChi2 = theConfig.getParameter<double>("MaxChi2");
305 
306  theFixedErrorRescaling = theConfig.getParameter<double>("ErrorRescaling");
307 
308  theFlexErrorRescaling = 1.0;
309 
311 
312  if (theResetMethod != "discrete" && theResetMethod != "fixed" && theResetMethod != "matrix") {
313  edm::LogError("FastTSGFromPropagation") << "Wrong error rescaling method: " << theResetMethod << "\n"
314  << "Possible choices are: discrete, fixed, matrix.\n"
315  << "Use discrete method" << std::endl;
316  theResetMethod = "discrete";
317  }
318 
320 
321  theCacheId_MT = 0;
322 
323  theCacheId_TG = 0;
324 
326 
328 
329  theUseVertexStateFlag = theConfig.getParameter<bool>("UseVertexState");
330 
331  theUpdateStateFlag = theConfig.getParameter<bool>("UpdateState");
332 
333  theSelectStateFlag = theConfig.getParameter<bool>("SelectState");
334 
335  theUpdator.reset(new KFUpdator());
336 
337  theSigmaZ = theConfig.getParameter<double>("SigmaZ");
338 
340  if (theResetMethod == "matrix" && !errorMatrixPset.empty()) {
341  theAdjustAtIp = errorMatrixPset.getParameter<bool>("atIP");
343  } else {
344  theAdjustAtIp = false;
345  theErrorMatrixAdjuster.reset();
346  }
347 
348  theService->eventSetup().get<TrackerRecoGeometryRecord>().get(theTracker);
350 
352  theService->eventSetup().get<TrackerDigiGeometryRecord>().get(geometry);
353  theGeometry = &(*geometry);
354 
355  theService->eventSetup().get<TransientRecHitRecord>().get("WithTrackAngle", theTTRHBuilder);
356 }
357 
359  iEvent.getByToken(beamSpot_, theBeamSpot);
360 
361  // retrieve the MC truth (SimTracks)
364 
365  unsigned long long newCacheId_MT = theService->eventSetup().get<CkfComponentsRecord>().cacheIdentifier();
366 
367  if (theUpdateStateFlag && newCacheId_MT != theCacheId_MT) {
368  LogTrace(theCategory) << "Measurment Tracker Geometry changed!";
369  theCacheId_MT = newCacheId_MT;
370  theService->eventSetup().get<CkfComponentsRecord>().get(theMeasTracker);
371  }
372 
373  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.product()) {
390  }
391 }
392 
394  TrajectoryStateOnSurface innerTS;
395 
396  if (staMuon.first && staMuon.first->isValid()) {
397  if (staMuon.first->direction() == alongMomentum) {
398  innerTS = staMuon.first->firstMeasurement().updatedState();
399  } else if (staMuon.first->direction() == oppositeToMomentum) {
400  innerTS = staMuon.first->lastMeasurement().updatedState();
401  }
402  } else {
404  *(staMuon.second), *theService->trackingGeometry(), &*theService->magneticField());
405  }
406  //rescale the error
407  adjust(innerTS);
408 
409  return innerTS;
410 }
411 
414 
415  if (theUseVertexStateFlag && staMuon.second->pt() > 1.0) {
416  FreeTrajectoryState iniState =
417  trajectoryStateTransform::initialFreeState(*(staMuon.second), &*theService->magneticField());
418  //rescale the error at IP
419  adjust(iniState);
420 
421  StateOnTrackerBound fromInside(&*(theService->propagator("PropagatorWithMaterial")));
422  result = fromInside(iniState);
423  } else {
424  StateOnTrackerBound fromOutside(&*propagator());
425  result = fromOutside(innerState(staMuon));
426  }
427  return result;
428 }
429 
432  return createSeed(tsos, container, id);
433 }
434 
436  const edm::OwnVector<TrackingRecHit>& container,
437  const DetId& id) const {
439  return TrajectorySeed(seedTSOS, container, oppositeToMomentum);
440 }
441 
442 void FastTSGFromPropagation::validMeasurements(std::vector<TrajectoryMeasurement>& tms) const {
443  std::vector<TrajectoryMeasurement>::iterator tmsend = std::remove_if(tms.begin(), tms.end(), isInvalid());
444  tms.erase(tmsend, tms.end());
445  return;
446 }
447 
448 std::vector<TrajectoryMeasurement> FastTSGFromPropagation::findMeasurements(
449  const DetLayer* nl, const TrajectoryStateOnSurface& staState) const {
450  std::vector<TrajectoryMeasurement> result;
451 
452  std::vector<DetLayer::DetWithState> compatDets = nl->compatibleDets(staState, *propagator(), *estimator());
453  if (compatDets.empty())
454  return result;
455 
456  for (std::vector<DetLayer::DetWithState>::const_iterator idws = compatDets.begin(); idws != compatDets.end();
457  ++idws) {
458  if (idws->second.isValid() && (idws->first)) {
459  std::vector<TrajectoryMeasurement> tmptm =
460  theMeasTrackerEvent->idToDet(idws->first->geographicalId())
461  .fastMeasurements(idws->second, idws->second, *propagator(), *estimator());
462  //validMeasurements(tmptm);
463  // if ( tmptm.size() > 2 ) {
464  // std::stable_sort(tmptm.begin(),tmptm.end(),increasingEstimate());
465  // result.insert(result.end(),tmptm.begin(), tmptm.begin()+2);
466  // } else {
467  result.insert(result.end(), tmptm.begin(), tmptm.end());
468  // }
469  }
470  }
471 
472  return result;
473 }
474 
476  if (!theSelectStateFlag)
477  return true;
478  else {
479  if (theBeamSpot.isValid()) {
480  return ((fabs(zDis(tsos) - theBeamSpot->z0()) < theSigmaZ));
481 
482  } else {
483  return ((fabs(zDis(tsos)) < theSigmaZ));
484  // double theDxyCut = 100;
485  // return ( (zDis(tsos) < theSigmaZ) && (dxyDis(tsos) < theDxyCut) );
486  }
487  }
488 }
489 
491  return fabs(
492  (-tsos.globalPosition().x() * tsos.globalMomentum().y() + tsos.globalPosition().y() * tsos.globalMomentum().x()) /
493  tsos.globalMomentum().perp());
494 }
495 
497  return tsos.globalPosition().z() -
498  tsos.globalPosition().perp() * tsos.globalMomentum().z() / tsos.globalMomentum().perp();
499 }
500 
502  float pt = (staMuon.second)->pt();
503  if (pt < 13.0)
505  else if (pt < 30.0)
507  else
509  return;
510 }
511 
513  //rescale the error
514  if (theResetMethod == "discreate") {
516  return;
517  }
518 
519  //rescale the error
520  if (theResetMethod == "fixed" || !theErrorMatrixAdjuster) {
522  return;
523  }
524 
526  CurvilinearTrajectoryError sfMat = theErrorMatrixAdjuster->get(state.momentum()); //FIXME with position
527  MuonErrorMatrix::multiply(oMat, sfMat);
528 
529  state = FreeTrajectoryState(state.parameters(), oMat);
530 }
531 
533  //rescale the error
534  if (theResetMethod == "discreate") {
536  return;
537  }
538 
539  if (theResetMethod == "fixed" || !theErrorMatrixAdjuster) {
541  return;
542  }
543 
545  CurvilinearTrajectoryError sfMat = theErrorMatrixAdjuster->get(state.globalMomentum()); //FIXME with position
546  MuonErrorMatrix::multiply(oMat, sfMat);
547 
548  state =
549  TrajectoryStateOnSurface(state.weight(), state.globalParameters(), oMat, state.surface(), state.surfaceSide());
550 }
551 
553  unsigned int detid,
554  PTrajectoryStateOnDet& pts) const {
555  const AlgebraicSymMatrix55& m = ts.localError().matrix();
556  int dim = 5;
557  float localErrors[15];
558  int k = 0;
559  for (int i = 0; i < dim; ++i) {
560  for (int j = 0; j <= i; ++j) {
561  localErrors[k++] = m(i, j);
562  }
563  }
564  int surfaceSide = static_cast<int>(ts.surfaceSide());
565  pts = PTrajectoryStateOnDet(ts.localParameters(), ts.globalMomentum().perp(), localErrors, detid, surfaceSide);
566 }
Vector3DBase
Definition: Vector3DBase.h:8
TrackerGeometry::idToDet
const TrackerGeomDet * idToDet(DetId) const override
Definition: TrackerGeometry.cc:193
Propagator.h
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
FastTSGFromPropagation::outerTkState
TrajectoryStateOnSurface outerTkState(const TrackCand &) const
Definition: FastTSGFromPropagation.cc:412
Chi2MeasurementEstimator.h
FreeTrajectoryState::momentum
GlobalVector momentum() const
Definition: FreeTrajectoryState.h:68
FastTSGFromPropagation::updator
const TrajectoryStateUpdator * updator() const
Definition: FastTSGFromPropagation.h:78
TrajectoryStateOnSurface.h
TrackerSeedGenerator::TrackCand
std::pair< const Trajectory *, reco::TrackRef > TrackCand
Definition: TrackerSeedGenerator.h:30
service
Definition: service.py:1
geometry
ESHandle< TrackerGeometry > geometry
Definition: TkLasBeamFitter.cc:200
mps_fire.i
i
Definition: mps_fire.py:355
MeasurementTrackerEvent.h
MessageLogger.h
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:449
TrackerGeometry.h
GeomDet
Definition: GeomDet.h:27
trajectoryStateTransform::initialFreeState
FreeTrajectoryState initialFreeState(const reco::Track &tk, const MagneticField *field, bool withErr=true)
Definition: TrajectoryStateTransform.cc:58
FastTSGFromPropagation::increasingEstimate
Definition: FastTSGFromPropagation.h:113
align::BeamSpot
Definition: StructureType.h:89
DetLayer
Definition: DetLayer.h:21
FastTrackingUtilities.h
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
FastTSGFromPropagation::validMeasurements
void validMeasurements(std::vector< TrajectoryMeasurement > &) const
select valid measurements
Definition: FastTSGFromPropagation.cc:442
reco::BeamSpot::z0
double z0() const
z coordinate
Definition: BeamSpot.h:65
FastTSGFromPropagation::dxyDis
double dxyDis(const TrajectoryStateOnSurface &tsos) const
Definition: FastTSGFromPropagation.cc:490
edm
HLT enums.
Definition: AlignableModifier.h:19
TrackerTopology
Definition: TrackerTopology.h:16
trajectoryStateTransform::persistentState
PTrajectoryStateOnDet persistentState(const TrajectoryStateOnSurface &ts, unsigned int detid)
Definition: TrajectoryStateTransform.cc:14
TransientRecHitRecord.h
FastTSGFromPropagation::trackerSeeds
void trackerSeeds(const TrackCand &, const TrackingRegion &, const TrackerTopology *tTopo, std::vector< TrajectorySeed > &) override
generate seed(s) for a track
Definition: FastTSGFromPropagation.cc:70
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:39
TransientRecHitRecord
Definition: TransientRecHitRecord.h:14
FastTSGFromPropagation::init
void init(const MuonServiceProxy *) override
initialize
Definition: FastTSGFromPropagation.cc:303
TrackerRecoGeometryRecord.h
oppositeToMomentum
Definition: PropagationDirection.h:4
TrackCandidateProducer_cfi.simTracks
simTracks
Definition: TrackCandidateProducer_cfi.py:15
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:11
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
CkfComponentsRecord.h
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
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
MuonServiceProxy_cff.MuonServiceProxy
MuonServiceProxy
Definition: MuonServiceProxy_cff.py:15
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
FastTSGFromPropagation::setEvent
void setEvent(const edm::Event &) override
set an event
Definition: FastTSGFromPropagation.cc:358
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
DetId
Definition: DetId.h:17
GeometricSearchTracker.h
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
TrajectorySeedHitCandidate::hit
const FastTrackerRecHit * hit() const
The Hit itself.
Definition: TrajectorySeedHitCandidate.h:36
TrackerTopology.h
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:393
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
LayerMeasurements.h
Service.h
FreeTrajectoryState::curvilinearError
const CurvilinearTrajectoryError & curvilinearError() const
Definition: FreeTrajectoryState.h:89
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
TrajectorySeedHitCandidate.h
Chi2MeasurementEstimator_cfi.Chi2MeasurementEstimator
Chi2MeasurementEstimator
Definition: Chi2MeasurementEstimator_cfi.py:5
FastTSGFromPropagation.h
edm::ESHandle< TrackerGeometry >
DirectTrackerNavigation.h
FastTSGFromPropagation::theErrorMatrixAdjuster
std::unique_ptr< MuonErrorMatrix > theErrorMatrixAdjuster
Definition: FastTSGFromPropagation.h:161
TrajectoryStateOnSurface::weight
double weight() const
Definition: TrajectoryStateOnSurface.h:80
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:46
TFileService.h
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
FastTSGFromPropagation::theUseVertexStateFlag
bool theUseVertexStateFlag
Definition: FastTSGFromPropagation.h:151
TrajectoryStateUpdator::update
virtual TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const =0
TrackerDigiGeometryRecord.h
SimTrack::trackerSurfacePosition
const math::XYZVectorD & trackerSurfacePosition() const
Definition: SimTrack.h:37
KFUpdator.h
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
FastTSGFromPropagation::findMeasurements
std::vector< TrajectoryMeasurement > findMeasurements(const DetLayer *, const TrajectoryStateOnSurface &) const
look for measurements on the first compatible layer
Definition: FastTSGFromPropagation.cc:448
FastTSGFromPropagation::theCacheId_TG
unsigned long long theCacheId_TG
Definition: FastTSGFromPropagation.h:127
edm::ParameterSet
Definition: ParameterSet.h:36
FastTSGFromPropagation::theMeasTracker
edm::ESHandle< MeasurementTracker > theMeasTracker
Definition: FastTSGFromPropagation.h:133
edm::LogError
Definition: MessageLogger.h:183
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
FreeTrajectoryState::parameters
const GlobalTrajectoryParameters & parameters() const
Definition: FreeTrajectoryState.h:79
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
DirectTrackerNavigation
Definition: DirectTrackerNavigation.h:26
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:430
GenericTransientTrackingRecHit.h
get
#define get
RPCpg::pts
static const double pts[33]
Definition: Constants.h:30
PV3DBase::basicVector
const BasicVectorType & basicVector() const
Definition: PV3DBase.h:53
TrajectoryStateOnSurface::rescaleError
void rescaleError(double factor)
Definition: TrajectoryStateOnSurface.h:82
TrackingRecHit
Definition: TrackingRecHit.h:21
FastTSGFromPropagation::theCategory
std::string theCategory
Definition: FastTSGFromPropagation.h:129
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Trajectory.h
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
GeomDet.h
FastTSGFromPropagation::theTracker
edm::ESHandle< GeometricSearchTracker > theTracker
Definition: FastTSGFromPropagation.h:131
std
Definition: JetResolutionObject.h:76
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
FastTSGFromPropagation::stateOnDet
void stateOnDet(const TrajectoryStateOnSurface &ts, unsigned int detid, PTrajectoryStateOnDet &pts) const
A mere copy (without memory leak) of an existing tracking method.
Definition: FastTSGFromPropagation.cc:552
FastTSGFromPropagation::zDis
double zDis(const TrajectoryStateOnSurface &tsos) const
Definition: FastTSGFromPropagation.cc:496
FreeTrajectoryState
Definition: FreeTrajectoryState.h:27
edm::SimTrackContainer
std::vector< SimTrack > SimTrackContainer
Definition: SimTrackContainer.h:12
SimTrack
Definition: SimTrack.h:6
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:31
FastTSGFromPropagation::theService
const MuonServiceProxy * theService
Definition: FastTSGFromPropagation.h:139
TrajectoryStateOnSurface::curvilinearError
const CurvilinearTrajectoryError & curvilinearError() const
Definition: TrajectoryStateOnSurface.h:72
FastTSGFromPropagation::theSelectStateFlag
bool theSelectStateFlag
Definition: FastTSGFromPropagation.h:157
HLT_2018_cff.region
region
Definition: HLT_2018_cff.py:81479
TrajectorySeed
Definition: TrajectorySeed.h:17
MuonErrorMatrix
Definition: MuonErrorMatrix.h:24
FastTSGFromPropagation::~FastTSGFromPropagation
~FastTSGFromPropagation() override
destructor
Definition: FastTSGFromPropagation.cc:68
TrajectoryStateTransform.h
edm::OwnVector::push_back
void push_back(D *&d)
Definition: OwnVector.h:326
TrajectoryStateOnSurface::surface
const SurfaceType & surface() const
Definition: TrajectoryStateOnSurface.h:78
FastTSGFromPropagation::theConfig
const edm::ParameterSet theConfig
Definition: FastTSGFromPropagation.h:167
TrackingRegion
Definition: TrackingRegion.h:40
FastTSGFromPropagation::passSelection
bool passSelection(const TrajectoryStateOnSurface &) const
check some quantity and beam-spot compatibility and decide to continue
Definition: FastTSGFromPropagation.cc:475
FastTSGFromPropagation
Definition: FastTSGFromPropagation.h:48
mps_fire.result
result
Definition: mps_fire.py:303
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:671
TrajectoryStateOnSurface::globalParameters
const GlobalTrajectoryParameters & globalParameters() const
Definition: TrajectoryStateOnSurface.h:64
PTrajectoryStateOnDet
Definition: PTrajectoryStateOnDet.h:10
HLT_2018_cff.errorMatrixPset
errorMatrixPset
Definition: HLT_2018_cff.py:44406
cms::dd::isMatch
bool isMatch(std::string_view, std::string_view)
StateOnTrackerBound.h
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:501
edm::Event
Definition: Event.h:73
TrajectoryStateOnSurface::localError
const LocalTrajectoryError & localError() const
Definition: TrajectoryStateOnSurface.h:77
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
SimTrackContainer.h
PV3DBase::perp
T perp() const
Definition: PV3DBase.h:69
FastTrackerRecHit::clone
FastTrackerRecHit * clone() const override
Definition: FastTrackerRecHit.h:66
edm::ConsumesCollector
Definition: ConsumesCollector.h:39
alongMomentum
Definition: PropagationDirection.h:4
KFUpdator
Definition: KFUpdator.h:32
TrajectoryStateOnSurface::isValid
bool isValid() const
Definition: TrajectoryStateOnSurface.h:54
FastTSGFromPropagation::isInvalid
Definition: FastTSGFromPropagation.h:119
FreeTrajectoryState::rescaleError
void rescaleError(double factor)
Definition: FreeTrajectoryState.cc:46
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 >
MeasurementDet.h
MeasurementTracker.h
FastTSGFromPropagation::theAdjustAtIp
bool theAdjustAtIp
Definition: FastTSGFromPropagation.h:163
FastTSGFromPropagation::adjust
void adjust(FreeTrajectoryState &) const
adjust the error matrix of the FTS
Definition: FastTSGFromPropagation.cc:512
HLTSiStripMonitoring_cff.MeasurementTrackerEvent
MeasurementTrackerEvent
Definition: HLTSiStripMonitoring_cff.py:224