Changeset View
Changeset View
Standalone View
Standalone View
src/LauSimpleFitModel.cc
Show First 20 Lines • Show All 845 Lines • ▼ Show 20 Lines | std::pair<LauSimpleFitModel::LauGenInfo,Bool_t> LauSimpleFitModel::eventsToGenerate() | ||||
// If we're smearing then smear each one individually | // If we're smearing then smear each one individually | ||||
LauGenInfo nEvtsGen; | LauGenInfo nEvtsGen; | ||||
// Keep track of whether any yield or asymmetry parameters are blinded | // Keep track of whether any yield or asymmetry parameters are blinded | ||||
Bool_t blind = kFALSE; | Bool_t blind = kFALSE; | ||||
// Signal | // Signal | ||||
if ( signalEvents_->blind() ) { | |||||
blind = kTRUE; | |||||
} | |||||
Double_t evtWeight(1.0); | Double_t evtWeight(1.0); | ||||
Int_t nEvts = TMath::FloorNint(signalEvents_->genValue()); | Double_t nEvts = signalEvents_->genValue(); | ||||
if ( nEvts < 0 ) { | if ( nEvts < 0 ) { | ||||
evtWeight = -1.0; | evtWeight = -1.0; | ||||
nEvts = TMath::Abs( nEvts ); | nEvts = TMath::Abs( nEvts ); | ||||
} | } | ||||
Int_t nEvtsToGen { static_cast<Int_t>(nEvts) }; | |||||
if (this->doPoissonSmearing()) { | if (this->doPoissonSmearing()) { | ||||
nEvts = LauRandom::randomFun()->Poisson(nEvts); | nEvtsToGen = LauRandom::randomFun()->Poisson(nEvts); | ||||
} | |||||
nEvtsGen["signal"] = std::make_pair( nEvts, evtWeight ); | |||||
if ( signalEvents_->blind() ) { | |||||
blind = kTRUE; | |||||
} | } | ||||
nEvtsGen["signal"] = std::make_pair( nEvtsToGen, evtWeight ); | |||||
// Backgrounds | // Backgrounds | ||||
const UInt_t nBkgnds = this->nBkgndClasses(); | const UInt_t nBkgnds = this->nBkgndClasses(); | ||||
for ( UInt_t bkgndID(0); bkgndID < nBkgnds; ++bkgndID ) { | for ( UInt_t bkgndID(0); bkgndID < nBkgnds; ++bkgndID ) { | ||||
const TString& bkgndClass = this->bkgndClassName(bkgndID); | |||||
const LauAbsRValue* evtsPar = bkgndEvents_[bkgndID]; | const LauAbsRValue* evtsPar = bkgndEvents_[bkgndID]; | ||||
if ( evtsPar->blind() ) { | |||||
blind = kTRUE; | |||||
} | |||||
evtWeight = 1.0; | evtWeight = 1.0; | ||||
nEvts = TMath::FloorNint( evtsPar->genValue() ); | nEvts = evtsPar->genValue(); | ||||
if ( nEvts < 0 ) { | if ( nEvts < 0 ) { | ||||
evtWeight = -1.0; | evtWeight = -1.0; | ||||
nEvts = TMath::Abs( nEvts ); | nEvts = TMath::Abs( nEvts ); | ||||
} | } | ||||
nEvtsToGen = static_cast<Int_t>(nEvts); | |||||
if (this->doPoissonSmearing()) { | if (this->doPoissonSmearing()) { | ||||
nEvts = LauRandom::randomFun()->Poisson(nEvts); | nEvtsToGen = LauRandom::randomFun()->Poisson(nEvts); | ||||
} | |||||
nEvtsGen[bkgndClass] = std::make_pair( nEvts, evtWeight ); | |||||
if ( evtsPar->blind() ) { | |||||
blind = kTRUE; | |||||
} | } | ||||
const TString& bkgndClass = this->bkgndClassName(bkgndID); | |||||
nEvtsGen[bkgndClass] = std::make_pair( nEvtsToGen, evtWeight ); | |||||
} | } | ||||
return std::make_pair( nEvtsGen, blind ); | return std::make_pair( nEvtsGen, blind ); | ||||
} | } | ||||
Bool_t LauSimpleFitModel::genExpt() | Bool_t LauSimpleFitModel::genExpt() | ||||
{ | { | ||||
// Routine to generate toy Monte Carlo events according to the various models we have defined. | // Routine to generate toy Monte Carlo events according to the various models we have defined. | ||||
▲ Show 20 Lines • Show All 1,455 Lines • Show Last 20 Lines |