Skip to content
Snippets Groups Projects
Commit 0a067ea8 authored by Matt LeBlanc's avatar Matt LeBlanc :tada:
Browse files

Adding 3/2 prong discriminators for testing

Former-commit-id: 3d4c8b17bbf378bd048c3c03b1e0d732f533a182
parent 6dd5534c
No related branches found
No related tags found
No related merge requests found
......@@ -22,10 +22,15 @@ int EnergyCorrelatorGeneralizedRatiosTool::modifyJet(xAOD::Jet &jet) const {
float ecfg_3_1 = jet.getAttribute<float>("ECFG_3_1");
// these ones for t/H discrimination
float ecfg_1_4 = jet.getAttribute<float>("ECFG_1_4");
float ecfg_3_4 = jet.getAttribute<float>("ECFG_3_4");
float ecfg_1_3 = jet.getAttribute<float>("ECFG_1_3");
float ecfg_2_3 = jet.getAttribute<float>("ECFG_2_3");
float ecfg_0_2_2 = jet.getAttribute<float>("ECFG_0_2_2");
float ecfg_0_3_1 = jet.getAttribute<float>("ECFG_0_3_1");
float ecfg_1_3_1 = jet.getAttribute<float>("ECFG_1_3_1");
float ecfg_1_3_2 = jet.getAttribute<float>("ECFG_1_3_2");
float ecfg_1_4_2 = jet.getAttribute<float>("ECFG_1_4_2");
float ecfg_2_3_1 = jet.getAttribute<float>("ECFG_2_3_1");
float ecfg_2_3_2 = jet.getAttribute<float>("ECFG_2_3_2");
float ecfg_3_4_1 = jet.getAttribute<float>("ECFG_3_4_1");
float ecfg_5_4_1 = jet.getAttribute<float>("ECFG_5_4_1");
// N2
if(fabs(ecfg_2_1) > 1e-8) // Prevent div-0
......@@ -45,17 +50,51 @@ int EnergyCorrelatorGeneralizedRatiosTool::modifyJet(xAOD::Jet &jet) const {
else
jet.setAttribute("M2", -999.0);
// L1 (experimental for ttH)
if(fabs(ecfg_3_4) > 1e-8)
jet.setAttribute("L1", ecfg_1_4 / pow(ecfg_3_4,2));
// L-series variables
// (experimental for ttH t/H discrimination)
/*
The exponents are determined in order to make
the whole thing dimensionless
E = (a*n) / (b*m)
for an ECFG_X_Y_Z, a=Y+1, n=Z
e.g. for L1
ecfg_0_2_2 / ecfg_2_3_1
E = (3*2) / (4*1) = 3/2
The variables are just re-scaled to make them usually have values
between 1 and 10 for convenience. But this is important to keep in mind.
*/
if(fabs(ecfg_2_3_1) > 1e-8)
jet.setAttribute("L1", ecfg_0_2_2 / pow(ecfg_2_3_1, (3/2) )/100. );
else
jet.setAttribute("L1",-999.0);
// L2 (experimental for ttH)
if(fabs(ecfg_2_3) > 1e-8)
jet.setAttribute("L2", ecfg_1_3 / (pow(ecfg_2_3,(4/3))));
if(fabs(ecfg_3_4_1) > 1e-8)
jet.setAttribute("L2", ecfg_1_4_2 / (pow(ecfg_3_4_1, (2) ))/1000000. );
else
jet.setAttribute("L2",-999.0);
if(fabs(ecfg_0_2_2) > 1e-8)
{
jet.setAttribute("L3", ecfg_1_3_1 / (pow(ecfg_0_2_2, (1) )));
jet.setAttribute("L4", ecfg_2_3_1 / (pow(ecfg_0_2_2, (1) )));
}
else
{
jet.setAttribute("L3",-999.0);
jet.setAttribute("L4",-999.0);
}
if(fabs(ecfg_2_3_1) > 1e-8)
jet.setAttribute("L5", ecfg_0_3_1 / (pow(ecfg_2_3_1, (1) ))/100. );
else
jet.setAttribute("L5",-999.0);
return 0;
}
......@@ -20,26 +20,57 @@ EnergyCorrelatorGeneralizedTool::EnergyCorrelatorGeneralizedTool(std::string nam
int EnergyCorrelatorGeneralizedTool::modifyJet(xAOD::Jet &jet) const {
if(checkForConstituents(jet) == false) return 1;
// N.B. here _angles, _n, _beta !!
// These ones are necessary for N2, M2, etc.
JetSubStructureUtils::EnergyCorrelatorGeneralized ECFG_3_2(2, 3, m_Beta, JetSubStructureUtils::EnergyCorrelator::pt_R);
JetSubStructureUtils::EnergyCorrelatorGeneralized ECFG_2_1(1, 2, m_Beta, JetSubStructureUtils::EnergyCorrelator::pt_R);
JetSubStructureUtils::EnergyCorrelatorGeneralized ECFG_4_2(2, 4, m_Beta, JetSubStructureUtils::EnergyCorrelator::pt_R);
JetSubStructureUtils::EnergyCorrelatorGeneralized ECFG_3_1(1, 3, m_Beta, JetSubStructureUtils::EnergyCorrelator::pt_R);
// these ones for t/H discrimination
JetSubStructureUtils::EnergyCorrelatorGeneralized ECFG_1_4(4, 1, 2.0, JetSubStructureUtils::EnergyCorrelator::pt_R);
JetSubStructureUtils::EnergyCorrelatorGeneralized ECFG_3_4(4, 3, 1.0, JetSubStructureUtils::EnergyCorrelator::pt_R);
JetSubStructureUtils::EnergyCorrelatorGeneralized ECFG_1_3(4, 2, 2.0, JetSubStructureUtils::EnergyCorrelator::pt_R);
JetSubStructureUtils::EnergyCorrelatorGeneralized ECFG_2_3(3, 1, 1.0, JetSubStructureUtils::EnergyCorrelator::pt_R);
jet.setAttribute("ECFG_2_1", ECFG_2_1.result(jet));
jet.setAttribute("ECFG_3_2", ECFG_3_2.result(jet));
jet.setAttribute("ECFG_3_1", ECFG_3_1.result(jet));
jet.setAttribute("ECFG_4_2", ECFG_4_2.result(jet));
jet.setAttribute("ECFG_1_4", ECFG_1_4.result(jet));
jet.setAttribute("ECFG_3_4", ECFG_3_4.result(jet));
jet.setAttribute("ECFG_1_3", ECFG_1_3.result(jet));
jet.setAttribute("ECFG_2_3", ECFG_2_3.result(jet));
// these ones for t/H discrimination
// 232
JetSubStructureUtils::EnergyCorrelatorGeneralized ECFG_2_3_2(2, 3, 2, JetSubStructureUtils::EnergyCorrelator::pt_R);
jet.setAttribute("ECFG_2_3_2", ECFG_2_3_2.result(jet));
// 541
JetSubStructureUtils::EnergyCorrelatorGeneralized ECFG_5_4_1(5, 4, 1, JetSubStructureUtils::EnergyCorrelator::pt_R);
jet.setAttribute("ECFG_5_4_1", ECFG_5_4_1.result(jet));
// 132
JetSubStructureUtils::EnergyCorrelatorGeneralized ECFG_1_3_2(1, 3, 2, JetSubStructureUtils::EnergyCorrelator::pt_R);
jet.setAttribute("ECFG_1_3_2", ECFG_1_3_2.result(jet));
// 231
JetSubStructureUtils::EnergyCorrelatorGeneralized ECFG_2_3_1(2, 3, 1, JetSubStructureUtils::EnergyCorrelator::pt_R);
jet.setAttribute("ECFG_2_3_1", ECFG_2_3_1.result(jet));
// 142
JetSubStructureUtils::EnergyCorrelatorGeneralized ECFG_1_4_2(1, 4, 2, JetSubStructureUtils::EnergyCorrelator::pt_R);
jet.setAttribute("ECFG_1_4_2", ECFG_1_4_2.result(jet));
// 341
JetSubStructureUtils::EnergyCorrelatorGeneralized ECFG_3_4_1(3, 4, 1, JetSubStructureUtils::EnergyCorrelator::pt_R);
jet.setAttribute("ECFG_3_4_1", ECFG_3_4_1.result(jet));
// 022
JetSubStructureUtils::EnergyCorrelatorGeneralized ECFG_0_2_2(0, 2, 2, JetSubStructureUtils::EnergyCorrelator::pt_R);
jet.setAttribute("ECFG_0_2_2", ECFG_0_2_2.result(jet));
// 131
JetSubStructureUtils::EnergyCorrelatorGeneralized ECFG_1_3_1(1, 3, 1, JetSubStructureUtils::EnergyCorrelator::pt_R);
jet.setAttribute("ECFG_1_3_1", ECFG_1_3_1.result(jet));
// 031
JetSubStructureUtils::EnergyCorrelatorGeneralized ECFG_0_3_1(0, 3, 1, JetSubStructureUtils::EnergyCorrelator::pt_R);
jet.setAttribute("ECFG_0_3_1", ECFG_0_3_1.result(jet));
return 0;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment