fastjet 2.4.5
|
Public Member Functions | |
TemporaryJet (float seedET) | |
TemporaryJet (float seedET, float y, float phi) | |
~TemporaryJet () | |
float | dist (TemporaryJet &jet) const |
void | midpoint (const TemporaryJet &jet, float &y, float &phi) const |
bool | is_stable (const std::list< const Item * > &itemlist, float radius, float min_ET, int max_iterations=50) |
Definition at line 200 of file ILConeAlgorithm.hpp.
fastjet::d0::ILConeAlgorithm< Item >::TemporaryJet::TemporaryJet | ( | float | seedET | ) | [inline] |
Definition at line 205 of file ILConeAlgorithm.hpp.
: ProtoJet<Item>(seedET) {;}
fastjet::d0::ILConeAlgorithm< Item >::TemporaryJet::TemporaryJet | ( | float | seedET, |
float | y, | ||
float | phi | ||
) | [inline] |
Definition at line 207 of file ILConeAlgorithm.hpp.
fastjet::d0::ILConeAlgorithm< Item >::TemporaryJet::~TemporaryJet | ( | ) | [inline] |
Definition at line 210 of file ILConeAlgorithm.hpp.
{;}
float fastjet::d0::ILConeAlgorithm< Item >::TemporaryJet::dist | ( | TemporaryJet & | jet | ) | const [inline] |
Definition at line 212 of file ILConeAlgorithm.hpp.
References fastjet::d0::ProtoJet< Item >::phi(), fastjet::d0::RDelta(), and fastjet::d0::ProtoJet< Item >::y().
bool fastjet::d0::ILConeAlgorithm< Item >::TemporaryJet::is_stable | ( | const std::list< const Item * > & | itemlist, |
float | radius, | ||
float | min_ET, | ||
int | max_iterations = 50 |
||
) | [inline] |
Definition at line 250 of file ILConeAlgorithm.hpp.
References fastjet::d0::inline_maths::phi(), and fastjet::d0::RD2().
{ float radius2 = radius*radius; float Rcut= 1.E-06; // ?? if(_Increase_Delta_R) Rcut= 1.E-04; bool stable= true; int trial= 0; float Yst; float PHIst; do { trial++; //std::cout << " trial " << trial << " " << _y << " " << _phi << std::endl; Yst = this->_y; PHIst= this->_phi; //cout << "is_stable beginning do loop: this->_pT=" << this->_pT << " this->_y=" << this->_y << " this->_phi=" << this->_phi << endl; this->erase(); this->setJet(Yst,PHIst,0.0); #ifdef ILCA_USE_ORDERED_LIST std::list<const Item*>::const_iterator lower = lower_bound(itemlist.begin(),itemlist.end(),Yst-radius, rapidity_order<Item>()); std::list<const Item*>::const_iterator upper = upper_bound(itemlist.begin(),itemlist.end(),Yst+radius, rapidity_order<Item>()); for(std::list<const Item*>::const_iterator tk = lower; tk != upper; ++tk) { //std::cout << " is_stable: item y=" << (*tk)->y() << " phi=" << (*tk)->phi() << " RD2=" << RD2((*tk)->y(),(*tk)->phi(),Yst,PHIst) << " " << Yst-radius << " " << Yst+radius << endl; if(RD2((*tk)->y(),(*tk)->phi(),Yst,PHIst) <= radius2) { addItem(*tk); } } #else #ifdef ILCA_USE_MMAP // need to loop only on the subset with Yst-R < y < Yst+R for ( std::multimap<float,const Item*>::const_iterator tk = items.lower_bound(Yst-radius); tk != items.upper_bound(Yst+radius); ++tk ) { //std::cout << " item " << (*tk)->y() << " " << (*tk)->phi() << " " << RD2((*tk)->y(),(*tk)->phi(),Yst,PHIst) << " " << Yst-radius << " " << Yst+radius << endl; if(RD2(((*tk).second)->y(),((*tk).second)->phi(),Yst,PHIst) <= radius2) { addItem((*tk).second); } } #else //cout << " is_stable: itemlist.size()=" << itemlist.size() << endl; for(typename std::list<const Item*>::const_iterator tk = itemlist.begin(); tk != itemlist.end(); ++tk) { //std::cout << " is_stable: item (*tk)->y()=" << (*tk)->y() << " (*tk)->phi=" << (*tk)->phi() << " RD2=" << RD2((*tk)->y(),(*tk)->phi(),Yst,PHIst) << " Yst-rad=" << Yst-radius << " Yst+rad=" << Yst+radius << endl; if(RD2((*tk)->y(),(*tk)->phi(),Yst,PHIst) <= radius2) { //cout << "add item to *tk" << endl; this->addItem(*tk); } } #endif #endif //std::cout << "is_stable, before update: jet this->_y=" << this->_y << " _phi=" << this->_phi << " _pT=" << this->_pT << " min_ET=" << min_ET << std::endl; this->updateJet(); //std::cout << "is_stable, after update: jet this->_y=" << this->_y << " _phi=" << this->_phi << " _pT=" << this->_pT << " min_ET=" << min_ET << std::endl; if(this->_pT < min_ET ) { stable= false; break; } //cout << "is_stable end while loop: this->_pT=" << this->_pT << " this->_y=" << this->_y << " this->_phi=" << this->_phi << endl; } while(RD2(this->_y,this->_phi,Yst,PHIst) >= Rcut && trial <= max_iterations); //std::cout << " trial stable " << trial << " " << stable << std::endl; return stable; }
void fastjet::d0::ILConeAlgorithm< Item >::TemporaryJet::midpoint | ( | const TemporaryJet & | jet, |
float & | y, | ||
float & | phi | ||
) | const [inline] |
Definition at line 217 of file ILConeAlgorithm.hpp.
References fastjet::d0::ProtoJet< Item >::phi(), fastjet::d0::inline_maths::PI, fastjet::d0::ProtoJet< Item >::pT(), fastjet::d0::inline_maths::TWOPI, and fastjet::d0::ProtoJet< Item >::y().
{ // Midpoint should probably be computed w/4-vectors but don't // have that info. Preserving Pt-weighted calculation - JPK float pTsum = this->_pT + jet.pT(); y = (this->_y*this->_pT + jet.y()*jet.pT())/pTsum; phi = (this->_phi*this->_pT + jet.phi()*jet.pT())/pTsum; // careful with phi-wrap area: convert from [0,2pi] to [-pi,pi] //ls: original D0 code, as of 23/Mar/2007 //if ( abs(phi-this->_phi)>2.0 ) { // assumes cones R=1.14 or smaller, merge within 2R only //ls: abs bug fixed 26/Mar/2007 if ( fabs(phi-this->_phi)>2.0 ) { // assumes cones R=1.14 or smaller, merge within 2R only phi = fmod( this->_phi+PI, TWOPI); if (phi < 0.0) phi += TWOPI; phi -= PI; float temp=fmod( jet.phi()+PI, TWOPI); if (temp < 0.0) temp += TWOPI; temp -= PI; phi = (phi*this->_pT + temp*jet.pT()) /pTsum; } if ( phi < 0. ) phi += TWOPI; }