|
fastjet 2.4.5
|
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 | |
Private Attributes | |
| RecombinationScheme | _recomb_scheme |
A class that will provide the recombination scheme facilities and/or allow a user to extend these facilities.
Definition at line 357 of file JetDefinition.hh.
| fastjet::JetDefinition::DefaultRecombiner::DefaultRecombiner | ( | RecombinationScheme | recomb_scheme = E_scheme | ) | [inline] |
Definition at line 359 of file JetDefinition.hh.
:
_recomb_scheme(recomb_scheme) {}
| string fastjet::JetDefinition::DefaultRecombiner::description | ( | ) | const [virtual] |
return a textual description of the recombination scheme implemented here
Implements fastjet::JetDefinition::Recombiner.
Definition at line 134 of file JetDefinition.cc.
References _recomb_scheme, fastjet::BIpt2_scheme, fastjet::BIpt_scheme, fastjet::E_scheme, fastjet::Et2_scheme, fastjet::Et_scheme, fastjet::pt2_scheme, and fastjet::pt_scheme.
{
switch(_recomb_scheme) {
case E_scheme:
return "E scheme recombination";
case pt_scheme:
return "pt scheme recombination";
case pt2_scheme:
return "pt2 scheme recombination";
case Et_scheme:
return "Et scheme recombination";
case Et2_scheme:
return "Et2 scheme recombination";
case BIpt_scheme:
return "boost-invariant pt scheme recombination";
case BIpt2_scheme:
return "boost-invariant pt2 scheme recombination";
default:
ostringstream err;
err << "DefaultRecombiner: unrecognized recombination scheme "
<< _recomb_scheme;
throw Error(err.str());
}
}
| 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 212 of file JetDefinition.cc.
References fastjet::BIpt2_scheme, fastjet::BIpt_scheme, fastjet::PseudoJet::E(), fastjet::E_scheme, fastjet::Et2_scheme, fastjet::Et_scheme, fastjet::PseudoJet::perp2(), fastjet::pt2_scheme, fastjet::pt_scheme, fastjet::PseudoJet::px(), fastjet::PseudoJet::py(), fastjet::PseudoJet::pz(), 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());
}
}
| void fastjet::JetDefinition::DefaultRecombiner::recombine | ( | const PseudoJet & | pa, |
| const PseudoJet & | pb, | ||
| PseudoJet & | pab | ||
| ) | const [virtual] |
recombine pa and pb and put result into pab
Implements fastjet::JetDefinition::Recombiner.
Definition at line 159 of file JetDefinition.cc.
References fastjet::BIpt2_scheme, fastjet::BIpt_scheme, fastjet::E_scheme, fastjet::Et2_scheme, fastjet::Et_scheme, fastjet::PseudoJet::perp(), fastjet::PseudoJet::perp2(), fastjet::PseudoJet::phi(), fastjet::pi, fastjet::pt2_scheme, fastjet::pt_scheme, fastjet::PseudoJet::rap(), fastjet::PseudoJet::set_user_index(), and fastjet::twopi.
{
double weighta, weightb;
switch(_recomb_scheme) {
case E_scheme:
pab = pa + pb;
pab.set_user_index(0);
return;
// all remaining schemes are massless recombinations and locally
// we just set weights, while the hard work is done below...
case pt_scheme:
case Et_scheme:
case BIpt_scheme:
weighta = pa.perp();
weightb = pb.perp();
break;
case pt2_scheme:
case Et2_scheme:
case BIpt2_scheme:
weighta = pa.perp2();
weightb = pb.perp2();
break;
default:
ostringstream err;
err << "DefaultRecombiner: unrecognized recombination scheme "
<< _recomb_scheme;
throw Error(err.str());
}
double perp_ab = pa.perp() + pb.perp();
if (perp_ab != 0.0) { // weights also non-zero...
double y_ab = (weighta * pa.rap() + weightb * pb.rap())/(weighta+weightb);
// take care with periodicity in phi...
double phi_a = pa.phi(), phi_b = pb.phi();
if (phi_a - phi_b > pi) phi_b += twopi;
if (phi_a - phi_b < -pi) phi_b -= twopi;
double phi_ab = (weighta * phi_a + weightb * phi_b)/(weighta+weightb);
pab = PseudoJet(perp_ab*cos(phi_ab),
perp_ab*sin(phi_ab),
perp_ab*sinh(y_ab),
perp_ab*cosh(y_ab));
} else { // weights are zero
pab = PseudoJet(0.0,0.0,0.0,0.0);
}
pab.set_user_index(0);
}
| RecombinationScheme fastjet::JetDefinition::DefaultRecombiner::scheme | ( | ) | const [inline] |
return the index of the recombination scheme
Definition at line 371 of file JetDefinition.hh.
{return _recomb_scheme;}
Definition at line 374 of file JetDefinition.hh.
Referenced by description().
1.7.4