DAS  3.0
Das Analysis System
HTnTransformerfinal

#include <HTn.h>

+ Inheritance diagram for HTnTransformer:
+ Collaboration diagram for HTnTransformer:

Public Member Functions

 HTnTransformer (TUnfoldBinning *)
 
 ~HTnTransformer ()=default
 
void Transform (const Eigen::VectorXd &) const override
 
- Public Member Functions inherited from Transformer
virtual ~Transformer ()=default
 
virtual void RemoveBadInputBins (TH1 *, TH2 *)
 
 Transformer (TUnfoldBinning *, bool=true)
 

Public Attributes

const size_t nHtBins
 
- Public Attributes inherited from Transformer
TUnfoldBinning * preBinning
 
TUnfoldBinning * postBinning
 

Additional Inherited Members

- Static Public Attributes inherited from Transformer
static Eigen::VectorXd y
 
- Static Protected Member Functions inherited from Transformer
static void AddAxis (TUnfoldBinning *, TUnfoldBinning *, int)
 

Constructor & Destructor Documentation

◆ HTnTransformer()

HTnTransformer ( TUnfoldBinning *  pre)

Constructor.

Parameters
prea priori, gen or rec binning
227  :
228  Transformer(pre, false), nHtBins(pre->GetDistributionBinning(0)->GetNoElements()-1)
229 {
231 
232  postBinning->AddAxis("j", nJetsBins-1, &n_jets_edges[1] /* 3+ */, false, false);
233  postBinning->AddAxis("i", nJetsBins-1, &n_jets_edges[0] /* 2+ */, false, false);
234 }

◆ ~HTnTransformer()

~HTnTransformer ( )
default

Destructor.

Member Function Documentation

◆ Transform()

void Transform ( const Eigen::VectorXd &  ) const
overridevirtual

Calculate R32, R43, R42, etc. from the 2-jet, 3-jet, 4-jet, etc. inclusive jet cross sections in bins of HT.

Todo:
harmonise (either nJetsmin, or 2)

Reimplemented from Transformer.

237 {
238  VectorXd z = x.segment(preBinning->GetStartBin()-1,
239  preBinning->GetDistributionNumberOfBins());
240 
241  // 1) from excl mult to incl mult
242  for (int n = nJetsmax; n > nJetsmin; --n)
243  for (long iHt = 0; iHt < static_cast<long>(nHtBins); ++iHt)
244  z(nHtBins*(n-3) + iHt) += z(nHtBins*(n-2) + iHt);
246 
247  // 2) from incl mult to ratios
248  for (int j = 3; j <= nJetsmax; ++j)
249  for (int i = 2; i < j; ++i) {
250  for (size_t iHt = 0; iHt < nHtBins; ++iHt) {
251  double num = z(nHtBins*(j-2) + iHt),
252  den = z(nHtBins*(i-2) + iHt);
253  if (std::abs(den) < deps) continue;
254  double Ht = postBinning->GetDistributionBinCenter(0, iHt);
255  int k = postBinning->GetGlobalBinNumber(Ht, j, i);
256  y(k-1) = num / den;
257  }
258  }
259 }

Member Data Documentation

◆ nHtBins

const size_t nHtBins

The documentation for this struct was generated from the following files:
DAS::Unfolding::Rij::nJetsBins
static const int nJetsBins
Definition: HTn.h:36
DAS::Unfolding::Transformer::AddAxis
static void AddAxis(TUnfoldBinning *, TUnfoldBinning *, int)
Copy the axis of the source binning object into the target binning object.
Definition: Observable.cc:87
DAS::Unfolding::Transformer::postBinning
TUnfoldBinning * postBinning
target binning
Definition: Observable.h:103
DAS::Unfolding::Transformer::Transformer
Transformer(TUnfoldBinning *, bool=true)
Definition: Observable.cc:96
DAS::Unfolding::Rij::nJetsmax
static const double nJetsmax
Definition: HTn.h:41
DAS::Unfolding::Rij::HTnTransformer::nHtBins
const size_t nHtBins
Definition: HTn.h:103
DAS::Unfolding::Transformer::preBinning
TUnfoldBinning * preBinning
source binning (either rec or gen level)
Definition: Observable.h:102
DAS::Unfolding::Rij::n_jets_edges
static const std::vector< double > n_jets_edges
Definition: HTn.h:32
deps
static const auto deps
Definition: HTn.cc:23
DAS::Unfolding::Transformer::y
static Eigen::VectorXd y
output vector
Definition: Observable.h:100
DAS::Unfolding::Rij::nJetsmin
static const double nJetsmin
Definition: HTn.h:40