CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Static Public Member Functions | Private Attributes
TrackExtenderWithMTDT< TrackCollection > Class Template Reference
Inheritance diagram for TrackExtenderWithMTDT< TrackCollection >:
edm::stream::EDProducer<>

Public Types

typedef edm::View< TrackTypeInputCollection
 
typedef TrackCollection::value_type TrackType
 
- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Public Member Functions

reco::Track buildTrack (const reco::Track &, const Trajectory &, const Trajectory &, const reco::BeamSpot &, const MagneticField *field, const Propagator *prop, bool hasMTD, float &pathLength, float &tmtdOut, float &sigmatmtdOut) const
 
reco::TrackExtra buildTrackExtra (const Trajectory &trajectory) const
 
RefitDirection::GeometricalDirection checkRecHitsOrdering (TransientTrackingRecHit::ConstRecHitContainer const &recHits) const
 
string dumpLayer (const DetLayer *layer) const
 
void fillMatchingHits (const DetLayer *, const TrajectoryStateOnSurface &, const Trajectory &, const double, const double, const MTDTrackingDetSetVector &, const Propagator *, const reco::BeamSpot &, const double &, const bool, TransientTrackingRecHit::ConstRecHitContainer &, MTDHitMatchingInfo &) const
 
template<class H , class T >
void fillValueMap (edm::Event &iEvent, const H &handle, const std::vector< T > &vec, const edm::EDPutToken &token) const
 
void produce (edm::Event &ev, const edm::EventSetup &es) final
 
 TrackExtenderWithMTDT (const ParameterSet &pset)
 
TransientTrackingRecHit::ConstRecHitContainer tryBTLLayers (const TrajectoryStateOnSurface &, const Trajectory &traj, const double, const double, const MTDTrackingDetSetVector &, const MTDDetLayerGeometry *, const MagneticField *field, const Propagator *prop, const reco::BeamSpot &bs, const double vtxTime, const bool matchVertex, MTDHitMatchingInfo &bestHit) const
 
TransientTrackingRecHit::ConstRecHitContainer tryETLLayers (const TrajectoryStateOnSurface &, const Trajectory &traj, const double, const double, const MTDTrackingDetSetVector &, const MTDDetLayerGeometry *, const MagneticField *field, const Propagator *prop, const reco::BeamSpot &bs, const double vtxTime, const bool matchVertex, MTDHitMatchingInfo &bestHit) const
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Attributes

edm::EDPutToken assocOrigTrkToken
 
edm::EDPutToken betaOrigTrkToken
 
const float bsTimeSpread_
 
edm::EDGetTokenT< reco::BeamSpotbsToken_
 
const float btlChi2Cut_
 
edm::EDPutToken btlMatchChi2Token
 
edm::EDPutToken btlMatchTimeChi2Token
 
const float btlTimeChi2Cut_
 
edm::ESHandle< TransientTrackBuilderbuilder_
 
edm::ESGetToken< TransientTrackBuilder, TransientTrackRecordbuilderToken_
 
edm::ESGetToken< MTDDetLayerGeometry, MTDRecoGeometryRecorddlgeoToken_
 
const float dzCut_
 
const float estMaxChi2_
 
const float estMaxNSigma_
 
const float etlChi2Cut_
 
edm::EDPutToken etlMatchChi2Token
 
edm::EDPutToken etlMatchTimeChi2Token
 
const float etlTimeChi2Cut_
 
edm::EDGetTokenT< GlobalPointgenVtxPositionToken_
 
edm::EDGetTokenT< float > genVtxTimeToken_
 
edm::ESHandle< GlobalTrackingGeometrygtg_
 
edm::ESGetToken< GlobalTrackingGeometry, GlobalTrackingGeometryRecordgtgToken_
 
edm::ESHandle< TransientTrackingRecHitBuilderhitbuilder_
 
edm::ESGetToken< TransientTrackingRecHitBuilder, TransientRecHitRecordhitbuilderToken_
 
edm::EDGetTokenT< MTDTrackingDetSetVectorhitsToken_
 
edm::ESGetToken< MagneticField, IdealMagneticFieldRecordmagfldToken_
 
const std::string mtdRecHitBuilder_
 
edm::EDPutToken pathLengthOrigTrkToken
 
edm::EDPutToken pathLengthToken
 
edm::EDPutToken pOrigTrkToken
 
const std::string propagator_
 
edm::ESGetToken< Propagator, TrackingComponentsRecordpropToken_
 
edm::EDPutToken sigmat0OrigTrkToken
 
edm::EDPutToken sigmatmtdOrigTrkToken
 
edm::EDPutToken sigmatmtdToken
 
edm::EDPutToken t0OrigTrkToken
 
std::unique_ptr< MeasurementEstimatortheEstimator
 
std::unique_ptr< TrackTransformertheTransformer
 
edm::EDPutToken tmtdOrigTrkToken
 
edm::EDPutToken tmtdToken
 
edm::EDGetTokenT< InputCollectiontracksToken_
 
const std::string transientTrackBuilder_
 
edm::ESGetToken< TrackerTopology, TrackerTopologyRcdttopoToken_
 
const bool updateExtra_
 
const bool updatePattern_
 
const bool updateTraj_
 
const bool useSimVertex_
 
const bool useVertex_
 
edm::EDGetTokenT< VertexCollectionvtxToken_
 

Detailed Description

template<class TrackCollection>
class TrackExtenderWithMTDT< TrackCollection >

Definition at line 284 of file TrackExtenderWithMTD.cc.

Member Typedef Documentation

◆ InputCollection

template<class TrackCollection >
typedef edm::View<TrackType> TrackExtenderWithMTDT< TrackCollection >::InputCollection

Definition at line 287 of file TrackExtenderWithMTD.cc.

◆ TrackType

template<class TrackCollection >
typedef TrackCollection::value_type TrackExtenderWithMTDT< TrackCollection >::TrackType

Definition at line 286 of file TrackExtenderWithMTD.cc.

Constructor & Destructor Documentation

◆ TrackExtenderWithMTDT()

template<class TrackCollection >
TrackExtenderWithMTDT< TrackCollection >::TrackExtenderWithMTDT ( const ParameterSet pset)

Definition at line 423 of file TrackExtenderWithMTD.cc.

424  : tracksToken_(consumes<InputCollection>(iConfig.getParameter<edm::InputTag>("tracksSrc"))),
425  hitsToken_(consumes<MTDTrackingDetSetVector>(iConfig.getParameter<edm::InputTag>("hitsSrc"))),
426  bsToken_(consumes<reco::BeamSpot>(iConfig.getParameter<edm::InputTag>("beamSpotSrc"))),
427  updateTraj_(iConfig.getParameter<bool>("updateTrackTrajectory")),
428  updateExtra_(iConfig.getParameter<bool>("updateTrackExtra")),
429  updatePattern_(iConfig.getParameter<bool>("updateTrackHitPattern")),
430  mtdRecHitBuilder_(iConfig.getParameter<std::string>("MTDRecHitBuilder")),
431  propagator_(iConfig.getParameter<std::string>("Propagator")),
432  transientTrackBuilder_(iConfig.getParameter<std::string>("TransientTrackBuilder")),
433  estMaxChi2_(iConfig.getParameter<double>("estimatorMaxChi2")),
434  estMaxNSigma_(iConfig.getParameter<double>("estimatorMaxNSigma")),
435  btlChi2Cut_(iConfig.getParameter<double>("btlChi2Cut")),
436  btlTimeChi2Cut_(iConfig.getParameter<double>("btlTimeChi2Cut")),
437  etlChi2Cut_(iConfig.getParameter<double>("etlChi2Cut")),
438  etlTimeChi2Cut_(iConfig.getParameter<double>("etlTimeChi2Cut")),
439  useVertex_(iConfig.getParameter<bool>("useVertex")),
440  useSimVertex_(iConfig.getParameter<bool>("useSimVertex")),
441  dzCut_(iConfig.getParameter<double>("dZCut")),
442  bsTimeSpread_(iConfig.getParameter<double>("bsTimeSpread")) {
443  if (useVertex_) {
444  if (useSimVertex_) {
445  genVtxPositionToken_ = consumes<GlobalPoint>(iConfig.getParameter<edm::InputTag>("genVtxPositionSrc"));
446  genVtxTimeToken_ = consumes<float>(iConfig.getParameter<edm::InputTag>("genVtxTimeSrc"));
447  } else
448  vtxToken_ = consumes<VertexCollection>(iConfig.getParameter<edm::InputTag>("vtxSrc"));
449  }
450 
451  theEstimator = std::make_unique<Chi2MeasurementEstimator>(estMaxChi2_, estMaxNSigma_);
452  theTransformer = std::make_unique<TrackTransformer>(iConfig.getParameterSet("TrackTransformer"));
453 
454  btlMatchChi2Token = produces<edm::ValueMap<float>>("btlMatchChi2");
455  etlMatchChi2Token = produces<edm::ValueMap<float>>("etlMatchChi2");
456  btlMatchTimeChi2Token = produces<edm::ValueMap<float>>("btlMatchTimeChi2");
457  etlMatchTimeChi2Token = produces<edm::ValueMap<float>>("etlMatchTimeChi2");
458  pathLengthToken = produces<edm::ValueMap<float>>("pathLength");
459  tmtdToken = produces<edm::ValueMap<float>>("tmtd");
460  sigmatmtdToken = produces<edm::ValueMap<float>>("sigmatmtd");
461  pOrigTrkToken = produces<edm::ValueMap<float>>("generalTrackp");
462  betaOrigTrkToken = produces<edm::ValueMap<float>>("generalTrackBeta");
463  t0OrigTrkToken = produces<edm::ValueMap<float>>("generalTrackt0");
464  sigmat0OrigTrkToken = produces<edm::ValueMap<float>>("generalTracksigmat0");
465  pathLengthOrigTrkToken = produces<edm::ValueMap<float>>("generalTrackPathLength");
466  tmtdOrigTrkToken = produces<edm::ValueMap<float>>("generalTracktmtd");
467  sigmatmtdOrigTrkToken = produces<edm::ValueMap<float>>("generalTracksigmatmtd");
468  assocOrigTrkToken = produces<edm::ValueMap<int>>("generalTrackassoc");
469 
470  builderToken_ = esConsumes<TransientTrackBuilder, TransientTrackRecord>(edm::ESInputTag("", transientTrackBuilder_));
472  esConsumes<TransientTrackingRecHitBuilder, TransientRecHitRecord>(edm::ESInputTag("", mtdRecHitBuilder_));
473  gtgToken_ = esConsumes<GlobalTrackingGeometry, GlobalTrackingGeometryRecord>();
474  dlgeoToken_ = esConsumes<MTDDetLayerGeometry, MTDRecoGeometryRecord>();
475  magfldToken_ = esConsumes<MagneticField, IdealMagneticFieldRecord>();
476  propToken_ = esConsumes<Propagator, TrackingComponentsRecord>(edm::ESInputTag("", propagator_));
477  ttopoToken_ = esConsumes<TrackerTopology, TrackerTopologyRcd>();
478 
479  produces<edm::OwnVector<TrackingRecHit>>();
480  produces<reco::TrackExtraCollection>();
481  produces<TrackCollection>();
482 }

References TrackExtenderWithMTDT< TrackCollection >::assocOrigTrkToken, TrackExtenderWithMTDT< TrackCollection >::betaOrigTrkToken, TrackExtenderWithMTDT< TrackCollection >::btlMatchChi2Token, TrackExtenderWithMTDT< TrackCollection >::btlMatchTimeChi2Token, TrackExtenderWithMTDT< TrackCollection >::builderToken_, TrackExtenderWithMTDT< TrackCollection >::dlgeoToken_, TrackExtenderWithMTDT< TrackCollection >::estMaxChi2_, TrackExtenderWithMTDT< TrackCollection >::estMaxNSigma_, TrackExtenderWithMTDT< TrackCollection >::etlMatchChi2Token, TrackExtenderWithMTDT< TrackCollection >::etlMatchTimeChi2Token, TrackExtenderWithMTDT< TrackCollection >::genVtxPositionToken_, TrackExtenderWithMTDT< TrackCollection >::genVtxTimeToken_, edm::ParameterSet::getParameter(), edm::ParameterSet::getParameterSet(), TrackExtenderWithMTDT< TrackCollection >::gtgToken_, TrackExtenderWithMTDT< TrackCollection >::hitbuilderToken_, TrackExtenderWithMTDT< TrackCollection >::magfldToken_, TrackExtenderWithMTDT< TrackCollection >::mtdRecHitBuilder_, TrackExtenderWithMTDT< TrackCollection >::pathLengthOrigTrkToken, TrackExtenderWithMTDT< TrackCollection >::pathLengthToken, TrackExtenderWithMTDT< TrackCollection >::pOrigTrkToken, TrackExtenderWithMTDT< TrackCollection >::propagator_, TrackExtenderWithMTDT< TrackCollection >::propToken_, TrackExtenderWithMTDT< TrackCollection >::sigmat0OrigTrkToken, TrackExtenderWithMTDT< TrackCollection >::sigmatmtdOrigTrkToken, TrackExtenderWithMTDT< TrackCollection >::sigmatmtdToken, TrackExtenderWithMTDT< TrackCollection >::t0OrigTrkToken, TrackExtenderWithMTDT< TrackCollection >::theEstimator, TrackExtenderWithMTDT< TrackCollection >::theTransformer, TrackExtenderWithMTDT< TrackCollection >::tmtdOrigTrkToken, TrackExtenderWithMTDT< TrackCollection >::tmtdToken, TrackExtenderWithMTDT< TrackCollection >::transientTrackBuilder_, TrackExtenderWithMTDT< TrackCollection >::ttopoToken_, TrackExtenderWithMTDT< TrackCollection >::useSimVertex_, TrackExtenderWithMTDT< TrackCollection >::useVertex_, and TrackExtenderWithMTDT< TrackCollection >::vtxToken_.

Member Function Documentation

◆ buildTrack()

template<class TrackCollection >
reco::Track TrackExtenderWithMTDT< TrackCollection >::buildTrack ( const reco::Track orig,
const Trajectory traj,
const Trajectory trajWithMtd,
const reco::BeamSpot bs,
const MagneticField field,
const Propagator prop,
bool  hasMTD,
float &  pathLength,
float &  tmtdOut,
float &  sigmatmtdOut 
) const

Definition at line 973 of file TrackExtenderWithMTD.cc.

982  {
984  bool tsbcl_status = getTrajectoryStateClosestToBeamLine(traj, bs, thePropagator, tscbl);
985 
986  if (!tsbcl_status)
987  return reco::Track();
988 
990  math::XYZPoint pos(v.x(), v.y(), v.z());
992  math::XYZVector mom(p.x(), p.y(), p.z());
993 
994  int ndof = traj.ndof();
995 
996  double t0 = 0.;
997  double covt0t0 = -1.;
998  pathLengthOut = -1.f; // if there is no MTD flag the pathlength with -1
999  tmtdOut = 0.f;
1000  sigmatmtdOut = -1.f;
1001  double betaOut = 0.;
1002  double covbetabeta = -1.;
1003 
1004  auto routput = [&]() {
1005  return reco::Track(traj.chiSquared(),
1006  int(ndof),
1007  pos,
1008  mom,
1009  tscbl.trackStateAtPCA().charge(),
1011  orig.algo(),
1013  t0,
1014  betaOut,
1015  covt0t0,
1016  covbetabeta);
1017  };
1018 
1019  //compute path length for time backpropagation, using first MTD hit for the momentum
1020  if (hasMTD) {
1021  double pathlength;
1022  bool validpropagation = trackPathLength(trajWithMtd, bs, thePropagator, pathlength);
1023  double thit = 0.;
1024  double thiterror = -1.;
1025  bool validmtd = false;
1026 
1027  if (!validpropagation) {
1028  return routput();
1029  }
1030 
1031  size_t ihitcount(0), ietlcount(0);
1032  for (auto const& hit : trajWithMtd.measurements()) {
1033  if (hit.recHit()->geographicalId().det() == DetId::Forward &&
1034  ForwardSubdetector(hit.recHit()->geographicalId().subdetId()) == FastTime) {
1035  ihitcount++;
1036  if (MTDDetId(hit.recHit()->geographicalId()).mtdSubDetector() == MTDDetId::MTDType::ETL) {
1037  ietlcount++;
1038  }
1039  }
1040  }
1041 
1042  auto ihit1 = trajWithMtd.measurements().cbegin();
1043  if (ihitcount == 1) {
1044  const MTDTrackingRecHit* mtdhit = static_cast<const MTDTrackingRecHit*>((*ihit1).recHit()->hit());
1045  thit = mtdhit->time();
1046  thiterror = mtdhit->timeError();
1047  validmtd = true;
1048  } else if (ihitcount == 2 && ietlcount == 2) {
1049  const auto& propresult =
1050  thePropagator->propagateWithPath(ihit1->updatedState(), (ihit1 + 1)->updatedState().surface());
1051  double etlpathlength = std::abs(propresult.second);
1052  //
1053  // The information of the two ETL hits is combined and attributed to the innermost hit
1054  //
1055  if (etlpathlength == 0.) {
1056  validpropagation = false;
1057  } else {
1058  pathlength -= etlpathlength;
1059  const MTDTrackingRecHit* mtdhit1 = static_cast<const MTDTrackingRecHit*>((*ihit1).recHit()->hit());
1060  const MTDTrackingRecHit* mtdhit2 = static_cast<const MTDTrackingRecHit*>((*(ihit1 + 1)).recHit()->hit());
1061  TrackTofPidInfo tofInfo =
1062  computeTrackTofPidInfo(p.mag2(), etlpathlength, mtdhit1->time(), mtdhit1->timeError(), 0., 0., true);
1063  //
1064  // Protect against incompatible times
1065  //
1066  double err1 = tofInfo.dterror * tofInfo.dterror;
1067  double err2 = mtdhit2->timeError() * mtdhit2->timeError();
1068  if (cms_rounding::roundIfNear0(err1) == 0. || cms_rounding::roundIfNear0(err2) == 0.) {
1069  edm::LogError("TrackExtenderWithMTD")
1070  << "MTD tracking hits with zero time uncertainty: " << err1 << " " << err2;
1071  } else {
1072  if ((tofInfo.dt - mtdhit2->time()) * (tofInfo.dt - mtdhit2->time()) < (err1 + err2) * etlTimeChi2Cut_) {
1073  //
1074  // Subtract the ETL time of flight from the outermost measurement, and combine it in a weighted average with the innermost
1075  // the mass ambiguity related uncertainty on the time of flight is added as an additional uncertainty
1076  //
1077  err1 = 1. / err1;
1078  err2 = 1. / err2;
1079  thiterror = 1. / (err1 + err2);
1080  thit = (tofInfo.dt * err1 + mtdhit2->time() * err2) * thiterror;
1081  thiterror = std::sqrt(thiterror);
1082  LogDebug("TrackExtenderWithMTD") << "p trk = " << p.mag() << " ETL hits times/errors: " << mtdhit1->time()
1083  << " +/- " << mtdhit1->timeError() << " , " << mtdhit2->time() << " +/- "
1084  << mtdhit2->timeError() << " extrapolated time1: " << tofInfo.dt << " +/- "
1085  << tofInfo.dterror << " average = " << thit << " +/- " << thiterror;
1086  validmtd = true;
1087  }
1088  }
1089  }
1090  } else {
1091  edm::LogInfo("TrackExtenderWithMTD")
1092  << "MTD hits #" << ihitcount << "ETL hits #" << ietlcount << " anomalous pattern, skipping...";
1093  }
1094 
1095  if (validmtd && validpropagation) {
1096  //here add the PID uncertainty for later use in the 1st step of 4D vtx reconstruction
1097  TrackTofPidInfo tofInfo = computeTrackTofPidInfo(p.mag2(), pathlength, thit, thiterror, 0., 0., true);
1098  pathLengthOut = pathlength; // set path length if we've got a timing hit
1099  tmtdOut = thit;
1100  sigmatmtdOut = thiterror;
1101  t0 = tofInfo.dt;
1102  covt0t0 = tofInfo.dterror * tofInfo.dterror;
1103  betaOut = tofInfo.beta_pi;
1104  covbetabeta = tofInfo.betaerror * tofInfo.betaerror;
1105  }
1106  }
1107 
1108  return routput();
1109 }

References funct::abs(), reco::TrackBase::algo(), cms::cuda::bs, FreeTrajectoryState::charge(), Trajectory::chiSquared(), FreeTrajectoryState::curvilinearError(), FastTime, DetId::Forward, createfilelist::int, LogDebug, Trajectory::measurements(), FreeTrajectoryState::momentum(), ndof, Trajectory::ndof(), AlCaHLTBitMon_ParallelJobs::p, FreeTrajectoryState::position(), Propagator::propagateWithPath(), rpcPointValidation_cfi::recHit, cms_rounding::roundIfNear0(), mathSSE::sqrt(), FrontierCondition_GT_autoExpress_cfi::t0, MTDTrackingRecHit::time(), MTDTrackingRecHit::timeError(), TrajectoryStateClosestToBeamLine::trackStateAtPCA(), reco::TrackBase::undefQuality, and findQualityFiles::v.

◆ buildTrackExtra()

template<class TrackCollection >
reco::TrackExtra TrackExtenderWithMTDT< TrackCollection >::buildTrackExtra ( const Trajectory trajectory) const

Definition at line 1112 of file TrackExtenderWithMTD.cc.

1112  {
1113  static const string metname = "TrackExtenderWithMTD";
1114 
1115  const Trajectory::RecHitContainer transRecHits = trajectory.recHits();
1116 
1117  // put the collection of TrackingRecHit in the event
1118 
1119  // sets the outermost and innermost TSOSs
1120  // ToDo: validation for track states with MTD
1121  TrajectoryStateOnSurface outerTSOS;
1122  TrajectoryStateOnSurface innerTSOS;
1123  unsigned int innerId = 0, outerId = 0;
1125  DetId outerDetId;
1126 
1127  if (trajectory.direction() == alongMomentum) {
1128  LogTrace(metname) << "alongMomentum";
1129  outerTSOS = trajectory.lastMeasurement().updatedState();
1130  innerTSOS = trajectory.firstMeasurement().updatedState();
1131  outerId = trajectory.lastMeasurement().recHit()->geographicalId().rawId();
1132  innerId = trajectory.firstMeasurement().recHit()->geographicalId().rawId();
1133  outerRecHit = trajectory.lastMeasurement().recHit();
1134  outerDetId = trajectory.lastMeasurement().recHit()->geographicalId();
1135  } else if (trajectory.direction() == oppositeToMomentum) {
1136  LogTrace(metname) << "oppositeToMomentum";
1137  outerTSOS = trajectory.firstMeasurement().updatedState();
1138  innerTSOS = trajectory.lastMeasurement().updatedState();
1139  outerId = trajectory.firstMeasurement().recHit()->geographicalId().rawId();
1140  innerId = trajectory.lastMeasurement().recHit()->geographicalId().rawId();
1141  outerRecHit = trajectory.firstMeasurement().recHit();
1142  outerDetId = trajectory.firstMeasurement().recHit()->geographicalId();
1143  } else
1144  LogError(metname) << "Wrong propagation direction!";
1145 
1146  const GeomDet* outerDet = gtg_->idToDet(outerDetId);
1147  GlobalPoint outerTSOSPos = outerTSOS.globalParameters().position();
1148  bool inside = outerDet->surface().bounds().inside(outerDet->toLocal(outerTSOSPos));
1149 
1150  GlobalPoint hitPos =
1151  (outerRecHit->isValid()) ? outerRecHit->globalPosition() : outerTSOS.globalParameters().position();
1152 
1153  if (!inside) {
1154  LogTrace(metname) << "The Global Muon outerMostMeasurementState is not compatible with the recHit detector!"
1155  << " Setting outerMost postition to recHit position if recHit isValid: "
1156  << outerRecHit->isValid();
1157  LogTrace(metname) << "From " << outerTSOSPos << " to " << hitPos;
1158  }
1159 
1160  //build the TrackExtra
1161  GlobalPoint v = (inside) ? outerTSOSPos : hitPos;
1162  GlobalVector p = outerTSOS.globalParameters().momentum();
1163  math::XYZPoint outpos(v.x(), v.y(), v.z());
1164  math::XYZVector outmom(p.x(), p.y(), p.z());
1165 
1166  v = innerTSOS.globalParameters().position();
1167  p = innerTSOS.globalParameters().momentum();
1168  math::XYZPoint inpos(v.x(), v.y(), v.z());
1169  math::XYZVector inmom(p.x(), p.y(), p.z());
1170 
1171  reco::TrackExtra trackExtra(outpos,
1172  outmom,
1173  true,
1174  inpos,
1175  inmom,
1176  true,
1177  outerTSOS.curvilinearError(),
1178  outerId,
1179  innerTSOS.curvilinearError(),
1180  innerId,
1181  trajectory.direction(),
1182  trajectory.seedRef());
1183 
1184  return trackExtra;
1185 }

References alongMomentum, Surface::bounds(), TrajectoryStateOnSurface::curvilinearError(), Trajectory::direction(), Trajectory::firstMeasurement(), TrajectoryStateOnSurface::globalParameters(), Bounds::inside(), Trajectory::lastMeasurement(), LogTrace, metname, GlobalTrajectoryParameters::momentum(), oppositeToMomentum, AlCaHLTBitMon_ParallelJobs::p, GlobalTrajectoryParameters::position(), TrajectoryMeasurement::recHit(), Trajectory::recHits(), Trajectory::seedRef(), GeomDet::surface(), GeomDet::toLocal(), TrajectoryMeasurement::updatedState(), and findQualityFiles::v.

◆ checkRecHitsOrdering()

template<class TrackCollection >
RefitDirection::GeometricalDirection TrackExtenderWithMTDT< TrackCollection >::checkRecHitsOrdering ( TransientTrackingRecHit::ConstRecHitContainer const &  recHits) const
inline

Definition at line 337 of file TrackExtenderWithMTD.cc.

338  {
339  if (!recHits.empty()) {
340  GlobalPoint first = gtg_->idToDet(recHits.front()->geographicalId())->position();
341  GlobalPoint last = gtg_->idToDet(recHits.back()->geographicalId())->position();
342 
343  // maybe perp2?
344  auto rFirst = first.mag2();
345  auto rLast = last.mag2();
346  if (rFirst < rLast)
348  if (rFirst > rLast)
350  }
351  LogDebug("TrackExtenderWithMTD") << "Impossible to determine the rechits order" << endl;
353  }

References first, RefitDirection::insideOut, dqmdumpme::last, LogDebug, RefitDirection::outsideIn, position, FastTrackerRecHitMaskProducer_cfi::recHits, and RefitDirection::undetermined.

◆ dumpLayer()

template<class TrackCollection >
string TrackExtenderWithMTDT< TrackCollection >::dumpLayer ( const DetLayer layer) const

Definition at line 1188 of file TrackExtenderWithMTD.cc.

1188  {
1189  stringstream output;
1190 
1191  const BoundSurface* sur = nullptr;
1192  const BoundCylinder* bc = nullptr;
1193  const BoundDisk* bd = nullptr;
1194 
1195  sur = &(layer->surface());
1196  if ((bc = dynamic_cast<const BoundCylinder*>(sur))) {
1197  output << " Cylinder of radius: " << bc->radius() << endl;
1198  } else if ((bd = dynamic_cast<const BoundDisk*>(sur))) {
1199  output << " Disk at: " << bd->position().z() << endl;
1200  }
1201  return output.str();
1202 }

References phase1PixelTopology::layer, and convertSQLitetoXML_cfg::output.

◆ fillDescriptions()

template<class TrackCollection >
void TrackExtenderWithMTDT< TrackCollection >::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 485 of file TrackExtenderWithMTD.cc.

485  {
487  desc.add<edm::InputTag>("tracksSrc", edm::InputTag("generalTracks"));
488  desc.add<edm::InputTag>("hitsSrc", edm::InputTag("mtdTrackingRecHits"));
489  desc.add<edm::InputTag>("beamSpotSrc", edm::InputTag("offlineBeamSpot"));
490  desc.add<edm::InputTag>("genVtxPositionSrc", edm::InputTag("genParticles:xyz0"));
491  desc.add<edm::InputTag>("genVtxTimeSrc", edm::InputTag("genParticles:t0"));
492  desc.add<edm::InputTag>("vtxSrc", edm::InputTag("offlinePrimaryVertices4D"));
493  desc.add<bool>("updateTrackTrajectory", true);
494  desc.add<bool>("updateTrackExtra", true);
495  desc.add<bool>("updateTrackHitPattern", true);
496  desc.add<std::string>("TransientTrackBuilder", "TransientTrackBuilder");
497  desc.add<std::string>("MTDRecHitBuilder", "MTDRecHitBuilder");
498  desc.add<std::string>("Propagator", "PropagatorWithMaterialForMTD");
500  false,
501  "KFFitterForRefitInsideOut",
502  "KFSmootherForRefitInsideOut",
503  "PropagatorWithMaterialForMTD",
504  "alongMomentum",
505  true,
506  "WithTrackAngle",
507  "MuonRecHitBuilder",
508  "MTDRecHitBuilder");
509  desc.add<edm::ParameterSetDescription>("TrackTransformer", transDesc);
510  desc.add<double>("estimatorMaxChi2", 500.);
511  desc.add<double>("estimatorMaxNSigma", 10.);
512  desc.add<double>("btlChi2Cut", 50.);
513  desc.add<double>("btlTimeChi2Cut", 10.);
514  desc.add<double>("etlChi2Cut", 50.);
515  desc.add<double>("etlTimeChi2Cut", 10.);
516  desc.add<bool>("useVertex", false);
517  desc.add<bool>("useSimVertex", false);
518  desc.add<double>("dZCut", 0.1);
519  desc.add<double>("bsTimeSpread", 0.2);
520  descriptions.add("trackExtenderWithMTDBase", desc);
521 }

References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, TrackTransformer::fillPSetDescription(), HLT_FULL_cff::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

◆ fillMatchingHits()

template<class TrackCollection >
void TrackExtenderWithMTDT< TrackCollection >::fillMatchingHits ( const DetLayer ilay,
const TrajectoryStateOnSurface tsos,
const Trajectory traj,
const double  pmag2,
const double  pathlength0,
const MTDTrackingDetSetVector hits,
const Propagator prop,
const reco::BeamSpot bs,
const double &  vtxTime,
const bool  matchVertex,
TransientTrackingRecHit::ConstRecHitContainer output,
MTDHitMatchingInfo &  bestHit 
) const

Definition at line 904 of file TrackExtenderWithMTD.cc.

915  {
916  std::set<MTDHitMatchingInfo> hitsInLayer;
917  bool hitMatched = false;
918 
919  using namespace std::placeholders;
920  auto find_hits = std::bind(find_hits_in_dets,
921  std::cref(hits),
922  std::cref(traj),
923  ilay,
924  std::cref(tsos),
925  pmag2,
926  pathlength0,
927  _1,
928  std::cref(bs),
930  prop,
931  theEstimator.get(),
932  _2,
933  std::ref(hitsInLayer));
934 
935  if (useVertex_ && matchVertex)
936  find_hits(vtxTime, true);
937  else
938  find_hits(0, false);
939 
940  //just take the first hit because the hits are sorted on their matching quality
941  if (!hitsInLayer.empty()) {
942  //check hits to pass minimum quality matching requirements
943  auto const& firstHit = *hitsInLayer.begin();
944  if (firstHit.estChi2 < etlChi2Cut_ && firstHit.timeChi2 < etlTimeChi2Cut_) {
945  hitMatched = true;
946  output.push_back(hitbuilder_->build(firstHit.hit));
947  if (firstHit < bestHit)
948  bestHit = firstHit;
949  }
950  }
951 
952  if (useVertex_ && matchVertex && !hitMatched) {
953  //try a second search with beamspot hypothesis
954  hitsInLayer.clear();
955  find_hits(0, false);
956  if (!hitsInLayer.empty()) {
957  auto const& firstHit = *hitsInLayer.begin();
958  if (firstHit.timeChi2 < etlTimeChi2Cut_) {
959  if (firstHit.estChi2 < etlChi2Cut_) {
960  hitMatched = true;
961  output.push_back(hitbuilder_->build(firstHit.hit));
962  if (firstHit < bestHit)
963  bestHit = firstHit;
964  }
965  }
966  }
967  }
968 }

References cms::cuda::bs, hfClusterShapes_cfi::hits, and convertSQLitetoXML_cfg::output.

◆ fillValueMap()

template<class TrackCollection >
template<class H , class T >
void TrackExtenderWithMTDT< TrackCollection >::fillValueMap ( edm::Event iEvent,
const H &  handle,
const std::vector< T > &  vec,
const edm::EDPutToken token 
) const

Definition at line 525 of file TrackExtenderWithMTD.cc.

528  {
529  auto out = std::make_unique<edm::ValueMap<T>>();
531  filler.insert(handle, vec.begin(), vec.end());
532  filler.fill();
533  iEvent.put(token, std::move(out));
534 }

References trigObjTnPSource_cfi::filler, patZpeak::handle, iEvent, eostools::move(), MillePedeFileConverter_cfg::out, and unpackBuffers-CaloStage2::token.

◆ produce()

template<class TrackCollection >
void TrackExtenderWithMTDT< TrackCollection >::produce ( edm::Event ev,
const edm::EventSetup es 
)
final

trajs.empty()

setup the track extras

Definition at line 537 of file TrackExtenderWithMTD.cc.

537  {
538  //this produces pieces of the track extra
539  Traj2TrackHits t2t;
540 
541  theTransformer->setServices(es);
542 
543  TrackingRecHitRefProd hitsRefProd = ev.getRefBeforePut<TrackingRecHitCollection>();
544  reco::TrackExtraRefProd extrasRefProd = ev.getRefBeforePut<reco::TrackExtraCollection>();
545 
546  gtg_ = es.getHandle(gtgToken_);
547 
548  auto geo = es.getTransientHandle(dlgeoToken_);
549 
551 
554 
555  auto propH = es.getTransientHandle(propToken_);
556  const Propagator* prop = propH.product();
557 
558  auto httopo = es.getTransientHandle(ttopoToken_);
559  const TrackerTopology& ttopo = *httopo;
560 
561  auto output = std::make_unique<TrackCollection>();
562  auto extras = std::make_unique<reco::TrackExtraCollection>();
563  auto outhits = std::make_unique<edm::OwnVector<TrackingRecHit>>();
564 
565  std::vector<float> btlMatchChi2;
566  std::vector<float> etlMatchChi2;
567  std::vector<float> btlMatchTimeChi2;
568  std::vector<float> etlMatchTimeChi2;
569  std::vector<float> pathLengthsRaw;
570  std::vector<float> tmtdRaw;
571  std::vector<float> sigmatmtdRaw;
572  std::vector<float> pOrigTrkRaw;
573  std::vector<float> betaOrigTrkRaw;
574  std::vector<float> t0OrigTrkRaw;
575  std::vector<float> sigmat0OrigTrkRaw;
576  std::vector<float> pathLengthsOrigTrkRaw;
577  std::vector<float> tmtdOrigTrkRaw;
578  std::vector<float> sigmatmtdOrigTrkRaw;
579  std::vector<int> assocOrigTrkRaw;
580 
581  auto const tracksH = ev.getHandle(tracksToken_);
582  const auto& tracks = *tracksH;
583 
584  //MTD hits DetSet
585  const auto& hits = ev.get(hitsToken_);
586 
587  //beam spot
588  const auto& bs = ev.get(bsToken_);
589 
590  const Vertex* pv = nullptr;
591  if (useVertex_ && !useSimVertex_) {
592  auto const& vtxs = ev.get(vtxToken_);
593  if (!vtxs.empty())
594  pv = &vtxs[0];
595  }
596 
597  std::unique_ptr<math::XYZTLorentzVectorF> genPV(nullptr);
598  if (useVertex_ && useSimVertex_) {
599  const auto& genVtxPosition = ev.get(genVtxPositionToken_);
600  const auto& genVtxTime = ev.get(genVtxTimeToken_);
601  genPV = std::make_unique<math::XYZTLorentzVectorF>(
602  genVtxPosition.x(), genVtxPosition.y(), genVtxPosition.z(), genVtxTime);
603  }
604 
605  double vtxTime = 0.;
606  if (useVertex_) {
607  if (useSimVertex_ && genPV) {
608  vtxTime = genPV->t();
609  } else if (pv)
610  vtxTime = pv->t(); //already in ns
611  }
612 
613  std::vector<unsigned> track_indices;
614  unsigned itrack = 0;
615 
616  for (const auto& track : tracks) {
617  double trackVtxTime = 0.;
618  if (useVertex_) {
619  double dz;
620  if (useSimVertex_)
621  dz = std::abs(track.dz(math::XYZPoint(*genPV)));
622  else
623  dz = std::abs(track.dz(pv->position()));
624 
625  if (dz < dzCut_)
626  trackVtxTime = vtxTime;
627  }
628 
629  reco::TransientTrack ttrack(track, magfield.product(), gtg_);
630  const auto& trajs = theTransformer->transform(track);
631  auto thits = theTransformer->getTransientRecHits(ttrack);
633  MTDHitMatchingInfo mBTL, mETL;
634  if (!trajs.empty()) {
635  // get the outermost trajectory point on the track
638  bool tscbl_status = getTrajectoryStateClosestToBeamLine(trajs.front(), bs, prop, tscbl);
639 
640  if (tscbl_status) {
641  double pmag2 = tscbl.trackStateAtPCA().momentum().mag2();
642  double pathlength0;
643  trackPathLength(trajs.front(), tscbl, prop, pathlength0);
644 
645  const auto& btlhits = tryBTLLayers(tsos,
646  trajs.front(),
647  pmag2,
648  pathlength0,
649  hits,
650  geo.product(),
651  magfield.product(),
652  prop,
653  bs,
654  trackVtxTime,
655  trackVtxTime != 0.,
656  mBTL);
657  mtdthits.insert(mtdthits.end(), btlhits.begin(), btlhits.end());
658 
659  // in the future this should include an intermediate refit before propagating to the ETL
660  // for now it is ok
661  const auto& etlhits = tryETLLayers(tsos,
662  trajs.front(),
663  pmag2,
664  pathlength0,
665  hits,
666  geo.product(),
667  magfield.product(),
668  prop,
669  bs,
670  trackVtxTime,
671  trackVtxTime != 0.,
672  mETL);
673  mtdthits.insert(mtdthits.end(), etlhits.begin(), etlhits.end());
674  }
675  }
676 
677  auto ordering = checkRecHitsOrdering(thits);
679  thits.insert(thits.end(), mtdthits.begin(), mtdthits.end());
680  } else {
681  std::reverse(mtdthits.begin(), mtdthits.end());
682  mtdthits.insert(mtdthits.end(), thits.begin(), thits.end());
683  thits.swap(mtdthits);
684  }
685 
686  const auto& trajwithmtd = mtdthits.empty() ? trajs : theTransformer->transform(ttrack, thits);
687  float pMap = 0.f, betaMap = 0.f, t0Map = 0.f, sigmat0Map = -1.f, pathLengthMap = -1.f, tmtdMap = 0.f,
688  sigmatmtdMap = -1.f;
689  int iMap = -1;
690 
691  for (const auto& trj : trajwithmtd) {
692  const auto& thetrj = (updateTraj_ ? trj : trajs.front());
693  float pathLength = 0.f, tmtd = 0.f, sigmatmtd = -1.f;
695  thetrj,
696  trj,
697  bs,
698  magfield.product(),
699  prop,
700  !trajwithmtd.empty() && !mtdthits.empty(),
701  pathLength,
702  tmtd,
703  sigmatmtd);
704  if (result.ndof() >= 0) {
706  reco::TrackExtra::TrajParams trajParams;
708  size_t hitsstart = outhits->size();
709  if (updatePattern_) {
710  t2t(trj, *outhits, trajParams, chi2s); // this fills the output hit collection
711  } else {
712  t2t(thetrj, *outhits, trajParams, chi2s);
713  }
714  size_t hitsend = outhits->size();
715  extras->push_back(buildTrackExtra(trj)); // always push back the fully built extra, update by setting in track
716  extras->back().setHits(hitsRefProd, hitsstart, hitsend - hitsstart);
717  extras->back().setTrajParams(trajParams, chi2s);
718  //create the track
719  output->push_back(result);
720  btlMatchChi2.push_back(mBTL.hit ? mBTL.estChi2 : -1);
721  etlMatchChi2.push_back(mETL.hit ? mETL.estChi2 : -1);
722  btlMatchTimeChi2.push_back(mBTL.hit ? mBTL.timeChi2 : -1);
723  etlMatchTimeChi2.push_back(mETL.hit ? mETL.timeChi2 : -1);
724  pathLengthsRaw.push_back(pathLength);
725  tmtdRaw.push_back(tmtd);
726  sigmatmtdRaw.push_back(sigmatmtd);
727  pathLengthMap = pathLength;
728  tmtdMap = tmtd;
729  sigmatmtdMap = sigmatmtd;
730  auto& backtrack = output->back();
731  iMap = output->size() - 1;
732  pMap = backtrack.p();
733  betaMap = backtrack.beta();
734  t0Map = backtrack.t0();
735  sigmat0Map = std::copysign(std::sqrt(std::abs(backtrack.covt0t0())), backtrack.covt0t0());
736  reco::TrackExtraRef extraRef(extrasRefProd, extras->size() - 1);
737  backtrack.setExtra((updateExtra_ ? extraRef : track.extra()));
738  for (unsigned ihit = hitsstart; ihit < hitsend; ++ihit) {
739  backtrack.appendHitPattern((*outhits)[ihit], ttopo);
740  }
741  } else {
742  LogTrace("TrackExtenderWithMTD") << "Error in the MTD track refitting. This should not happen";
743  }
744  }
745 
746  pOrigTrkRaw.push_back(pMap);
747  betaOrigTrkRaw.push_back(betaMap);
748  t0OrigTrkRaw.push_back(t0Map);
749  sigmat0OrigTrkRaw.push_back(sigmat0Map);
750  pathLengthsOrigTrkRaw.push_back(pathLengthMap);
751  tmtdOrigTrkRaw.push_back(tmtdMap);
752  sigmatmtdOrigTrkRaw.push_back(sigmatmtdMap);
753  assocOrigTrkRaw.push_back(iMap);
754  ++itrack;
755  }
756 
757  auto outTrksHandle = ev.put(std::move(output));
758  ev.put(std::move(extras));
759  ev.put(std::move(outhits));
760 
761  fillValueMap(ev, outTrksHandle, btlMatchChi2, btlMatchChi2Token);
762  fillValueMap(ev, outTrksHandle, etlMatchChi2, etlMatchChi2Token);
763  fillValueMap(ev, outTrksHandle, btlMatchTimeChi2, btlMatchTimeChi2Token);
764  fillValueMap(ev, outTrksHandle, etlMatchTimeChi2, etlMatchTimeChi2Token);
765  fillValueMap(ev, outTrksHandle, pathLengthsRaw, pathLengthToken);
766  fillValueMap(ev, outTrksHandle, tmtdRaw, tmtdToken);
767  fillValueMap(ev, outTrksHandle, sigmatmtdRaw, sigmatmtdToken);
768  fillValueMap(ev, tracksH, pOrigTrkRaw, pOrigTrkToken);
769  fillValueMap(ev, tracksH, betaOrigTrkRaw, betaOrigTrkToken);
770  fillValueMap(ev, tracksH, t0OrigTrkRaw, t0OrigTrkToken);
771  fillValueMap(ev, tracksH, sigmat0OrigTrkRaw, sigmat0OrigTrkToken);
772  fillValueMap(ev, tracksH, pathLengthsOrigTrkRaw, pathLengthOrigTrkToken);
773  fillValueMap(ev, tracksH, tmtdOrigTrkRaw, tmtdOrigTrkToken);
774  fillValueMap(ev, tracksH, sigmatmtdOrigTrkRaw, sigmatmtdOrigTrkToken);
775  fillValueMap(ev, tracksH, assocOrigTrkRaw, assocOrigTrkToken);
776 }

References funct::abs(), cms::cuda::bs, PVValHelper::dz, ev, edm::EventSetup::getHandle(), edm::EventSetup::getTransientHandle(), hfClusterShapes_cfi::hits, RefitDirection::insideOut, LogTrace, PV3DBase< T, PVType, FrameType >::mag2(), volumeBasedMagneticField_160812_cfi::magfield, FreeTrajectoryState::momentum(), eostools::move(), config::ordering, convertSQLitetoXML_cfg::output, MetAnalyzer::pv(), mps_fire::result, groupFilesInBlocks::reverse, mathSSE::sqrt(), HLT_FULL_cff::track, tracks, and TrajectoryStateClosestToBeamLine::trackStateAtPCA().

◆ tryBTLLayers()

template<class TrackCollection >
TransientTrackingRecHit::ConstRecHitContainer TrackExtenderWithMTDT< TrackCollection >::tryBTLLayers ( const TrajectoryStateOnSurface tsos,
const Trajectory traj,
const double  pmag2,
const double  pathlength0,
const MTDTrackingDetSetVector hits,
const MTDDetLayerGeometry geo,
const MagneticField field,
const Propagator prop,
const reco::BeamSpot bs,
const double  vtxTime,
const bool  matchVertex,
MTDHitMatchingInfo &  bestHit 
) const

Definition at line 843 of file TrackExtenderWithMTD.cc.

855  {
856  const vector<const DetLayer*>& layers = geo->allBTLLayers();
857 
859  bestHit = MTDHitMatchingInfo();
860  for (const DetLayer* ilay : layers)
861  fillMatchingHits(ilay, tsos, traj, pmag2, pathlength0, hits, prop, bs, vtxTime, matchVertex, output, bestHit);
862  return output;
863 }

References MTDDetLayerGeometry::allBTLLayers(), cms::cuda::bs, hfClusterShapes_cfi::hits, hgcalTopologyTester_cfi::layers, and convertSQLitetoXML_cfg::output.

◆ tryETLLayers()

template<class TrackCollection >
TransientTrackingRecHit::ConstRecHitContainer TrackExtenderWithMTDT< TrackCollection >::tryETLLayers ( const TrajectoryStateOnSurface tsos,
const Trajectory traj,
const double  pmag2,
const double  pathlength0,
const MTDTrackingDetSetVector hits,
const MTDDetLayerGeometry geo,
const MagneticField field,
const Propagator prop,
const reco::BeamSpot bs,
const double  vtxTime,
const bool  matchVertex,
MTDHitMatchingInfo &  bestHit 
) const

Definition at line 866 of file TrackExtenderWithMTD.cc.

878  {
879  const vector<const DetLayer*>& layers = geo->allETLLayers();
880 
882  bestHit = MTDHitMatchingInfo();
883  for (const DetLayer* ilay : layers) {
884  const BoundDisk& disk = static_cast<const MTDRingForwardDoubleLayer*>(ilay)->specificSurface();
885  const double diskZ = disk.position().z();
886 
887  if (tsos.globalPosition().z() * diskZ < 0)
888  continue; // only propagate to the disk that's on the same side
889 
890  fillMatchingHits(ilay, tsos, traj, pmag2, pathlength0, hits, prop, bs, vtxTime, matchVertex, output, bestHit);
891  }
892 
893  // the ETL hits order must be from the innermost to the outermost
894 
895  if (output.size() == 2) {
896  if (std::abs(output[0]->globalPosition().z()) > std::abs(output[1]->globalPosition().z())) {
897  std::reverse(output.begin(), output.end());
898  }
899  }
900  return output;
901 }

References funct::abs(), MTDDetLayerGeometry::allETLLayers(), cms::cuda::bs, TrajectoryStateOnSurface::globalPosition(), hfClusterShapes_cfi::hits, hgcalTopologyTester_cfi::layers, convertSQLitetoXML_cfg::output, groupFilesInBlocks::reverse, detailsBasic3DVector::z, and PV3DBase< T, PVType, FrameType >::z().

Member Data Documentation

◆ assocOrigTrkToken

template<class TrackCollection >
edm::EDPutToken TrackExtenderWithMTDT< TrackCollection >::assocOrigTrkToken
private

◆ betaOrigTrkToken

template<class TrackCollection >
edm::EDPutToken TrackExtenderWithMTDT< TrackCollection >::betaOrigTrkToken
private

◆ bsTimeSpread_

template<class TrackCollection >
const float TrackExtenderWithMTDT< TrackCollection >::bsTimeSpread_
private

Definition at line 419 of file TrackExtenderWithMTD.cc.

◆ bsToken_

template<class TrackCollection >
edm::EDGetTokenT<reco::BeamSpot> TrackExtenderWithMTDT< TrackCollection >::bsToken_
private

Definition at line 388 of file TrackExtenderWithMTD.cc.

◆ btlChi2Cut_

template<class TrackCollection >
const float TrackExtenderWithMTDT< TrackCollection >::btlChi2Cut_
private

Definition at line 411 of file TrackExtenderWithMTD.cc.

◆ btlMatchChi2Token

template<class TrackCollection >
edm::EDPutToken TrackExtenderWithMTDT< TrackCollection >::btlMatchChi2Token
private

◆ btlMatchTimeChi2Token

template<class TrackCollection >
edm::EDPutToken TrackExtenderWithMTDT< TrackCollection >::btlMatchTimeChi2Token
private

◆ btlTimeChi2Cut_

template<class TrackCollection >
const float TrackExtenderWithMTDT< TrackCollection >::btlTimeChi2Cut_
private

Definition at line 412 of file TrackExtenderWithMTD.cc.

◆ builder_

template<class TrackCollection >
edm::ESHandle<TransientTrackBuilder> TrackExtenderWithMTDT< TrackCollection >::builder_
private

Definition at line 397 of file TrackExtenderWithMTD.cc.

◆ builderToken_

template<class TrackCollection >
edm::ESGetToken<TransientTrackBuilder, TransientTrackRecord> TrackExtenderWithMTDT< TrackCollection >::builderToken_
private

◆ dlgeoToken_

template<class TrackCollection >
edm::ESGetToken<MTDDetLayerGeometry, MTDRecoGeometryRecord> TrackExtenderWithMTDT< TrackCollection >::dlgeoToken_
private

◆ dzCut_

template<class TrackCollection >
const float TrackExtenderWithMTDT< TrackCollection >::dzCut_
private

Definition at line 418 of file TrackExtenderWithMTD.cc.

◆ estMaxChi2_

template<class TrackCollection >
const float TrackExtenderWithMTDT< TrackCollection >::estMaxChi2_
private

◆ estMaxNSigma_

template<class TrackCollection >
const float TrackExtenderWithMTDT< TrackCollection >::estMaxNSigma_
private

◆ etlChi2Cut_

template<class TrackCollection >
const float TrackExtenderWithMTDT< TrackCollection >::etlChi2Cut_
private

Definition at line 413 of file TrackExtenderWithMTD.cc.

◆ etlMatchChi2Token

template<class TrackCollection >
edm::EDPutToken TrackExtenderWithMTDT< TrackCollection >::etlMatchChi2Token
private

◆ etlMatchTimeChi2Token

template<class TrackCollection >
edm::EDPutToken TrackExtenderWithMTDT< TrackCollection >::etlMatchTimeChi2Token
private

◆ etlTimeChi2Cut_

template<class TrackCollection >
const float TrackExtenderWithMTDT< TrackCollection >::etlTimeChi2Cut_
private

Definition at line 414 of file TrackExtenderWithMTD.cc.

◆ genVtxPositionToken_

template<class TrackCollection >
edm::EDGetTokenT<GlobalPoint> TrackExtenderWithMTDT< TrackCollection >::genVtxPositionToken_
private

◆ genVtxTimeToken_

template<class TrackCollection >
edm::EDGetTokenT<float> TrackExtenderWithMTDT< TrackCollection >::genVtxTimeToken_
private

◆ gtg_

template<class TrackCollection >
edm::ESHandle<GlobalTrackingGeometry> TrackExtenderWithMTDT< TrackCollection >::gtg_
private

Definition at line 401 of file TrackExtenderWithMTD.cc.

◆ gtgToken_

◆ hitbuilder_

template<class TrackCollection >
edm::ESHandle<TransientTrackingRecHitBuilder> TrackExtenderWithMTDT< TrackCollection >::hitbuilder_
private

Definition at line 399 of file TrackExtenderWithMTD.cc.

◆ hitbuilderToken_

template<class TrackCollection >
edm::ESGetToken<TransientTrackingRecHitBuilder, TransientRecHitRecord> TrackExtenderWithMTDT< TrackCollection >::hitbuilderToken_
private

◆ hitsToken_

template<class TrackCollection >
edm::EDGetTokenT<MTDTrackingDetSetVector> TrackExtenderWithMTDT< TrackCollection >::hitsToken_
private

Definition at line 387 of file TrackExtenderWithMTD.cc.

◆ magfldToken_

template<class TrackCollection >
edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> TrackExtenderWithMTDT< TrackCollection >::magfldToken_
private

◆ mtdRecHitBuilder_

template<class TrackCollection >
const std::string TrackExtenderWithMTDT< TrackCollection >::mtdRecHitBuilder_
private

◆ pathLengthOrigTrkToken

template<class TrackCollection >
edm::EDPutToken TrackExtenderWithMTDT< TrackCollection >::pathLengthOrigTrkToken
private

◆ pathLengthToken

template<class TrackCollection >
edm::EDPutToken TrackExtenderWithMTDT< TrackCollection >::pathLengthToken
private

◆ pOrigTrkToken

template<class TrackCollection >
edm::EDPutToken TrackExtenderWithMTDT< TrackCollection >::pOrigTrkToken
private

◆ propagator_

template<class TrackCollection >
const std::string TrackExtenderWithMTDT< TrackCollection >::propagator_
private

◆ propToken_

template<class TrackCollection >
edm::ESGetToken<Propagator, TrackingComponentsRecord> TrackExtenderWithMTDT< TrackCollection >::propToken_
private

◆ sigmat0OrigTrkToken

template<class TrackCollection >
edm::EDPutToken TrackExtenderWithMTDT< TrackCollection >::sigmat0OrigTrkToken
private

◆ sigmatmtdOrigTrkToken

template<class TrackCollection >
edm::EDPutToken TrackExtenderWithMTDT< TrackCollection >::sigmatmtdOrigTrkToken
private

◆ sigmatmtdToken

template<class TrackCollection >
edm::EDPutToken TrackExtenderWithMTDT< TrackCollection >::sigmatmtdToken
private

◆ t0OrigTrkToken

template<class TrackCollection >
edm::EDPutToken TrackExtenderWithMTDT< TrackCollection >::t0OrigTrkToken
private

◆ theEstimator

template<class TrackCollection >
std::unique_ptr<MeasurementEstimator> TrackExtenderWithMTDT< TrackCollection >::theEstimator
private

◆ theTransformer

template<class TrackCollection >
std::unique_ptr<TrackTransformer> TrackExtenderWithMTDT< TrackCollection >::theTransformer
private

◆ tmtdOrigTrkToken

template<class TrackCollection >
edm::EDPutToken TrackExtenderWithMTDT< TrackCollection >::tmtdOrigTrkToken
private

◆ tmtdToken

template<class TrackCollection >
edm::EDPutToken TrackExtenderWithMTDT< TrackCollection >::tmtdToken
private

◆ tracksToken_

template<class TrackCollection >
edm::EDGetTokenT<InputCollection> TrackExtenderWithMTDT< TrackCollection >::tracksToken_
private

Definition at line 386 of file TrackExtenderWithMTD.cc.

◆ transientTrackBuilder_

template<class TrackCollection >
const std::string TrackExtenderWithMTDT< TrackCollection >::transientTrackBuilder_
private

◆ ttopoToken_

template<class TrackCollection >
edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> TrackExtenderWithMTDT< TrackCollection >::ttopoToken_
private

◆ updateExtra_

template<class TrackCollection >
const bool TrackExtenderWithMTDT< TrackCollection >::updateExtra_
private

Definition at line 393 of file TrackExtenderWithMTD.cc.

◆ updatePattern_

template<class TrackCollection >
const bool TrackExtenderWithMTDT< TrackCollection >::updatePattern_
private

Definition at line 393 of file TrackExtenderWithMTD.cc.

◆ updateTraj_

template<class TrackCollection >
const bool TrackExtenderWithMTDT< TrackCollection >::updateTraj_
private

Definition at line 393 of file TrackExtenderWithMTD.cc.

◆ useSimVertex_

template<class TrackCollection >
const bool TrackExtenderWithMTDT< TrackCollection >::useSimVertex_
private

◆ useVertex_

template<class TrackCollection >
const bool TrackExtenderWithMTDT< TrackCollection >::useVertex_
private

◆ vtxToken_

template<class TrackCollection >
edm::EDGetTokenT<VertexCollection> TrackExtenderWithMTDT< TrackCollection >::vtxToken_
private
Vector3DBase
Definition: Vector3DBase.h:8
edm::RefProd< TrackingRecHitCollection >
TrackExtenderWithMTDT::etlMatchChi2Token
edm::EDPutToken etlMatchChi2Token
Definition: TrackExtenderWithMTD.cc:371
TrackExtenderWithMTDT::theEstimator
std::unique_ptr< MeasurementEstimator > theEstimator
Definition: TrackExtenderWithMTD.cc:395
FreeTrajectoryState::momentum
GlobalVector momentum() const
Definition: FreeTrajectoryState.h:68
TrajectoryStateClosestToBeamLine
Definition: TrajectoryStateClosestToBeamLine.h:15
TrackExtenderWithMTDT::genVtxTimeToken_
edm::EDGetTokenT< float > genVtxTimeToken_
Definition: TrackExtenderWithMTD.cc:390
edm::ESInputTag
Definition: ESInputTag.h:87
TrackExtenderWithMTDT::etlTimeChi2Cut_
const float etlTimeChi2Cut_
Definition: TrackExtenderWithMTD.cc:414
HLT_FULL_cff.track
track
Definition: HLT_FULL_cff.py:11713
GeomDet
Definition: GeomDet.h:27
hfClusterShapes_cfi.hits
hits
Definition: hfClusterShapes_cfi.py:5
TrackExtenderWithMTDT::magfldToken_
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magfldToken_
Definition: TrackExtenderWithMTD.cc:405
DetLayer
Definition: DetLayer.h:21
Trajectory::seedRef
edm::RefToBase< TrajectorySeed > seedRef(void) const
Definition: Trajectory.h:303
Trajectory::chiSquared
float chiSquared() const
Definition: Trajectory.h:241
GlobalTrajectoryParameters::position
GlobalPoint position() const
Definition: GlobalTrajectoryParameters.h:60
Trajectory::direction
PropagationDirection const & direction() const
Definition: Trajectory.cc:133
convertSQLitetoXML_cfg.output
output
Definition: convertSQLitetoXML_cfg.py:72
TrackExtenderWithMTDT::useSimVertex_
const bool useSimVertex_
Definition: TrackExtenderWithMTD.cc:417
patZpeak.handle
handle
Definition: patZpeak.py:23
ForwardSubdetector
ForwardSubdetector
Definition: ForwardSubdetector.h:4
TrackerTopology
Definition: TrackerTopology.h:16
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
reco::TrackBase::undefQuality
Definition: TrackBase.h:151
deep_tau::DeepTauBase::BasicDiscriminator
BasicDiscriminator
Definition: DeepTauBase.h:115
TrajectoryStateOnSurface::globalPosition
GlobalPoint globalPosition() const
Definition: TrajectoryStateOnSurface.h:65
TrackExtenderWithMTDT::estMaxChi2_
const float estMaxChi2_
Definition: TrackExtenderWithMTD.cc:409
pos
Definition: PixelAliasList.h:18
TrackExtenderWithMTDT::btlMatchTimeChi2Token
edm::EDPutToken btlMatchTimeChi2Token
Definition: TrackExtenderWithMTD.cc:372
FreeTrajectoryState::charge
TrackCharge charge() const
Definition: FreeTrajectoryState.h:69
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89285
TrackExtenderWithMTDT::updateExtra_
const bool updateExtra_
Definition: TrackExtenderWithMTD.cc:393
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
TrackExtenderWithMTDT::sigmatmtdToken
edm::EDPutToken sigmatmtdToken
Definition: TrackExtenderWithMTD.cc:376
oppositeToMomentum
Definition: PropagationDirection.h:4
Surface
Definition: Surface.h:36
TrackExtenderWithMTDT::tmtdOrigTrkToken
edm::EDPutToken tmtdOrigTrkToken
Definition: TrackExtenderWithMTD.cc:382
TrajectoryMeasurement::updatedState
TrajectoryStateOnSurface const & updatedState() const
Definition: TrajectoryMeasurement.h:184
TrackExtenderWithMTDT::btlMatchChi2Token
edm::EDPutToken btlMatchChi2Token
Definition: TrackExtenderWithMTD.cc:370
TrackExtenderWithMTDT::updatePattern_
const bool updatePattern_
Definition: TrackExtenderWithMTD.cc:393
FreeTrajectoryState::position
GlobalPoint position() const
Definition: FreeTrajectoryState.h:67
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
TrackExtenderWithMTDT::builder_
edm::ESHandle< TransientTrackBuilder > builder_
Definition: TrackExtenderWithMTD.cc:397
findQualityFiles.v
v
Definition: findQualityFiles.py:179
TransientTrackingRecHitBuilder::build
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
TrackExtenderWithMTDT::genVtxPositionToken_
edm::EDGetTokenT< GlobalPoint > genVtxPositionToken_
Definition: TrackExtenderWithMTD.cc:389
PV3DBase::mag2
T mag2() const
Definition: PV3DBase.h:63
TrackExtenderWithMTDT::pathLengthToken
edm::EDPutToken pathLengthToken
Definition: TrackExtenderWithMTD.cc:374
BoundDisk
rpcPointValidation_cfi.recHit
recHit
Definition: rpcPointValidation_cfi.py:7
TrackExtenderWithMTDT::hitbuilderToken_
edm::ESGetToken< TransientTrackingRecHitBuilder, TransientRecHitRecord > hitbuilderToken_
Definition: TrackExtenderWithMTD.cc:400
TrackExtenderWithMTDT::bsTimeSpread_
const float bsTimeSpread_
Definition: TrackExtenderWithMTD.cc:419
TrackExtenderWithMTDT::buildTrack
reco::Track buildTrack(const reco::Track &, const Trajectory &, const Trajectory &, const reco::BeamSpot &, const MagneticField *field, const Propagator *prop, bool hasMTD, float &pathLength, float &tmtdOut, float &sigmatmtdOut) const
Definition: TrackExtenderWithMTD.cc:973
TrackExtenderWithMTDT::fillMatchingHits
void fillMatchingHits(const DetLayer *, const TrajectoryStateOnSurface &, const Trajectory &, const double, const double, const MTDTrackingDetSetVector &, const Propagator *, const reco::BeamSpot &, const double &, const bool, TransientTrackingRecHit::ConstRecHitContainer &, MTDHitMatchingInfo &) const
Definition: TrackExtenderWithMTD.cc:904
groupFilesInBlocks.reverse
reverse
Definition: groupFilesInBlocks.py:131
edm::Ref< TrackExtraCollection >
TrackExtenderWithMTDT::updateTraj_
const bool updateTraj_
Definition: TrackExtenderWithMTD.cc:393
TrackExtenderWithMTDT::propToken_
edm::ESGetToken< Propagator, TrackingComponentsRecord > propToken_
Definition: TrackExtenderWithMTD.cc:406
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
ndof
Definition: HIMultiTrackSelector.h:49
TrackExtenderWithMTDT::buildTrackExtra
reco::TrackExtra buildTrackExtra(const Trajectory &trajectory) const
Definition: TrackExtenderWithMTD.cc:1112
TrackExtenderWithMTDT::estMaxNSigma_
const float estMaxNSigma_
Definition: TrackExtenderWithMTD.cc:410
TrackExtenderWithMTDT::useVertex_
const bool useVertex_
Definition: TrackExtenderWithMTD.cc:416
Propagator
Definition: Propagator.h:44
DetId
Definition: DetId.h:17
reco::TrackExtra
Definition: TrackExtra.h:26
GeomDet::surface
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
cms::cuda::bs
bs
Definition: HistoContainer.h:127
dqmdumpme.last
last
Definition: dqmdumpme.py:56
TrackExtenderWithMTDT::ttopoToken_
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > ttopoToken_
Definition: TrackExtenderWithMTD.cc:407
TrackExtenderWithMTDT::tryETLLayers
TransientTrackingRecHit::ConstRecHitContainer tryETLLayers(const TrajectoryStateOnSurface &, const Trajectory &traj, const double, const double, const MTDTrackingDetSetVector &, const MTDDetLayerGeometry *, const MagneticField *field, const Propagator *prop, const reco::BeamSpot &bs, const double vtxTime, const bool matchVertex, MTDHitMatchingInfo &bestHit) const
Definition: TrackExtenderWithMTD.cc:866
TrackExtenderWithMTDT::vtxToken_
edm::EDGetTokenT< VertexCollection > vtxToken_
Definition: TrackExtenderWithMTD.cc:391
config.ordering
ordering
Definition: config.py:7
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
TrackExtenderWithMTDT::t0OrigTrkToken
edm::EDPutToken t0OrigTrkToken
Definition: TrackExtenderWithMTD.cc:379
FrontierCondition_GT_autoExpress_cfi.t0
t0
Definition: FrontierCondition_GT_autoExpress_cfi.py:149
Bounds::inside
virtual bool inside(const Local3DPoint &) const =0
Determine if the point is inside the bounds.
FreeTrajectoryState::curvilinearError
const CurvilinearTrajectoryError & curvilinearError() const
Definition: FreeTrajectoryState.h:89
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
Surface::bounds
const Bounds & bounds() const
Definition: Surface.h:87
DDAxes::z
reco::Track
Definition: Track.h:27
reco::TrackExtraCollection
std::vector< TrackExtra > TrackExtraCollection
collection of TrackExtra objects
Definition: TrackExtraFwd.h:10
TrackExtenderWithMTDT::hitbuilder_
edm::ESHandle< TransientTrackingRecHitBuilder > hitbuilder_
Definition: TrackExtenderWithMTD.cc:399
TrackExtenderWithMTDT::fillValueMap
void fillValueMap(edm::Event &iEvent, const H &handle, const std::vector< T > &vec, const edm::EDPutToken &token) const
Definition: TrackExtenderWithMTD.cc:525
Point3DBase< float, GlobalTag >
TrackExtenderWithMTDT::assocOrigTrkToken
edm::EDPutToken assocOrigTrkToken
Definition: TrackExtenderWithMTD.cc:384
GeomDet::toLocal
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
Definition: GeomDet.h:58
TrackExtenderWithMTDT::bsToken_
edm::EDGetTokenT< reco::BeamSpot > bsToken_
Definition: TrackExtenderWithMTD.cc:388
MTDTrackingRecHit::timeError
float timeError() const
Definition: MTDTrackingRecHit.h:28
first
auto first
Definition: CAHitNtupletGeneratorKernelsImpl.h:112
GlobalTrajectoryParameters::momentum
GlobalVector momentum() const
Definition: GlobalTrajectoryParameters.h:65
phase1PixelTopology::layer
constexpr std::array< uint8_t, layerIndexSize > layer
Definition: phase1PixelTopology.h:99
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
FastTrackerRecHitMaskProducer_cfi.recHits
recHits
Definition: FastTrackerRecHitMaskProducer_cfi.py:8
RefitDirection::undetermined
Definition: RefitDirection.h:15
TrackExtenderWithMTDT::propagator_
const std::string propagator_
Definition: TrackExtenderWithMTD.cc:394
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:233
math::XYZPoint
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
TrackExtenderWithMTDT::gtg_
edm::ESHandle< GlobalTrackingGeometry > gtg_
Definition: TrackExtenderWithMTD.cc:401
Trajectory::ndof
int ndof(bool bon=true) const
Definition: Trajectory.cc:97
TrackExtenderWithMTDT::theTransformer
std::unique_ptr< TrackTransformer > theTransformer
Definition: TrackExtenderWithMTD.cc:396
Trajectory::RecHitContainer
ConstRecHitContainer RecHitContainer
Definition: Trajectory.h:42
TrackExtenderWithMTDT::sigmatmtdOrigTrkToken
edm::EDPutToken sigmatmtdOrigTrkToken
Definition: TrackExtenderWithMTD.cc:383
tracks
const uint32_t *__restrict__ const HitContainer *__restrict__ TkSoA *__restrict__ tracks
Definition: CAHitNtupletGeneratorKernelsImpl.h:159
TrackingRecHit::ConstRecHitContainer
std::vector< ConstRecHitPointer > ConstRecHitContainer
Definition: TrackingRecHit.h:32
TrackExtenderWithMTDT::hitsToken_
edm::EDGetTokenT< MTDTrackingDetSetVector > hitsToken_
Definition: TrackExtenderWithMTD.cc:387
Trajectory::lastMeasurement
TrajectoryMeasurement const & lastMeasurement() const
Definition: Trajectory.h:150
trigObjTnPSource_cfi.filler
filler
Definition: trigObjTnPSource_cfi.py:21
Traj2TrackHits
Definition: Traj2TrackHits.h:16
TrackExtenderWithMTDT::mtdRecHitBuilder_
const std::string mtdRecHitBuilder_
Definition: TrackExtenderWithMTD.cc:394
FastTime
Definition: ForwardSubdetector.h:6
TrackExtenderWithMTDT::tracksToken_
edm::EDGetTokenT< InputCollection > tracksToken_
Definition: TrackExtenderWithMTD.cc:386
MTDTrackingRecHit
A 2D TrackerRecHit with time and time error information.
Definition: MTDTrackingRecHit.h:10
math::XYZVector
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
position
static int position[264][3]
Definition: ReadPGInfo.cc:289
TrackExtenderWithMTDT::sigmat0OrigTrkToken
edm::EDPutToken sigmat0OrigTrkToken
Definition: TrackExtenderWithMTD.cc:380
createfilelist.int
int
Definition: createfilelist.py:10
MetAnalyzer.pv
def pv(vc)
Definition: MetAnalyzer.py:7
iEvent
int iEvent
Definition: GenABIO.cc:224
edm::EventSetup::getHandle
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:155
TrackExtenderWithMTDT::betaOrigTrkToken
edm::EDPutToken betaOrigTrkToken
Definition: TrackExtenderWithMTD.cc:378
cms_rounding::roundIfNear0
constexpr valType roundIfNear0(valType value, double tolerance=1.e-7)
Definition: Rounding.h:11
reco::TransientTrack::outermostMeasurementState
TrajectoryStateOnSurface outermostMeasurementState() const
Definition: TransientTrack.h:86
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
TrackExtenderWithMTDT::tryBTLLayers
TransientTrackingRecHit::ConstRecHitContainer tryBTLLayers(const TrajectoryStateOnSurface &, const Trajectory &traj, const double, const double, const MTDTrackingDetSetVector &, const MTDDetLayerGeometry *, const MagneticField *field, const Propagator *prop, const reco::BeamSpot &bs, const double vtxTime, const bool matchVertex, MTDHitMatchingInfo &bestHit) const
Definition: TrackExtenderWithMTD.cc:843
edm::EventSetup::getTransientHandle
ESTransientHandle< T > getTransientHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:166
MTDDetLayerGeometry::allBTLLayers
const std::vector< const DetLayer * > & allBTLLayers() const
return the BTL DetLayers (barrel), inside-out
Definition: MTDDetLayerGeometry.cc:89
MTDTrackingRecHit::time
float time() const
Definition: MTDTrackingRecHit.h:27
TrackTransformer::fillPSetDescription
static void fillPSetDescription(edm::ParameterSetDescription &descriptions, bool DoPredictionsOnly=false, const std::string &Fitter="KFFitterForRefitInsideOut", const std::string &Smoother="KFSmootherForRefitInsideOut", const std::string &Propagator="SmartPropagatorAnyRK", const std::string &RefitDirection="alongMomentum", bool RefitRPCHits=true, const std::string &TrackerRecHitBuilder="WithTrackAngle", const std::string &MuonRecHitBuilder="MuonRecHitBuilder", const std::string &MTDRecHitBuilder="MTDRecHitBuilder")
fillDescriptions
Definition: TrackTransformer.cc:58
Trajectory::measurements
DataContainer const & measurements() const
Definition: Trajectory.h:178
reco::TrackBase::algo
TrackAlgorithm algo() const
Definition: TrackBase.h:547
TrajectoryMeasurement::recHit
ConstRecHitPointer const & recHit() const
Definition: TrajectoryMeasurement.h:190
Trajectory::recHits
ConstRecHitContainer recHits() const
Definition: Trajectory.h:186
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
eostools.move
def move(src, dest)
Definition: eostools.py:511
TrackExtenderWithMTDT::transientTrackBuilder_
const std::string transientTrackBuilder_
Definition: TrackExtenderWithMTD.cc:394
Trajectory::firstMeasurement
TrajectoryMeasurement const & firstMeasurement() const
Definition: Trajectory.h:166
reco::TransientTrack
Definition: TransientTrack.h:19
TrackExtenderWithMTDT::pathLengthOrigTrkToken
edm::EDPutToken pathLengthOrigTrkToken
Definition: TrackExtenderWithMTD.cc:381
reco::TrackExtraBase::Chi2sFive
std::vector< unsigned char > Chi2sFive
Definition: TrackExtraBase.h:25
TrajectoryMeasurement::ConstRecHitPointer
TrackingRecHit::ConstRecHitPointer ConstRecHitPointer
Definition: TrajectoryMeasurement.h:28
PVValHelper::dz
Definition: PVValidationHelpers.h:51
TrackExtenderWithMTDT::checkRecHitsOrdering
RefitDirection::GeometricalDirection checkRecHitsOrdering(TransientTrackingRecHit::ConstRecHitContainer const &recHits) const
Definition: TrackExtenderWithMTD.cc:337
MTDDetId
Detector identifier base class for the MIP Timing Layer.
Definition: MTDDetId.h:21
ev
bool ev
Definition: Hydjet2Hadronizer.cc:95
TrajectoryStateOnSurface::curvilinearError
const CurvilinearTrajectoryError & curvilinearError() const
Definition: TrajectoryStateOnSurface.h:72
TrackExtenderWithMTDT::pOrigTrkToken
edm::EDPutToken pOrigTrkToken
Definition: TrackExtenderWithMTD.cc:377
GlobalTrackingGeometry::idToDet
const GeomDet * idToDet(DetId) const override
Definition: GlobalTrackingGeometry.cc:44
RefitDirection::insideOut
Definition: RefitDirection.h:15
TrackExtenderWithMTDT::gtgToken_
edm::ESGetToken< GlobalTrackingGeometry, GlobalTrackingGeometryRecord > gtgToken_
Definition: TrackExtenderWithMTD.cc:402
BoundCylinder
MillePedeFileConverter_cfg.out
out
Definition: MillePedeFileConverter_cfg.py:31
TransientTrackBuilder::build
reco::TransientTrack build(const reco::Track *p) const
Definition: TransientTrackBuilder.cc:20
MTDDetLayerGeometry::allETLLayers
const std::vector< const DetLayer * > & allETLLayers() const
return the ETL DetLayers (endcap), -Z to +Z
Definition: MTDDetLayerGeometry.cc:91
mps_fire.result
result
Definition: mps_fire.py:311
TrackExtenderWithMTDT::etlMatchTimeChi2Token
edm::EDPutToken etlMatchTimeChi2Token
Definition: TrackExtenderWithMTD.cc:373
edm::helper::Filler
Definition: ValueMap.h:22
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:234
TrajectoryStateOnSurface::globalParameters
const GlobalTrajectoryParameters & globalParameters() const
Definition: TrajectoryStateOnSurface.h:64
TrackExtenderWithMTDT::btlChi2Cut_
const float btlChi2Cut_
Definition: TrackExtenderWithMTD.cc:411
TrackExtenderWithMTDT::dzCut_
const float dzCut_
Definition: TrackExtenderWithMTD.cc:418
TrajectoryStateClosestToBeamLine::trackStateAtPCA
FTS const & trackStateAtPCA() const
Definition: TrajectoryStateClosestToBeamLine.h:32
DetId::Forward
Definition: DetId.h:30
TrackExtenderWithMTDT::btlTimeChi2Cut_
const float btlTimeChi2Cut_
Definition: TrackExtenderWithMTD.cc:412
volumeBasedMagneticField_160812_cfi.magfield
magfield
Definition: volumeBasedMagneticField_160812_cfi.py:11
TrackExtenderWithMTDT::dlgeoToken_
edm::ESGetToken< MTDDetLayerGeometry, MTDRecoGeometryRecord > dlgeoToken_
Definition: TrackExtenderWithMTD.cc:404
RefitDirection::outsideIn
Definition: RefitDirection.h:15
reco::TrackExtraBase::TrajParams
std::vector< LocalTrajectoryParameters > TrajParams
Definition: TrackExtraBase.h:24
edm::InputTag
Definition: InputTag.h:15
alongMomentum
Definition: PropagationDirection.h:4
hgcalTopologyTester_cfi.layers
layers
Definition: hgcalTopologyTester_cfi.py:8
TrackExtenderWithMTDT::etlChi2Cut_
const float etlChi2Cut_
Definition: TrackExtenderWithMTD.cc:413
TrackExtenderWithMTDT::builderToken_
edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > builderToken_
Definition: TrackExtenderWithMTD.cc:398
reco::Vertex
Definition: Vertex.h:35
TrackExtenderWithMTDT::tmtdToken
edm::EDPutToken tmtdToken
Definition: TrackExtenderWithMTD.cc:375
hit
Definition: SiStripHitEffFromCalibTree.cc:88
edm::OwnVector< TrackingRecHit >
metname
const std::string metname
Definition: MuonSeedOrcaPatternRecognition.cc:40
unpackBuffers-CaloStage2.token
token
Definition: unpackBuffers-CaloStage2.py:316