DAS  3.0
Das Analysis System
DEtaDPhifinal

#include <MNjets.h>

+ Inheritance diagram for DEtaDPhi:
+ Collaboration diagram for DEtaDPhi:

Public Member Functions

 DEtaDPhi ()
 
std::unique_ptr< FillergetFiller (TTreeReader &reader) const override
 
void setLmatrix (const std::unique_ptr< TH1 > &, std::unique_ptr< TH2 > &) override
 
- Public Member Functions inherited from Observable
virtual std::unique_ptr< TransformergetTransformer (TUnfoldBinning *) const
 
virtual ~Observable ()=default
 

Additional Inherited Members

- Public Attributes inherited from Observable
TUnfoldBinning * recBinning
 
TUnfoldBinning * genBinning
 
- Static Public Attributes inherited from Observable
static bool isMC = false
 
static double maxDR = 0.2
 
- Protected Member Functions inherited from Observable
 Observable (const char *, const char *)
 

Constructor & Destructor Documentation

◆ DEtaDPhi()

DEtaDPhi ( )

Constructor.

120  :
121  Observable(__FUNCTION__, "Angular separation of Mueller-Navelet jets")
122 {
123  recBinning->AddAxis("DEta", nRecDEtaBins, 0., 8., false, false);
124  genBinning->AddAxis("DEta", nGenDEtaBins, 0., 8., false, false);
125  recBinning->AddAxis("DPhi", nRecDPhiBins, 0., M_PI, false, false);
126  genBinning->AddAxis("DPhi", nGenDPhiBins, 0., M_PI, false, false);
127 }

Member Function Documentation

◆ getFiller()

unique_ptr< DAS::Unfolding::Filler > getFiller ( TTreeReader &  reader) const
overridevirtual

Constructs a filler for the observable.

Reimplemented from Observable.

130 {
131  return make_unique<DEtaDPhiFiller>(*this, reader);
132 }

◆ setLmatrix()

void setLmatrix ( const std::unique_ptr< TH1 > &  bias,
std::unique_ptr< TH2 > &  L 
)
overridevirtual

See Observable::setLmatrix

Reimplemented from Observable.

135 {
136  const int N = genBinning->GetDistributionNumberOfBins();
137  for (int i = 1; i <= N; ++i) {
138  double DEta = genBinning->GetDistributionBinCenter(0,i),
139  DPhi = genBinning->GetDistributionBinCenter(1,i);
140 
141  // b(in)
142  int bUp = i-nGenDEtaBins,
143  bLeft = i-1, bCenter = i , bRight = i+1,
144  bDown = i+nGenDEtaBins;
145 
146  // values (curvature regularisation)
147  auto get = [&bias](int i) {
148  auto content = bias->GetBinContent(i);
149  if (content < 0)
150  BOOST_THROW_EXCEPTION( DE::BadInput("Expecting only positive entries", bias) );
151  return content > 0 ? 1./content : 0;
152  };
153 
154  auto cUp = get(bUp ),
155  cLeft = get(bLeft ),
156  cRight = get(bRight),
157  cDown = get(bDown );
158 
159  cout << setw(3) << i << setw(10) << DEta << setw(10) << DPhi
160  << setw(5) << bCenter << setw(15) << (cUp+cLeft+cRight+cDown)
161  << setw(5) << bUp << setw(15) << -cUp
162  << setw(5) << bLeft << setw(15) << -cLeft
163  << setw(5) << bRight << setw(15) << -cRight
164  << setw(5) << bDown << setw(15) << -cDown << '\n';
165 
166  // filling L-matrix
167  L->SetBinContent(i, bCenter, cUp+cLeft+cRight+cDown );
168  if (cUp > 0) L->SetBinContent(i, bUp , -cUp );
169  if (cLeft > 0) L->SetBinContent(i, bLeft , -cLeft );
170  if (cRight > 0) L->SetBinContent(i, bRight , -cRight );
171  if (cDown > 0) L->SetBinContent(i, bDown , -cDown );
172  }
173  cout << flush;
174 }

The documentation for this struct was generated from the following files:
DAS::Unfolding::MNjets::nGenDPhiBins
static const int nGenDPhiBins
Definition: MNjets.h:24
DAS::Unfolding::Observable::genBinning
TUnfoldBinning * genBinning
particle-level binning
Definition: Observable.h:150
DAS::Unfolding::Observable::Observable
Observable(const char *, const char *)
Constructor.
Definition: Observable.cc:26
DAS::Unfolding::MNjets::nGenDEtaBins
static const int nGenDEtaBins
Definition: MNjets.h:22
DAS::Unfolding::MNjets::nRecDPhiBins
static const int nRecDPhiBins
Definition: MNjets.h:23
DAS::Unfolding::MNjets::nRecDEtaBins
static const int nRecDEtaBins
Definition: MNjets.h:21
DAS::Unfolding::Observable::recBinning
TUnfoldBinning * recBinning
detector-level binning
Definition: Observable.h:149
Darwin::Exceptions::BadInput
Generic exception for ill-defined input (before the event loop).
Definition: exceptions.h:68