DAS  3.0
Das Analysis System
PtY.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <list>
4 #include <optional>
5 #include <vector>
6 
7 #include <TUnfoldBinning.h>
8 #include <TH1.h>
9 #include <TH2.h>
10 
11 #if !defined(__CLING__) || defined(__ROOTCLING__)
15 
17 #endif
18 
20 
21 static const std::vector<double> recBins{/*74,84,*/97,114,133,153,174,196,220,245,272,300,330,362,395,430,468,507,548,592,638,686,737,790,846,905,967,1032,1101,1172,1248,1327,1410,1497,1588,1684,1784,1890,2000,2116,2238,2366,2500,2640,2787,2941,3103,3273,3450,3637,3832},
22  genBins{/*74 ,*/97 ,133 ,174 ,220 ,272 ,330 ,395 ,468 ,548 ,638 ,737 ,846 ,967 ,1101 ,1248 ,1410 ,1588 ,1784 ,2000 ,2238 ,2500 ,2787 ,3103 ,3450, 3832},
23  y_edges{0., 0.5, 1.0, 1.5, 2.0, 2.5, 3.0};
24 
25 static const int nRecBins = recBins.size()-1,
26  nGenBins = genBins.size()-1,
27  nYbins = y_edges.size()-1;
28 
29 static const double minpt = recBins.front(), maxpt = recBins.back(), maxy = y_edges.back();
30 
31 #if !defined(__CLING__) || defined(__ROOTCLING__)
32 struct PtY final : public Observable {
35  PtY ();
36 
39  std::unique_ptr<Filler> getFiller (Darwin::Tools::Flow&) const override;
40 
43  void setLmatrix (const std::unique_ptr<TH1>&, std::unique_ptr<TH2>&) override;
44 };
45 
46 struct PtYFiller final : public Filler {
47  PtY obs;
48 
49  std::vector<GenJet> * genJets;
50  std::vector<RecJet> * recJets;
53 
57 
60  inline bool selection (double pt, double absy)
61  {
62  return pt >= minpt && pt < maxpt && absy < maxy;
63  }
64 
67  std::list<int> fillRec (DistVariation&) override;
68 
69  std::optional<DAS::JMEmatching<std::vector<DAS::RecJet>,
70  std::vector<DAS::GenJet>>> matching;
71 
74  void match () override;
75 
78  void fillMC (DistVariation&) override;
79 };
80 #endif
81 
82 } // end of DAS::Unfolding::InclusiveJet namespace
jmarExample.pt
pt
Definition: jmarExample.py:19
Darwin::Tools::Flow
User-friendly handling of input and output n-tuples.
Definition: Flow.h:78
DAS::Unfolding::InclusiveJet::y_edges
static const std::vector< double > y_edges
Definition: PtY.h:23
DAS::Unfolding::InclusiveJet::PtYFiller::selection
bool selection(double pt, double absy)
Jet selection.
Definition: PtY.h:60
DAS::Unfolding::InclusiveJet::PtYFiller::PtYFiller
PtYFiller(const PtY &, Darwin::Tools::Flow &)
Constructor.
Definition: PtY.cc:14
DAS::Unfolding::InclusiveJet::PtYFiller::recJets
std::vector< RecJet > * recJets
Definition: PtY.h:50
DAS::Unfolding::InclusiveJet::PtY
Definition: PtY.h:32
DAS::Unfolding::InclusiveJet::PtYFiller::rEv
RecEvent * rEv
Definition: PtY.h:52
DAS::Unfolding::InclusiveJet::maxpt
static const double maxpt
Definition: PtY.h:29
DAS::Unfolding::InclusiveJet
Definition: PtY.h:19
DAS::Unfolding::InclusiveJet::nRecBins
static const int nRecBins
Definition: PtY.h:25
DAS::RecEvent
Definition: Event.h:52
DAS::Unfolding::InclusiveJet::maxy
static const double maxy
Definition: PtY.h:29
Event.h
DAS::Unfolding::InclusiveJet::PtY::setLmatrix
void setLmatrix(const std::unique_ptr< TH1 > &, std::unique_ptr< TH2 > &) override
See Observable::setLmatrix
Definition: PtY.cc:130
Jet.h
DAS::Unfolding::InclusiveJet::recBins
static const std::vector< double > recBins
Definition: PtY.h:21
DAS::Unfolding::DistVariation
Definition: DistVariation.h:25
DAS::Unfolding::Filler
Definition: Observable.h:31
DAS::Unfolding::InclusiveJet::PtYFiller::obs
PtY obs
Backreference to the observable.
Definition: PtY.h:47
DAS::Unfolding::InclusiveJet::PtYFiller
Definition: PtY.h:46
DAS::Unfolding::InclusiveJet::PtY::getFiller
std::unique_ptr< Filler > getFiller(Darwin::Tools::Flow &) const override
Constructs a filler for the observable.
Definition: PtY.cc:125
DAS::Unfolding::InclusiveJet::PtYFiller::fillMC
void fillMC(DistVariation &) override
See Filler::fillMC
Definition: PtY.cc:54
DAS::Unfolding::InclusiveJet::PtY::PtY
PtY()
Constructor.
Definition: PtY.cc:116
Observable.h
DAS::Unfolding::InclusiveJet::minpt
static const double minpt
Definition: PtY.h:29
DAS::Unfolding::InclusiveJet::PtYFiller::genJets
std::vector< GenJet > * genJets
Definition: PtY.h:49
DAS::Unfolding::InclusiveJet::nGenBins
static const int nGenBins
Definition: PtY.h:26
DAS::Unfolding::InclusiveJet::nYbins
static const int nYbins
Definition: PtY.h:27
DAS::Unfolding::InclusiveJet::PtYFiller::matching
std::optional< DAS::JMEmatching< std::vector< DAS::RecJet >, std::vector< DAS::GenJet > > > matching
Definition: PtY.h:70
DAS::Unfolding::InclusiveJet::genBins
static const std::vector< double > genBins
Definition: PtY.h:22
JMEmatching.h
DAS::Unfolding::Observable
Definition: Observable.h:117
DAS::Unfolding::InclusiveJet::PtYFiller::gEv
GenEvent * gEv
Definition: PtY.h:51
DAS::Unfolding::InclusiveJet::PtYFiller::match
void match() override
Using JME matching.
Definition: PtY.cc:48
DAS::Unfolding::InclusiveJet::PtYFiller::fillRec
std::list< int > fillRec(DistVariation &) override
See Filler::fillRec
Definition: PtY.cc:24
DAS::GenEvent
Definition: Event.h:38