 |
ATLAS Offline Software
|
#include <MissingMassCalculator.h>
|
| ~MissingMassCalculator () |
|
| MissingMassCalculator (MMCCalibrationSet::e aset, std::string paramFilePath) |
|
| MissingMassCalculator (const MissingMassCalculator &)=delete |
|
MissingMassCalculator & | operator= (const MissingMassCalculator &)=delete |
|
int | RunMissingMassCalculator (const xAOD::IParticle *part1, const xAOD::IParticle *part2, const xAOD::MissingET *met, const int &njets) |
|
void | FinalizeSettings (const xAOD::IParticle *part1, const xAOD::IParticle *part2, const xAOD::MissingET *met, const int &njets) |
|
void | SetNiterFit1 (const int val) |
|
void | SetNiterFit2 (const int val) |
|
void | SetNiterFit3 (const int val) |
|
void | SetNiterRandom (const int val) |
|
void | SetNsucStop (const int val) |
|
void | SetRMSStop (const int val) |
|
void | SetMeanbinStop (const double val) |
|
void | SetRndmSeedAltering (const int val) |
|
void | SetdTheta3d_binMax (const double val) |
|
void | SetdTheta3d_binMin (const double val) |
|
void | SetEventNumber (const int eventNumber) |
|
void | SetMnuScanRange (const double val) |
|
void | SetProposalTryMEt (const double val) |
|
void | SetProposalTryPhi (const double val) |
|
void | SetProposalTryMnu (const double val) |
|
void | SetProposalTryEtau (const double val) |
|
void | SetUseEfficiencyRecovery (const bool val) |
|
bool | GetUseEfficiencyRecovery () const |
|
int | GetNiterFit1 () const |
|
int | GetNiterFit2 () const |
|
int | GetNiterFit3 () const |
|
int | GetNiterRandom () const |
|
int | GetNsucStop () const |
|
int | GetRMSStop () const |
|
double | GetMeanbinStop () const |
|
int | GetRndmSeedAltering () const |
|
int | GetMarkovCountDuplicate () const |
|
int | GetMarkovNRejectNoSol () const |
|
int | GetMarkovNRejectMetropolis () const |
|
int | GetMarkovNAccept () const |
|
int | GetMarkovNFullscan () const |
|
double | GetProposalTryMEt () const |
|
double | GetProposalTryPhi () const |
|
double | GetProposalTryMnu () const |
|
double | GetProposalTryEtau () const |
|
void | SetNsigmaMETscan_ll (const double val) |
|
void | SetNsigmaMETscan_lh (const double val) |
|
void | SetNsigmaMETscan_hh (const double val) |
|
void | SetNsigmaMETscan (const double val) |
|
void | SetUseFloatStopping (const bool val) |
|
void | SetFloatStoppingMinIter (const int val) |
|
void | SetFloatStoppingCheckFreq (const int val) |
|
void | SetFloatStoppingComp (const double val) |
|
void | SetBeamEnergy (const double val) |
|
void | SetLFVLeplepRefit (const bool val) |
|
void | SaveLlhHisto (const bool val) |
|
double | GetmMaxError () const |
|
double | GetmMeanError () const |
|
double | GetmInvWidth2Error () const |
|
int | GetNNoSol () const |
|
int | GetNMetroReject () const |
|
int | GetNSol () const |
|
Double_t | maxFitting (Double_t *x, Double_t *par) |
|
double | maxFromHist (TH1F *theHist, std::vector< double > &histInfo, const MaxHistStrategy::e maxHistStrategy=MaxHistStrategy::FIT, const int winHalfWidth=2, bool debug=false) |
|
double | maxFromHist (const std::shared_ptr< TH1F > &theHist, std::vector< double > &histInfo, const MaxHistStrategy::e maxHistStrategy=MaxHistStrategy::FIT, const int winHalfWidth=2, bool debug=false) |
|
double | dTheta3DLimit (const int &tau_type, const int &limit_code, const double &P_tau) |
|
|
int | CheckSolutions (PtEtaPhiMVector nu_vec, PtEtaPhiMVector vis_vec, int decayType) |
|
int | TailCleanUp (const PtEtaPhiMVector &vis1, const PtEtaPhiMVector &nu1, const PtEtaPhiMVector &vis2, const PtEtaPhiMVector &nu2, const double &mmc_mass, const double &vis_mass, const double &eff_mass, const double &dphiTT) |
|
int | refineSolutions (const double &M_nu1, const double &M_nu2, const int nsol1, const int nsol2, const double &Mvis, const double &Meff) |
|
void | handleSolutions () |
|
double | MassScale (int method, double mass, const int &tau_type1, const int &tau_type2) |
|
int | DitauMassCalculatorV9walk () |
|
int | DitauMassCalculatorV9lfv (bool refit) |
|
int | probCalculatorV9fast (const double &phi1, const double &phi2, const double &M_nu1, const double &M_nu2) |
|
void | SpaceWalkerInit () |
|
bool | SpaceWalkerWalk () |
|
bool | precomputeCache () |
|
bool | checkMEtInRange () |
|
bool | checkAllParamInRange () |
|
Definition at line 46 of file MissingMassCalculator.h.
◆ ~MissingMassCalculator()
MissingMassCalculator::~MissingMassCalculator |
( |
| ) |
|
◆ MissingMassCalculator() [1/2]
MissingMassCalculator::MissingMassCalculator |
( |
MMCCalibrationSet::e |
aset, |
|
|
std::string |
paramFilePath |
|
) |
| |
Definition at line 48 of file MissingMassCalculator.cxx.
134 float hEmax = 3000.0;
144 m_fMfit_all = std::make_shared<TH1F>(
"MMC_h1",
"M", hNbins, 0.0,
151 std::make_shared<TH1F>(
"MMC_h1NoW",
"M no weight", hNbins, 0.0, hEmax);
153 m_fPXfit1 = std::make_shared<TH1F>(
"MMC_h2",
"Px1", 4 * hNbins, -hEmax,
155 m_fPYfit1 = std::make_shared<TH1F>(
"MMC_h3",
"Py1", 4 * hNbins, -hEmax,
157 m_fPZfit1 = std::make_shared<TH1F>(
"MMC_h4",
"Pz1", 4 * hNbins, -hEmax,
159 m_fPXfit2 = std::make_shared<TH1F>(
"MMC_h5",
"Px2", 4 * hNbins, -hEmax,
161 m_fPYfit2 = std::make_shared<TH1F>(
"MMC_h6",
"Py2", 4 * hNbins, -hEmax,
163 m_fPZfit2 = std::make_shared<TH1F>(
"MMC_h7",
"Pz2", 4 * hNbins, -hEmax,
180 m_fFitting->SetParNames(
"Max",
"Mean",
"InvWidth2");
◆ MissingMassCalculator() [2/2]
◆ checkAllParamInRange()
bool MissingMassCalculator::checkAllParamInRange |
( |
| ) |
|
|
inlineprotected |
◆ checkMEtInRange()
bool MissingMassCalculator::checkMEtInRange |
( |
| ) |
|
|
inlineprotected |
◆ CheckSolutions()
int DiTauMassTools::MissingMassCalculator::CheckSolutions |
( |
PtEtaPhiMVector |
nu_vec, |
|
|
PtEtaPhiMVector |
vis_vec, |
|
|
int |
decayType |
|
) |
| |
|
inlineprotected |
◆ ClearDitauStuff()
void MissingMassCalculator::ClearDitauStuff |
( |
DitauStuff & |
fStuff | ) |
|
|
private |
Definition at line 291 of file MissingMassCalculator.cxx.
292 fStuff.Mditau_best = 0.0;
293 fStuff.Sign_best = 1.0E6;
294 fStuff.nutau1 = PtEtaPhiMVector(0., 0., 0., 0.);
295 fStuff.nutau2 = PtEtaPhiMVector(0., 0., 0., 0.);
296 fStuff.vistau1 = PtEtaPhiMVector(0., 0., 0., 0.);
297 fStuff.vistau2 = PtEtaPhiMVector(0., 0., 0., 0.);
298 fStuff.RMSoverMPV = 0.0;
◆ DitauMassCalculatorV9lfv()
int MissingMassCalculator::DitauMassCalculatorV9lfv |
( |
bool |
refit | ) |
|
|
inlineprotected |
Definition at line 1014 of file MissingMassCalculator.cxx.
1049 double METresX_binSize = 2 * N_METsigma * METresX / NiterMET;
1050 double METresY_binSize = 2 * N_METsigma * METresY / NiterMET;
1054 std::vector<PtEtaPhiMVector> nu_vec;
1059 double metprob = 1.0;
1060 double sign_tmp = 0.0;
1061 double tauprob = 1.0;
1062 double totalProb = 0.0;
1066 double met_smear_x = 0.0;
1067 double met_smear_y = 0.0;
1068 double met_smearL = 0.0;
1069 double met_smearP = 0.0;
1071 double angle1 = 0.0;
1111 Info(
"DiTauMassTools",
"Running in dilepton mode");
1116 PtEtaPhiMVector tau_tmp(0.0, 0.0, 0.0, 0.0);
1117 PtEtaPhiMVector lep_tmp(0.0, 0.0, 0.0, 0.0);
1157 double Mlep = tau_tmp.M();
1164 double MnuProb = 1.0;
1166 for (
int i3 = 0; i3 < NiterMnu; i3++)
1168 M_nu = Mnu_binSize * i3;
1169 if (M_nu >= (Mtau - Mlep))
1175 for (
int i4 = 0; i4 < NiterMET + 1; i4++)
1177 met_smearL = METresX_binSize * i4 - N_METsigma * METresX;
1178 for (
int i5 = 0; i5 < NiterMET + 1; i5++)
1180 met_smearP = METresY_binSize * i5 - N_METsigma * METresY;
1181 if (
pow(met_smearL / METresX, 2) +
pow(met_smearP / METresY, 2) >
pow(N_METsigma, 2))
1183 met_smear_x = met_smearL * met_coscovphi - met_smearP * met_sincovphi;
1184 met_smear_y = met_smearL * met_sincovphi + met_smearP * met_coscovphi;
1185 metvec_tmp.SetXY(input_metX + met_smear_x, input_metY + met_smear_y);
1203 for (
unsigned int j1 = 0;
j1 < nu_vec.size();
j1++) {
1206 const double tau1_tmpp = (tau_tmp + nu_vec[
j1]).
P();
1207 angle1 =
Angle(nu_vec[
j1], tau_tmp);
1217 double tauvecprob1j =
1219 if (tauvecprob1j == 0.)
1222 totalProb = tauvecprob1j * metprob * MnuProb * tauprob;
1239 m_fPXfit1->Fill((tau_tmp + nu_vec[
j1]).Px(), totalProb);
1240 m_fPYfit1->Fill((tau_tmp + nu_vec[
j1]).Py(), totalProb);
1241 m_fPZfit1->Fill((tau_tmp + nu_vec[
j1]).Pz(), totalProb);
1245 sign_tmp = -log10(totalProb);
1269 Info(
"DiTauMassTools",
"Running in lepton+tau mode");
1295 PtEtaPhiMVector tau_tmp(0.0, 0.0, 0.0, 0.0);
1296 PtEtaPhiMVector lep_tmp(0.0, 0.0, 0.0, 0.0);
1310 for (
int i4 = 0; i4 < NiterMET + 1; i4++)
1312 met_smearL = METresX_binSize * i4 - N_METsigma * METresX;
1313 for (
int i5 = 0; i5 < NiterMET + 1; i5++)
1315 met_smearP = METresY_binSize * i5 - N_METsigma * METresY;
1316 if (
pow(met_smearL / METresX, 2) +
pow(met_smearP / METresY, 2) >
pow(N_METsigma, 2))
1320 metvec_tmp.SetXY(input_metX + met_smear_x, input_metY + met_smear_y);
1338 for (
unsigned int j1 = 0;
j1 < nu_vec.size();
j1++) {
1341 const double tau1_tmpp = (tau_tmp + nu_vec[
j1]).
P();
1342 angle1 =
Angle(nu_vec[
j1], tau_tmp);
1352 double tauvecprob1j =
1354 if (tauvecprob1j == 0.)
1357 totalProb = tauvecprob1j * metprob * tauprob;
1380 sign_tmp = -log10(totalProb);
1406 Info(
"DiTauMassTools",
"Running in an unknown mode?!?!");
1413 Info(
"DiTauMassTools",
"%s",
1435 if (prob_hist != 0.0)
1453 PxPyPzMVector nu1_tmp(0.0, 0.0, 0.0, 0.0);
1454 PxPyPzMVector nu2_tmp(0.0, 0.0, 0.0, 0.0);
1474 if (fit_code == 0) {
1476 "DiTauMassTools",
"%s",
1477 (
"!!!----> Warning-3 in MissingMassCalculator::DitauMassCalculatorV9lfv() : fit status=" +
1480 Info(
"DiTauMassTools",
"....... No solution is found. Printing input info .......");
1492 Info(
"DiTauMassTools",
" ---------------------------------------------------------- ");
◆ DitauMassCalculatorV9walk()
int MissingMassCalculator::DitauMassCalculatorV9walk |
( |
| ) |
|
|
inlineprotected |
Definition at line 792 of file MissingMassCalculator.cxx.
845 XYVector deltamet_vec;
852 bool paramInsideRange =
false;
871 if (paramInsideRange)
895 if (nsuccesses > 0) {
901 double Px1, Py1, Pz1;
902 double Px2, Py2, Pz2;
903 if (nsuccesses > 0) {
924 if (prob_hist != 0.0)
948 PxPyPzMVector fulltau1, fulltau2;
970 Info(
"DiTauMassTools",
"Scanning ");
971 Info(
"DiTauMassTools",
" Markov ");
972 Info(
"DiTauMassTools",
"%s",
978 Info(
"DiTauMassTools",
"%s",
985 Info(
"DiTauMassTools",
"%s", (
"!!!----> Warning-3 in "
986 "MissingMassCalculator::DitauMassCalculatorV9Walk() : fit status=" +
989 Info(
"DiTauMassTools",
"%s",
"....... No solution is found. Printing input info .......");
1007 Info(
"DiTauMassTools",
" ---------------------------------------------------------- ");
◆ DoOutputInfo()
void MissingMassCalculator::DoOutputInfo |
( |
| ) |
|
|
private |
Definition at line 306 of file MissingMassCalculator.cxx.
309 Info(
"DiTauMassTools",
"Retrieving output from fDitauStuffFit");
314 double q1 = (1. - 0.68) / 2.;
341 PtEtaPhiMVector tlvdummy(0., 0., 0., 0.);
342 XYVector metdummy(0., 0.);
383 PtEtaPhiMVector dummy_vec1(0.0, 0.0, 0.0, 0.0);
384 PtEtaPhiMVector dummy_vec2(0.0, 0.0, 0.0, 0.0);
385 for (
int i = 0;
i < 3;
i++) {
◆ dTheta3DLimit()
double MissingMassCalculator::dTheta3DLimit |
( |
const int & |
tau_type, |
|
|
const int & |
limit_code, |
|
|
const double & |
P_tau |
|
) |
| |
|
inline |
Definition at line 2722 of file MissingMassCalculator.cxx.
2725 #ifndef WITHDTHETA3DLIM
2727 if (limit_code == 0)
2729 if (limit_code == 1)
2731 if (limit_code == 2)
2736 if (limit_code == 0)
2738 double par[3] = {0.0, 0.0, 0.0};
2740 if (tau_type == 8) {
2741 if (limit_code == 0)
2747 if (limit_code == 1)
2753 if (limit_code == 2)
2761 if (tau_type >= 0 && tau_type <= 2) {
2762 if (limit_code == 0)
2766 par[2] = -0.0004859;
2768 if (limit_code == 1)
2774 if (limit_code == 2)
2782 if (tau_type >= 3 && tau_type <= 5) {
2783 if (limit_code == 0)
2787 par[2] = -0.0009458;
2789 if (limit_code == 1)
2795 if (limit_code == 2)
2803 if (std::abs(P_tau +
par[1]) > 0.0)
2805 if (limit_code == 0) {
2808 }
else if (
limit > 0.03) {
2812 if (limit < 0.0 || limit > 0.5 * TMath::Pi()) {
2813 limit = 0.5 * TMath::Pi();
2814 }
else if (limit < 0.05 && limit > 0.0) {
◆ FinalizeSettings()
Definition at line 2826 of file MissingMassCalculator.cxx.
2843 if (LFVMode == -1) {
2845 }
else if (LFVMode != -2) {
2857 PtEtaPhiMVector fixedtau1;
2858 fixedtau1.SetCoordinates(tlvTau1.Pt() /
GEV, tlvTau1.Eta(), tlvTau1.Phi(), tlvTau1.M() /
GEV);
2859 PtEtaPhiMVector fixedtau2;
2860 fixedtau2.SetCoordinates(tlvTau2.Pt() /
GEV, tlvTau2.Eta(), tlvTau2.Phi(), tlvTau2.M() /
GEV);
2867 if (mmcType1 == 8 && mmcType2 == 8) {
2869 }
else if (mmcType1 >= 0 && mmcType1 <= 5 && mmcType2 >= 0 && mmcType2 <= 5) {
2885 Error(
"DiTauMassTools",
"MMCCalibrationSet has not been set !. Please use "
2886 "fMMC.SetCalibrationSet(MMCCalibrationSet::MMC2019) or fMMC.SetCalibrationSet(MMCCalibrationSet::MMC2024)"
2928 Info(
"DiTauMassTools",
"correcting sumET");
3025 Info(
"DiTauMassTools",
"Substracting pt1 from sumEt");
3032 Info(
"DiTauMassTools",
"Substracting pt2 from sumEt");
3075 double HtOffset = 0.;
3080 HtOffset = 87.5 - 27.0 *
x;
◆ GetMarkovCountDuplicate()
int DiTauMassTools::MissingMassCalculator::GetMarkovCountDuplicate |
( |
| ) |
const |
|
inline |
◆ GetMarkovNAccept()
int DiTauMassTools::MissingMassCalculator::GetMarkovNAccept |
( |
| ) |
const |
|
inline |
◆ GetMarkovNFullscan()
int DiTauMassTools::MissingMassCalculator::GetMarkovNFullscan |
( |
| ) |
const |
|
inline |
◆ GetMarkovNRejectMetropolis()
int DiTauMassTools::MissingMassCalculator::GetMarkovNRejectMetropolis |
( |
| ) |
const |
|
inline |
◆ GetMarkovNRejectNoSol()
int DiTauMassTools::MissingMassCalculator::GetMarkovNRejectNoSol |
( |
| ) |
const |
|
inline |
◆ GetMeanbinStop()
double DiTauMassTools::MissingMassCalculator::GetMeanbinStop |
( |
| ) |
const |
|
inline |
◆ GetmInvWidth2Error()
double DiTauMassTools::MissingMassCalculator::GetmInvWidth2Error |
( |
| ) |
const |
|
inline |
◆ GetmMaxError()
double DiTauMassTools::MissingMassCalculator::GetmMaxError |
( |
| ) |
const |
|
inline |
◆ GetmMeanError()
double DiTauMassTools::MissingMassCalculator::GetmMeanError |
( |
| ) |
const |
|
inline |
◆ GetNiterFit1()
int DiTauMassTools::MissingMassCalculator::GetNiterFit1 |
( |
| ) |
const |
|
inline |
◆ GetNiterFit2()
int DiTauMassTools::MissingMassCalculator::GetNiterFit2 |
( |
| ) |
const |
|
inline |
◆ GetNiterFit3()
int DiTauMassTools::MissingMassCalculator::GetNiterFit3 |
( |
| ) |
const |
|
inline |
◆ GetNiterRandom()
int DiTauMassTools::MissingMassCalculator::GetNiterRandom |
( |
| ) |
const |
|
inline |
◆ GetNMetroReject()
int DiTauMassTools::MissingMassCalculator::GetNMetroReject |
( |
| ) |
const |
|
inline |
◆ GetNNoSol()
int DiTauMassTools::MissingMassCalculator::GetNNoSol |
( |
| ) |
const |
|
inline |
◆ GetNSol()
int DiTauMassTools::MissingMassCalculator::GetNSol |
( |
| ) |
const |
|
inline |
◆ GetNsucStop()
int DiTauMassTools::MissingMassCalculator::GetNsucStop |
( |
| ) |
const |
|
inline |
◆ GetProposalTryEtau()
double DiTauMassTools::MissingMassCalculator::GetProposalTryEtau |
( |
| ) |
const |
|
inline |
◆ GetProposalTryMEt()
double DiTauMassTools::MissingMassCalculator::GetProposalTryMEt |
( |
| ) |
const |
|
inline |
◆ GetProposalTryMnu()
double DiTauMassTools::MissingMassCalculator::GetProposalTryMnu |
( |
| ) |
const |
|
inline |
◆ GetProposalTryPhi()
double DiTauMassTools::MissingMassCalculator::GetProposalTryPhi |
( |
| ) |
const |
|
inline |
◆ GetRMSStop()
int DiTauMassTools::MissingMassCalculator::GetRMSStop |
( |
| ) |
const |
|
inline |
◆ GetRndmSeedAltering()
int DiTauMassTools::MissingMassCalculator::GetRndmSeedAltering |
( |
| ) |
const |
|
inline |
◆ GetUseEfficiencyRecovery()
bool DiTauMassTools::MissingMassCalculator::GetUseEfficiencyRecovery |
( |
| ) |
const |
|
inline |
◆ handleSolutions()
void MissingMassCalculator::handleSolutions |
( |
| ) |
|
|
inlineprotected |
Definition at line 2047 of file MissingMassCalculator.cxx.
2052 double totalProbSumSol = 0.;
2053 double totalProbSumSolOld = 0.;
2054 bool firstPointWithSol =
false;
2056 for (
int isol = 0; isol <
m_nsol; ++isol) {
2061 bool notSureToKeep =
true;
2065 notSureToKeep =
false;
2072 firstPointWithSol =
true;
2084 if (notSureToKeep) {
2087 for (
int isol = 0; isol <
m_nsolOld; ++isol) {
2093 if (!firstPointWithSol && totalProbSumSolOld <= 0.) {
2094 Error(
"DiTauMassTools",
"%s",
2095 (
" ERROR null old probability !!! " +
std::to_string(totalProbSumSolOld) +
" nsolOld " +
2099 }
else if (totalProbSumSol > totalProbSumSolOld) {
2104 }
else if (totalProbSumSol < totalProbSumSolOld * 1
E-6) {
2108 }
else if (
m_nsol <= 0) {
2115 reject = (uMC > totalProbSumSol / totalProbSumSolOld);
2140 bool fillSolution =
true;
2141 bool oldToBeUsed =
false;
2149 fillSolution =
false;
2163 if (!firstPointWithSol) {
2164 fillSolution =
true;
2167 fillSolution =
false;
2174 if (!fillSolution) {
2175 if (firstPointWithSol) {
2178 for (
int isol = 0; isol <
m_nsol; ++isol) {
2190 double solSum2 = 0.;
2192 for (
int isol = 0; isol <
m_nsol; ++isol) {
2196 const PtEtaPhiMVector *pnuvec1_tmpj;
2197 const PtEtaPhiMVector *pnuvec2_tmpj;
2210 const PtEtaPhiMVector &nuvec1_tmpj = *pnuvec1_tmpj;
2211 const PtEtaPhiMVector &nuvec2_tmpj = *pnuvec2_tmpj;
2214 solSum2 += mtautau * mtautau;
2236 if (mtautau != 0. &&
weight != 0.)
2301 for (
int isol = 0; isol <
m_nsol; ++isol) {
◆ MassScale()
double DiTauMassTools::MissingMassCalculator::MassScale |
( |
int |
method, |
|
|
double |
mass, |
|
|
const int & |
tau_type1, |
|
|
const int & |
tau_type2 |
|
) |
| |
|
inlineprotected |
◆ maxFitting()
Double_t MissingMassCalculator::maxFitting |
( |
Double_t * |
x, |
|
|
Double_t * |
par |
|
) |
| |
Definition at line 1499 of file MissingMassCalculator.cxx.
1503 const double mM =
x[0];
1504 const double mMax =
par[0];
1505 const double mMean =
par[1];
1506 const double mInvWidth2 =
par[2];
1508 const double fitval = mMax * (1 - 4 * mInvWidth2 *
std::pow(mM - mMean, 2));
◆ maxFromHist() [1/2]
◆ maxFromHist() [2/2]
Definition at line 1519 of file MissingMassCalculator.cxx.
1538 winHalfWidth == 0)) {
1542 int max_bin = theHist->GetMaximumBin();
1543 maxPos = theHist->GetBinCenter(max_bin);
1546 prob = theHist->GetBinContent(max_bin) /
double(theHist->GetEntries());
1553 int hNbins = theHist->GetNbinsX();
1558 int max_bin = theHist->GetMaximumBin();
1559 int iBinMin = max_bin - winHalfWidth;
1562 int iBinMax = max_bin + winHalfWidth;
1563 if (iBinMax > hNbins)
1564 iBinMax = hNbins - 1;
1567 for (
int iBin = iBinMin; iBin <= iBinMax; ++iBin) {
1568 const double weight = theHist->GetBinContent(iBin);
1570 sumx +=
weight * theHist->GetBinCenter(iBin);
1572 maxPos = sumx /
sumw;
1575 prob =
sumw / theHist->GetEntries();
1585 Error(
"DiTauMassTools",
"%s",
1586 (
"ERROR undefined maxHistStrategy:" +
std::to_string(maxHistStrategy)).c_str());
1592 int lastNonZeroBin = -1;
1593 int firstNonZeroBin = -1;
1594 double totalSumw = 0.;
1595 bool firstNullPart =
true;
1596 for (
int iBin = 0; iBin < hNbins; ++iBin) {
1597 const double weight = theHist->GetBinContent(iBin);
1600 lastNonZeroBin = iBin;
1601 if (firstNullPart) {
1602 firstNullPart =
false;
1603 firstNonZeroBin = iBin;
1610 firstNonZeroBin =
std::max(0, firstNonZeroBin - winHalfWidth - 1);
1611 lastNonZeroBin =
std::min(hNbins - 1, lastNonZeroBin + winHalfWidth + 1);
1620 const int nwidth = 2 * winHalfWidth + 1;
1623 for (
int ibin = 0; ibin < nwidth; ++ibin) {
1624 winsum += theHist->GetBinContent(ibin);
1626 double winmax = winsum;
1629 int iBinL = firstNonZeroBin;
1630 int iBinR = iBinL + 2 * winHalfWidth;
1631 bool goingUp =
true;
1636 const double deltawin = theHist->GetBinContent(iBinR) - theHist->GetBinContent(iBinL - 1);
1642 if (winsum > winmax) {
1645 max_bin = (iBinR + iBinL) / 2 - 1;
1656 }
while (iBinR < lastNonZeroBin);
1659 int iBinMin = max_bin - winHalfWidth;
1662 int iBinMax = max_bin + winHalfWidth;
1663 if (iBinMax >= hNbins)
1664 iBinMax = hNbins - 1;
1667 for (
int iBin = iBinMin; iBin <= iBinMax; ++iBin) {
1668 const double weight = theHist->GetBinContent(iBin);
1670 sumx +=
weight * theHist->GetBinCenter(iBin);
1673 double maxPosWin = -1.;
1676 maxPosWin = sumx /
sumw;
1683 const double h_rms = theHist->GetRMS(1);
1687 double numerator = 0;
1689 bool nullBin =
false;
1691 for (
int i = iBinMin;
i < iBinMax; ++
i) {
1692 double binError = theHist->GetBinError(
i);
1693 if (binError < 1
e-10) {
1696 double binErrorSquare =
std::pow(binError, 2);
1697 num = theHist->GetBinContent(
i) / (binErrorSquare);
1698 numerator = numerator +
num;
1701 if (numerator < 1
e-10 ||
denominator < 1
e-10 || nullBin ==
true) {
1717 const double binWidth = theHist->GetBinCenter(2) - theHist->GetBinCenter(1);
1718 double fitWidth = (winHalfWidth + 0.5) *
binWidth;
1731 TString fitOption =
debug ?
"QS" :
"QNS";
1737 TFitResultPtr fitRes =
1738 theHist->Fit(
m_fFitting, fitOption,
"", maxPos - fitWidth, maxPos + fitWidth);
1740 double maxPosFit = -1.;
1742 if (
int(fitRes) == 0) {
1745 const double mMax = fitRes->Parameter(0);
1746 const double mMean = fitRes->Parameter(1);
1747 const double mInvWidth2 = fitRes->Parameter(2);
1748 double mMaxError = fitRes->ParError(0);
1750 double mMeanError = fitRes->ParError(1);
1752 double mInvWidth2Error = fitRes->ParError(2);
1755 mInvWidth2Error = 0.;
1756 const double c = mMax * (1 - 4 * mMean * mMean * mInvWidth2);
1757 const double b = 8 * mMax * mMean * mInvWidth2;
1758 const double a = -4 * mMax * mInvWidth2;
1764 const double h_discri =
b *
b - 4 *
a *
c;
1766 const double sqrth_discri = sqrt(h_discri);
1767 const double h_fitLength = sqrth_discri /
a;
1774 maxPosFit = -
b / (2 *
a);
1778 if (maxPosFit >= 0. and std::abs(maxPosFit - maxPosWin) < 0.8 * fitWidth) {
◆ NuPsolutionLFV()
int MissingMassCalculator::NuPsolutionLFV |
( |
const XYVector & |
met_vec, |
|
|
const PtEtaPhiMVector & |
tau, |
|
|
const double & |
m_nu, |
|
|
std::vector< PtEtaPhiMVector > & |
nu_vec |
|
) |
| |
|
inlineprivate |
Definition at line 755 of file MissingMassCalculator.cxx.
758 int solution_code = 0;
761 PxPyPzMVector nu(met_vec.X(), met_vec.Y(), 0.0, l_nu);
762 PxPyPzMVector nu2(met_vec.X(), met_vec.Y(), 0.0, l_nu);
766 double msq = (Mtau * Mtau - tau.M() * tau.M() - l_nu * l_nu) /
768 double gamma = nu.Px() * nu.Px() + nu.Py() * nu.Py();
769 double beta = tau.Px() * nu.Px() + tau.Py() * nu.Py() + msq;
770 double a = tau.E() * tau.E() - tau.Pz() * tau.Pz();
771 double b = -2 * tau.Pz() *
beta;
773 if ((
b *
b - 4 *
a *
c) < 0)
774 return solution_code;
777 double pvz1 = (-
b + sqrt(
b *
b - 4 *
a *
c)) / (2 *
a);
778 double pvz2 = (-
b - sqrt(
b *
b - 4 *
a *
c)) / (2 *
a);
780 nu.SetCoordinates(met_vec.X(), met_vec.Y(), pvz1, l_nu);
781 nu2.SetCoordinates(met_vec.X(), met_vec.Y(), pvz2, l_nu);
783 PtEtaPhiMVector return_nu(nu.Pt(), nu.Eta(), nu.Phi(), nu.M());
784 PtEtaPhiMVector return_nu2(nu2.Pt(), nu2.Eta(), nu2.Phi(), nu2.M());
785 nu_vec.push_back(return_nu);
786 nu_vec.push_back(return_nu2);
787 return solution_code;
◆ NuPsolutionV3()
int MissingMassCalculator::NuPsolutionV3 |
( |
const double & |
mNu1, |
|
|
const double & |
mNu2, |
|
|
const double & |
phi1, |
|
|
const double & |
phi2, |
|
|
int & |
nsol1, |
|
|
int & |
nsol2 |
|
) |
| |
|
inlineprivate |
Definition at line 550 of file MissingMassCalculator.cxx.
573 int solution_code = 0;
591 if (pTmiss2 * dPhiSign < 0) {
593 return solution_code;
599 if (pTmiss1 * (-dPhiSign) < 0) {
601 return solution_code;
610 double m4noma1 = m2noma1 * m2noma1;
612 double p2v1proj =
std::pow(pv1proj, 2);
614 double pTmiss2CscDPhi = pTmiss2 / sinDPhi2;
615 double &pTn1 = pTmiss2CscDPhi;
616 double pT2miss2CscDPhi = pTmiss2CscDPhi * pTmiss2CscDPhi;
619 const double discri1 = m4noma1 + 4 * m2noma1 * pTmiss2CscDPhi * pv1proj -
620 4 * (
m_ET2v1 * (
m_m2Nu1 + pT2miss2CscDPhi) - (pT2miss2CscDPhi * p2v1proj));
625 return solution_code;
633 double m4noma2 = m2noma2 * m2noma2;
635 double p2v2proj =
std::pow(pv2proj, 2);
636 double sinDPhi1 = -sinDPhi2;
637 double pTmiss1CscDPhi = pTmiss1 / sinDPhi1;
638 double &pTn2 = pTmiss1CscDPhi;
639 double pT2miss1CscDPhi = pTmiss1CscDPhi * pTmiss1CscDPhi;
641 const double discri2 = m4noma2 + 4 * m2noma2 * pTmiss1CscDPhi * pv2proj -
642 4 * (
m_ET2v2 * (
m_m2Nu2 + pT2miss1CscDPhi) - (pT2miss1CscDPhi * p2v2proj));
647 return solution_code;
653 double sqdiscri1 = sqrt(discri1);
659 double pn1Z = first1 + second1;
661 if (m2noma1 + 2 * pTmiss2CscDPhi * pv1proj + 2 * pn1Z *
m_tauVec1Pz >
670 pn1Z = first1 - second1;
672 if (m2noma1 + 2 * pTmiss2CscDPhi * pv1proj + 2 * pn1Z *
m_tauVec1Pz >
684 return solution_code;
689 double sqdiscri2 = sqrt(discri2);
695 double pn2Z = first2 + second2;
697 if (m2noma2 + 2 * pTmiss1CscDPhi * pv2proj + 2 * pn2Z *
m_tauVec2Pz >
706 pn2Z = first2 - second2;
709 if (m2noma2 + 2 * pTmiss1CscDPhi * pv2proj + 2 * pn2Z *
m_tauVec2Pz >
720 return solution_code;
736 if (std::abs(pnux - pTmissx) > 0.001 || std::abs(pnuy - pTmissy) > 0.001) {
737 Info(
"DiTauMassTools",
"%s", (
"NuPsolutionV3 ERROR Pnux-Met.X or Pnuy-Met.Y > 0.001 : " +
742 if (std::abs(mtau1plus -
m_mTau) > 0.001 || std::abs(mtau1moins -
m_mTau) > 0.001 ||
743 std::abs(mtau2plus -
m_mTau) > 0.001 || std::abs(mtau2moins -
m_mTau) > 0.001) {
744 Info(
"DiTauMassTools",
"%s", (
"NuPsolutionV3 ERROR tau mass not recovered : " +
751 return solution_code;
◆ operator=()
◆ precomputeCache()
bool MissingMassCalculator::precomputeCache |
( |
| ) |
|
|
inlineprotected |
◆ PrintOtherInput()
void MissingMassCalculator::PrintOtherInput |
( |
| ) |
|
|
private |
Definition at line 403 of file MissingMassCalculator.cxx.
407 Info(
"DiTauMassTools",
408 ".........................Other input.....................................");
409 Info(
"DiTauMassTools",
"%s",
413 Info(
"DiTauMassTools",
"%s",
416 Info(
"DiTauMassTools",
"%s",
424 Info(
"DiTauMassTools",
425 "tau1 and tau2 were internally swapped (visible on prepared input printout)");
427 Info(
"DiTauMassTools",
"tau1 and tau2 were NOT internally swapped");
430 Info(
"DiTauMassTools",
"%s",
432 Info(
"DiTauMassTools",
"%s",
434 Info(
"DiTauMassTools",
"%s",
436 Info(
"DiTauMassTools",
"%s",
438 Info(
"DiTauMassTools",
"%s",
440 Info(
"DiTauMassTools",
"%s",
◆ PrintResults()
void MissingMassCalculator::PrintResults |
( |
| ) |
|
|
private |
Definition at line 445 of file MissingMassCalculator.cxx.
450 const PtEtaPhiMVector *origVisTau1 = 0;
451 const PtEtaPhiMVector *origVisTau2 = 0;
464 Info(
"DiTauMassTools",
465 "------------- Printing Final Results for MissingMassCalculator --------------");
466 Info(
"DiTauMassTools",
467 ".............................................................................");
471 Info(
"DiTauMassTools",
"%s",
474 Info(
"DiTauMassTools",
"%s",
480 Info(
"DiTauMassTools",
" no 4-momentum or MET from this method ");
485 Info(
"DiTauMassTools",
" fit failed ");
494 Info(
"DiTauMassTools",
"%s",
500 Info(
"DiTauMassTools",
"%s",
506 Info(
"DiTauMassTools",
"%s",
512 Info(
"DiTauMassTools",
"%s",
519 Info(
"DiTauMassTools",
"%s",
521 Info(
"DiTauMassTools",
"%s",
524 Info(
"DiTauMassTools",
"%s",
◆ probCalculatorV9fast()
int MissingMassCalculator::probCalculatorV9fast |
( |
const double & |
phi1, |
|
|
const double & |
phi2, |
|
|
const double & |
M_nu1, |
|
|
const double & |
M_nu2 |
|
) |
| |
|
inlineprotected |
◆ refineSolutions()
int MissingMassCalculator::refineSolutions |
( |
const double & |
M_nu1, |
|
|
const double & |
M_nu2, |
|
|
const int |
nsol1, |
|
|
const int |
nsol2, |
|
|
const double & |
Mvis, |
|
|
const double & |
Meff |
|
) |
| |
|
inlineprotected |
Definition at line 1821 of file MissingMassCalculator.cxx.
1829 Error(
"DiTauMassTools",
"%s",
1833 Error(
"DiTauMassTools",
"%s",
1837 Error(
"DiTauMassTools",
"%s",
1841 Error(
"DiTauMassTools",
"%s",
1856 Prob->
apply(
preparedInput, -99, -99, PtEtaPhiMVector(0, 0, 0, 0), PtEtaPhiMVector(0, 0, 0, 0),
1857 PtEtaPhiMVector(0, 0, 0, 0), PtEtaPhiMVector(0, 0, 0, 0),
true,
false,
false);
1859 for (
int j1 = 0;
j1 < nsol1; ++
j1) {
1869 const int pickInt = std::abs(10000 *
m_Phi1);
1870 const int pickDigit = pickInt - 10 * (pickInt / 10);
1878 nuvec1_tmpj.SetCoordinates(nuvec1_tmpj.Pt(), nuvec1_tmpj.Eta(), nuvec1_tmpj.Phi(), M_nu1);
1879 tauvecsol1j.SetPxPyPzE(0., 0., 0., 0.);
1880 tauvecsol1j += nuvec1_tmpj;
1885 PtEtaPhiMVector(0, 0, 0, 0), nuvec1_tmpj,
1886 PtEtaPhiMVector(0, 0, 0, 0),
false,
true,
false);
1890 for (
int j2 = 0;
j2 < nsol2; ++
j2) {
1901 const int pickInt = std::abs(10000 *
m_Phi2);
1902 const int pickDigit = pickInt - 10 *
int(pickInt / 10);
1910 nuvec2_tmpj.SetCoordinates(nuvec2_tmpj.Pt(), nuvec2_tmpj.Eta(), nuvec2_tmpj.Phi(), M_nu2);
1911 tauvecsol2j.SetPxPyPzE(0., 0., 0., 0.);
1912 tauvecsol2j += nuvec2_tmpj;
1918 PtEtaPhiMVector(0, 0, 0, 0), nuvec2_tmpj,
false,
true,
false);
1922 if (tauvecprob1j == 0.)
1924 if (tauvecprob2j == 0.)
1927 double totalProb = 1.;
1940 (constProb * tauvecprob1j * tauvecprob2j *
1944 if (totalProb <= 0) {
1946 Warning(
"DiTauMassTools",
"%s",
1947 (
"null proba solution, rejected "+
std::to_string(totalProb)).c_str());
1954 Error(
"DiTauMassTools",
"%s",
1955 (
"refineSolutions ERROR nsol getting larger than nsolfinalmax!!! " +
1958 Error(
"DiTauMassTools",
"%s",
1974 nu1Final.SetPxPyPzE(nuvec1_tmpj.Px(), nuvec1_tmpj.Py(), nuvec1_tmpj.Pz(), nuvec1_tmpj.E());
1975 nu2Final.SetPxPyPzE(nuvec2_tmpj.Px(), nuvec2_tmpj.Py(), nuvec2_tmpj.Pz(), nuvec2_tmpj.E());
1983 if (ngoodsol1 == 0) {
1986 if (ngoodsol2 == 0) {
◆ RunMissingMassCalculator()
Definition at line 197 of file MissingMassCalculator.cxx.
205 Info(
"DiTauMassTools",
"------------- Raw Input for MissingMassCalculator --------------");
210 Info(
"DiTauMassTools",
"------------- Prepared Input for MissingMassCalculator--------------");
229 double dummy_METres =
250 Info(
"DiTauMassTools",
"Calling DitauMassCalculatorV9lfv");
256 TFile *
outFile = TFile::Open(
"MMC_likelihoods.root",
"UPDATE");
271 TH1D *nosol =
new TH1D(
"nosol",
"nosol", 7, 0, 7);
279 nosol->Write(nosol->GetName(), TObject::kOverwrite);
◆ SaveLlhHisto()
void MissingMassCalculator::SaveLlhHisto |
( |
const bool |
val | ) |
|
Definition at line 3095 of file MissingMassCalculator.cxx.
3099 float hEmax = 3000.0;
3101 m_fMEtP_all = std::make_shared<TH1F>(
"MEtP_h1",
"M", hNbins, -100.0,
3103 m_fMEtL_all = std::make_shared<TH1F>(
"MEtL_h1",
"M", hNbins, -100.0,
3105 m_fMnu1_all = std::make_shared<TH1F>(
"Mnu1_h1",
"M", hNbins, 0.0,
3107 m_fMnu2_all = std::make_shared<TH1F>(
"Mnu2_h1",
"M", hNbins, 0.0,
3109 m_fPhi1_all = std::make_shared<TH1F>(
"Phi1_h1",
"M", hNbins, -10.0,
3111 m_fPhi2_all = std::make_shared<TH1F>(
"Phi2_h1",
"M", hNbins, -10.0,
◆ SetBeamEnergy()
void DiTauMassTools::MissingMassCalculator::SetBeamEnergy |
( |
const double |
val | ) |
|
|
inline |
◆ SetdTheta3d_binMax()
void DiTauMassTools::MissingMassCalculator::SetdTheta3d_binMax |
( |
const double |
val | ) |
|
|
inline |
◆ SetdTheta3d_binMin()
void DiTauMassTools::MissingMassCalculator::SetdTheta3d_binMin |
( |
const double |
val | ) |
|
|
inline |
◆ SetEventNumber()
void DiTauMassTools::MissingMassCalculator::SetEventNumber |
( |
const int |
eventNumber | ) |
|
|
inline |
◆ SetFloatStoppingCheckFreq()
void DiTauMassTools::MissingMassCalculator::SetFloatStoppingCheckFreq |
( |
const int |
val | ) |
|
|
inline |
◆ SetFloatStoppingComp()
void DiTauMassTools::MissingMassCalculator::SetFloatStoppingComp |
( |
const double |
val | ) |
|
|
inline |
◆ SetFloatStoppingMinIter()
void DiTauMassTools::MissingMassCalculator::SetFloatStoppingMinIter |
( |
const int |
val | ) |
|
|
inline |
◆ SetLFVLeplepRefit()
void DiTauMassTools::MissingMassCalculator::SetLFVLeplepRefit |
( |
const bool |
val | ) |
|
|
inline |
◆ SetMeanbinStop()
void DiTauMassTools::MissingMassCalculator::SetMeanbinStop |
( |
const double |
val | ) |
|
|
inline |
◆ SetMnuScanRange()
void DiTauMassTools::MissingMassCalculator::SetMnuScanRange |
( |
const double |
val | ) |
|
|
inline |
◆ SetNiterFit1()
void DiTauMassTools::MissingMassCalculator::SetNiterFit1 |
( |
const int |
val | ) |
|
|
inline |
◆ SetNiterFit2()
void DiTauMassTools::MissingMassCalculator::SetNiterFit2 |
( |
const int |
val | ) |
|
|
inline |
◆ SetNiterFit3()
void DiTauMassTools::MissingMassCalculator::SetNiterFit3 |
( |
const int |
val | ) |
|
|
inline |
◆ SetNiterRandom()
void DiTauMassTools::MissingMassCalculator::SetNiterRandom |
( |
const int |
val | ) |
|
|
inline |
◆ SetNsigmaMETscan()
void DiTauMassTools::MissingMassCalculator::SetNsigmaMETscan |
( |
const double |
val | ) |
|
|
inline |
◆ SetNsigmaMETscan_hh()
void DiTauMassTools::MissingMassCalculator::SetNsigmaMETscan_hh |
( |
const double |
val | ) |
|
|
inline |
◆ SetNsigmaMETscan_lh()
void DiTauMassTools::MissingMassCalculator::SetNsigmaMETscan_lh |
( |
const double |
val | ) |
|
|
inline |
◆ SetNsigmaMETscan_ll()
void DiTauMassTools::MissingMassCalculator::SetNsigmaMETscan_ll |
( |
const double |
val | ) |
|
|
inline |
◆ SetNsucStop()
void DiTauMassTools::MissingMassCalculator::SetNsucStop |
( |
const int |
val | ) |
|
|
inline |
◆ SetProposalTryEtau()
void DiTauMassTools::MissingMassCalculator::SetProposalTryEtau |
( |
const double |
val | ) |
|
|
inline |
◆ SetProposalTryMEt()
void DiTauMassTools::MissingMassCalculator::SetProposalTryMEt |
( |
const double |
val | ) |
|
|
inline |
◆ SetProposalTryMnu()
void DiTauMassTools::MissingMassCalculator::SetProposalTryMnu |
( |
const double |
val | ) |
|
|
inline |
◆ SetProposalTryPhi()
void DiTauMassTools::MissingMassCalculator::SetProposalTryPhi |
( |
const double |
val | ) |
|
|
inline |
◆ SetRMSStop()
void DiTauMassTools::MissingMassCalculator::SetRMSStop |
( |
const int |
val | ) |
|
|
inline |
◆ SetRndmSeedAltering()
void DiTauMassTools::MissingMassCalculator::SetRndmSeedAltering |
( |
const int |
val | ) |
|
|
inline |
◆ SetUseEfficiencyRecovery()
void DiTauMassTools::MissingMassCalculator::SetUseEfficiencyRecovery |
( |
const bool |
val | ) |
|
|
inline |
◆ SetUseFloatStopping()
void MissingMassCalculator::SetUseFloatStopping |
( |
const bool |
val | ) |
|
Definition at line 3130 of file MissingMassCalculator.cxx.
3134 float hEmax = 3000.0;
3136 m_fMmass_split1 = std::make_shared<TH1F>(
"mass_h1_1",
"M", hNbins, 0.0, hEmax);
3137 m_fMEtP_split1 = std::make_shared<TH1F>(
"MEtP_h1_1",
"M", hNbins, -100.0, 100.0);
3138 m_fMEtL_split1 = std::make_shared<TH1F>(
"MEtL_h1_1",
"M", hNbins, -100.0, 100.0);
3139 m_fMnu1_split1 = std::make_shared<TH1F>(
"Mnu1_h1_1",
"M", hNbins, 0.0, hEmax);
3140 m_fMnu2_split1 = std::make_shared<TH1F>(
"Mnu2_h1_1",
"M", hNbins, 0.0, hEmax);
3141 m_fPhi1_split1 = std::make_shared<TH1F>(
"Phi1_h1_1",
"M", hNbins, -10.0, 10.0);
3142 m_fPhi2_split1 = std::make_shared<TH1F>(
"Phi2_h1_1",
"M", hNbins, -10.0, 10.0);
3143 m_fMmass_split2 = std::make_shared<TH1F>(
"mass_h1_2",
"M", hNbins, 0.0, hEmax);
3144 m_fMEtP_split2 = std::make_shared<TH1F>(
"MEtP_h1_2",
"M", hNbins, -100.0, 100.0);
3145 m_fMEtL_split2 = std::make_shared<TH1F>(
"MEtL_h1_2",
"M", hNbins, -100.0, 100.0);
3146 m_fMnu1_split2 = std::make_shared<TH1F>(
"Mnu1_h1_2",
"M", hNbins, 0.0, hEmax);
3147 m_fMnu2_split2 = std::make_shared<TH1F>(
"Mnu2_h1_2",
"M", hNbins, 0.0, hEmax);
3148 m_fPhi1_split2 = std::make_shared<TH1F>(
"Phi1_h1_2",
"M", hNbins, -10.0, 10.0);
3149 m_fPhi2_split2 = std::make_shared<TH1F>(
"Phi2_h1_2",
"M", hNbins, -10.0, 10.0);
◆ SpaceWalkerInit()
void MissingMassCalculator::SpaceWalkerInit |
( |
| ) |
|
|
inlineprotected |
◆ SpaceWalkerWalk()
bool MissingMassCalculator::SpaceWalkerWalk |
( |
| ) |
|
|
inlineprotected |
Definition at line 2496 of file MissingMassCalculator.cxx.
2503 Info(
"DiTauMassTools",
" in m_meanbinToBeEvaluated && m_iterNsuc==500 ");
2519 int stopint = stopdouble;
◆ TailCleanUp()
int MissingMassCalculator::TailCleanUp |
( |
const PtEtaPhiMVector & |
vis1, |
|
|
const PtEtaPhiMVector & |
nu1, |
|
|
const PtEtaPhiMVector & |
vis2, |
|
|
const PtEtaPhiMVector & |
nu2, |
|
|
const double & |
mmc_mass, |
|
|
const double & |
vis_mass, |
|
|
const double & |
eff_mass, |
|
|
const double & |
dphiTT |
|
) |
| |
|
inlineprotected |
Definition at line 1992 of file MissingMassCalculator.cxx.
2008 const double MrecoMvis = mmc_mass / vis_mass;
2009 if (MrecoMvis > 2.6)
2011 const double MrecoMeff = mmc_mass / eff_mass;
2012 if (MrecoMeff > 1.9)
2014 const double e1p1 = nu1.E() / vis1.P();
2015 const double e2p2 = nu2.E() / vis2.P();
2016 if ((e1p1 + e2p2) > 4.5)
2036 const double MrecoMvis = mmc_mass / vis_mass;
2037 const double MrecoMeff = mmc_mass / eff_mass;
2038 const double x = dphiTT > 1.5 ? dphiTT : 1.5;
2039 if ((MrecoMeff + MrecoMvis) > 5.908 - 1.881 *
x + 0.2995 *
x *
x)
◆ m_beamEnergy
double DiTauMassTools::MissingMassCalculator::m_beamEnergy {} |
|
private |
◆ m_cosPhi1
double DiTauMassTools::MissingMassCalculator::m_cosPhi1 {} |
|
private |
◆ m_cosPhi2
double DiTauMassTools::MissingMassCalculator::m_cosPhi2 {} |
|
private |
◆ m_debugThisIteration
bool DiTauMassTools::MissingMassCalculator::m_debugThisIteration |
|
private |
◆ m_dRmax_tau
double DiTauMassTools::MissingMassCalculator::m_dRmax_tau {} |
|
private |
◆ m_dTheta3d_binMax
double DiTauMassTools::MissingMassCalculator::m_dTheta3d_binMax {} |
|
private |
◆ m_dTheta3d_binMin
double DiTauMassTools::MissingMassCalculator::m_dTheta3d_binMin {} |
|
private |
◆ m_E2v1
double DiTauMassTools::MissingMassCalculator::m_E2v1 {} |
|
private |
◆ m_E2v2
double DiTauMassTools::MissingMassCalculator::m_E2v2 {} |
|
private |
◆ m_ET2v1
double DiTauMassTools::MissingMassCalculator::m_ET2v1 {} |
|
private |
◆ m_ET2v2
double DiTauMassTools::MissingMassCalculator::m_ET2v2 {} |
|
private |
◆ m_eTau1
double DiTauMassTools::MissingMassCalculator::m_eTau1 {} |
|
private |
◆ m_eTau10
double DiTauMassTools::MissingMassCalculator::m_eTau10 {} |
|
private |
◆ m_eTau1Max
double DiTauMassTools::MissingMassCalculator::m_eTau1Max {} |
|
private |
◆ m_eTau1Min
double DiTauMassTools::MissingMassCalculator::m_eTau1Min {} |
|
private |
◆ m_eTau1Proposal
double DiTauMassTools::MissingMassCalculator::m_eTau1Proposal {} |
|
private |
◆ m_eTau1Range
double DiTauMassTools::MissingMassCalculator::m_eTau1Range {} |
|
private |
◆ m_eTau2
double DiTauMassTools::MissingMassCalculator::m_eTau2 {} |
|
private |
◆ m_eTau20
double DiTauMassTools::MissingMassCalculator::m_eTau20 {} |
|
private |
◆ m_eTau2Max
double DiTauMassTools::MissingMassCalculator::m_eTau2Max {} |
|
private |
◆ m_eTau2Min
double DiTauMassTools::MissingMassCalculator::m_eTau2Min {} |
|
private |
◆ m_eTau2Proposal
double DiTauMassTools::MissingMassCalculator::m_eTau2Proposal {} |
|
private |
◆ m_eTau2Range
double DiTauMassTools::MissingMassCalculator::m_eTau2Range {} |
|
private |
◆ m_Ev1
double DiTauMassTools::MissingMassCalculator::m_Ev1 {} |
|
private |
◆ m_Ev2
double DiTauMassTools::MissingMassCalculator::m_Ev2 {} |
|
private |
◆ m_eventNumber
int DiTauMassTools::MissingMassCalculator::m_eventNumber {} |
|
private |
◆ m_fDitauStuffFit
DitauStuff DiTauMassTools::MissingMassCalculator::m_fDitauStuffFit |
|
private |
◆ m_fDitauStuffHisto
DitauStuff DiTauMassTools::MissingMassCalculator::m_fDitauStuffHisto |
|
private |
◆ m_fFitting
TF1* DiTauMassTools::MissingMassCalculator::m_fFitting {} |
|
private |
◆ m_fMEtL_all
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fMEtL_all |
|
private |
◆ m_fMEtL_split1
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fMEtL_split1 |
|
private |
◆ m_fMEtL_split2
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fMEtL_split2 |
|
private |
◆ m_fMEtP_all
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fMEtP_all |
|
private |
◆ m_fMEtP_split1
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fMEtP_split1 |
|
private |
◆ m_fMEtP_split2
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fMEtP_split2 |
|
private |
◆ m_fMetx
TH1F* DiTauMassTools::MissingMassCalculator::m_fMetx {} |
|
private |
◆ m_fMety
TH1F* DiTauMassTools::MissingMassCalculator::m_fMety {} |
|
private |
◆ m_fMfit_all
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fMfit_all |
|
private |
◆ m_fMfit_allGraph
std::shared_ptr<TGraph> DiTauMassTools::MissingMassCalculator::m_fMfit_allGraph |
|
private |
◆ m_fMfit_allNoWeight
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fMfit_allNoWeight |
|
private |
◆ m_fMmass_split1
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fMmass_split1 |
|
private |
◆ m_fMmass_split2
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fMmass_split2 |
|
private |
◆ m_fMnu1
TH1F* DiTauMassTools::MissingMassCalculator::m_fMnu1 {} |
|
private |
◆ m_fMnu1_all
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fMnu1_all |
|
private |
◆ m_fMnu1_split1
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fMnu1_split1 |
|
private |
◆ m_fMnu1_split2
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fMnu1_split2 |
|
private |
◆ m_fMnu2
TH1F* DiTauMassTools::MissingMassCalculator::m_fMnu2 {} |
|
private |
◆ m_fMnu2_all
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fMnu2_all |
|
private |
◆ m_fMnu2_split1
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fMnu2_split1 |
|
private |
◆ m_fMnu2_split2
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fMnu2_split2 |
|
private |
◆ m_fPhi1
TH1F* DiTauMassTools::MissingMassCalculator::m_fPhi1 {} |
|
private |
◆ m_fPhi1_all
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fPhi1_all |
|
private |
◆ m_fPhi1_split1
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fPhi1_split1 |
|
private |
◆ m_fPhi1_split2
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fPhi1_split2 |
|
private |
◆ m_fPhi2
TH1F* DiTauMassTools::MissingMassCalculator::m_fPhi2 {} |
|
private |
◆ m_fPhi2_all
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fPhi2_all |
|
private |
◆ m_fPhi2_split1
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fPhi2_split1 |
|
private |
◆ m_fPhi2_split2
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fPhi2_split2 |
|
private |
◆ m_fPXfit1
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fPXfit1 |
|
private |
◆ m_fPXfit2
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fPXfit2 |
|
private |
◆ m_fPYfit1
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fPYfit1 |
|
private |
◆ m_fPYfit2
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fPYfit2 |
|
private |
◆ m_fPZfit1
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fPZfit1 |
|
private |
◆ m_fPZfit2
std::shared_ptr<TH1F> DiTauMassTools::MissingMassCalculator::m_fPZfit2 |
|
private |
◆ m_fTauProb
TH1F* DiTauMassTools::MissingMassCalculator::m_fTauProb {} |
|
private |
◆ m_fTheta3D
TH1F* DiTauMassTools::MissingMassCalculator::m_fTheta3D {} |
|
private |
◆ m_fullParamSpaceScan
bool DiTauMassTools::MissingMassCalculator::m_fullParamSpaceScan {} |
|
private |
◆ m_fUseEfficiencyRecovery
bool DiTauMassTools::MissingMassCalculator::m_fUseEfficiencyRecovery {} |
|
private |
◆ m_fUseFloatStopping
bool DiTauMassTools::MissingMassCalculator::m_fUseFloatStopping {} |
|
private |
◆ m_fUseFloatStoppingCheckFreq
int DiTauMassTools::MissingMassCalculator::m_fUseFloatStoppingCheckFreq {} |
|
private |
◆ m_fUseFloatStoppingComp
double DiTauMassTools::MissingMassCalculator::m_fUseFloatStoppingComp {} |
|
private |
◆ m_fUseFloatStoppingMinIter
int DiTauMassTools::MissingMassCalculator::m_fUseFloatStoppingMinIter {} |
|
private |
◆ m_iang1high
int DiTauMassTools::MissingMassCalculator::m_iang1high {} |
|
private |
◆ m_iang1low
int DiTauMassTools::MissingMassCalculator::m_iang1low {} |
|
private |
◆ m_iang2high
int DiTauMassTools::MissingMassCalculator::m_iang2high {} |
|
private |
◆ m_iang2low
int DiTauMassTools::MissingMassCalculator::m_iang2low {} |
|
private |
◆ m_iter0
int DiTauMassTools::MissingMassCalculator::m_iter0 {} |
|
private |
◆ m_iter1
int DiTauMassTools::MissingMassCalculator::m_iter1 {} |
|
private |
◆ m_iter2
int DiTauMassTools::MissingMassCalculator::m_iter2 {} |
|
private |
◆ m_iter3
int DiTauMassTools::MissingMassCalculator::m_iter3 {} |
|
private |
◆ m_iter4
int DiTauMassTools::MissingMassCalculator::m_iter4 {} |
|
private |
◆ m_iter5
int DiTauMassTools::MissingMassCalculator::m_iter5 {} |
|
private |
◆ m_iterNsuc
int DiTauMassTools::MissingMassCalculator::m_iterNsuc {} |
|
private |
◆ m_iterNuPV3
int DiTauMassTools::MissingMassCalculator::m_iterNuPV3 {} |
|
private |
◆ m_iterTheta3d
int DiTauMassTools::MissingMassCalculator::m_iterTheta3d {} |
|
private |
◆ m_lfvLeplepRefit
bool DiTauMassTools::MissingMassCalculator::m_lfvLeplepRefit |
|
private |
◆ m_m2Nu1
double DiTauMassTools::MissingMassCalculator::m_m2Nu1 {} |
|
private |
◆ m_m2Nu2
double DiTauMassTools::MissingMassCalculator::m_m2Nu2 {} |
|
private |
◆ m_markovCountDuplicate
int DiTauMassTools::MissingMassCalculator::m_markovCountDuplicate {} |
|
private |
◆ m_markovNAccept
int DiTauMassTools::MissingMassCalculator::m_markovNAccept {} |
|
private |
◆ m_markovNFullScan
int DiTauMassTools::MissingMassCalculator::m_markovNFullScan {} |
|
private |
◆ m_markovNRejectMetropolis
int DiTauMassTools::MissingMassCalculator::m_markovNRejectMetropolis {} |
|
private |
◆ m_markovNRejectNoSol
int DiTauMassTools::MissingMassCalculator::m_markovNRejectNoSol {} |
|
private |
◆ m_meanbinStop
double DiTauMassTools::MissingMassCalculator::m_meanbinStop {} |
|
private |
◆ m_meanbinToBeEvaluated
bool DiTauMassTools::MissingMassCalculator::m_meanbinToBeEvaluated {} |
|
private |
◆ m_Meff
double DiTauMassTools::MissingMassCalculator::m_Meff {} |
|
private |
◆ m_metCovPhiCos
double DiTauMassTools::MissingMassCalculator::m_metCovPhiCos {} |
|
private |
◆ m_metCovPhiSin
double DiTauMassTools::MissingMassCalculator::m_metCovPhiSin {} |
|
private |
◆ m_MEtL
double DiTauMassTools::MissingMassCalculator::m_MEtL {} |
|
private |
◆ m_MEtL0
double DiTauMassTools::MissingMassCalculator::m_MEtL0 {} |
|
private |
◆ m_MEtLMax
double DiTauMassTools::MissingMassCalculator::m_MEtLMax {} |
|
private |
◆ m_MEtLMin
double DiTauMassTools::MissingMassCalculator::m_MEtLMin {} |
|
private |
◆ m_MEtLRange
double DiTauMassTools::MissingMassCalculator::m_MEtLRange {} |
|
private |
◆ m_MEtLStep
double DiTauMassTools::MissingMassCalculator::m_MEtLStep {} |
|
private |
◆ m_MEtP
double DiTauMassTools::MissingMassCalculator::m_MEtP {} |
|
private |
◆ m_MEtP0
double DiTauMassTools::MissingMassCalculator::m_MEtP0 {} |
|
private |
◆ m_MEtPMax
double DiTauMassTools::MissingMassCalculator::m_MEtPMax {} |
|
private |
◆ m_MEtPMin
double DiTauMassTools::MissingMassCalculator::m_MEtPMin {} |
|
private |
◆ m_MEtPRange
double DiTauMassTools::MissingMassCalculator::m_MEtPRange {} |
|
private |
◆ m_MEtProposal
double DiTauMassTools::MissingMassCalculator::m_MEtProposal {} |
|
private |
◆ m_MEtPStep
double DiTauMassTools::MissingMassCalculator::m_MEtPStep {} |
|
private |
◆ m_mmcCalibrationSet
◆ m_Mnu1
double DiTauMassTools::MissingMassCalculator::m_Mnu1 {} |
|
private |
◆ m_Mnu10
double DiTauMassTools::MissingMassCalculator::m_Mnu10 {} |
|
private |
◆ m_Mnu1Exclude
bool DiTauMassTools::MissingMassCalculator::m_Mnu1Exclude {} |
|
private |
◆ m_Mnu1ExcludeMax
double DiTauMassTools::MissingMassCalculator::m_Mnu1ExcludeMax {} |
|
private |
◆ m_Mnu1ExcludeMin
double DiTauMassTools::MissingMassCalculator::m_Mnu1ExcludeMin {} |
|
private |
◆ m_Mnu1ExcludeRange
double DiTauMassTools::MissingMassCalculator::m_Mnu1ExcludeRange {} |
|
private |
◆ m_Mnu1Max
double DiTauMassTools::MissingMassCalculator::m_Mnu1Max {} |
|
private |
◆ m_Mnu1Min
double DiTauMassTools::MissingMassCalculator::m_Mnu1Min {} |
|
private |
◆ m_Mnu1Range
double DiTauMassTools::MissingMassCalculator::m_Mnu1Range {} |
|
private |
◆ m_Mnu1Step
double DiTauMassTools::MissingMassCalculator::m_Mnu1Step {} |
|
private |
◆ m_Mnu1XMax
double DiTauMassTools::MissingMassCalculator::m_Mnu1XMax {} |
|
private |
◆ m_Mnu1XMin
double DiTauMassTools::MissingMassCalculator::m_Mnu1XMin {} |
|
private |
◆ m_Mnu1XRange
double DiTauMassTools::MissingMassCalculator::m_Mnu1XRange {} |
|
private |
◆ m_Mnu2
double DiTauMassTools::MissingMassCalculator::m_Mnu2 {} |
|
private |
◆ m_Mnu20
double DiTauMassTools::MissingMassCalculator::m_Mnu20 {} |
|
private |
◆ m_Mnu2Max
double DiTauMassTools::MissingMassCalculator::m_Mnu2Max {} |
|
private |
◆ m_Mnu2Min
double DiTauMassTools::MissingMassCalculator::m_Mnu2Min {} |
|
private |
◆ m_Mnu2Range
double DiTauMassTools::MissingMassCalculator::m_Mnu2Range {} |
|
private |
◆ m_Mnu2Step
double DiTauMassTools::MissingMassCalculator::m_Mnu2Step {} |
|
private |
◆ m_MnuProposal
double DiTauMassTools::MissingMassCalculator::m_MnuProposal {} |
|
private |
◆ m_MnuScanRange
double DiTauMassTools::MissingMassCalculator::m_MnuScanRange {} |
|
private |
◆ m_mTau
double DiTauMassTools::MissingMassCalculator::m_mTau {} |
|
private |
◆ m_mTau2
double DiTauMassTools::MissingMassCalculator::m_mTau2 {} |
|
private |
◆ m_mtautauFinalSolOldVec
std::vector<double> DiTauMassTools::MissingMassCalculator::m_mtautauFinalSolOldVec |
|
private |
◆ m_mtautauFinalSolVec
std::vector<double> DiTauMassTools::MissingMassCalculator::m_mtautauFinalSolVec |
|
private |
◆ m_mtautauSum
double DiTauMassTools::MissingMassCalculator::m_mtautauSum {} |
|
private |
◆ m_Mvis
double DiTauMassTools::MissingMassCalculator::m_Mvis {} |
|
private |
◆ m_nCallprobCalculatorV9fast
int DiTauMassTools::MissingMassCalculator::m_nCallprobCalculatorV9fast |
|
private |
◆ m_niter_fit1
int DiTauMassTools::MissingMassCalculator::m_niter_fit1 {} |
|
private |
◆ m_niter_fit2
int DiTauMassTools::MissingMassCalculator::m_niter_fit2 {} |
|
private |
◆ m_niter_fit3
int DiTauMassTools::MissingMassCalculator::m_niter_fit3 {} |
|
private |
◆ m_NiterRandom
int DiTauMassTools::MissingMassCalculator::m_NiterRandom {} |
|
private |
◆ m_niterRandomLocal
int DiTauMassTools::MissingMassCalculator::m_niterRandomLocal {} |
|
private |
◆ m_nosol1
int DiTauMassTools::MissingMassCalculator::m_nosol1 {} |
|
private |
◆ m_nosol2
int DiTauMassTools::MissingMassCalculator::m_nosol2 {} |
|
private |
◆ m_nsigma_METscan
double DiTauMassTools::MissingMassCalculator::m_nsigma_METscan {} |
|
private |
◆ m_nsigma_METscan2
double DiTauMassTools::MissingMassCalculator::m_nsigma_METscan2 {} |
|
private |
◆ m_nsigma_METscan_hh
double DiTauMassTools::MissingMassCalculator::m_nsigma_METscan_hh {} |
|
private |
◆ m_nsigma_METscan_lfv_lh
double DiTauMassTools::MissingMassCalculator::m_nsigma_METscan_lfv_lh {} |
|
private |
◆ m_nsigma_METscan_lfv_ll
double DiTauMassTools::MissingMassCalculator::m_nsigma_METscan_lfv_ll {} |
|
private |
◆ m_nsigma_METscan_lh
double DiTauMassTools::MissingMassCalculator::m_nsigma_METscan_lh {} |
|
private |
◆ m_nsigma_METscan_ll
double DiTauMassTools::MissingMassCalculator::m_nsigma_METscan_ll {} |
|
private |
◆ m_nsol
int DiTauMassTools::MissingMassCalculator::m_nsol {} |
|
private |
◆ m_nsolfinalmax
int DiTauMassTools::MissingMassCalculator::m_nsolfinalmax {} |
|
private |
◆ m_nsolmax
int DiTauMassTools::MissingMassCalculator::m_nsolmax |
|
private |
◆ m_nsolOld
int DiTauMassTools::MissingMassCalculator::m_nsolOld {} |
|
private |
◆ m_nsucStop
int DiTauMassTools::MissingMassCalculator::m_nsucStop {} |
|
private |
◆ m_NsucStop
int DiTauMassTools::MissingMassCalculator::m_NsucStop {} |
|
private |
◆ m_nu1FinalSolOldVec
std::vector<PtEtaPhiMVector> DiTauMassTools::MissingMassCalculator::m_nu1FinalSolOldVec |
|
private |
◆ m_nu1FinalSolVec
std::vector<PtEtaPhiMVector> DiTauMassTools::MissingMassCalculator::m_nu1FinalSolVec |
|
private |
◆ m_nu2FinalSolOldVec
std::vector<PtEtaPhiMVector> DiTauMassTools::MissingMassCalculator::m_nu2FinalSolOldVec |
|
private |
◆ m_nu2FinalSolVec
std::vector<PtEtaPhiMVector> DiTauMassTools::MissingMassCalculator::m_nu2FinalSolVec |
|
private |
◆ m_nuvec1_tmp
std::vector<PtEtaPhiMVector> DiTauMassTools::MissingMassCalculator::m_nuvec1_tmp |
|
private |
◆ m_nuvec2_tmp
std::vector<PtEtaPhiMVector> DiTauMassTools::MissingMassCalculator::m_nuvec2_tmp |
|
private |
◆ m_nuvecsol1
std::vector<PtEtaPhiMVector> DiTauMassTools::MissingMassCalculator::m_nuvecsol1 |
|
private |
◆ m_nuvecsol2
std::vector<PtEtaPhiMVector> DiTauMassTools::MissingMassCalculator::m_nuvecsol2 |
|
private |
◆ m_Phi1
double DiTauMassTools::MissingMassCalculator::m_Phi1 {} |
|
private |
◆ m_Phi10
double DiTauMassTools::MissingMassCalculator::m_Phi10 {} |
|
private |
◆ m_Phi1Max
double DiTauMassTools::MissingMassCalculator::m_Phi1Max {} |
|
private |
◆ m_Phi1Min
double DiTauMassTools::MissingMassCalculator::m_Phi1Min {} |
|
private |
◆ m_Phi1Range
double DiTauMassTools::MissingMassCalculator::m_Phi1Range {} |
|
private |
◆ m_Phi1Step
double DiTauMassTools::MissingMassCalculator::m_Phi1Step {} |
|
private |
◆ m_Phi2
double DiTauMassTools::MissingMassCalculator::m_Phi2 {} |
|
private |
◆ m_Phi20
double DiTauMassTools::MissingMassCalculator::m_Phi20 {} |
|
private |
◆ m_Phi2Max
double DiTauMassTools::MissingMassCalculator::m_Phi2Max {} |
|
private |
◆ m_Phi2Min
double DiTauMassTools::MissingMassCalculator::m_Phi2Min {} |
|
private |
◆ m_Phi2Range
double DiTauMassTools::MissingMassCalculator::m_Phi2Range {} |
|
private |
◆ m_Phi2Step
double DiTauMassTools::MissingMassCalculator::m_Phi2Step {} |
|
private |
◆ m_PhiProposal
double DiTauMassTools::MissingMassCalculator::m_PhiProposal {} |
|
private |
◆ m_PrintmInvWidth2Error
double DiTauMassTools::MissingMassCalculator::m_PrintmInvWidth2Error {} |
|
private |
◆ m_PrintmMaxError
double DiTauMassTools::MissingMassCalculator::m_PrintmMaxError {} |
|
private |
◆ m_PrintmMeanError
double DiTauMassTools::MissingMassCalculator::m_PrintmMeanError {} |
|
private |
◆ m_prob_tmp
double DiTauMassTools::MissingMassCalculator::m_prob_tmp {} |
|
private |
◆ m_probFinalSolOldVec
std::vector<double> DiTauMassTools::MissingMassCalculator::m_probFinalSolOldVec |
|
private |
◆ m_probFinalSolVec
std::vector<double> DiTauMassTools::MissingMassCalculator::m_probFinalSolVec |
|
private |
◆ m_ProposalTryEtau
double DiTauMassTools::MissingMassCalculator::m_ProposalTryEtau {} |
|
private |
◆ m_proposalTryMEt
double DiTauMassTools::MissingMassCalculator::m_proposalTryMEt {} |
|
private |
◆ m_ProposalTryMnu
double DiTauMassTools::MissingMassCalculator::m_ProposalTryMnu {} |
|
private |
◆ m_ProposalTryPhi
double DiTauMassTools::MissingMassCalculator::m_ProposalTryPhi {} |
|
private |
◆ m_randomGen
TRandom2 DiTauMassTools::MissingMassCalculator::m_randomGen |
|
private |
◆ m_reRunWithBestMET
bool DiTauMassTools::MissingMassCalculator::m_reRunWithBestMET {} |
|
private |
◆ m_rmsStop
int DiTauMassTools::MissingMassCalculator::m_rmsStop {} |
|
private |
◆ m_RMSStop
int DiTauMassTools::MissingMassCalculator::m_RMSStop {} |
|
private |
◆ m_RndmSeedAltering
int DiTauMassTools::MissingMassCalculator::m_RndmSeedAltering {} |
|
private |
◆ m_SaveLlhHisto
bool DiTauMassTools::MissingMassCalculator::m_SaveLlhHisto |
|
private |
◆ m_scanMnu1
bool DiTauMassTools::MissingMassCalculator::m_scanMnu1 {} |
|
private |
◆ m_scanMnu2
bool DiTauMassTools::MissingMassCalculator::m_scanMnu2 {} |
|
private |
◆ m_seed
int DiTauMassTools::MissingMassCalculator::m_seed {} |
|
private |
◆ m_sinPhi1
double DiTauMassTools::MissingMassCalculator::m_sinPhi1 {} |
|
private |
◆ m_sinPhi2
double DiTauMassTools::MissingMassCalculator::m_sinPhi2 {} |
|
private |
◆ m_switch1
bool DiTauMassTools::MissingMassCalculator::m_switch1 {} |
|
private |
◆ m_switch2
bool DiTauMassTools::MissingMassCalculator::m_switch2 {} |
|
private |
◆ m_tautau_tmp
PtEtaPhiMVector DiTauMassTools::MissingMassCalculator::m_tautau_tmp |
|
private |
◆ m_tauVec1
PtEtaPhiMVector DiTauMassTools::MissingMassCalculator::m_tauVec1 |
|
private |
◆ m_tauVec1E
double DiTauMassTools::MissingMassCalculator::m_tauVec1E {} |
|
private |
◆ m_tauVec1M
double DiTauMassTools::MissingMassCalculator::m_tauVec1M {} |
|
private |
◆ m_tauVec1P
double DiTauMassTools::MissingMassCalculator::m_tauVec1P {} |
|
private |
◆ m_tauVec1Phi
double DiTauMassTools::MissingMassCalculator::m_tauVec1Phi {} |
|
private |
◆ m_tauVec1Px
double DiTauMassTools::MissingMassCalculator::m_tauVec1Px {} |
|
private |
◆ m_tauVec1Py
double DiTauMassTools::MissingMassCalculator::m_tauVec1Py {} |
|
private |
◆ m_tauVec1Pz
double DiTauMassTools::MissingMassCalculator::m_tauVec1Pz {} |
|
private |
◆ m_tauVec2
PtEtaPhiMVector DiTauMassTools::MissingMassCalculator::m_tauVec2 |
|
private |
◆ m_tauVec2E
double DiTauMassTools::MissingMassCalculator::m_tauVec2E {} |
|
private |
◆ m_tauVec2M
double DiTauMassTools::MissingMassCalculator::m_tauVec2M {} |
|
private |
◆ m_tauVec2P
double DiTauMassTools::MissingMassCalculator::m_tauVec2P {} |
|
private |
◆ m_tauVec2Phi
double DiTauMassTools::MissingMassCalculator::m_tauVec2Phi {} |
|
private |
◆ m_tauVec2Px
double DiTauMassTools::MissingMassCalculator::m_tauVec2Px {} |
|
private |
◆ m_tauVec2Py
double DiTauMassTools::MissingMassCalculator::m_tauVec2Py {} |
|
private |
◆ m_tauVec2Pz
double DiTauMassTools::MissingMassCalculator::m_tauVec2Pz {} |
|
private |
◆ m_tauvecprob1
std::vector<double> DiTauMassTools::MissingMassCalculator::m_tauvecprob1 |
|
private |
◆ m_tauvecprob2
std::vector<double> DiTauMassTools::MissingMassCalculator::m_tauvecprob2 |
|
private |
◆ m_tauvecsol1
std::vector<PtEtaPhiMVector> DiTauMassTools::MissingMassCalculator::m_tauvecsol1 |
|
private |
◆ m_tauvecsol2
std::vector<PtEtaPhiMVector> DiTauMassTools::MissingMassCalculator::m_tauvecsol2 |
|
private |
◆ m_testdiscri1
int DiTauMassTools::MissingMassCalculator::m_testdiscri1 {} |
|
private |
◆ m_testdiscri2
int DiTauMassTools::MissingMassCalculator::m_testdiscri2 {} |
|
private |
◆ m_testptn1
int DiTauMassTools::MissingMassCalculator::m_testptn1 {} |
|
private |
◆ m_testptn2
int DiTauMassTools::MissingMassCalculator::m_testptn2 {} |
|
private |
◆ m_TLVdummy
PtEtaPhiMVector DiTauMassTools::MissingMassCalculator::m_TLVdummy |
|
private |
◆ m_totalProbSum
double DiTauMassTools::MissingMassCalculator::m_totalProbSum {} |
|
private |
◆ m_walkWeight
double DiTauMassTools::MissingMassCalculator::m_walkWeight {} |
|
private |
◆ metvec_tmp
XYVector DiTauMassTools::MissingMassCalculator::metvec_tmp |
◆ OutputInfo
◆ preparedInput
◆ Prob
The documentation for this class was generated from the following files:
JetConstituentVector::iterator iterator
constexpr double tauMassInMeV
the mass of the tau (in MeV)
path
python interpreter configuration --------------------------------------—
__HOSTDEV__ double Phi_mpi_pi(double)
@ deltaPhi1
difference between the cluster eta (1st sampling) and the eta of the track extrapolated to the 1st sa...
outFile
Comment Out Those You do not wish to run.
std::string to_string(const DetectorType &type)
@ deltaPhi2
difference between the cluster phi (second sampling) and the phi of the track extrapolated to the sec...
Error
The different types of error that can be flagged in the L1TopoRDO.
constexpr int pow(int base, int exp) noexcept