|
|
#include <IPProducer.h>
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.
◆ Product
template<class Container , class Base , class Helper >
◆ IPProducer()
template<class Container , class Base , class Helper >
Definition at line 191 of file IPProducer.h.
198 esConsumes<TransientTrackBuilder, TransientTrackRecord>(
edm::ESInputTag(
"",
"TransientTrackBuilder"));
199 token_calib2D = esConsumes<TrackProbabilityCalibration, BTagTrackProbability2DRcd>();
200 token_calib3D = esConsumes<TrackProbabilityCalibration, BTagTrackProbability3DRcd>();
216 produces<reco::TrackCollection>(
"ghostTracks");
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_config, 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.
◆ ~IPProducer()
template<class Container , class Base , class Helper >
◆ checkEventSetup()
template<class Container , class Base , class Helper >
◆ fillDescriptions() [1/3]
template<class Container , class Base , class Helper >
◆ fillDescriptions() [2/3]
Definition at line 444 of file IPProducer.h.
447 desc.add<
double>(
"maximumTransverseImpactParameter", 0.2);
448 desc.add<
int>(
"minimumNumberOfHits", 8);
449 desc.add<
double>(
"minimumTransverseMomentum", 1.0);
451 desc.add<
double>(
"maximumLongitudinalImpactParameter", 17.0);
452 desc.add<
bool>(
"computeGhostTrack",
true);
453 desc.add<
double>(
"ghostTrackPriorDeltaR", 0.03);
455 desc.add<
bool>(
"jetDirectionUsingGhostTrack",
false);
456 desc.add<
int>(
"minimumNumberOfPixelHits", 2);
457 desc.add<
bool>(
"jetDirectionUsingTracks",
false);
458 desc.add<
bool>(
"computeProbabilities",
true);
459 desc.add<
bool>(
"useTrackQuality",
false);
460 desc.add<
double>(
"maximumChiSquared", 5.0);
References edm::ConfigurationDescriptions::addDefault(), submitPVResolutionJobs::desc, and HLT_FULL_cff::InputTag.
◆ fillDescriptions() [3/3]
Definition at line 465 of file IPProducer.h.
468 desc.add<
double>(
"maximumTransverseImpactParameter", 0.2);
469 desc.add<
int>(
"minimumNumberOfHits", 8);
470 desc.add<
double>(
"minimumTransverseMomentum", 1.0);
472 desc.add<
double>(
"maximumLongitudinalImpactParameter", 17.0);
473 desc.add<
bool>(
"computeGhostTrack",
true);
474 desc.add<
double>(
"maxDeltaR", 0.4);
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);
482 desc.add<
double>(
"ghostTrackPriorDeltaR", 0.03);
483 desc.add<
double>(
"maximumChiSquared", 5.0);
484 desc.addOptional<
bool>(
"explicitJTA",
false);
References edm::ConfigurationDescriptions::addDefault(), submitPVResolutionJobs::desc, and HLT_FULL_cff::InputTag.
◆ produce()
template<class Container , class Base , class Helper >
Definition at line 228 of file IPProducer.h.
240 auto result = std::make_unique<Product>();
242 std::unique_ptr<reco::TrackCollection> ghostTracks;
245 ghostTracks = std::make_unique<reco::TrackCollection>();
259 e(0, 0) = 0.0015 * 0.0015;
260 e(1, 1) = 0.0015 * 0.0015;
267 for (
typename std::vector<Base>::const_iterator it = baseTagInfos.begin(); it != baseTagInfos.end(); it++) {
273 for (
typename Container::const_iterator itTrack =
tracks.begin(); itTrack !=
tracks.end(); ++itTrack)
275 jetMomentum += (*itTrack)->momentum();
279 std::vector<reco::TransientTrack> transientTracks;
281 for (
typename Container::const_iterator itTrack =
tracks.begin(); itTrack !=
tracks.end(); ++itTrack) {
298 transientTracks.push_back(transientTrack);
302 GlobalVector direction(jetMomentum.x(), jetMomentum.y(), jetMomentum.z());
304 std::unique_ptr<reco::GhostTrack> ghostTrack;
329 ghostTrackRef =
reco::TrackRef(ghostTrackRefProd, ghostTracks->size());
330 ghostTracks->push_back(*ghostTrack);
334 double lambda = pred.
lambda(origin);
345 std::vector<float> prob2D, prob3D;
346 std::vector<reco::btag::TrackIPData> ipData;
348 for (
unsigned int ind = 0; ind < transientTracks.size(); ind++) {
364 if (ghostTrack.get()) {
365 const std::vector<reco::GhostTrackState>& states = ghostTrack->states();
366 std::vector<reco::GhostTrackState>::const_iterator
pos =
367 std::find_if(states.begin(), states.end(), [&](
auto&
arg) {
return arg.track() == transientTrack; });
369 if (
pos != states.end() &&
pos->isValid()) {
388 ipData.push_back(trackIP);
394 prob3D.push_back(probability.first ? probability.second : -1.);
399 prob2D.push_back(probability.first ? probability.second : -1.);
References funct::abs(), TransientTrackBuilder::build(), 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, TrajectoryStateOnSurface::globalPosition(), iEvent, reco::TransientTrack::impactPointState(), reco::btag::TrackIPData::ip2d, reco::btag::TrackIPData::ip3d, TrajectoryStateOnSurface::isValid(), IPTools::jetTrackDistance(), reco::GhostTrackPrediction::lambda(), eostools::move(), reco::TrackBase::numberOfValidHits(), AlCaHLTBitMon_ParallelJobs::p, p1, 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_FULL_cff::track, tracks, and HltBtagValidation_cff::Vertex.
◆ m_calibrationCacheId2D
template<class Container , class Base , class Helper >
unsigned long long IPProducer< Container, Base, Helper >::m_calibrationCacheId2D |
|
private |
◆ m_calibrationCacheId3D
template<class Container , class Base , class Helper >
unsigned long long IPProducer< Container, Base, Helper >::m_calibrationCacheId3D |
|
private |
◆ m_computeGhostTrack
template<class Container , class Base , class Helper >
bool IPProducer< Container, Base, Helper >::m_computeGhostTrack |
|
private |
◆ m_computeProbabilities
template<class Container , class Base , class Helper >
bool IPProducer< Container, Base, Helper >::m_computeProbabilities |
|
private |
◆ m_config
template<class Container , class Base , class Helper >
◆ m_cutMaxChiSquared
template<class Container , class Base , class Helper >
double IPProducer< Container, Base, Helper >::m_cutMaxChiSquared |
|
private |
◆ m_cutMaxLIP
template<class Container , class Base , class Helper >
double IPProducer< Container, Base, Helper >::m_cutMaxLIP |
|
private |
◆ m_cutMaxTIP
template<class Container , class Base , class Helper >
double IPProducer< Container, Base, Helper >::m_cutMaxTIP |
|
private |
◆ m_cutMinPt
template<class Container , class Base , class Helper >
double IPProducer< Container, Base, Helper >::m_cutMinPt |
|
private |
◆ m_cutPixelHits
template<class Container , class Base , class Helper >
int IPProducer< Container, Base, Helper >::m_cutPixelHits |
|
private |
◆ m_cutTotalHits
template<class Container , class Base , class Helper >
int IPProducer< Container, Base, Helper >::m_cutTotalHits |
|
private |
◆ m_directionWithGhostTrack
template<class Container , class Base , class Helper >
bool IPProducer< Container, Base, Helper >::m_directionWithGhostTrack |
|
private |
◆ m_directionWithTracks
template<class Container , class Base , class Helper >
bool IPProducer< Container, Base, Helper >::m_directionWithTracks |
|
private |
◆ m_ghostTrackPriorDeltaR
template<class Container , class Base , class Helper >
double IPProducer< Container, Base, Helper >::m_ghostTrackPriorDeltaR |
|
private |
◆ m_helper
template<class Container , class Base , class Helper >
Helper IPProducer< Container, Base, Helper >::m_helper |
|
private |
◆ m_probabilityEstimator
template<class Container , class Base , class Helper >
◆ m_useDB
template<class Container , class Base , class Helper >
bool IPProducer< Container, Base, Helper >::m_useDB |
|
private |
◆ m_useTrackQuality
template<class Container , class Base , class Helper >
bool IPProducer< Container, Base, Helper >::m_useTrackQuality |
|
private |
◆ token_calib2D
template<class Container , class Base , class Helper >
◆ token_calib3D
template<class Container , class Base , class Helper >
◆ token_primaryVertex
template<class Container , class Base , class Helper >
◆ token_trackBuilder
template<class Container , class Base , class Helper >
Measurement1D distanceToJetAxis
T const * product() const
GlobalError positionError(double lambda=0.) const
const reco::Track * toTrack(const reco::TrackBaseRef &t)
math::Error< dimension >::type Error
covariance error matrix (3x3)
GlobalPoint globalPosition() const
Measurement1D distance(const GlobalPoint &vtx1Position, const GlobalError &vtx1PositionError, const GlobalPoint &vtx2Position, const GlobalError &vtx2PositionError) const override
edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > token_trackBuilder
GlobalPoint closestToGhostTrack
const edm::ParameterSet & m_config
bool m_directionWithTracks
unsigned short numberOfValidHits() const
number of valid hits found
edm::AssociationVector< reco::JetRefBaseProd, Values > Container
primaryVertex
hltOfflineBeamSpot for HLTMON
const Vector & prediction() const
GlobalPoint closestToJetAxis
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
bool m_computeProbabilities
GhostTrack fit(const GlobalPoint &priorPosition, const GlobalError &priorError, const GlobalVector &direction, double coneRadius, const std::vector< TransientTrack > &tracks) const
reco::Vertex::Error convertError(const GlobalError &ge)
unsigned long long m_calibrationCacheId2D
const GlobalVector direction() const
const uint32_t *__restrict__ const HitContainer *__restrict__ TkSoA *__restrict__ tracks
GlobalPoint position(double lambda=0.) const
edm::ESGetToken< TrackProbabilityCalibration, BTagTrackProbability2DRcd > token_calib2D
XYZVectorD XYZVector
spatial vector with cartesian internal representation
TrajectoryStateOnSurface impactPointState() const
bool m_directionWithGhostTrack
edm::ESGetToken< TrackProbabilityCalibration, BTagTrackProbability3DRcd > token_calib3D
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Container::value_type value_type
unsigned long long m_calibrationCacheId3D
double m_cutMaxChiSquared
const MagneticField * field() const
Measurement1D distanceToGhostTrack
math::XYZPoint Point
point in the space
const Track & track() const
T getParameter(std::string const &) const
void checkEventSetup(const edm::EventSetup &iSetup)
reco::Vertex::Point convertPos(const GlobalPoint &p)
reco::TransientTrack build(const reco::Track *p) const
Abs< T >::type abs(const T &t)
unsigned long long cacheIdentifier() const
void addDefault(ParameterSetDescription const &psetDescription)
std::unique_ptr< HistogramProbabilityEstimator > m_probabilityEstimator
std::vector< Track > TrackCollection
collection of Tracks
edm::EDGetTokenT< reco::VertexCollection > token_primaryVertex
double m_ghostTrackPriorDeltaR
double lambda(const GlobalPoint &point) const