CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Namespaces | Functions | Variables
fastjetfortran_madfks.cc File Reference
#include <iostream>
#include "fastjet/ClusterSequence.hh"
#include "fastjet/ClusterSequenceArea.hh"
#include "fastjet/Selector.hh"
#include "fastjet/SISConePlugin.hh"

Go to the source code of this file.

Namespaces

 fwrapper
 

Functions

double fastjetarea_ (const int &ijet)
 
void fastjetconstituents_ (const int &ijet, int *constituent_indices, int &nconstituents)
 
double fastjetdmerge_ (const int &n)
 
double fastjetdmergemax_ (const int &n)
 
void fastjetglobalrhoandsigma_ (const double &rapmin, const double &rapmax, const double &phimin, const double &phimax, double &rho, double &sigma, double &meanarea)
 
void fastjetppgenkt_ (const double *p, const int &npart, const double &R, const double &ptjetmin, const double &palg, double *f77jets, int &njets, int *whichjet)
 
void fastjetppgenktwitharea_ (const double *p, const int &npart, const double &R, const double &palg, const double &ghost_rapmax, const int &nrepeat, const double &ghost_area, double *f77jets, int &njets, int *whichjet)
 
void fastjetsiscone_ (const double *p, const int &npart, const double &R, const double &f, double *f77jets, int &njets, int *whichjet)
 
void fastjetsisconewitharea_ (const double *p, const int &npart, const double &R, const double &f, const double &ghost_rapmax, const int &nrepeat, const double &ghost_area, double *f77jets, int &njets, int *whichjet)
 
void fwrapper::transfer_cluster_transfer (const double *p, const int &npart, const JetDefinition &jet_def, const double &ptmin, double *f77jets, int &njets, int *whichjet, const double &ghost_maxrap=0.0, const int &nrepeat=0, const double &ghost_area=0.0)
 
void fwrapper::transfer_input_particles (const double *p, const int &npart)
 helper routine to transfer fortran input particles into More...
 
void fwrapper::transfer_jets (double *f77jets, int &njets)
 helper routine to help transfer jets -> f77jets[4*ijet+0..3] More...
 

Variables

auto_ptr< ClusterSequence > fwrapper::cs
 
vector< PseudoJet > fwrapper::input_particles
 
JetDefinition fwrapper::jet_def
 
vector< PseudoJet > fwrapper::jets
 
auto_ptr< JetDefinition::Plugin > fwrapper::plugin
 

Function Documentation

double fastjetarea_ ( const int &  ijet)

f77 interface to provide access to the area of a jet found in the jet clustering with one of the above "...witharea" routines.

Given the index ijet of a jet (in the range 1...njets) obtained in the last call to jet clustering, return its area. If the jets have not been obtained with a "...witharea" soutine it returns 0.

Definition at line 387 of file fastjetfortran_madfks.cc.

References fwrapper::cs, and fwrapper::jets.

387  {
388  assert(ijet > 0 && ijet <= int(jets.size()));
389  const ClusterSequenceAreaBase * csab =
390  dynamic_cast<const ClusterSequenceAreaBase *>(cs.get());
391  if (csab != 0) {
392  // we have areas and can use csab to access all the area-related info
393  return csab->area(jets[ijet-1]);
394  } else {
395  return 0.;
396 // Error("No area information associated to this jet.");
397  }
398 }
auto_ptr< ClusterSequence > cs
vector< PseudoJet > jets
void fastjetconstituents_ ( const int &  ijet,
int *  constituent_indices,
int &  nconstituents 
)

f77 interface to provide access to the constituents of a jet found in the jet clustering with one of the above routines.

Given the index ijet of a jet (in the range 1...njets) obtained in the last call to jet clustering, fill the array constituent_indices, with nconstituents entries, with the indices of the constituents that belong to that jet (which will be in the range 1...npart)

Definition at line 359 of file fastjetfortran_madfks.cc.

References fwrapper::cs, i, and fwrapper::jets.

360  {
361  assert(cs.get() != 0);
362  assert(ijet > 0 && ijet <= int(jets.size()));
363 
364  vector<PseudoJet> constituents = cs->constituents(jets[ijet-1]);
365 
366  nconstituents = constituents.size();
367  for (int i = 0; i < nconstituents; i++) {
368  constituent_indices[i] = constituents[i].cluster_hist_index()+1;
369  }
370 }
int i
Definition: DBlmapReader.cc:9
auto_ptr< ClusterSequence > cs
vector< PseudoJet > jets
double fastjetdmerge_ ( const int &  n)

return the dmin corresponding to the recombination that went from n+1 to n jets (sometimes known as d_{n n+1}).

Definition at line 410 of file fastjetfortran_madfks.cc.

References fwrapper::cs.

410  {
411  assert(cs.get() != 0);
412  return cs->exclusive_dmerge(n);
413 }
auto_ptr< ClusterSequence > cs
double fastjetdmergemax_ ( const int &  n)

return the maximum of the dmin encountered during all recombinations up to the one that led to an n-jet final state; identical to exclusive_dmerge, except in cases where the dmin do not increase monotonically.

Definition at line 427 of file fastjetfortran_madfks.cc.

References fwrapper::cs.

427  {
428  assert(cs.get() != 0);
429  return cs->exclusive_dmerge_max(n);
430 }
auto_ptr< ClusterSequence > cs
void fastjetglobalrhoandsigma_ ( const double &  rapmin,
const double &  rapmax,
const double &  phimin,
const double &  phimax,
double &  rho,
double &  sigma,
double &  meanarea 
)

return the background transverse momentum density per unit scalar area rho, its fluctuation sigma, and the mean area of the jets used for the background estimation in a given event, as evaluated in the range [rapmin,rapmax] in rapidity and [phimin,phimax] in azimuth

Definition at line 444 of file fastjetfortran_madfks.cc.

References fwrapper::cs.

446  {
447  const ClusterSequenceAreaBase * csab =
448  dynamic_cast<const ClusterSequenceAreaBase *>(cs.get());
449  if (csab != 0) {
450  // we have areas and can use csab to access all the area-related info
451  Selector range = SelectorRapRange(rapmin,rapmax) && SelectorPhiRange(phimin,phimax);
452  bool use_area_4vector = false;
453  csab->get_median_rho_and_sigma(range,use_area_4vector,rho,sigma,meanarea);
454  } else {
455  Error("Clustering with area is necessary in order to be able to evaluate rho.");
456  }
457 }
auto_ptr< ClusterSequence > cs
Definition: DDAxes.h:10
Functor that operates on &lt;T&gt;
Definition: Selector.h:25
void fastjetppgenkt_ ( const double *  p,
const int &  npart,
const double &  R,
const double &  ptjetmin,
const double &  palg,
double *  f77jets,
int &  njets,
int *  whichjet 
)

f77 interface to the pp generalised-kt (sequential recombination) algorithms, as defined in arXiv.org:0802.1189, which includes kt, Cambridge/Aachen and anti-kt as special cases.

Definition at line 258 of file fastjetfortran_madfks.cc.

References fwrapper::jet_def, and fwrapper::transfer_cluster_transfer().

261  {
262 
263  // prepare jet def
264  if (palg == 1.0) {
265  jet_def = JetDefinition(kt_algorithm, R);
266  } else if (palg == 0.0) {
267  jet_def = JetDefinition(cambridge_algorithm, R);
268  } else if (palg == -1.0) {
269  jet_def = JetDefinition(antikt_algorithm, R);
270  } else {
271  jet_def = JetDefinition(genkt_algorithm, R, palg);
272  }
273 
274  // do everything
275  transfer_cluster_transfer(p,npart,jet_def,ptjetmin,f77jets,njets,whichjet);
276 }
JetDefinition jet_def
double npart
Definition: HydjetWrapper.h:45
void transfer_cluster_transfer(const double *p, const int &npart, const JetDefinition &jet_def, const double &ptmin, double *f77jets, int &njets, int *whichjet, const double &ghost_maxrap=0.0, const int &nrepeat=0, const double &ghost_area=0.0)
void fastjetppgenktwitharea_ ( const double *  p,
const int &  npart,
const double &  R,
const double &  palg,
const double &  ghost_rapmax,
const int &  nrepeat,
const double &  ghost_area,
double *  f77jets,
int &  njets,
int *  whichjet 
)

f77 interface to the pp generalised-kt (sequential recombination) algorithms, as defined in arXiv.org:0802.1189, which includes kt, Cambridge/Aachen and anti-kt as special cases. Also calculates the active area of the jets, as defined in arXiv.org:0802.1188

Definition at line 321 of file fastjetfortran_madfks.cc.

References fwrapper::jet_def.

324  {
325 
326  // prepare jet def
327  if (palg == 1.0) {
328  jet_def = JetDefinition(kt_algorithm, R);
329  } else if (palg == 0.0) {
330  jet_def = JetDefinition(cambridge_algorithm, R);
331  } else if (palg == -1.0) {
332  jet_def = JetDefinition(antikt_algorithm, R);
333  } else {
334  jet_def = JetDefinition(genkt_algorithm, R, palg);
335  }
336 
337  // do everything
338 // transfer_cluster_transfer(p,npart,jet_def,f77jets,njets,whichjet,ghost_rapmax,nrepeat,ghost_area);
339 }
JetDefinition jet_def
void fastjetsiscone_ ( const double *  p,
const int &  npart,
const double &  R,
const double &  f,
double *  f77jets,
int &  njets,
int *  whichjet 
)

f77 interface to SISCone (via fastjet), as defined in arXiv:0704.0292 [see below for the interface to kt, Cam/Aachen & kt]

Definition at line 157 of file fastjetfortran_madfks.cc.

References fwrapper::jet_def, and fwrapper::plugin.

159  {
160 
161  // prepare jet def
162  plugin.reset(new SISConePlugin(R,f));
163  jet_def = plugin.get();
164 
165  // do everything
166 // transfer_cluster_transfer(p,npart,jet_def,f77jets,njets,whichjet);
167 }
auto_ptr< JetDefinition::Plugin > plugin
JetDefinition jet_def
double f[11][100]
void fastjetsisconewitharea_ ( const double *  p,
const int &  npart,
const double &  R,
const double &  f,
const double &  ghost_rapmax,
const int &  nrepeat,
const double &  ghost_area,
double *  f77jets,
int &  njets,
int *  whichjet 
)

f77 interface to SISCone (via fastjet), as defined in arXiv:0704.0292 [see below for the interface to kt, Cam/Aachen & kt] Also calculates the active area of the jets, as defined in arXiv.org:0802.1188

Definition at line 206 of file fastjetfortran_madfks.cc.

References fwrapper::jet_def, and fwrapper::plugin.

209  {
210 
211  // prepare jet def
212  plugin.reset(new SISConePlugin(R,f));
213  jet_def = plugin.get();
214 
215  // do everything
216 // transfer_cluster_transfer(p,npart,jet_def,f77jets,njets,whichjet,ghost_rapmax,nrepeat,ghost_area);
217 }
auto_ptr< JetDefinition::Plugin > plugin
JetDefinition jet_def
double f[11][100]