A class that will provide the recombination scheme facilities and/or allow a user to extend these facilities. More...
#include <JetDefinition.hh>
Public Member Functions | |
DefaultRecombiner (RecombinationScheme recomb_scheme=E_scheme) | |
virtual std::string | description () const |
return a textual description of the recombination scheme implemented here | |
virtual void | recombine (const PseudoJet &pa, const PseudoJet &pb, PseudoJet &pab) const |
recombine pa and pb and put result into pab | |
virtual void | preprocess (PseudoJet &p) const |
routine called to preprocess each input jet (to make all input jets compatible with the scheme requirements (e.g. | |
RecombinationScheme | scheme () const |
return the index of the recombination scheme |
A class that will provide the recombination scheme facilities and/or allow a user to extend these facilities.
This class is derived from the (abstract) class Recombiner. It simply "sums" PseudoJets using a specified recombination scheme (E-scheme by default)
Definition at line 385 of file JetDefinition.hh.
void fastjet::JetDefinition::DefaultRecombiner::preprocess | ( | PseudoJet & | ) | const [virtual] |
routine called to preprocess each input jet (to make all input jets compatible with the scheme requirements (e.g.
massless).
Reimplemented from fastjet::JetDefinition::Recombiner.
Definition at line 216 of file JetDefinition.cc.
References fastjet::BIpt2_scheme, fastjet::BIpt_scheme, fastjet::E_scheme, fastjet::Et2_scheme, fastjet::Et_scheme, fastjet::PseudoJet::perp2(), fastjet::pt2_scheme, fastjet::pt_scheme, fastjet::PseudoJet::set_user_index(), and fastjet::PseudoJet::user_index().
{ switch(_recomb_scheme) { case E_scheme: case BIpt_scheme: case BIpt2_scheme: break; case pt_scheme: case pt2_scheme: { // these schemes (as in the ktjet implementation) need massless // initial 4-vectors with essentially E=|p|. double newE = sqrt(p.perp2()+p.pz()*p.pz()); int user_index = p.user_index(); p = PseudoJet(p.px(), p.py(), p.pz(), newE); p.set_user_index(user_index); } break; case Et_scheme: case Et2_scheme: { // these schemes (as in the ktjet implementation) need massless // initial 4-vectors with essentially E=|p|. double rescale = p.E()/sqrt(p.perp2()+p.pz()*p.pz()); int user_index = p.user_index(); p = PseudoJet(rescale*p.px(), rescale*p.py(), rescale*p.pz(), p.E()); p.set_user_index(user_index); } break; default: ostringstream err; err << "DefaultRecombiner: unrecognized recombination scheme " << _recomb_scheme; throw Error(err.str()); } }