Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

PseudoJet.cc File Reference

#include "fastjet/Error.hh"
#include "fastjet/PseudoJet.hh"
#include <valarray>
#include <iostream>
#include <sstream>
#include <cmath>

Include dependency graph for PseudoJet.cc:

Go to the source code of this file.

Namespaces

namespace  fastjet

Functions

PseudoJet operator+ (const PseudoJet &jet1, const PseudoJet &jet2)
PseudoJet operator- (const PseudoJet &jet1, const PseudoJet &jet2)
PseudoJet operator * (double coeff, const PseudoJet &jet)
PseudoJet operator * (const PseudoJet &jet, double coeff)
PseudoJet operator/ (const PseudoJet &jet, double coeff)
bool have_same_momentum (const PseudoJet &jeta, const PseudoJet &jetb)
 returns true if the momenta of the two input jets are identical
void sort_indices (vector< int > &indices, const vector< double > &values)
template<class T>
vector< T > objects_sorted_by_values (const vector< T > &objects, const vector< double > &values)
 given a vector of values with a one-to-one correspondence with the vector of objects, sort objects into an order such that the associated values would be in increasing order
vector< PseudoJet > sorted_by_pt (const vector< PseudoJet > &jets)
 return a vector of jets sorted into decreasing kt2
vector< PseudoJet > sorted_by_rapidity (const vector< PseudoJet > &jets)
 return a vector of jets sorted into increasing rapidity
vector< PseudoJet > sorted_by_E (const vector< PseudoJet > &jets)
 return a vector of jets sorted into decreasing energy


Function Documentation

bool fastjet::have_same_momentum const PseudoJet &  jeta,
const PseudoJet &  jetb
 

returns true if the momenta of the two input jets are identical

Definition at line 218 of file PseudoJet.cc.

References fastjet::PseudoJet::E(), fastjet::PseudoJet::px(), fastjet::PseudoJet::py(), and fastjet::PseudoJet::pz().

Referenced by fastjet::SISConePlugin::run_clustering().

00218                                                                         {
00219   return jeta.px() == jetb.px()
00220     &&   jeta.py() == jetb.py()
00221     &&   jeta.pz() == jetb.pz()
00222     &&   jeta.E()  == jetb.E();
00223 }

template<class T>
vector<T> fastjet::objects_sorted_by_values const vector< T > &  objects,
const vector< double > &  values
 

given a vector of values with a one-to-one correspondence with the vector of objects, sort objects into an order such that the associated values would be in increasing order

Definition at line 261 of file PseudoJet.cc.

References fastjet::sort_indices().

Referenced by fastjet::sorted_by_E(), fastjet::sorted_by_pt(), and fastjet::sorted_by_rapidity().

00263                                                       {
00264 
00265   assert(objects.size() == values.size());
00266 
00267   // get a vector of indices
00268   vector<int> indices(values.size());
00269   for (size_t i = 0; i < indices.size(); i++) {indices[i] = i;}
00270   
00271   // sort the indices
00272   sort_indices(indices, values);
00273   
00274   // copy the objects 
00275   vector<T> objects_sorted(objects.size());
00276   
00277   // place the objects in the correct order
00278   for (size_t i = 0; i < indices.size(); i++) {
00279     objects_sorted[i] = objects[indices[i]];
00280   }
00281 
00282   return objects_sorted;
00283 }

PseudoJet fastjet::operator * const PseudoJet &  jet,
double  coeff
 

Definition at line 167 of file PseudoJet.cc.

00167                                                           {
00168   return coeff*jet;
00169 } 

PseudoJet fastjet::operator * double  coeff,
const PseudoJet &  jet
 

Definition at line 157 of file PseudoJet.cc.

00157                                                           {
00158   //return PseudoJet(coeff*jet.four_mom());
00159   // the following code is hopefully more efficient
00160   PseudoJet coeff_times_jet(jet);
00161   coeff_times_jet *= coeff;
00162   return coeff_times_jet;
00163 } 

PseudoJet fastjet::operator+ const PseudoJet &  jet1,
const PseudoJet &  jet2
 

Definition at line 137 of file PseudoJet.cc.

References fastjet::PseudoJet::E(), fastjet::PseudoJet::px(), fastjet::PseudoJet::py(), and fastjet::PseudoJet::pz().

00137                                                                      {
00138   //return PseudoJet(jet1.four_mom()+jet2.four_mom());
00139   return PseudoJet(jet1.px()+jet2.px(),
00140                    jet1.py()+jet2.py(),
00141                    jet1.pz()+jet2.pz(),
00142                    jet1.E() +jet2.E()  );
00143 } 

PseudoJet fastjet::operator- const PseudoJet &  jet1,
const PseudoJet &  jet2
 

Definition at line 147 of file PseudoJet.cc.

References fastjet::PseudoJet::E(), fastjet::PseudoJet::px(), fastjet::PseudoJet::py(), and fastjet::PseudoJet::pz().

00147                                                                      {
00148   //return PseudoJet(jet1.four_mom()-jet2.four_mom());
00149   return PseudoJet(jet1.px()-jet2.px(),
00150                    jet1.py()-jet2.py(),
00151                    jet1.pz()-jet2.pz(),
00152                    jet1.E() -jet2.E()  );
00153 } 

PseudoJet fastjet::operator/ const PseudoJet &  jet,
double  coeff
 

Definition at line 173 of file PseudoJet.cc.

00173                                                           {
00174   return (1.0/coeff)*jet;
00175 } 

void fastjet::sort_indices vector< int > &  indices,
const vector< double > &  values
 

Definition at line 251 of file PseudoJet.cc.

Referenced by fastjet::objects_sorted_by_values().

00252                                                         {
00253   IndexedSortHelper index_sort_helper(&values);
00254   sort(indices.begin(), indices.end(), index_sort_helper);
00255 }

vector<PseudoJet> fastjet::sorted_by_E const vector< PseudoJet > &  jets  ) 
 

return a vector of jets sorted into decreasing energy

Definition at line 303 of file PseudoJet.cc.

References fastjet::objects_sorted_by_values().

Referenced by main().

00303                                                               {
00304   vector<double> energies(jets.size());
00305   for (size_t i = 0; i < jets.size(); i++) {energies[i] = -jets[i].E();}
00306   return objects_sorted_by_values(jets, energies);
00307 }

vector<PseudoJet> fastjet::sorted_by_pt const vector< PseudoJet > &  jets  ) 
 

return a vector of jets sorted into decreasing kt2

Definition at line 287 of file PseudoJet.cc.

References fastjet::objects_sorted_by_values().

Referenced by main(), and print_jets().

00287                                                                {
00288   vector<double> minus_kt2(jets.size());
00289   for (size_t i = 0; i < jets.size(); i++) {minus_kt2[i] = -jets[i].kt2();}
00290   return objects_sorted_by_values(jets, minus_kt2);
00291 }

vector<PseudoJet> fastjet::sorted_by_rapidity const vector< PseudoJet > &  jets  ) 
 

return a vector of jets sorted into increasing rapidity

Definition at line 295 of file PseudoJet.cc.

References fastjet::objects_sorted_by_values().

00295                                                                      {
00296   vector<double> rapidities(jets.size());
00297   for (size_t i = 0; i < jets.size(); i++) {rapidities[i] = jets[i].rap();}
00298   return objects_sorted_by_values(jets, rapidities);
00299 }


Generated on Sat Mar 3 12:36:32 2007 for fastjet by  doxygen 1.4.2