fastjet 2.4.3
Public Member Functions | Private Attributes | Static Private Attributes

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 D0RunIIConePlugin:
Inheritance graph
[legend]
Collaboration diagram for 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:

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

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

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 D0RunIIConePlugin::cone_radius ( ) const [inline]

Definition at line 97 of file D0RunIIConePlugin.hh.

References _cone_radius.

Referenced by R().

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

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

Implements 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 D0RunIIConePlugin::duplicate_dPT ( ) const [inline]

Definition at line 104 of file D0RunIIConePlugin.hh.

References _duplicate_dPT.

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

Definition at line 103 of file D0RunIIConePlugin.hh.

References _duplicate_dR.

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

Definition at line 101 of file D0RunIIConePlugin.hh.

References _Et_min_ratio.

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

Definition at line 100 of file D0RunIIConePlugin.hh.

References _far_ratio.

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

Definition at line 102 of file D0RunIIConePlugin.hh.

References _kill_duplicate.

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

Definition at line 108 of file D0RunIIConePlugin.hh.

References _merge_max.

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

Definition at line 98 of file D0RunIIConePlugin.hh.

References _min_jet_Et.

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

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

Definition at line 113 of file D0RunIIConePlugin.hh.

References split_ratio().

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

Definition at line 106 of file D0RunIIConePlugin.hh.

References _pT_min_leading_protojet.

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

Definition at line 109 of file D0RunIIConePlugin.hh.

References _pT_min_nomerge.

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

Definition at line 107 of file D0RunIIConePlugin.hh.

References _pT_min_second_protojet.

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

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

Implements JetDefinition::Plugin.

Definition at line 119 of file D0RunIIConePlugin.hh.

References cone_radius().

{return cone_radius();}
void 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 JetDefinition::Plugin.

Definition at line 71 of file D0RunIIConePlugin.cc.

References d0::ILConeAlgorithm< Item >::ilcv, ClusterSequence::jets(), d0::ILConeAlgorithm< Item >::makeClusters(), ClusterSequence::plugin_record_iB_recombination(), and 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 D0RunIIConePlugin::search_factor ( ) const [inline]

Definition at line 105 of file D0RunIIConePlugin.hh.

References _search_factor.

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

Definition at line 99 of file D0RunIIConePlugin.hh.

References _split_ratio.

Referenced by overlap_threshold().

{ return _split_ratio            ;} //= 0.5;

Member Data Documentation

Definition at line 124 of file D0RunIIConePlugin.hh.

Referenced by cone_radius().

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

Definition at line 148 of file D0RunIIConePlugin.hh.

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

Definition at line 147 of file D0RunIIConePlugin.hh.

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

Definition at line 145 of file D0RunIIConePlugin.hh.

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

Definition at line 144 of file D0RunIIConePlugin.hh.

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

Definition at line 146 of file D0RunIIConePlugin.hh.

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

Definition at line 152 of file D0RunIIConePlugin.hh.

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

Definition at line 150 of file D0RunIIConePlugin.hh.

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

Definition at line 153 of file D0RunIIConePlugin.hh.

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

Definition at line 151 of file D0RunIIConePlugin.hh.

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

Definition at line 149 of file D0RunIIConePlugin.hh.

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

Definition at line 143 of file D0RunIIConePlugin.hh.

Definition at line 134 of file D0RunIIConePlugin.hh.

Referenced by duplicate_dPT().

Definition at line 133 of file D0RunIIConePlugin.hh.

Referenced by duplicate_dR().

Definition at line 131 of file D0RunIIConePlugin.hh.

Referenced by Et_min_ratio().

Definition at line 130 of file D0RunIIConePlugin.hh.

Referenced by far_ratio().

Definition at line 132 of file D0RunIIConePlugin.hh.

Referenced by kill_duplicate().

Definition at line 138 of file D0RunIIConePlugin.hh.

Referenced by merge_max().

Definition at line 125 of file D0RunIIConePlugin.hh.

Referenced by min_jet_Et().

Definition at line 136 of file D0RunIIConePlugin.hh.

Referenced by pT_min_leading_protojet().

Definition at line 139 of file D0RunIIConePlugin.hh.

Referenced by pT_min_nomerge().

Definition at line 137 of file D0RunIIConePlugin.hh.

Referenced by pT_min_second_protojet().

Definition at line 135 of file D0RunIIConePlugin.hh.

Referenced by search_factor().

Definition at line 126 of file D0RunIIConePlugin.hh.

Referenced by split_ratio().


The documentation for this class was generated from the following files: