Index: contrib/contribs/Nsubjettiness/tags/2.2.6/NjettinessPlugin.hh
===================================================================
--- contrib/contribs/Nsubjettiness/tags/2.2.6/NjettinessPlugin.hh (revision 0)
+++ contrib/contribs/Nsubjettiness/tags/2.2.6/NjettinessPlugin.hh (revision 1318)
@@ -0,0 +1,181 @@
+// Nsubjettiness Package
+// Questions/Comments? jthaler@jthaler.net
+//
+// Copyright (c) 2011-14
+// Jesse Thaler, Ken Van Tilburg, Christopher K. Vermilion, and TJ Wilkason
+//
+// $Id$
+//----------------------------------------------------------------------
+// This file is part of FastJet contrib.
+//
+// It is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2 of the License, or (at
+// your option) any later version.
+//
+// It is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+// License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this code. If not, see .
+//----------------------------------------------------------------------
+
+#ifndef __FASTJET_CONTRIB_NJETTINESSPLUGIN_HH__
+#define __FASTJET_CONTRIB_NJETTINESSPLUGIN_HH__
+
+#include
+
+#include "Njettiness.hh"
+#include "MeasureDefinition.hh"
+#include "AxesDefinition.hh"
+#include "TauComponents.hh"
+
+#include "fastjet/ClusterSequence.hh"
+#include "fastjet/JetDefinition.hh"
+
+#include
+#include
+
+FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh
+
+
+namespace contrib {
+
+
+/// \class NjettinessPlugin
+/// \brief Implements the N-jettiness Jet Algorithm
+/**
+ * An exclusive jet finder that identifies N jets; first N axes are found, then
+ * particles are assigned to the nearest (DeltaR) axis and for each axis the
+ * corresponding jet is simply the four-momentum sum of these particles.
+ *
+ * As of version 2.2, it is recommended to use the XConePlugin, which has
+ * sensible default values for jet finding.
+ *
+ * Axes can be found in several ways, specified by the AxesDefinition argument.
+ * The recommended AxesDefinitions for jet finding (different than for jet shapes)
+ * OnePass_AntiKT(R0) : one-pass minimization from anti-kT starting point
+ * OnePass_GenET_GenKT_Axes(delta, p, R0) : one-pass min. from GenET/KT
+ * OnePass_WTA_GenKT_Axes(p, R0) : one-pass min from WTA/GenKT
+ * For recommendations on which axes to use, please see the README file.
+ *
+ * Jet regions are determined by the MeasureDefinition. The recommended choices
+ * for jet finding are
+ * ConicalMeasure(beta,R0) : perfect cones in rapidity/azimuth plane
+ * XConeMeasure(beta,R0) : approximate cones based on dot product distances.
+ *
+ * Other measures introduced in version 2.2 include OriginalGeometricMeasure,
+ * ModifiedGeometricMeasure, and ConicalGeometricMeasure, which define N-jettiness
+ * through dot products of particle momenta with light-like axes. OriginalGeometricMeasure
+ * produces football-shaped jets due to its central weighting of the beam measure,
+ * but ModifiedGeometric and ConicalGeometric both deform the original geometric measure
+ * to allow for cone-shaped jets. The size of these cones can be controlled through Rcutoff
+ * just as in the other measures. See the README file or MeasureDefinition.hh for information
+ * on how to call these measures.
+ *
+ */
+class NjettinessPlugin : public JetDefinition::Plugin {
+public:
+
+ /// Constructor with same arguments as Nsubjettiness (N, AxesDefinition, MeasureDefinition)
+ NjettinessPlugin(int N,
+ const AxesDefinition & axes_def,
+ const MeasureDefinition & measure_def)
+ : _njettinessFinder(axes_def, measure_def), _N(N) {}
+
+
+ /// Description
+ virtual std::string description () const;
+ /// Jet radius (this does not make sense yet)
+ virtual double R() const {return -1.0;} // TODO: make this not stupid
+
+ /// The actually clustering, which first called Njettiness and then creates a dummy ClusterSequence
+ virtual void run_clustering(ClusterSequence&) const;
+
+ /// For using manual axes with Njettiness Plugin
+ void setAxes(const std::vector & myAxes) {
+ // Cross check that manual axes are being used is in Njettiness
+ _njettinessFinder.setAxes(myAxes);
+ }
+
+ /// Destructor
+ virtual ~NjettinessPlugin() {}
+
+private:
+
+ Njettiness _njettinessFinder; ///< The core Njettiness that does the heavy lifting
+ int _N; ///< Number of exclusive jets to find.
+
+ /// Warning if the user tries to use v1.0.3 constructor.
+ static LimitedWarning _old_constructor_warning;
+
+public:
+
+ // Alternative constructors that define the measure via enums and parameters
+ // These constructors are deprecated and will be removed in a future version.
+
+ /// \deprecated
+ /// Old-style constructor with 0 arguments (DEPRECATED)
+ NjettinessPlugin(int N,
+ Njettiness::AxesMode axes_mode,
+ Njettiness::MeasureMode measure_mode)
+ : _njettinessFinder(axes_mode, measure_mode, 0), _N(N) {
+ _old_constructor_warning.warn("NjettinessPlugin: You are using the old style constructor. This is deprecated as of v2.1 and will be removed in v3.0. Please use the NjettinessPlugin constructor based on AxesDefinition and MeasureDefinition instead.");
+ }
+
+ /// \deprecated
+ /// Old-style constructor with 1 argument (DEPRECATED)
+ NjettinessPlugin(int N,
+ Njettiness::AxesMode axes_mode,
+ Njettiness::MeasureMode measure_mode,
+ double para1)
+ : _njettinessFinder(axes_mode, measure_mode, 1, para1), _N(N) {
+ _old_constructor_warning.warn("NjettinessPlugin: You are using the old style constructor. This is deprecated as of v2.1 and will be removed in v3.0. Please use the NjettinessPlugin constructor based on AxesDefinition and MeasureDefinition instead.");
+
+ }
+
+ /// \deprecated
+ /// Old-style constructor with 2 arguments (DEPRECATED)
+ NjettinessPlugin(int N,
+ Njettiness::AxesMode axes_mode,
+ Njettiness::MeasureMode measure_mode,
+ double para1,
+ double para2)
+ : _njettinessFinder(axes_mode, measure_mode, 2, para1, para2), _N(N) {
+ _old_constructor_warning.warn("NjettinessPlugin: You are using the old style constructor. This is deprecated as of v2.1 and will be removed in v3.0. Please use the NjettinessPlugin constructor based on AxesDefinition and MeasureDefinition instead.");
+
+ }
+
+ /// \deprecated
+ /// Old-style constructor with 3 arguments (DEPRECATED)
+ NjettinessPlugin(int N,
+ Njettiness::AxesMode axes_mode,
+ Njettiness::MeasureMode measure_mode,
+ double para1,
+ double para2,
+ double para3)
+ : _njettinessFinder(axes_mode, measure_mode, 3, para1, para2, para3), _N(N) {
+ _old_constructor_warning.warn("NjettinessPlugin: You are using the old style constructor. This is deprecated as of v2.1 and will be removed in v3.0. Please use the NjettinessPlugin constructor based on AxesDefinition and MeasureDefinition instead.");
+ }
+
+ /// \deprecated
+ /// Old-style constructor for backwards compatibility with v1.0, when NormalizedCutoffMeasure was the only option
+ NjettinessPlugin(int N,
+ Njettiness::AxesMode mode,
+ double beta,
+ double R0,
+ double Rcutoff=std::numeric_limits::max())
+ : _njettinessFinder(mode, NormalizedCutoffMeasure(beta, R0, Rcutoff)), _N(N) {
+ _old_constructor_warning.warn("NjettinessPlugin: You are using the old style constructor. This is deprecated as of v2.1 and will be removed in v3.0. Please use the NjettinessPlugin constructor based on AxesDefinition and MeasureDefinition instead.");
+ }
+
+
+};
+
+} // namespace contrib
+
+FASTJET_END_NAMESPACE
+
+#endif // __FASTJET_CONTRIB_NJETTINESSPLUGIN_HH__
\ No newline at end of file
Property changes on: contrib/contribs/Nsubjettiness/tags/2.2.6/NjettinessPlugin.hh
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: contrib/contribs/Nsubjettiness/tags/2.2.6/example_basic_usage.cc
===================================================================
--- contrib/contribs/Nsubjettiness/tags/2.2.6/example_basic_usage.cc (revision 0)
+++ contrib/contribs/Nsubjettiness/tags/2.2.6/example_basic_usage.cc (revision 1318)
@@ -0,0 +1,629 @@
+// Nsubjettiness Package
+// Questions/Comments? jthaler@jthaler.net
+//
+// Copyright (c) 2011-13
+// Jesse Thaler, Ken Van Tilburg, Christopher K. Vermilion, and TJ Wilkason
+//
+// Run this example with:
+// ./example_basic_usage < ../data/single-event.dat
+//
+// $Id$
+//----------------------------------------------------------------------
+// This file is part of FastJet contrib.
+//
+// It is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2 of the License, or (at
+// your option) any later version.
+//
+// It is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+// License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this code. If not, see .
+//----------------------------------------------------------------------
+
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include "fastjet/PseudoJet.hh"
+#include "fastjet/ClusterSequenceArea.hh"
+#include
+#include "Nsubjettiness.hh" // In external code, this should be fastjet/contrib/Nsubjettiness.hh
+#include "Njettiness.hh"
+#include "NjettinessPlugin.hh"
+#include "XConePlugin.hh"
+
+using namespace std;
+using namespace fastjet;
+using namespace fastjet::contrib;
+
+// forward declaration to make things clearer
+void read_event(vector &event);
+void analyze(const vector & input_particles);
+
+//----------------------------------------------------------------------
+int main(){
+
+ //----------------------------------------------------------
+ // read in input particles
+ vector event;
+ read_event(event);
+ cout << "# read an event with " << event.size() << " particles" << endl;
+
+ //----------------------------------------------------------
+ // illustrate how Nsubjettiness contrib works
+ analyze(event);
+
+ return 0;
+}
+
+// read in input particles
+void read_event(vector &event){
+ string line;
+ while (getline(cin, line)) {
+ istringstream linestream(line);
+ // take substrings to avoid problems when there are extra "pollution"
+ // characters (e.g. line-feed).
+ if (line.substr(0,4) == "#END") {return;}
+ if (line.substr(0,1) == "#") {continue;}
+ double px,py,pz,E;
+ linestream >> px >> py >> pz >> E;
+ PseudoJet particle(px,py,pz,E);
+
+ // push event onto back of full_event vector
+ event.push_back(particle);
+ }
+}
+
+// Helper Function for Printing out Jet Information
+void PrintJets(const vector & jets, const TauComponents & components, bool showTotal = true);
+void PrintXConeJets(const vector & jets, bool commentOut = false);
+void PrintXConeAxes(const vector & jets, bool commentOut = false);
+
+////////
+//
+// Main Routine for Analysis
+//
+///////
+
+void analyze(const vector & input_particles) {
+
+ ////////
+ //
+ // Start of analysis. First find anti-kT jets, then find N-subjettiness values of those jets
+ //
+ ///////
+
+ // Initial clustering with anti-kt algorithm
+ JetAlgorithm algorithm = antikt_algorithm;
+ double jet_rad = 1.00; // jet radius for anti-kt algorithm
+ JetDefinition jetDef = JetDefinition(algorithm,jet_rad,E_scheme,Best);
+ ClusterSequence clust_seq(input_particles,jetDef);
+ vector antikt_jets = sorted_by_pt(clust_seq.inclusive_jets());
+
+ for (int j = 0; j < 2; j++) { // Two hardest jets per event
+
+ // get the jet for analysis
+ PseudoJet this_jet = antikt_jets[j];
+
+ // only look at if harder than 200 GeV
+ if (this_jet.perp() < 200.0) continue;
+
+ cout << "-------------------------------------------------------------------------------------" << endl;
+ cout << "Analyzing Jet " << j + 1 << ":" << endl;
+ cout << "-------------------------------------------------------------------------------------" << endl;
+
+
+ ////////
+ //
+ // Basic checks of tau values first
+ //
+ // If you don't want to know the directions of the subjets,
+ // then you can use the simple function Nsubjettiness.
+ //
+ // Recommended usage for Nsubjettiness:
+ // AxesMode: KT_Axes(), WTA_KT_Axes(), OnePass_KT_Axes(), or OnePass_WTA_KT_Axes()
+ // MeasureMode: Unnormalized_Measure(beta)
+ // beta with KT_Axes: 2.0
+ // beta with WTA_KT_Axes: anything greater than 0.0 (particularly good for 1.0)
+ // beta with OnePass_KT_Axes or OnePass_WTA_KT_Axes: between 1.0 and 3.0
+ //
+ ///////
+
+
+ cout << "-------------------------------------------------------------------------------------" << endl;
+ cout << "N-subjettiness with Unnormalized Measure (in GeV)" << endl;
+ cout << "beta = 1.0: One-pass Winner-Take-All kT Axes" << endl;
+ cout << "beta = 2.0: One-pass E-Scheme kT Axes" << endl;
+ cout << "-------------------------------------------------------------------------------------" << endl;
+
+
+ // Now loop through all options
+ cout << setprecision(6) << right << fixed;
+
+ cout << "-------------------------------------------------------------------------------------" << endl;
+ cout << setw(15) << "beta"
+ << setw(14) << "tau1"
+ << setw(14) << "tau2"
+ << setw(14) << "tau3"
+ << setw(14) << "tau2/tau1"
+ << setw(14) << "tau3/tau2"
+ << endl;
+
+
+ // Define Nsubjettiness functions for beta = 1.0 using one-pass WTA KT axes
+ double beta = 1.0;
+ Nsubjettiness nSub1_beta1(1, OnePass_WTA_KT_Axes(), UnnormalizedMeasure(beta));
+ Nsubjettiness nSub2_beta1(2, OnePass_WTA_KT_Axes(), UnnormalizedMeasure(beta));
+ Nsubjettiness nSub3_beta1(3, OnePass_WTA_KT_Axes(), UnnormalizedMeasure(beta));
+ NsubjettinessRatio nSub21_beta1(2,1, OnePass_WTA_KT_Axes(), UnnormalizedMeasure(beta));
+ NsubjettinessRatio nSub32_beta1(3,2, OnePass_WTA_KT_Axes(), UnnormalizedMeasure(beta));
+
+ // calculate Nsubjettiness values (beta = 1.0)
+ double tau1_beta1 = nSub1_beta1(this_jet);
+ double tau2_beta1 = nSub2_beta1(this_jet);
+ double tau3_beta1 = nSub3_beta1(this_jet);
+ double tau21_beta1 = nSub21_beta1(this_jet);
+ double tau32_beta1 = nSub32_beta1(this_jet);
+
+ // Output results (beta = 1.0)
+ cout << setw(15) << 1.0
+ << setw(14) << tau1_beta1
+ << setw(14) << tau2_beta1
+ << setw(14) << tau3_beta1
+ << setw(14) << tau21_beta1
+ << setw(14) << tau32_beta1
+ << endl;
+
+ // Repeat the above for beta = 2.0
+
+ // Define Nsubjettiness functions for beta = 2.0, using one-pass ordinary KT axes
+ beta = 2.0;
+ Nsubjettiness nSub1_beta2(1, OnePass_KT_Axes(), UnnormalizedMeasure(beta));
+ Nsubjettiness nSub2_beta2(2, OnePass_KT_Axes(), UnnormalizedMeasure(beta));
+ Nsubjettiness nSub3_beta2(3, OnePass_KT_Axes(), UnnormalizedMeasure(beta));
+ NsubjettinessRatio nSub21_beta2(2,1, OnePass_KT_Axes(), UnnormalizedMeasure(beta));
+ NsubjettinessRatio nSub32_beta2(3,2, OnePass_KT_Axes(), UnnormalizedMeasure(beta));
+
+ // calculate Nsubjettiness values (beta = 2.0)
+ double tau1_beta2 = nSub1_beta2(this_jet);
+ double tau2_beta2 = nSub2_beta2(this_jet);
+ double tau3_beta2 = nSub3_beta2(this_jet);
+ double tau21_beta2 = nSub21_beta2(this_jet);
+ double tau32_beta2 = nSub32_beta2(this_jet);
+
+ // Output results (beta = 2.0)
+ cout << setw(15) << 2.0
+ << setw(14) << tau1_beta2
+ << setw(14) << tau2_beta2
+ << setw(14) << tau3_beta2
+ << setw(14) << tau21_beta2
+ << setw(14) << tau32_beta2
+ << endl;
+
+
+ // Additional information
+
+ cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
+ cout << "Subjets found using beta = 1.0 tau values" << endl;
+ PrintJets(nSub1_beta1.currentSubjets(),nSub1_beta1.currentTauComponents()); // these subjets have valid constituents
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintJets(nSub2_beta1.currentSubjets(),nSub2_beta1.currentTauComponents()); // these subjets have valid constituents
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintJets(nSub3_beta1.currentSubjets(),nSub3_beta1.currentTauComponents()); // these subjets have valid constituents
+ cout << "-------------------------------------------------------------------------------------" << endl;
+
+ cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
+ cout << "Axes used for above beta = 1.0 tau values" << endl;
+
+ PrintJets(nSub1_beta1.currentAxes(),nSub1_beta1.currentTauComponents(),false);
+ //PrintJets(nSub1_beta1.seedAxes()); // For one-pass minimization, this would show starting seeds
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintJets(nSub2_beta1.currentAxes(),nSub2_beta1.currentTauComponents(),false);
+ //PrintJets(nSub2_beta1.seedAxes()); // For one-pass minimization, this would show starting seeds
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintJets(nSub3_beta1.currentAxes(),nSub3_beta1.currentTauComponents(),false);
+ //PrintJets(nSub3_beta1.seedAxes()); // For one-pass minimization, this would show starting seeds
+
+ cout << "-------------------------------------------------------------------------------------" << endl;
+
+
+
+ cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
+ cout << "Subjets found using beta = 2.0 tau values" << endl;
+ PrintJets(nSub1_beta2.currentSubjets(),nSub1_beta2.currentTauComponents()); // these subjets have valid constituents
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintJets(nSub2_beta2.currentSubjets(),nSub2_beta2.currentTauComponents()); // these subjets have valid constituents
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintJets(nSub3_beta2.currentSubjets(),nSub3_beta2.currentTauComponents()); // these subjets have valid constituents
+ cout << "-------------------------------------------------------------------------------------" << endl;
+
+ cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
+ cout << "Axes used for above beta = 2.0 tau values" << endl;
+
+ PrintJets(nSub1_beta2.currentAxes(),nSub1_beta2.currentTauComponents(),false);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintJets(nSub2_beta2.currentAxes(),nSub2_beta2.currentTauComponents(),false);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintJets(nSub3_beta2.currentAxes(),nSub3_beta2.currentTauComponents(),false);
+ cout << "-------------------------------------------------------------------------------------" << endl;
+
+ }
+
+
+ ////////// The XCone Jet Algorithm ///////////////////////////
+
+ ////////
+ //
+ // We define a specific implementation of N-jettiness as a jet algorithm, which we call "XCone".
+ // This is the recommended version for all users.
+ //
+ // Recommended usage of XConePlugin is with beta = 2.0
+ // Beta = 1.0 is also useful as a recoil-free variant in the face of pile-up.
+ //
+ ///////
+
+ cout << "-------------------------------------------------------------------------------------" << endl;
+ cout << "Using the XCone Jet Algorithm" << endl;
+ cout << "-------------------------------------------------------------------------------------" << endl;
+
+ // Jet radius to use throughout
+ double R = 0.5;
+
+ // Define the jet finding plugins for beta = 1.0
+ double beta = 1.0;
+
+ // define the plugins
+ XConePlugin xcone_plugin2_beta1(2, R, beta);
+ XConePlugin xcone_plugin3_beta1(3, R, beta);
+ XConePlugin xcone_plugin4_beta1(4, R, beta);
+
+ // and the jet definitions
+ JetDefinition xcone_jetDef2_beta1(&xcone_plugin2_beta1);
+ JetDefinition xcone_jetDef3_beta1(&xcone_plugin3_beta1);
+ JetDefinition xcone_jetDef4_beta1(&xcone_plugin4_beta1);
+
+ // and the cluster sequences
+ ClusterSequence xcone_seq2_beta1(input_particles, xcone_jetDef2_beta1);
+ ClusterSequence xcone_seq3_beta1(input_particles, xcone_jetDef3_beta1);
+ ClusterSequence xcone_seq4_beta1(input_particles, xcone_jetDef4_beta1);
+
+ // and find the jets
+ vector xcone_jets2_beta1 = xcone_seq2_beta1.inclusive_jets();
+ vector xcone_jets3_beta1 = xcone_seq3_beta1.inclusive_jets();
+ vector xcone_jets4_beta1 = xcone_seq4_beta1.inclusive_jets();
+
+ // Do exactly the same for beta = 2.0 (which is the default, so no argument needed)
+
+ // define the plugins
+ XConePlugin xcone_plugin2_beta2(2, R);
+ XConePlugin xcone_plugin3_beta2(3, R);
+ XConePlugin xcone_plugin4_beta2(4, R);
+
+ // and the jet definitions
+ JetDefinition xcone_jetDef2_beta2(&xcone_plugin2_beta2);
+ JetDefinition xcone_jetDef3_beta2(&xcone_plugin3_beta2);
+ JetDefinition xcone_jetDef4_beta2(&xcone_plugin4_beta2);
+
+ // and the cluster sequences
+ ClusterSequence xcone_seq2_beta2(input_particles, xcone_jetDef2_beta2);
+ ClusterSequence xcone_seq3_beta2(input_particles, xcone_jetDef3_beta2);
+ ClusterSequence xcone_seq4_beta2(input_particles, xcone_jetDef4_beta2);
+
+ // and find the jets
+ vector xcone_jets2_beta2 = xcone_seq2_beta2.inclusive_jets();
+ vector xcone_jets3_beta2 = xcone_seq3_beta2.inclusive_jets();
+ vector xcone_jets4_beta2 = xcone_seq4_beta2.inclusive_jets();
+
+
+ cout << "-------------------------------------------------------------------------------------" << endl;
+ cout << "Using beta = " << setprecision(2) << 1.0 << ", R = " << setprecision(2) << R << endl;
+ cout << "-------------------------------------------------------------------------------------" << endl;
+
+ PrintXConeJets(xcone_jets2_beta1);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintXConeJets(xcone_jets3_beta1);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintXConeJets(xcone_jets4_beta1);
+
+ // The axes might point in a different direction than the jets
+ // Using the njettiness_extras pointer (ClusterSequence::Extras) to access that information
+ vector xcone_axes2_beta1 = njettiness_extras(xcone_seq2_beta1)->axes();
+ vector xcone_axes3_beta1 = njettiness_extras(xcone_seq3_beta1)->axes();
+ vector xcone_axes4_beta1 = njettiness_extras(xcone_seq4_beta1)->axes();
+
+ cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
+ cout << "Axes Used for Above Jets" << endl;
+
+ PrintXConeAxes(xcone_axes2_beta1);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintXConeAxes(xcone_axes3_beta1);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintXConeAxes(xcone_axes4_beta1);
+
+
+
+ cout << "-------------------------------------------------------------------------------------" << endl;
+ cout << "Using beta = " << setprecision(2) << 2.0 << ", R = " << setprecision(2) << R << endl;
+ cout << "-------------------------------------------------------------------------------------" << endl;
+
+ PrintXConeJets(xcone_jets2_beta2);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintXConeJets(xcone_jets3_beta2);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintXConeJets(xcone_jets4_beta2);
+
+ // The axes might point in a different direction than the jets
+ // Using the njettiness_extras pointer (ClusterSequence::Extras) to access that information
+ vector xcone_axes2_beta2 = njettiness_extras(xcone_seq2_beta2)->axes();
+ vector xcone_axes3_beta2 = njettiness_extras(xcone_seq3_beta2)->axes();
+ vector xcone_axes4_beta2 = njettiness_extras(xcone_seq4_beta2)->axes();
+
+ cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
+ cout << "Axes Used for Above Jets" << endl;
+
+ PrintXConeAxes(xcone_axes2_beta2);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintXConeAxes(xcone_axes3_beta2);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintXConeAxes(xcone_axes4_beta2);
+
+
+
+ bool calculateArea = false;
+ if (calculateArea) {
+ cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
+ cout << "Adding Area Information for beta = 2.0 (quite slow)" << endl;
+
+ double ghost_maxrap = 5.0; // e.g. if particles go up to y=5
+ AreaDefinition area_def(active_area_explicit_ghosts, GhostedAreaSpec(ghost_maxrap));
+
+ // Defining cluster sequences with area
+ ClusterSequenceArea xcone_seq_area2(input_particles, xcone_jetDef2_beta2, area_def);
+ ClusterSequenceArea xcone_seq_area3(input_particles, xcone_jetDef3_beta2, area_def);
+ ClusterSequenceArea xcone_seq_area4(input_particles, xcone_jetDef4_beta2, area_def);
+
+ vector xcone_jets_area2 = xcone_seq_area2.inclusive_jets();
+ vector xcone_jets_area3 = xcone_seq_area3.inclusive_jets();
+ vector xcone_jets_area4 = xcone_seq_area4.inclusive_jets();
+
+ PrintXConeJets(xcone_jets_area2);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintXConeJets(xcone_jets_area3);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintXConeJets(xcone_jets_area4);
+ }
+
+ cout << "-------------------------------------------------------------------------------------" << endl;
+ cout << "Done Using the XCone Jet Algorithm" << endl;
+ cout << "-------------------------------------------------------------------------------------" << endl;
+
+}
+
+void PrintJets(const vector & jets, const TauComponents & components, bool showTotal) {
+
+ string commentStr = "";
+
+ // gets extras information
+ if (jets.size() == 0) return;
+
+ // For printing out component tau information
+ vector subTaus = components.jet_pieces();
+ double totalTau = components.tau();
+
+ bool useArea = jets[0].has_area();
+
+ // define nice tauN header
+ int N = jets.size();
+ stringstream ss(""); ss << "tau" << N; string tauName = ss.str();
+
+ cout << fixed << right;
+
+ cout << commentStr << setw(5) << "jet #" << " "
+ << setw(10) << "rap"
+ << setw(10) << "phi"
+ << setw(11) << "pt"
+ << setw(11) << "m"
+ << setw(11) << "e";
+ if (jets[0].has_constituents()) cout << setw(11) << "constit";
+ cout << setw(13) << tauName;
+ if (useArea) cout << setw(10) << "area";
+ cout << endl;
+
+
+ // print out individual jet information
+ for (unsigned i = 0; i < jets.size(); i++) {
+ cout << commentStr << setw(5) << i+1 << " "
+ << setprecision(4) << setw(10) << jets[i].rap()
+ << setprecision(4) << setw(10) << jets[i].phi()
+ << setprecision(4) << setw(11) << jets[i].perp()
+ << setprecision(4) << setw(11) << max(jets[i].m(),0.0) // needed to fix -0.0 issue on some compilers.
+ << setprecision(4) << setw(11) << jets[i].e();
+ if (jets[i].has_constituents()) cout << setprecision(4) << setw(11) << jets[i].constituents().size();
+ cout << setprecision(6) << setw(13) << max(subTaus[i],0.0);
+ if (useArea) cout << setprecision(4) << setw(10) << (jets[i].has_area() ? jets[i].area() : 0.0 );
+ cout << endl;
+ }
+
+ // print out total jet
+ if (showTotal) {
+ fastjet::PseudoJet total = join(jets);
+
+ cout << commentStr << setw(5) << "total" << " "
+ << setprecision(4) << setw(10) << total.rap()
+ << setprecision(4) << setw(10) << total.phi()
+ << setprecision(4) << setw(11) << total.perp()
+ << setprecision(4) << setw(11) << max(total.m(),0.0) // needed to fix -0.0 issue on some compilers.
+ << setprecision(4) << setw(11) << total.e();
+ if (jets[0].has_constituents()) cout << setprecision(4) << setw(11) << total.constituents().size();
+ cout << setprecision(6) << setw(13) << totalTau;
+ if (useArea) cout << setprecision(4) << setw(10) << (total.has_area() ? total.area() : 0.0);
+ cout << endl;
+ }
+}
+
+
+void PrintXConeJets(const vector & jets, bool commentOut) {
+
+ string commentStr = "";
+ if (commentOut) commentStr = "#";
+
+ // gets extras information
+ if (jets.size() == 0) return;
+ const NjettinessExtras * extras = njettiness_extras(jets[0]);
+
+ // bool useExtras = true;
+ bool useExtras = (extras != NULL);
+ bool useArea = jets[0].has_area();
+ bool useConstit = jets[0].has_constituents();
+
+ // define nice tauN header
+ int N = jets.size();
+ stringstream ss(""); ss << "tau" << N; string tauName = ss.str();
+
+ cout << fixed << right;
+
+ cout << commentStr << setw(5) << "jet #" << " "
+ << setw(10) << "rap"
+ << setw(10) << "phi"
+ << setw(11) << "pt"
+ << setw(11) << "m"
+ << setw(11) << "e";
+ if (useConstit) cout << setw(11) << "constit";
+ if (useExtras) cout << setw(14) << tauName;
+ if (useArea) cout << setw(10) << "area";
+ cout << endl;
+
+ fastjet::PseudoJet total(0,0,0,0);
+ int total_constit = 0;
+
+ // print out individual jet information
+ for (unsigned i = 0; i < jets.size(); i++) {
+ cout << commentStr << setw(5) << i+1 << " "
+ << setprecision(4) << setw(10) << jets[i].rap()
+ << setprecision(4) << setw(10) << jets[i].phi()
+ << setprecision(4) << setw(11) << jets[i].perp()
+ << setprecision(4) << setw(11) << max(jets[i].m(),0.0) // needed to fix -0.0 issue on some compilers.
+ << setprecision(4) << setw(11) << jets[i].e();
+ if (useConstit) cout << setprecision(4) << setw(11) << jets[i].constituents().size();
+ if (useExtras) cout << setprecision(6) << setw(14) << max(extras->subTau(jets[i]),0.0);
+ if (useArea) cout << setprecision(4) << setw(10) << (jets[i].has_area() ? jets[i].area() : 0.0 );
+ cout << endl;
+ total += jets[i];
+ if (useConstit) total_constit += jets[i].constituents().size();
+ }
+
+ // print out total jet
+ if (useExtras) {
+ double beamTau = extras->beamTau();
+
+ if (beamTau > 0.0) {
+ cout << commentStr << setw(5) << " beam" << " "
+ << setw(10) << ""
+ << setw(10) << ""
+ << setw(11) << ""
+ << setw(11) << ""
+ << setw(11) << ""
+ << setw(11) << ""
+ << setw(14) << setprecision(6) << beamTau
+ << endl;
+ }
+
+ cout << commentStr << setw(5) << "total" << " "
+ << setprecision(4) << setw(10) << total.rap()
+ << setprecision(4) << setw(10) << total.phi()
+ << setprecision(4) << setw(11) << total.perp()
+ << setprecision(4) << setw(11) << max(total.m(),0.0) // needed to fix -0.0 issue on some compilers.
+ << setprecision(4) << setw(11) << total.e();
+ if (useConstit) cout << setprecision(4) << setw(11) << total_constit;
+ if (useExtras) cout << setprecision(6) << setw(14) << extras->totalTau();
+ if (useArea) cout << setprecision(4) << setw(10) << (total.has_area() ? total.area() : 0.0);
+ cout << endl;
+ }
+
+}
+
+
+void PrintXConeAxes(const vector & jets, bool commentOut) {
+
+ string commentStr = "";
+ if (commentOut) commentStr = "#";
+
+ // gets extras information
+ if (jets.size() == 0) return;
+ const NjettinessExtras * extras = njettiness_extras(jets[0]);
+
+ // bool useExtras = true;
+ bool useExtras = (extras != NULL);
+ bool useArea = jets[0].has_area();
+
+ // define nice tauN header
+ int N = jets.size();
+ stringstream ss(""); ss << "tau" << N; string tauName = ss.str();
+
+ cout << fixed << right;
+
+ cout << commentStr << setw(5) << "jet #" << " "
+ << setw(10) << "rap"
+ << setw(10) << "phi"
+ << setw(11) << "pt"
+ << setw(11) << "m"
+ << setw(11) << "e";
+ if (useExtras) cout << setw(14) << tauName;
+ if (useArea) cout << setw(10) << "area";
+ cout << endl;
+
+ fastjet::PseudoJet total(0,0,0,0);
+
+ // print out individual jet information
+ for (unsigned i = 0; i < jets.size(); i++) {
+ cout << commentStr << setw(5) << i+1 << " "
+ << setprecision(4) << setw(10) << jets[i].rap()
+ << setprecision(4) << setw(10) << jets[i].phi()
+ << setprecision(4) << setw(11) << jets[i].perp()
+ << setprecision(4) << setw(11) << max(jets[i].m(),0.0) // needed to fix -0.0 issue on some compilers.
+ << setprecision(4) << setw(11) << jets[i].e();
+ if (useExtras) cout << setprecision(6) << setw(14) << max(extras->subTau(jets[i]),0.0);
+ if (useArea) cout << setprecision(4) << setw(10) << (jets[i].has_area() ? jets[i].area() : 0.0 );
+ cout << endl;
+ total += jets[i];
+ }
+
+ // print out total jet
+ if (useExtras) {
+ double beamTau = extras->beamTau();
+
+ if (beamTau > 0.0) {
+ cout << commentStr << setw(5) << " beam" << " "
+ << setw(10) << ""
+ << setw(10) << ""
+ << setw(11) << ""
+ << setw(11) << ""
+ << setw(11) << ""
+ << setw(14) << setprecision(6) << beamTau
+ << endl;
+ }
+
+ cout << commentStr << setw(5) << "total" << " "
+ << setprecision(4) << setw(10) << total.rap()
+ << setprecision(4) << setw(10) << total.phi()
+ << setprecision(4) << setw(11) << total.perp()
+ << setprecision(4) << setw(11) << max(total.m(),0.0) // needed to fix -0.0 issue on some compilers.
+ << setprecision(4) << setw(11) << total.e()
+ << setprecision(6) << setw(14) << extras->totalTau();
+ if (useArea) cout << setprecision(4) << setw(10) << (total.has_area() ? total.area() : 0.0);
+ cout << endl;
+ }
+
+}
\ No newline at end of file
Property changes on: contrib/contribs/Nsubjettiness/tags/2.2.6/example_basic_usage.cc
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: contrib/contribs/Nsubjettiness/tags/2.2.6/MeasureDefinition.hh
===================================================================
--- contrib/contribs/Nsubjettiness/tags/2.2.6/MeasureDefinition.hh (revision 0)
+++ contrib/contribs/Nsubjettiness/tags/2.2.6/MeasureDefinition.hh (revision 1318)
@@ -0,0 +1,853 @@
+// Nsubjettiness Package
+// Questions/Comments? jthaler@jthaler.net
+//
+// Copyright (c) 2011-14
+// Jesse Thaler, Ken Van Tilburg, Christopher K. Vermilion, and TJ Wilkason
+//
+// $Id$
+//----------------------------------------------------------------------
+// This file is part of FastJet contrib.
+//
+// It is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2 of the License, or (at
+// your option) any later version.
+//
+// It is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+// License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this code. If not, see .
+//----------------------------------------------------------------------
+
+#ifndef __FASTJET_CONTRIB_MEASUREDEFINITION_HH__
+#define __FASTJET_CONTRIB_MEASUREDEFINITION_HH__
+
+#include "fastjet/PseudoJet.hh"
+#include
+#include
+#include
+#include
+
+#include "TauComponents.hh"
+
+FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh
+
+namespace contrib{
+
+
+
+// The following Measures are available (and their relevant arguments):
+// Recommended for usage as jet shapes
+class DefaultMeasure; // Default measure from which next classes derive (should not be called directly)
+class NormalizedMeasure; // (beta,R0)
+class UnnormalizedMeasure; // (beta)
+class NormalizedCutoffMeasure; // (beta,R0,Rcutoff)
+class UnnormalizedCutoffMeasure; // (beta,Rcutoff)
+
+// New measures as of v2.2
+// Recommended for usage as event shapes (or for jet finding)
+class ConicalMeasure; // (beta,R)
+class OriginalGeometricMeasure; // (R)
+class ModifiedGeometricMeasure; // (R)
+class ConicalGeometricMeasure; // (beta, gamma, R)
+class XConeMeasure; // (beta, R)
+
+// Formerly GeometricMeasure, now no longer recommended, kept commented out only for cross-check purposes
+//class DeprecatedGeometricMeasure; // (beta)
+//class DeprecatedGeometricCutoffMeasure; // (beta,Rcutoff)
+
+
+///////
+//
+// MeasureDefinition
+//
+///////
+
+//This is a helper class for the Minimum Axes Finders. It is defined later.
+class LightLikeAxis;
+
+///------------------------------------------------------------------------
+/// \class MeasureDefinition
+/// \brief Base class for measure definitions
+///
+/// This is the base class for measure definitions. Derived classes will calculate
+/// the tau_N of a jet given a specific measure and a set of axes. The measure is
+/// determined by various jet and beam distances (and possible normalization factors).
+///------------------------------------------------------------------------
+class MeasureDefinition {
+
+public:
+
+ /// Description of measure and parameters
+ virtual std::string description() const = 0;
+
+ /// In derived classes, this should return a copy of the corresponding derived class
+ virtual MeasureDefinition* create() const = 0;
+
+ //The following five functions define the measure by which tau_N is calculated,
+ //and are overloaded by the various measures below
+
+ /// Distanes to jet axis. This is called many times, so needs to be as fast as possible
+ /// Unless overloaded, it just calls jet_numerator
+ virtual double jet_distance_squared(const fastjet::PseudoJet& particle, const fastjet::PseudoJet& axis) const {
+ return jet_numerator(particle,axis);
+ }
+
+ /// Distanes to beam. This is called many times, so needs to be as fast as possible
+ /// Unless overloaded, it just calls beam_numerator
+ virtual double beam_distance_squared(const fastjet::PseudoJet& particle) const {
+ return beam_numerator(particle);
+ }
+
+ /// The jet measure used in N-(sub)jettiness
+ virtual double jet_numerator(const fastjet::PseudoJet& particle, const fastjet::PseudoJet& axis) const = 0;
+ /// The beam measure used in N-(sub)jettiness
+ virtual double beam_numerator(const fastjet::PseudoJet& particle) const = 0;
+
+ /// A possible normalization factor
+ virtual double denominator(const fastjet::PseudoJet& particle) const = 0;
+
+ /// Run a one-pass minimization routine. There is a generic one-pass minimization that works for a wide variety of measures.
+ /// This should be overloaded to create a measure-specific minimization scheme
+ virtual std::vector get_one_pass_axes(int n_jets,
+ const std::vector& inputs,
+ const std::vector& seedAxes,
+ int nAttempts = 1000, // cap number of iterations
+ double accuracy = 0.0001 // cap distance of closest approach
+ ) const;
+
+public:
+
+ /// Returns the tau value for a give set of particles and axes
+ double result(const std::vector& particles, const std::vector& axes) const {
+ return component_result(particles,axes).tau();
+ }
+
+ /// Short-hand for the result() function
+ inline double operator() (const std::vector& particles, const std::vector& axes) const {
+ return result(particles,axes);
+ }
+
+ /// Return all of the TauComponents for specific input particles and axes
+ TauComponents component_result(const std::vector& particles, const std::vector& axes) const;
+
+ /// Create the partitioning according the jet/beam distances and stores them a TauPartition
+ TauPartition get_partition(const std::vector& particles, const std::vector& axes) const;
+
+ /// Calculate the tau result using an existing partition
+ TauComponents component_result_from_partition(const TauPartition& partition, const std::vector& axes) const;
+
+
+
+ /// virtual destructor
+ virtual ~MeasureDefinition(){}
+
+protected:
+
+ /// Flag set by derived classes to choose whether or not to use beam/denominator
+ TauMode _tau_mode;
+
+ /// Flag set by derived classes to say whether cheap get_one_pass_axes method can be used (true by default)
+ bool _useAxisScaling;
+
+ /// This is the only constructor, which requires _tau_mode and _useAxisScaling to be manually set by derived classes.
+ MeasureDefinition() : _tau_mode(UNDEFINED_SHAPE), _useAxisScaling(true) {}
+
+
+ /// Used by derived classes to set whether or not to use beam/denominator information
+ void setTauMode(TauMode tau_mode) {
+ _tau_mode = tau_mode;
+ }
+
+ /// Used by derived classes to say whether one can use cheap get_one_pass_axes
+ void setAxisScaling(bool useAxisScaling) {
+ _useAxisScaling = useAxisScaling;
+ }
+
+ /// Uses denominator information?
+ bool has_denominator() const { return (_tau_mode == NORMALIZED_JET_SHAPE || _tau_mode == NORMALIZED_EVENT_SHAPE);}
+ /// Uses beam information?
+ bool has_beam() const {return (_tau_mode == UNNORMALIZED_EVENT_SHAPE || _tau_mode == NORMALIZED_EVENT_SHAPE);}
+
+ /// Create light-like axis (used in default one-pass minimization routine)
+ fastjet::PseudoJet lightFrom(const fastjet::PseudoJet& input) const {
+ double length = sqrt(pow(input.px(),2) + pow(input.py(),2) + pow(input.pz(),2));
+ return fastjet::PseudoJet(input.px()/length,input.py()/length,input.pz()/length,1.0);
+ }
+
+ /// Shorthand for squaring
+ static inline double sq(double x) {return x*x;}
+
+};
+
+
+///////
+//
+// Default Measures
+//
+///////
+
+
+///------------------------------------------------------------------------
+/// \enum DefaultMeasureType
+/// \brief Options for default measure
+///
+/// Can be used to switch between pp and ee measure types in the DefaultMeasure
+///------------------------------------------------------------------------
+enum DefaultMeasureType {
+ pt_R, /// use transverse momenta and boost-invariant angles,
+ E_theta, /// use energies and angles,
+ lorentz_dot, /// use dot product inspired measure
+ perp_lorentz_dot /// use conical geometric inspired measures
+};
+
+///------------------------------------------------------------------------
+/// \class DefaultMeasure
+/// \brief Base class for default N-subjettiness measure definitions
+///
+/// This class is the default measure as defined in the original N-subjettiness papers.
+/// Based on the conical measure, but with a normalization factor
+/// This measure is defined as the pT of the particle multiplied by deltaR
+/// to the power of beta. This class includes the normalization factor determined by R0
+///------------------------------------------------------------------------
+class DefaultMeasure : public MeasureDefinition {
+
+public:
+
+ /// Description
+ virtual std::string description() const;
+ /// To allow copying around of these objects
+ virtual DefaultMeasure* create() const {return new DefaultMeasure(*this);}
+
+ /// fast jet distance
+ virtual double jet_distance_squared(const fastjet::PseudoJet& particle, const fastjet::PseudoJet& axis) const {
+ return angleSquared(particle, axis);
+ }
+
+ /// fast beam distance
+ virtual double beam_distance_squared(const fastjet::PseudoJet& /*particle*/) const {
+ return _RcutoffSq;
+ }
+
+ /// true jet distance (given by general definitions of energy and angle)
+ virtual double jet_numerator(const fastjet::PseudoJet& particle, const fastjet::PseudoJet& axis) const{
+ double jet_dist = angleSquared(particle, axis);
+ if (jet_dist > 0.0) {
+ return energy(particle) * std::pow(jet_dist,_beta/2.0);
+ } else {
+ return 0.0;
+ }
+ }
+
+ /// true beam distance
+ virtual double beam_numerator(const fastjet::PseudoJet& particle) const {
+ return energy(particle) * std::pow(_Rcutoff,_beta);
+ }
+
+ /// possible denominator for normalization
+ virtual double denominator(const fastjet::PseudoJet& particle) const {
+ return energy(particle) * std::pow(_R0,_beta);
+ }
+
+ /// Special minimization routine (from v1.0 of N-subjettiness)
+ virtual std::vector get_one_pass_axes(int n_jets,
+ const std::vector& inputs,
+ const std::vector& seedAxes,
+ int nAttempts, // cap number of iterations
+ double accuracy // cap distance of closest approach
+ ) const;
+
+protected:
+ double _beta; ///< Angular exponent
+ double _R0; ///< Normalization factor
+ double _Rcutoff; ///< Cutoff radius
+ double _RcutoffSq; ///< Cutoff radius squared
+ DefaultMeasureType _measure_type; ///< Type of measure used (i.e. pp style or ee style)
+
+
+ /// Constructor is protected so that no one tries to call this directly.
+ DefaultMeasure(double beta, double R0, double Rcutoff, DefaultMeasureType measure_type = pt_R)
+ : MeasureDefinition(), _beta(beta), _R0(R0), _Rcutoff(Rcutoff), _RcutoffSq(sq(Rcutoff)), _measure_type(measure_type)
+ {
+ if (beta <= 0) throw Error("DefaultMeasure: You must choose beta > 0.");
+ if (R0 <= 0) throw Error("DefaultMeasure: You must choose R0 > 0.");
+ if (Rcutoff <= 0) throw Error("DefaultMeasure: You must choose Rcutoff > 0.");
+ }
+
+ /// Added set measure method in case it becomes useful later
+ void setDefaultMeasureType(DefaultMeasureType measure_type) {
+ _measure_type = measure_type;
+ }
+
+ /// Generalized energy value (determined by _measure_type)
+ double energy(const PseudoJet& jet) const;
+ /// Generalized angle value (determined by _measure_type)
+ double angleSquared(const PseudoJet& jet1, const PseudoJet& jet2) const;
+
+ /// Name of _measure_type, so description will include the measure type
+ std::string measure_type_name() const {
+ if (_measure_type == pt_R) return "pt_R";
+ else if (_measure_type == E_theta) return "E_theta";
+ else if (_measure_type == lorentz_dot) return "lorentz_dot";
+ else if (_measure_type == perp_lorentz_dot) return "perp_lorentz_dot";
+ else return "Measure Type Undefined";
+ }
+
+ /// templated for speed (TODO: probably should remove, since not clear that there is a speed gain)
+ template std::vector UpdateAxesFast(const std::vector & old_axes,
+ const std::vector & inputJets,
+ double accuracy) const;
+
+ /// called by get_one_pass_axes to update axes iteratively
+ std::vector UpdateAxes(const std::vector & old_axes,
+ const std::vector & inputJets,
+ double accuracy) const;
+};
+
+
+///------------------------------------------------------------------------
+/// \class NormalizedCutoffMeasure
+/// \brief Dimensionless default measure, with radius cutoff
+///
+/// This measure is just a wrapper for DefaultMeasure
+///------------------------------------------------------------------------
+class NormalizedCutoffMeasure : public DefaultMeasure {
+
+public:
+
+ /// Constructor
+ NormalizedCutoffMeasure(double beta, double R0, double Rcutoff, DefaultMeasureType measure_type = pt_R)
+ : DefaultMeasure(beta, R0, Rcutoff, measure_type) {
+ setTauMode(NORMALIZED_JET_SHAPE);
+ }
+
+ /// Description
+ virtual std::string description() const;
+
+ /// For copying purposes
+ virtual NormalizedCutoffMeasure* create() const {return new NormalizedCutoffMeasure(*this);}
+
+};
+
+///------------------------------------------------------------------------
+/// \class NormalizedMeasure
+/// \brief Dimensionless default measure, with no cutoff
+///
+/// This measure is the same as NormalizedCutoffMeasure, with Rcutoff taken to infinity.
+///------------------------------------------------------------------------
+class NormalizedMeasure : public NormalizedCutoffMeasure {
+
+public:
+
+ /// Constructor
+ NormalizedMeasure(double beta, double R0, DefaultMeasureType measure_type = pt_R)
+ : NormalizedCutoffMeasure(beta, R0, std::numeric_limits::max(), measure_type) {
+ _RcutoffSq = std::numeric_limits::max();
+ setTauMode(NORMALIZED_JET_SHAPE);
+ }
+
+ /// Description
+ virtual std::string description() const;
+ /// For copying purposes
+ virtual NormalizedMeasure* create() const {return new NormalizedMeasure(*this);}
+
+};
+
+
+///------------------------------------------------------------------------
+/// \class UnnormalizedCutoffMeasure
+/// \brief Dimensionful default measure, with radius cutoff
+///
+/// This class is the unnormalized conical measure. The only difference from NormalizedCutoffMeasure
+/// is that the denominator is defined to be 1.0 by setting _has_denominator to false.
+/// class UnnormalizedCutoffMeasure : public NormalizedCutoffMeasure {
+///------------------------------------------------------------------------
+class UnnormalizedCutoffMeasure : public DefaultMeasure {
+
+public:
+
+ /// Since all methods are identical, UnnormalizedMeasure inherits directly
+ /// from NormalizedMeasure. R0 is a dummy value since the value of R0 is unecessary for this class,
+ /// and the "false" flag sets _has_denominator in MeasureDefinition to false so no denominator is used.
+ UnnormalizedCutoffMeasure(double beta, double Rcutoff, DefaultMeasureType measure_type = pt_R)
+ : DefaultMeasure(beta, std::numeric_limits::quiet_NaN(), Rcutoff, measure_type) {
+ setTauMode(UNNORMALIZED_EVENT_SHAPE);
+ }
+
+ /// Description
+ virtual std::string description() const;
+ /// For copying purposes
+ virtual UnnormalizedCutoffMeasure* create() const {return new UnnormalizedCutoffMeasure(*this);}
+
+};
+
+
+///------------------------------------------------------------------------
+/// \class UnnormalizedMeasure
+/// \brief Dimensionless default measure, with no cutoff
+///
+/// This measure is the same as UnnormalizedCutoffMeasure, with Rcutoff taken to infinity.
+///------------------------------------------------------------------------
+class UnnormalizedMeasure : public UnnormalizedCutoffMeasure {
+
+public:
+ /// Since all methods are identical, UnnormalizedMeasure inherits directly
+ /// from NormalizedMeasure. R0 is a dummy value since the value of R0 is unecessary for this class,
+ /// and the "false" flag sets _has_denominator in MeasureDefinition to false so no denominator is used.
+ UnnormalizedMeasure(double beta, DefaultMeasureType measure_type = pt_R)
+ : UnnormalizedCutoffMeasure(beta, std::numeric_limits::max(), measure_type) {
+ _RcutoffSq = std::numeric_limits::max();
+ setTauMode(UNNORMALIZED_JET_SHAPE);
+ }
+
+ /// Description
+ virtual std::string description() const;
+
+ /// For copying purposes
+ virtual UnnormalizedMeasure* create() const {return new UnnormalizedMeasure(*this);}
+
+};
+
+
+///------------------------------------------------------------------------
+/// \class ConicalMeasure
+/// \brief Dimensionful event-shape measure, with radius cutoff
+///
+/// Very similar to UnnormalizedCutoffMeasure, but with different normalization convention
+/// and using the new default one-pass minimization algorithm.
+/// Axes are also made to be light-like to ensure sensible behavior
+/// Intended to be used as an event shape.
+///------------------------------------------------------------------------
+class ConicalMeasure : public MeasureDefinition {
+
+public:
+
+ /// Constructor
+ ConicalMeasure(double beta, double Rcutoff)
+ : MeasureDefinition(), _beta(beta), _Rcutoff(Rcutoff), _RcutoffSq(sq(Rcutoff)) {
+ if (beta <= 0) throw Error("ConicalMeasure: You must choose beta > 0.");
+ if (Rcutoff <= 0) throw Error("ConicalMeasure: You must choose Rcutoff > 0.");
+ setTauMode(UNNORMALIZED_EVENT_SHAPE);
+ }
+
+ /// Description
+ virtual std::string description() const;
+ /// For copying purposes
+ virtual ConicalMeasure* create() const {return new ConicalMeasure(*this);}
+
+ /// fast jet distance
+ virtual double jet_distance_squared(const fastjet::PseudoJet& particle, const fastjet::PseudoJet& axis) const {
+ PseudoJet lightAxis = lightFrom(axis);
+ return particle.squared_distance(lightAxis);
+ }
+
+ /// fast beam distance
+ virtual double beam_distance_squared(const fastjet::PseudoJet& /*particle*/) const {
+ return _RcutoffSq;
+ }
+
+
+ /// true jet distance
+ virtual double jet_numerator(const fastjet::PseudoJet& particle, const fastjet::PseudoJet& axis) const {
+ PseudoJet lightAxis = lightFrom(axis);
+ double jet_dist = particle.squared_distance(lightAxis)/_RcutoffSq;
+ double jet_perp = particle.perp();
+
+ if (_beta == 2.0) {
+ return jet_perp * jet_dist;
+ } else {
+ return jet_perp * pow(jet_dist,_beta/2.0);
+ }
+ }
+
+ /// true beam distance
+ virtual double beam_numerator(const fastjet::PseudoJet& particle) const {
+ return particle.perp();
+ }
+
+ /// no denominator used for this measure
+ virtual double denominator(const fastjet::PseudoJet& /*particle*/) const {
+ return std::numeric_limits::quiet_NaN();
+ }
+
+protected:
+ double _beta; ///< angular exponent
+ double _Rcutoff; ///< effective jet radius
+ double _RcutoffSq;///< effective jet radius squared
+};
+
+
+
+///------------------------------------------------------------------------
+/// \class OriginalGeometricMeasure
+/// \brief Dimensionful event-shape measure, with dot-product distances
+///
+/// This class is the original (and hopefully now correctly coded) geometric measure.
+/// This measure is defined by the Lorentz dot product between
+/// the particle and the axis. This class does not include normalization of tau_N.
+/// New in Nsubjettiness v2.2
+/// NOTE: This is defined differently from the DeprecatedGeometricMeasure which are now commented out.
+///------------------------------------------------------------------------
+class OriginalGeometricMeasure : public MeasureDefinition {
+
+public:
+ /// Constructor
+ OriginalGeometricMeasure(double Rcutoff)
+ : MeasureDefinition(), _Rcutoff(Rcutoff), _RcutoffSq(sq(Rcutoff)) {
+ if (Rcutoff <= 0) throw Error("OriginalGeometricMeasure: You must choose Rcutoff > 0.");
+ setTauMode(UNNORMALIZED_EVENT_SHAPE);
+ setAxisScaling(false); // No need to rescale axes (for speed up in one-pass minimization)
+ }
+
+ /// Description
+ virtual std::string description() const;
+ /// For copying purposes
+ virtual OriginalGeometricMeasure* create() const {return new OriginalGeometricMeasure(*this);}
+
+ // This class uses the default jet_distance_squared and beam_distance_squared
+
+ /// true jet measure
+ virtual double jet_numerator(const fastjet::PseudoJet& particle, const fastjet::PseudoJet& axis) const {
+ return dot_product(lightFrom(axis), particle)/_RcutoffSq;
+ }
+
+ /// true beam measure
+ virtual double beam_numerator(const fastjet::PseudoJet& particle) const {
+ fastjet::PseudoJet beam_a(0,0,1,1);
+ fastjet::PseudoJet beam_b(0,0,-1,1);
+ double min_perp = std::min(dot_product(beam_a, particle),dot_product(beam_b, particle));
+ return min_perp;
+ }
+
+ /// no denominator needed for this measure.
+ virtual double denominator(const fastjet::PseudoJet& /*particle*/) const {
+ return std::numeric_limits::quiet_NaN();
+ }
+
+protected:
+ double _Rcutoff; ///< Effective jet radius (rho = R^2)
+ double _RcutoffSq; ///< Effective jet radius squared
+
+};
+
+
+///------------------------------------------------------------------------
+/// \class ModifiedGeometricMeasure
+/// \brief Dimensionful event-shape measure, with dot-product distances, modified beam measure
+///
+/// This class is the Modified geometric measure. This jet measure is defined by the Lorentz dot product between
+/// the particle and the axis, as in the Original Geometric Measure. The beam measure is defined differently from
+/// the above OriginalGeometric to allow for more conical jets. New in Nsubjettiness v2.2
+///------------------------------------------------------------------------
+class ModifiedGeometricMeasure : public MeasureDefinition {
+
+public:
+ /// Constructor
+ ModifiedGeometricMeasure(double Rcutoff)
+ : MeasureDefinition(), _Rcutoff(Rcutoff), _RcutoffSq(sq(Rcutoff)) {
+ if (Rcutoff <= 0) throw Error("ModifiedGeometricMeasure: You must choose Rcutoff > 0.");
+ setTauMode(UNNORMALIZED_EVENT_SHAPE);
+ setAxisScaling(false); // No need to rescale axes (for speed up in one-pass minimization)
+ }
+
+ /// Description
+ virtual std::string description() const;
+ /// For copying purposes
+ virtual ModifiedGeometricMeasure* create() const {return new ModifiedGeometricMeasure(*this);}
+
+ // This class uses the default jet_distance_squared and beam_distance_squared
+
+ /// True jet measure
+ virtual double jet_numerator(const fastjet::PseudoJet& particle, const fastjet::PseudoJet& axis) const {
+ return dot_product(lightFrom(axis), particle)/_RcutoffSq;
+ }
+
+ /// True beam measure
+ virtual double beam_numerator(const fastjet::PseudoJet& particle) const {
+ fastjet::PseudoJet lightParticle = lightFrom(particle);
+ return 0.5*particle.mperp()*lightParticle.pt();
+ }
+
+ /// This measure does not require a denominator
+ virtual double denominator(const fastjet::PseudoJet& /*particle*/) const {
+ return std::numeric_limits::quiet_NaN();
+ }
+
+protected:
+ double _Rcutoff; ///< Effective jet radius (rho = R^2)
+ double _RcutoffSq; ///< Effective jet radius squared
+
+
+};
+
+///------------------------------------------------------------------------
+/// \class ConicalGeometricMeasure
+/// \brief Dimensionful event-shape measure, basis for XCone jet algorithm
+///
+/// This class is the Conical Geometric measure. This measure is defined by the Lorentz dot product between
+/// the particle and the axis normalized by the axis and particle pT, as well as a factor of cosh(y) to vary
+/// the rapidity depepdence of the beam. New in Nsubjettiness v2.2, and the basis for the XCone jet algorithm
+///------------------------------------------------------------------------
+class ConicalGeometricMeasure : public MeasureDefinition {
+
+public:
+
+ /// Constructor
+ ConicalGeometricMeasure(double jet_beta, double beam_gamma, double Rcutoff)
+ : MeasureDefinition(), _jet_beta(jet_beta), _beam_gamma(beam_gamma), _Rcutoff(Rcutoff), _RcutoffSq(sq(Rcutoff)){
+ if (jet_beta <= 0) throw Error("ConicalGeometricMeasure: You must choose beta > 0.");
+ if (beam_gamma <= 0) throw Error("ConicalGeometricMeasure: You must choose gamma > 0.");
+ if (Rcutoff <= 0) throw Error("ConicalGeometricMeasure: You must choose Rcutoff > 0.");
+ setTauMode(UNNORMALIZED_EVENT_SHAPE);
+ }
+
+ /// Description
+ virtual std::string description() const;
+ /// For copying purposes
+ virtual ConicalGeometricMeasure* create() const {return new ConicalGeometricMeasure(*this);}
+
+ /// fast jet measure
+ virtual double jet_distance_squared(const fastjet::PseudoJet& particle, const fastjet::PseudoJet& axis) const {
+ fastjet::PseudoJet lightAxis = lightFrom(axis);
+ double pseudoRsquared = 2.0*dot_product(lightFrom(axis),particle)/(lightAxis.pt()*particle.pt());
+ return pseudoRsquared;
+ }
+
+ /// fast beam measure
+ virtual double beam_distance_squared(const fastjet::PseudoJet& /*particle*/) const {
+ return _RcutoffSq;
+ }
+
+ /// true jet measure
+ virtual double jet_numerator(const fastjet::PseudoJet& particle, const fastjet::PseudoJet& axis) const {
+ double jet_dist = jet_distance_squared(particle,axis)/_RcutoffSq;
+ if (jet_dist > 0.0) {
+ fastjet::PseudoJet lightParticle = lightFrom(particle);
+ double weight = (_beam_gamma == 1.0) ? 1.0 : std::pow(0.5*lightParticle.pt(),_beam_gamma - 1.0);
+ return particle.pt() * weight * std::pow(jet_dist,_jet_beta/2.0);
+ } else {
+ return 0.0;
+ }
+ }
+
+ /// true beam measure
+ virtual double beam_numerator(const fastjet::PseudoJet& particle) const {
+ fastjet::PseudoJet lightParticle = lightFrom(particle);
+ double weight = (_beam_gamma == 1.0) ? 1.0 : std::pow(0.5*lightParticle.pt(),_beam_gamma - 1.0);
+ return particle.pt() * weight;
+ }
+
+ /// no denominator needed
+ virtual double denominator(const fastjet::PseudoJet& /*particle*/) const {
+ return std::numeric_limits::quiet_NaN();
+ }
+
+protected:
+ double _jet_beta; ///< jet angular exponent
+ double _beam_gamma; ///< beam angular exponent (gamma = 1.0 is recommended)
+ double _Rcutoff; ///< effective jet radius
+ double _RcutoffSq; ///< effective jet radius squared
+
+};
+
+///------------------------------------------------------------------------
+/// \class XConeMeasure
+/// \brief Dimensionful event-shape measure used in XCone jet algorithm
+///
+/// This class is the XCone Measure. This is the default measure for use with the
+/// XCone algorithm. It is identical to the conical geometric measure but with gamma = 1.0.
+///------------------------------------------------------------------------
+class XConeMeasure : public ConicalGeometricMeasure {
+
+public:
+ /// Constructor
+ XConeMeasure(double jet_beta, double R)
+ : ConicalGeometricMeasure(jet_beta,
+ 1.0, // beam_gamma, hard coded at gamma = 1.0 default
+ R // Rcutoff scale
+ ) { }
+
+ /// Description
+ virtual std::string description() const;
+ /// For copying purposes
+ virtual XConeMeasure* create() const {return new XConeMeasure(*this);}
+
+};
+
+///------------------------------------------------------------------------
+/// \class LightLikeAxis
+/// \brief Helper class to define light-like axes directions
+///
+/// This is a helper class for the minimization routines.
+/// It creates a convenient way of defining axes in order to better facilitate calculations.
+///------------------------------------------------------------------------
+class LightLikeAxis {
+
+public:
+ /// Bare constructor
+ LightLikeAxis() : _rap(0.0), _phi(0.0), _weight(0.0), _mom(0.0) {}
+ /// Constructor
+ LightLikeAxis(double my_rap, double my_phi, double my_weight, double my_mom) :
+ _rap(my_rap), _phi(my_phi), _weight(my_weight), _mom(my_mom) {}
+
+ /// Rapidity
+ double rap() const {return _rap;}
+ /// Azimuth
+ double phi() const {return _phi;}
+ /// weight factor
+ double weight() const {return _weight;}
+ /// pt momentum
+ double mom() const {return _mom;}
+
+ /// set rapidity
+ void set_rap(double my_set_rap) {_rap = my_set_rap;}
+ /// set azimuth
+ void set_phi(double my_set_phi) {_phi = my_set_phi;}
+ /// set weight factor
+ void set_weight(double my_set_weight) {_weight = my_set_weight;}
+ /// set pt momentum
+ void set_mom(double my_set_mom) {_mom = my_set_mom;}
+ /// set all kinematics
+ void reset(double my_rap, double my_phi, double my_weight, double my_mom) {_rap=my_rap; _phi=my_phi; _weight=my_weight; _mom=my_mom;}
+
+ /// Return PseudoJet version
+ fastjet::PseudoJet ConvertToPseudoJet();
+
+ /// Squared distance to PseudoJet
+ double DistanceSq(const fastjet::PseudoJet& input) const {
+ return DistanceSq(input.rap(),input.phi());
+ }
+
+ /// Distance to PseudoJet
+ double Distance(const fastjet::PseudoJet& input) const {
+ return std::sqrt(DistanceSq(input));
+ }
+
+ /// Squared distance to Lightlikeaxis
+ double DistanceSq(const LightLikeAxis& input) const {
+ return DistanceSq(input.rap(),input.phi());
+ }
+
+ /// Distance to Lightlikeaxis
+ double Distance(const LightLikeAxis& input) const {
+ return std::sqrt(DistanceSq(input));
+ }
+
+private:
+ double _rap; ///< rapidity
+ double _phi; ///< azimuth
+ double _weight; ///< weight factor
+ double _mom; ///< pt momentum
+
+ /// Internal squared distance calculation
+ double DistanceSq(double rap2, double phi2) const {
+ double rap1 = _rap;
+ double phi1 = _phi;
+
+ double distRap = rap1-rap2;
+ double distPhi = std::fabs(phi1-phi2);
+ if (distPhi > M_PI) {distPhi = 2.0*M_PI - distPhi;}
+ return distRap*distRap + distPhi*distPhi;
+ }
+
+ /// Internal distance calculation
+ double Distance(double rap2, double phi2) const {
+ return std::sqrt(DistanceSq(rap2,phi2));
+ }
+
+};
+
+
+////------------------------------------------------------------------------
+///// \class DeprecatedGeometricCutoffMeasure
+//// This class is the old, incorrectly coded geometric measure.
+//// It is kept in case anyone wants to check old code, but should not be used for production purposes.
+//class DeprecatedGeometricCutoffMeasure : public MeasureDefinition {
+//
+//public:
+//
+// // Please, please don't use this.
+// DeprecatedGeometricCutoffMeasure(double jet_beta, double Rcutoff)
+// : MeasureDefinition(),
+// _jet_beta(jet_beta),
+// _beam_beta(1.0), // This is hard coded, since alternative beta_beam values were never checked.
+// _Rcutoff(Rcutoff),
+// _RcutoffSq(sq(Rcutoff)) {
+// setTauMode(UNNORMALIZED_EVENT_SHAPE);
+// setAxisScaling(false);
+// if (jet_beta != 2.0) {
+// throw Error("Geometric minimization is currently only defined for beta = 2.0.");
+// }
+// }
+//
+// virtual std::string description() const;
+//
+// virtual DeprecatedGeometricCutoffMeasure* create() const {return new DeprecatedGeometricCutoffMeasure(*this);}
+//
+// virtual double jet_distance_squared(const fastjet::PseudoJet& particle, const fastjet::PseudoJet& axis) const {
+// fastjet::PseudoJet lightAxis = lightFrom(axis);
+// double pseudoRsquared = 2.0*dot_product(lightFrom(axis),particle)/(lightAxis.pt()*particle.pt());
+// return pseudoRsquared;
+// }
+//
+// virtual double beam_distance_squared(const fastjet::PseudoJet& /*particle*/) const {
+// return _RcutoffSq;
+// }
+//
+// virtual double jet_numerator(const fastjet::PseudoJet& particle, const fastjet::PseudoJet& axis) const {
+// fastjet::PseudoJet lightAxis = lightFrom(axis);
+// double weight = (_beam_beta == 1.0) ? 1.0 : std::pow(lightAxis.pt(),_beam_beta - 1.0);
+// return particle.pt() * weight * std::pow(jet_distance_squared(particle,axis),_jet_beta/2.0);
+// }
+//
+// virtual double beam_numerator(const fastjet::PseudoJet& particle) const {
+// double weight = (_beam_beta == 1.0) ? 1.0 : std::pow(particle.pt()/particle.e(),_beam_beta - 1.0);
+// return particle.pt() * weight * std::pow(_Rcutoff,_jet_beta);
+// }
+//
+// virtual double denominator(const fastjet::PseudoJet& /*particle*/) const {
+// return std::numeric_limits::quiet_NaN();
+// }
+//
+// virtual std::vector get_one_pass_axes(int n_jets,
+// const std::vector& inputs,
+// const std::vector& seedAxes,
+// int nAttempts, // cap number of iterations
+// double accuracy // cap distance of closest approach
+// ) const;
+//
+//protected:
+// double _jet_beta;
+// double _beam_beta;
+// double _Rcutoff;
+// double _RcutoffSq;
+//
+//};
+//
+//// ------------------------------------------------------------------------
+//// / \class DeprecatedGeometricMeasure
+//// Same as DeprecatedGeometricMeasureCutoffMeasure, but with Rcutoff taken to infinity.
+//// NOTE: This class should not be used for production purposes.
+//class DeprecatedGeometricMeasure : public DeprecatedGeometricCutoffMeasure {
+//
+//public:
+// DeprecatedGeometricMeasure(double beta)
+// : DeprecatedGeometricCutoffMeasure(beta,std::numeric_limits::max()) {
+// _RcutoffSq = std::numeric_limits::max();
+// setTauMode(UNNORMALIZED_JET_SHAPE);
+// }
+//
+// virtual std::string description() const;
+//
+// virtual DeprecatedGeometricMeasure* create() const {return new DeprecatedGeometricMeasure(*this);}
+//};
+
+
+} //namespace contrib
+
+FASTJET_END_NAMESPACE
+
+#endif // __FASTJET_CONTRIB_MEASUREDEFINITION_HH__
Property changes on: contrib/contribs/Nsubjettiness/tags/2.2.6/MeasureDefinition.hh
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: contrib/contribs/Nsubjettiness/tags/2.2.6/COPYING
===================================================================
--- contrib/contribs/Nsubjettiness/tags/2.2.6/COPYING (revision 0)
+++ contrib/contribs/Nsubjettiness/tags/2.2.6/COPYING (revision 1318)
@@ -0,0 +1,369 @@
+The Nsubjettiness contrib to FastJet is released
+under the terms of the GNU General Public License v2 (GPLv2).
+
+A copy of the GPLv2 is to be found at the end of this file.
+
+While the GPL license grants you considerable freedom, please bear in
+mind that this code's use falls under guidelines similar to those that
+are standard for Monte Carlo event generators
+(http://www.montecarlonet.org/GUIDELINES). In particular, if you use
+this code as part of work towards a scientific publication, whether
+directly or contained within another program you should include a citation
+to
+
+N-subjettiness:
+ arXiv:1011.2268
+ arXiv:1108.2701
+
+Winner-take-all axes:
+ arXiv:1310.7584
+ arXiv:1401.2158
+
+XCone:
+ arXiv:1508.01516
+ arXiv:1508.01518
+
+
+======================================================================
+======================================================================
+======================================================================
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ , 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
Index: contrib/contribs/Nsubjettiness/tags/2.2.6/ExtraRecombiners.hh
===================================================================
--- contrib/contribs/Nsubjettiness/tags/2.2.6/ExtraRecombiners.hh (revision 0)
+++ contrib/contribs/Nsubjettiness/tags/2.2.6/ExtraRecombiners.hh (revision 1318)
@@ -0,0 +1,103 @@
+// Nsubjettiness Package
+// Questions/Comments? jthaler@jthaler.net
+//
+// Copyright (c) 2011-14
+// Jesse Thaler, Ken Van Tilburg, Christopher K. Vermilion, and TJ Wilkason
+//
+// $Id$
+//----------------------------------------------------------------------
+// This file is part of FastJet contrib.
+//
+// It is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2 of the License, or (at
+// your option) any later version.
+//
+// It is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+// License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this code. If not, see .
+//----------------------------------------------------------------------
+
+#ifndef __FASTJET_CONTRIB_WINNERTAKEALLRECOMBINER_HH__
+#define __FASTJET_CONTRIB_WINNERTAKEALLRECOMBINER_HH__
+
+#include "fastjet/PseudoJet.hh"
+#include "fastjet/JetDefinition.hh"
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh
+
+namespace contrib {
+
+///------------------------------------------------------------------------
+/// \class GeneralEtSchemeRecombiner
+/// \brief Recombination scheme with generalized Et weighting
+///
+/// GeneralEtSchemeRecombiner defines a new recombination scheme by inheriting from JetDefinition::Recombiner.
+/// This scheme compares the pT of two input particles, and then combines them into a particle with
+/// a pT equal to the sum of the two particle pTs and a direction (in rapidity/phi) weighted by the respective momenta of the
+/// particle. The weighting is dependent on the power delta. For delta = infinity, this should return the same result as the
+/// WinnerTakeAllRecombiner.
+///------------------------------------------------------------------------
+class GeneralEtSchemeRecombiner : public fastjet::JetDefinition::Recombiner {
+public:
+
+ /// Constructor takes delta weighting
+ /// (delta = 1.0 for Et-scheme, delta = infinity for winner-take-all scheme)
+ GeneralEtSchemeRecombiner(double delta) : _delta(delta) {}
+
+ /// Description
+ virtual std::string description() const;
+
+ /// Recombine pa and pb and put result into pab
+ virtual void recombine(const fastjet::PseudoJet & pa,
+ const fastjet::PseudoJet & pb,
+ fastjet::PseudoJet & pab) const;
+
+private:
+ double _delta; ///< Weighting exponent
+};
+
+///------------------------------------------------------------------------
+/// \class WinnerTakeAllRecombiner
+/// \brief Recombination scheme with winner-take-all weighting
+///
+/// WinnerTakeAllRecombiner defines a new recombination scheme by inheriting from JetDefinition::Recombiner.
+/// This scheme compares the pT of two input particles, and then combines them into a particle with
+/// a pT equal to the sum of the two particle pTs and a direction (in rapidity/phi) identical to that of the harder
+/// particle. This creates a jet with an axis guaranteed to align with a particle in the event.
+///------------------------------------------------------------------------
+class WinnerTakeAllRecombiner : public fastjet::JetDefinition::Recombiner {
+public:
+
+ /// Constructor to choose value of alpha (defaulted to 1 for normal pT sum)
+ WinnerTakeAllRecombiner(double alpha = 1.0) : _alpha(alpha) {}
+
+ /// Description
+ virtual std::string description() const;
+
+ /// recombine pa and pb and put result into pab
+ virtual void recombine(const fastjet::PseudoJet & pa,
+ const fastjet::PseudoJet & pb,
+ fastjet::PseudoJet & pab) const;
+
+private:
+ double _alpha; //power of (pt/E) term when recombining particles
+};
+
+} //namespace contrib
+
+FASTJET_END_NAMESPACE
+
+#endif // __FASTJET_CONTRIB_WINNERTAKEALLRECOMBINER_HH__
Property changes on: contrib/contribs/Nsubjettiness/tags/2.2.6/ExtraRecombiners.hh
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: contrib/contribs/Nsubjettiness/tags/2.2.6/Njettiness.cc
===================================================================
--- contrib/contribs/Nsubjettiness/tags/2.2.6/Njettiness.cc (revision 0)
+++ contrib/contribs/Nsubjettiness/tags/2.2.6/Njettiness.cc (revision 1318)
@@ -0,0 +1,223 @@
+// Nsubjettiness Package
+// Questions/Comments? jthaler@jthaler.net
+//
+// Copyright (c) 2011-14
+// Jesse Thaler, Ken Van Tilburg, Christopher K. Vermilion, and TJ Wilkason
+//
+// $Id$
+//----------------------------------------------------------------------
+// This file is part of FastJet contrib.
+//
+// It is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2 of the License, or (at
+// your option) any later version.
+//
+// It is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+// License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this code. If not, see .
+//----------------------------------------------------------------------
+
+#include "Njettiness.hh"
+
+FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh
+
+namespace contrib {
+
+
+///////
+//
+// Main Njettiness Class
+//
+///////
+
+LimitedWarning Njettiness::_old_measure_warning;
+LimitedWarning Njettiness::_old_axes_warning;
+
+
+// Constructor
+Njettiness::Njettiness(const AxesDefinition & axes_def, const MeasureDefinition & measure_def)
+: _axes_def(axes_def.create()), _measure_def(measure_def.create()) {}
+
+// setAxes for Manual mode
+void Njettiness::setAxes(const std::vector & myAxes) {
+ if (_axes_def->needsManualAxes()) {
+ _currentAxes = myAxes;
+ } else {
+ throw Error("You can only use setAxes for manual AxesDefinitions");
+ }
+}
+
+// Calculates and returns all TauComponents that user would want.
+// This information is stored in _current_tau_components for later access as well.
+TauComponents Njettiness::getTauComponents(unsigned n_jets, const std::vector & inputJets) const {
+ if (inputJets.size() <= n_jets) { //if not enough particles, return zero
+ _currentAxes = inputJets;
+ _currentAxes.resize(n_jets,fastjet::PseudoJet(0.0,0.0,0.0,0.0));
+
+ // Put in empty tau components
+ std::vector dummy_jet_pieces;
+ _current_tau_components = TauComponents(UNDEFINED_SHAPE,
+ dummy_jet_pieces,
+ 0.0,
+ 1.0,
+ _currentAxes,
+ _currentAxes
+ );
+ _seedAxes = _currentAxes;
+ _currentPartition = TauPartition(n_jets); // empty partition
+ } else {
+ assert(_axes_def); // this should never fail.
+
+ if (_axes_def->needsManualAxes()) { // if manual mode
+ // take current axes as seeds
+ _seedAxes = _currentAxes;
+
+ // refine axes if requested
+ _currentAxes = _axes_def->get_refined_axes(n_jets,inputJets,_seedAxes, _measure_def.get());
+ } else { // non-manual axes
+
+ //set starting point for minimization
+ _seedAxes = _axes_def->get_starting_axes(n_jets,inputJets,_measure_def.get());
+
+ // refine axes as needed
+ _currentAxes = _axes_def->get_refined_axes(n_jets,inputJets,_seedAxes, _measure_def.get());
+
+ // NOTE: The above two function calls are combined in "AxesDefinition::get_axes"
+ // but are separated here to allow seed axes to be stored.
+ }
+
+ // Find and store partition
+ _currentPartition = _measure_def->get_partition(inputJets,_currentAxes);
+
+ // Find and store tau value
+ _current_tau_components = _measure_def->component_result_from_partition(_currentPartition, _currentAxes); // sets current Tau Values
+ }
+ return _current_tau_components;
+}
+
+
+///////
+//
+// Below is code for backward compatibility to use the old interface.
+// May be deleted in a future version
+//
+///////
+
+Njettiness::Njettiness(AxesMode axes_mode, const MeasureDefinition & measure_def)
+: _axes_def(createAxesDef(axes_mode)), _measure_def(measure_def.create()) {}
+
+// Convert from MeasureMode enum to MeasureDefinition
+// This returns a pointer that will be claimed by a SharedPtr
+MeasureDefinition* Njettiness::createMeasureDef(MeasureMode measure_mode, int num_para, double para1, double para2, double para3) const {
+
+ _old_measure_warning.warn("Njettiness::createMeasureDef: You are using the old MeasureMode way of specifying N-subjettiness measures. This is deprecated as of v2.1 and will be removed in v3.0. Please use MeasureDefinition instead.");
+
+ // definition of maximum Rcutoff for non-cutoff measures, changed later by other measures
+ double Rcutoff = std::numeric_limits::max(); //large number
+ // Most (but not all) measures have some kind of beta value
+ double beta = std::numeric_limits::quiet_NaN();
+ // The normalized measures have an R0 value.
+ double R0 = std::numeric_limits::quiet_NaN();
+
+ // Find the MeasureFunction and set the parameters.
+ switch (measure_mode) {
+ case normalized_measure:
+ beta = para1;
+ R0 = para2;
+ if(num_para == 2) {
+ return new NormalizedMeasure(beta,R0);
+ } else {
+ throw Error("normalized_measure needs 2 parameters (beta and R0)");
+ }
+ break;
+ case unnormalized_measure:
+ beta = para1;
+ if(num_para == 1) {
+ return new UnnormalizedMeasure(beta);
+ } else {
+ throw Error("unnormalized_measure needs 1 parameter (beta)");
+ }
+ break;
+ case geometric_measure:
+ throw Error("This class has been removed. Please use OriginalGeometricMeasure, ModifiedGeometricMeasure, or ConicalGeometricMeasure with the new Njettiness constructor.");
+ break;
+ case normalized_cutoff_measure:
+ beta = para1;
+ R0 = para2;
+ Rcutoff = para3; //Rcutoff parameter is 3rd parameter in normalized_cutoff_measure
+ if (num_para == 3) {
+ return new NormalizedCutoffMeasure(beta,R0,Rcutoff);
+ } else {
+ throw Error("normalized_cutoff_measure has 3 parameters (beta, R0, Rcutoff)");
+ }
+ break;
+ case unnormalized_cutoff_measure:
+ beta = para1;
+ Rcutoff = para2; //Rcutoff parameter is 2nd parameter in normalized_cutoff_measure
+ if (num_para == 2) {
+ return new UnnormalizedCutoffMeasure(beta,Rcutoff);
+ } else {
+ throw Error("unnormalized_cutoff_measure has 2 parameters (beta, Rcutoff)");
+ }
+ break;
+ case geometric_cutoff_measure:
+ throw Error("This class has been removed. Please use OriginalGeometricMeasure, ModifiedGeometricMeasure, or ConicalGeometricMeasure with the new Njettiness constructor.");
+ default:
+ assert(false);
+ break;
+ }
+ return NULL;
+}
+
+// Convert from AxesMode enum to AxesDefinition
+// This returns a pointer that will be claimed by a SharedPtr
+AxesDefinition* Njettiness::createAxesDef(Njettiness::AxesMode axes_mode) const {
+
+ _old_axes_warning.warn("Njettiness::createAxesDef: You are using the old AxesMode way of specifying N-subjettiness axes. This is deprecated as of v2.1 and will be removed in v3.0. Please use AxesDefinition instead.");
+
+
+ switch (axes_mode) {
+ case wta_kt_axes:
+ return new WTA_KT_Axes();
+ case wta_ca_axes:
+ return new WTA_CA_Axes();
+ case kt_axes:
+ return new KT_Axes();
+ case ca_axes:
+ return new CA_Axes();
+ case antikt_0p2_axes:
+ return new AntiKT_Axes(0.2);
+ case onepass_wta_kt_axes:
+ return new OnePass_WTA_KT_Axes();
+ case onepass_wta_ca_axes:
+ return new OnePass_WTA_CA_Axes();
+ case onepass_kt_axes:
+ return new OnePass_KT_Axes();
+ case onepass_ca_axes:
+ return new OnePass_CA_Axes();
+ case onepass_antikt_0p2_axes:
+ return new OnePass_AntiKT_Axes(0.2);
+ case onepass_manual_axes:
+ return new OnePass_Manual_Axes();
+ case min_axes:
+ return new MultiPass_Axes(100);
+ case manual_axes:
+ return new Manual_Axes();
+ default:
+ assert(false);
+ return NULL;
+ }
+}
+
+
+
+
+
+} // namespace contrib
+
+FASTJET_END_NAMESPACE
Property changes on: contrib/contribs/Nsubjettiness/tags/2.2.6/Njettiness.cc
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: contrib/contribs/Nsubjettiness/tags/2.2.6/NEWS
===================================================================
--- contrib/contribs/Nsubjettiness/tags/2.2.6/NEWS (revision 0)
+++ contrib/contribs/Nsubjettiness/tags/2.2.6/NEWS (revision 1318)
@@ -0,0 +1,103 @@
+-------------------------
+Version 2
+-------------------------
+
+This is a streamlining of the N-subjettiness code, developed mainly by TJ
+Wilkason. The core functionality is unchanged, but classes have been
+dramatically reorganized to allow for later expansion. Because the API for
+Njettiness has changed, we have called this v2 (http://semver.org).
+
+Note that we have maintain backwards compatibility for the typical ways that
+Nsubjettiness was used. In particular, all of the Nsubjettiness class code in
+the example file from v1.0.3 still compiles, as does the NjettinessPlugin class
+code that uses the default measure.
+
+The key new features are:
+
+ * NsubjettinessRatio: Direct access to tau_N / tau_M (the most requested
+ feature)
+ * MeasureDefinition to allow access to normalized and unnormalized measures
+ * AxesDefinition to allow for access to more general axes modes
+ * Winner-Take-All recombination axes: a faster way to find axes than beta=1
+ minimization, but with comparable performance.
+ * TauComponents to get access to the pieces of the N-(sub)jettiness
+ calculation.
+ * TauExtras to get complete access to get partitioning and axes information.
+ * For clarity, split the example file into an example_basic_usage and
+ example_advanced_usage (and example_advanced_usage_ee for e+e- collisions).
+ * In Nsubjettiness, access to seedAxes() and currentAxes() to figure out the
+ axes used before and after minimization.
+ * In Nsubjettiness, access to currentSubjets() to get the subjet fourvectors.
+ * (v2.2) XConePlugin, which improves on the previous NjettinessPlugin to use
+ N-jettiness as a jet finder using the new ConicalGeometric measure.
+
+-- 2.2.6: (June 13, 2022) Removed "static" for thread safety (thanks Tomek
+ Procter and Andy Buckley)
+-- 2.2.5: (June 6, 2018) Fixed bug involved undefined pointer for in
+ AxesDefinition (thanks Attila Krasznahorkay)
+-- 2.2.4: (Jun 14, 2016) Fixed bug where multi-pass minimization could yield
+ pathological axes (thanks Gregory Soyez)
+-- 2.2.3: (Apr 4, 2016) Fixed bug where a jet with fewer than N constituents
+ could give random value for tau_N (thanks Nathan Hartland)
+-- 2.2.2: (Mar 29, 2016) Updating SharedPtr interface for FJ 3.2
+-- 2.2.1: (Sept 28, 2015) Fix of small Makefile bug
+-- 2.2.0: (Sept 7, 2015) Inclusion of the XCone jet algorithm, as well as a
+ few new measures, including the "conical geometric" measure and
+ options for e+e- colliders. Improvement of the
+ Measure/AxesDefinition interface to allow for direct
+ use in calculations.
+ * Fixed bug where MultiPass_Axes did not actually minimize
+ * Fixed floating point error with infinity^2 in various measures
+
+-- 2.1.0: (July 9, 2014) Inclusion of Measure/AxesDefinition interface.
+ This was the first publicly available version of Nsubjettiness v2.
+-- 2.0.0: Initial release of v2.0. This was never officially made public.
+
+-------------------------
+Version 1
+-------------------------
+
+This was a new release using FastJet contrib framework, primary developed by
+Jesse Thaler.
+
+-- 1.0.3: Added inlines to fix compile issue (thanks Matthew Low)
+-- 1.0.2: Fixed potential dependency issue (thanks FJ authors)
+-- 1.0.1: Fixed memory leak in Njettiness.hh (thanks FJ authors)
+-- 1.0.0: New release using FastJet contrib framework. This includes a new
+makefile and a simplified example program.
+
+-------------------------
+Previous Versions
+-------------------------
+
+The previous versions of this code were developed initially by Ken Van Tilburg,
+tweaked by Jesse Thaler, and made into a robust FastJet add on by Chris
+Vermilion.
+
+Previous versions available from:
+ http://jthaler.net/jets/Njettiness-0.5.1.tar.gz (Experimental Version)
+ http://jthaler.net/jets/Njettiness-0.4.1.tar.gz (Stable Version)
+
+Previous version history:
+-- 0.5.1: For Njettiness Plugin, added access to currentTau values and axes via
+ ClusterSequence::Extras class. (thanks to Dinko Ferencek and John
+ Paul Chou)
+-- 0.5.0: Corrected fatal error in ConstituentTauValue (TauValue unaffected).
+ Started process of allowing for more general measures and alternative
+ minimization schemes. Extremely preliminary inclusion of alternative
+ "geometric" measure.
+-- 0.4.1: Corrected bug where a too-small value of Rcut would cause the
+ minimization procedure to fail (thanks Marat Freytsis, Brian Shuve)
+-- 0.4.0: Adding Nsubjettiness FunctionOfPseudoJet. Re-organizing file
+ structure and doing some re-naming to clarify Njettiness vs.
+ Nsubjettiness. Some speedup in UpdateAxes code. (CKV)
+-- 0.3.2: Returns zero instead of a segmentation fault when the number of
+ particles in a jet is smaller than the N value in tau_N (thanks
+ Grigory Ovanesyan)
+-- 0.3.2: Fixed -Wshadow errors (thanks Grigory Ovanesyan)
+-- 0.3.1: Fixed stray comma/semicolon compiler error (thanks Grigory Ovanesyan)
+-- 0.3.1: Corrected tarbomb issue (thanks Jonathan Walsh)
+-- 0.3.1: Added anti-kT seeds as option
+-- 0.3.1: Fixed bug in minimization code with R_cutoff (thanks Chris Vermilion)
+-- 0.3.1: Added getPartition() and getJets() functions as helper functions for
+ Chris Vermilion. (JT)
Index: contrib/contribs/Nsubjettiness/tags/2.2.6/Makefile
===================================================================
--- contrib/contribs/Nsubjettiness/tags/2.2.6/Makefile (revision 0)
+++ contrib/contribs/Nsubjettiness/tags/2.2.6/Makefile (revision 1318)
@@ -0,0 +1,119 @@
+# If you are using this Makefile standalone and fastjet-config is not
+# in your path, edit this line to specify the full path
+FASTJETCONFIG=fastjet-config
+PREFIX=`$(FASTJETCONFIG) --prefix`
+CXX=g++
+CXXFLAGS= -O3 -Wall -Woverloaded-virtual -g -Wunused-parameter
+install_script = $(SHELL) ../utils/install-sh
+check_script = ../utils/check.sh
+
+# global contrib-wide Makefile include may override some of the above
+# variables (leading "-" means don't give an error if you can't find
+# the file)
+-include ../.Makefile.inc
+
+#------------------------------------------------------------------------
+# things that are specific to this contrib
+NAME=Nsubjettiness
+SRCS=Nsubjettiness.cc Njettiness.cc NjettinessPlugin.cc XConePlugin.cc MeasureDefinition.cc ExtraRecombiners.cc AxesDefinition.cc TauComponents.cc
+EXAMPLES=example_basic_usage example_advanced_usage example_v1p0p3
+EXAMPLES2=example_advanced_usage_ee
+INSTALLED_HEADERS=Nsubjettiness.hh Njettiness.hh NjettinessPlugin.hh XConePlugin.hh MeasureDefinition.hh ExtraRecombiners.hh AxesDefinition.hh TauComponents.hh
+#------------------------------------------------------------------------
+
+CXXFLAGS+= $(shell $(FASTJETCONFIG) --cxxflags)
+LDFLAGS += -lm $(shell $(FASTJETCONFIG) --libs)
+
+OBJS = $(SRCS:.cc=.o)
+EXAMPLES_SRCS = $(EXAMPLES:=.cc)
+
+install_HEADER = $(install_script) -c -m 644
+install_LIB = $(install_script) -c -m 644
+install_DIR = $(install_script) -d
+install_DATA = $(install_script) -c -m 644
+install_PROGRAM = $(install_script) -c -s
+install_SCRIPT = $(install_script) -c
+
+.PHONY: clean distclean examples check install
+
+# compilation of the code (default target)
+all: lib$(NAME).a
+
+lib$(NAME).a: $(OBJS)
+ ar cru lib$(NAME).a $(OBJS)
+ ranlib lib$(NAME).a
+
+# building the examples
+examples: $(EXAMPLES) $(EXAMPLES2)
+
+# the following construct alloews to build each of the examples listed
+# in $EXAMPLES automatically
+$(EXAMPLES): % : %.o all
+ $(CXX) -o $@ $< -L. -l$(NAME) $(LDFLAGS)
+
+$(EXAMPLES2): % : %.o all
+ $(CXX) -o $@ $< -L. -l$(NAME) $(LDFLAGS)
+
+# check that everything went fine
+check: examples
+ @for prog in $(EXAMPLES); do\
+ $(check_script) $${prog} ../data/single-event.dat || exit 1; \
+ done
+ @for prog in $(EXAMPLES2); do\
+ $(check_script) $${prog} ../data/single-ee-event.dat || exit 1; \
+ done
+ @echo "All tests successful"
+
+# cleaning the directory
+clean:
+ rm -f *~ *.o *.a
+
+distclean: clean
+ rm -f lib$(NAME).a $(EXAMPLES)
+
+# install things in PREFIX/...
+install: all
+ $(install_DIR) $(PREFIX)/include/fastjet/contrib
+ for header in $(INSTALLED_HEADERS); do\
+ $(install_HEADER) $$header $(PREFIX)/include/fastjet/contrib/;\
+ done
+ $(install_DIR) $(PREFIX)/lib
+ $(install_LIB) lib$(NAME).a $(PREFIX)/lib
+
+doxygen:
+ doxygen Doxyfile
+
+depend:
+ makedepend -Y -- -- $(SRCS) $(EXAMPLES_SRCS)
+# DO NOT DELETE
+
+Nsubjettiness.o: Nsubjettiness.hh Njettiness.hh MeasureDefinition.hh
+Nsubjettiness.o: TauComponents.hh AxesDefinition.hh
+Nsubjettiness.o: ExtraRecombiners.hh
+Njettiness.o: Njettiness.hh MeasureDefinition.hh TauComponents.hh
+Njettiness.o: AxesDefinition.hh ExtraRecombiners.hh
+NjettinessPlugin.o: NjettinessPlugin.hh Njettiness.hh MeasureDefinition.hh
+NjettinessPlugin.o: TauComponents.hh AxesDefinition.hh
+NjettinessPlugin.o: ExtraRecombiners.hh
+XConePlugin.o: XConePlugin.hh NjettinessPlugin.hh Njettiness.hh
+XConePlugin.o: MeasureDefinition.hh TauComponents.hh AxesDefinition.hh
+XConePlugin.o: ExtraRecombiners.hh
+MeasureDefinition.o: MeasureDefinition.hh TauComponents.hh
+ExtraRecombiners.o: ExtraRecombiners.hh
+AxesDefinition.o: AxesDefinition.hh MeasureDefinition.hh TauComponents.hh
+AxesDefinition.o: ExtraRecombiners.hh
+TauComponents.o: TauComponents.hh MeasureDefinition.hh
+XConePlugin.o: XConePlugin.hh NjettinessPlugin.hh Njettiness.hh
+XConePlugin.o: MeasureDefinition.hh TauComponents.hh AxesDefinition.hh
+XConePlugin.o: ExtraRecombiners.hh
+example_basic_usage.o: Nsubjettiness.hh Njettiness.hh MeasureDefinition.hh
+example_basic_usage.o: TauComponents.hh AxesDefinition.hh
+example_basic_usage.o: ExtraRecombiners.hh NjettinessPlugin.hh
+example_basic_usage.o: XConePlugin.hh
+example_advanced_usage.o: Nsubjettiness.hh Njettiness.hh MeasureDefinition.hh
+example_advanced_usage.o: TauComponents.hh AxesDefinition.hh
+example_advanced_usage.o: ExtraRecombiners.hh NjettinessPlugin.hh
+example_advanced_usage.o: XConePlugin.hh
+example_v1p0p3.o: Nsubjettiness.hh Njettiness.hh MeasureDefinition.hh
+example_v1p0p3.o: TauComponents.hh AxesDefinition.hh
+example_v1p0p3.o: ExtraRecombiners.hh NjettinessPlugin.hh
Index: contrib/contribs/Nsubjettiness/tags/2.2.6/example_v1p0p3.ref
===================================================================
--- contrib/contribs/Nsubjettiness/tags/2.2.6/example_v1p0p3.ref (revision 0)
+++ contrib/contribs/Nsubjettiness/tags/2.2.6/example_v1p0p3.ref (revision 1318)
@@ -0,0 +1,132 @@
+# read an event with 354 particles
+#--------------------------------------------------------------------------
+# FastJet release 3.0.3
+# M. Cacciari, G.P. Salam and G. Soyez
+# A software package for jet finding and analysis at colliders
+# http://fastjet.fr
+#
+# Please cite EPJC72(2012)1896 [arXiv:1111.6097] if you use this package
+# for scientific work and optionally PLB641(2006)57 [hep-ph/0512210].
+#
+# FastJet is provided without warranty under the terms of the GNU GPLv2.
+# It uses T. Chan's closest pair algorithm, S. Fortune's Voronoi code
+# and 3rd party plugin jet algorithms. See COPYING file for details.
+#--------------------------------------------------------------------------
+-------------------------------------------------------------------------------------
+-------------------------------------------------------------------------------------
+###
+# Note: This reference file has been modified from v1.0.3 as follows:
+# -- The order of the subjets changed from v1.0.3 to v2.0.0
+# -- The interface to the GeometricMeasure has changed, so that
+# part has been commented out
+# -- There was a bug in one-pass kT minimization, so Event-wide Jets are not
+# directly comparable.
+##
+Beta = 1
+kT Axes:
+jet # rapidity phi pt m e subTau
+ 0 -0.867 2.905 983.387 39.991 1378.162 0.012519
+total -0.867 2.905 983.387 39.991 1378.162 0.012519
+jet # rapidity phi pt m e subTau
+ 0 -0.795 2.822 37.055 4.246 49.708 0.002465
+ 1 -0.870 2.908 946.464 25.237 1328.454 0.007675
+total -0.867 2.905 983.387 39.991 1378.162 0.010140
+jet # rapidity phi pt m e subTau
+ 0 -0.890 2.913 149.669 8.252 213.287 0.001190
+ 1 -0.866 2.907 798.567 11.098 1117.518 0.003876
+ 2 -0.795 2.819 35.290 4.099 47.357 0.002325
+total -0.867 2.905 983.387 39.991 1378.162 0.007390
+One Pass Minimization Axes from kT
+jet # rapidity phi pt m e subTau
+ 0 -0.867 2.905 983.387 39.991 1378.162 0.011996
+total -0.867 2.905 983.387 39.991 1378.162 0.011996
+jet # rapidity phi pt m e subTau
+ 0 -0.796 2.821 36.926 4.124 49.558 0.002058
+ 1 -0.870 2.908 946.596 25.745 1328.604 0.007213
+total -0.867 2.905 983.387 39.991 1378.162 0.009271
+jet # rapidity phi pt m e subTau
+ 0 -0.890 2.913 149.669 8.252 213.287 0.001073
+ 1 -0.866 2.907 796.929 11.662 1115.317 0.003672
+ 2 -0.796 2.821 36.926 4.124 49.558 0.002058
+total -0.867 2.905 983.387 39.991 1378.162 0.006802
+-------------------------------------------------------------------------------------
+Beta = 1
+ kT: tau1: 0.0125188 tau2: 0.0101401 tau3: 0.00739039 tau2/tau1: 0.809988 tau3/tau2: 0.728831
+OnePass: tau1: 0.0119958 tau2: 0.00927143 tau3: 0.00680249 tau2/tau1: 0.772888 tau3/tau2: 0.733704
+
+-------------------------------------------------------------------------------------
+-------------------------------------------------------------------------------------
+-------------------------------------------------------------------------------------
+-------------------------------------------------------------------------------------
+Beta = 1
+kT Axes:
+jet # rapidity phi pt m e subTau
+ 0 0.219 6.035 908.098 87.712 934.387 0.021411
+total 0.219 6.035 908.098 87.712 934.387 0.021411
+jet # rapidity phi pt m e subTau
+ 0 0.272 0.335 8.985 3.734 10.091 0.002302
+ 1 0.219 6.029 900.614 59.545 924.296 0.013311
+total 0.219 6.035 908.098 87.712 934.387 0.015613
+jet # rapidity phi pt m e subTau
+ 0 0.232 6.038 213.757 10.389 219.808 0.002692
+ 1 0.215 6.027 686.868 48.049 704.488 0.010855
+ 2 0.272 0.335 8.985 3.734 10.091 0.002302
+total 0.219 6.035 908.098 87.712 934.387 0.015849
+One Pass Minimization Axes from kT
+jet # rapidity phi pt m e subTau
+ 0 0.219 6.035 908.098 87.712 934.387 0.017650
+total 0.219 6.035 908.098 87.712 934.387 0.017650
+jet # rapidity phi pt m e subTau
+ 0 0.272 0.335 8.985 3.734 10.091 0.002284
+ 1 0.219 6.029 900.614 59.545 924.296 0.011429
+total 0.219 6.035 908.098 87.712 934.387 0.013713
+jet # rapidity phi pt m e subTau
+ 0 0.232 6.038 213.757 10.389 219.808 0.002580
+ 1 0.215 6.027 686.868 48.049 704.488 0.007144
+ 2 0.272 0.335 8.985 3.734 10.091 0.002284
+total 0.219 6.035 908.098 87.712 934.387 0.012008
+-------------------------------------------------------------------------------------
+Beta = 1
+ kT: tau1: 0.0214112 tau2: 0.0156127 tau3: 0.015849 tau2/tau1: 0.729182 tau3/tau2: 1.01514
+OnePass: tau1: 0.0176497 tau2: 0.0137131 tau3: 0.0120083 tau2/tau1: 0.776959 tau3/tau2: 0.875683
+
+-------------------------------------------------------------------------------------
+-------------------------------------------------------------------------------------
+#-------------------------------------------------------------------------------------
+#Event-wide Jets from One-Pass Minimization (beta = 1.0)
+#jet # rapidity phi pt m e subTau
+# 0 -1.179 6.109 74.906 25.817 140.954 0.023411
+# 1 0.221 6.035 906.441 79.121 932.274 0.027116
+# 2 -0.867 2.905 983.387 39.991 1378.162 0.017703
+#total -0.375 4.107 6.220 2288.668 2451.390 0.068230
+#Event-wide Axis Location for Above Jets
+#jet # rapidity phi pt m e
+# 0 -0.868 2.907 983.287 0.000 1377.582
+# 1 0.221 6.029 906.605 -0.000 928.911
+# 2 -1.188 6.105 77.311 0.000 138.569
+#Event-wide Jets from Geometric Measure
+#jet # rapidity phi pt m e subTau
+# 0 -1.168 6.113 73.982 22.784 136.469 0.145343
+# 1 0.221 6.034 905.364 68.865 930.274 0.138958
+# 2 -0.867 2.905 983.280 36.457 1377.658 0.045771
+#total -0.374 3.920 7.900 2282.722 2444.400 0.330072
+#-------------------------------------------------------------------------------------
+#-------------------------------------------------------------------------------------
+#Event-wide Jets from One-Pass Minimization (beta = 1.0) (with area information)
+#jet # rapidity phi pt m e subTau area
+# 0 -1.179 6.109 74.906 25.817 140.954 0.023411 2.842
+# 1 0.221 6.035 906.441 79.121 932.274 0.027116 2.822
+# 2 -0.867 2.905 983.387 39.991 1378.162 0.017703 3.122
+#total -0.375 4.107 6.220 2288.668 2451.390 0.068230 0.000
+#Event-wide Axis Location for Above Jets (with area information)
+#jet # rapidity phi pt m e
+# 0 -0.868 2.907 983.287 0.000 1377.582
+# 1 0.221 6.029 906.605 -0.000 928.911
+# 2 -1.188 6.105 77.311 0.000 138.569
+#Event-wide Jets from Geometric Measure (with area information)
+#jet # rapidity phi pt m e subTau area
+# 0 -0.867 2.905 983.280 36.457 1377.658 0.002435 3.191
+# 1 0.221 6.034 905.364 68.865 930.274 0.007393 2.912
+# 2 -1.168 6.113 73.982 22.784 136.469 0.007732 2.922
+#total -0.374 3.920 7.900 2282.722 2444.400 0.017560 0.000
+#-------------------------------------------------------------------------------------
Index: contrib/contribs/Nsubjettiness/tags/2.2.6/ChangeLog
===================================================================
--- contrib/contribs/Nsubjettiness/tags/2.2.6/ChangeLog (revision 0)
+++ contrib/contribs/Nsubjettiness/tags/2.2.6/ChangeLog (revision 1318)
@@ -0,0 +1,339 @@
+2022-06-13
+ Removed -std=c++11 flag from makefile
+ Updated MeasureDefinition.cc to remove "static thread_local" (since it
+ doesn't really seem to help with timing)
+2022-06-10
+ Updated makefile with -std=c++11 flag
+ Updated MeasureDefinition.cc with thread_local for thread safety
+2018-07-06
+ Updated comments in AxesDefinition.hh about role of JetDefinitionWrapper
+ Updated AUTHORS with JHEP publication information for XCone
+ Prepared VERSION and NEWS for 2.2.5 release
+2018-07-05
+ Fixed bug in AxesDefinition.hh where _recomb was used before it was declared.
+2016-06-08
+ Fixed bug in MeasureDefinition.cc where axes were not completely defined,
+ leading to problems with multi-pass axes
+2016-04-04
+ Fixed Njettiness.cc to give value of _current_tau_components even if less
+ than N constituents
+ Delete extraneous code in example_advanced_usage.cc
+2016-03-29
+ Update for FJ 3.2.0 to deal with SharedPtr () deprecation
+2015-09-28
+ Updated NEWS for 2.2.1 release.
+2015-09-18
+ Fixed duplicate XConePlugin entry in Makefile.
+2015-08-20
+ Trying to fix "abs" bug in ExtraRecombiners.cc
+2015-08-19
+ Adding arXiv numbers to XCone papers
+ Used this_jet in example_basic_usage.
+ Fixed typo in example_advanced_usage header.
+ Added copy/paste code in README file.
+2015-08-13
+ Ready for 2.2.0 release
+2015-07-23
+ Fixed typo in GenET_GenKT_Axes error message
+ Added _too_few_axes_warning to ExclusiveJetAxes and ExclusiveCombinatorialJetAxes
+ Switched to ../data/single_event_ee.dat for make check
+2015-07-20
+ Renamed WinnerTakeAllRecombiner.hh/cc to ExtraRecombiners.hh/cc
+ Added _too_few_axes_warning to HardestJetAxes
+ Added GenKT_Axes and OnePass_GenKT_Axes and Comb_GenKT_Axes (using E-scheme recombination).
+ Added warning about p < 0 or delta <=0 in GenKT axes finders.
+ Added warning about beta <= 0 in all measures.
+2015-07-10
+ Putting in small tweaks in documentation to get ready for 2.2 release candidate 1.
+2015-06-15
+ Starting doxygen file for eventual improved documentation.
+ Starting long process of improving documentation throughout.
+ Made the basic usage file a bit easier to read.
+ Adding in LimitedWarnings for old style constructors
+2015-06-12
+ Synchronized definition of new measures with XCone paper.
+ In MeasureDefinition, added default values of jet_distance_squared and beam_distance_squared for cases where we don't want to optimize specifically.
+ Fixed bug in OriginalGeometricMeasure and ModifiedGeometric Measure
+ Commented out DeprecatedGeometricMeasure and DeprecatedGeometricCutoffMeasure since they were only causing confusion
+2015-05-26
+ Removed axis_scale_factor(), added bool to calculate this value if needed to save computation time
+ Defined small offset in denominator of axis scaling according to accuracy of refinement
+ Updated advanced examples to include tau values and number of jet constituents
+2015-05-25
+ Clean up of AxesDefinition
+ Splitting get_axes into get_starting_axes and get_refined axes
+ Putting in proper noise ranges (hopefully) for MultiPass
+ Clean up of MeasureDefinition, rename jet_gamma to beam_gamma
+ Put in zero checking for jet_distance in ConicalGeometricMeasure
+ Added in ConicalMeasure for consistency
+ Changing OnePass Minimization to allow for temporary uphill
+2015-05-24
+ Added Combinatorial GenET_GenKT_Axes and MultiPass_Manual_Axes
+ Moved Axes refining information into MeasureDefinition, associated each measure with corresponding axes refiner
+ Moved get_one_pass_axes into MeasureDefinition, removed any mention of Npass
+ Moved all information on number of passes to AxesDefinition
+ Made AxesRefiner.hh/.cc into defunct files
+2015-05-22
+ Cleaning out commented text. Renaming classes to be consistent with recommended usage.
+2015-05-22
+ Added XConePlugin as a specific implementation of NjettinessPlugin
+ Added usage of XCone beta = 1.0 and beta = 2.0 to both basic and advanced example files
+ Added OriginalGeometric, ModifiedGeometric, ConicalGeometric, and XCone measures to list of test measures
+ Added OnePass_GenRecomb_GenKT_Axes to list of test axes
+ Added description to XCone measure in MeasureDefinition
+2015-05-21
+ Updated minimization scheme to avoid divide-by-zero errors
+ Fixed various factors of 2 in the definition of the measures
+2015-04-19
+ Fixed bug in minimization scheme for GeneralAxesRefiner
+ Moved measure_type to DefaultMeasure, removed geometric measure from e+e- example file
+2015-03-22
+ Added OriginalGeometricMeasure and ModifiedGeometricMeasure definitions
+ Changed all instances of GeometricMeasure to DeprecatedGeometricMeasure, and added error statements
+ Made GeneralAxesRefiner the default axes refiner for Measure Definition, overwritten by DefaultMeasure and GeometricMeasure
+ Created DefaultMeasure class for all the conical measure subclasses
+ Separated out e+e- and pp measures into separate example files
+2015-03-09
+ Added ConicalGeometric measures with jet_beta and jet_gamma definitions
+ Added XCone measures derived from ConicalGeometric with jet_gamma = 1.0
+ Added GeneralAxesRefiner for use with any measure (currently defined with XCone measure)
+ Added axes_numerator in MeasureDefinition to define the momentum scaling for minimization (currently only defined for Conical Geometric measure)
+2014-11-28
+ Minor change to default parameters in axes definition
+2014-10-08
+ Updated example file with new e+e- measure definitions
+ Added measure type to measure definition descriptions
+ Changed order of parameters in new axes definitions
+ Added standard C++ epsilon definition to GeneralERecombiner
+2014-10-07
+ Updated example_advanced_usage with new axes choices
+ Reversed inheritance of NormalizedMeasure and NormalizedCutoffMeasure (and Geometric) back to original
+ Storing _RcutoffSq as separate variable, and recalculating it in NormalizedMeasure
+ Cleaning up ExclusiveCombinatorialJetAxes and added comments to explain the process
+ Fixed memory leaks using delete_recombiner_when_unused()
+ Fixed manual axes bug in Njettiness
+ Cleaned up enum definitions
+2014-10-01
+ Added new parameterized recombination scheme to Winner-Take-All recombiner
+ Created Winner-Take-All GenKT and general Recomb GenKT axes finders and onepass versions
+ Created new N choose M minimization axis finder, created N choose M WTA GenKT axis finder as example
+ Removed NPass as constructor argument in AxesDefinition, made it set through protected method
+ Removed TauMode as constructor argument in MeasureDefinition, made it set through protected method
+ Flipped inheritance of NormalizedMeasure and NormalizedCutoffMeasure (same for Geometric) to remove error of squaring the integer maximum
+ Created new MeasureType enum to allow user to choose between pp and ee variables (ee variables need testing)
+ Updated MeasureDefinition constructors to take in extra MeasureType parameter (but defaulted to pp variables)
+ Added new Default TauMode argument
+ Fixed unsigned integers in various places
+ Added setAxes method to NjettinessPlugin
+2014-08-26
+ Enhanced TauComponents to include more infomation
+ NjettinessExtras now inherits from TauComponents
+ Removed getPartition from Njettiness, to avoid code duplication
+ Fixed double calculating issue in NjettinessPlugin::run_clustering()
+ Now AxesDefinition can use measure information without running AxesRefiner
+ Added TauStructure so the jets returned by TauComponents can know their tau value.
+2014-08-25
+ Merged MeasureDefinition and MeasureFunction into new MeasureDefinition.
+ Merged StartingAxesFinder and AxesDefinition into new AxesDefinition.
+ Renamed AxesFinder.cc/hh to AxesRefiner.cc/hh
+ Renamed NjettinessDefinition.cc/hh to AxesDefinition.cc/hh
+ Renamed MeasureFunction.cc/hh to MeasureDefinition.cc/hh
+ Renaming result() function in MeasureDefinition to be consistent with Nsubjettiness interface.
+ Split off TauComponents into separate header
+ Added TauPartition class for readability of partitioning
+ Moved NjettinessExtras into TauComponents, as this will eventually be the logical location
+ Added cross check of new MeasureDefinition and AxesDefinition in example_advanced_usage.
+ Lots of comments updated.
+ Changed version number to 2.2.0-alpha-dev, since this is going to be a bigger update than I had originally thought
+2014-08-20
+ Incorporated code in NjettinessPlugin to handle FJ3.1 treatment of auto_ptr (thanks Gregory)
+ Changed version number to 2.1.1-alpha-dev
+ Split AxesFinder into StartingAxesFinder and RefiningAxesFinder for clarity.
+ Manual axes mode now corresponds to a NULL StartingAxesFinder in Njettiness (so removed AxesFinderFromUserInput)
+ Added AxesRefiningMode to make selection of minimization routine more transparent in Njettiness
+ Moved sq() to more appropriate place in AxesFinder.hh
+ Rearranged Nsubjettiness.hh to make the old code less visible.
+ Renamed AxesFinderFromOnePassMinimization -> AxesFinderFromConicalMinimization
+ Renamed DefaultUnnormalizedMeasureFunction -> ConicalUnnormalizedMeasureFunction
+ Removed supportsMultiPassMinimization() from MeasureDefinition since any One Pass algorithm can be multipass.
+2014-07-09
+ Changed version for 2.1.0 release.
+ Updated NEWS to reflect 2.1.0 release
+2014-07-07
+ Added forward declaration of options in NjettinessDefinition for readability.
+ Updated README with some clarifications
+ Added usage information in the example file
+ Reran svn propset svn:keywords Id *.cc *.hh
+2014-06-25
+ Declaring release candidate of 2.1
+2014-06-11
+ Fixed virtual destructor issue in AxesFinder
+ Changing copy() to create() in NjettinessDefinition for "new" clarity
+ Converted some SharedPtr to regular pointers in NjettinessDefinition to be consistent on meaning of "create" commands.
+2014-06-10
+ Slight modification of example_advanced_usage
+ Fixed bug in GeometricCutoffMeasure (incorrect denominator setting)
+2014-06-05
+ Moved public before private in the .hh files for readability
+ Starting process of switching to SharedPtr internally
+ Clean up of AxesFinderFromGeometricMinimization
+ Simplified AxesFinder interface such that it doesn't know about starting axes finders (this is now handled in Njettiness).
+ Added const qualifiers in Njettiness
+2014-06-04
+ Implemented AxesDefinition class
+ Added descriptions to AxesDefinition and MeasureDefinition
+ Simplified example_advanced_usage with new Definitions
+ Made copy constructor private for Njettiness, to avoid copying
+2014-06-03
+ Implemented remaining suggestions from FJ authors (Thanks!)
+ Fixed bug in example_advanced_usage where wrong beta value was used for NjettinessPlugin tests.
+ Removed NANs as signals for number of parameters in Nsubjettiness and NjettinessPlugin
+ Reduced the number of allowed parameters from 4 to 3.
+ Wrapped NEWS to 80 characters
+ Added MeasureDefinition as way to safely store information about the measures used
+ Converted a few NANs to std::numeric_limits::quiet_NaN() when a parameter shouldn't be used.
+ Added AxesStruct and MeasureStruct to simplify the form of example_advanced_usage
+ Added example_v1p0p3 to check for backwards compatibility with v1.0.3
+ Changed the names of the MeasureFunctions in order to avoid conflicts with the new MeasureDefinitions
+ Fixed bug in correlation between subjets and tau values in NjettinessPlugin
+ Added currentTauComponents to Nsubjettiness
+ Added subTau information to example_basic_usage
+ Added file NjettinessDefinition to hold MeasureDefinition
+ Changed Njettiness constructors to treat MeasureSpecification as primary object
+ Fixed segmentation fault with ClusterSequenceAreas
+2014-06-02
+ Implemented many suggestions from FJ authors (Thanks!)
+ Removed FastJet 2 specific code
+ Made sq() function into internal namespace (as "inline static" to avoid conflicts with other packages)
+ Made setAxes() take const reference argument
+ Rewrapped README to 80 characters and updated/improved some of the descriptions
+ Clarified NEWS about what parts of the Nsubjettiness code is backwards compatible with v1.0.3
+ Clarified the para choices in Nsubjettiness constructor
+2014-04-30
+ Added (void)(n_jets) in AxesFinder.hh to fix unused-parameter warning
+2014-04-29
+ Added manual definition of NAN for compilers that don't have it.
+ Removed a few more unused parameters for compilation
+2014-04-22
+ Turned on -Wunused-parameter compiler flag to fix ATLAS compile issues.
+2014-04-18
+ Tweaks to NEWS and README. Preparing for 2.0.0-rc1 release.
+2014-04-16
+ Decided that enough has changed that this should be v2.0
+ Added Id tags
+2014-04-14
+ Added get_partition_list to MeasureFunction
+ Removed do_cluster from MeasureFunction (no longer needed)
+ Fixed bug with NjettinessPlugin where jets were listed in backwards order from axes.
+ Removed various commented out pieces of code.
+2014-03-16
+ Added partitioning information to Nsubjettiness
+ Partitioning is now calculated in MeasureFunction and stored by Njettiness.
+ Rewrote MeasureFunction result() to call result_from_partition()
+ Added subjet (and constituent counting) information to example_basic_usage
+ Commented out redundant "getJets" function
+2014-02-25
+ Added access to seedAxes used for one-pass minimization routines.
+ Added axes print out to example_basic_usage, and fixed too many PrintJets declarations
+2014-02-24
+ Fixed embarrassing bug with min_axes (error introduced after v1.0 to make it the same as onepass_kt)
+ Simplified GeometricMeasure and added possibility of beta dependence
+ Commented out WTA2 options, since those have not been fully tested (nor do they seem particularly useful at the moment). They can be reinstated if the physics case can be made to use them.
+ Split example into example_basic_usage and example_advanced_usage
+2014-01-28
+ Added new options in WinnerTakeAllRecombiner to use either pT or pT^2/E to recombine particles
+2014-01-24
+ Added access to currentAxes from Nsubjettiness.
+2014-01-18
+ Added beam regions to MeasureFunction, correspondingly renamed functions to have jet and beam regions
+ Renamed functions in TauComponents for consistency with MeasureFunction
+ Adding debugging code to AxesFinderFromOnePassMinimization::getAxes
+ Worked extensively on example.cc to make sure that it tests all available options.
+ Rewrote PrintJets command in example.cc for later improvements
+ Converted some magic numbers to std::numeric_limits::max()
+2014-01-17
+ Rewrote KMeansMinimization to call OnePassMinimization, adding noise explicitly.
+ Removed any nothing of noise from OnePassMinimization
+ Removed Double32_t for root usage is Nsubjettiness
+ Clean up of many comments throughout the code, updating of README file
+ Removed unnecessary establishAxes in Njettiness
+ Removed bare constructor for Njettiness to avoid incompatibility with enum choices, may reinstate later. Also removed setMeasureFunction, setAxesFinder for same reason
+ NjettinessExtras now calls TauComponents
+2014-01-16
+ Moved minimization functions to OnePassMinimization, changed KMeansMinimization class to simply call OnePassMinimization a specified number of times
+ Added extra tau function in TauComponents for users to get tau directly
+ Changed radius parameter in AxesFinderFromExclusiveJet subclasses to use max_allowable_R
+ Updated example.ref to account for changes due to change in radius parameter
+2014-01-15
+ Changed NjettinessComponents to TauComponents
+ Updated MeasureFunction with "result" function that returns TauComponents object
+ TauComponents changed to calculate all tau components given subtaus_numerator and tau_denominator
+ Njettiness updated to return TauComponents object rather than individual components
+ Nsubjettiness and NjettinessPlugin updated to have option for 4th parameter
+2014-01-14
+ Added NjettinessComponents class so Njettiness does not recalculate tau values
+ Removed old Njettiness constructors, updated Nsubjettiness and NjettinessPlugin constructors to use new constructor
+ Added geometric minimization to OnePassAxesFinders
+ Created new Njettiness function to set OnePassAxesFinders to reduce code
+ Updated LightLikeAxis with ConvertToPseudoJet function
+ Updated README with new functionality of code
+2014-01-12
+ Removed NsubGeometricParameters in all functions/constructors, replaced with Rcutoff double
+ Added three new measure mode options where Rcutoff is declared explicitly in parameters
+ Added checks so minimization axes finders are not used for geometric measures
+ AxesFinderFromOnePassMinimization class created as child of AxesFinderFromKmeansMinimization
+ Added new NsubjettinessRatio constructor to include MeasureMode option
+ Moved AxesFinder and MeasureFunction declarations from AxesMode and MeasureMode into separate Njettiness function
+ Removed R0 from AxesFinderFromKmeansMinimization
+ Changed example.cc to get rid of use of NsubGeometricParameters
+2014-01-9
+ Removed NsubParameters in all functions/constructors, replaced with three separate parameters
+ Added checks for correct number of parameters in Njettiness constructor
+2014-01-8
+ Removed normalization information from Nsubjettiness
+ Added flag to MeasureFunction to give option of using the denominator
+ Split DefaultMeasure into separate normalized and unnormalized classes
+2014-01-7
+ Added capability of choosing a specific Measure in Njettiness
+ Added new Nsubjettiness constructor to allow choice of both AxesMode and MeasureMode
+2014-01-6
+ Updated copyright information
+ Fixed bug in WinnerTakeAllRecombiner
+ Moved KMeansParameters to AxesFinder
+ Updated README with descriptions of new header files
+2013-12-30
+ Changed name of MeasureFunctor to MeasureFunction
+ Created separate .hh/.cc files for MeasureFunction, AxesFinder, and WinnerTakeAllRecombiner
+ Updated Makefile to account for new files
+ Removed getMinimumAxes in AxesFinderFromKMeansMinimization, consolidated with getAxes
+ Updated comments on classes and major functions
+2013-12-22
+ Created .cc files and moved all function definitions into .cc files
+ Updated Makefile to account for new .cc files
+2013-11-12
+ Added to fjcontrib svn
+2013-11-12
+ Debugging svn
+2013-11-11
+ Changed MeasureFunctor to separately treat tau numerator and denominator
+ Changed some of the function names in MeasureFunctor. Should not affect users
+ Added more informative function names to Njettiness.
+ Njettiness now allows finding unnormalized tau values
+ Added WTARecombiner to define winner-take-all axes
+ Added various WTA options to AxesMode
+ Added setAxes to Nsubjettiness
+ Added NsubjettinessRatio function
+2013-08-26
+ Added inlines to fix compile issue
+ Put some of the minimization code inside of the AxesFinderFromKmeansMinimization class
+2013-02-23
+ Fixed dependency issue (now using make depend)
+2013-02-22
+ Fixed memory management and failed make check issues.
+2013-02-21
+ First version submitted to fjcontrib
+2013-02-20
+ Initial creation based on previous plugin hosted at http://www.jthaler.net/jets/
+
+
+
Index: contrib/contribs/Nsubjettiness/tags/2.2.6/example_advanced_usage.cc
===================================================================
--- contrib/contribs/Nsubjettiness/tags/2.2.6/example_advanced_usage.cc (revision 0)
+++ contrib/contribs/Nsubjettiness/tags/2.2.6/example_advanced_usage.cc (revision 1318)
@@ -0,0 +1,985 @@
+// Nsubjettiness Package
+// Questions/Comments? jthaler@jthaler.net
+//
+// Copyright (c) 2011-13
+// Jesse Thaler, Ken Van Tilburg, Christopher K. Vermilion, and TJ Wilkason
+//
+// Run this example with
+// ./example_advanced_usage < ../data/single-event.dat
+//
+// $Id$
+//----------------------------------------------------------------------
+// This file is part of FastJet contrib.
+//
+// It is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2 of the License, or (at
+// your option) any later version.
+//
+// It is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+// License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this code. If not, see .
+//----------------------------------------------------------------------
+
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include "fastjet/PseudoJet.hh"
+#include "fastjet/ClusterSequenceArea.hh"
+#include
+#include "Nsubjettiness.hh" // In external code, this should be fastjet/contrib/Nsubjettiness.hh
+#include "Njettiness.hh"
+#include "NjettinessPlugin.hh"
+#include "XConePlugin.hh"
+
+using namespace std;
+using namespace fastjet;
+using namespace fastjet::contrib;
+
+// forward declaration to make things clearer
+void read_event(vector &event);
+void analyze(const vector & input_particles);
+
+//----------------------------------------------------------------------
+int main(){
+
+ //----------------------------------------------------------
+ // read in input particles
+ vector event;
+ read_event(event);
+ cout << "# read an event with " << event.size() << " particles" << endl;
+
+ //----------------------------------------------------------
+ // illustrate how Nsubjettiness contrib works
+
+ analyze(event);
+
+ return 0;
+}
+
+// Simple class to store Axes along with a name for display
+class AxesStruct {
+
+private:
+ // Shared Ptr so it handles memory management
+ SharedPtr _axes_def;
+
+public:
+ AxesStruct(const AxesDefinition & axes_def)
+ : _axes_def(axes_def.create()) {}
+
+ // Need special copy constructor to make it possible to put in a std::vector
+ AxesStruct(const AxesStruct& myStruct)
+ : _axes_def(myStruct._axes_def->create()) {}
+
+ const AxesDefinition & def() const {return *_axes_def;}
+ string description() const {return _axes_def->description();}
+ string short_description() const {return _axes_def->short_description();}
+
+};
+
+
+// Simple class to store Measures to make it easier to put in std::vector
+class MeasureStruct {
+
+private:
+ // Shared Ptr so it handles memory management
+ SharedPtr _measure_def;
+
+public:
+ MeasureStruct(const MeasureDefinition& measure_def)
+ : _measure_def(measure_def.create()) {}
+
+ // Need special copy constructor to make it possible to put in a std::vector
+ MeasureStruct(const MeasureStruct& myStruct)
+ : _measure_def(myStruct._measure_def->create()) {}
+
+ const MeasureDefinition & def() const {return *_measure_def;}
+ string description() const {return _measure_def->description();}
+
+};
+
+
+// read in input particles
+void read_event(vector &event){
+ string line;
+ while (getline(cin, line)) {
+ istringstream linestream(line);
+ // take substrings to avoid problems when there are extra "pollution"
+ // characters (e.g. line-feed).
+ if (line.substr(0,4) == "#END") {return;}
+ if (line.substr(0,1) == "#") {continue;}
+ double px,py,pz,E;
+ linestream >> px >> py >> pz >> E;
+ PseudoJet particle(px,py,pz,E);
+
+ // push event onto back of full_event vector
+ event.push_back(particle);
+ }
+}
+
+// Helper Function for Printing out Jet Information
+void PrintJets(const vector & jets, bool commentOut = false);
+void PrintAxes(const vector & jets, bool commentOut = false);
+void PrintJetsWithComponents(const vector & jets, bool commentOut = false);
+
+////////
+//
+// Main Routine for Analysis
+//
+///////
+
+void analyze(const vector & input_particles) {
+
+ ////////
+ //
+ // This code will check multiple axes/measure modes
+ // First thing we do is establish the various modes we will check
+ //
+ ///////
+
+ //Define characteristic test parameters to use here
+ double p = 0.5;
+ double delta = 10.0; // close to winner-take-all. TODO: Think about right value here.
+ double R0 = 0.2;
+ double Rcutoff = 0.5;
+ double infinity = std::numeric_limits::max();
+ int nExtra = 2;
+ int NPass = 10;
+
+ // A list of all of the available axes modes
+ vector _testAxes;
+ _testAxes.push_back(KT_Axes());
+ _testAxes.push_back(CA_Axes());
+ _testAxes.push_back(AntiKT_Axes(R0));
+ _testAxes.push_back(WTA_KT_Axes());
+ _testAxes.push_back(WTA_CA_Axes());
+ _testAxes.push_back(GenKT_Axes(p, R0));
+ _testAxes.push_back(WTA_GenKT_Axes(p, R0));
+ _testAxes.push_back(GenET_GenKT_Axes(delta, p, R0));
+
+ _testAxes.push_back(OnePass_KT_Axes());
+ _testAxes.push_back(OnePass_AntiKT_Axes(R0));
+ _testAxes.push_back(OnePass_WTA_KT_Axes());
+ _testAxes.push_back(OnePass_GenKT_Axes(p, R0));
+ _testAxes.push_back(OnePass_WTA_GenKT_Axes(p, R0));
+ _testAxes.push_back(OnePass_GenET_GenKT_Axes(delta, p, R0));
+
+ _testAxes.push_back(Comb_GenKT_Axes(nExtra, p, R0));
+ _testAxes.push_back(Comb_WTA_GenKT_Axes(nExtra, p, R0));
+ _testAxes.push_back(Comb_GenET_GenKT_Axes(nExtra, delta, p, R0));
+
+ // manual axes (should be identical to kt axes)
+ _testAxes.push_back(Manual_Axes());
+ _testAxes.push_back(OnePass_Manual_Axes());
+
+ // these axes are not checked during make check since they do not give reliable results
+ _testAxes.push_back(OnePass_CA_Axes()); // not recommended
+ _testAxes.push_back(OnePass_WTA_CA_Axes()); // not recommended
+ _testAxes.push_back(MultiPass_Axes(NPass));
+ _testAxes.push_back(MultiPass_Manual_Axes(NPass));
+ int num_unchecked = 4; // number of unchecked axes
+
+ //
+ // Note: Njettiness::min_axes is not guarenteed to give a global
+ // minimum, only a local minimum, and different choices of the random
+ // number seed can give different results. For that reason,
+ // the one-pass minimization are recommended over min_axes.
+ //
+
+ // Getting a smaller list of recommended axes modes
+ // These are the ones that are more likely to give sensible results (and are all IRC safe)
+ vector _testRecommendedAxes;
+ _testRecommendedAxes.push_back(KT_Axes());
+ _testRecommendedAxes.push_back(WTA_KT_Axes());
+ _testRecommendedAxes.push_back(OnePass_KT_Axes());
+ _testRecommendedAxes.push_back(OnePass_WTA_KT_Axes());
+
+ // new axes options added in most recent version of Nsubjettiness
+ // these are separate from above since they should only be defined with a cutoff value for sensible results
+ vector _testAlgorithmRecommendedAxes;
+ _testAlgorithmRecommendedAxes.push_back(GenET_GenKT_Axes(1.0, 1.0, Rcutoff));
+ _testAlgorithmRecommendedAxes.push_back(GenET_GenKT_Axes(infinity, 1.0, Rcutoff));
+ _testAlgorithmRecommendedAxes.push_back(GenET_GenKT_Axes(1.0, 0.5, Rcutoff));
+ _testAlgorithmRecommendedAxes.push_back(OnePass_GenET_GenKT_Axes(1.0, 1.0, Rcutoff));
+ _testAlgorithmRecommendedAxes.push_back(OnePass_GenET_GenKT_Axes(infinity, 1.0, Rcutoff));
+ _testAlgorithmRecommendedAxes.push_back(OnePass_GenET_GenKT_Axes(1.0, 0.5, Rcutoff));
+
+ // Getting some of the measure modes to test
+ // (When applied to a single jet we won't test the cutoff measures,
+ // since cutoffs aren't typically helpful when applied to single jets)
+ // Note that we are calling measures by their MeasureDefinition
+ vector _testMeasures;
+ _testMeasures.push_back( NormalizedMeasure(1.0, 1.0, pt_R));
+ _testMeasures.push_back(UnnormalizedMeasure(1.0 , pt_R));
+ _testMeasures.push_back( NormalizedMeasure(2.0, 1.0, pt_R));
+ _testMeasures.push_back(UnnormalizedMeasure(2.0 , pt_R));
+
+ // When doing Njettiness as a jet algorithm, want to test the cutoff measures.
+ // (Since they are not senisible without a cutoff)
+ vector _testCutoffMeasures;
+ _testCutoffMeasures.push_back(UnnormalizedCutoffMeasure(1.0, Rcutoff, pt_R));
+ _testCutoffMeasures.push_back(UnnormalizedCutoffMeasure(2.0, Rcutoff, pt_R));
+ // new measures added in the most recent version of NSubjettiness
+ _testCutoffMeasures.push_back(ConicalMeasure(1.0, Rcutoff));
+ _testCutoffMeasures.push_back(ConicalMeasure(2.0, Rcutoff));
+ _testCutoffMeasures.push_back(OriginalGeometricMeasure(Rcutoff));
+ _testCutoffMeasures.push_back(ModifiedGeometricMeasure(Rcutoff));
+ _testCutoffMeasures.push_back(ConicalGeometricMeasure(1.0, 1.0, Rcutoff));
+ _testCutoffMeasures.push_back(ConicalGeometricMeasure(2.0, 1.0, Rcutoff));
+ _testCutoffMeasures.push_back(XConeMeasure(1.0, Rcutoff)); // Should be identical to ConicalGeometric
+ _testCutoffMeasures.push_back(XConeMeasure(2.0, Rcutoff));
+
+ /////// N-subjettiness /////////////////////////////
+
+ ////////
+ //
+ // Start of analysis. First find anti-kT jets, then find N-subjettiness values of those jets
+ //
+ ///////
+
+ // Initial clustering with anti-kt algorithm
+ JetAlgorithm algorithm = antikt_algorithm;
+ double jet_rad = 1.00; // jet radius for anti-kt algorithm
+ JetDefinition jetDef = JetDefinition(algorithm,jet_rad,E_scheme,Best);
+ ClusterSequence clust_seq(input_particles,jetDef);
+ vector antikt_jets = sorted_by_pt(clust_seq.inclusive_jets());
+
+ // clust_seq.delete_self_when_unused();
+ // small number to show equivalence of doubles
+ double epsilon = 0.0001;
+
+ for (int j = 0; j < 2; j++) { // Two hardest jets per event
+ if (antikt_jets[j].perp() < 200) continue;
+
+ cout << "-----------------------------------------------------------------------------------------------" << endl;
+ cout << "Analyzing Jet " << j + 1 << ":" << endl;
+ cout << "-----------------------------------------------------------------------------------------------" << endl;
+
+
+ ////////
+ //
+ // Basic checks of tau values first
+ //
+ // If you don't want to know the directions of the subjets,
+ // then you can use the simple function Nsubjettiness.
+ //
+ // Recommended usage for Nsubjettiness:
+ // AxesMode: kt_axes, wta_kt_axes, onepass_kt_axes, or onepass_wta_kt_axes
+ // MeasureMode: unnormalized_measure
+ // beta with kt_axes: 2.0
+ // beta with wta_kt_axes: anything greater than 0.0 (particularly good for 1.0)
+ // beta with onepass_kt_axes or onepass_wta_kt_axes: between 1.0 and 3.0
+ //
+ ///////
+
+
+ cout << "-----------------------------------------------------------------------------------------------" << endl;
+ cout << "Outputting N-subjettiness Values" << endl;
+ cout << "-----------------------------------------------------------------------------------------------" << endl;
+
+
+ // Now loop through all options
+ cout << setprecision(6) << right << fixed;
+ for (unsigned iM = 0; iM < _testMeasures.size(); iM++) {
+
+ cout << "-----------------------------------------------------------------------------------------------" << endl;
+ cout << _testMeasures[iM].description() << ":" << endl;
+ cout << setw(25) << "AxisMode"
+ << setw(14) << "tau1"
+ << setw(14) << "tau2"
+ << setw(14) << "tau3"
+ << setw(14) << "tau2/tau1"
+ << setw(14) << "tau3/tau2"
+ << endl;
+
+ for (unsigned iA = 0; iA < _testAxes.size(); iA++) {
+
+ // Current axes/measure modes and particles
+ const PseudoJet & my_jet = antikt_jets[j];
+ const vector particles = my_jet.constituents();
+ const AxesDefinition & axes_def = _testAxes[iA].def();
+ const MeasureDefinition & measure_def = _testMeasures[iM].def();
+
+ // This case doesn't work, so skip it.
+ // if (axes_def.givesRandomizedResults()) continue;
+
+ // define Nsubjettiness functions
+ Nsubjettiness nSub1(1, axes_def, measure_def);
+ Nsubjettiness nSub2(2, axes_def, measure_def);
+ Nsubjettiness nSub3(3, axes_def, measure_def);
+
+ // define manual axes when they are necessary (should be identical to KT_Axes)
+ if (axes_def.needsManualAxes()) {
+ JetDefinition manual_jetDef(fastjet::kt_algorithm,
+ fastjet::JetDefinition::max_allowable_R,
+ // new WinnerTakeAllRecombiner(),
+ fastjet::E_scheme,
+ fastjet::Best);
+
+ fastjet::ClusterSequence manual_clustSeq(particles, manual_jetDef);
+
+ nSub1.setAxes(manual_clustSeq.exclusive_jets(1));
+ nSub2.setAxes(manual_clustSeq.exclusive_jets(2));
+ nSub3.setAxes(manual_clustSeq.exclusive_jets(3));
+ }
+
+ // calculate Nsubjettiness values
+ double tau1 = nSub1(my_jet);
+ double tau2 = nSub2(my_jet);
+ double tau3 = nSub3(my_jet);
+
+ //These should only happen if the axes are not manual and are not multipass
+ double tau21, tau32;
+ if (!axes_def.needsManualAxes() && !axes_def.givesRandomizedResults()) {
+ // An entirely equivalent, but painful way to calculate is:
+ double tau1alt = measure_def(particles,axes_def(1,particles,&measure_def));
+ double tau2alt = measure_def(particles,axes_def(2,particles,&measure_def));
+ double tau3alt = measure_def(particles,axes_def(3,particles,&measure_def));
+ assert(tau1alt == tau1);
+ assert(tau2alt == tau2);
+ assert(tau3alt == tau3);
+
+ NsubjettinessRatio nSub21(2,1, axes_def, measure_def);
+ NsubjettinessRatio nSub32(3,2, axes_def, measure_def);
+ tau21 = nSub21(my_jet);
+ tau32 = nSub32(my_jet);
+
+ // Make sure calculations are consistent
+ if (!_testAxes[iA].def().givesRandomizedResults()) {
+ assert(abs(tau21 - tau2/tau1) < epsilon);
+ assert(abs(tau32 - tau3/tau2) < epsilon);
+ }
+ }
+ else {
+ tau21 = tau2/tau1;
+ tau32 = tau3/tau2;
+ }
+
+ string axesName = _testAxes[iA].short_description();
+ string left_hashtag;
+
+ // comment out with # because MultiPass uses random number seed, or because axes do not give reliable results (those at the end of axes vector)
+ if (_testAxes[iA].def().givesRandomizedResults() || iA >= (_testAxes.size() - num_unchecked)) left_hashtag = "#";
+ else left_hashtag = " ";
+
+ // Output results:
+ cout << std::right
+ << left_hashtag
+ << setw(23)
+ << axesName
+ << ":"
+ << setw(14) << tau1
+ << setw(14) << tau2
+ << setw(14) << tau3
+ << setw(14) << tau21
+ << setw(14) << tau32
+ << endl;
+ }
+ }
+
+ cout << "-----------------------------------------------------------------------------------------------" << endl;
+ cout << "Done Outputting N-subjettiness Values" << endl;
+ cout << "-----------------------------------------------------------------------------------------------" << endl;
+
+
+ ////////
+ //
+ // Finding axes/jets found by N-subjettiness partitioning
+ //
+ // This uses the component_results function to get the subjet information
+ //
+ ///////
+
+ cout << "-----------------------------------------------------------------------------------------------" << endl;
+ cout << "Outputting N-subjettiness Subjets" << endl;
+ cout << "-----------------------------------------------------------------------------------------------" << endl;
+
+
+ // Loop through all options, this time setting up jet finding
+ cout << setprecision(6) << left << fixed;
+ for (unsigned iM = 0; iM < _testMeasures.size(); iM++) {
+
+ for (unsigned iA = 0; iA < _testRecommendedAxes.size(); iA++) {
+
+ const PseudoJet & my_jet = antikt_jets[j];
+ const AxesDefinition & axes_def = _testRecommendedAxes[iA].def();
+ const MeasureDefinition & measure_def = _testMeasures[iM].def();
+
+ // This case doesn't work, so skip it.
+ if (axes_def.givesRandomizedResults()) continue;
+
+ // define Nsubjettiness functions
+ Nsubjettiness nSub1(1, axes_def, measure_def);
+ Nsubjettiness nSub2(2, axes_def, measure_def);
+ Nsubjettiness nSub3(3, axes_def, measure_def);
+
+ // get component results
+ TauComponents tau1comp = nSub1.component_result(my_jet);
+ TauComponents tau2comp = nSub2.component_result(my_jet);
+ TauComponents tau3comp = nSub3.component_result(my_jet);
+
+ vector jets1 = tau1comp.jets();
+ vector jets2 = tau2comp.jets();
+ vector jets3 = tau3comp.jets();
+
+ vector axes1 = tau1comp.axes();
+ vector axes2 = tau2comp.axes();
+ vector axes3 = tau3comp.axes();
+
+ cout << "-----------------------------------------------------------------------------------------------" << endl;
+ cout << measure_def.description() << ":" << endl;
+ cout << axes_def.description() << ":" << endl;
+
+ bool commentOut = false;
+ if (axes_def.givesRandomizedResults()) commentOut = true; // have to comment out min_axes, because it has random values
+
+ // This helper function tries to find out if the jets have tau information for printing
+ PrintJetsWithComponents(jets1,commentOut);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintJetsWithComponents(jets2,commentOut);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintJetsWithComponents(jets3,commentOut);
+
+ cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
+ cout << "Axes Used for Above Subjets" << endl;
+
+ PrintAxes(axes1,commentOut);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintAxes(axes2,commentOut);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintAxes(axes3,commentOut);
+
+ }
+ }
+
+ cout << "-----------------------------------------------------------------------------------------------" << endl;
+ cout << "Done Outputting N-subjettiness Subjets" << endl;
+ cout << "-----------------------------------------------------------------------------------------------" << endl;
+
+ }
+
+
+ ////////// the XCone Jet Algorithm ///////////////////////////
+
+ ////////
+ //
+ // We define a specific implementation of N-jettiness as a jet algorithm, which we call "XCone".
+ // This is the recommended version for all users.
+ //
+ // Recommended usage of XConePlugin is with beta = 2.0
+ // Beta = 1.0 is also useful as a recoil-free variant in the face of pile-up.
+ //
+ ///////
+
+ cout << "-----------------------------------------------------------------------------------------------" << endl;
+ cout << "Using the XCone Jet Algorithm" << endl;
+ cout << "-----------------------------------------------------------------------------------------------" << endl;
+
+ //create list of various values of beta
+ vector betalist;
+ betalist.push_back(1.0);
+ betalist.push_back(2.0);
+ unsigned int n_betas = betalist.size();
+
+ for (unsigned iB = 0; iB < n_betas; iB++) {
+
+ double beta = betalist[iB];
+
+ // define the plugins
+ XConePlugin xcone_plugin2(2, Rcutoff, beta);
+ XConePlugin xcone_plugin3(3, Rcutoff, beta);
+ XConePlugin xcone_plugin4(4, Rcutoff, beta);
+
+ // and the jet definitions
+ JetDefinition xcone_jetDef2(&xcone_plugin2);
+ JetDefinition xcone_jetDef3(&xcone_plugin3);
+ JetDefinition xcone_jetDef4(&xcone_plugin4);
+
+ // and the cluster sequences
+ ClusterSequence xcone_seq2(input_particles, xcone_jetDef2);
+ ClusterSequence xcone_seq3(input_particles, xcone_jetDef3);
+ ClusterSequence xcone_seq4(input_particles, xcone_jetDef4);
+
+ // and associated extras for more information
+ const NjettinessExtras * extras2 = njettiness_extras(xcone_seq2);
+ const NjettinessExtras * extras3 = njettiness_extras(xcone_seq3);
+ const NjettinessExtras * extras4 = njettiness_extras(xcone_seq4);
+
+ // and find the jets
+ vector xcone_jets2 = xcone_seq2.inclusive_jets();
+ vector xcone_jets3 = xcone_seq3.inclusive_jets();
+ vector xcone_jets4 = xcone_seq4.inclusive_jets();
+
+ // (alternative way to find the jets)
+ //vector xcone_jets2 = extras2->jets();
+ //vector xcone_jets3 = extras3->jets();
+ //vector xcone_jets4 = extras4->jets();
+
+ cout << "-----------------------------------------------------------------------------------------------" << endl;
+ cout << "Using beta = " << setprecision(2) << beta << ", Rcut = " << setprecision(2) << Rcutoff << endl;
+ cout << "-----------------------------------------------------------------------------------------------" << endl;
+
+ PrintJets(xcone_jets2);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintJets(xcone_jets3);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintJets(xcone_jets4);
+
+ // The axes might point in a different direction than the jets
+ // Using the NjettinessExtras pointer (ClusterSequence::Extras) to access that information
+ vector xcone_axes2 = extras2->axes();
+ vector xcone_axes3 = extras3->axes();
+ vector xcone_axes4 = extras4->axes();
+
+ cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
+ cout << "Axes Used for Above Jets" << endl;
+
+ PrintAxes(xcone_axes2);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintAxes(xcone_axes3);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintAxes(xcone_axes4);
+
+ bool calculateArea = false;
+ if (calculateArea) {
+ cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
+ cout << "Adding Area Information (quite slow)" << endl;
+
+ double ghost_maxrap = 5.0; // e.g. if particles go up to y=5
+ AreaDefinition area_def(active_area_explicit_ghosts, GhostedAreaSpec(ghost_maxrap));
+
+ // Defining cluster sequences with area
+ ClusterSequenceArea xcone_seq_area2(input_particles, xcone_jetDef2, area_def);
+ ClusterSequenceArea xcone_seq_area3(input_particles, xcone_jetDef3, area_def);
+ ClusterSequenceArea xcone_seq_area4(input_particles, xcone_jetDef4, area_def);
+
+ vector xcone_jets_area2 = xcone_seq_area2.inclusive_jets();
+ vector xcone_jets_area3 = xcone_seq_area3.inclusive_jets();
+ vector xcone_jets_area4 = xcone_seq_area4.inclusive_jets();
+
+ PrintJets(xcone_jets_area2);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintJets(xcone_jets_area3);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintJets(xcone_jets_area4);
+ }
+ }
+
+ cout << "-----------------------------------------------------------------------------------------------" << endl;
+ cout << "Done Using the XCone Jet Algorithm" << endl;
+ cout << "-----------------------------------------------------------------------------------------------" << endl;
+
+
+
+ ////////// N-jettiness as a jet algorithm ///////////////////////////
+
+ ////////
+ //
+ // The user can also defined N-jettiness as a jet algorithm more generally, using different choice
+ // for measures and for axis finding.
+ //
+ // Recommended usage of NjettinessPlugin (event-wide)
+ // AxesMode: wta_kt_axes or onepass_wta_kt_axes
+ // MeasureMode: unnormalized_measure
+ // beta with wta_kt_axes: anything greater than 0.0 (particularly good for 1.0)
+ // beta with onepass_wta_kt_axes: between 1.0 and 3.0
+ //
+ // Note that the user should find that the usage of Conical Geometric Measure beta = 1.0 with
+ // GenET_GenKT_Axes(std::numeric_limits::max(), 1.0, Rcutoff) should be identical to XCone beta = 1.0,
+ // and Conical Geometric Measure beta = 2.0 with GenET_GenKT_Axes(1.0, 0.5, Rcutoff) should be identical to
+ // XCone beta = 2.0.
+ //
+ ///////
+
+ cout << "-----------------------------------------------------------------------------------------------" << endl;
+ cout << "Using N-jettiness as a Jet Algorithm" << endl;
+ cout << "-----------------------------------------------------------------------------------------------" << endl;
+
+
+ for (unsigned iM = 0; iM < _testCutoffMeasures.size(); iM++) {
+
+ for (unsigned iA = 0; iA < _testAlgorithmRecommendedAxes.size(); iA++) {
+
+ const AxesDefinition & axes_def = _testAlgorithmRecommendedAxes[iA].def();
+ const MeasureDefinition & measure_def = _testCutoffMeasures[iM].def();
+
+ // define the plugins
+ NjettinessPlugin njet_plugin2(2, axes_def,measure_def);
+ NjettinessPlugin njet_plugin3(3, axes_def,measure_def);
+ NjettinessPlugin njet_plugin4(4, axes_def,measure_def);
+
+ // and the jet definitions
+ JetDefinition njet_jetDef2(&njet_plugin2);
+ JetDefinition njet_jetDef3(&njet_plugin3);
+ JetDefinition njet_jetDef4(&njet_plugin4);
+
+ // and the cluster sequences
+ ClusterSequence njet_seq2(input_particles, njet_jetDef2);
+ ClusterSequence njet_seq3(input_particles, njet_jetDef3);
+ ClusterSequence njet_seq4(input_particles, njet_jetDef4);
+
+ // and associated extras for more information
+ const NjettinessExtras * extras2 = njettiness_extras(njet_seq2);
+ const NjettinessExtras * extras3 = njettiness_extras(njet_seq3);
+ const NjettinessExtras * extras4 = njettiness_extras(njet_seq4);
+
+ // and find the jets
+ vector njet_jets2 = njet_seq2.inclusive_jets();
+ vector njet_jets3 = njet_seq3.inclusive_jets();
+ vector njet_jets4 = njet_seq4.inclusive_jets();
+
+ // (alternative way to find the jets)
+ //vector njet_jets2 = extras2->jets();
+ //vector njet_jets3 = extras3->jets();
+ //vector njet_jets4 = extras4->jets();
+
+ cout << "-----------------------------------------------------------------------------------------------" << endl;
+ cout << measure_def.description() << ":" << endl;
+ cout << axes_def.description() << ":" << endl;
+
+ PrintJets(njet_jets2);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintJets(njet_jets3);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintJets(njet_jets4);
+
+ // The axes might point in a different direction than the jets
+ // Using the NjettinessExtras pointer (ClusterSequence::Extras) to access that information
+ vector njet_axes2 = extras2->axes();
+ vector njet_axes3 = extras3->axes();
+ vector njet_axes4 = extras4->axes();
+
+ cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
+ cout << "Axes Used for Above Jets" << endl;
+
+ PrintAxes(njet_axes2);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintAxes(njet_axes3);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintAxes(njet_axes4);
+
+ bool calculateArea = false;
+ if (calculateArea) {
+ cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
+ cout << "Adding Area Information (quite slow)" << endl;
+
+ double ghost_maxrap = 5.0; // e.g. if particles go up to y=5
+ AreaDefinition area_def(active_area_explicit_ghosts, GhostedAreaSpec(ghost_maxrap));
+
+ // Defining cluster sequences with area
+ ClusterSequenceArea njet_seq_area2(input_particles, njet_jetDef2, area_def);
+ ClusterSequenceArea njet_seq_area3(input_particles, njet_jetDef3, area_def);
+ ClusterSequenceArea njet_seq_area4(input_particles, njet_jetDef4, area_def);
+
+ vector njet_jets_area2 = njet_seq_area2.inclusive_jets();
+ vector njet_jets_area3 = njet_seq_area3.inclusive_jets();
+ vector njet_jets_area4 = njet_seq_area4.inclusive_jets();
+
+ PrintJets(njet_jets_area2);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintJets(njet_jets_area3);
+ cout << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" << endl;
+ PrintJets(njet_jets_area4);
+ }
+
+ }
+ }
+
+ cout << "-----------------------------------------------------------------------------------------------" << endl;
+ cout << "Done Using N-jettiness as a Jet Algorithm" << endl;
+ cout << "-----------------------------------------------------------------------------------------------" << endl;
+
+
+
+ // Below are timing tests for the developers
+ double do_timing_test = false;
+ if (do_timing_test) {
+
+ clock_t clock_begin, clock_end;
+ double num_iter;
+
+ cout << setprecision(6);
+
+ num_iter = 1000;
+
+ double R0 = 0.5;
+ double beta = 2.0;
+ double N = 6;
+
+
+ // AKT
+ JetDefinition aktDef = JetDefinition(antikt_algorithm,R0,E_scheme,Best);
+
+ // XC
+ XConePlugin xconePlugin(N, R0, beta);
+ JetDefinition xconeDef = JetDefinition(&xconePlugin);
+
+ // pXC
+ PseudoXConePlugin pseudoxconePlugin(N, R0, beta);
+ JetDefinition pseudoxconeDef = JetDefinition(&pseudoxconePlugin);
+
+ //AKT
+ cout << "Timing for " << aktDef.description() << endl;
+ clock_begin = clock();
+ for (int t = 0; t < num_iter; t++) {
+ ClusterSequence clust_seq(input_particles,aktDef);
+ clust_seq.inclusive_jets();
+ }
+ clock_end = clock();
+ cout << (clock_end-clock_begin)/double(CLOCKS_PER_SEC*num_iter)*1000 << " ms per AKT"<< endl;
+
+ // XC
+ cout << "Timing for " << xconeDef.description() << endl;
+ clock_begin = clock();
+ for (int t = 0; t < num_iter; t++) {
+ ClusterSequence clust_seq(input_particles,xconeDef);
+ clust_seq.inclusive_jets();
+ }
+ clock_end = clock();
+ cout << (clock_end-clock_begin)/double(CLOCKS_PER_SEC*num_iter)*1000 << " ms per XCone"<< endl;
+
+ // pXC
+ cout << "Timing for " << pseudoxconePlugin.description() << endl;
+ clock_begin = clock();
+ for (int t = 0; t < num_iter; t++) {
+ ClusterSequence clust_seq(input_particles,pseudoxconeDef);
+ clust_seq.inclusive_jets();
+ }
+ clock_end = clock();
+ cout << (clock_end-clock_begin)/double(CLOCKS_PER_SEC*num_iter)*1000 << " ms per PseudoXCone"<< endl;
+
+
+ }
+}
+
+
+void PrintJets(const vector & jets, bool commentOut) {
+
+ string commentStr = "";
+ if (commentOut) commentStr = "#";
+
+ // gets extras information
+ if (jets.size() == 0) return;
+ const NjettinessExtras * extras = njettiness_extras(jets[0]);
+
+ // bool useExtras = true;
+ bool useExtras = (extras != NULL);
+ bool useArea = jets[0].has_area();
+ bool useConstit = jets[0].has_constituents();
+
+ // define nice tauN header
+ int N = jets.size();
+ stringstream ss(""); ss << "tau" << N; string tauName = ss.str();
+
+ cout << fixed << right;
+
+ cout << commentStr << setw(5) << "jet #" << " "
+ << setw(10) << "rap"
+ << setw(10) << "phi"
+ << setw(11) << "pt"
+ << setw(11) << "m"
+ << setw(11) << "e";
+ if (useConstit) cout << setw(11) << "constit";
+ if (useExtras) cout << setw(14) << tauName;
+ if (useArea) cout << setw(10) << "area";
+ cout << endl;
+
+ fastjet::PseudoJet total(0,0,0,0);
+ int total_constit = 0;
+
+ // print out individual jet information
+ for (unsigned i = 0; i < jets.size(); i++) {
+ cout << commentStr << setw(5) << i+1 << " "
+ << setprecision(4) << setw(10) << jets[i].rap()
+ << setprecision(4) << setw(10) << jets[i].phi()
+ << setprecision(4) << setw(11) << jets[i].perp()
+ << setprecision(4) << setw(11) << max(jets[i].m(),0.0) // needed to fix -0.0 issue on some compilers.
+ << setprecision(4) << setw(11) << jets[i].e();
+ if (useConstit) cout << setprecision(4) << setw(11) << jets[i].constituents().size();
+ if (useExtras) cout << setprecision(6) << setw(14) << max(extras->subTau(jets[i]),0.0);
+ if (useArea) cout << setprecision(4) << setw(10) << (jets[i].has_area() ? jets[i].area() : 0.0 );
+ cout << endl;
+ total += jets[i];
+ if (useConstit) total_constit += jets[i].constituents().size();
+ }
+
+ // print out total jet
+ if (useExtras) {
+ double beamTau = extras->beamTau();
+
+ if (beamTau > 0.0) {
+ cout << commentStr << setw(5) << " beam" << " "
+ << setw(10) << ""
+ << setw(10) << ""
+ << setw(11) << ""
+ << setw(11) << ""
+ << setw(11) << ""
+ << setw(11) << ""
+ << setw(14) << setprecision(6) << beamTau
+ << endl;
+ }
+
+ cout << commentStr << setw(5) << "total" << " "
+ << setprecision(4) << setw(10) << total.rap()
+ << setprecision(4) << setw(10) << total.phi()
+ << setprecision(4) << setw(11) << total.perp()
+ << setprecision(4) << setw(11) << max(total.m(),0.0) // needed to fix -0.0 issue on some compilers.
+ << setprecision(4) << setw(11) << total.e();
+ if (useConstit) cout << setprecision(4) << setw(11) << total_constit;
+ if (useExtras) cout << setprecision(6) << setw(14) << extras->totalTau();
+ if (useArea) cout << setprecision(4) << setw(10) << (total.has_area() ? total.area() : 0.0);
+ cout << endl;
+ }
+
+}
+
+
+void PrintAxes(const vector & jets, bool commentOut) {
+
+ string commentStr = "";
+ if (commentOut) commentStr = "#";
+
+ // gets extras information
+ if (jets.size() == 0) return;
+ const NjettinessExtras * extras = njettiness_extras(jets[0]);
+
+ // bool useExtras = true;
+ bool useExtras = (extras != NULL);
+ bool useArea = jets[0].has_area();
+
+ // define nice tauN header
+ int N = jets.size();
+ stringstream ss(""); ss << "tau" << N; string tauName = ss.str();
+
+ cout << fixed << right;
+
+ cout << commentStr << setw(5) << "jet #" << " "
+ << setw(10) << "rap"
+ << setw(10) << "phi"
+ << setw(11) << "pt"
+ << setw(11) << "m"
+ << setw(11) << "e";
+ if (useExtras) cout << setw(14) << tauName;
+ if (useArea) cout << setw(10) << "area";
+ cout << endl;
+
+ fastjet::PseudoJet total(0,0,0,0);
+
+ // print out individual jet information
+ for (unsigned i = 0; i < jets.size(); i++) {
+ cout << commentStr << setw(5) << i+1 << " "
+ << setprecision(4) << setw(10) << jets[i].rap()
+ << setprecision(4) << setw(10) << jets[i].phi()
+ << setprecision(4) << setw(11) << jets[i].perp()
+ << setprecision(4) << setw(11) << max(jets[i].m(),0.0) // needed to fix -0.0 issue on some compilers.
+ << setprecision(4) << setw(11) << jets[i].e();
+ if (useExtras) cout << setprecision(6) << setw(14) << max(extras->subTau(jets[i]),0.0);
+ if (useArea) cout << setprecision(4) << setw(10) << (jets[i].has_area() ? jets[i].area() : 0.0 );
+ cout << endl;
+ total += jets[i];
+ }
+
+ // print out total jet
+ if (useExtras) {
+ double beamTau = extras->beamTau();
+
+ if (beamTau > 0.0) {
+ cout << commentStr << setw(5) << " beam" << " "
+ << setw(10) << ""
+ << setw(10) << ""
+ << setw(11) << ""
+ << setw(11) << ""
+ << setw(11) << ""
+ << setw(14) << setprecision(6) << beamTau
+ << endl;
+ }
+
+ cout << commentStr << setw(5) << "total" << " "
+ << setprecision(4) << setw(10) << total.rap()
+ << setprecision(4) << setw(10) << total.phi()
+ << setprecision(4) << setw(11) << total.perp()
+ << setprecision(4) << setw(11) << max(total.m(),0.0) // needed to fix -0.0 issue on some compilers.
+ << setprecision(4) << setw(11) << total.e()
+ << setprecision(6) << setw(14) << extras->totalTau();
+ if (useArea) cout << setprecision(4) << setw(10) << (total.has_area() ? total.area() : 0.0);
+ cout << endl;
+ }
+
+}
+
+void PrintJetsWithComponents(const vector & jets, bool commentOut) {
+
+ string commentStr = "";
+ if (commentOut) commentStr = "#";
+
+ bool useArea = jets[0].has_area();
+
+ // define nice tauN header
+ int N = jets.size();
+ stringstream ss(""); ss << "tau" << N; string tauName = ss.str();
+
+ cout << fixed << right;
+
+ cout << commentStr << setw(5) << "jet #" << " "
+ << setw(10) << "rap"
+ << setw(10) << "phi"
+ << setw(11) << "pt"
+ << setw(11) << "m"
+ << setw(11) << "e";
+ if (jets[0].has_constituents()) cout << setw(11) << "constit";
+ cout << setw(14) << tauName;
+ if (useArea) cout << setw(10) << "area";
+ cout << endl;
+
+ fastjet::PseudoJet total(0,0,0,0);
+ double total_tau = 0;
+ int total_constit = 0;
+
+
+ // print out individual jet information
+ for (unsigned i = 0; i < jets.size(); i++) {
+ double thisTau = jets[i].structure_of().tau();
+
+ cout << commentStr << setw(5) << i+1 << " "
+ << setprecision(4) << setw(10) << jets[i].rap()
+ << setprecision(4) << setw(10) << jets[i].phi()
+ << setprecision(4) << setw(11) << jets[i].perp()
+ << setprecision(4) << setw(11) << max(jets[i].m(),0.0) // needed to fix -0.0 issue on some compilers.
+ << setprecision(4) << setw(11) << jets[i].e();
+ if (jets[i].has_constituents()) cout << setprecision(4) << setw(11) << jets[i].constituents().size();
+ cout << setprecision(6) << setw(14) << max(thisTau,0.0);
+ if (useArea) cout << setprecision(4) << setw(10) << (jets[i].has_area() ? jets[i].area() : 0.0 );
+ cout << endl;
+ total += jets[i];
+ total_tau += thisTau;
+ if (jets[i].has_constituents()) total_constit += jets[i].constituents().size();
+ }
+
+ cout << commentStr << setw(5) << "total" << " "
+ << setprecision(4) << setw(10) << total.rap()
+ << setprecision(4) << setw(10) << total.phi()
+ << setprecision(4) << setw(11) << total.perp()
+ << setprecision(4) << setw(11) << max(total.m(),0.0) // needed to fix -0.0 issue on some compilers.
+ << setprecision(4) << setw(11) << total.e();
+ if (jets[0].has_constituents()) cout << setprecision(4) << setw(11) << total_constit;
+ cout << setprecision(6) << setw(14) << total_tau;
+ if (useArea) cout << setprecision(4) << setw(10) << (total.has_area() ? total.area() : 0.0);
+ cout << endl;
+
+}
+
+
+
Property changes on: contrib/contribs/Nsubjettiness/tags/2.2.6/example_advanced_usage.cc
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: contrib/contribs/Nsubjettiness/tags/2.2.6/example_advanced_usage_ee.ref
===================================================================
--- contrib/contribs/Nsubjettiness/tags/2.2.6/example_advanced_usage_ee.ref (revision 0)
+++ contrib/contribs/Nsubjettiness/tags/2.2.6/example_advanced_usage_ee.ref (revision 1318)
@@ -0,0 +1,1482 @@
+# read an event with 70 particles
+#--------------------------------------------------------------------------
+# FastJet release 3.1.2
+# M. Cacciari, G.P. Salam and G. Soyez
+# A software package for jet finding and analysis at colliders
+# http://fastjet.fr
+#
+# Please cite EPJC72(2012)1896 [arXiv:1111.6097] if you use this package
+# for scientific work and optionally PLB641(2006)57 [hep-ph/0512210].
+#
+# FastJet is provided without warranty under the terms of the GNU GPLv2.
+# It uses T. Chan's closest pair algorithm, S. Fortune's Voronoi code
+# and 3rd party plugin jet algorithms. See COPYING file for details.
+#--------------------------------------------------------------------------
+-----------------------------------------------------------------------------------------------
+Analyzing Jet 1:
+-----------------------------------------------------------------------------------------------
+-----------------------------------------------------------------------------------------------
+Outputting N-subjettiness Values
+-----------------------------------------------------------------------------------------------
+-----------------------------------------------------------------------------------------------
+Normalized Measure (beta = 1.00, R0 = 1.00):
+ AxisMode tau1 tau2 tau3 tau2/tau1 tau3/tau2
+ KT: 0.148841 0.104154 0.094991 0.699766 0.912021
+ CA: 0.148841 0.109441 0.099409 0.735288 0.908331
+ AKT0.20: 0.153345 0.107126 0.089416 0.698597 0.834676
+ WTA KT: 0.150919 0.110314 0.078502 0.730945 0.711624
+ WTA CA: 0.160755 0.105976 0.097731 0.659240 0.922197
+ WTA, GenKT Axes: 0.160755 0.105976 0.084861 0.659240 0.800756
+ GenET, GenKT Axes: 0.160335 0.105923 0.085033 0.660635 0.802785
+ OnePass KT: 0.144939 0.102572 0.088333 0.707690 0.861186
+ OnePassAKT0.20: 0.144510 0.102622 0.078714 0.710137 0.767031
+ OnePass WTA KT: 0.144930 0.110314 0.078502 0.761153 0.711624
+ OnePass WTA GenKT: 0.144912 0.102070 0.078720 0.704358 0.771234
+ OnePass GenET, GenKT: 0.144927 0.102166 0.078722 0.704952 0.770530
+ N Choose M WTA GenKT: 0.150660 0.105976 0.078402 0.703412 0.739808
+ N Choose M GenET GenKT: 0.150660 0.105923 0.078442 0.703060 0.740552
+# OnePass CA: 0.144939 0.105944 0.093342 0.730956 0.881057
+# OnePass WTA CA: 0.144912 0.102070 0.089811 0.704358 0.879900
+# MultiPass: 0.144904 0.102182 0.082353 0.703780 0.783542
+-----------------------------------------------------------------------------------------------
+Unnormalized Measure (beta = 1.00, in GeV):
+ AxisMode tau1 tau2 tau3 tau2/tau1 tau3/tau2
+ KT: 4.561444 3.191943 2.911120 0.699766 0.912021
+ CA: 4.561444 3.353974 3.046519 0.735288 0.908331
+ AKT0.20: 4.699471 3.283038 2.740273 0.698597 0.834676
+ WTA KT: 4.625141 3.380722 2.405802 0.730945 0.711624
+ WTA CA: 4.926567 3.247790 2.995103 0.659240 0.922197
+ WTA, GenKT Axes: 4.926567 3.247790 2.600686 0.659240 0.800756
+ GenET, GenKT Axes: 4.913705 3.246164 2.605972 0.660635 0.802785
+ OnePass KT: 4.440355 3.143452 2.705648 0.707928 0.860725
+ OnePassAKT0.20: 4.428705 3.144365 2.412228 0.709997 0.767159
+ OnePass WTA KT: 4.440350 3.380722 2.405802 0.761364 0.711624
+ OnePass WTA GenKT: 4.440363 3.128080 2.412166 0.704465 0.771133
+ OnePass GenET, GenKT: 4.440348 3.131033 2.412185 0.705132 0.770412
+ N Choose M WTA GenKT: 4.617196 3.247790 2.402743 0.703412 0.739808
+ N Choose M GenET GenKT: 4.617196 3.246164 2.403954 0.703060 0.740552
+# OnePass CA: 4.440355 3.246795 2.858601 0.731202 0.880438
+# OnePass WTA CA: 4.440363 3.128080 2.752396 0.704465 0.879900
+# MultiPass: 4.423144 3.143452 2.526025 0.707482 0.865557
+-----------------------------------------------------------------------------------------------
+Normalized Measure (beta = 2.00, R0 = 1.00):
+ AxisMode tau1 tau2 tau3 tau2/tau1 tau3/tau2
+ KT: 0.032935 0.016233 0.012668 0.492898 0.780389
+ CA: 0.032935 0.017113 0.013689 0.519599 0.799946
+ AKT0.20: 0.042292 0.021336 0.018957 0.504503 0.888502
+ WTA KT: 0.033624 0.025977 0.012827 0.772588 0.493785
+ WTA CA: 0.046941 0.020750 0.018614 0.442055 0.897043
+ WTA, GenKT Axes: 0.046941 0.020750 0.017741 0.442055 0.854951
+ GenET, GenKT Axes: 0.046696 0.020766 0.017823 0.444708 0.858287
+ OnePass KT: 0.032935 0.016233 0.012668 0.492898 0.780389
+ OnePassAKT0.20: 0.032973 0.016503 0.015398 0.500503 0.933071
+ OnePass WTA KT: 0.032971 0.019218 0.011497 0.582879 0.598221
+ OnePass WTA GenKT: 0.032970 0.016777 0.013895 0.508862 0.828238
+ OnePass GenET, GenKT: 0.032970 0.016782 0.013929 0.509012 0.829996
+ N Choose M WTA GenKT: 0.033588 0.020435 0.012825 0.608416 0.627607
+ N Choose M GenET GenKT: 0.033588 0.020435 0.012752 0.608406 0.624014
+# OnePass CA: 0.032935 0.017113 0.012752 0.519599 0.745164
+# OnePass WTA CA: 0.032970 0.016777 0.012436 0.508862 0.741266
+# MultiPass: 0.032927 0.016233 0.010911 0.493024 0.707530
+-----------------------------------------------------------------------------------------------
+Unnormalized Measure (beta = 2.00, in GeV):
+ AxisMode tau1 tau2 tau3 tau2/tau1 tau3/tau2
+ KT: 1.009327 0.497495 0.388240 0.492898 0.780389
+ CA: 1.009327 0.524445 0.419528 0.519599 0.799946
+ AKT0.20: 1.296086 0.653880 0.580973 0.504503 0.888502
+ WTA KT: 1.030444 0.796108 0.393106 0.772588 0.493785
+ WTA CA: 1.438569 0.635927 0.570454 0.442055 0.897043
+ WTA, GenKT Axes: 1.438569 0.635927 0.543687 0.442055 0.854951
+ GenET, GenKT Axes: 1.431061 0.636404 0.546218 0.444708 0.858287
+ OnePass KT: 1.009327 0.497495 0.388240 0.492898 0.780389
+ OnePassAKT0.20: 1.010495 0.505756 0.471907 0.500503 0.933071
+ OnePass WTA KT: 1.010430 0.588958 0.352327 0.582879 0.598221
+ OnePass WTA GenKT: 1.010399 0.506898 0.425842 0.501681 0.840094
+ OnePass GenET, GenKT: 1.010398 0.506487 0.426871 0.501274 0.842808
+ N Choose M WTA GenKT: 1.029351 0.626274 0.393054 0.608416 0.627607
+ N Choose M GenET GenKT: 1.029351 0.626264 0.390797 0.608406 0.624014
+# OnePass CA: 1.009327 0.524445 0.390798 0.519599 0.745164
+# OnePass WTA CA: 1.010399 0.506898 0.381125 0.501681 0.751876
+# MultiPass: 1.009075 0.497495 0.337369 0.493003 0.688048
+-----------------------------------------------------------------------------------------------
+Done Outputting N-subjettiness Values
+-----------------------------------------------------------------------------------------------
+-----------------------------------------------------------------------------------------------
+Outputting N-subjettiness Subjets
+-----------------------------------------------------------------------------------------------
+-----------------------------------------------------------------------------------------------
+Normalized Measure (beta = 1.00, R0 = 1.00):
+KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.148841
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.148841
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -0.9401 1.9959 4.6202 2.1564 7.5225 6 0.038773
+ 2 -1.2868 2.4321 11.5223 2.8364 23.1240 8 0.065380
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.104154
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.3256 2.2483 4.0177 0.7610 8.2394 2 0.022999
+ 2 -1.2664 2.5288 7.6079 1.5913 14.8845 6 0.033218
+ 3 -0.9401 1.9959 4.6202 2.1564 7.5225 6 0.038773
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.094991
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.9401 1.9959 4.6202 2.1564 7.5225
+ 2 -1.2868 2.4321 11.5223 2.8364 23.1240
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3256 2.2483 4.0177 0.7610 8.2394
+ 2 -1.2664 2.5288 7.6079 1.5913 14.8845
+ 3 -0.9401 1.9959 4.6202 2.1564 7.5225
+-----------------------------------------------------------------------------------------------
+Normalized Measure (beta = 1.00, R0 = 1.00):
+Winner-Take-All KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.150919
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.150919
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -1.2664 2.5288 7.6079 1.5913 14.8845 6 0.028034
+ 2 -1.1119 2.1132 8.5695 3.7569 15.7619 8 0.082280
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.110314
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -0.9078 1.7328 2.0436 1.2147 3.4260 4 0.008939
+ 2 -1.1825 2.2265 6.7150 1.6408 12.3359 4 0.041529
+ 3 -1.2664 2.5288 7.6079 1.5913 14.8845 6 0.028034
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.078502
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -1.2026 2.2995 16.4536 0.0000 29.8564
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3484 2.5160 7.6695 0.0000 15.7640
+ 2 -1.2026 2.2995 8.7840 0.0000 15.9394
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.9302 1.7670 2.0532 0.0000 3.0075
+ 2 -1.2026 2.2995 6.7308 0.0000 12.2137
+ 3 -1.3484 2.5160 7.6695 0.0000 15.7640
+-----------------------------------------------------------------------------------------------
+Normalized Measure (beta = 1.00, R0 = 1.00):
+One-Pass Minimization from KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.144939
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.144939
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -0.9401 1.9959 4.6202 2.1564 7.5225 6 0.037048
+ 2 -1.2868 2.4321 11.5223 2.8364 23.1240 8 0.065524
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.102572
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.2592 2.1969 4.2690 2.0912 9.0476 3 0.032121
+ 2 -1.2664 2.5288 7.6079 1.5913 14.8845 6 0.029157
+ 3 -0.9562 2.0308 4.3301 1.2133 6.7143 5 0.027055
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.088333
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -1.2831 2.3754 15.7767 0.0000 30.6464
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.9839 2.0902 4.9347 0.0000 7.5225
+ 2 -1.3238 2.4394 11.4936 0.0000 23.1240
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.2983 2.2620 4.5974 0.0000 9.0476
+ 2 -1.3254 2.4939 7.3878 0.0000 14.8845
+ 3 -0.9805 2.0952 4.4160 0.0000 6.7143
+-----------------------------------------------------------------------------------------------
+Normalized Measure (beta = 1.00, R0 = 1.00):
+One-Pass Minimization from Winner-Take-All KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.144930
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.144930
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -1.2664 2.5288 7.6079 1.5913 14.8845 6 0.028034
+ 2 -1.1119 2.1132 8.5695 3.7569 15.7619 8 0.082280
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.110314
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -0.9078 1.7328 2.0436 1.2147 3.4260 4 0.008939
+ 2 -1.1825 2.2265 6.7150 1.6408 12.3359 4 0.041529
+ 3 -1.2664 2.5288 7.6079 1.5913 14.8845 6 0.028034
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.078502
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -1.2833 2.3756 15.7739 0.0000 30.6464
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3484 2.5160 7.6695 0.0000 15.7640
+ 2 -1.2026 2.2995 8.7840 0.0000 15.9394
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.9302 1.7670 2.0532 0.0000 3.0075
+ 2 -1.2026 2.2995 6.7308 0.0000 12.2137
+ 3 -1.3484 2.5160 7.6695 0.0000 15.7640
+-----------------------------------------------------------------------------------------------
+Unnormalized Measure (beta = 1.00, in GeV):
+KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464 14 4.561444
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 4.561444
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -0.9401 1.9959 4.6202 2.1564 7.5225 6 1.188268
+ 2 -1.2868 2.4321 11.5223 2.8364 23.1240 8 2.003675
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 3.191943
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.3256 2.2483 4.0177 0.7610 8.2394 2 0.704835
+ 2 -1.2664 2.5288 7.6079 1.5913 14.8845 6 1.018017
+ 3 -0.9401 1.9959 4.6202 2.1564 7.5225 6 1.188268
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 2.911120
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.9401 1.9959 4.6202 2.1564 7.5225
+ 2 -1.2868 2.4321 11.5223 2.8364 23.1240
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3256 2.2483 4.0177 0.7610 8.2394
+ 2 -1.2664 2.5288 7.6079 1.5913 14.8845
+ 3 -0.9401 1.9959 4.6202 2.1564 7.5225
+-----------------------------------------------------------------------------------------------
+Unnormalized Measure (beta = 1.00, in GeV):
+Winner-Take-All KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464 14 4.625141
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 4.625141
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -1.2664 2.5288 7.6079 1.5913 14.8845 6 0.859131
+ 2 -1.1119 2.1132 8.5695 3.7569 15.7619 8 2.521592
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 3.380722
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -0.9078 1.7328 2.0436 1.2147 3.4260 4 0.273942
+ 2 -1.1825 2.2265 6.7150 1.6408 12.3359 4 1.272730
+ 3 -1.2664 2.5288 7.6079 1.5913 14.8845 6 0.859131
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 2.405802
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -1.2026 2.2995 16.4536 0.0000 29.8564
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3484 2.5160 7.6695 0.0000 15.7640
+ 2 -1.2026 2.2995 8.7840 0.0000 15.9394
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.9302 1.7670 2.0532 0.0000 3.0075
+ 2 -1.2026 2.2995 6.7308 0.0000 12.2137
+ 3 -1.3484 2.5160 7.6695 0.0000 15.7640
+-----------------------------------------------------------------------------------------------
+Unnormalized Measure (beta = 1.00, in GeV):
+One-Pass Minimization from KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464 14 4.440355
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 4.440355
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -0.9401 1.9959 4.6202 2.1564 7.5225 6 1.135378
+ 2 -1.2868 2.4321 11.5223 2.8364 23.1240 8 2.008074
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 3.143452
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.2592 2.1969 4.2690 2.0912 9.0476 3 0.983013
+ 2 -1.2664 2.5288 7.6079 1.5913 14.8845 6 0.893539
+ 3 -0.9562 2.0308 4.3301 1.2133 6.7143 5 0.829097
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 2.705648
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -1.2841 2.3769 15.7636 0.0000 30.6464
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.9839 2.0902 4.9347 0.0000 7.5225
+ 2 -1.3238 2.4394 11.4936 0.0000 23.1240
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.2934 2.2639 4.6167 0.0000 9.0476
+ 2 -1.3254 2.4939 7.3878 0.0000 14.8845
+ 3 -0.9805 2.0953 4.4161 0.0000 6.7143
+-----------------------------------------------------------------------------------------------
+Unnormalized Measure (beta = 1.00, in GeV):
+One-Pass Minimization from Winner-Take-All KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464 14 4.440350
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 4.440350
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -1.2664 2.5288 7.6079 1.5913 14.8845 6 0.859131
+ 2 -1.1119 2.1132 8.5695 3.7569 15.7619 8 2.521592
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 3.380722
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -0.9078 1.7328 2.0436 1.2147 3.4260 4 0.273942
+ 2 -1.1825 2.2265 6.7150 1.6408 12.3359 4 1.272730
+ 3 -1.2664 2.5288 7.6079 1.5913 14.8845 6 0.859131
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 2.405802
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -1.2841 2.3769 15.7636 0.0000 30.6464
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3484 2.5160 7.6695 0.0000 15.7640
+ 2 -1.2026 2.2995 8.7840 0.0000 15.9394
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.9302 1.7670 2.0532 0.0000 3.0075
+ 2 -1.2026 2.2995 6.7308 0.0000 12.2137
+ 3 -1.3484 2.5160 7.6695 0.0000 15.7640
+-----------------------------------------------------------------------------------------------
+Normalized Measure (beta = 2.00, R0 = 1.00):
+KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.032935
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.032935
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -0.9401 1.9959 4.6202 2.1564 7.5225 6 0.007045
+ 2 -1.2868 2.4321 11.5223 2.8364 23.1240 8 0.009188
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.016233
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.3256 2.2483 4.0177 0.7610 8.2394 2 0.001999
+ 2 -1.2664 2.5288 7.6079 1.5913 14.8845 6 0.003625
+ 3 -0.9401 1.9959 4.6202 2.1564 7.5225 6 0.007045
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.012668
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.9401 1.9959 4.6202 2.1564 7.5225
+ 2 -1.2868 2.4321 11.5223 2.8364 23.1240
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3256 2.2483 4.0177 0.7610 8.2394
+ 2 -1.2664 2.5288 7.6079 1.5913 14.8845
+ 3 -0.9401 1.9959 4.6202 2.1564 7.5225
+-----------------------------------------------------------------------------------------------
+Normalized Measure (beta = 2.00, R0 = 1.00):
+Winner-Take-All KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.033624
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.033624
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -1.2664 2.5288 7.6079 1.5913 14.8845 6 0.004145
+ 2 -1.1119 2.1132 8.5695 3.7569 15.7619 8 0.021832
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.025977
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -0.9078 1.7328 2.0436 1.2147 3.4260 4 0.001802
+ 2 -1.1825 2.2265 6.7150 1.6408 12.3359 4 0.006880
+ 3 -1.2664 2.5288 7.6079 1.5913 14.8845 6 0.004145
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.012827
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -1.2026 2.2995 16.4536 0.0000 29.8564
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3484 2.5160 7.6695 0.0000 15.7640
+ 2 -1.2026 2.2995 8.7840 0.0000 15.9394
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.9302 1.7670 2.0532 0.0000 3.0075
+ 2 -1.2026 2.2995 6.7308 0.0000 12.2137
+ 3 -1.3484 2.5160 7.6695 0.0000 15.7640
+-----------------------------------------------------------------------------------------------
+Normalized Measure (beta = 2.00, R0 = 1.00):
+One-Pass Minimization from KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.032935
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.032935
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -0.9401 1.9959 4.6202 2.1564 7.5225 6 0.007045
+ 2 -1.2868 2.4321 11.5223 2.8364 23.1240 8 0.009188
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.016233
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.3256 2.2483 4.0177 0.7610 8.2394 2 0.001999
+ 2 -1.2664 2.5288 7.6079 1.5913 14.8845 6 0.003625
+ 3 -0.9401 1.9959 4.6202 2.1564 7.5225 6 0.007045
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.012668
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -1.2506 2.3085 16.2201 0.0000 30.6464
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.0141 1.9959 4.8226 0.0000 7.5225
+ 2 -1.3122 2.4321 11.6100 0.0000 23.1240
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3409 2.2483 4.0349 0.0000 8.2394
+ 2 -1.2848 2.5288 7.6518 0.0000 14.8845
+ 3 -1.0141 1.9959 4.8226 0.0000 7.5225
+-----------------------------------------------------------------------------------------------
+Normalized Measure (beta = 2.00, R0 = 1.00):
+One-Pass Minimization from Winner-Take-All KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.032971
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.032971
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -1.2507 2.4714 10.1069 2.1322 19.5170 7 0.005562
+ 2 -1.0778 2.0355 6.0829 3.0159 11.1294 7 0.013656
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.019218
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -0.9078 1.7328 2.0436 1.2147 3.4260 4 0.001603
+ 2 -1.1825 2.2265 6.7150 1.6408 12.3359 4 0.006256
+ 3 -1.2664 2.5288 7.6079 1.5913 14.8845 6 0.003637
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.011497
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -1.2539 2.3154 16.1753 0.0000 30.6464
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.2685 2.4666 10.1739 0.0000 19.5170
+ 2 -1.1807 2.0737 6.2459 0.0000 11.1294
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.9544 1.7716 2.2976 0.0000 3.4260
+ 2 -1.2188 2.2176 6.7068 0.0000 12.3359
+ 3 -1.2910 2.5224 7.6108 0.0000 14.8845
+-----------------------------------------------------------------------------------------------
+Unnormalized Measure (beta = 2.00, in GeV):
+KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464 14 1.009327
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 1.009327
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -0.9401 1.9959 4.6202 2.1564 7.5225 6 0.215907
+ 2 -1.2868 2.4321 11.5223 2.8364 23.1240 8 0.281588
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.497495
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.3256 2.2483 4.0177 0.7610 8.2394 2 0.061250
+ 2 -1.2664 2.5288 7.6079 1.5913 14.8845 6 0.111082
+ 3 -0.9401 1.9959 4.6202 2.1564 7.5225 6 0.215907
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.388240
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.9401 1.9959 4.6202 2.1564 7.5225
+ 2 -1.2868 2.4321 11.5223 2.8364 23.1240
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3256 2.2483 4.0177 0.7610 8.2394
+ 2 -1.2664 2.5288 7.6079 1.5913 14.8845
+ 3 -0.9401 1.9959 4.6202 2.1564 7.5225
+-----------------------------------------------------------------------------------------------
+Unnormalized Measure (beta = 2.00, in GeV):
+Winner-Take-All KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464 14 1.030444
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 1.030444
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -1.2664 2.5288 7.6079 1.5913 14.8845 6 0.127021
+ 2 -1.1119 2.1132 8.5695 3.7569 15.7619 8 0.669087
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.796108
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -0.9078 1.7328 2.0436 1.2147 3.4260 4 0.055227
+ 2 -1.1825 2.2265 6.7150 1.6408 12.3359 4 0.210858
+ 3 -1.2664 2.5288 7.6079 1.5913 14.8845 6 0.127021
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.393106
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -1.2026 2.2995 16.4536 0.0000 29.8564
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3484 2.5160 7.6695 0.0000 15.7640
+ 2 -1.2026 2.2995 8.7840 0.0000 15.9394
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.9302 1.7670 2.0532 0.0000 3.0075
+ 2 -1.2026 2.2995 6.7308 0.0000 12.2137
+ 3 -1.3484 2.5160 7.6695 0.0000 15.7640
+-----------------------------------------------------------------------------------------------
+Unnormalized Measure (beta = 2.00, in GeV):
+One-Pass Minimization from KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464 14 1.009327
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 1.009327
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -0.9401 1.9959 4.6202 2.1564 7.5225 6 0.215907
+ 2 -1.2868 2.4321 11.5223 2.8364 23.1240 8 0.281588
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.497495
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.3256 2.2483 4.0177 0.7610 8.2394 2 0.061250
+ 2 -1.2664 2.5288 7.6079 1.5913 14.8845 6 0.111082
+ 3 -0.9401 1.9959 4.6202 2.1564 7.5225 6 0.215907
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.388240
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -1.2506 2.3085 16.2201 0.0000 30.6464
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.0141 1.9959 4.8226 0.0000 7.5225
+ 2 -1.3122 2.4321 11.6100 0.0000 23.1240
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3409 2.2483 4.0349 0.0000 8.2394
+ 2 -1.2848 2.5288 7.6518 0.0000 14.8845
+ 3 -1.0141 1.9959 4.8226 0.0000 7.5225
+-----------------------------------------------------------------------------------------------
+Unnormalized Measure (beta = 2.00, in GeV):
+One-Pass Minimization from Winner-Take-All KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464 14 1.010430
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 1.010430
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -1.2507 2.4714 10.1069 2.1322 19.5170 7 0.170440
+ 2 -1.0778 2.0355 6.0829 3.0159 11.1294 7 0.418518
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.588958
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -0.9078 1.7328 2.0436 1.2147 3.4260 4 0.049139
+ 2 -1.1825 2.2265 6.7150 1.6408 12.3359 4 0.191738
+ 3 -1.2664 2.5288 7.6079 1.5913 14.8845 6 0.111450
+total -1.1820 2.3085 15.8307 6.6742 30.6464 14 0.352327
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -1.2539 2.3154 16.1753 0.0000 30.6464
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.2685 2.4666 10.1739 0.0000 19.5170
+ 2 -1.1807 2.0737 6.2459 0.0000 11.1294
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.9544 1.7716 2.2976 0.0000 3.4260
+ 2 -1.2188 2.2176 6.7068 0.0000 12.3359
+ 3 -1.2910 2.5224 7.6108 0.0000 14.8845
+-----------------------------------------------------------------------------------------------
+Done Outputting N-subjettiness Subjets
+-----------------------------------------------------------------------------------------------
+-----------------------------------------------------------------------------------------------
+Analyzing Jet 2:
+-----------------------------------------------------------------------------------------------
+-----------------------------------------------------------------------------------------------
+Outputting N-subjettiness Values
+-----------------------------------------------------------------------------------------------
+-----------------------------------------------------------------------------------------------
+Normalized Measure (beta = 1.00, R0 = 1.00):
+ AxisMode tau1 tau2 tau3 tau2/tau1 tau3/tau2
+ KT: 0.205212 0.171288 0.128154 0.834690 0.748177
+ CA: 0.205212 0.190261 0.167907 0.927148 0.882509
+ AKT0.20: 0.216663 0.165031 0.110982 0.761691 0.672492
+ WTA KT: 0.214875 0.156737 0.107850 0.729435 0.688097
+ WTA CA: 0.218953 0.193562 0.178665 0.884035 0.923037
+ WTA, GenKT Axes: 0.218953 0.175569 0.138897 0.801859 0.791125
+ GenET, GenKT Axes: 0.224179 0.172390 0.137832 0.768985 0.799532
+ OnePass KT: 0.205212 0.163776 0.117171 0.798083 0.715437
+ OnePassAKT0.20: 0.206058 0.165031 0.110982 0.800893 0.672492
+ OnePass WTA KT: 0.205843 0.156737 0.107850 0.761442 0.688097
+ OnePass WTA GenKT: 0.205378 0.163688 0.138897 0.797007 0.848547
+ OnePass GenET, GenKT: 0.205193 0.163684 0.137832 0.797708 0.842060
+ N Choose M WTA GenKT: 0.214501 0.156038 0.106742 0.727449 0.684073
+ N Choose M GenET GenKT: 0.214501 0.156038 0.106742 0.727449 0.684073
+# OnePass CA: 0.205212 0.190261 0.167907 0.927148 0.882509
+# OnePass WTA CA: 0.205378 0.193562 0.178665 0.942464 0.923037
+# MultiPass: 0.205212 0.160753 0.117171 0.772163 0.723257
+-----------------------------------------------------------------------------------------------
+Unnormalized Measure (beta = 1.00, in GeV):
+ AxisMode tau1 tau2 tau3 tau2/tau1 tau3/tau2
+ KT: 2.787928 2.327056 1.741051 0.834690 0.748177
+ CA: 2.787928 2.584822 2.281128 0.927148 0.882509
+ AKT0.20: 2.943507 2.242044 1.507757 0.761691 0.672492
+ WTA KT: 2.919210 2.129374 1.465216 0.729435 0.688097
+ WTA CA: 2.974609 2.629659 2.427272 0.884035 0.923037
+ WTA, GenKT Axes: 2.974609 2.385218 1.887005 0.801859 0.791125
+ GenET, GenKT Axes: 3.045612 2.342031 1.872528 0.768985 0.799532
+ OnePass KT: 2.787928 2.222914 1.591847 0.797335 0.716108
+ OnePassAKT0.20: 2.799145 2.242044 1.507757 0.800974 0.672492
+ OnePass WTA KT: 2.796502 2.129374 1.465216 0.761442 0.688097
+ OnePass WTA GenKT: 2.790197 2.222900 1.887005 0.796682 0.848893
+ OnePass GenET, GenKT: 2.787672 2.222909 1.872528 0.797407 0.842377
+ N Choose M WTA GenKT: 2.914128 2.119878 1.450151 0.727449 0.684073
+ N Choose M GenET GenKT: 2.914128 2.119878 1.450151 0.727449 0.684073
+# OnePass CA: 2.787928 2.584822 2.281128 0.927148 0.882509
+# OnePass WTA CA: 2.790197 2.629659 2.427272 0.942464 0.923037
+# MultiPass: 2.787423 2.197284 1.591847 0.788606 0.716703
+-----------------------------------------------------------------------------------------------
+Normalized Measure (beta = 2.00, R0 = 1.00):
+ AxisMode tau1 tau2 tau3 tau2/tau1 tau3/tau2
+ KT: 0.064408 0.043207 0.031935 0.670836 0.739099
+ CA: 0.064408 0.051663 0.039595 0.802120 0.766410
+ AKT0.20: 0.070694 0.051361 0.035303 0.726516 0.687356
+ WTA KT: 0.073033 0.048932 0.035304 0.670001 0.721485
+ WTA CA: 0.068325 0.054502 0.043333 0.797679 0.795080
+ WTA, GenKT Axes: 0.068325 0.053915 0.044308 0.789085 0.821828
+ GenET, GenKT Axes: 0.070456 0.052154 0.043623 0.740234 0.836430
+ OnePass KT: 0.064408 0.042188 0.031658 0.655001 0.750411
+ OnePassAKT0.20: 0.064423 0.050682 0.034383 0.786717 0.678412
+ OnePass WTA KT: 0.064419 0.042202 0.031749 0.655117 0.752312
+ OnePass WTA GenKT: 0.064454 0.042139 0.043498 0.653791 1.032241
+ OnePass GenET, GenKT: 0.064457 0.041974 0.043518 0.651193 1.036788
+ N Choose M WTA GenKT: 0.068325 0.046218 0.035405 0.676446 0.766036
+ N Choose M GenET GenKT: 0.070456 0.045965 0.035405 0.652396 0.770257
+# OnePass CA: 0.064408 0.051663 0.039595 0.802120 0.766410
+# OnePass WTA CA: 0.064454 0.054502 0.043333 0.845596 0.795080
+# MultiPass: 0.064408 0.042188 0.029258 0.654438 0.684684
+-----------------------------------------------------------------------------------------------
+Unnormalized Measure (beta = 2.00, in GeV):
+ AxisMode tau1 tau2 tau3 tau2/tau1 tau3/tau2
+ KT: 0.875029 0.587001 0.433851 0.670836 0.739099
+ CA: 0.875029 0.701878 0.537926 0.802120 0.766410
+ AKT0.20: 0.960427 0.697766 0.479613 0.726516 0.687356
+ WTA KT: 0.992196 0.664772 0.479623 0.670001 0.721485
+ WTA CA: 0.928243 0.740440 0.588709 0.797679 0.795080
+ WTA, GenKT Axes: 0.928243 0.732463 0.601959 0.789085 0.821828
+ GenET, GenKT Axes: 0.957187 0.708542 0.592646 0.740234 0.836430
+ OnePass KT: 0.875029 0.573145 0.430094 0.655001 0.750411
+ OnePassAKT0.20: 0.875221 0.688551 0.467121 0.786717 0.678412
+ OnePass WTA KT: 0.875168 0.573337 0.431329 0.655117 0.752312
+ OnePass WTA GenKT: 0.875643 0.572487 0.590945 0.653791 1.032241
+ OnePass GenET, GenKT: 0.875687 0.570242 0.591220 0.651193 1.036788
+ N Choose M WTA GenKT: 0.928243 0.627906 0.480999 0.676446 0.766036
+ N Choose M GenET GenKT: 0.957187 0.624465 0.480999 0.652396 0.770257
+# OnePass CA: 0.875029 0.701878 0.537926 0.802120 0.766410
+# OnePass WTA CA: 0.875643 0.740440 0.588709 0.845596 0.795080
+# MultiPass: 0.874951 0.572036 0.405240 0.655080 0.752914
+-----------------------------------------------------------------------------------------------
+Done Outputting N-subjettiness Values
+-----------------------------------------------------------------------------------------------
+-----------------------------------------------------------------------------------------------
+Outputting N-subjettiness Subjets
+-----------------------------------------------------------------------------------------------
+-----------------------------------------------------------------------------------------------
+Normalized Measure (beta = 1.00, R0 = 1.00):
+KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.205212
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.205212
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -0.7163 0.0383 3.0174 1.1816 4.1079 4 0.058137
+ 2 -1.0500 0.3773 5.4869 2.1944 9.4777 7 0.113151
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.171288
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.3700 0.2373 1.4140 0.3960 3.0757 3 0.010919
+ 2 -0.8804 0.4961 3.3414 1.2741 5.0537 4 0.056023
+ 3 -0.8125 0.0562 3.8094 1.3625 5.4562 4 0.061212
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.128154
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -0.9314 0.2574 8.3928 3.9289 13.5856
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.7662 0.0870 4.0073 1.7607 5.7262
+ 2 -1.0829 0.4092 4.4952 1.6107 7.8595
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3700 0.2373 1.4140 0.3960 3.0757
+ 2 -0.9505 0.4871 3.1115 0.8192 4.7838
+ 3 -0.7662 0.0870 4.0073 1.7607 5.7262
+-----------------------------------------------------------------------------------------------
+Normalized Measure (beta = 1.00, R0 = 1.00):
+Winner-Take-All KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.214875
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.214875
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -0.7749 6.2765 2.8265 0.7229 3.8380 3 0.038797
+ 2 -1.0042 0.3870 5.7122 2.6500 9.7476 8 0.117940
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.156737
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.3700 0.2373 1.4140 0.3960 3.0757 3 0.008084
+ 2 -0.8875 0.4358 4.3192 1.8464 6.6720 5 0.060970
+ 3 -0.7749 6.2765 2.8265 0.7229 3.8380 3 0.038797
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.107850
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -0.9897 0.4035 8.6826 0.0000 13.2937
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.8909 6.1402 2.1980 0.0000 3.1296
+ 2 -0.9897 0.4035 6.4847 0.0000 9.9284
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3447 0.2004 1.4177 0.0000 2.9046
+ 2 -0.9897 0.4035 5.0670 0.0000 7.7579
+ 3 -0.8909 6.1402 2.1980 0.0000 3.1296
+-----------------------------------------------------------------------------------------------
+Normalized Measure (beta = 1.00, R0 = 1.00):
+One-Pass Minimization from KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.205212
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.205212
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -0.7163 0.0383 3.0174 1.1816 4.1079 4 0.057380
+ 2 -1.0500 0.3773 5.4869 2.1944 9.4777 7 0.106396
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.163776
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.3700 0.2373 1.4140 0.3960 3.0757 3 0.009637
+ 2 -0.8875 0.4358 4.3192 1.8464 6.6720 5 0.065921
+ 3 -0.7749 6.2765 2.8265 0.7229 3.8380 3 0.041613
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.117171
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -1.0055 0.2574 8.7674 0.0000 13.5856
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.8384 0.0484 2.9930 0.0000 4.1079
+ 2 -1.0764 0.3838 5.7880 0.0000 9.4777
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3731 0.2329 1.4642 0.0000 3.0757
+ 2 -0.9622 0.4301 4.4487 0.0000 6.6720
+ 3 -0.8428 0.0512 2.7879 0.0000 3.8380
+-----------------------------------------------------------------------------------------------
+Normalized Measure (beta = 1.00, R0 = 1.00):
+One-Pass Minimization from Winner-Take-All KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.205843
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.205843
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -0.7749 6.2765 2.8265 0.7229 3.8380 3 0.038797
+ 2 -1.0042 0.3870 5.7122 2.6500 9.7476 8 0.117940
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.156737
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.3700 0.2373 1.4140 0.3960 3.0757 3 0.008084
+ 2 -0.8875 0.4358 4.3192 1.8464 6.6720 5 0.060970
+ 3 -0.7749 6.2765 2.8265 0.7229 3.8380 3 0.038797
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.107850
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -1.0203 0.2629 8.6686 0.0000 13.5856
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.8909 6.1402 2.1980 0.0000 3.1296
+ 2 -0.9897 0.4035 6.4847 0.0000 9.9284
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3447 0.2004 1.4177 0.0000 2.9046
+ 2 -0.9897 0.4035 5.0670 0.0000 7.7579
+ 3 -0.8909 6.1402 2.1980 0.0000 3.1296
+-----------------------------------------------------------------------------------------------
+Unnormalized Measure (beta = 1.00, in GeV):
+KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -0.9314 0.2574 8.3928 3.9289 13.5856 11 2.787928
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 2.787928
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -0.7163 0.0383 3.0174 1.1816 4.1079 4 0.789827
+ 2 -1.0500 0.3773 5.4869 2.1944 9.4777 7 1.537230
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 2.327056
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.3700 0.2373 1.4140 0.3960 3.0757 3 0.148342
+ 2 -0.8804 0.4961 3.3414 1.2741 5.0537 4 0.761107
+ 3 -0.8125 0.0562 3.8094 1.3625 5.4562 4 0.831602
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 1.741051
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -0.9314 0.2574 8.3928 3.9289 13.5856
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.7662 0.0870 4.0073 1.7607 5.7262
+ 2 -1.0829 0.4092 4.4952 1.6107 7.8595
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3700 0.2373 1.4140 0.3960 3.0757
+ 2 -0.9505 0.4871 3.1115 0.8192 4.7838
+ 3 -0.7662 0.0870 4.0073 1.7607 5.7262
+-----------------------------------------------------------------------------------------------
+Unnormalized Measure (beta = 1.00, in GeV):
+Winner-Take-All KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -0.9314 0.2574 8.3928 3.9289 13.5856 11 2.919210
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 2.919210
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -0.7749 6.2765 2.8265 0.7229 3.8380 3 0.527078
+ 2 -1.0042 0.3870 5.7122 2.6500 9.7476 8 1.602296
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 2.129374
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.3700 0.2373 1.4140 0.3960 3.0757 3 0.109827
+ 2 -0.8875 0.4358 4.3192 1.8464 6.6720 5 0.828310
+ 3 -0.7749 6.2765 2.8265 0.7229 3.8380 3 0.527078
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 1.465216
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -0.9897 0.4035 8.6826 0.0000 13.2937
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.8909 6.1402 2.1980 0.0000 3.1296
+ 2 -0.9897 0.4035 6.4847 0.0000 9.9284
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3447 0.2004 1.4177 0.0000 2.9046
+ 2 -0.9897 0.4035 5.0670 0.0000 7.7579
+ 3 -0.8909 6.1402 2.1980 0.0000 3.1296
+-----------------------------------------------------------------------------------------------
+Unnormalized Measure (beta = 1.00, in GeV):
+One-Pass Minimization from KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -0.9314 0.2574 8.3928 3.9289 13.5856 11 2.787928
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 2.787928
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -0.7163 0.0383 3.0174 1.1816 4.1079 4 0.777581
+ 2 -1.0500 0.3773 5.4869 2.1944 9.4777 7 1.445334
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 2.222914
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.3700 0.2373 1.4140 0.3960 3.0757 3 0.130920
+ 2 -0.8875 0.4358 4.3192 1.8464 6.6720 5 0.895582
+ 3 -0.7749 6.2765 2.8265 0.7229 3.8380 3 0.565344
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 1.591847
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -1.0055 0.2574 8.7674 0.0000 13.5856
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.8387 0.0379 2.9923 0.0000 4.1079
+ 2 -1.0763 0.3838 5.7887 0.0000 9.4777
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3731 0.2329 1.4642 0.0000 3.0757
+ 2 -0.9622 0.4301 4.4487 0.0000 6.6720
+ 3 -0.8428 0.0512 2.7879 0.0000 3.8380
+-----------------------------------------------------------------------------------------------
+Unnormalized Measure (beta = 1.00, in GeV):
+One-Pass Minimization from Winner-Take-All KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -0.9314 0.2574 8.3928 3.9289 13.5856 11 2.796502
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 2.796502
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -0.7749 6.2765 2.8265 0.7229 3.8380 3 0.527078
+ 2 -1.0042 0.3870 5.7122 2.6500 9.7476 8 1.602296
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 2.129374
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.3700 0.2373 1.4140 0.3960 3.0757 3 0.109827
+ 2 -0.8875 0.4358 4.3192 1.8464 6.6720 5 0.828310
+ 3 -0.7749 6.2765 2.8265 0.7229 3.8380 3 0.527078
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 1.465216
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -1.0203 0.2629 8.6686 0.0000 13.5856
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.8909 6.1402 2.1980 0.0000 3.1296
+ 2 -0.9897 0.4035 6.4847 0.0000 9.9284
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3447 0.2004 1.4177 0.0000 2.9046
+ 2 -0.9897 0.4035 5.0670 0.0000 7.7579
+ 3 -0.8909 6.1402 2.1980 0.0000 3.1296
+-----------------------------------------------------------------------------------------------
+Normalized Measure (beta = 2.00, R0 = 1.00):
+KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.064408
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.064408
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -0.7163 0.0383 3.0174 1.1816 4.1079 4 0.020780
+ 2 -1.0500 0.3773 5.4869 2.1944 9.4777 7 0.022428
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.043207
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.3700 0.2373 1.4140 0.3960 3.0757 3 0.000750
+ 2 -0.8804 0.4961 3.3414 1.2741 5.0537 4 0.019342
+ 3 -0.8125 0.0562 3.8094 1.3625 5.4562 4 0.011843
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.031935
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -0.9314 0.2574 8.3928 3.9289 13.5856
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.7662 0.0870 4.0073 1.7607 5.7262
+ 2 -1.0829 0.4092 4.4952 1.6107 7.8595
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3700 0.2373 1.4140 0.3960 3.0757
+ 2 -0.9505 0.4871 3.1115 0.8192 4.7838
+ 3 -0.7662 0.0870 4.0073 1.7607 5.7262
+-----------------------------------------------------------------------------------------------
+Normalized Measure (beta = 2.00, R0 = 1.00):
+Winner-Take-All KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.073033
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.073033
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -0.7749 6.2765 2.8265 0.7229 3.8380 3 0.011711
+ 2 -1.0042 0.3870 5.7122 2.6500 9.7476 8 0.037221
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.048932
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.3700 0.2373 1.4140 0.3960 3.0757 3 0.001003
+ 2 -0.8875 0.4358 4.3192 1.8464 6.6720 5 0.022589
+ 3 -0.7749 6.2765 2.8265 0.7229 3.8380 3 0.011711
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.035304
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -0.9897 0.4035 8.6826 0.0000 13.2937
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.8909 6.1402 2.1980 0.0000 3.1296
+ 2 -0.9897 0.4035 6.4847 0.0000 9.9284
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3447 0.2004 1.4177 0.0000 2.9046
+ 2 -0.9897 0.4035 5.0670 0.0000 7.7579
+ 3 -0.8909 6.1402 2.1980 0.0000 3.1296
+-----------------------------------------------------------------------------------------------
+Normalized Measure (beta = 2.00, R0 = 1.00):
+One-Pass Minimization from KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.064408
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.064408
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -0.7163 0.0383 3.0174 1.1816 4.1079 4 0.019768
+ 2 -1.0500 0.3773 5.4869 2.1944 9.4777 7 0.022419
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.042188
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.3700 0.2373 1.4140 0.3960 3.0757 3 0.000773
+ 2 -0.8804 0.4961 3.3414 1.2741 5.0537 4 0.019062
+ 3 -0.8125 0.0562 3.8094 1.3625 5.4562 4 0.011823
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.031658
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -1.0055 0.2574 8.7674 0.0000 13.5856
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.7741 0.0326 3.1243 0.0000 4.1079
+ 2 -1.1289 0.4103 5.5496 0.0000 9.4777
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3862 0.2497 1.4476 0.0000 3.0757
+ 2 -0.9555 0.5171 3.3865 0.0000 5.0537
+ 3 -0.8258 0.0305 4.0096 0.0000 5.4562
+-----------------------------------------------------------------------------------------------
+Normalized Measure (beta = 2.00, R0 = 1.00):
+One-Pass Minimization from Winner-Take-All KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.064419
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.064419
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -0.7163 0.0383 3.0174 1.1816 4.1079 4 0.019797
+ 2 -1.0500 0.3773 5.4869 2.1944 9.4777 7 0.022405
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.042202
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.3700 0.2373 1.4140 0.3960 3.0757 3 0.000877
+ 2 -0.8804 0.4961 3.3414 1.2741 5.0537 4 0.019020
+ 3 -0.8125 0.0562 3.8094 1.3625 5.4562 4 0.011852
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.031749
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -1.0078 0.2582 8.7517 0.0000 13.5856
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.7798 0.0372 3.1126 0.0000 4.1079
+ 2 -1.1273 0.4102 5.5566 0.0000 9.4777
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3588 0.2165 1.4828 0.0000 3.0757
+ 2 -0.9560 0.5045 3.3852 0.0000 5.0537
+ 3 -0.8498 0.0170 3.9441 0.0000 5.4562
+-----------------------------------------------------------------------------------------------
+Unnormalized Measure (beta = 2.00, in GeV):
+KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.875029
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.875029
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -0.7163 0.0383 3.0174 1.1816 4.1079 4 0.282308
+ 2 -1.0500 0.3773 5.4869 2.1944 9.4777 7 0.304693
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.587001
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.3700 0.2373 1.4140 0.3960 3.0757 3 0.010186
+ 2 -0.8804 0.4961 3.3414 1.2741 5.0537 4 0.262772
+ 3 -0.8125 0.0562 3.8094 1.3625 5.4562 4 0.160893
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.433851
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -0.9314 0.2574 8.3928 3.9289 13.5856
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.7662 0.0870 4.0073 1.7607 5.7262
+ 2 -1.0829 0.4092 4.4952 1.6107 7.8595
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3700 0.2373 1.4140 0.3960 3.0757
+ 2 -0.9505 0.4871 3.1115 0.8192 4.7838
+ 3 -0.7662 0.0870 4.0073 1.7607 5.7262
+-----------------------------------------------------------------------------------------------
+Unnormalized Measure (beta = 2.00, in GeV):
+Winner-Take-All KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.992196
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.992196
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -0.7749 6.2765 2.8265 0.7229 3.8380 3 0.159107
+ 2 -1.0042 0.3870 5.7122 2.6500 9.7476 8 0.505665
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.664772
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.3700 0.2373 1.4140 0.3960 3.0757 3 0.013628
+ 2 -0.8875 0.4358 4.3192 1.8464 6.6720 5 0.306887
+ 3 -0.7749 6.2765 2.8265 0.7229 3.8380 3 0.159107
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.479623
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -0.9897 0.4035 8.6826 0.0000 13.2937
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.8909 6.1402 2.1980 0.0000 3.1296
+ 2 -0.9897 0.4035 6.4847 0.0000 9.9284
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3447 0.2004 1.4177 0.0000 2.9046
+ 2 -0.9897 0.4035 5.0670 0.0000 7.7579
+ 3 -0.8909 6.1402 2.1980 0.0000 3.1296
+-----------------------------------------------------------------------------------------------
+Unnormalized Measure (beta = 2.00, in GeV):
+One-Pass Minimization from KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.875029
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.875029
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -0.7163 0.0383 3.0174 1.1816 4.1079 4 0.268566
+ 2 -1.0500 0.3773 5.4869 2.1944 9.4777 7 0.304579
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.573145
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.3700 0.2373 1.4140 0.3960 3.0757 3 0.010503
+ 2 -0.8804 0.4961 3.3414 1.2741 5.0537 4 0.258965
+ 3 -0.8125 0.0562 3.8094 1.3625 5.4562 4 0.160626
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.430094
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -1.0055 0.2574 8.7674 0.0000 13.5856
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.7741 0.0326 3.1243 0.0000 4.1079
+ 2 -1.1289 0.4103 5.5496 0.0000 9.4777
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3862 0.2497 1.4476 0.0000 3.0757
+ 2 -0.9555 0.5171 3.3865 0.0000 5.0537
+ 3 -0.8258 0.0305 4.0096 0.0000 5.4562
+-----------------------------------------------------------------------------------------------
+Unnormalized Measure (beta = 2.00, in GeV):
+One-Pass Minimization from Winner-Take-All KT Axes:
+jet # rap phi pt m e constit tau1
+ 1 -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.875168
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.875168
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -0.7163 0.0383 3.0174 1.1816 4.1079 4 0.268956
+ 2 -1.0500 0.3773 5.4869 2.1944 9.4777 7 0.304381
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.573337
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.3700 0.2373 1.4140 0.3960 3.0757 3 0.011919
+ 2 -0.8804 0.4961 3.3414 1.2741 5.0537 4 0.258393
+ 3 -0.8125 0.0562 3.8094 1.3625 5.4562 4 0.161016
+total -0.9314 0.2574 8.3928 3.9289 13.5856 11 0.431329
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Subjets
+jet # rap phi pt m e
+ 1 -1.0078 0.2582 8.7517 0.0000 13.5856
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.7798 0.0372 3.1126 0.0000 4.1079
+ 2 -1.1273 0.4102 5.5566 0.0000 9.4777
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.3588 0.2165 1.4828 0.0000 3.0757
+ 2 -0.9560 0.5045 3.3852 0.0000 5.0537
+ 3 -0.8498 0.0170 3.9441 0.0000 5.4562
+-----------------------------------------------------------------------------------------------
+Done Outputting N-subjettiness Subjets
+-----------------------------------------------------------------------------------------------
+-----------------------------------------------------------------------------------------------
+Using N-jettiness as a Jet Algorithm
+-----------------------------------------------------------------------------------------------
+-----------------------------------------------------------------------------------------------
+Unnormalized Cutoff Measure (beta = 1.00, Rcut = 0.50, in GeV):
+KT Axes:
+jet # rap phi pt m e constit tau2
+ 1 1.8286 4.6767 7.3764 8.9227 36.9658 13 10.971436
+ 2 -1.1906 2.2530 15.0312 6.6030 29.4956 15 9.595944
+ beam 16.769309
+total 0.1609 2.7263 10.6458 64.7409 66.4614 28 37.336689
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464 14 4.561444
+ 2 -0.9424 0.2445 7.9554 3.2710 12.7122 9 3.785610
+ 3 1.8286 4.6767 7.3764 8.9227 36.9658 13 10.971436
+ beam 9.837767
+total 0.0046 2.0417 7.0350 80.0150 80.3245 36 29.156258
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau4
+ 1 1.8710 4.6454 6.9561 8.6364 36.8644 13 6.743115
+ 2 0.0985 4.9585 2.8614 1.2467 3.1363 4 1.116483
+ 3 -1.1820 2.3085 15.8307 6.6742 30.6464 14 4.561444
+ 4 -0.9424 0.2445 7.9554 3.2710 12.7122 9 3.785610
+ beam 8.320309
+total 0.0087 2.1728 4.7623 83.2201 83.3594 40 24.526962
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Jets
+jet # rap phi pt m e
+ 1 0.7457 4.8463 16.1052 37.1848 52.3217
+ 2 -0.8560 1.7047 16.1052 30.3047 47.6783
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464
+ 2 -0.4888 0.4634 9.4985 11.8435 17.0319
+ 3 0.7457 4.8463 16.1052 37.1848 52.3217
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 1.9862 4.5373 6.3086 6.7442 34.2828
+ 2 0.0046 5.0341 10.2760 14.8256 18.0389
+ 3 -1.1820 2.3085 15.8307 6.6742 30.6464
+ 4 -0.4888 0.4634 9.4985 11.8435 17.0319
+-----------------------------------------------------------------------------------------------
+Unnormalized Cutoff Measure (beta = 1.00, Rcut = 0.50, in GeV):
+Winner-Take-All KT Axes:
+jet # rap phi pt m e constit tau2
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464 14 4.625141
+ 2 -0.2431 5.2003 2.4373 1.3079 2.8483 6 0.825202
+ beam 33.252663
+total -1.0402 2.3532 13.4825 16.1598 33.4947 20 38.703005
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -0.9588 0.2474 8.1764 3.5176 13.3157 10 2.717167
+ 2 -0.2431 5.2003 2.4373 1.3079 2.8483 6 0.825202
+ 3 -1.1820 2.3085 15.8307 6.6742 30.6464 14 4.625141
+ beam 26.594823
+total -1.0160 1.7063 11.6720 27.6007 46.8104 30 34.762332
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau4
+ 1 1.8770 4.6355 7.0825 8.2566 36.3690 12 7.161046
+ 2 -0.2431 5.2003 2.4373 1.3079 2.8483 6 0.825202
+ 3 -0.9588 0.2474 8.1764 3.5176 13.3157 10 2.717167
+ 4 -1.1820 2.3085 15.8307 6.6742 30.6464 14 4.625141
+ beam 8.410330
+total -0.0151 2.0110 4.9781 83.0207 83.1793 42 23.738885
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Jets
+jet # rap phi pt m e
+ 1 -1.2026 2.2995 16.4536 0.0000 29.8564
+ 2 -0.2430 5.1639 30.5862 0.0000 31.4940
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.9897 0.4035 10.9295 0.0000 16.7338
+ 2 -0.2430 5.1639 19.6567 0.0000 20.2401
+ 3 -1.2026 2.2995 16.4536 0.0000 29.8564
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 1.7753 4.7881 6.7069 0.0000 20.3597
+ 2 -0.2430 5.1639 12.9499 0.0000 13.3342
+ 3 -0.9897 0.4035 10.9295 0.0000 16.7338
+ 4 -1.2026 2.2995 16.4536 0.0000 29.8564
+-----------------------------------------------------------------------------------------------
+Unnormalized Cutoff Measure (beta = 1.00, Rcut = 0.50, in GeV):
+One-Pass Minimization from KT Axes:
+jet # rap phi pt m e constit tau2
+ 1 1.8710 4.6454 6.9561 8.6364 36.8644 13 6.740950
+ 2 -1.1820 2.3085 15.8307 6.6742 30.6464 14 4.481679
+ beam 16.244577
+total 0.1459 2.7358 12.0951 65.6947 67.5108 27 27.467206
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464 14 4.469983
+ 2 -0.9588 0.2474 8.1764 3.5176 13.3157 10 2.586485
+ 3 1.8770 4.6355 7.0825 8.2566 36.3690 12 6.422614
+ beam 9.834456
+total -0.0072 2.0267 7.4136 79.9862 80.3311 36 23.313538
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau4
+ 1 1.9630 4.5745 6.3418 7.4219 35.4439 12 6.166698
+ 2 0.3489 4.7194 2.5803 1.1114 2.9822 4 0.836784
+ 3 -1.1820 2.3085 15.8307 6.6742 30.6464 14 4.440328
+ 4 -0.9588 0.2474 8.1764 3.5176 13.3157 10 2.585914
+ beam 8.805904
+total -0.0025 2.2052 6.0293 82.1670 82.3882 40 22.835628
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Jets
+jet # rap phi pt m e
+ 1 2.3811 4.5809 6.6676 0.0000 36.3690
+ 2 -1.2719 2.3440 15.9285 0.0000 30.6464
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.2683 2.3532 15.9773 0.0000 30.6464
+ 2 -0.9893 0.2801 8.3055 0.0000 12.7122
+ 3 2.1654 4.6625 8.3703 0.0000 36.9658
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 2.6394 4.5407 5.0360 0.0000 35.4439
+ 2 0.4043 4.7981 2.7541 0.0000 2.9822
+ 3 -1.2841 2.3769 15.7634 0.0000 30.6464
+ 4 -1.0239 0.2811 8.4727 0.0000 13.3157
+-----------------------------------------------------------------------------------------------
+Unnormalized Cutoff Measure (beta = 1.00, Rcut = 0.50, in GeV):
+One-Pass Minimization from Winner-Take-All KT Axes:
+jet # rap phi pt m e constit tau2
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464 14 4.440505
+ 2 -0.2431 5.2003 2.4373 1.3079 2.8483 6 0.854452
+ beam 33.252663
+total -1.0402 2.3532 13.4825 16.1598 33.4947 20 38.547620
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -0.9588 0.2474 8.1764 3.5176 13.3157 10 2.582018
+ 2 -0.2431 5.2003 2.4373 1.3079 2.8483 6 0.851440
+ 3 -1.1820 2.3085 15.8307 6.6742 30.6464 14 4.443637
+ beam 26.594823
+total -1.0160 1.7063 11.6720 27.6007 46.8104 30 34.471918
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau4
+ 1 1.9630 4.5745 6.3418 7.4219 35.4439 12 6.113728
+ 2 -0.2431 5.2003 2.4373 1.3079 2.8483 6 0.851440
+ 3 -0.9588 0.2474 8.1764 3.5176 13.3157 10 2.582018
+ 4 -1.1820 2.3085 15.8307 6.6742 30.6464 14 4.443637
+ beam 8.872882
+total -0.0230 2.0048 5.8234 82.0261 82.2542 42 22.863706
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Jets
+jet # rap phi pt m e
+ 1 -1.2840 2.3767 15.7649 0.0000 30.6464
+ 2 -0.2762 5.1468 2.7430 0.0000 2.8483
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.0182 0.2442 8.1052 0.0000 12.6821
+ 2 -0.2735 5.1482 2.7450 0.0000 2.8483
+ 3 -1.2822 2.3735 15.7885 0.0000 30.6464
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 2.5400 4.5328 5.5563 0.0000 35.4439
+ 2 -0.2735 5.1482 2.7450 0.0000 2.8483
+ 3 -1.0182 0.2442 8.1052 0.0000 12.6821
+ 4 -1.2822 2.3735 15.7885 0.0000 30.6464
+-----------------------------------------------------------------------------------------------
+Unnormalized Cutoff Measure (beta = 2.00, Rcut = 0.50, in GeV):
+KT Axes:
+jet # rap phi pt m e constit tau2
+ 1 1.8286 4.6767 7.3764 8.9227 36.9658 13 3.900662
+ 2 -1.1906 2.2530 15.0312 6.6030 29.4956 15 3.279668
+ beam 8.384654
+total 0.1609 2.7263 10.6458 64.7409 66.4614 28 15.564985
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464 14 1.009327
+ 2 -0.9424 0.2445 7.9554 3.2710 12.7122 9 1.368159
+ 3 1.8286 4.6767 7.3764 8.9227 36.9658 13 3.900662
+ beam 4.918884
+total 0.0046 2.0417 7.0350 80.0150 80.3245 36 11.197031
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau4
+ 1 1.8710 4.6454 6.9561 8.6364 36.8644 13 1.501627
+ 2 0.0985 4.9585 2.8614 1.2467 3.1363 4 0.418076
+ 3 -1.1820 2.3085 15.8307 6.6742 30.6464 14 1.009327
+ 4 -0.9424 0.2445 7.9554 3.2710 12.7122 9 1.368159
+ beam 4.160154
+total 0.0087 2.1728 4.7623 83.2201 83.3594 40 8.457343
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Jets
+jet # rap phi pt m e
+ 1 0.7457 4.8463 16.1052 37.1848 52.3217
+ 2 -0.8560 1.7047 16.1052 30.3047 47.6783
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464
+ 2 -0.4888 0.4634 9.4985 11.8435 17.0319
+ 3 0.7457 4.8463 16.1052 37.1848 52.3217
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 1.9862 4.5373 6.3086 6.7442 34.2828
+ 2 0.0046 5.0341 10.2760 14.8256 18.0389
+ 3 -1.1820 2.3085 15.8307 6.6742 30.6464
+ 4 -0.4888 0.4634 9.4985 11.8435 17.0319
+-----------------------------------------------------------------------------------------------
+Unnormalized Cutoff Measure (beta = 2.00, Rcut = 0.50, in GeV):
+Winner-Take-All KT Axes:
+jet # rap phi pt m e constit tau2
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464 14 1.030444
+ 2 -0.2431 5.2003 2.4373 1.3079 2.8483 6 0.339661
+ beam 16.626331
+total -1.0402 2.3532 13.4825 16.1598 33.4947 20 17.996436
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -0.9588 0.2474 8.1764 3.5176 13.3157 10 0.840980
+ 2 -0.2431 5.2003 2.4373 1.3079 2.8483 6 0.339661
+ 3 -1.1820 2.3085 15.8307 6.6742 30.6464 14 1.030444
+ beam 13.297411
+total -1.0160 1.7063 11.6720 27.6007 46.8104 30 15.508496
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau4
+ 1 1.8770 4.6355 7.0825 8.2566 36.3690 12 2.051208
+ 2 -0.2431 5.2003 2.4373 1.3079 2.8483 6 0.339661
+ 3 -0.9588 0.2474 8.1764 3.5176 13.3157 10 0.840980
+ 4 -1.1820 2.3085 15.8307 6.6742 30.6464 14 1.030444
+ beam 4.205165
+total -0.0151 2.0110 4.9781 83.0207 83.1793 42 8.467457
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Jets
+jet # rap phi pt m e
+ 1 -1.2026 2.2995 16.4536 0.0000 29.8564
+ 2 -0.2430 5.1639 30.5862 0.0000 31.4940
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.9897 0.4035 10.9295 0.0000 16.7338
+ 2 -0.2430 5.1639 19.6567 0.0000 20.2401
+ 3 -1.2026 2.2995 16.4536 0.0000 29.8564
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 1.7753 4.7881 6.7069 0.0000 20.3597
+ 2 -0.2430 5.1639 12.9499 0.0000 13.3342
+ 3 -0.9897 0.4035 10.9295 0.0000 16.7338
+ 4 -1.2026 2.2995 16.4536 0.0000 29.8564
+-----------------------------------------------------------------------------------------------
+Unnormalized Cutoff Measure (beta = 2.00, Rcut = 0.50, in GeV):
+One-Pass Minimization from KT Axes:
+jet # rap phi pt m e constit tau2
+ 1 1.8710 4.6454 6.9561 8.6364 36.8644 13 1.509779
+ 2 -1.1820 2.3085 15.8307 6.6742 30.6464 14 1.010988
+ beam 8.122288
+total 0.1459 2.7358 12.0951 65.6947 67.5108 27 10.643056
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464 14 1.010831
+ 2 -0.9495 0.2144 7.9406 3.1322 12.6821 9 0.538817
+ 3 1.8710 4.6454 6.9561 8.6364 36.8644 13 1.509131
+ beam 4.951767
+total 0.0050 2.0494 7.2823 79.8606 80.1929 36 8.010546
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau4
+ 1 1.8710 4.6454 6.9561 8.6364 36.8644 13 1.507499
+ 2 0.0985 4.9585 2.8614 1.2467 3.1363 4 0.376004
+ 3 -1.1820 2.3085 15.8307 6.6742 30.6464 14 1.010831
+ 4 -0.9495 0.2144 7.9406 3.1322 12.6821 9 0.538817
+ beam 4.167688
+total 0.0085 2.1950 4.5460 83.2021 83.3292 40 7.600840
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Jets
+jet # rap phi pt m e
+ 1 2.4633 4.6139 6.2330 0.0000 36.8644
+ 2 -1.2561 2.3173 16.1447 0.0000 30.6464
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.2556 2.3168 16.1510 0.0000 30.6464
+ 2 -0.9995 0.2014 8.2217 0.0000 12.6821
+ 3 2.4615 4.6147 6.2439 0.0000 36.8644
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 2.4564 4.6143 6.2757 0.0000 36.8644
+ 2 0.1210 4.9539 3.1135 0.0000 3.1363
+ 3 -1.2556 2.3168 16.1510 0.0000 30.6464
+ 4 -0.9995 0.2014 8.2217 0.0000 12.6821
+-----------------------------------------------------------------------------------------------
+Unnormalized Cutoff Measure (beta = 2.00, Rcut = 0.50, in GeV):
+One-Pass Minimization from Winner-Take-All KT Axes:
+jet # rap phi pt m e constit tau2
+ 1 -1.1820 2.3085 15.8307 6.6742 30.6464 14 1.010430
+ 2 -0.2431 5.2003 2.4373 1.3079 2.8483 6 0.343948
+ beam 16.626331
+total -1.0402 2.3532 13.4825 16.1598 33.4947 20 17.980709
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -0.9495 0.2144 7.9406 3.1322 12.6821 9 0.538341
+ 2 -0.2431 5.2003 2.4373 1.3079 2.8483 6 0.343948
+ 3 -1.1820 2.3085 15.8307 6.6742 30.6464 14 1.010430
+ beam 13.455810
+total -1.0140 1.7247 11.3862 27.3295 46.1768 29 15.348529
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau4
+ 1 1.9630 4.5745 6.3418 7.4219 35.4439 12 1.159421
+ 2 -0.2431 5.2003 2.4373 1.3079 2.8483 6 0.343948
+ 3 -0.9495 0.2144 7.9406 3.1322 12.6821 9 0.538341
+ 4 -1.1820 2.3085 15.8307 6.6742 30.6464 14 1.010430
+ beam 4.594839
+total -0.0167 2.0555 5.6171 81.4157 81.6206 41 7.646980
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Jets
+jet # rap phi pt m e
+ 1 -1.2539 2.3154 16.1753 0.0000 30.6464
+ 2 -0.2869 5.1426 2.7349 0.0000 2.8483
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -0.9986 0.2062 8.2277 0.0000 12.6821
+ 2 -0.2869 5.1426 2.7349 0.0000 2.8483
+ 3 -1.2539 2.3154 16.1753 0.0000 30.6464
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 2.4521 4.5585 6.0593 0.0000 35.4439
+ 2 -0.2869 5.1426 2.7349 0.0000 2.8483
+ 3 -0.9986 0.2062 8.2277 0.0000 12.6821
+ 4 -1.2539 2.3154 16.1753 0.0000 30.6464
+-----------------------------------------------------------------------------------------------
+Done Using N-jettiness as a Jet Algorithm
+-----------------------------------------------------------------------------------------------
Index: contrib/contribs/Nsubjettiness/tags/2.2.6/NjettinessPlugin.cc
===================================================================
--- contrib/contribs/Nsubjettiness/tags/2.2.6/NjettinessPlugin.cc (revision 0)
+++ contrib/contribs/Nsubjettiness/tags/2.2.6/NjettinessPlugin.cc (revision 1318)
@@ -0,0 +1,96 @@
+// Nsubjettiness Package
+// Questions/Comments? jthaler@jthaler.net
+//
+// Copyright (c) 2011-14
+// Jesse Thaler, Ken Van Tilburg, Christopher K. Vermilion, and TJ Wilkason
+//
+// $Id$
+//----------------------------------------------------------------------
+// This file is part of FastJet contrib.
+//
+// It is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2 of the License, or (at
+// your option) any later version.
+//
+// It is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+// License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this code. If not, see .
+//----------------------------------------------------------------------
+
+#include "NjettinessPlugin.hh"
+
+FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh
+
+namespace contrib{
+
+LimitedWarning NjettinessPlugin::_old_constructor_warning;
+
+std::string NjettinessPlugin::description() const {return "N-jettiness jet finder";}
+
+
+// Clusters the particles according to the Njettiness jet algorithm
+// Apologies for the complication with this code, but we need to make
+// a fake jet clustering tree. The partitioning is done by getPartitionList
+void NjettinessPlugin::run_clustering(ClusterSequence& cs) const
+{
+ std::vector particles = cs.jets();
+
+ // HACK: remove area information from particles (in case this is called by
+ // a ClusterSequenceArea. Will be fixed in a future FastJet release)
+ for (unsigned i = 0; i < particles.size(); i++) {
+ particles[i].set_structure_shared_ptr(SharedPtr());
+ }
+
+
+ TauComponents tau_components = _njettinessFinder.getTauComponents(_N, particles);
+ TauPartition tau_partition = _njettinessFinder.currentPartition();
+ std::vector > partition = tau_partition.jets_list();
+
+ std::vector jet_indices_for_extras;
+
+ // output clusterings for each jet
+ for (size_t i0 = 0; i0 < partition.size(); ++i0) {
+ size_t i = partition.size() - 1 - i0; // reversed order of reading to match axes order
+ std::list& indices = partition[i];
+ if (indices.size() == 0) continue;
+ while (indices.size() > 1) {
+ int merge_i = indices.back(); indices.pop_back();
+ int merge_j = indices.back(); indices.pop_back();
+ int newIndex;
+ double fakeDij = -1.0;
+
+ cs.plugin_record_ij_recombination(merge_i, merge_j, fakeDij, newIndex);
+
+ indices.push_back(newIndex);
+ }
+ double fakeDib = -1.0;
+
+ int finalJet = indices.back();
+ cs.plugin_record_iB_recombination(finalJet, fakeDib);
+ jet_indices_for_extras.push_back(cs.jets()[finalJet].cluster_hist_index()); // Get the four vector for the final jets to compare later.
+ }
+
+ //HACK: Re-reverse order of reading to match CS order
+ reverse(jet_indices_for_extras.begin(),jet_indices_for_extras.end());
+
+ // Store extra information about jets
+ NjettinessExtras * extras = new NjettinessExtras(tau_components,jet_indices_for_extras);
+
+#if FASTJET_VERSION_NUMBER>=30100
+ cs.plugin_associate_extras(extras);
+#else
+ // auto_ptr no longer supported, apparently
+ cs.plugin_associate_extras(std::auto_ptr(extras));
+#endif
+
+}
+
+
+} // namespace contrib
+
+FASTJET_END_NAMESPACE
Property changes on: contrib/contribs/Nsubjettiness/tags/2.2.6/NjettinessPlugin.cc
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: contrib/contribs/Nsubjettiness/tags/2.2.6/XConePlugin.hh
===================================================================
--- contrib/contribs/Nsubjettiness/tags/2.2.6/XConePlugin.hh (revision 0)
+++ contrib/contribs/Nsubjettiness/tags/2.2.6/XConePlugin.hh (revision 1318)
@@ -0,0 +1,169 @@
+// Nsubjettiness Package
+// Questions/Comments? jthaler@jthaler.net
+//
+// Copyright (c) 2011-14
+// Jesse Thaler, Ken Van Tilburg, Christopher K. Vermilion, and TJ Wilkason
+//
+// $Id: XConePlugin.hh 748 2014-10-02 06:13:28Z tjwilk $
+//----------------------------------------------------------------------
+// This file is part of FastJet contrib.
+//
+// It is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2 of the License, or (at
+// your option) any later version.
+//
+// It is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+// License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this code. If not, see .
+//----------------------------------------------------------------------
+
+#ifndef __FASTJET_CONTRIB_XCONEPLUGIN_HH__
+#define __FASTJET_CONTRIB_XCONEPLUGIN_HH__
+
+#include
+
+#include "NjettinessPlugin.hh"
+
+#include "fastjet/ClusterSequence.hh"
+#include "fastjet/JetDefinition.hh"
+
+#include
+#include
+
+FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh
+
+
+namespace contrib {
+
+///------------------------------------------------------------------------
+/// \class XConePlugin
+/// \brief Implements the XCone Jet Algorithm
+/**
+ * An exclusive jet finder that identifies N jets. First N axes are found, then
+ * particles are assigned to the nearest (approximte DeltaR) axis and for each axis the
+ * corresponding jet is simply the four-momentum sum of these particles.
+ *
+ * The XConePlugin is based on NjettinessPlugin, but with sensible default
+ * values for the AxesDefinition and MeasureDefinition. There are three arguments
+ *
+ * int N: number of exclusive jets to be found
+ * double R0: approximate jet radius
+ * double beta: determines style of jet finding with the recommended values being:
+ * beta = 2: standard "mean" jets where jet momentum/axis align approximately.
+ * beta = 1: recoil-free "median" variant where jet axis points at hardest cluster.
+ *
+ * The AxesDefinition is OnePass_GenET_GenKT_Axes, which uses a generalized kT
+ * clustering algorithm matched to the beta value.
+ *
+ * The MeasureDefinition is the XConeMeasure, which is based on the
+ * ConicalGeometric measure.
+ */
+class XConePlugin : public NjettinessPlugin {
+public:
+
+ /// Constructor with N, R0, and beta as the options. beta = 2.0 is the default
+ /// All this does is use the NjettinessPlugin with OnePass_GenET_GenKT_Axes and the XConeMeasure.
+ /// For more advanced usage, call NjettinessPlugin directly
+ /// Note that the order of the R0 and beta values is reversed from the XConeMeasure to
+ /// standard usage for Plugins.
+ XConePlugin(int N, double R0, double beta = 2.0)
+ : NjettinessPlugin(N,
+ OnePass_GenET_GenKT_Axes(calc_delta(beta), calc_power(beta), R0), // use recommended axes method only
+ XConeMeasure(beta, R0) // use recommended XCone measure.
+ ),
+ _N(N), _R0(R0), _beta(beta)
+ {}
+
+ // The things that are required by base class.
+ virtual std::string description () const;
+ virtual double R() const {return _R0;}
+
+ // run_clustering is done by NjettinessPlugin
+
+ virtual ~XConePlugin() {}
+
+private:
+
+ /// Static call used within the constructor to set the recommended delta value
+ static double calc_delta(double beta) {
+ double delta;
+ if (beta > 1) delta = 1/(beta - 1);
+ else delta = std::numeric_limits::max(); // use winner take all
+ return delta;
+ }
+
+ /// Static call used within the constructor to set the recommended p value
+ static double calc_power(double beta) {
+ return (double) 1.0/beta;
+ }
+
+ double _N; ///< Number of desired jets
+ double _R0; ///< Jet radius
+ double _beta; ///< Angular exponent (beta = 2.0 is dafault, beta = 1.0 is recoil-free)
+
+public:
+
+};
+
+
+/// \class PseudoXConePlugin
+/// \brief Implements a faster, non-optimal version of the XCone Jet Algorithm
+///
+/// A "poor man's" version of XCone with no minimization step
+/// Right now, used just for testing purposes by the developers
+class PseudoXConePlugin : public NjettinessPlugin {
+public:
+
+ /// Constructor with N, R0, and beta as the options. beta = 2.0 is the default
+ /// All this does is use the NjettinessPlugin with GenET_GenKT_Axes and the XConeMeasure.
+ PseudoXConePlugin(int N, double R0, double beta = 2.0)
+ : NjettinessPlugin(N,
+ GenET_GenKT_Axes(calc_delta(beta), calc_power(beta), R0), // poor man's axes
+ XConeMeasure(beta, R0) // use recommended XCone measure.
+ ),
+ _N(N), _R0(R0), _beta(beta)
+ {}
+
+ // The things that are required by base class.
+ virtual std::string description () const;
+ virtual double R() const {return _R0;}
+
+ // run_clustering is done by NjettinessPlugin
+
+ virtual ~PseudoXConePlugin() {}
+
+private:
+
+ /// Static call used within the constructor to set the recommended delta value
+ static double calc_delta(double beta) {
+ double delta;
+ if (beta > 1) delta = 1/(beta - 1);
+ else delta = std::numeric_limits::max(); // use winner take all
+ return delta;
+ }
+
+ /// Static call used within the constructor to set the recommended p value
+ static double calc_power(double beta) {
+ return (double) 1.0/beta;
+ }
+
+ double _N; ///< Number of desired jets
+ double _R0; ///< Jet radius
+ double _beta; ///< Angular exponent (beta = 2.0 is dafault, beta = 1.0 is recoil-free)
+
+public:
+
+};
+
+
+
+} // namespace contrib
+
+FASTJET_END_NAMESPACE
+
+#endif // __FASTJET_CONTRIB_XConePlugin_HH__
\ No newline at end of file
Index: contrib/contribs/Nsubjettiness/tags/2.2.6/example_basic_usage.ref
===================================================================
--- contrib/contribs/Nsubjettiness/tags/2.2.6/example_basic_usage.ref (revision 0)
+++ contrib/contribs/Nsubjettiness/tags/2.2.6/example_basic_usage.ref (revision 1318)
@@ -0,0 +1,246 @@
+# read an event with 354 particles
+#--------------------------------------------------------------------------
+# FastJet release 3.1.2
+# M. Cacciari, G.P. Salam and G. Soyez
+# A software package for jet finding and analysis at colliders
+# http://fastjet.fr
+#
+# Please cite EPJC72(2012)1896 [arXiv:1111.6097] if you use this package
+# for scientific work and optionally PLB641(2006)57 [hep-ph/0512210].
+#
+# FastJet is provided without warranty under the terms of the GNU GPLv2.
+# It uses T. Chan's closest pair algorithm, S. Fortune's Voronoi code
+# and 3rd party plugin jet algorithms. See COPYING file for details.
+#--------------------------------------------------------------------------
+-------------------------------------------------------------------------------------
+Analyzing Jet 1:
+-------------------------------------------------------------------------------------
+-------------------------------------------------------------------------------------
+N-subjettiness with Unnormalized Measure (in GeV)
+beta = 1.0: One-pass Winner-Take-All kT Axes
+beta = 2.0: One-pass E-Scheme kT Axes
+-------------------------------------------------------------------------------------
+-------------------------------------------------------------------------------------
+ beta tau1 tau2 tau3 tau2/tau1 tau3/tau2
+ 1.000000 11.804760 9.219812 6.725069 0.781025 0.729415
+ 2.000000 1.293815 0.827980 0.756863 0.639953 0.914107
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Subjets found using beta = 1.0 tau values
+jet # rap phi pt m e constit tau1
+ 1 -0.8673 2.9051 983.3873 39.9912 1378.1622 35 11.804760
+total -0.8673 2.9051 983.3873 39.9912 1378.1622 35 11.804760
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -0.7959 2.8213 36.9260 4.1240 49.5577 14 2.024139
+ 2 -0.8701 2.9084 946.5959 25.7449 1328.6045 21 7.195672
+total -0.8673 2.9051 983.3873 39.9912 1378.1622 35 9.219812
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -0.8900 2.9133 149.6693 8.2524 213.2875 10 1.052931
+ 2 -0.8664 2.9075 796.9288 11.6617 1115.3170 11 3.647998
+ 3 -0.7959 2.8213 36.9260 4.1240 49.5577 14 2.024139
+total -0.8673 2.9051 983.3873 39.9912 1378.1622 35 6.725069
+-------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes used for above beta = 1.0 tau values
+jet # rap phi pt m e tau1
+ 1 -0.8679 2.9071 983.3836 0.0000 1377.5818 11.804760
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e tau2
+ 1 -0.8223 2.8273 36.3776 0.0000 49.3858 2.024139
+ 2 -0.8670 2.9082 948.8123 0.0000 1328.3550 7.195672
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e tau3
+ 1 -0.8882 2.9123 149.9765 0.0000 213.1278 1.052931
+ 2 -0.8670 2.9082 796.6396 0.0000 1115.2561 3.647998
+ 3 -0.8223 2.8273 36.3776 0.0000 49.3858 2.024139
+-------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Subjets found using beta = 2.0 tau values
+jet # rap phi pt m e constit tau1
+ 1 -0.8673 2.9051 983.3873 39.9912 1378.1622 35 1.293815
+total -0.8673 2.9051 983.3873 39.9912 1378.1622 35 1.293815
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 -0.7947 2.8224 37.0549 4.2460 49.7082 15 0.423365
+ 2 -0.8702 2.9084 946.4641 25.2372 1328.4540 20 0.404615
+total -0.8673 2.9051 983.3873 39.9912 1378.1622 35 0.827980
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -0.8900 2.9133 149.6693 8.2524 213.2875 10 0.224477
+ 2 -0.8663 2.9074 798.5666 11.0980 1117.5180 11 0.119545
+ 3 -0.7949 2.8186 35.2904 4.0988 47.3567 14 0.412840
+total -0.8673 2.9051 983.3873 39.9912 1378.1622 35 0.756863
+-------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes used for above beta = 2.0 tau values
+jet # rap phi pt m e tau1
+ 1 -0.8672 2.9051 983.8289 0.0000 1377.5818 1.293815
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e tau2
+ 1 -0.7949 2.8223 37.1551 0.0000 49.5265 0.423365
+ 2 -0.8701 2.9084 946.6904 0.0000 1328.2143 0.404615
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e tau3
+ 1 -0.8894 2.9133 149.8435 0.0000 213.1278 0.224477
+ 2 -0.8663 2.9074 798.6039 0.0000 1117.4629 0.119545
+ 3 -0.7952 2.8185 35.3883 0.0000 47.1790 0.412840
+-------------------------------------------------------------------------------------
+-------------------------------------------------------------------------------------
+Analyzing Jet 2:
+-------------------------------------------------------------------------------------
+-------------------------------------------------------------------------------------
+N-subjettiness with Unnormalized Measure (in GeV)
+beta = 1.0: One-pass Winner-Take-All kT Axes
+beta = 2.0: One-pass E-Scheme kT Axes
+-------------------------------------------------------------------------------------
+-------------------------------------------------------------------------------------
+ beta tau1 tau2 tau3 tau2/tau1 tau3/tau2
+ 1.000000 16.052840 12.479353 10.253741 0.777392 0.821656
+ 2.000000 6.953861 3.804487 3.737265 0.547104 0.982331
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Subjets found using beta = 1.0 tau values
+jet # rap phi pt m e constit tau1
+ 1 0.2195 6.0349 908.0979 87.7124 934.3868 47 16.052840
+total 0.2195 6.0349 908.0979 87.7124 934.3868 47 16.052840
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 0.2716 0.3354 8.9852 3.7341 10.0912 15 2.078777
+ 2 0.2189 6.0294 900.6142 59.5448 924.2956 32 10.400576
+total 0.2195 6.0349 908.0979 87.7124 934.3868 47 12.479353
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -0.1831 5.9784 10.1884 3.5582 10.9733 8 2.314550
+ 2 0.2239 6.0300 890.4392 28.4501 913.3223 24 5.860407
+ 3 0.2716 0.3354 8.9852 3.7341 10.0912 15 2.078784
+total 0.2195 6.0349 908.0979 87.7124 934.3868 47 10.253741
+-------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes used for above beta = 1.0 tau values
+jet # rap phi pt m e tau1
+ 1 0.2214 6.0293 907.9230 0.0000 930.2608 16.052840
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e tau2
+ 1 0.2222 0.3213 9.1481 0.0000 9.3749 2.078777
+ 2 0.2214 6.0293 900.2269 0.0000 922.3756 10.400576
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e tau3
+ 1 -0.0366 5.9036 10.3734 0.0000 10.3804 2.314550
+ 2 0.2214 6.0293 890.9582 0.0000 912.8791 5.860407
+ 3 0.2226 0.3214 9.1473 0.0000 9.3749 2.078784
+-------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Subjets found using beta = 2.0 tau values
+jet # rap phi pt m e constit tau1
+ 1 0.2195 6.0349 908.0979 87.7124 934.3868 47 6.953861
+total 0.2195 6.0349 908.0979 87.7124 934.3868 47 6.953861
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau2
+ 1 0.2716 0.3354 8.9852 3.7341 10.0912 15 0.578527
+ 2 0.2189 6.0294 900.6142 59.5448 924.2956 32 3.225960
+total 0.2195 6.0349 908.0979 87.7124 934.3868 47 3.804487
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 0.2325 6.0379 211.8631 10.3287 217.8724 12 0.431376
+ 2 0.2148 6.0268 688.7612 48.1236 706.4232 20 2.727362
+ 3 0.2716 0.3354 8.9852 3.7341 10.0912 15 0.578527
+total 0.2195 6.0349 908.0979 87.7124 934.3868 47 3.737265
+-------------------------------------------------------------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes used for above beta = 2.0 tau values
+jet # rap phi pt m e tau1
+ 1 0.2197 6.0352 908.2472 0.0000 930.2608 6.953861
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e tau2
+ 1 0.2687 0.3354 9.0463 0.0000 9.3749 0.578527
+ 2 0.2192 6.0293 900.6448 0.0000 922.3756 3.225960
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e tau3
+ 1 0.2323 6.0379 211.8862 0.0000 217.6274 0.431376
+ 2 0.2152 6.0267 688.7681 0.0000 704.7821 2.727362
+ 3 0.2687 0.3354 9.0463 0.0000 9.3749 0.578527
+-------------------------------------------------------------------------------------
+-------------------------------------------------------------------------------------
+Using the XCone Jet Algorithm
+-------------------------------------------------------------------------------------
+-------------------------------------------------------------------------------------
+Using beta = 1.00, R = 0.50
+-------------------------------------------------------------------------------------
+jet # rap phi pt m e constit tau2
+ 1 0.2218 6.0307 896.1128 30.5561 918.7747 26 15.304593
+ 2 -0.8670 2.9052 982.3424 31.7186 1375.9392 31 25.149966
+ beam 190.564181
+total -0.3454 3.0714 87.5520 2162.5794 2294.7139 57 231.018740
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.1812 6.0803 67.3417 11.1422 121.6795 29 17.824528
+ 2 0.2218 6.0307 896.1128 30.5561 918.7747 26 15.304593
+ 3 -0.8670 2.9052 982.3424 31.7186 1375.9392 31 25.149966
+ beam 122.754916
+total -0.3737 3.4759 22.6284 2256.8562 2416.3934 86 181.034002
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau4
+ 1 0.2211 0.2590 7.2461 1.7913 7.6474 12 3.383467
+ 2 -1.1812 6.0803 67.3417 11.1422 121.6795 29 17.824528
+ 3 0.2219 6.0296 893.4858 23.0670 915.8784 20 13.084193
+ 4 -0.8670 2.9052 982.3424 31.7186 1375.9392 31 25.149966
+ beam 118.258920
+total -0.3723 3.4713 18.1401 2262.4164 2421.1444 92 177.701075
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Jets
+jet # rap phi pt m e
+ 1 0.2216 6.0295 896.6655 0.0000 918.7747
+ 2 -0.8682 2.9070 981.9679 0.0000 1375.9392
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.2009 6.0969 67.1535 0.0000 121.6795
+ 2 0.2216 6.0295 896.6655 0.0000 918.7747
+ 3 -0.8682 2.9070 981.9679 0.0000 1375.9392
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 0.2314 0.2545 7.4472 0.0000 7.6474
+ 2 -1.2009 6.0969 67.1535 0.0000 121.6795
+ 3 0.2216 6.0295 893.8387 0.0000 915.8784
+ 4 -0.8682 2.9070 981.9679 0.0000 1375.9392
+-------------------------------------------------------------------------------------
+Using beta = 2.00, R = 0.50
+-------------------------------------------------------------------------------------
+jet # rap phi pt m e constit tau2
+ 1 0.2218 6.0307 896.1128 30.5561 918.7747 26 4.166495
+ 2 -0.8670 2.9052 982.3424 31.7186 1375.9392 31 4.095929
+ beam 190.564181
+total -0.3454 3.0714 87.5520 2162.5794 2294.7139 57 198.826605
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau3
+ 1 -1.1812 6.0803 67.3417 11.1422 121.6795 29 7.359191
+ 2 0.2218 6.0307 896.1128 30.5561 918.7747 26 4.166495
+ 3 -0.8670 2.9052 982.3424 31.7186 1375.9392 31 4.095929
+ beam 122.754916
+total -0.3737 3.4759 22.6284 2256.8562 2416.3934 86 138.376531
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e constit tau4
+ 1 0.2211 0.2590 7.2461 1.7913 7.6474 12 1.746243
+ 2 -1.1812 6.0803 67.3417 11.1422 121.6795 29 7.359191
+ 3 0.2219 6.0296 893.4858 23.0670 915.8784 20 2.381851
+ 4 -0.8670 2.9052 982.3424 31.7186 1375.9392 31 4.095929
+ beam 118.258920
+total -0.3723 3.4713 18.1401 2262.4164 2421.1444 92 133.842134
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Axes Used for Above Jets
+jet # rap phi pt m e
+ 1 0.2219 6.0307 896.6110 0.0000 918.7747
+ 2 -0.8672 2.9051 982.6792 0.0000 1375.9392
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 -1.1925 6.0804 67.6218 0.0000 121.6795
+ 2 0.2219 6.0307 896.6110 0.0000 918.7747
+ 3 -0.8672 2.9051 982.6792 0.0000 1375.9392
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+jet # rap phi pt m e
+ 1 0.2275 0.2596 7.4537 0.0000 7.6474
+ 2 -1.1925 6.0804 67.6218 0.0000 121.6795
+ 3 0.2221 6.0295 893.7411 0.0000 915.8784
+ 4 -0.8672 2.9051 982.6792 0.0000 1375.9392
+-------------------------------------------------------------------------------------
+Done Using the XCone Jet Algorithm
+-------------------------------------------------------------------------------------
Index: contrib/contribs/Nsubjettiness/tags/2.2.6/TauComponents.hh
===================================================================
--- contrib/contribs/Nsubjettiness/tags/2.2.6/TauComponents.hh (revision 0)
+++ contrib/contribs/Nsubjettiness/tags/2.2.6/TauComponents.hh (revision 1318)
@@ -0,0 +1,352 @@
+// Nsubjettiness Package
+// Questions/Comments? jthaler@jthaler.net
+//
+// Copyright (c) 2011-14
+// Jesse Thaler, Ken Van Tilburg, Christopher K. Vermilion, and TJ Wilkason
+//
+// $Id: MeasureFunction.hh 742 2014-08-23 15:43:29Z jthaler $
+//----------------------------------------------------------------------
+// This file is part of FastJet contrib.
+//
+// It is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2 of the License, or (at
+// your option) any later version.
+//
+// It is distributed in the hope that it will be useful, but WITHOUT
+// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+// License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this code. If not, see .
+//----------------------------------------------------------------------
+
+#ifndef __FASTJET_CONTRIB_TAUCOMPONENTS_HH__
+#define __FASTJET_CONTRIB_TAUCOMPONENTS_HH__
+
+#include "fastjet/PseudoJet.hh"
+#include "fastjet/ClusterSequence.hh"
+#include "fastjet/WrappedStructure.hh"
+
+
+#include
+#include
+#include