|
|
Go to the documentation of this file. 1 #ifndef RecoBTag_SecondaryVertex_CombinedSVComputer_h
2 #define RecoBTag_SecondaryVertex_CombinedSVComputer_h
10 #include <Math/VectorUtil.h>
37 #define range_for(i, x) for (int i = (x).begin; i != (x).end; i += (x).increment)
64 template <
class SVTI,
class IPTI>
69 double &vtx_track_ptSum,
70 double &vtx_track_ESum)
const;
90 template <
class SVTI,
class IPTI>
95 double &vtx_track_ptSum,
96 double &vtx_track_ESum)
const {
100 typedef typename IPTI::input_container
Container;
105 bool havePv = ipInfo.primaryVertex().isNonnull();
108 pv =
GlobalPoint(ipInfo.primaryVertex()->x(), ipInfo.primaryVertex()->y(), ipInfo.primaryVertex()->z());
124 double jet_track_ESum = 0.;
147 const std::vector<reco::btag::TrackIPData> &ipData = ipInfo.impactParameterData();
150 std::vector<TrackRef> pseudoVertexTracks;
152 std::vector<TrackRef> trackPairV0Test(2);
173 pseudoVertexTracks.push_back(
track);
178 trackPairV0Test[0] =
track;
191 trackPairV0Test[1] = pairTrack;
204 double trackMag =
std::sqrt(trackMom.Mag2());
221 double perp_trackMom_jetDir = VectorUtil::Perp2(trackMom, jetDir);
222 perp_trackMom_jetDir = (perp_trackMom_jetDir > 0. ?
std::sqrt(perp_trackMom_jetDir) : 0.);
234 for (
typename std::vector<TrackRef>::const_iterator trkIt = pseudoVertexTracks.begin();
235 trkIt != pseudoVertexTracks.end();
238 vtx_track_ptSum +=
std::sqrt((*trkIt)->momentum().Perp2());
281 (vtx_track_ESum / jet_track_ESum);
293 reco::PFJet const *pfJet = dynamic_cast<reco::PFJet const *>(&*
jet);
294 pat::Jet const *patJet = dynamic_cast<pat::Jet const *>(&*
jet);
295 if (pfJet !=
nullptr) {
316 }
else if (patJet !=
nullptr && patJet->
isPFJet()) {
355 #endif // RecoBTag_SecondaryVertex_CombinedSVComputer_h
int electronMultiplicity() const
electronMultiplicity
Base class for all types of Jets.
int neutralHadronMultiplicity() const
neutralHadronMultiplicity
reco::TrackSelector trackNoDeltaRSelector
float photonEnergyFraction() const
photonEnergyFraction
float photonEnergyFraction() const
photonEnergyFraction (relative to corrected jet energy)
float neutralHadronEnergyFraction() const
neutralHadronEnergyFraction (relative to uncorrected jet energy)
float muonEnergyFraction() const
muonEnergyFraction
unsigned int numberOfTracks() const
float chargedHadronEnergyFraction() const
chargedHadronEnergyFraction
float electronEnergyFraction() const
electronEnergyFraction
bool vertexMassCorrection
edm::AssociationVector< reco::JetRefBaseProd, Values > Container
double flipValue(double value, bool vertex) const
int neutralHadronMultiplicity() const
neutralHadronMultiplicity
Analysis-level calorimeter jet class.
unsigned int trackMultiplicityMin
int chargedHadronMultiplicity() const
chargedHadronMultiplicity
reco::TrackSelector trackSelector
Global3DPoint GlobalPoint
const math::XYZTLorentzVector & vectorSum() const
void fillCommonVariables(reco::TaggingVariableList &vars, reco::TrackKinematics &vertexKinematics, const IPTI &ipInfo, const SVTI &svInfo, double &vtx_track_ptSum, double &vtx_track_ESum) const
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
IterationRange flipIterate(int size, bool vertex) const
float neutralHadronEnergyFraction() const
neutralHadronEnergyFraction
std::vector< reco::btau::TaggingVariableName > taggingVariables
float electronEnergyFraction() const
electronEnergyFraction (relative to corrected jet energy)
int electronMultiplicity() const
electronMultiplicity
XYZVectorD XYZVector
spatial vector with cartesian internal representation
int photonMultiplicity() const
photonMultiplicity
double etaRel(const math::XYZVector &dir, const math::XYZVector &track)
Container::value_type value_type
virtual ~CombinedSVComputer()=default
unsigned int pseudoMultiplicityMin
bool isPFJet() const
check to see if the jet is a reco::PFJet
int chargedHadronMultiplicity() const
chargedHadronMultiplicity
reco::V0Filter trackPairV0Filter
int muonMultiplicity() const
muonMultiplicity
int muonMultiplicity() const
muonMultiplicity
const math::XYZTLorentzVector & weightedVectorSum() const
float chargedHadronEnergyFraction() const
chargedHadronEnergyFraction (relative to uncorrected jet energy)
reco::V0Filter pseudoVertexV0Filter
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
int photonMultiplicity() const
photonMultiplicity
float muonEnergyFraction() const
muonEnergyFraction (relative to corrected jet energy)
CombinedSVComputer(const edm::ParameterSet ¶ms)
Jets made from PFObjects.
reco::btag::SortCriteria sortCriterium
char data[epos_bytes_allocation]
reco::TrackSelector trackPseudoSelector
const reco::btag::TrackIPData & threshTrack(const reco::CandIPTagInfo &trackIPTagInfo, const reco::btag::SortCriteria sort, const reco::Jet &jet, const GlobalPoint &pv) const
virtual reco::TaggingVariableList operator()(const reco::TrackIPTagInfo &ipInfo, const reco::SecondaryVertexTagInfo &svInfo) const
edm::ParameterSet dropDeltaR(const edm::ParameterSet &pset) const
void add(const reco::Track &track, double weight=1.0)