DAS  3.0
Das Analysis System
TilingExtent

Public Member Functions

 TilingExtent (ClusterSequence &cs)
 
 TilingExtent (const std::vector< PseudoJet > &particles)
 
double minrap () const
 
double maxrap () const
 
double sum_of_binned_squared_multiplicity () const
 

Private Member Functions

void _determine_rapidity_extent (const std::vector< PseudoJet > &particles)
 

Private Attributes

double _minrap
 
double _maxrap
 
double _cumul2
 

Constructor & Destructor Documentation

◆ TilingExtent() [1/2]

◆ TilingExtent() [2/2]

TilingExtent ( const std::vector< PseudoJet > &  particles)
6121  {
6123 }

Member Function Documentation

◆ _determine_rapidity_extent()

void _determine_rapidity_extent ( const std::vector< PseudoJet > &  particles)
private
6124  {
6125  int nrap = 20;
6126  int nbins = 2*nrap;
6127  vector<double> counts(nbins, 0);
6128  _minrap = numeric_limits<double>::max();
6129  _maxrap = -numeric_limits<double>::max();
6130  int ibin;
6131  for (unsigned i = 0; i < particles.size(); i++) {
6132  if (particles[i].E() == abs(particles[i].pz())) continue;
6133  double rap = particles[i].rap();
6134  if (rap < _minrap) _minrap = rap;
6135  if (rap > _maxrap) _maxrap = rap;
6136  ibin = int(rap+nrap);
6137  if (ibin < 0) ibin = 0;
6138  if (ibin >= nbins) ibin = nbins - 1;
6139  counts[ibin]++;
6140  }
6141  double max_in_bin = 0;
6142  for (ibin = 0; ibin < nbins; ibin++) {
6143  if (max_in_bin < counts[ibin]) max_in_bin = counts[ibin];
6144  }
6145  const double allowed_max_fraction = 0.25;
6146  const double min_multiplicity = 4;
6147  double allowed_max_cumul = floor(max(max_in_bin * allowed_max_fraction, min_multiplicity));
6148  if (allowed_max_cumul > max_in_bin) allowed_max_cumul = max_in_bin;
6149  double cumul_lo = 0;
6150  _cumul2 = 0;
6151  for (ibin = 0; ibin < nbins; ibin++) {
6152  cumul_lo += counts[ibin];
6153  if (cumul_lo >= allowed_max_cumul) {
6154  double y = ibin-nrap;
6155  if (y > _minrap) _minrap = y;
6156  break;
6157  }
6158  }
6159  assert(ibin != nbins); // internal consistency check that you found a bin
6160  _cumul2 += cumul_lo*cumul_lo;
6161  int ibin_lo = ibin;
6162  double cumul_hi = 0;
6163  for (ibin = nbins-1; ibin >= 0; ibin--) {
6164  cumul_hi += counts[ibin];
6165  if (cumul_hi >= allowed_max_cumul) {
6166  double y = ibin-nrap+1; // +1 here is the rapidity bin width
6167  if (y < _maxrap) _maxrap = y;
6168  break;
6169  }
6170  }
6171  assert(ibin >= 0); // internal consistency check that you found a bin
6172  int ibin_hi = ibin;
6173  assert(ibin_hi >= ibin_lo);
6174  if (ibin_hi == ibin_lo) {
6175  _cumul2 = pow(double(cumul_lo + cumul_hi - counts[ibin_hi]), 2);
6176  } else {
6177  _cumul2 += cumul_hi*cumul_hi;
6178  for (ibin = ibin_lo+1; ibin < ibin_hi; ibin++) {
6179  _cumul2 += counts[ibin]*counts[ibin];
6180  }
6181  }
6182 }

◆ maxrap()

double maxrap ( ) const
inline
1156 {return _maxrap;}

◆ minrap()

double minrap ( ) const
inline
1155 {return _minrap;}

◆ sum_of_binned_squared_multiplicity()

double sum_of_binned_squared_multiplicity ( ) const
inline
1157 {return _cumul2;}

Member Data Documentation

◆ _cumul2

double _cumul2
private

◆ _maxrap

double _maxrap
private

◆ _minrap

double _minrap
private

The documentation for this class was generated from the following file:
TilingExtent::_maxrap
double _maxrap
Definition: fjcore.cc:1159
TilingExtent::_minrap
double _minrap
Definition: fjcore.cc:1159
TilingExtent::_cumul2
double _cumul2
Definition: fjcore.cc:1159
TilingExtent::_determine_rapidity_extent
void _determine_rapidity_extent(const std::vector< PseudoJet > &particles)
Definition: fjcore.cc:6124
Ntupliser_cfg.particles
particles
Definition: Ntupliser_cfg.py:270
ClusterSequence::jets
const std::vector< PseudoJet > & jets() const
Definition: fjcore.hh:1673