ATLAS Offline Software
Loading...
Searching...
No Matches
CP::SSVWeightsAlg::nFMethodPileupBasedBinnedClass Class Reference
Collaboration diagram for CP::SSVWeightsAlg::nFMethodPileupBasedBinnedClass:

Public Member Functions

 nFMethodPileupBasedBinnedClass (const nlohmann::json &jsonConfig)
double getPFake (const double muactual, const int N_fake, const double SF_fake_low, const double SF_fake_high) const

Private Attributes

std::vector< doublem_muactualBins {}
std::vector< doublem_nFBins {}
double m_lowMuHighMuThreshold = -999

Detailed Description

Definition at line 83 of file SSVWeightsAlg.h.

Constructor & Destructor Documentation

◆ nFMethodPileupBasedBinnedClass()

CP::SSVWeightsAlg::nFMethodPileupBasedBinnedClass::nFMethodPileupBasedBinnedClass ( const nlohmann::json & jsonConfig)

Definition at line 716 of file SSVWeightsAlg.cxx.

717 : m_muactualBins(jsonConfig["nF_pileup_based_binned"]["muactual_bins"].get<std::vector<double>>()),
718 m_nFBins(jsonConfig["nF_pileup_based_binned"]["values"].get<std::vector<double>>())
719 {
720 // Extract information from JSON file for nFMethodPileupBasedBinned
721 m_lowMuHighMuThreshold = jsonConfig["CalibrationInformation"]["lowMuHighMuThreshold"];
722 }
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
Definition hcg.cxx:130

Member Function Documentation

◆ getPFake()

double CP::SSVWeightsAlg::nFMethodPileupBasedBinnedClass::getPFake ( const double muactual,
const int N_fake,
const double SF_fake_low,
const double SF_fake_high ) const

Definition at line 726 of file SSVWeightsAlg.cxx.

730 {
731
732 double nF = 0;
733 double P_fake = 1;
734
735 // Find the correct bin for muactual
736 for (size_t j = 0; j < m_muactualBins.size() - 1; ++j) {
737 if (muactual >= m_muactualBins[j] && muactual < m_muactualBins[j + 1]) {
738 nF = m_nFBins[j];
739 if (muactual < m_lowMuHighMuThreshold){
740 P_fake = poisson_pmf(N_fake, SF_fake_low * nF) / poisson_pmf(N_fake, nF);
741 } else {
742 P_fake = poisson_pmf(N_fake, SF_fake_high * nF) / poisson_pmf(N_fake, nF);
743 }
744 break; // Bin found, no need to continue loop
745 }
746 }
747 return P_fake;
748 }
static double poisson_pmf(const int k, const double lambda)

Member Data Documentation

◆ m_lowMuHighMuThreshold

double CP::SSVWeightsAlg::nFMethodPileupBasedBinnedClass::m_lowMuHighMuThreshold = -999
private

Definition at line 94 of file SSVWeightsAlg.h.

◆ m_muactualBins

std::vector<double> CP::SSVWeightsAlg::nFMethodPileupBasedBinnedClass::m_muactualBins {}
private

Definition at line 92 of file SSVWeightsAlg.h.

92{};

◆ m_nFBins

std::vector<double> CP::SSVWeightsAlg::nFMethodPileupBasedBinnedClass::m_nFBins {}
private

Definition at line 93 of file SSVWeightsAlg.h.

93{};

The documentation for this class was generated from the following files: