CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
IPProducer< Container, Base, Helper > Class Template Reference

#include <IPProducer.h>

Inheritance diagram for IPProducer< Container, Base, Helper >:
edm::stream::EDProducer<>

Public Types

typedef std::vector< reco::IPTagInfo< Container, Base > > Product
 
- 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

template<>
void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
template<>
void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
 IPProducer (const edm::ParameterSet &)
 
void produce (edm::Event &, const edm::EventSetup &) override
 
 ~IPProducer () override
 
- 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 Member Functions

void checkEventSetup (const edm::EventSetup &iSetup)
 

Private Attributes

unsigned long long m_calibrationCacheId2D
 
unsigned long long m_calibrationCacheId3D
 
bool m_computeGhostTrack
 
bool m_computeProbabilities
 
double m_cutMaxChiSquared
 
double m_cutMaxLIP
 
double m_cutMaxTIP
 
double m_cutMinPt
 
int m_cutPixelHits
 
int m_cutTotalHits
 
bool m_directionWithGhostTrack
 
bool m_directionWithTracks
 
double m_ghostTrackPriorDeltaR
 
Helper m_helper
 
std::unique_ptr< HistogramProbabilityEstimatorm_probabilityEstimator
 
bool m_useDB
 
bool m_useTrackQuality
 
edm::ESGetToken< TrackProbabilityCalibration, BTagTrackProbability2DRcdtoken_calib2D
 
edm::ESGetToken< TrackProbabilityCalibration, BTagTrackProbability3DRcdtoken_calib3D
 
edm::EDGetTokenT< reco::VertexCollectiontoken_primaryVertex
 
edm::ESGetToken< TransientTrackBuilder, TransientTrackRecordtoken_trackBuilder
 

Detailed Description

template<class Container, class Base, class Helper>
class IPProducer< Container, Base, Helper >

Description: <one line="" class="" summary>="">

Implementation: <Notes on="" implementation>="">

Definition at line 130 of file IPProducer.h.

Member Typedef Documentation

◆ Product

template<class Container, class Base, class Helper>
typedef std::vector<reco::IPTagInfo<Container, Base> > IPProducer< Container, Base, Helper >::Product

Definition at line 132 of file IPProducer.h.

Constructor & Destructor Documentation

◆ IPProducer()

template<class Container , class Base , class Helper >
IPProducer< Container, Base, Helper >::IPProducer ( const edm::ParameterSet iConfig)
explicit

Definition at line 190 of file IPProducer.h.

References edm::ParameterSet::getParameter(), IPProducer< Container, Base, Helper >::m_calibrationCacheId2D, IPProducer< Container, Base, Helper >::m_calibrationCacheId3D, IPProducer< Container, Base, Helper >::m_computeGhostTrack, IPProducer< Container, Base, Helper >::m_computeProbabilities, IPProducer< Container, Base, Helper >::m_cutMaxChiSquared, IPProducer< Container, Base, Helper >::m_cutMaxLIP, IPProducer< Container, Base, Helper >::m_cutMaxTIP, IPProducer< Container, Base, Helper >::m_cutMinPt, IPProducer< Container, Base, Helper >::m_cutPixelHits, IPProducer< Container, Base, Helper >::m_cutTotalHits, IPProducer< Container, Base, Helper >::m_directionWithGhostTrack, IPProducer< Container, Base, Helper >::m_directionWithTracks, IPProducer< Container, Base, Helper >::m_ghostTrackPriorDeltaR, IPProducer< Container, Base, Helper >::m_useTrackQuality, IPProducer< Container, Base, Helper >::token_calib2D, IPProducer< Container, Base, Helper >::token_calib3D, IPProducer< Container, Base, Helper >::token_primaryVertex, and IPProducer< Container, Base, Helper >::token_trackBuilder.

191  : m_helper(iConfig, consumesCollector()) {
194 
195  token_primaryVertex = consumes<reco::VertexCollection>(iConfig.getParameter<edm::InputTag>("primaryVertex"));
197  esConsumes<TransientTrackBuilder, TransientTrackRecord>(edm::ESInputTag("", "TransientTrackBuilder"));
198  token_calib2D = esConsumes<TrackProbabilityCalibration, BTagTrackProbability2DRcd>();
199  token_calib3D = esConsumes<TrackProbabilityCalibration, BTagTrackProbability3DRcd>();
200 
201  m_computeProbabilities = iConfig.getParameter<bool>("computeProbabilities");
202  m_computeGhostTrack = iConfig.getParameter<bool>("computeGhostTrack");
203  m_ghostTrackPriorDeltaR = iConfig.getParameter<double>("ghostTrackPriorDeltaR");
204  m_cutPixelHits = iConfig.getParameter<int>("minimumNumberOfPixelHits");
205  m_cutTotalHits = iConfig.getParameter<int>("minimumNumberOfHits");
206  m_cutMaxTIP = iConfig.getParameter<double>("maximumTransverseImpactParameter");
207  m_cutMinPt = iConfig.getParameter<double>("minimumTransverseMomentum");
208  m_cutMaxChiSquared = iConfig.getParameter<double>("maximumChiSquared");
209  m_cutMaxLIP = iConfig.getParameter<double>("maximumLongitudinalImpactParameter");
210  m_directionWithTracks = iConfig.getParameter<bool>("jetDirectionUsingTracks");
211  m_directionWithGhostTrack = iConfig.getParameter<bool>("jetDirectionUsingGhostTrack");
212  m_useTrackQuality = iConfig.getParameter<bool>("useTrackQuality");
213 
215  produces<reco::TrackCollection>("ghostTracks");
216  produces<Product>();
217 }
double m_cutMaxChiSquared
Definition: IPProducer.h:160
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
bool m_directionWithGhostTrack
Definition: IPProducer.h:163
unsigned long long m_calibrationCacheId3D
Definition: IPProducer.h:153
edm::ESGetToken< TrackProbabilityCalibration, BTagTrackProbability2DRcd > token_calib2D
Definition: IPProducer.h:145
double m_cutMaxTIP
Definition: IPProducer.h:158
unsigned long long m_calibrationCacheId2D
Definition: IPProducer.h:152
double m_cutMinPt
Definition: IPProducer.h:159
bool m_useTrackQuality
Definition: IPProducer.h:164
edm::ESGetToken< TrackProbabilityCalibration, BTagTrackProbability3DRcd > token_calib3D
Definition: IPProducer.h:146
int m_cutTotalHits
Definition: IPProducer.h:157
double m_ghostTrackPriorDeltaR
Definition: IPProducer.h:150
int m_cutPixelHits
Definition: IPProducer.h:156
Helper m_helper
Definition: IPProducer.h:165
edm::EDGetTokenT< reco::VertexCollection > token_primaryVertex
Definition: IPProducer.h:143
bool m_directionWithTracks
Definition: IPProducer.h:162
edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > token_trackBuilder
Definition: IPProducer.h:144
bool m_computeProbabilities
Definition: IPProducer.h:148
bool m_computeGhostTrack
Definition: IPProducer.h:149
double m_cutMaxLIP
Definition: IPProducer.h:161

◆ ~IPProducer()

template<class Container , class Base , class Helper >
IPProducer< Container, Base, Helper >::~IPProducer ( )
override

Definition at line 220 of file IPProducer.h.

220 {}

Member Function Documentation

◆ checkEventSetup()

template<class Container , class Base , class Helper >
void IPProducer< Container, Base, Helper >::checkEventSetup ( const edm::EventSetup iSetup)
private

Definition at line 419 of file IPProducer.h.

References edm::eventsetup::EventSetupRecord::cacheIdentifier(), edm::EventSetup::get(), edm::EventSetup::getHandle(), and edm::ESHandle< T >::product().

419  {
422  unsigned long long cacheId2D = re2D.cacheIdentifier();
423  unsigned long long cacheId3D = re3D.cacheIdentifier();
424 
425  if (cacheId2D != m_calibrationCacheId2D || cacheId3D != m_calibrationCacheId3D) //Calibration changed
426  {
427  //iSetup.get<BTagTrackProbabilityRcd>().get(calib);
430 
431  const TrackProbabilityCalibration* ca2D = calib2DHandle.product();
432  const TrackProbabilityCalibration* ca3D = calib3DHandle.product();
433 
434  m_probabilityEstimator = std::make_unique<HistogramProbabilityEstimator>(ca3D, ca2D);
435  }
436  m_calibrationCacheId3D = cacheId3D;
437  m_calibrationCacheId2D = cacheId2D;
438 }
unsigned long long m_calibrationCacheId3D
Definition: IPProducer.h:153
edm::ESGetToken< TrackProbabilityCalibration, BTagTrackProbability2DRcd > token_calib2D
Definition: IPProducer.h:145
unsigned long long m_calibrationCacheId2D
Definition: IPProducer.h:152
edm::ESGetToken< TrackProbabilityCalibration, BTagTrackProbability3DRcd > token_calib3D
Definition: IPProducer.h:146
unsigned long long cacheIdentifier() const
std::unique_ptr< HistogramProbabilityEstimator > m_probabilityEstimator
Definition: IPProducer.h:151
T const * product() const
Definition: ESHandle.h:86
T get() const
Definition: EventSetup.h:79
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:130

◆ fillDescriptions() [1/3]

template<class Container, class Base, class Helper>
static void IPProducer< Container, Base, Helper >::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

◆ fillDescriptions() [2/3]

template<>
void IPProducer< reco::TrackRefVector, reco::JTATagInfo, IPProducerHelpers::FromJTA >::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
inline

Definition at line 443 of file IPProducer.h.

References edm::ConfigurationDescriptions::addDefault(), submitPVResolutionJobs::desc, and ProducerED_cfi::InputTag.

444  {
446  desc.add<double>("maximumTransverseImpactParameter", 0.2);
447  desc.add<int>("minimumNumberOfHits", 8);
448  desc.add<double>("minimumTransverseMomentum", 1.0);
449  desc.add<edm::InputTag>("primaryVertex", edm::InputTag("offlinePrimaryVertices"));
450  desc.add<double>("maximumLongitudinalImpactParameter", 17.0);
451  desc.add<bool>("computeGhostTrack", true);
452  desc.add<double>("ghostTrackPriorDeltaR", 0.03);
453  desc.add<edm::InputTag>("jetTracks", edm::InputTag("ak4JetTracksAssociatorAtVertexPF"));
454  desc.add<bool>("jetDirectionUsingGhostTrack", false);
455  desc.add<int>("minimumNumberOfPixelHits", 2);
456  desc.add<bool>("jetDirectionUsingTracks", false);
457  desc.add<bool>("computeProbabilities", true);
458  desc.add<bool>("useTrackQuality", false);
459  desc.add<double>("maximumChiSquared", 5.0);
460  descriptions.addDefault(desc);
461 }
void addDefault(ParameterSetDescription const &psetDescription)

◆ fillDescriptions() [3/3]

template<>
void IPProducer< std::vector< reco::CandidatePtr >, reco::JetTagInfo, IPProducerHelpers::FromJetAndCands >::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
inline

Definition at line 465 of file IPProducer.h.

References edm::ConfigurationDescriptions::addDefault(), submitPVResolutionJobs::desc, and ProducerED_cfi::InputTag.

466  {
468  desc.add<double>("maximumTransverseImpactParameter", 0.2);
469  desc.add<int>("minimumNumberOfHits", 8);
470  desc.add<double>("minimumTransverseMomentum", 1.0);
471  desc.add<edm::InputTag>("primaryVertex", edm::InputTag("offlinePrimaryVertices"));
472  desc.add<double>("maximumLongitudinalImpactParameter", 17.0);
473  desc.add<bool>("computeGhostTrack", true);
474  desc.add<double>("maxDeltaR", 0.4);
475  desc.add<edm::InputTag>("candidates", edm::InputTag("particleFlow"));
476  desc.add<bool>("jetDirectionUsingGhostTrack", false);
477  desc.add<int>("minimumNumberOfPixelHits", 2);
478  desc.add<bool>("jetDirectionUsingTracks", false);
479  desc.add<bool>("computeProbabilities", true);
480  desc.add<bool>("useTrackQuality", false);
481  desc.add<edm::InputTag>("jets", edm::InputTag("ak4PFJetsCHS"));
482  desc.add<double>("ghostTrackPriorDeltaR", 0.03);
483  desc.add<double>("maximumChiSquared", 5.0);
484  desc.addOptional<bool>("explicitJTA", false);
485  descriptions.addDefault(desc);
486 }
void addDefault(ParameterSetDescription const &psetDescription)

◆ produce()

template<class Container , class Base , class Helper >
void IPProducer< Container, Base, Helper >::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 227 of file IPProducer.h.

References funct::abs(), TransientTrackBuilder::build(), pv::closest(), IPTools::closestApproachToJet(), reco::btag::TrackIPData::closestToGhostTrack, reco::btag::TrackIPData::closestToJetAxis, RecoVertex::convertError(), RecoVertex::convertPos(), reco::GhostTrackPrediction::direction(), VertexDistance3D::distance(), reco::btag::TrackIPData::distanceToGhostTrack, reco::btag::TrackIPData::distanceToJetAxis, MillePedeFileConverter_cfg::e, StorageManager_cfg::e1, relativeConstraints::error, reco::TransientTrack::field(), reco::GhostTrackFitter::fit(), edm::EventSetup::getHandle(), reco::btag::TrackIPData::ghostTrackWeight, iEvent, reco::TransientTrack::impactPointState(), reco::btag::TrackIPData::ip2d, reco::btag::TrackIPData::ip3d, ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, IPTools::jetTrackDistance(), reco::GhostTrackPrediction::lambda(), eostools::move(), reco::TrackBase::numberOfValidHits(), AlCaHLTBitMon_ParallelJobs::p, LaserDQM_cfg::p1, SiStripOfflineCRack_cfg::p2, reco::GhostTrackPrediction::position(), reco::GhostTrackPrediction::positionError(), reco::GhostTrackPrediction::prediction(), BeamMonitor_cff::primaryVertex, MetAnalyzer::pv(), mps_fire::result, TrackCollections2monitor_cff::selectedTracks, IPTools::signedImpactParameter3D(), IPTools::signedTransverseImpactParameter(), reco::btag::toTrack(), reco::TransientTrack::track(), HLT_2024v10_cff::track, DiMuonV_cfg::tracks, and HltBtagValidation_cff::Vertex.

227  {
228  // Update probability estimator if event setup is changed
230  checkEventSetup(iSetup);
231 
234 
236  // m_algo.setTransientTrackBuilder(builder.product());
237 
238  // output collections
239  auto result = std::make_unique<Product>();
240 
241  std::unique_ptr<reco::TrackCollection> ghostTracks;
242  reco::TrackRefProd ghostTrackRefProd;
243  if (m_computeGhostTrack) {
244  ghostTracks = std::make_unique<reco::TrackCollection>();
245  ghostTrackRefProd = iEvent.getRefBeforePut<reco::TrackCollection>("ghostTracks");
246  }
247 
248  // use first pv of the collection
250  const reco::Vertex* pv = &dummy;
252  if (!primaryVertex->empty()) {
253  pv = &*primaryVertex->begin();
254  // we always use the first vertex (at the moment)
256  } else { // create a dummy PV
258  e(0, 0) = 0.0015 * 0.0015;
259  e(1, 1) = 0.0015 * 0.0015;
260  e(2, 2) = 15. * 15.;
261  reco::Vertex::Point p(0, 0, 0);
262  dummy = reco::Vertex(p, e, 0, 0, 0);
263  }
264 
265  std::vector<Base> baseTagInfos = m_helper.makeBaseVector(iEvent);
266  for (typename std::vector<Base>::const_iterator it = baseTagInfos.begin(); it != baseTagInfos.end(); it++) {
267  Container tracks = m_helper.tracks(*it);
268  math::XYZVector jetMomentum = it->jet()->momentum();
269 
270  if (m_directionWithTracks) {
271  jetMomentum *= 0.5;
272  for (typename Container::const_iterator itTrack = tracks.begin(); itTrack != tracks.end(); ++itTrack)
273  if (reco::btag::toTrack(*itTrack)->numberOfValidHits() >= m_cutTotalHits) //minimal quality cuts
274  jetMomentum += (*itTrack)->momentum();
275  }
276 
278  std::vector<reco::TransientTrack> transientTracks;
279 
280  for (typename Container::const_iterator itTrack = tracks.begin(); itTrack != tracks.end(); ++itTrack) {
281  reco::TransientTrack transientTrack = builder->build(*itTrack);
282  const reco::Track& track = transientTrack.track(); //**itTrack;
283  /* cout << " pt " << track.pt() <<
284  " d0 " << fabs(track.d0()) <<
285  " #hit " << track.hitPattern().numberOfValidHits()<<
286  " ipZ " << fabs(track.dz()-pv->z())<<
287  " chi2 " << track.normalizedChi2()<<
288  " #pixel " << track.hitPattern().numberOfValidPixelHits()<< endl;
289 */
290  if (track.pt() > m_cutMinPt &&
291  track.hitPattern().numberOfValidHits() >= m_cutTotalHits && // min num tracker hits
292  track.hitPattern().numberOfValidPixelHits() >= m_cutPixelHits &&
293  track.normalizedChi2() < m_cutMaxChiSquared && std::abs(track.dxy(pv->position())) < m_cutMaxTIP &&
294  std::abs(track.dz(pv->position())) < m_cutMaxLIP) {
295  // std::cout << "selected" << std::endl;
296  selectedTracks.push_back(*itTrack);
297  transientTracks.push_back(transientTrack);
298  }
299  }
300  // std::cout <<"SIZE: " << transientTracks.size() << std::endl;
301  GlobalVector direction(jetMomentum.x(), jetMomentum.y(), jetMomentum.z());
302 
303  std::unique_ptr<reco::GhostTrack> ghostTrack;
304  reco::TrackRef ghostTrackRef;
305  if (m_computeGhostTrack) {
306  reco::GhostTrackFitter fitter;
307  GlobalPoint origin = RecoVertex::convertPos(pv->position());
309  ghostTrack = std::make_unique<reco::GhostTrack>(
310  fitter.fit(origin, error, direction, m_ghostTrackPriorDeltaR, transientTracks));
311 
312  /*
313  if (std::sqrt(jetMomentum.Perp2()) > 30) {
314  double offset = ghostTrack->prediction().lambda(origin);
315  std::cout << "------------------ jet pt " << std::sqrt(jetMomentum.Perp2()) << std::endl;
316  const std::vector<GhostTrackState> *states = &ghostTrack->states();
317  for(std::vector<GhostTrackState>::const_iterator state = states->begin();
318  state != states->end(); ++state) {
319  double dist = state->lambda() - offset;
320  double err = state->lambdaError(ghostTrack->prediction(), error);
321  double ipSig = IPTools::signedImpactParameter3D(state->track(), direction, *pv).second.significance();
322  double axisDist = state->axisDistance(ghostTrack->prediction());
323  std::cout << state->track().impactPointState().freeState()->momentum().perp()
324  << ": " << dist << "/" << err << " [" << (dist / err) << "], ipsig = " << ipSig << ", dist = " << axisDist << ", w = " << state->weight() << std::endl;
325  }
326  }
327 */
328  ghostTrackRef = reco::TrackRef(ghostTrackRefProd, ghostTracks->size());
329  ghostTracks->push_back(*ghostTrack);
330 
332  const reco::GhostTrackPrediction& pred = ghostTrack->prediction();
333  double lambda = pred.lambda(origin);
336  0,
337  0,
338  0);
339  pv = &dummy;
340  direction = pred.direction();
341  }
342  }
343 
344  std::vector<float> prob2D, prob3D;
345  std::vector<reco::btag::TrackIPData> ipData;
346 
347  for (unsigned int ind = 0; ind < transientTracks.size(); ind++) {
348  const reco::TransientTrack& transientTrack = transientTracks[ind];
349  const reco::Track& track = transientTrack.track();
350 
351  reco::btag::TrackIPData trackIP;
352  trackIP.ip3d = IPTools::signedImpactParameter3D(transientTrack, direction, *pv).second;
353  trackIP.ip2d = IPTools::signedTransverseImpactParameter(transientTrack, direction, *pv).second;
354 
356  IPTools::closestApproachToJet(transientTrack.impactPointState(), *pv, direction, transientTrack.field());
357  if (closest.isValid())
358  trackIP.closestToJetAxis = closest.globalPosition();
359 
360  // TODO: cross check if it is the same using other methods
361  trackIP.distanceToJetAxis = IPTools::jetTrackDistance(transientTrack, direction, *pv).second;
362 
363  if (ghostTrack.get()) {
364  const std::vector<reco::GhostTrackState>& states = ghostTrack->states();
365  std::vector<reco::GhostTrackState>::const_iterator pos =
366  std::find_if(states.begin(), states.end(), [&](auto& arg) { return arg.track() == transientTrack; });
367 
368  if (pos != states.end() && pos->isValid()) {
369  VertexDistance3D dist;
370  const reco::GhostTrackPrediction& pred = ghostTrack->prediction();
371  GlobalPoint p1 = pos->tsos().globalPosition();
372  GlobalError e1 = pos->tsos().cartesianError().position();
373  GlobalPoint p2 = pred.position(pos->lambda());
374  GlobalError e2 = pred.positionError(pos->lambda());
375  trackIP.closestToGhostTrack = p1;
376  trackIP.distanceToGhostTrack = dist.distance(VertexState(p1, e1), VertexState(p2, e2));
377  trackIP.ghostTrackWeight = pos->weight();
378  } else {
379  trackIP.distanceToGhostTrack = Measurement1D(0., -1.);
380  trackIP.ghostTrackWeight = 0.;
381  }
382  } else {
383  trackIP.distanceToGhostTrack = Measurement1D(0., -1.);
384  trackIP.ghostTrackWeight = 1.;
385  }
386 
387  ipData.push_back(trackIP);
388 
390  //probability with 3D ip
391  std::pair<bool, double> probability = m_probabilityEstimator->probability(
392  m_useTrackQuality, 0, ipData.back().ip3d.significance(), track, *(it->jet()), *pv);
393  prob3D.push_back(probability.first ? probability.second : -1.);
394 
395  //probability with 2D ip
396  probability = m_probabilityEstimator->probability(
397  m_useTrackQuality, 1, ipData.back().ip2d.significance(), track, *(it->jet()), *pv);
398  prob2D.push_back(probability.first ? probability.second : -1.);
399  }
400  }
401 
402  result->push_back(
403  typename Product::value_type(ipData, prob2D, prob3D, selectedTracks, *it, pvRef, direction, ghostTrackRef));
404  }
405 
407  iEvent.put(std::move(ghostTracks), "ghostTracks");
408  iEvent.put(std::move(result));
409 }
const Vector & prediction() const
reco::Vertex::Point convertPos(const GlobalPoint &p)
double m_cutMaxChiSquared
Definition: IPProducer.h:160
const Track & track() const
bool m_directionWithGhostTrack
Definition: IPProducer.h:163
unsigned short numberOfValidHits() const
number of valid hits found
Definition: TrackBase.h:798
GlobalPoint position(double lambda=0.) const
Measurement1D ip2d
Definition: IPTagInfo.h:31
int closest(std::vector< int > const &vec, int value)
double m_cutMaxTIP
Definition: IPProducer.h:158
std::pair< bool, Measurement1D > signedTransverseImpactParameter(const reco::TransientTrack &track, const GlobalVector &direction, const reco::Vertex &vertex)
Definition: IPTools.cc:57
reco::Vertex::Error convertError(const GlobalError &ge)
Definition: ConvertError.h:8
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
double m_cutMinPt
Definition: IPProducer.h:159
math::Error< dimension >::type Error
covariance error matrix (3x3)
Definition: Vertex.h:45
std::pair< bool, Measurement1D > signedImpactParameter3D(const reco::TransientTrack &track, const GlobalVector &direction, const reco::Vertex &vertex)
Definition: IPTools.cc:81
bool m_useTrackQuality
Definition: IPProducer.h:164
TrajectoryStateOnSurface closestApproachToJet(const TrajectoryStateOnSurface &state, const reco::Vertex &vertex, const GlobalVector &aJetDirection, const MagneticField *field)
Definition: IPTools.cc:182
const reco::Track * toTrack(const reco::TrackBaseRef &t)
Definition: IPTagInfo.h:24
A arg
Definition: Factorize.h:31
int m_cutTotalHits
Definition: IPProducer.h:157
std::pair< double, Measurement1D > jetTrackDistance(const reco::TransientTrack &track, const GlobalVector &direction, const reco::Vertex &vertex)
Definition: IPTools.cc:206
double m_ghostTrackPriorDeltaR
Definition: IPProducer.h:150
reco::TransientTrack build(const reco::Track *p) const
void checkEventSetup(const edm::EventSetup &iSetup)
Definition: IPProducer.h:419
std::unique_ptr< HistogramProbabilityEstimator > m_probabilityEstimator
Definition: IPProducer.h:151
const GlobalVector direction() const
int iEvent
Definition: GenABIO.cc:224
GlobalError positionError(double lambda=0.) const
Measurement1D distanceToGhostTrack
Definition: IPTagInfo.h:34
int m_cutPixelHits
Definition: IPProducer.h:156
const MagneticField * field() const
Helper m_helper
Definition: IPProducer.h:165
def pv(vc)
Definition: MetAnalyzer.py:7
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
edm::EDGetTokenT< reco::VertexCollection > token_primaryVertex
Definition: IPProducer.h:143
math::XYZPoint Point
point in the space
Definition: Vertex.h:40
Measurement1D ip3d
Definition: IPTagInfo.h:32
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:130
bool m_directionWithTracks
Definition: IPProducer.h:162
Measurement1D distance(const GlobalPoint &vtx1Position, const GlobalError &vtx1PositionError, const GlobalPoint &vtx2Position, const GlobalError &vtx2PositionError) const override
GlobalPoint closestToJetAxis
Definition: IPTagInfo.h:29
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
Definition: TrackFwd.h:20
double lambda(const GlobalPoint &point) const
edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > token_trackBuilder
Definition: IPProducer.h:144
Measurement1D distanceToJetAxis
Definition: IPTagInfo.h:33
GlobalPoint closestToGhostTrack
Definition: IPTagInfo.h:30
GhostTrack fit(const GlobalPoint &priorPosition, const GlobalError &priorError, const GlobalVector &direction, double coneRadius, const std::vector< TransientTrack > &tracks) const
bool m_computeProbabilities
Definition: IPProducer.h:148
primaryVertex
hltOfflineBeamSpot for HLTMON
bool m_computeGhostTrack
Definition: IPProducer.h:149
edm::AssociationVector< reco::JetRefBaseProd, Values > Container
double m_cutMaxLIP
Definition: IPProducer.h:161
def move(src, dest)
Definition: eostools.py:511
TrajectoryStateOnSurface impactPointState() const

Member Data Documentation

◆ m_calibrationCacheId2D

template<class Container, class Base, class Helper>
unsigned long long IPProducer< Container, Base, Helper >::m_calibrationCacheId2D
private

Definition at line 152 of file IPProducer.h.

Referenced by IPProducer< Container, Base, Helper >::IPProducer().

◆ m_calibrationCacheId3D

template<class Container, class Base, class Helper>
unsigned long long IPProducer< Container, Base, Helper >::m_calibrationCacheId3D
private

Definition at line 153 of file IPProducer.h.

Referenced by IPProducer< Container, Base, Helper >::IPProducer().

◆ m_computeGhostTrack

template<class Container, class Base, class Helper>
bool IPProducer< Container, Base, Helper >::m_computeGhostTrack
private

Definition at line 149 of file IPProducer.h.

Referenced by IPProducer< Container, Base, Helper >::IPProducer().

◆ m_computeProbabilities

template<class Container, class Base, class Helper>
bool IPProducer< Container, Base, Helper >::m_computeProbabilities
private

Definition at line 148 of file IPProducer.h.

Referenced by IPProducer< Container, Base, Helper >::IPProducer().

◆ m_cutMaxChiSquared

template<class Container, class Base, class Helper>
double IPProducer< Container, Base, Helper >::m_cutMaxChiSquared
private

Definition at line 160 of file IPProducer.h.

Referenced by IPProducer< Container, Base, Helper >::IPProducer().

◆ m_cutMaxLIP

template<class Container, class Base, class Helper>
double IPProducer< Container, Base, Helper >::m_cutMaxLIP
private

Definition at line 161 of file IPProducer.h.

Referenced by IPProducer< Container, Base, Helper >::IPProducer().

◆ m_cutMaxTIP

template<class Container, class Base, class Helper>
double IPProducer< Container, Base, Helper >::m_cutMaxTIP
private

Definition at line 158 of file IPProducer.h.

Referenced by IPProducer< Container, Base, Helper >::IPProducer().

◆ m_cutMinPt

template<class Container, class Base, class Helper>
double IPProducer< Container, Base, Helper >::m_cutMinPt
private

Definition at line 159 of file IPProducer.h.

Referenced by IPProducer< Container, Base, Helper >::IPProducer().

◆ m_cutPixelHits

template<class Container, class Base, class Helper>
int IPProducer< Container, Base, Helper >::m_cutPixelHits
private

Definition at line 156 of file IPProducer.h.

Referenced by IPProducer< Container, Base, Helper >::IPProducer().

◆ m_cutTotalHits

template<class Container, class Base, class Helper>
int IPProducer< Container, Base, Helper >::m_cutTotalHits
private

Definition at line 157 of file IPProducer.h.

Referenced by IPProducer< Container, Base, Helper >::IPProducer().

◆ m_directionWithGhostTrack

template<class Container, class Base, class Helper>
bool IPProducer< Container, Base, Helper >::m_directionWithGhostTrack
private

Definition at line 163 of file IPProducer.h.

Referenced by IPProducer< Container, Base, Helper >::IPProducer().

◆ m_directionWithTracks

template<class Container, class Base, class Helper>
bool IPProducer< Container, Base, Helper >::m_directionWithTracks
private

Definition at line 162 of file IPProducer.h.

Referenced by IPProducer< Container, Base, Helper >::IPProducer().

◆ m_ghostTrackPriorDeltaR

template<class Container, class Base, class Helper>
double IPProducer< Container, Base, Helper >::m_ghostTrackPriorDeltaR
private

Definition at line 150 of file IPProducer.h.

Referenced by IPProducer< Container, Base, Helper >::IPProducer().

◆ m_helper

template<class Container, class Base, class Helper>
Helper IPProducer< Container, Base, Helper >::m_helper
private

Definition at line 165 of file IPProducer.h.

◆ m_probabilityEstimator

template<class Container, class Base, class Helper>
std::unique_ptr<HistogramProbabilityEstimator> IPProducer< Container, Base, Helper >::m_probabilityEstimator
private

Definition at line 151 of file IPProducer.h.

◆ m_useDB

template<class Container, class Base, class Helper>
bool IPProducer< Container, Base, Helper >::m_useDB
private

Definition at line 154 of file IPProducer.h.

◆ m_useTrackQuality

template<class Container, class Base, class Helper>
bool IPProducer< Container, Base, Helper >::m_useTrackQuality
private

Definition at line 164 of file IPProducer.h.

Referenced by IPProducer< Container, Base, Helper >::IPProducer().

◆ token_calib2D

template<class Container, class Base, class Helper>
edm::ESGetToken<TrackProbabilityCalibration, BTagTrackProbability2DRcd> IPProducer< Container, Base, Helper >::token_calib2D
private

Definition at line 145 of file IPProducer.h.

Referenced by IPProducer< Container, Base, Helper >::IPProducer().

◆ token_calib3D

template<class Container, class Base, class Helper>
edm::ESGetToken<TrackProbabilityCalibration, BTagTrackProbability3DRcd> IPProducer< Container, Base, Helper >::token_calib3D
private

Definition at line 146 of file IPProducer.h.

Referenced by IPProducer< Container, Base, Helper >::IPProducer().

◆ token_primaryVertex

template<class Container, class Base, class Helper>
edm::EDGetTokenT<reco::VertexCollection> IPProducer< Container, Base, Helper >::token_primaryVertex
private

Definition at line 143 of file IPProducer.h.

Referenced by IPProducer< Container, Base, Helper >::IPProducer().

◆ token_trackBuilder

template<class Container, class Base, class Helper>
edm::ESGetToken<TransientTrackBuilder, TransientTrackRecord> IPProducer< Container, Base, Helper >::token_trackBuilder
private

Definition at line 144 of file IPProducer.h.

Referenced by IPProducer< Container, Base, Helper >::IPProducer().