CMS 3D CMS Logo

Namespaces | Functions | Variables
fastjetfortran_madfks.cc File Reference
#include <iostream>
#include <memory>
#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

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

Function Documentation

◆ fastjetarea_()

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 392 of file fastjetfortran_madfks.cc.

392  {
393  assert(ijet > 0 && ijet <= int(jets.size()));
394  const ClusterSequenceAreaBase *csab = dynamic_cast<const ClusterSequenceAreaBase *>(cs.get());
395  if (csab != nullptr) {
396  // we have areas and can use csab to access all the area-related info
397  return csab->area(jets[ijet - 1]);
398  } else {
399  return 0.;
400  // Error("No area information associated to this jet.");
401  }
402 }

References cms::cuda::assert(), fwrapper::cs, and fwrapper::jets.

◆ fastjetconstituents_()

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 366 of file fastjetfortran_madfks.cc.

366  {
367  assert(cs.get() != nullptr);
368  assert(ijet > 0 && ijet <= int(jets.size()));
369 
370  vector<PseudoJet> constituents = cs->constituents(jets[ijet - 1]);
371 
372  nconstituents = constituents.size();
373  for (int i = 0; i < nconstituents; i++) {
374  constituent_indices[i] = constituents[i].cluster_hist_index() + 1;
375  }
376 }

References cms::cuda::assert(), fwrapper::cs, mps_fire::i, and fwrapper::jets.

◆ fastjetdmerge_()

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 413 of file fastjetfortran_madfks.cc.

413  {
414  assert(cs.get() != nullptr);
415  return cs->exclusive_dmerge(n);
416 }

References cms::cuda::assert(), fwrapper::cs, and dqmiodumpmetadata::n.

◆ fastjetdmergemax_()

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 429 of file fastjetfortran_madfks.cc.

429  {
430  assert(cs.get() != nullptr);
431  return cs->exclusive_dmerge_max(n);
432 }

References cms::cuda::assert(), fwrapper::cs, and dqmiodumpmetadata::n.

◆ fastjetglobalrhoandsigma_()

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 445 of file fastjetfortran_madfks.cc.

451  {
452  const ClusterSequenceAreaBase *csab = dynamic_cast<const ClusterSequenceAreaBase *>(cs.get());
453  if (csab != nullptr) {
454  // we have areas and can use csab to access all the area-related info
455  Selector range = SelectorRapRange(rapmin, rapmax) && SelectorPhiRange(phimin, phimax);
456  bool use_area_4vector = false;
457  csab->get_median_rho_and_sigma(range, use_area_4vector, rho, sigma, meanarea);
458  } else {
459  Error("Clustering with area is necessary in order to be able to evaluate rho.");
460  }
461 }

References fwrapper::cs, phimax, phimin, and FastTimerService_cff::range.

◆ fastjetppgenkt_()

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 259 of file fastjetfortran_madfks.cc.

266  {
267  // prepare jet def
268  if (palg == 1.0) {
269  jet_def = JetDefinition(kt_algorithm, R);
270  } else if (palg == 0.0) {
271  jet_def = JetDefinition(cambridge_algorithm, R);
272  } else if (palg == -1.0) {
273  jet_def = JetDefinition(antikt_algorithm, R);
274  } else {
275  jet_def = JetDefinition(genkt_algorithm, R, palg);
276  }
277 
278  // do everything
279  transfer_cluster_transfer(p, npart, jet_def, ptjetmin, f77jets, njets, whichjet);
280 }

References fwrapper::jet_def, BTaggingMonitoring_cff::njets, npart, AlCaHLTBitMon_ParallelJobs::p, dttmaxenums::R, and fwrapper::transfer_cluster_transfer().

◆ fastjetppgenktwitharea_()

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 324 of file fastjetfortran_madfks.cc.

333  {
334  // prepare jet def
335  if (palg == 1.0) {
336  jet_def = JetDefinition(kt_algorithm, R);
337  } else if (palg == 0.0) {
338  jet_def = JetDefinition(cambridge_algorithm, R);
339  } else if (palg == -1.0) {
340  jet_def = JetDefinition(antikt_algorithm, R);
341  } else {
342  jet_def = JetDefinition(genkt_algorithm, R, palg);
343  }
344 
345  // do everything
346  // transfer_cluster_transfer(p,npart,jet_def,f77jets,njets,whichjet,ghost_rapmax,nrepeat,ghost_area);
347 }

References fwrapper::jet_def, and dttmaxenums::R.

◆ fastjetsiscone_()

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 159 of file fastjetfortran_madfks.cc.

160  {
161  // prepare jet def
162  plugin = std::make_unique<SISConePlugin>(R, f);
163  jet_def = plugin.get();
164 
165  // do everything
166  // transfer_cluster_transfer(p,npart,jet_def,f77jets,njets,whichjet);
167 }

References f, fwrapper::jet_def, fwrapper::plugin, and dttmaxenums::R.

◆ fastjetsisconewitharea_()

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 204 of file fastjetfortran_madfks.cc.

213  {
214  // prepare jet def
215  plugin = std::make_unique<SISConePlugin>(R, f);
216  jet_def = plugin.get();
217 
218  // do everything
219  // transfer_cluster_transfer(p,npart,jet_def,f77jets,njets,whichjet,ghost_rapmax,nrepeat,ghost_area);
220 }

References f, fwrapper::jet_def, fwrapper::plugin, and dttmaxenums::R.

FastTimerService_cff.range
range
Definition: FastTimerService_cff.py:34
Selector
Functor that operates on <T>
Definition: Selector.h:22
mps_fire.i
i
Definition: mps_fire.py:428
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
fwrapper::cs
unique_ptr< ClusterSequence > cs
Definition: fastjetfortran_madfks.cc:47
phimin
float phimin
Definition: ReggeGribovPartonMCHadronizer.h:107
ZElectronSkim_cff.rho
rho
Definition: ZElectronSkim_cff.py:38
cms::cuda::assert
assert(be >=bs)
npart
double npart
Definition: HydjetWrapper.h:46
AlCaHLTBitMon_ParallelJobs.p
def p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
leef::Error
edm::ErrorSummaryEntry Error
Definition: LogErrorEventFilter.cc:29
fwrapper::jet_def
JetDefinition jet_def
Definition: fastjetfortran_madfks.cc:46
fwrapper::plugin
unique_ptr< JetDefinition::Plugin > plugin
Definition: fastjetfortran_madfks.cc:45
phimax
float phimax
Definition: ReggeGribovPartonMCHadronizer.h:106
BTaggingMonitoring_cff.njets
njets
Definition: BTaggingMonitoring_cff.py:10
fwrapper::transfer_cluster_transfer
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)
Definition: fastjetfortran_madfks.cc:81
dttmaxenums::R
Definition: DTTMax.h:29
fwrapper::jets
vector< PseudoJet > jets
Definition: fastjetfortran_madfks.cc:44