1 #ifndef RecoTauTag_RecoTau_PFTauElementsOperators_H_ 2 #define RecoTauTag_RecoTau_PFTauElementsOperators_H_ 26 #include "Math/GenVector/VectorUtil.h" 27 #include "Math/GenVector/PxPyPzE4D.h" 47 std::vector<reco::CandidatePtr>
PFCandsInCone(
const std::vector<reco::CandidatePtr>& PFCands,
const math::XYZVector& myVector,
const std::string conemetric,
const double conesize,
const double minPt)
const;
55 std::vector<reco::CandidatePtr>
PFCandsInAnnulus(
const std::vector<reco::CandidatePtr>& PFCands,
const math::XYZVector& myVector,
const std::string innercone_metric,
const double innercone_size,
const std::string outercone_metric,
const double outercone_size,
const double minPt)
const;
66 void copyCandRefsFilteredByPt(
const std::vector<reco::CandidatePtr>& theInputCands, std::vector<reco::CandidatePtr>& theOutputCands,
const double minPt);
71 const double minChargedSize,
const double maxChargedSize,
const double minNeutralSize,
const double maxNeutralSize,
72 const double minChargedPt,
const double minNeutralPt,
73 const std::string& outlierCollectorConeMetric,
const double outlierCollectorConeSize,
74 std::vector<reco::CandidatePtr>& signalChargedObjects, std::vector<reco::CandidatePtr>& outlierChargedObjects,
75 std::vector<reco::CandidatePtr>& signalGammaObjects, std::vector<reco::CandidatePtr>& outlierGammaObjects,
bool useScanningAxis);
80 double discriminatorByIsolPFCandsN(
std::string matchingcone_metric,
double matchingcone_size,
std::string signalcone_metric,
double signalcone_size,
std::string isolcone_metric,
double isolcone_size,
bool useOnlyChargedHadrforleadPFCand,
double minPt_leadPFCand,
double minPt_PFCand,
int IsolPFCands_maxN=0);
81 double discriminatorByIsolPFCandsN(
const math::XYZVector& myVector,
std::string matchingcone_metric,
double matchingcone_size,
std::string signalcone_metric,
double signalcone_size,
std::string isolcone_metric,
double isolcone_size,
bool useOnlyChargedHadrforleadPFCand,
double minPt_leadPFCand,
double minPt_PFCand,
int IsolPFCands_maxN=0);
84 double discriminatorByIsolPFChargedHadrCandsN(
const math::XYZVector& myVector,
std::string matchingcone_metric,
double matchingcone_size,
std::string signalcone_metric,
double signalcone_size,
std::string isolcone_metric,
double isolcone_size,
bool useOnlyChargedHadrforleadPFCand,
double minPt_leadPFCand,
double minPt_PFCand,
int IsolPFCands_maxN=0);
87 double discriminatorByIsolPFNeutrHadrCandsN(
const math::XYZVector& myVector,
std::string matchingcone_metric,
double matchingcone_size,
std::string signalcone_metric,
double signalcone_size,
std::string isolcone_metric,
double isolcone_size,
bool useOnlyChargedHadrforleadPFCand,
double minPt_leadPFCand,
double minPt_PFCand,
int IsolPFCands_maxN=0);
90 double discriminatorByIsolPFGammaCandsN(
const math::XYZVector& myVector,
std::string matchingcone_metric,
double matchingcone_size,
std::string signalcone_metric,
double signalcone_size,
std::string isolcone_metric,
double isolcone_size,
bool useOnlyChargedHadrforleadPFCand,
double minPt_leadPFCand,
double minPt_PFCand,
int IsolPFCands_maxN=0);
93 double discriminatorByIsolPFCandsEtSum(
const math::XYZVector& myVector,
std::string matchingcone_metric,
double matchingcone_size,
std::string signalcone_metric,
double signalcone_size,
std::string isolcone_metric,
double isolcone_size,
bool useOnlyChargedHadrforleadPFCand,
double minPt_leadPFCand,
double minPt_PFCand,
double IsolPFCands_maxEtSum=0);
96 double discriminatorByIsolPFChargedHadrCandsEtSum(
const math::XYZVector& myVector,
std::string matchingcone_metric,
double matchingcone_size,
std::string signalcone_metric,
double signalcone_size,
std::string isolcone_metric,
double isolcone_size,
bool useOnlyChargedHadrforleadPFCand,
double minPt_leadPFCand,
double minPt_PFCand,
double IsolPFCands_maxEtSum=0);
99 double discriminatorByIsolPFNeutrHadrCandsEtSum(
const math::XYZVector& myVector,
std::string matchingcone_metric,
double matchingcone_size,
std::string signalcone_metric,
double signalcone_size,
std::string isolcone_metric,
double isolcone_size,
bool useOnlyChargedHadrforleadPFCand,
double minPt_leadPFCand,
double minPt_PFCand,
double IsolPFCands_maxEtSum=0);
102 double discriminatorByIsolPFGammaCandsEtSum(
const math::XYZVector& myVector,
std::string matchingcone_metric,
double matchingcone_size,
std::string signalcone_metric,
double signalcone_size,
std::string isolcone_metric,
double isolcone_size,
bool useOnlyChargedHadrforleadPFCand,
double minPt_leadPFCand,
double minPt_PFCand,
double IsolPFCands_maxEtSum=0);
std::vector< reco::CandidatePtr > PFGammaCandsInCone(const math::XYZVector &myVector, const std::string conemetric, const double conesize, const double minPt) const
std::vector< reco::CandidatePtr > PFGammaCands_
double computeDeltaR(const math::XYZVector &vec1, const math::XYZVector &vec2)
std::vector< reco::CandidatePtr > PFCands_
std::vector< reco::CandidatePtr > PFChargedHadrCands_
reco::CandidatePtr leadGammaCand(const std::string matchingcone_metric, const double matchingcone_size, const double minPt) const
std::vector< reco::CandidatePtr > PFChargedHadrCandsInCone(const math::XYZVector &myVector, const std::string conemetric, const double conesize, const double minPt) const
std::vector< reco::CandidatePtr > PFChargedHadrCandsInAnnulus(const math::XYZVector &myVector, const std::string innercone_metric, const double innercone_size, const std::string outercone_metric, const double outercone_size, const double minPt) const
double discriminatorByIsolPFGammaCandsN(int IsolPFCands_maxN=0)
Angle< math::XYZVector > metricAngle_
double discriminatorByIsolPFChargedHadrCandsN(int IsolPFCands_maxN=0)
~PFTauElementsOperators()
std::vector< reco::CandidatePtr > IsolPFChargedHadrCands_
ElementsInCone< math::XYZVector, Angle< math::XYZVector >, reco::Candidate > PFCandsinCone_Anglemetric_
ElementsInCone< math::XYZVector, DeltaR< math::XYZVector >, reco::Candidate > PFCandsinCone_DRmetric_
double AreaMetric_recoElements_maxabsEta_
std::vector< reco::CandidatePtr > PFNeutrHadrCands_
double discriminatorByIsolPFCandsEtSum(double IsolPFCands_maxEtSum=0)
std::vector< double > vec1
reco::CandidatePtr leadCand(const std::string matchingcone_metric, const double matchingcone_size, const double minPt) const
double discriminatorByIsolPFGammaCandsEtSum(double IsolPFCands_maxEtSum=0)
double discriminatorByIsolPFCandsN(int IsolPFCands_maxN=0)
std::vector< reco::CandidatePtr > PFCandsInCone(const std::vector< reco::CandidatePtr > &PFCands, const math::XYZVector &myVector, const std::string conemetric, const double conesize, const double minPt) const
std::vector< reco::CandidatePtr > PFNeutrHadrCandsInCone(const math::XYZVector &myVector, const std::string conemetric, const double conesize, const double minPt) const
double computeAngle(const math::XYZVector &vec1, const math::XYZVector &vec2)
PFTauElementsOperators(reco::PFTau &thePFTau)
std::vector< reco::CandidatePtr > PFNeutrHadrCandsInAnnulus(const math::XYZVector &myVector, const std::string innercone_metric, const double innercone_size, const std::string outercone_metric, const double outercone_size, const double minPt) const
std::vector< reco::CandidatePtr > PFGammaCandsInAnnulus(const math::XYZVector &myVector, const std::string innercone_metric, const double innercone_size, const std::string outercone_metric, const double outercone_size, const double minPt) const
double discriminatorByIsolPFNeutrHadrCandsN(int IsolPFCands_maxN=0)
std::vector< reco::CandidatePtr > PFCandsInAnnulus(const std::vector< reco::CandidatePtr > &PFCands, const math::XYZVector &myVector, const std::string innercone_metric, const double innercone_size, const std::string outercone_metric, const double outercone_size, const double minPt) const
std::vector< reco::CandidatePtr > IsolPFNeutrHadrCands_
XYZVectorD XYZVector
spatial vector with cartesian internal representation
DeltaR< math::XYZVector > metricDR_
ElementsInAnnulus< math::XYZVector, DeltaR< math::XYZVector >, Angle< math::XYZVector >, reco::Candidate > PFCandsinAnnulus_innerDRouterAnglemetrics_
std::pair< std::vector< reco::CandidatePtr >, std::vector< reco::CandidatePtr > > PFGammaCandsInOutEllipse(const std::vector< reco::CandidatePtr > &, const reco::Candidate &, double rPhi, double rEta, double maxPt) const
void computeInsideOutContents(const std::vector< reco::CandidatePtr > &theChargedCands, const std::vector< reco::CandidatePtr > &theGammaCands, const math::XYZVector &leadTrackVector, const TFormula &coneSizeFormula, double(*ptrToMetricFunction)(const math::XYZVector &, const math::XYZVector &), const double minChargedSize, const double maxChargedSize, const double minNeutralSize, const double maxNeutralSize, const double minChargedPt, const double minNeutralPt, const std::string &outlierCollectorConeMetric, const double outlierCollectorConeSize, std::vector< reco::CandidatePtr > &signalChargedObjects, std::vector< reco::CandidatePtr > &outlierChargedObjects, std::vector< reco::CandidatePtr > &signalGammaObjects, std::vector< reco::CandidatePtr > &outlierGammaObjects, bool useScanningAxis)
compute size of cone using the Inside-Out cone (Author Evan Friis, UC Davis)
void setAreaMetricrecoElementsmaxabsEta(double x)
std::vector< reco::CandidatePtr > IsolPFGammaCands_
ElementsInEllipse< reco::Candidate, reco::Candidate > PFCandidatesInEllipse_
double discriminatorByIsolPFChargedHadrCandsEtSum(std::string matchingcone_metric, double matchingcone_size, std::string signalcone_metric, double signalcone_size, std::string isolcone_metric, double isolcone_size, bool useOnlyChargedHadrforleadPFCand, double minPt_leadPFCand, double minPt_PFCand, double IsolPFCands_maxEtSum=0)
ElementsInAnnulus< math::XYZVector, DeltaR< math::XYZVector >, DeltaR< math::XYZVector >, reco::Candidate > PFCandsinAnnulus_innerDRouterDRmetrics_
double discriminatorByIsolPFNeutrHadrCandsEtSum(double IsolPFCands_maxEtSum=0)
reco::JetBaseRef PFJetRef_
ElementsInAnnulus< math::XYZVector, Angle< math::XYZVector >, Angle< math::XYZVector >, reco::Candidate > PFCandsinAnnulus_innerAngleouterAnglemetrics_
reco::CandidatePtr leadNeutrHadrCand(const std::string matchingcone_metric, const double matchingcone_size, const double minPt) const
std::vector< reco::CandidatePtr > IsolPFCands_
void copyCandRefsFilteredByPt(const std::vector< reco::CandidatePtr > &theInputCands, std::vector< reco::CandidatePtr > &theOutputCands, const double minPt)
append elements of theInputCands that pass Pt requirement to the end of theOutputCands ...
ElementsInAnnulus< math::XYZVector, Angle< math::XYZVector >, DeltaR< math::XYZVector >, reco::Candidate > PFCandsinAnnulus_innerAngleouterDRmetrics_
reco::CandidatePtr leadChargedHadrCand(const std::string matchingcone_metric, const double matchingcone_size, const double minPt) const