File indexing completed on 2024-04-06 12:24:32
0001 #ifndef RecoBTag_SecondaryVertex_VertexFilter_h
0002 #define RecoBTag_SecondaryVertex_VertexFilter_h
0003
0004 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0005 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
0006
0007 #include "RecoBTag/SecondaryVertex/interface/V0Filter.h"
0008 #include "RecoBTag/SecondaryVertex/interface/SecondaryVertex.h"
0009 #include <functional>
0010 #include <algorithm>
0011 #include <iterator>
0012 #include <cmath>
0013 #include <set>
0014
0015 #include "DataFormats/GeometryVector/interface/VectorUtil.h"
0016 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0017 #include "DataFormats/VertexReco/interface/Vertex.h"
0018
0019 #include "RecoBTag/SecondaryVertex/interface/SecondaryVertex.h"
0020 #include "RecoBTag/SecondaryVertex/interface/TrackKinematics.h"
0021 #include "DataFormats/Candidate/interface/Candidate.h"
0022
0023 namespace reco {
0024
0025 class VertexFilter {
0026 public:
0027 VertexFilter(const edm::ParameterSet ¶ms);
0028 ~VertexFilter() {}
0029
0030 bool operator()(const reco::Vertex &pv,
0031 const TemplatedSecondaryVertex<reco::Vertex> &sv,
0032 const GlobalVector &direction) const;
0033 bool operator()(const reco::Vertex &pv,
0034 const TemplatedSecondaryVertex<reco::VertexCompositePtrCandidate> &sv,
0035 const GlobalVector &direction) const;
0036
0037 private:
0038 bool useTrackWeights;
0039 double minTrackWeight;
0040 double massMax;
0041 double fracPV;
0042 unsigned int multiplicityMin;
0043
0044 double distVal2dMin;
0045 double distVal2dMax;
0046 double distVal3dMin;
0047 double distVal3dMax;
0048
0049 double distSig2dMin;
0050 double distSig2dMax;
0051 double distSig3dMin;
0052 double distSig3dMax;
0053
0054 double maxDeltaRToJetAxis;
0055 V0Filter v0Filter;
0056 };
0057
0058 }
0059
0060 #endif