Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 13 additions & 29 deletions CIValidations/Benchmark/MaCh3Benchmark.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -85,27 +85,23 @@ TEST_CASE("Benchmark MaCh3") {
Covs.push_back(xsec.get());

// Initialise samplePDF
auto BeamSamples = MaCh3SampleHandlerFactory<SampleHandlerTutorial>({"TutorialConfigs/Samples/SampleHandler_Tutorial.yaml"}, xsec.get());
auto ATMSamples = MaCh3SampleHandlerFactory<SampleHandlerTutorial>({"TutorialConfigs/Samples/SampleHandler_Tutorial_ATM.yaml"}, xsec.get());
auto NDSamples = MaCh3SampleHandlerFactory<SampleHandlerTutorial>({"TutorialConfigs/Samples/SampleHandler_Tutorial_ND.yaml"}, xsec.get());
auto BeamSamples = std::make_unique<SampleHandlerTutorial>({"TutorialConfigs/Samples/SampleHandler_Tutorial.yaml"}, xsec.get());
auto ATMSamples = std::make_unique<SampleHandlerTutorial>({"TutorialConfigs/Samples/SampleHandler_Tutorial_ATM.yaml"}, xsec.get());
auto NDSamples = std::make_unique<SampleHandlerTutorial>({"TutorialConfigs/Samples/SampleHandler_Tutorial_ND.yaml"}, xsec.get());

BENCHMARK("Beam Reweight") {
for (size_t s = 0; s < Covs.size(); ++s) {
Covs[s]->ProposeStep();
Covs[s]->AcceptStep();
Covs[s]->GetLikelihood();
}
for(unsigned int ivs = 0; ivs < BeamSamples.size(); ivs++ ) {
BeamSamples[ivs]->Reweight();
BeamSamples[ivs]->GetLikelihood();
}
BeamSamples->Reweight();
BeamSamples->GetLikelihood();
};

BENCHMARK("Beam Reweight w/o Osc") {
for(unsigned int ivs = 0; ivs < BeamSamples.size(); ivs++ ) {
BeamSamples[ivs]->Reweight();
BeamSamples[ivs]->GetLikelihood();
}
BeamSamples->Reweight();
BeamSamples->GetLikelihood();
};

BENCHMARK("ATM Reweight") {
Expand All @@ -114,10 +110,9 @@ TEST_CASE("Benchmark MaCh3") {
Covs[s]->AcceptStep();
Covs[s]->GetLikelihood();
}
for(unsigned int ivs = 0; ivs < ATMSamples.size(); ivs++ ) {
ATMSamples[ivs]->Reweight();
ATMSamples[ivs]->GetLikelihood();
}

ATMSamples->Reweight();
ATMSamples->GetLikelihood();
};

BENCHMARK("ND Reweight") {
Expand All @@ -126,10 +121,9 @@ TEST_CASE("Benchmark MaCh3") {
Covs[s]->AcceptStep();
Covs[s]->GetLikelihood();
}
for(unsigned int ivs = 0; ivs < NDSamples.size(); ivs++ ) {
NDSamples[ivs]->Reweight();
NDSamples[ivs]->GetLikelihood();
}

NDSamples->Reweight();
NDSamples->GetLikelihood();
};

CreateChungusYaml("ChungusSystematics.yaml", 2000);
Expand Down Expand Up @@ -175,14 +169,4 @@ TEST_CASE("Benchmark MaCh3") {
NonUniformBinning->FindGlobalBin(0, KinVars, NomBins);
}
};

for (size_t i = 0; i < NDSamples.size(); ++i) {
delete NDSamples[i];
}
for (size_t i = 0; i < BeamSamples.size(); ++i) {
delete BeamSamples[i];
}
for (size_t i = 0; i < ATMSamples.size(); ++i) {
delete ATMSamples[i];
}
}
14 changes: 13 additions & 1 deletion SamplesTutorial/SampleHandlerTutorial.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,18 @@ void SampleHandlerTutorial::FillParticles(int eventIndex, int nParticles, int PD
}
}


// ************************************************
void SampleHandlerTutorial::InititialiseData() {
// ************************************************
// Reweight MC to match
Reweight();
// set asimov data
for(int iSample = 0; iSample < GetNSamples(); iSample++) {
AddData(iSample, GetMCArray(iSample));
}
}

double SampleHandlerTutorial::ReturnKinematicParameter(const int KinematicVariable, const int iEvent) const {
const double* paramPointer = GetPointerToKinematicParameter(KinematicVariable, iEvent);
return *paramPointer;
Expand Down Expand Up @@ -343,7 +355,7 @@ const double* SampleHandlerTutorial::GetPointerToKinematicParameter(const int Ki
return &TutorialSamples[iEvent].Mode;
case kOscChannel:
return GetPointerToOscChannel(iEvent);
case kTarget:
case kTargetNucleus:
return &TutorialSamples[iEvent].Target;
default:
MACH3LOG_ERROR("Unrecognized Kinematic Parameter type: {}", KinPar);
Expand Down
8 changes: 5 additions & 3 deletions SamplesTutorial/SampleHandlerTutorial.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,10 @@ class SampleHandlerTutorial : public SampleHandlerBase
// ===========================================================================

const double* GetPointerToKinematicParameter(const int KinematicVariable, const int iEvent) const final;

/// @brief Function which translates experiment struct into core struct
void SetupMC() final;
/// @brief Function responsible for loading data from file or loading from file
void InititialiseData() final;
void CalcWeightFunc(const int iEvent) final {return; (void)iEvent;}

std::vector<TutorialMCInfo> TutorialSamples;
Expand All @@ -49,7 +51,7 @@ class SampleHandlerTutorial : public SampleHandlerBase
{"TrueNeutrinoEnergy", kTrueNeutrinoEnergy},
{"TrueQ2", kTrueQ2},
{"Mode", kM3Mode},
{"Target", kTarget},
{"TargetNucleus", kTargetNucleus},
{"RecoNeutrinoEnergy", kRecoNeutrinoEnergy},
{"OscillationChannel", kOscChannel},
};
Expand All @@ -58,7 +60,7 @@ class SampleHandlerTutorial : public SampleHandlerBase
{kTrueNeutrinoEnergy, "TrueNeutrinoEnergy"},
{kTrueQ2, "TrueQ2"},
{kM3Mode, "Mode"},
{kTarget, "Target"},
{kTargetNucleus, "TargetNucleus"},
{kRecoNeutrinoEnergy, "RecoNeutrinoEnergy"},
{kOscChannel, "OscillationChannel"},
};
Expand Down
Loading