|
ATLAS Offline Software
|
Go to the documentation of this file.
4 #include "Math/ProbFunc.h"
6 #include "fastjet/Selector.hh"
19 Puppi::Puppi(
double R0,
double Rmin,
double beta,
double centralPTCutOffset,
double centralPTCutSlope,
double forwardPTCutOffset,
double forwardPTCutSlope,
double etaBoundary):
20 m_R0(R0), m_Rmin(
Rmin), m_beta(
beta), m_centralPTCutOffset(centralPTCutOffset), m_centralPTCutSlope(centralPTCutSlope), m_forwardPTCutOffset(forwardPTCutOffset), m_forwardPTCutSlope(forwardPTCutSlope), m_etaBoundary(etaBoundary)
26 void Puppi::setParticles(
const std::vector<fastjet::PseudoJet>& chargedHS,
const std::vector<fastjet::PseudoJet>& chargedPU,
const std::vector<fastjet::PseudoJet>&
neutral,
const std::vector<fastjet::PseudoJet>& forward,
int nPV){
57 chi2Total=fabs(chi2Total);
64 double w = ROOT::Math::chisquared_cdf(chi2Total, nDF);
84 fastjet::Selector
sel = fastjet::SelectorCircle(
m_R0);
85 sel.set_reference(pfo);
92 for (
const auto&
p: chargedHSNeighbors){
93 float dR=pfo.delta_R(
p);
103 vector<fastjet::PseudoJet> neutralNeighbors =
sel(
m_neutral);
104 for (
const auto&
p: neutralNeighbors){
105 float dR=pfo.delta_R(
p);
115 vector<fastjet::PseudoJet> forwardNeighbors =
sel(
m_forward);
116 for (
const auto&
p: forwardNeighbors){
117 float dR=pfo.delta_R(
p);
125 if (
sum<=FLT_MIN)
return -99999;
126 if (nNeighbors!=0)
return log(
sum);
bool m_includeCentralNeutralsInAlpha
double m_forwardPTCutOffset
void setParticles(const std::vector< fastjet::PseudoJet > &chargedHS, const std::vector< fastjet::PseudoJet > &chargedPU, const std::vector< fastjet::PseudoJet > &neutral, const std::vector< fastjet::PseudoJet > &forward, int nPU)
double m_forwardPTCutSlope
std::vector< fastjet::PseudoJet > m_neutral
double getChi2(const fastjet::PseudoJet &pfo)
double m_centralPTCutSlope
double getAlpha(const fastjet::PseudoJet &pfo)
std::vector< std::vector< fastjet::PseudoJet > * > m_allParticles
std::vector< double > otherChi2Vec
std::vector< fastjet::PseudoJet > m_forward
std::vector< fastjet::PseudoJet > m_chargedPU
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
double getWeight(const fastjet::PseudoJet &pfo)
std::vector< fastjet::PseudoJet > m_chargedHS
void findAlphaMedianAndRMS()
double m_centralPTCutOffset
Puppi(double R0, double Rmin, double beta, double centralPTCutOffset, double centralPTCutSlope, double forwardPTCutOffset, double forwardPTCutSlope, double etaBoundary)
constexpr int pow(int base, int exp) noexcept