DAS  3.0
Das Analysis System
DalitzFillerfinal

#include <ZmmYDalitz.h>

+ Inheritance diagram for DalitzFiller:
+ Collaboration diagram for DalitzFiller:

Public Member Functions

 DalitzFiller (const Dalitz &, Darwin::Tools::Flow &)
 
std::list< int > fillRec (DistVariation &) override
 
void match () override
 
void fillMC (DistVariation &) override
 
- Public Member Functions inherited from Filler
virtual ~Filler ()=default
 

Public Attributes

Dalitz obs
 
EventInfo< RecMuon, RecPhotonrInfo
 
std::vector< GenMuon > * genMuons
 
std::vector< RecMuon > * recMuons
 
std::vector< GenPhoton > * genPhotons
 
std::vector< RecPhoton > * recPhotons
 
GenEventgEv
 
RecEventrEv
 

Constructor & Destructor Documentation

◆ DalitzFiller()

DalitzFiller ( const Dalitz obs,
Darwin::Tools::Flow flow 
)

Constructor.

46  : obs(obs)
47  , genMuons(obs.isMC ? flow.GetBranchReadOnly<vector<GenMuon>>("genMuons") : nullptr)
48  , genPhotons(obs.isMC ? flow.GetBranchReadOnly<vector<GenPhoton>>("genPhotons") : nullptr)
49  , recMuons(flow.GetBranchReadOnly<vector<RecMuon>>("recMuons"))
50  , recPhotons(flow.GetBranchReadOnly<vector<RecPhoton>>("recPhotons"))
51  , gEv(obs.isMC ? flow.GetBranchReadOnly<GenEvent>("genEvent") : nullptr)
52  , rEv(flow.GetBranchReadOnly<RecEvent>("recEvent"))
53 {}

Member Function Documentation

◆ fillMC()

void fillMC ( DistVariation v)
overridevirtual

See Filler::fillMC

Reimplemented from Filler.

69 {
70  if (!obs.isMC)
71  BOOST_THROW_EXCEPTION( runtime_error(__func__ + " should only be called for MC"s) );
72 
73  auto gInfo = EventInfo(gEv, nullptr, *genMuons, *genPhotons, v);
74 
75  const auto genBin = GetBinNumber(obs.genBinning, gInfo, v);
76  const auto recBin = GetBinNumber(obs.recBinning, rInfo, v);
77 
78  if (genBin > 0) v.gen->Fill(genBin, gInfo.weight);
79 
80  if (genBin > 0 && recBin > 0) {
81  // Good events
82  v.RM ->Fill(genBin, recBin, rInfo.weight);
83  v.missOut->Fill(genBin, gInfo.weight - rInfo.weight);
84  } else if (genBin > 0 && recBin <= 0)
85  // Miss
86  v.missOut->Fill(genBin, gInfo.weight );
87  else if (genBin <= 0 && recBin >= 0)
88  // Fake
89  v.fakeOut->Fill( recBin, rInfo.weight);
90 }

◆ fillRec()

list< int > fillRec ( DistVariation v)
overridevirtual

See Filler::fillRec

Reimplemented from Filler.

56 {
58 
59  const int bin = GetBinNumber(obs.recBinning, rInfo, v);
60  if (bin <= 0) return {};
61 
62  v.tmp->Fill(bin, rInfo.weight);
63  v.rec->Fill(bin, rInfo.weight);
64 
65  return {bin};
66 }

◆ match()

void match ( )
inlineoverridevirtual

Matching is not needed.

Reimplemented from Filler.

81 {}

Member Data Documentation

◆ genMuons

std::vector<GenMuon>* genMuons

◆ genPhotons

std::vector<GenPhoton>* genPhotons

◆ gEv

GenEvent* gEv

◆ obs

Dalitz obs

Backreference to the observable.

◆ recMuons

std::vector<RecMuon>* recMuons

◆ recPhotons

std::vector<RecPhoton>* recPhotons

◆ rEv

RecEvent* rEv

◆ rInfo

Current event info.


The documentation for this struct was generated from the following files:
DAS::Unfolding::DistVariation::rec
std::unique_ptr< TH1 > rec
reconstructed-level distribution
Definition: DistVariation.h:32
DAS::Unfolding::ZmmY::DalitzFiller::rEv
RecEvent * rEv
Definition: ZmmYDalitz.h:69
DAS::RecEvent
Definition: Event.h:52
DAS::Unfolding::ZmmY::EventInfo
Definition: ZmmYCommon.h:28
DAS::Unfolding::Observable::genBinning
TUnfoldBinning * genBinning
particle-level binning
Definition: Observable.h:125
DAS::Unfolding::ZmmY::DalitzFiller::genPhotons
std::vector< GenPhoton > * genPhotons
Definition: ZmmYDalitz.h:66
DAS::Unfolding::ZmmY::DalitzFiller::recMuons
std::vector< RecMuon > * recMuons
Definition: ZmmYDalitz.h:65
DAS::Unfolding::ZmmY::DalitzFiller::recPhotons
std::vector< RecPhoton > * recPhotons
Definition: ZmmYDalitz.h:67
DAS::Unfolding::Observable::isMC
static bool isMC
Definition: Observable.h:119
DAS::Unfolding::ZmmY::DalitzFiller::rInfo
EventInfo< RecMuon, RecPhoton > rInfo
Current event info.
Definition: ZmmYDalitz.h:62
DAS::Unfolding::DistVariation::gen
std::unique_ptr< TH1 > gen
generated-level distribution
Definition: DistVariation.h:34
DAS::Unfolding::DistVariation::tmp
std::unique_ptr< TH1 > tmp
temporary histogram help fill the covariance matrix
Definition: DistVariation.h:33
DAS::Unfolding::ZmmY::DalitzFiller::gEv
GenEvent * gEv
Definition: ZmmYDalitz.h:68
Darwin::Tools::Flow::GetBranchReadOnly
T * GetBranchReadOnly(const std::string &name, BranchMode mode=mandatory)
Wrapper to initialise read-only branches.
Definition: Flow.h:257
DAS::Unfolding::ZmmY::DalitzFiller::obs
Dalitz obs
Backreference to the observable.
Definition: ZmmYDalitz.h:61
DAS::Unfolding::DistVariation::RM
std::unique_ptr< TH2 > RM
response matrix
Definition: DistVariation.h:42
DAS::Unfolding::DistVariation::missOut
std::unique_ptr< TH1 > missOut
losses (migration out of phase space)
Definition: DistVariation.h:36
DAS::Unfolding::Observable::recBinning
TUnfoldBinning * recBinning
detector-level binning
Definition: Observable.h:124
DAS::Unfolding::DistVariation::fakeOut
std::unique_ptr< TH1 > fakeOut
Definition: DistVariation.h:38
DAS::Unfolding::ZmmY::DalitzFiller::genMuons
std::vector< GenMuon > * genMuons
Definition: ZmmYDalitz.h:64
DAS::GenEvent
Definition: Event.h:38