 |
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 --------------------------------------—
std::string to_string(const SectorProjector proj)
__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.
@ 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