Definition at line 165 of file InclusiveVertexFinder.h.
References funct::abs(), pwdgSkimBPark_cfi::beamSpot, tthelpers::buildTT(), TemplatedInclusiveVertexFinder< InputContainer, VTX >::clusterizer, bsc_activity_cfg::clusters, gather_cfg::cout, reco::Vertex::covariance(), DeadROC_duringRun::dir, VertexDistanceXY::distance(), VertexDistance3D::distance(), Vector3DBase< T, FrameTag >::dot(), reco::TransientTrack::dtErrorExt(), reco::TrackBase::dz(), Measurement1D::error(), TemplatedInclusiveVertexFinder< InputContainer, VTX >::fitterRatio, TemplatedInclusiveVertexFinder< InputContainer, VTX >::fitterSigmacut, TemplatedInclusiveVertexFinder< InputContainer, VTX >::fitterTini, edm::EventSetup::get(), mps_fire::i, edm::isFinite(), reco::TransientTrack::isValid(), TransientVertex::isValid(), dqmiolumiharvest::j, TemplatedInclusiveVertexFinder< InputContainer, VTX >::maxLIP, TemplatedInclusiveVertexFinder< InputContainer, VTX >::maxNTracks, TemplatedInclusiveVertexFinder< InputContainer, VTX >::maxTimeSig, eostools::move(), reco::Vertex::position(), funct::pow(), zMuMuMuonUserData::primaryVertices, MetAnalyzer::pv(), reco::TransientTrack::setBeamSpot(), Measurement1D::significance(), mathSSE::sqrt(), pfDeepBoostedJetPreprocessParams_cfi::sv, reco::Vertex::t(), reco::TransientTrack::timeExt(), TemplatedInclusiveVertexFinder< InputContainer, VTX >::token_beamSpot, TemplatedInclusiveVertexFinder< InputContainer, VTX >::token_primaryVertex, TemplatedInclusiveVertexFinder< InputContainer, VTX >::token_tracks, reco::TransientTrack::track(), HLT_2018_cff::track, TemplatedInclusiveVertexFinder< InputContainer, VTX >::trackFilter(), PDWG_EXOHSCP_cff::tracks, groupFilesInBlocks::tt, Vector3DBase< T, FrameTag >::unit(), unit(), reco::Unknown, svhelper::updateVertexTime(), TemplatedInclusiveVertexFinder< InputContainer, VTX >::useVertexFitter, TemplatedInclusiveVertexFinder< InputContainer, VTX >::useVertexReco, findQualityFiles::v, Measurement1D::value(), AdaptiveVertexFitter::vertex(), TemplatedInclusiveVertexFinder< InputContainer, VTX >::vertexMinAngleCosine, TemplatedInclusiveVertexFinder< InputContainer, VTX >::vertexMinDLen2DSig, TemplatedInclusiveVertexFinder< InputContainer, VTX >::vertexMinDLenSig, pwdgSkimBPark_cfi::vertices, badGlobalMuonTaggersAOD_cff::vtx, TemplatedInclusiveVertexFinder< InputContainer, VTX >::vtxReco, and w.
Referenced by TemplatedInclusiveVertexFinder< InputContainer, VTX >::fillDescriptions().
166 using namespace reco;
189 auto recoVertices = std::make_unique<Product>();
190 if (!primaryVertices->empty()) {
194 std::vector<TransientTrack> tts;
196 for (
typename InputContainer::const_iterator
track = tracks->begin();
track != tracks->end(); ++
track) {
208 auto dtSig =
std::abs(
tt.timeExt() - pv.
t()) / tError;
212 tt.setBeamSpot(*beamSpot);
215 std::vector<TracksClusteringFromDisplacedSeed::Cluster>
clusters =
clusterizer->clusters(pv, tts);
219 for (
unsigned int i = 0;
i < 7;
i++) {
220 for (
unsigned int j = 0;
j < 7;
j++) {
232 std::cout <<
"CLUSTERS " << clusters.size() << std::endl;
235 for (std::vector<TracksClusteringFromDisplacedSeed::Cluster>::iterator cluster = clusters.begin();
236 cluster != clusters.end();
238 if (cluster->tracks.size() < 2 || cluster->tracks.size() >
maxNTracks)
240 std::vector<TransientVertex>
vertices;
242 vertices =
vtxReco->vertices(cluster->tracks, bs);
246 singleFitVertex = theAdaptiveFitter.vertex(cluster->tracks, cluster->seedPoint);
248 vertices.push_back(singleFitVertex);
253 for (
auto &
vtx : vertices) {
258 for (std::vector<TransientVertex>::const_iterator
v = vertices.begin();
v != vertices.end(); ++
v) {
263 std::cout <<
"V chi2/n: " <<
v->normalisedChiSquared() <<
" ndof: " <<
v->degreesOfFreedom();
267 std::cout <<
" pos: " << vv.position() <<
" error: " << vv.xError() <<
" " << vv.yError() <<
" " << vv.zError()
269 std::cout <<
" time: " << vv.time() <<
" error: " << vv.tError() << std::endl;
272 std::vector<reco::TransientTrack> ts =
v->originalTracks();
273 for (std::vector<reco::TransientTrack>::const_iterator i = ts.begin(); i != ts.end(); ++
i) {
274 float w =
v->trackWeight(*i);
276 dir += i->impactPointState().globalDirection();
278 std::cout <<
"\t[" << (*i).track().pt() <<
": " << (*i).track().eta() <<
", " << (*i).track().phi() <<
"], " 282 GlobalPoint sv((*v).position().x(), (*v).position().y(), (*v).position().z());
287 recoVertices->push_back(*
v);
297 std::cout <<
"Final put " << recoVertices->size() << std::endl;
math::Error< dimension >::type CovarianceMatrix
std::unique_ptr< VertexReconstructor > vtxReco
PreciseFloatType< T, U >::Type dot(const Vector3DBase< U, FrameTag > &v) const
double covariance(int i, int j) const
(i, j)-th element of error matrix, i, j = 0, ... 2
constexpr bool isFinite(T x)
const Point & position() const
position
Measurement1D distance(const GlobalPoint &vtx1Position, const GlobalError &vtx1PositionError, const GlobalPoint &vtx2Position, const GlobalError &vtx2PositionError) const override
std::unique_ptr< TracksClusteringFromDisplacedSeed > clusterizer
Measurement1D distance(const GlobalPoint &vtx1Position, const GlobalError &vtx1PositionError, const GlobalPoint &vtx2Position, const GlobalError &vtx2PositionError) const override
Abs< T >::type abs(const T &t)
double vertexMinAngleCosine
edm::EDGetTokenT< InputContainer > token_tracks
bool trackFilter(const reco::Track &track) const
Vector3DBase unit() const
double significance() const
double vertexMinDLen2DSig
void updateVertexTime(TransientVertex &vtx)
edm::EDGetTokenT< reco::BeamSpot > token_beamSpot
edm::EDGetTokenT< reco::VertexCollection > token_primaryVertex
reco::TransientTrack buildTT(edm::Handle< reco::TrackCollection > &tracks, edm::ESHandle< TransientTrackBuilder > &trackbuilder, unsigned int k)
Power< A, B >::type pow(const A &a, const B &b)
double t() const
t coordinate
Basic3DVector unit() const