fastjet 2.4.5
Public Member Functions | Private Attributes | Static Private Attributes
fastjet::D0RunIIConePlugin Class Reference

D0RunIIConePlugin is a plugin for fastjet (v2.1 upwards) that provides an interface to the D0 version of Run-II iterative cone algorithm with midpoint seeds (also known as the Iterative Legacy Cone Algorithm, ILCA). More...

#include <D0RunIIConePlugin.hh>

Inheritance diagram for fastjet::D0RunIIConePlugin:
Inheritance graph
[legend]
Collaboration diagram for fastjet::D0RunIIConePlugin:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 D0RunIIConePlugin (double cone_radius, double min_jet_Et, double split_ratio=_DEFAULT_split_ratio)
 A D0RunIIConePlugin constructor which sets the "free" parameters of the algorithm:
double cone_radius () const
double min_jet_Et () const
double split_ratio () const
double far_ratio () const
double Et_min_ratio () const
bool kill_duplicate () const
double duplicate_dR () const
double duplicate_dPT () const
double search_factor () const
double pT_min_leading_protojet () const
double pT_min_second_protojet () const
int merge_max () const
double pT_min_nomerge () const
double overlap_threshold () const
 access the split_ratio() also by the name overlap_threshold()
virtual std::string description () const
 return a textual description of the jet-definition implemented in this plugin
virtual void run_clustering (ClusterSequence &) const
 given a ClusterSequence that has been filled up with initial particles, the following function should fill up the rest of the ClusterSequence, using the following member functions of ClusterSequence:
virtual double R () const
 the plugin mechanism's standard way of accessing the jet radius

Private Attributes

double _cone_radius
double _min_jet_Et
double _split_ratio
double _far_ratio
double _Et_min_ratio
bool _kill_duplicate
double _duplicate_dR
double _duplicate_dPT
double _search_factor
double _pT_min_leading_protojet
double _pT_min_second_protojet
int _merge_max
double _pT_min_nomerge

Static Private Attributes

static const double _DEFAULT_split_ratio = 0.5
static const double _DEFAULT_far_ratio = 0.5
static const double _DEFAULT_Et_min_ratio = 0.5
static const bool _DEFAULT_kill_duplicate = true
static const double _DEFAULT_duplicate_dR = 0.005
static const double _DEFAULT_duplicate_dPT = 0.01
static const double _DEFAULT_search_factor = 1.0
static const double _DEFAULT_pT_min_leading_protojet = 0.
static const double _DEFAULT_pT_min_second_protojet = 0.
static const int _DEFAULT_merge_max = 10000
static const double _DEFAULT_pT_min_nomerge = 0.

Detailed Description

D0RunIIConePlugin is a plugin for fastjet (v2.1 upwards) that provides an interface to the D0 version of Run-II iterative cone algorithm with midpoint seeds (also known as the Iterative Legacy Cone Algorithm, ILCA).

The D0 code has been taken from Lars Sonnenschein's web-space http://www-d0.fnal.gov/~sonne/D0RunIIcone.tgz

The version of the D0 Run II code distributed here has been modified by the FastJet authors, so as to provide access to the contents of the jets (as is necessary for the plugin). This does not modify the results of the clustering.

Definition at line 56 of file D0RunIIConePlugin.hh.


Constructor & Destructor Documentation

fastjet::D0RunIIConePlugin::D0RunIIConePlugin ( double  cone_radius,
double  min_jet_Et,
double  split_ratio = _DEFAULT_split_ratio 
) [inline]

A D0RunIIConePlugin constructor which sets the "free" parameters of the algorithm:

  • the cone_radius has the usual meaning
  • the min_jet_Et causes cones to be discarded at if at any iteration they have pt < Et_min_ratio * min_jet_Et. Two values have been used by D0 for min_jet_Et: 8 GeV in earlier Run II publicatinos, 6 GeV in later publications
  • split_ratio is equivalent to the overlap threshold during the split/merge step. Default: 0.5.

The remaining parameters of the algorithm are not to be modified if the algorithm is to correspond to the one actually used by D0.

Definition at line 76 of file D0RunIIConePlugin.hh.


Member Function Documentation

double fastjet::D0RunIIConePlugin::cone_radius ( ) const [inline]

Definition at line 97 of file D0RunIIConePlugin.hh.

{ return _cone_radius            ;} //= 0.5;
string fastjet::D0RunIIConePlugin::description ( ) const [virtual]

return a textual description of the jet-definition implemented in this plugin

Implements fastjet::JetDefinition::Plugin.

Definition at line 59 of file D0RunIIConePlugin.cc.

                                             {
  ostringstream desc;
  
  desc << "D0 Run II Improved Legacy (midpoint) cone jet algorithm, with ";
  desc << "cone_radius = "        << cone_radius        () << ", "
       << "min_jet_Et = "         << min_jet_Et         () << ", " 
       << "split_ratio = "        << split_ratio        ();

  return desc.str();
}
double fastjet::D0RunIIConePlugin::duplicate_dPT ( ) const [inline]

Definition at line 104 of file D0RunIIConePlugin.hh.

{ return _duplicate_dPT          ;} // =0.01; 
double fastjet::D0RunIIConePlugin::duplicate_dR ( ) const [inline]

Definition at line 103 of file D0RunIIConePlugin.hh.

{ return _duplicate_dR           ;} // =0.005; 
double fastjet::D0RunIIConePlugin::Et_min_ratio ( ) const [inline]

Definition at line 101 of file D0RunIIConePlugin.hh.

{ return _Et_min_ratio           ;} // =0.5;
double fastjet::D0RunIIConePlugin::far_ratio ( ) const [inline]

Definition at line 100 of file D0RunIIConePlugin.hh.

{ return _far_ratio              ;} // =0.5;
bool fastjet::D0RunIIConePlugin::kill_duplicate ( ) const [inline]

Definition at line 102 of file D0RunIIConePlugin.hh.

{ return _kill_duplicate         ;} // =true;
int fastjet::D0RunIIConePlugin::merge_max ( ) const [inline]

Definition at line 108 of file D0RunIIConePlugin.hh.

{ return _merge_max              ;} // =10000; 
double fastjet::D0RunIIConePlugin::min_jet_Et ( ) const [inline]

Definition at line 98 of file D0RunIIConePlugin.hh.

{ return _min_jet_Et             ;} //= 8.0;
double fastjet::D0RunIIConePlugin::overlap_threshold ( ) const [inline]

access the split_ratio() also by the name overlap_threshold()

Definition at line 113 of file D0RunIIConePlugin.hh.

{return split_ratio();}
double fastjet::D0RunIIConePlugin::pT_min_leading_protojet ( ) const [inline]

Definition at line 106 of file D0RunIIConePlugin.hh.

{ return _pT_min_leading_protojet;} // =0.; 
double fastjet::D0RunIIConePlugin::pT_min_nomerge ( ) const [inline]

Definition at line 109 of file D0RunIIConePlugin.hh.

{ return _pT_min_nomerge         ;} // =0.;
double fastjet::D0RunIIConePlugin::pT_min_second_protojet ( ) const [inline]

Definition at line 107 of file D0RunIIConePlugin.hh.

{ return _pT_min_second_protojet ;} // =0.;
virtual double fastjet::D0RunIIConePlugin::R ( ) const [inline, virtual]

the plugin mechanism's standard way of accessing the jet radius

Implements fastjet::JetDefinition::Plugin.

Definition at line 119 of file D0RunIIConePlugin.hh.

{return cone_radius();}
void fastjet::D0RunIIConePlugin::run_clustering ( ClusterSequence ) const [virtual]

given a ClusterSequence that has been filled up with initial particles, the following function should fill up the rest of the ClusterSequence, using the following member functions of ClusterSequence:

  • plugin_do_ij_recombination(...)
  • plugin_do_iB_recombination(...)

Implements fastjet::JetDefinition::Plugin.

Definition at line 71 of file D0RunIIConePlugin.cc.

References fastjet::d0::ILConeAlgorithm< Item >::ilcv, fastjet::ClusterSequence::jets(), fastjet::d0::ILConeAlgorithm< Item >::makeClusters(), fastjet::ClusterSequence::plugin_record_iB_recombination(), and fastjet::ClusterSequence::plugin_record_ij_recombination().

                                                                        {
 
  // create the entities needed by the D0 code
  vector<HepEntity> entities(clust_seq.jets().size());
  list<const HepEntity * > ensemble;
  for (unsigned i = 0; i < clust_seq.jets().size(); i++) {
    entities[i].Fill(clust_seq.jets()[i].E(),
                     clust_seq.jets()[i].px(),
                     clust_seq.jets()[i].py(),
                     clust_seq.jets()[i].pz(),
                     i);
    // use only the particles that do not have infinite rapidity
    if (abs(entities[i].pz) < entities[i].E) {
      ensemble.push_back(& (entities[i]));
    }
  }

  // prepare the D0 algorithm
  ILConeAlgorithm<HepEntity> 
    ilegac(cone_radius(), 
           min_jet_Et(), 
           split_ratio(),
           far_ratio(), 
           Et_min_ratio(), 
           kill_duplicate(), 
           duplicate_dR(), 
           duplicate_dPT(), 
           search_factor(), 
           pT_min_leading_protojet(), 
           pT_min_second_protojet(), 
           merge_max(), 
           pT_min_nomerge());

  // run the algorithm
  float Item_ET_Threshold = 0.;
  list<HepEntity> jets;
  ilegac.makeClusters(jets, ensemble, Item_ET_Threshold);

  // now transfer the information about the jets into the
  // FastJet structure
  for(int i = ilegac.ilcv.size()-1; i >= 0; i--) {
    
    std::list<const HepEntity*> tlist = ilegac.ilcv[i].LItems();
    std::list<const HepEntity*>::iterator tk;
    
    // get first particle in list
    tk = tlist.begin();

    // if there is no particle, just discard it
    // Note: this unexpected behaviour has been observed when the
    //       min_jet_Et parameter was set to 0
    if (tk==tlist.end())
      continue;

    int jet_k = (*tk)->index;
    // now merge with remaining particles in list
    tk++;
    for (; tk != tlist.end(); tk++) {
      int jet_i = jet_k;
      int jet_j = (*tk)->index;
      // do a fake recombination step with dij=0
      double dij = 0.0;
      clust_seq.plugin_record_ij_recombination(jet_i, jet_j, dij, jet_k);
    }

    // NB: put a sensible looking d_iB just to be nice...
    double d_iB = clust_seq.jets()[jet_k].perp2();
    clust_seq.plugin_record_iB_recombination(jet_k, d_iB);

  }
}
double fastjet::D0RunIIConePlugin::search_factor ( ) const [inline]

Definition at line 105 of file D0RunIIConePlugin.hh.

{ return _search_factor          ;} // =1.0; 
double fastjet::D0RunIIConePlugin::split_ratio ( ) const [inline]

Definition at line 99 of file D0RunIIConePlugin.hh.

{ return _split_ratio            ;} //= 0.5;

Member Data Documentation

Definition at line 124 of file D0RunIIConePlugin.hh.

const double fastjet::D0RunIIConePlugin::_DEFAULT_duplicate_dPT = 0.01 [static, private]

Definition at line 148 of file D0RunIIConePlugin.hh.

const double fastjet::D0RunIIConePlugin::_DEFAULT_duplicate_dR = 0.005 [static, private]

Definition at line 147 of file D0RunIIConePlugin.hh.

const double fastjet::D0RunIIConePlugin::_DEFAULT_Et_min_ratio = 0.5 [static, private]

Definition at line 145 of file D0RunIIConePlugin.hh.

const double fastjet::D0RunIIConePlugin::_DEFAULT_far_ratio = 0.5 [static, private]

Definition at line 144 of file D0RunIIConePlugin.hh.

const bool fastjet::D0RunIIConePlugin::_DEFAULT_kill_duplicate = true [static, private]

Definition at line 146 of file D0RunIIConePlugin.hh.

const int fastjet::D0RunIIConePlugin::_DEFAULT_merge_max = 10000 [static, private]

Definition at line 152 of file D0RunIIConePlugin.hh.

Definition at line 150 of file D0RunIIConePlugin.hh.

const double fastjet::D0RunIIConePlugin::_DEFAULT_pT_min_nomerge = 0. [static, private]

Definition at line 153 of file D0RunIIConePlugin.hh.

Definition at line 151 of file D0RunIIConePlugin.hh.

const double fastjet::D0RunIIConePlugin::_DEFAULT_search_factor = 1.0 [static, private]

Definition at line 149 of file D0RunIIConePlugin.hh.

const double fastjet::D0RunIIConePlugin::_DEFAULT_split_ratio = 0.5 [static, private]

Definition at line 143 of file D0RunIIConePlugin.hh.

Definition at line 134 of file D0RunIIConePlugin.hh.

Definition at line 133 of file D0RunIIConePlugin.hh.

Definition at line 131 of file D0RunIIConePlugin.hh.

Definition at line 130 of file D0RunIIConePlugin.hh.

Definition at line 132 of file D0RunIIConePlugin.hh.

Definition at line 138 of file D0RunIIConePlugin.hh.

Definition at line 125 of file D0RunIIConePlugin.hh.

Definition at line 136 of file D0RunIIConePlugin.hh.

Definition at line 139 of file D0RunIIConePlugin.hh.

Definition at line 137 of file D0RunIIConePlugin.hh.

Definition at line 135 of file D0RunIIConePlugin.hh.

Definition at line 126 of file D0RunIIConePlugin.hh.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines