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<>
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::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
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

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 npixBarrelToken
 
edm::EDPutToken npixEndcapToken
 
edm::EDPutToken pathLengthOrigTrkToken
 
edm::EDPutToken pOrigTrkToken
 
const std::string propagator_
 
edm::ESGetToken< Propagator, TrackingComponentsRecordpropToken_
 
edm::EDPutToken sigmat0OrigTrkToken
 
edm::EDPutToken sigmatmtdOrigTrkToken
 
edm::EDPutToken t0OrigTrkToken
 
std::unique_ptr< MeasurementEstimatortheEstimator
 
std::unique_ptr< TrackTransformertheTransformer
 
edm::EDPutToken tmtdOrigTrkToken
 
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 422 of file TrackExtenderWithMTD.cc.

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

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 >::npixBarrelToken, TrackExtenderWithMTDT< TrackCollection >::npixEndcapToken, TrackExtenderWithMTDT< TrackCollection >::pathLengthOrigTrkToken, TrackExtenderWithMTDT< TrackCollection >::pOrigTrkToken, TrackExtenderWithMTDT< TrackCollection >::propagator_, TrackExtenderWithMTDT< TrackCollection >::propToken_, TrackExtenderWithMTDT< TrackCollection >::sigmat0OrigTrkToken, TrackExtenderWithMTDT< TrackCollection >::sigmatmtdOrigTrkToken, TrackExtenderWithMTDT< TrackCollection >::t0OrigTrkToken, TrackExtenderWithMTDT< TrackCollection >::theEstimator, TrackExtenderWithMTDT< TrackCollection >::theTransformer, TrackExtenderWithMTDT< TrackCollection >::tmtdOrigTrkToken, 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 978 of file TrackExtenderWithMTD.cc.

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

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 1117 of file TrackExtenderWithMTD.cc.

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

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 1193 of file TrackExtenderWithMTD.cc.

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

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

◆ fillDescriptions()

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

Definition at line 483 of file TrackExtenderWithMTD.cc.

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

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 909 of file TrackExtenderWithMTD.cc.

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

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 523 of file TrackExtenderWithMTD.cc.

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

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 535 of file TrackExtenderWithMTD.cc.

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

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 848 of file TrackExtenderWithMTD.cc.

860  {
861  const vector<const DetLayer*>& layers = geo->allBTLLayers();
862 
864  bestHit = MTDHitMatchingInfo();
865  for (const DetLayer* ilay : layers)
866  fillMatchingHits(ilay, tsos, traj, pmag2, pathlength0, hits, prop, bs, vtxTime, matchVertex, output, bestHit);
867  return output;
868 }

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 871 of file TrackExtenderWithMTD.cc.

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

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 418 of file TrackExtenderWithMTD.cc.

◆ bsToken_

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

Definition at line 387 of file TrackExtenderWithMTD.cc.

◆ btlChi2Cut_

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

Definition at line 410 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 411 of file TrackExtenderWithMTD.cc.

◆ builder_

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

Definition at line 396 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 417 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 412 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 413 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 400 of file TrackExtenderWithMTD.cc.

◆ gtgToken_

◆ hitbuilder_

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

Definition at line 398 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 386 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

◆ npixBarrelToken

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

◆ npixEndcapToken

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

◆ pathLengthOrigTrkToken

template<class TrackCollection >
edm::EDPutToken TrackExtenderWithMTDT< TrackCollection >::pathLengthOrigTrkToken
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

◆ 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

◆ tracksToken_

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

Definition at line 385 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 392 of file TrackExtenderWithMTD.cc.

◆ updatePattern_

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

Definition at line 392 of file TrackExtenderWithMTD.cc.

◆ updateTraj_

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

Definition at line 392 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
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
edm::RefProd< TrackingRecHitCollection >
TrackExtenderWithMTDT::etlMatchChi2Token
edm::EDPutToken etlMatchChi2Token
Definition: TrackExtenderWithMTD.cc:371
TrackExtenderWithMTDT::theEstimator
std::unique_ptr< MeasurementEstimator > theEstimator
Definition: TrackExtenderWithMTD.cc:394
FreeTrajectoryState::momentum
GlobalVector momentum() const
Definition: FreeTrajectoryState.h:68
TrajectoryStateClosestToBeamLine
Definition: TrajectoryStateClosestToBeamLine.h:15
TrackExtenderWithMTDT::genVtxTimeToken_
edm::EDGetTokenT< float > genVtxTimeToken_
Definition: TrackExtenderWithMTD.cc:389
edm::ESInputTag
Definition: ESInputTag.h:87
TrackExtenderWithMTDT::etlTimeChi2Cut_
const float etlTimeChi2Cut_
Definition: TrackExtenderWithMTD.cc:413
HLT_FULL_cff.track
track
Definition: HLT_FULL_cff.py:11724
GeomDet
Definition: GeomDet.h:27
hfClusterShapes_cfi.hits
hits
Definition: hfClusterShapes_cfi.py:5
TrackExtenderWithMTDT::magfldToken_
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magfldToken_
Definition: TrackExtenderWithMTD.cc:404
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:416
patZpeak.handle
handle
Definition: patZpeak.py:23
ForwardSubdetector
ForwardSubdetector
Definition: ForwardSubdetector.h:4
TrackerTopology
Definition: TrackerTopology.h:16
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:408
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:89301
TrackExtenderWithMTDT::updateExtra_
const bool updateExtra_
Definition: TrackExtenderWithMTD.cc:392
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
oppositeToMomentum
Definition: PropagationDirection.h:4
Surface
Definition: Surface.h:36
TrackExtenderWithMTDT::tmtdOrigTrkToken
edm::EDPutToken tmtdOrigTrkToken
Definition: TrackExtenderWithMTD.cc:381
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:392
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:396
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:388
PV3DBase::mag2
T mag2() const
Definition: PV3DBase.h:63
BoundDisk
rpcPointValidation_cfi.recHit
recHit
Definition: rpcPointValidation_cfi.py:7
TrackExtenderWithMTDT::hitbuilderToken_
edm::ESGetToken< TransientTrackingRecHitBuilder, TransientRecHitRecord > hitbuilderToken_
Definition: TrackExtenderWithMTD.cc:399
TrackExtenderWithMTDT::bsTimeSpread_
const float bsTimeSpread_
Definition: TrackExtenderWithMTD.cc:418
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:978
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:909
groupFilesInBlocks.reverse
reverse
Definition: groupFilesInBlocks.py:131
edm::Ref< TrackExtraCollection >
TrackExtenderWithMTDT::updateTraj_
const bool updateTraj_
Definition: TrackExtenderWithMTD.cc:392
TrackExtenderWithMTDT::propToken_
edm::ESGetToken< Propagator, TrackingComponentsRecord > propToken_
Definition: TrackExtenderWithMTD.cc:405
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:1117
TrackExtenderWithMTDT::estMaxNSigma_
const float estMaxNSigma_
Definition: TrackExtenderWithMTD.cc:409
TrackExtenderWithMTDT::useVertex_
const bool useVertex_
Definition: TrackExtenderWithMTD.cc:415
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:76
dqmdumpme.last
last
Definition: dqmdumpme.py:56
TrackExtenderWithMTDT::ttopoToken_
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > ttopoToken_
Definition: TrackExtenderWithMTD.cc:406
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:871
TrackExtenderWithMTDT::vtxToken_
edm::EDGetTokenT< VertexCollection > vtxToken_
Definition: TrackExtenderWithMTD.cc:390
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:378
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:398
TrackExtenderWithMTDT::fillValueMap
void fillValueMap(edm::Event &iEvent, const H &handle, const std::vector< T > &vec, const edm::EDPutToken &token) const
Definition: TrackExtenderWithMTD.cc:523
TrackExtenderWithMTDT::npixEndcapToken
edm::EDPutToken npixEndcapToken
Definition: TrackExtenderWithMTD.cc:375
Point3DBase< float, GlobalTag >
TrackExtenderWithMTDT::assocOrigTrkToken
edm::EDPutToken assocOrigTrkToken
Definition: TrackExtenderWithMTD.cc:383
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:387
MTDTrackingRecHit::timeError
float timeError() const
Definition: MTDTrackingRecHit.h:28
first
auto first
Definition: CAHitNtupletGeneratorKernelsImpl.h:125
GlobalTrajectoryParameters::momentum
GlobalVector momentum() const
Definition: GlobalTrajectoryParameters.h:65
phase1PixelTopology::layer
constexpr std::array< uint8_t, layerIndexSize > layer
Definition: phase1PixelTopology.h:99
FastTrackerRecHitMaskProducer_cfi.recHits
recHits
Definition: FastTrackerRecHitMaskProducer_cfi.py:8
RefitDirection::undetermined
Definition: RefitDirection.h:15
TrackExtenderWithMTDT::propagator_
const std::string propagator_
Definition: TrackExtenderWithMTD.cc:393
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:400
Trajectory::ndof
int ndof(bool bon=true) const
Definition: Trajectory.cc:97
TrackExtenderWithMTDT::theTransformer
std::unique_ptr< TrackTransformer > theTransformer
Definition: TrackExtenderWithMTD.cc:395
Trajectory::RecHitContainer
ConstRecHitContainer RecHitContainer
Definition: Trajectory.h:42
AlCaHLTBitMon_ParallelJobs.p
def p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
TrackExtenderWithMTDT::sigmatmtdOrigTrkToken
edm::EDPutToken sigmatmtdOrigTrkToken
Definition: TrackExtenderWithMTD.cc:382
tracks
const uint32_t *__restrict__ const HitContainer *__restrict__ TkSoA *__restrict__ tracks
Definition: CAHitNtupletGeneratorKernelsImpl.h:176
TrackingRecHit::ConstRecHitContainer
std::vector< ConstRecHitPointer > ConstRecHitContainer
Definition: TrackingRecHit.h:32
TrackExtenderWithMTDT::hitsToken_
edm::EDGetTokenT< MTDTrackingDetSetVector > hitsToken_
Definition: TrackExtenderWithMTD.cc:386
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:393
FastTime
Definition: ForwardSubdetector.h:6
TrackExtenderWithMTDT::tracksToken_
edm::EDGetTokenT< InputCollection > tracksToken_
Definition: TrackExtenderWithMTD.cc:385
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:379
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:377
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:84
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:848
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
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
MTDTrackingRecHit::time
float time() const
Definition: MTDTrackingRecHit.h:27
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::npixBarrelToken
edm::EDPutToken npixBarrelToken
Definition: TrackExtenderWithMTD.cc:374
TrackExtenderWithMTDT::transientTrackBuilder_
const std::string transientTrackBuilder_
Definition: TrackExtenderWithMTD.cc:393
Trajectory::firstMeasurement
TrajectoryMeasurement const & firstMeasurement() const
Definition: Trajectory.h:166
reco::TransientTrack
Definition: TransientTrack.h:19
TrackExtenderWithMTDT::pathLengthOrigTrkToken
edm::EDPutToken pathLengthOrigTrkToken
Definition: TrackExtenderWithMTD.cc:380
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:97
TrajectoryStateOnSurface::curvilinearError
const CurvilinearTrajectoryError & curvilinearError() const
Definition: TrajectoryStateOnSurface.h:72
TrackExtenderWithMTDT::pOrigTrkToken
edm::EDPutToken pOrigTrkToken
Definition: TrackExtenderWithMTD.cc:376
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:401
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:410
TrackExtenderWithMTDT::dzCut_
const float dzCut_
Definition: TrackExtenderWithMTD.cc:417
TrajectoryStateClosestToBeamLine::trackStateAtPCA
FTS const & trackStateAtPCA() const
Definition: TrajectoryStateClosestToBeamLine.h:32
DetId::Forward
Definition: DetId.h:30
TrackExtenderWithMTDT::btlTimeChi2Cut_
const float btlTimeChi2Cut_
Definition: TrackExtenderWithMTD.cc:411
volumeBasedMagneticField_160812_cfi.magfield
magfield
Definition: volumeBasedMagneticField_160812_cfi.py:11
TrackExtenderWithMTDT::dlgeoToken_
edm::ESGetToken< MTDDetLayerGeometry, MTDRecoGeometryRecord > dlgeoToken_
Definition: TrackExtenderWithMTD.cc:403
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:412
TrackExtenderWithMTDT::builderToken_
edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > builderToken_
Definition: TrackExtenderWithMTD.cc:397
reco::Vertex
Definition: Vertex.h:35
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