32 #include "fastjet/ClusterSequence.hh"    33 #include "fastjet/JadePlugin.hh"    36 #include "fastjet/NNH.hh"    37 #include "fastjet/NNFJN2Plain.hh"    49 FASTJET_BEGIN_NAMESPACE      
    75   void init(
const PseudoJet & jet) {
    76     double norm = 1.0/sqrt(jet.modp2());
    80     rt2E = sqrt(2.0)*jet.E();
    83   double distance(
const JadeBriefJet * jet)
 const {
    84     double dij = 1 - nx*jet->nx
    87     dij *= rt2E*jet->rt2E;
    91   double geometrical_distance(
const JadeBriefJet * jet)
 const {
    92     double dij = 1 - nx*jet->nx
    95     dij *= max(rt2E,jet->rt2E);
    99   double momentum_factor()
 const {
   103   double beam_distance()
 const {
   104     return numeric_limits<double>::max();
   107   double geometrical_beam_distance()
 const {
   111     const double almost_max = numeric_limits<double>::max() * (1 - 1e-13);
   112     return almost_max / rt2E;
   116   double rt2E, nx, ny, nz;
   121 string JadePlugin::description ()
 const {
   123   desc << 
"e+e- JADE algorithm plugin";
   126     desc << 
", using NNH strategy"; 
break;
   127   case strategy_NNFJN2Plain:
   128     desc << 
", using NNFJN2Plain strategy"; 
break;
   130     throw Error(
"Unrecognized strategy in JadePlugin");
   179 template<
class N> 
void JadePlugin::_actual_run_clustering(
ClusterSequence & cs)
 const {
   181   int njets = cs.
jets().size();
   191     double dij = nn.dij_min(i, j);
   195       nn.merge_jets(i, j, cs.
jets()[k], k);
   197       double diB = cs.
jets()[i].E()*cs.
jets()[i].E(); 
   211     _actual_run_clustering<NNH<JadeBriefJet> >(cs);
   213   case strategy_NNFJN2Plain:
   214     _actual_run_clustering<NNFJN2Plain<JadeBriefJet> >(cs);
   217     throw Error(
"Unrecognized strategy in JadePlugin");
   222 FASTJET_END_NAMESPACE      
 const std::vector< PseudoJet > & jets() const 
allow the user to access the internally stored _jets() array, which contains both the initial particl...
 
double norm(const VPoint p)
norm of a vector 
 
void plugin_record_ij_recombination(int jet_i, int jet_j, double dij, int &newjet_k)
record the fact that there has been a recombination between jets()[jet_i] and jets()[jet_k], with the specified dij, and return the index (newjet_k) allocated to the new jet, whose momentum is assumed to be the 4-vector sum of that of jet_i and jet_j 
 
void plugin_record_iB_recombination(int jet_i, double diB)
record the fact that there has been a recombination between jets()[jet_i] and the beam...
 
base class corresponding to errors that can be thrown by FastJet