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 272 of file PseudoJet.cc.

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

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

00272                                                                         {
00273   return jeta.px() == jetb.px()
00274     &&   jeta.py() == jetb.py()
00275     &&   jeta.pz() == jetb.pz()
00276     &&   jeta.E()  == jetb.E();
00277 }

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 315 of file PseudoJet.cc.

References fastjet::sort_indices().

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

00317                                                       {
00318 
00319   assert(objects.size() == values.size());
00320 
00321   // get a vector of indices
00322   vector<int> indices(values.size());
00323   for (size_t i = 0; i < indices.size(); i++) {indices[i] = i;}
00324   
00325   // sort the indices
00326   sort_indices(indices, values);
00327   
00328   // copy the objects 
00329   vector<T> objects_sorted(objects.size());
00330   
00331   // place the objects in the correct order
00332   for (size_t i = 0; i < indices.size(); i++) {
00333     objects_sorted[i] = objects[indices[i]];
00334   }
00335 
00336   return objects_sorted;
00337 }

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 305 of file PseudoJet.cc.

Referenced by fastjet::objects_sorted_by_values().

00306                                                         {
00307   IndexedSortHelper index_sort_helper(&values);
00308   sort(indices.begin(), indices.end(), index_sort_helper);
00309 }

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

return a vector of jets sorted into decreasing energy

Definition at line 357 of file PseudoJet.cc.

References fastjet::objects_sorted_by_values().

Referenced by main().

00357                                                               {
00358   vector<double> energies(jets.size());
00359   for (size_t i = 0; i < jets.size(); i++) {energies[i] = -jets[i].E();}
00360   return objects_sorted_by_values(jets, energies);
00361 }

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

return a vector of jets sorted into decreasing kt2

Definition at line 341 of file PseudoJet.cc.

References fastjet::objects_sorted_by_values().

Referenced by main(), and print_jets().

00341                                                                {
00342   vector<double> minus_kt2(jets.size());
00343   for (size_t i = 0; i < jets.size(); i++) {minus_kt2[i] = -jets[i].kt2();}
00344   return objects_sorted_by_values(jets, minus_kt2);
00345 }

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

return a vector of jets sorted into increasing rapidity

Definition at line 349 of file PseudoJet.cc.

References fastjet::objects_sorted_by_values().

00349                                                                      {
00350   vector<double> rapidities(jets.size());
00351   for (size_t i = 0; i < jets.size(); i++) {rapidities[i] = jets[i].rap();}
00352   return objects_sorted_by_values(jets, rapidities);
00353 }


Generated on Mon Apr 2 20:58:14 2007 for fastjet by  doxygen 1.4.2