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)
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

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

References fastjet::sort_indices().

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

00248                                                       {
00249 
00250   assert(objects.size() == values.size());
00251 
00252   // get a vector of indices
00253   vector<int> indices(values.size());
00254   for (size_t i = 0; i < indices.size(); i++) {indices[i] = i;}
00255   
00256   // sort the indices
00257   sort_indices(indices, values);
00258   
00259   // copy the objects 
00260   vector<T> objects_sorted(objects.size());
00261   
00262   // place the objects in the correct order
00263   for (size_t i = 0; i < indices.size(); i++) {
00264     objects_sorted[i] = objects[indices[i]];
00265   }
00266 
00267   return objects_sorted;
00268 }

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

Definition at line 161 of file PseudoJet.cc.

00161                                                           {
00162   return coeff*jet;
00163 } 

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

Definition at line 151 of file PseudoJet.cc.

00151                                                           {
00152   //return PseudoJet(coeff*jet.four_mom());
00153   // the following code is hopefully more efficient
00154   PseudoJet coeff_times_jet(jet);
00155   coeff_times_jet *= coeff;
00156   return coeff_times_jet;
00157 } 

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

Definition at line 131 of file PseudoJet.cc.

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

00131                                                                      {
00132   //return PseudoJet(jet1.four_mom()+jet2.four_mom());
00133   return PseudoJet(jet1.px()+jet2.px(),
00134                    jet1.py()+jet2.py(),
00135                    jet1.pz()+jet2.pz(),
00136                    jet1.E() +jet2.E()  );
00137 } 

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

Definition at line 141 of file PseudoJet.cc.

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

00141                                                                      {
00142   //return PseudoJet(jet1.four_mom()-jet2.four_mom());
00143   return PseudoJet(jet1.px()-jet2.px(),
00144                    jet1.py()-jet2.py(),
00145                    jet1.pz()-jet2.pz(),
00146                    jet1.E() -jet2.E()  );
00147 } 

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

Definition at line 167 of file PseudoJet.cc.

00167                                                           {
00168   return (1.0/coeff)*jet;
00169 } 

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

Definition at line 236 of file PseudoJet.cc.

Referenced by fastjet::objects_sorted_by_values().

00237                                                         {
00238   IndexedSortHelper index_sort_helper(&values);
00239   sort(indices.begin(), indices.end(), index_sort_helper);
00240 }

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

return a vector of jets sorted into decreasing energy

Definition at line 288 of file PseudoJet.cc.

References fastjet::objects_sorted_by_values().

Referenced by main().

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

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

return a vector of jets sorted into decreasing kt2

Definition at line 272 of file PseudoJet.cc.

References fastjet::objects_sorted_by_values().

Referenced by main(), and print_jets().

00272                                                                {
00273   vector<double> minus_kt2(jets.size());
00274   for (size_t i = 0; i < jets.size(); i++) {minus_kt2[i] = -jets[i].kt2();}
00275   return objects_sorted_by_values(jets, minus_kt2);
00276 }

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

return a vector of jets sorted into increasing rapidity

Definition at line 280 of file PseudoJet.cc.

References fastjet::objects_sorted_by_values().

00280                                                                      {
00281   vector<double> rapidities(jets.size());
00282   for (size_t i = 0; i < jets.size(); i++) {rapidities[i] = jets[i].rap();}
00283   return objects_sorted_by_values(jets, rapidities);
00284 }


Generated on Thu Oct 12 17:36:35 2006 for fastjet by  doxygen 1.4.2