DAS  3.0
Das Analysis System
HTn.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <vector>
4 #include <list>
5 #include <algorithm>
6 #include <optional>
7 
8 #include <TUnfoldBinning.h>
9 #include <TH1.h>
10 #include <TH2.h>
11 
12 #if !defined(__CLING__) || defined(__ROOTCLING__)
16 #endif
17 
19 
20 static const std::vector<double> genHt_edges = { 300, 360, 430, 510, 600, 700, 800,
21  920, 1060, 1220, 1400, 1600, 1840, 2100,
22  2400, 2740, 3140, 3590, 4120, /*4700,*/ 5500 },
23  recHt_edges = { 300, 330, 360, 390, 430, 470, 510,
24  550, 600, 650, 700, 750, 800, 860,
25  920, 980, 1060, 1140, 1220, 1300, 1400,
26  1500, 1600, 1720, 1840, 1960, 2100, 2240,
27  2400, 2560, 2740, 2940, 3140, 3340, 3590,
28  3840, 4120, /*4400,*/ 4700, /*5050,*/ 5500 },
29  n_jets_edges = { 1.5, 2.5, 3.5, 4.5, 5.5 };
30 
31 static const int nRecHtBins = recHt_edges.size()-1,
32  nGenHtBins = genHt_edges.size()-1,
33  nJetsBins = n_jets_edges.size()-1;
34 
35 static const double Htmin = recHt_edges.front(),
36  Htmax = recHt_edges.back(),
37  nJetsmin = n_jets_edges.front()+0.5,
38  nJetsmax = n_jets_edges.back()-0.5,
39  ptmin = 150,
40  ymax = 3.0;
41 
42 #if !defined(__CLING__) || defined(__ROOTCLING__)
43 struct HTn final : public Observable {
46  HTn ();
47 
50  std::unique_ptr<Filler> getFiller (Darwin::Tools::Flow&) const override;
51 
54  std::unique_ptr<Transformer> getTransformer (TUnfoldBinning *) const override;
55 
58  void setLmatrix (const std::unique_ptr<TH1>&, std::unique_ptr<TH2>&) override;
59 };
60 
61 struct Ratios final : public Observable {
64  Ratios ();
65 };
66 
67 struct HTnFiller final : public Filler {
68  HTn obs;
69 
70  std::vector<GenJet> * genJets;
71  std::vector<RecJet> * recJets;
74 
78 
81  std::list<int> fillRec (DistVariation&) override;
82 
83  std::vector<std::pair<GenJet,RecJet>> matches;
84  std::vector<GenJet> misses;
85  std::vector<RecJet> fakes;
86 
87  std::optional<bool> matched;
88 
91  void match () override;
92 
95  void fillMC (DistVariation&) override;
96 };
97 
98 struct HTnTransformer final : public Transformer {
99 
100  const size_t nHtBins;
101 
104  HTnTransformer (TUnfoldBinning *
105  );
106 
109  ~HTnTransformer () = default;
110 
114  void Transform (const Eigen::VectorXd&
115  ) const override;
116 
117 };
118 #endif
119 
120 } // end of DAS::Unfolding::Rij namespace
DAS::Unfolding::Rij::nRecHtBins
static const int nRecHtBins
Definition: HTn.h:31
DAS::Unfolding::Rij::nJetsBins
static const int nJetsBins
Definition: HTn.h:33
DAS::Unfolding::Rij::Ratios::Ratios
Ratios()
Constructor.
Definition: HTn.cc:261
Darwin::Tools::Flow
User-friendly handling of input and output n-tuples.
Definition: Flow.h:78
DAS::Unfolding::Rij::Htmin
static const double Htmin
Definition: HTn.h:35
DAS::Unfolding::Rij::HTn::setLmatrix
void setLmatrix(const std::unique_ptr< TH1 > &, std::unique_ptr< TH2 > &) override
See Observable::getLmatrix
Definition: HTn.cc:179
DAS::Unfolding::Rij::HTnFiller::recJets
std::vector< RecJet > * recJets
Definition: HTn.h:71
DAS::Unfolding::Rij::HTn::HTn
HTn()
Constructor.
Definition: HTn.cc:160
DAS::Unfolding::Rij::recHt_edges
static const std::vector< double > recHt_edges
Definition: HTn.h:23
DAS::Unfolding::Rij::HTnFiller
Definition: HTn.h:67
DAS::Unfolding::Rij
Definition: HTn.h:18
DAS::Unfolding::Rij::HTnTransformer::~HTnTransformer
~HTnTransformer()=default
Destructor.
DAS::RecEvent
Definition: Event.h:52
Event.h
DAS::Unfolding::Rij::HTnFiller::obs
HTn obs
Backreference to the observable.
Definition: HTn.h:68
DAS::Unfolding::Rij::Htmax
static const double Htmax
Definition: HTn.h:36
DAS::Unfolding::Rij::nJetsmax
static const double nJetsmax
Definition: HTn.h:38
DAS::Unfolding::Transformer
Definition: Observable.h:60
Jet.h
DAS::Unfolding::Rij::HTnFiller::fakes
std::vector< RecJet > fakes
Definition: HTn.h:85
DAS::Unfolding::Rij::HTnFiller::HTnFiller
HTnFiller(const HTn &, Darwin::Tools::Flow &)
Constructor.
Definition: HTn.cc:25
DAS::Unfolding::Rij::HTnTransformer::nHtBins
const size_t nHtBins
Definition: HTn.h:100
DAS::Unfolding::Rij::ymax
static const double ymax
Definition: HTn.h:40
DAS::Unfolding::Rij::HTnFiller::fillRec
std::list< int > fillRec(DistVariation &) override
See Filler::fillRec
Definition: HTn.cc:108
DAS::Unfolding::DistVariation
Definition: DistVariation.h:25
DAS::Unfolding::Filler
Definition: Observable.h:31
DAS::Unfolding::Rij::HTnTransformer
Definition: HTn.h:98
DAS::Unfolding::Rij::HTnFiller::genJets
std::vector< GenJet > * genJets
Definition: HTn.h:70
DAS::Unfolding::Rij::HTnFiller::rEv
RecEvent * rEv
Definition: HTn.h:73
DAS::Unfolding::Rij::HTnFiller::matched
std::optional< bool > matched
Definition: HTn.h:87
DAS::Unfolding::Rij::HTn::getTransformer
std::unique_ptr< Transformer > getTransformer(TUnfoldBinning *) const override
Constructs a transformer for the observable.
Definition: HTn.cc:174
DAS::Unfolding::Rij::ptmin
static const double ptmin
Definition: HTn.h:39
DAS::Unfolding::Rij::n_jets_edges
static const std::vector< double > n_jets_edges
Definition: HTn.h:29
Observable.h
DAS::Unfolding::Rij::nGenHtBins
static const int nGenHtBins
Definition: HTn.h:32
DAS::Unfolding::Rij::HTn
Definition: HTn.h:43
DAS::Unfolding::Rij::Ratios
Definition: HTn.h:61
DAS::Unfolding::Rij::HTnFiller::matches
std::vector< std::pair< GenJet, RecJet > > matches
Definition: HTn.h:83
DAS::Unfolding::Rij::HTnTransformer::Transform
void Transform(const Eigen::VectorXd &) const override
Definition: HTn.cc:236
DAS::Unfolding::Rij::HTnFiller::misses
std::vector< GenJet > misses
Definition: HTn.h:84
DAS::Unfolding::Rij::HTnTransformer::HTnTransformer
HTnTransformer(TUnfoldBinning *)
Constructor.
Definition: HTn.cc:227
DAS::Unfolding::Observable
Definition: Observable.h:117
DAS::Unfolding::Rij::genHt_edges
static const std::vector< double > genHt_edges
Definition: HTn.h:20
DAS::Unfolding::Rij::HTnFiller::gEv
GenEvent * gEv
Definition: HTn.h:72
DAS::Unfolding::Rij::nJetsmin
static const double nJetsmin
Definition: HTn.h:37
DAS::Unfolding::Rij::HTnFiller::fillMC
void fillMC(DistVariation &) override
See Filler::fillMC
Definition: HTn.cc:127
DAS::Unfolding::Rij::HTn::getFiller
std::unique_ptr< Filler > getFiller(Darwin::Tools::Flow &) const override
Constructs a filler for the observable.
Definition: HTn.cc:169
DAS::GenEvent
Definition: Event.h:38
DAS::Unfolding::Rij::HTnFiller::match
void match() override
Match the two pairs of leading jets (if any) and set matched member.
Definition: HTn.cc:34