Page MenuHomeHEPForge

No OneTemporary

diff --git a/src/ANL/ANL_CC2pi_1pim1pip_XSec_1DEnu_nu.cxx b/src/ANL/ANL_CC2pi_1pim1pip_XSec_1DEnu_nu.cxx
new file mode 100644
index 0000000..210b311
--- /dev/null
+++ b/src/ANL/ANL_CC2pi_1pim1pip_XSec_1DEnu_nu.cxx
@@ -0,0 +1,123 @@
+// Copyright 2016 L. Pickering, P Stowell, R. Terri, C. Wilkinson, C. Wret
+
+/*******************************************************************************
+* This file is part of NUISANCE.
+*
+* NUISANCE is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* NUISANCE is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with NUISANCE. If not, see <http://www.gnu.org/licenses/>.
+*******************************************************************************/
+
+/**
+ * D.Day et al, "Study of \nud charged-current two-pion production in the threshold region", Physical Review D, Volume 28, Number 11, 1 December 1983 \n
+ * Derrick, Musgrave, Ammar, Day, Kafka and Mann, "Two- and three-pion productin by \nu\mud recations nears threshold: The implication for nucleon-decay experiments", Physical Review D, Vol 30, Number 7, 1 October 1984
+*/
+
+#include "ANL_CC2pi_1pim1pip_XSec_1DEnu_nu.h"
+
+// The constructor
+ANL_CC2pi_1pim1pip_XSec_1DEnu_nu::ANL_CC2pi_1pim1pip_XSec_1DEnu_nu(std::string inputfile, FitWeight *rw, std::string type, std::string fakeDataFile){
+
+ measurementName = "ANL_CC2pi_1pim1pip_XSec_1DEnu_nu";
+ plotTitles = "; E_{#nu} (GeV); #sigma(E_{#nu}) (cm^{2}/nucleon)";
+ EnuMin = 0.;
+ EnuMax = 6.0;
+ isDiag = true; // refers to covariance matrix; this measurement has none so only use errors, not covariance
+ normError = 0.20; // normalisation error on ANL BNL flux
+ isEnu1D = true;
+ Measurement1D::SetupMeasurement(inputfile, type, rw, fakeDataFile);
+
+ this->SetDataValues(std::string(std::getenv("EXT_FIT"))+"/data/ANL/CC2pi/1pim1pip/CC2pi_1pim1pip1p.csv");
+ this->SetupDefaultHist();
+
+ fullcovar = StatUtils::MakeDiagonalCovarMatrix(dataHist);
+ covar = StatUtils::GetInvert(fullcovar);
+
+ this->scaleFactor = this->eventHist->Integral("width")*double(1E-38)/double(nevents)*(16./8.);
+};
+
+
+
+void ANL_CC2pi_1pim1pip_XSec_1DEnu_nu::FillEventVariables(FitEvent *event) {
+
+ TLorentzVector Pnu = event->PartInfo(0)->fP;
+ double Enu = Pnu.E()/1000.;
+
+ // No hadronic mass cut or similar here so very simple FillEventVariables
+
+ this->X_VAR = Enu;
+
+ return;
+}
+
+// Signal asks for 1pi-, 1pi+, 1mu-, 1p
+bool ANL_CC2pi_1pim1pip_XSec_1DEnu_nu::isSignal(FitEvent *event) {
+
+ if ((event->PartInfo(0))->fPID != 14) return false;
+
+ if (((event->PartInfo(0))->fP.E() < this->EnuMin*1000.) || ((event->PartInfo(0))->fP.E() > this->EnuMax*1000.)) return false;
+
+ if (((event->PartInfo(2))->fPID != 13) && ((event->PartInfo(3))->fPID != 13)) return false;
+
+ int pipCnt = 0;
+ int pimCnt = 0;
+ int lepCnt = 0;
+ int protonCnt = 0;
+
+ for (UInt_t j = 2; j < event->Npart(); j++) {
+ if (!((event->PartInfo(j))->fIsAlive) && (event->PartInfo(j))->fStatus != 0) continue; //move to next particle if NOT ALIVE and NOT NORMAL
+ int PID = (event->PartInfo(j))->fPID;
+ if (PID == 13) {
+ lepCnt++;
+ } else if (PID == 211) {
+ pipCnt++;
+ } else if (PID == -211) {
+ pimCnt++;
+ } else if (PID == 2212) {
+ protonCnt++;
+ } else {
+ return false;
+ }
+ }
+
+ if (pipCnt != 1) return false;
+ if (pimCnt != 1) return false;
+ if (lepCnt != 1) return false;
+ if (protonCnt != 1) return false;
+
+ return true;
+}
+
+
+/*
+void ANL_CC2pi_1pim1pip_XSec_1DEnu_nu::FillHistograms() {
+
+ if (makeHadronicMassHist) {
+ hadMassHist->Fill(hadMass);
+ }
+
+ Measurement1D::FillHistograms();
+
+}
+
+
+void ANL_CC2pi_1pim1pip_XSec_1DEnu_nu::ScaleEvents() {
+
+ PlotUtils::FluxUnfoldedScaling(mcHist, fluxHist);
+ PlotUtils::FluxUnfoldedScaling(mcFine, fluxHist);
+
+ mcHist->Scale(scaleFactor);
+ mcFine->Scale(scaleFactor);
+
+ return;
+}
+*/
diff --git a/src/ANL/ANL_CC2pi_1pim1pip_XSec_1DEnu_nu.h b/src/ANL/ANL_CC2pi_1pim1pip_XSec_1DEnu_nu.h
new file mode 100644
index 0000000..cb24e3c
--- /dev/null
+++ b/src/ANL/ANL_CC2pi_1pim1pip_XSec_1DEnu_nu.h
@@ -0,0 +1,41 @@
+// Copyright 2016 L. Pickering, P Stowell, R. Terri, C. Wilkinson, C. Wret
+
+/*******************************************************************************
+* This file is part of NUISANCE.
+*
+* NUISANCE is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* NUISANCE is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with NUISANCE. If not, see <http://www.gnu.org/licenses/>.
+*******************************************************************************/
+
+#ifndef ANL_CC2PI_1PIM1PIP_XSEC_1DENU_NU_H_SEEN
+#define ANL_CC2PI_1PIM1PIP_XSEC_1DENU_NU_H_SEEN
+
+#include "Measurement1D.h"
+
+class ANL_CC2pi_1pim1pip_XSec_1DEnu_nu : public Measurement1D {
+
+public:
+ ANL_CC2pi_1pim1pip_XSec_1DEnu_nu(std::string inputfile, FitWeight *rw, std::string type, std::string fakeDataFile);
+ virtual ~ANL_CC2pi_1pim1pip_XSec_1DEnu_nu() {};
+
+ void FillEventVariables(FitEvent *event);
+ bool isSignal(FitEvent *event);
+ //void ScaleEvents();
+ //void FillHistograms();
+
+
+ private:
+
+};
+
+#endif
diff --git a/src/ANL/ANL_CC2pi_1pip1pi0_XSec_1DEnu_nu.cxx b/src/ANL/ANL_CC2pi_1pip1pi0_XSec_1DEnu_nu.cxx
new file mode 100644
index 0000000..f2bd6cb
--- /dev/null
+++ b/src/ANL/ANL_CC2pi_1pip1pi0_XSec_1DEnu_nu.cxx
@@ -0,0 +1,122 @@
+// Copyright 2016 L. Pickering, P Stowell, R. Terri, C. Wilkinson, C. Wret
+
+/*******************************************************************************
+* This file is part of NUISANCE.
+*
+* NUISANCE is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* NUISANCE is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with NUISANCE. If not, see <http://www.gnu.org/licenses/>.
+*******************************************************************************/
+
+/**
+ * D.Day et al, "Study of \nud charged-current two-pion production in the threshold region", Physical Review D, Volume 28, Number 11, 1 December 1983 \n
+ * Derrick, Musgrave, Ammar, Day, Kafka and Mann, "Two- and three-pion productin by \nu\mud recations nears threshold: The implication for nucleon-decay experiments", Physical Review D, Vol 30, Number 7, 1 October 1984
+*/
+
+#include "ANL_CC2pi_1pip1pi0_XSec_1DEnu_nu.h"
+
+// The constructor
+ANL_CC2pi_1pip1pi0_XSec_1DEnu_nu::ANL_CC2pi_1pip1pi0_XSec_1DEnu_nu(std::string inputfile, FitWeight *rw, std::string type, std::string fakeDataFile){
+
+ measurementName = "ANL_CC2pi_1pip1pi0_XSec_1DEnu_nu";
+ plotTitles = "; E_{#nu} (GeV); #sigma(E_{#nu}) (cm^{2}/nucleon)";
+ EnuMin = 0.;
+ EnuMax = 6.0;
+ isDiag = true; // refers to covariance matrix; this measurement has none so only use errors, not covariance
+ normError = 0.20; // normalisation error on ANL BNL flux
+ Measurement1D::SetupMeasurement(inputfile, type, rw, fakeDataFile);
+
+ this->SetDataValues(std::string(std::getenv("EXT_FIT"))+"/data/ANL/CC2pi/1pip1pi0/CC2pi_1pip1pi01p.csv");
+ this->SetupDefaultHist();
+
+ fullcovar = StatUtils::MakeDiagonalCovarMatrix(dataHist);
+ covar = StatUtils::GetInvert(fullcovar);
+
+ this->scaleFactor = this->eventHist->Integral("width")*double(1E-38)/double(nevents)*(16./8.);
+};
+
+
+
+void ANL_CC2pi_1pip1pi0_XSec_1DEnu_nu::FillEventVariables(FitEvent *event) {
+
+ TLorentzVector Pnu = event->PartInfo(0)->fP;
+ double Enu = Pnu.E()/1000.;
+
+ // No hadronic mass cut or similar here so very simple FillEventVariables
+
+ this->X_VAR = Enu;
+
+ return;
+}
+
+// Signal asks for 1pi+, 1pi0, 1mu-, 1p
+bool ANL_CC2pi_1pip1pi0_XSec_1DEnu_nu::isSignal(FitEvent *event) {
+
+ if ((event->PartInfo(0))->fPID != 14) return false;
+
+ if (((event->PartInfo(0))->fP.E() < this->EnuMin*1000.) || ((event->PartInfo(0))->fP.E() > this->EnuMax*1000.)) return false;
+
+ if (((event->PartInfo(2))->fPID != 13) && ((event->PartInfo(3))->fPID != 13)) return false;
+
+ int pipCnt = 0;
+ int pi0Cnt = 0;
+ int lepCnt = 0;
+ int protonCnt = 0;
+
+ for (UInt_t j = 2; j < event->Npart(); j++) {
+ if (!((event->PartInfo(j))->fIsAlive) && (event->PartInfo(j))->fStatus != 0) continue; //move to next particle if NOT ALIVE and NOT NORMAL
+ int PID = (event->PartInfo(j))->fPID;
+ if (PID == 13) {
+ lepCnt++;
+ } else if (PID == 211) {
+ pipCnt++;
+ } else if (PID == 111) {
+ pi0Cnt++;
+ } else if (PID == 2212) {
+ protonCnt++;
+ } else {
+ return false;
+ }
+ }
+
+ if (pipCnt != 1) return false;
+ if (pi0Cnt != 1) return false;
+ if (lepCnt != 1) return false;
+ if (protonCnt != 1) return false;
+
+ return true;
+}
+
+
+/*
+void ANL_CC2pi_1pip1pi0_XSec_1DEnu_nu::FillHistograms() {
+
+ if (makeHadronicMassHist) {
+ hadMassHist->Fill(hadMass);
+ }
+
+ Measurement1D::FillHistograms();
+
+}
+
+
+void ANL_CC2pi_1pip1pi0_XSec_1DEnu_nu::ScaleEvents() {
+
+ PlotUtils::FluxUnfoldedScaling(mcHist, fluxHist);
+ PlotUtils::FluxUnfoldedScaling(mcFine, fluxHist);
+
+ mcHist->Scale(scaleFactor);
+ mcFine->Scale(scaleFactor);
+
+ return;
+}
+*/
diff --git a/src/ANL/ANL_CC2pi_1pip1pi0_XSec_1DEnu_nu.h b/src/ANL/ANL_CC2pi_1pip1pi0_XSec_1DEnu_nu.h
new file mode 100644
index 0000000..6c8143c
--- /dev/null
+++ b/src/ANL/ANL_CC2pi_1pip1pi0_XSec_1DEnu_nu.h
@@ -0,0 +1,41 @@
+// Copyright 2016 L. Pickering, P Stowell, R. Terri, C. Wilkinson, C. Wret
+
+/*******************************************************************************
+* This file is part of NUISANCE.
+*
+* NUISANCE is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* NUISANCE is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with NUISANCE. If not, see <http://www.gnu.org/licenses/>.
+*******************************************************************************/
+
+#ifndef ANL_CC2PI_1PIP1PI0_XSEC_1DENU_NU_H_SEEN
+#define ANL_CC2PI_1PIP1PI0_XSEC_1DENU_NU_H_SEEN
+
+#include "Measurement1D.h"
+
+class ANL_CC2pi_1pip1pi0_XSec_1DEnu_nu : public Measurement1D {
+
+public:
+ ANL_CC2pi_1pip1pi0_XSec_1DEnu_nu(std::string inputfile, FitWeight *rw, std::string type, std::string fakeDataFile);
+ virtual ~ANL_CC2pi_1pip1pi0_XSec_1DEnu_nu() {};
+
+ void FillEventVariables(FitEvent *event);
+ bool isSignal(FitEvent *event);
+ //void ScaleEvents();
+ //void FillHistograms();
+
+
+ private:
+
+};
+
+#endif
diff --git a/src/ANL/ANL_CC2pi_1pip1pip_XSec_1DEnu_nu.cxx b/src/ANL/ANL_CC2pi_1pip1pip_XSec_1DEnu_nu.cxx
new file mode 100644
index 0000000..3f11692
--- /dev/null
+++ b/src/ANL/ANL_CC2pi_1pip1pip_XSec_1DEnu_nu.cxx
@@ -0,0 +1,118 @@
+// Copyright 2016 L. Pickering, P Stowell, R. Terri, C. Wilkinson, C. Wret
+
+/*******************************************************************************
+* This file is part of NUISANCE.
+*
+* NUISANCE is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* NUISANCE is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with NUISANCE. If not, see <http://www.gnu.org/licenses/>.
+*******************************************************************************/
+
+/**
+ * D.Day et al, "Study of \nud charged-current two-pion production in the threshold region", Physical Review D, Volume 28, Number 11, 1 December 1983 \n
+ * Derrick, Musgrave, Ammar, Day, Kafka and Mann, "Two- and three-pion productin by \nu\mud recations nears threshold: The implication for nucleon-decay experiments", Physical Review D, Vol 30, Number 7, 1 October 1984
+*/
+
+#include "ANL_CC2pi_1pip1pip_XSec_1DEnu_nu.h"
+
+// The constructor
+ANL_CC2pi_1pip1pip_XSec_1DEnu_nu::ANL_CC2pi_1pip1pip_XSec_1DEnu_nu(std::string inputfile, FitWeight *rw, std::string type, std::string fakeDataFile){
+
+ measurementName = "ANL_CC2pi_1pip1pip_XSec_1DEnu_nu";
+ plotTitles = "; E_{#nu} (GeV); #sigma(E_{#nu}) (cm^{2}/nucleon)";
+ EnuMin = 0.;
+ EnuMax = 6.0;
+ isDiag = true; // refers to covariance matrix; this measurement has none so only use errors, not covariance
+ normError = 0.20; // normalisation error on ANL BNL flux
+ Measurement1D::SetupMeasurement(inputfile, type, rw, fakeDataFile);
+
+ this->SetDataValues(std::string(std::getenv("EXT_FIT"))+"/data/ANL/CC2pi/1pip1pip/CC2pi_1pip1pip1n.csv");
+ this->SetupDefaultHist();
+
+ fullcovar = StatUtils::MakeDiagonalCovarMatrix(dataHist);
+ covar = StatUtils::GetInvert(fullcovar);
+
+ this->scaleFactor = this->eventHist->Integral("width")*double(1E-38)/double(nevents)*(16./8.);
+};
+
+
+
+void ANL_CC2pi_1pip1pip_XSec_1DEnu_nu::FillEventVariables(FitEvent *event) {
+
+ TLorentzVector Pnu = event->PartInfo(0)->fP;
+ double Enu = Pnu.E()/1000.;
+
+ // No hadronic mass cut or similar here so very simple FillEventVariables
+
+ this->X_VAR = Enu;
+
+ return;
+}
+
+// Signal asks for 1pi+, 1pi+, 1mu-, 1n
+bool ANL_CC2pi_1pip1pip_XSec_1DEnu_nu::isSignal(FitEvent *event) {
+
+ if ((event->PartInfo(0))->fPID != 14) return false;
+
+ if (((event->PartInfo(0))->fP.E() < this->EnuMin*1000.) || ((event->PartInfo(0))->fP.E() > this->EnuMax*1000.)) return false;
+
+ if (((event->PartInfo(2))->fPID != 13) && ((event->PartInfo(3))->fPID != 13)) return false;
+
+ int pipCnt = 0;
+ int lepCnt = 0;
+ int neutronCnt = 0;
+
+ for (UInt_t j = 2; j < event->Npart(); j++) {
+ if (!((event->PartInfo(j))->fIsAlive) && (event->PartInfo(j))->fStatus != 0) continue; //move to next particle if NOT ALIVE and NOT NORMAL
+ int PID = (event->PartInfo(j))->fPID;
+ if (PID == 13) {
+ lepCnt++;
+ } else if (PID == 211) {
+ pipCnt++;
+ } else if (PID == 2112) {
+ neutronCnt++;
+ } else {
+ return false;
+ }
+ }
+
+ if (pipCnt != 2) return false;
+ if (lepCnt != 1) return false;
+ if (neutronCnt != 1) return false;
+
+ return true;
+}
+
+
+/*
+void ANL_CC2pi_1pip1pip_XSec_1DEnu_nu::FillHistograms() {
+
+ if (makeHadronicMassHist) {
+ hadMassHist->Fill(hadMass);
+ }
+
+ Measurement1D::FillHistograms();
+
+}
+
+
+void ANL_CC2pi_1pip1pip_XSec_1DEnu_nu::ScaleEvents() {
+
+ PlotUtils::FluxUnfoldedScaling(mcHist, fluxHist);
+ PlotUtils::FluxUnfoldedScaling(mcFine, fluxHist);
+
+ mcHist->Scale(scaleFactor);
+ mcFine->Scale(scaleFactor);
+
+ return;
+}
+*/
diff --git a/src/ANL/ANL_CC2pi_1pip1pip_XSec_1DEnu_nu.h b/src/ANL/ANL_CC2pi_1pip1pip_XSec_1DEnu_nu.h
new file mode 100644
index 0000000..a89079d
--- /dev/null
+++ b/src/ANL/ANL_CC2pi_1pip1pip_XSec_1DEnu_nu.h
@@ -0,0 +1,41 @@
+// Copyright 2016 L. Pickering, P Stowell, R. Terri, C. Wilkinson, C. Wret
+
+/*******************************************************************************
+* This file is part of NUISANCE.
+*
+* NUISANCE is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* NUISANCE is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with NUISANCE. If not, see <http://www.gnu.org/licenses/>.
+*******************************************************************************/
+
+#ifndef ANL_CC2PI_1PIP1PIP_XSEC_1DENU_NU_H_SEEN
+#define ANL_CC2PI_1PIP1PIP_XSEC_1DENU_NU_H_SEEN
+
+#include "Measurement1D.h"
+
+class ANL_CC2pi_1pip1pip_XSec_1DEnu_nu : public Measurement1D {
+
+public:
+ ANL_CC2pi_1pip1pip_XSec_1DEnu_nu(std::string inputfile, FitWeight *rw, std::string type, std::string fakeDataFile);
+ virtual ~ANL_CC2pi_1pip1pip_XSec_1DEnu_nu() {};
+
+ void FillEventVariables(FitEvent *event);
+ bool isSignal(FitEvent *event);
+ //void ScaleEvents();
+ //void FillHistograms();
+
+
+ private:
+
+};
+
+#endif
diff --git a/src/ANL/CMakeLists.txt b/src/ANL/CMakeLists.txt
index dcfbc2f..9e45085 100644
--- a/src/ANL/CMakeLists.txt
+++ b/src/ANL/CMakeLists.txt
@@ -1,82 +1,98 @@
# Copyright 2016 L. Pickering, P Stowell, R. Terri, C. Wilkinson, C. Wret
################################################################################
# This file is part of NUISANCE.
#
# NUISANCE is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# NUISANCE is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with NUISANCE. If not, see <http://www.gnu.org/licenses/>.
################################################################################
set(IMPLFILES
+ANL_CCQE_Evt_1DQ2_nu.cxx
+ANL_CCQE_XSec_1DEnu_nu.cxx
+
ANL_CC1npip_Evt_1DcosmuStar_nu.cxx
ANL_CC1npip_Evt_1Dppi_nu.cxx
ANL_CC1npip_Evt_1DQ2_nu.cxx
ANL_CC1npip_XSec_1DEnu_nu.cxx
+
ANL_CC1pi0_Evt_1DcosmuStar_nu.cxx
ANL_CC1pi0_Evt_1DQ2_nu.cxx
ANL_CC1pi0_XSec_1DEnu_nu.cxx
+
ANL_CC1ppip_Evt_1DcosmuStar_nu.cxx
ANL_CC1ppip_Evt_1Dppi_nu.cxx
ANL_CC1ppip_Evt_1DQ2_nu.cxx
ANL_CC1ppip_Evt_1Dthpr_nu.cxx
ANL_CC1ppip_XSec_1DEnu_nu.cxx
ANL_CC1ppip_XSec_1DQ2_nu.cxx
-ANL_CCQE_Evt_1DQ2_nu.cxx
-ANL_CCQE_XSec_1DEnu_nu.cxx
-ANL_NC1npip_Evt_1Dppi_nu.cxx
ANL_CC1ppip_Evt_1DcosthAdler_nu.cxx
ANL_CC1ppip_Evt_1Dphi_nu.cxx
+
+ANL_NC1npip_Evt_1Dppi_nu.cxx
+
+ANL_CC2pi_1pim1pip_XSec_1DEnu_nu.cxx
+ANL_CC2pi_1pip1pi0_XSec_1DEnu_nu.cxx
+ANL_CC2pi_1pip1pip_XSec_1DEnu_nu.cxx
)
set(HEADERFILES
+ANL_CCQE_Evt_1DQ2_nu.h
+ANL_CCQE_XSec_1DEnu_nu.h
+
ANL_CC1npip_Evt_1DcosmuStar_nu.h
ANL_CC1npip_Evt_1Dppi_nu.h
ANL_CC1npip_Evt_1DQ2_nu.h
ANL_CC1npip_XSec_1DEnu_nu.h
+
ANL_CC1pi0_Evt_1DcosmuStar_nu.h
ANL_CC1pi0_Evt_1DQ2_nu.h
ANL_CC1pi0_XSec_1DEnu_nu.h
+
ANL_CC1ppip_Evt_1DcosmuStar_nu.h
ANL_CC1ppip_Evt_1Dppi_nu.h
ANL_CC1ppip_Evt_1DQ2_nu.h
ANL_CC1ppip_Evt_1Dthpr_nu.h
ANL_CC1ppip_XSec_1DEnu_nu.h
ANL_CC1ppip_XSec_1DQ2_nu.h
-ANL_CCQE_Evt_1DQ2_nu.h
-ANL_CCQE_XSec_1DEnu_nu.h
-ANL_NC1npip_Evt_1Dppi_nu.h
ANL_CC1ppip_Evt_1DcosthAdler_nu.h
ANL_CC1ppip_Evt_1Dphi_nu.h
+
+ANL_NC1npip_Evt_1Dppi_nu.h
+
+ANL_CC2pi_1pim1pip_XSec_1DEnu_nu.cxx
+ANL_CC2pi_1pip1pi0_XSec_1DEnu_nu.cxx
+ANL_CC2pi_1pip1pip_XSec_1DEnu_nu.cxx
)
set(LIBNAME expANL)
if(CMAKE_BUILD_TYPE MATCHES DEBUG)
add_library(${LIBNAME} STATIC ${IMPLFILES})
else(CMAKE_BUILD_TYPE MATCHES RELEASE)
add_library(${LIBNAME} SHARED ${IMPLFILES})
endif()
include_directories(${RWENGINE_INCLUDE_DIRECTORIES})
include_directories(${CMAKE_SOURCE_DIR}/src/FitBase)
include_directories(${CMAKE_SOURCE_DIR}/src/Utils)
set_target_properties(${LIBNAME} PROPERTIES VERSION
"${ExtFit_VERSION_MAJOR}.${ExtFit_VERSION_MINOR}.${ExtFit_VERSION_REVISION}")
set_target_properties(${LIBNAME} PROPERTIES LINK_FLAGS ${ROOT_LD_FLAGS})
install(TARGETS ${LIBNAME} DESTINATION lib)
#Can uncomment this to install the headers... but is it really neccessary?
#install(FILES ${HEADERFILES} DESTINATION include)
set(MODULETargets ${MODULETargets} ${LIBNAME} PARENT_SCOPE)
diff --git a/src/FCN/SampleList.cxx b/src/FCN/SampleList.cxx
index 7681afe..85c076e 100644
--- a/src/FCN/SampleList.cxx
+++ b/src/FCN/SampleList.cxx
@@ -1,489 +1,498 @@
#include "SampleList.h"
//! Functions to make it easier for samples to be created and handled.
namespace SampleUtils {
//! Create a given sample given its name, file, type, fakdata(fkdt) file and the
//! current rw engine and push it back into the list fChain.
bool LoadSample(std::list<MeasurementBase*>* fChain, std::string name,
std::string file, std::string type, std::string fkdt,
FitWeight* rw) {
/*
ANL CCQE Samples
*/
if (!name.compare("ANL_CCQE_XSec_1DEnu_nu") ||
!name.compare("ANL_CCQE_XSec_1DEnu_nu_PRL31") ||
!name.compare("ANL_CCQE_XSec_1DEnu_nu_PRD16")) {
fChain->push_back(new ANL_CCQE_XSec_1DEnu_nu(name, file, rw, type, fkdt));
} else if (!name.compare("ANL_CCQE_Evt_1DQ2_nu") ||
!name.compare("ANL_CCQE_Evt_1DQ2_nu_PRL31") ||
!name.compare("ANL_CCQE_Evt_1DQ2_nu_PRD16")) {
fChain->push_back(new ANL_CCQE_Evt_1DQ2_nu(name, file, rw, type, fkdt));
/*
ANL CC1ppip samples
*/
} else if (!name.compare("ANL_CC1ppip_XSec_1DEnu_nu")) {
fChain->push_back(new ANL_CC1ppip_XSec_1DEnu_nu(file, rw, type, fkdt));
} else if (!name.compare("ANL_CC1ppip_XSec_1DQ2_nu")) {
fChain->push_back(new ANL_CC1ppip_XSec_1DQ2_nu(file, rw, type, fkdt));
} else if (!name.compare("ANL_CC1ppip_Evt_1DQ2_nu")) {
fChain->push_back(new ANL_CC1ppip_Evt_1DQ2_nu(file, rw, type, fkdt));
} else if (!name.compare("ANL_CC1ppip_Evt_1Dppi_nu")) {
fChain->push_back(new ANL_CC1ppip_Evt_1Dppi_nu(file, rw, type, fkdt));
} else if (!name.compare("ANL_CC1ppip_Evt_1Dthpr_nu")) {
fChain->push_back(new ANL_CC1ppip_Evt_1Dthpr_nu(file, rw, type, fkdt));
} else if (!name.compare("ANL_CC1ppip_Evt_1DcosmuStar_nu")) {
fChain->push_back(new ANL_CC1ppip_Evt_1DcosmuStar_nu(file, rw, type, fkdt));
} else if (!name.compare("ANL_CC1ppip_Evt_1DcosthAdler_nu")) {
fChain->push_back(
new ANL_CC1ppip_Evt_1DcosthAdler_nu(file, rw, type, fkdt));
} else if (!name.compare("ANL_CC1ppip_Evt_1Dphi_nu")) {
fChain->push_back(new ANL_CC1ppip_Evt_1Dphi_nu(file, rw, type, fkdt));
/*
ANL CC1npip sample
*/
} else if (!name.compare("ANL_CC1npip_XSec_1DEnu_nu")) {
fChain->push_back(new ANL_CC1npip_XSec_1DEnu_nu(file, rw, type, fkdt));
} else if (!name.compare("ANL_CC1npip_Evt_1DQ2_nu")) {
fChain->push_back(new ANL_CC1npip_Evt_1DQ2_nu(file, rw, type, fkdt));
} else if (!name.compare("ANL_CC1npip_Evt_1Dppi_nu")) {
fChain->push_back(new ANL_CC1npip_Evt_1Dppi_nu(file, rw, type, fkdt));
} else if (!name.compare("ANL_CC1npip_Evt_1DcosmuStar_nu")) {
fChain->push_back(new ANL_CC1npip_Evt_1DcosmuStar_nu(file, rw, type, fkdt));
/*
ANL CC1pi0 sample
*/
} else if (!name.compare("ANL_CC1pi0_XSec_1DEnu_nu")) {
fChain->push_back(new ANL_CC1pi0_XSec_1DEnu_nu(file, rw, type, fkdt));
} else if (!name.compare("ANL_CC1pi0_Evt_1DQ2_nu")) {
fChain->push_back(new ANL_CC1pi0_Evt_1DQ2_nu(file, rw, type, fkdt));
} else if (!name.compare("ANL_CC1pi0_Evt_1DcosmuStar_nu")) {
fChain->push_back(new ANL_CC1pi0_Evt_1DcosmuStar_nu(file, rw, type, fkdt));
/*
ANL NC1npip sample
*/
} else if (!name.compare("ANL_NC1npip_Evt_1Dppi_nu")) {
fChain->push_back(new ANL_NC1npip_Evt_1Dppi_nu(file, rw, type, fkdt));
+ /*
+ ANL CC2pi sample
+ */
+ } else if (!name.compare("ANL_CC2pi_1pim1pip_XSec_1DEnu_nu")) {
+ fChain->push_back(new ANL_CC2pi_1pim1pip_XSec_1DEnu_nu(file, rw, type, fkdt));
+ } else if (!name.compare("ANL_CC2pi_1pip1pip_XSec_1DEnu_nu")) {
+ fChain->push_back(new ANL_CC2pi_1pip1pip_XSec_1DEnu_nu(file, rw, type, fkdt));
+ } else if (!name.compare("ANL_CC2pi_1pip1pi0_XSec_1DEnu_nu")) {
+ fChain->push_back(new ANL_CC2pi_1pip1pi0_XSec_1DEnu_nu(file, rw, type, fkdt));
/*
BNL Samples
*/
} else if (!name.compare("BNL_CCQE_XSec_1DEnu_nu")) {
fChain->push_back(new BNL_CCQE_XSec_1DEnu_nu(file, rw, type, fkdt));
} else if (!name.compare("BNL_CCQE_Evt_1DQ2_nu")) {
fChain->push_back(new BNL_CCQE_Evt_1DQ2_nu(file, rw, type, fkdt));
/*
BNL CC1ppip samples
*/
} else if (!name.compare("BNL_CC1ppip_XSec_1DEnu_nu")) {
fChain->push_back(new BNL_CC1ppip_XSec_1DEnu_nu(file, rw, type, fkdt));
} else if (!name.compare("BNL_CC1ppip_Evt_1DQ2_nu")) {
fChain->push_back(new BNL_CC1ppip_Evt_1DQ2_nu(file, rw, type, fkdt));
} else if (!name.compare("BNL_CC1ppip_Evt_1DcosthAdler_nu")) {
fChain->push_back(
new BNL_CC1ppip_Evt_1DcosthAdler_nu(file, rw, type, fkdt));
} else if (!name.compare("BNL_CC1ppip_Evt_1Dphi_nu")) {
fChain->push_back(new BNL_CC1ppip_Evt_1Dphi_nu(file, rw, type, fkdt));
/*
BNL CC1npip samples
*/
} else if (!name.compare("BNL_CC1npip_XSec_1DEnu_nu")) {
fChain->push_back(new BNL_CC1npip_XSec_1DEnu_nu(file, rw, type, fkdt));
} else if (!name.compare("BNL_CC1npip_Evt_1DQ2_nu")) {
fChain->push_back(new BNL_CC1npip_Evt_1DQ2_nu(file, rw, type, fkdt));
/*
BNL CC1pi0 samples
*/
} else if (!name.compare("BNL_CC1pi0_XSec_1DEnu_nu")) {
fChain->push_back(new BNL_CC1pi0_XSec_1DEnu_nu(file, rw, type, fkdt));
} else if (!name.compare("BNL_CC1pi0_Evt_1DQ2_nu")) {
fChain->push_back(new BNL_CC1pi0_Evt_1DQ2_nu(file, rw, type, fkdt));
/*
FNAL Samples
*/
} else if (!name.compare("FNAL_CCQE_Evt_1DQ2_nu")) {
fChain->push_back(new FNAL_CCQE_Evt_1DQ2_nu(file, rw, type, fkdt));
/*
FNAL CC1ppip
*/
} else if (!name.compare("FNAL_CC1ppip_XSec_1DEnu_nu")) {
fChain->push_back(new FNAL_CC1ppip_XSec_1DEnu_nu(file, rw, type, fkdt));
} else if (!name.compare("FNAL_CC1ppip_XSec_1DQ2_nu")) {
fChain->push_back(new FNAL_CC1ppip_XSec_1DQ2_nu(file, rw, type, fkdt));
} else if (!name.compare("FNAL_CC1ppip_Evt_1DQ2_nu")) {
fChain->push_back(new FNAL_CC1ppip_Evt_1DQ2_nu(file, rw, type, fkdt));
/*
FNAL CC1ppim
*/
// } else if (!name.compare("FNAL_CC1ppim_XSec_1DEnu_antinu")) {
// fChain->push_back(new FNAL_CC1ppim_XSec_1DEnu_antinu(file, rw, type,
// fkdt));
/*
BEBC Samples
*/
} else if (!name.compare("BEBC_CCQE_XSec_1DQ2_nu")) {
fChain->push_back(new BEBC_CCQE_XSec_1DQ2_nu(name, file, rw, type, fkdt));
/*
BEBC CC1ppip samples
*/
} else if (!name.compare("BEBC_CC1ppip_XSec_1DEnu_nu")) {
fChain->push_back(new BEBC_CC1ppip_XSec_1DEnu_nu(file, rw, type, fkdt));
} else if (!name.compare("BEBC_CC1ppip_XSec_1DQ2_nu")) {
fChain->push_back(new BEBC_CC1ppip_XSec_1DQ2_nu(file, rw, type, fkdt));
/*
BEBC CC1npip samples
*/
} else if (!name.compare("BEBC_CC1npip_XSec_1DEnu_nu")) {
fChain->push_back(new BEBC_CC1npip_XSec_1DEnu_nu(file, rw, type, fkdt));
} else if (!name.compare("BEBC_CC1npip_XSec_1DQ2_nu")) {
fChain->push_back(new BEBC_CC1npip_XSec_1DQ2_nu(file, rw, type, fkdt));
/*
BEBC CC1pi0 samples
*/
} else if (!name.compare("BEBC_CC1pi0_XSec_1DEnu_nu")) {
fChain->push_back(new BEBC_CC1pi0_XSec_1DEnu_nu(file, rw, type, fkdt));
} else if (!name.compare("BEBC_CC1pi0_XSec_1DQ2_nu")) {
fChain->push_back(new BEBC_CC1pi0_XSec_1DQ2_nu(file, rw, type, fkdt));
/*
BEBC CC1npim samples
*/
} else if (!name.compare("BEBC_CC1npim_XSec_1DEnu_antinu")) {
fChain->push_back(new BEBC_CC1npim_XSec_1DEnu_antinu(file, rw, type, fkdt));
} else if (!name.compare("BEBC_CC1npim_XSec_1DQ2_antinu")) {
fChain->push_back(new BEBC_CC1npim_XSec_1DQ2_antinu(file, rw, type, fkdt));
/*
BEBC CC1ppim samples
*/
} else if (!name.compare("BEBC_CC1ppim_XSec_1DEnu_antinu")) {
fChain->push_back(new BEBC_CC1ppim_XSec_1DEnu_antinu(file, rw, type, fkdt));
} else if (!name.compare("BEBC_CC1ppim_XSec_1DQ2_antinu")) {
fChain->push_back(new BEBC_CC1ppim_XSec_1DQ2_antinu(file, rw, type, fkdt));
/*
GGM CC1ppip samples
*/
} else if (!name.compare("GGM_CC1ppip_XSec_1DEnu_nu")) {
fChain->push_back(new GGM_CC1ppip_XSec_1DEnu_nu(file, rw, type, fkdt));
} else if (!name.compare("GGM_CC1ppip_Evt_1DQ2_nu")) {
fChain->push_back(new GGM_CC1ppip_Evt_1DQ2_nu(file, rw, type, fkdt));
/*
MiniBooNE Samples
*/
/*
CCQE
*/
} else if (!name.compare("MiniBooNE_CCQE_XSec_1DQ2_nu") ||
!name.compare("MiniBooNE_CCQELike_XSec_1DQ2_nu")){
fChain->push_back(
new MiniBooNE_CCQE_XSec_1DQ2_nu(name, file, rw, type, fkdt));
} else if (!name.compare("MiniBooNE_CCQE_XSec_1DQ2_antinu") ||
!name.compare("MiniBooNE_CCQELike_XSec_1DQ2_antinu")) {
fChain->push_back(
new MiniBooNE_CCQE_XSec_1DQ2_antinu(name, file, rw, type, fkdt));
} else if (!name.compare("MiniBooNE_CCQE_XSec_2DTcos_nu") ||
!name.compare("MiniBooNE_CCQELike_XSec_2DTcos_nu")) {
fChain->push_back(
new MiniBooNE_CCQE_XSec_2DTcos_nu(name, file, rw, type, fkdt));
} else if (!name.compare("MiniBooNE_CCQE_XSec_2DTcos_antinu") ||
!name.compare("MiniBooNE_CCQELike_XSec_2DTcos_antinu")) {
fChain->push_back(
new MiniBooNE_CCQE_XSec_2DTcos_antinu(name, file, rw, type, fkdt));
/*
MiniBooNE CC1pi+
*/
// 1D
} else if (!name.compare("MiniBooNE_CC1pip_XSec_1DEnu_nu")) {
fChain->push_back(new MiniBooNE_CC1pip_XSec_1DEnu_nu(file, rw, type, fkdt));
} else if (!name.compare("MiniBooNE_CC1pip_XSec_1DQ2_nu")) {
fChain->push_back(new MiniBooNE_CC1pip_XSec_1DQ2_nu(file, rw, type, fkdt));
} else if (!name.compare("MiniBooNE_CC1pip_XSec_1DTpi_nu")) {
fChain->push_back(new MiniBooNE_CC1pip_XSec_1DTpi_nu(file, rw, type, fkdt));
} else if (!name.compare("MiniBooNE_CC1pip_XSec_1DTu_nu")) {
fChain->push_back(new MiniBooNE_CC1pip_XSec_1DTu_nu(file, rw, type, fkdt));
// 2D
} else if (!name.compare("MiniBooNE_CC1pip_XSec_2DQ2Enu_nu")) {
fChain->push_back(
new MiniBooNE_CC1pip_XSec_2DQ2Enu_nu(file, rw, type, fkdt));
} else if (!name.compare("MiniBooNE_CC1pip_XSec_2DTpiCospi_nu")) {
fChain->push_back(
new MiniBooNE_CC1pip_XSec_2DTpiCospi_nu(file, rw, type, fkdt));
} else if (!name.compare("MiniBooNE_CC1pip_XSec_2DTpiEnu_nu")) {
fChain->push_back(
new MiniBooNE_CC1pip_XSec_2DTpiEnu_nu(file, rw, type, fkdt));
} else if (!name.compare("MiniBooNE_CC1pip_XSec_2DTuCosmu_nu")) {
fChain->push_back(
new MiniBooNE_CC1pip_XSec_2DTuCosmu_nu(file, rw, type, fkdt));
} else if (!name.compare("MiniBooNE_CC1pip_XSec_2DTuEnu_nu")) {
fChain->push_back(
new MiniBooNE_CC1pip_XSec_2DTuEnu_nu(file, rw, type, fkdt));
/*
MiniBooNE CC1pi0
*/
} else if (!name.compare("MiniBooNE_CC1pi0_XSec_1DEnu_nu")) {
fChain->push_back(new MiniBooNE_CC1pi0_XSec_1DEnu_nu(file, rw, type, fkdt));
} else if (!name.compare("MiniBooNE_CC1pi0_XSec_1DQ2_nu")) {
fChain->push_back(new MiniBooNE_CC1pi0_XSec_1DQ2_nu(file, rw, type, fkdt));
} else if (!name.compare("MiniBooNE_CC1pi0_XSec_1DTu_nu")) {
fChain->push_back(new MiniBooNE_CC1pi0_XSec_1DTu_nu(file, rw, type, fkdt));
} else if (!name.compare("MiniBooNE_CC1pi0_XSec_1Dcosmu_nu")) {
fChain->push_back(
new MiniBooNE_CC1pi0_XSec_1Dcosmu_nu(file, rw, type, fkdt));
} else if (!name.compare("MiniBooNE_CC1pi0_XSec_1Dcospi0_nu")) {
fChain->push_back(
new MiniBooNE_CC1pi0_XSec_1Dcospi0_nu(file, rw, type, fkdt));
} else if (!name.compare("MiniBooNE_CC1pi0_XSec_1Dppi0_nu")) {
fChain->push_back(
new MiniBooNE_CC1pi0_XSec_1Dppi0_nu(file, rw, type, fkdt));
/*
MiniBooNE NCEL
*/
} else if (!name.compare("MiniBooNE_NCEL_XSec_Treco_nu")) {
std::cerr << "MiniBooNE_NCEL_XSec_Treco_nu not implemented in current interface." << std::endl;
throw 5;
// fChain->push_back(new MiniBooNE_NCEL_XSec_Treco_nu(file, rw, type, fkdt));
/*
MINERvA Samples
*/
} else if (!name.compare("MINERvA_CCQE_XSec_1DQ2_nu") ||
!name.compare("MINERvA_CCQE_XSec_1DQ2_nu_20deg") ||
!name.compare("MINERvA_CCQE_XSec_1DQ2_nu_newflux") ||
!name.compare("MINERvA_CCQE_XSec_1DQ2_nu_20deg_newflux")) {
fChain->push_back(
new MINERvA_CCQE_XSec_1DQ2_nu(name, file, rw, type, fkdt));
} else if (!name.compare("MINERvA_CCQE_XSec_1DQ2_antinu") ||
!name.compare("MINERvA_CCQE_XSec_1DQ2_antinu_20deg") ||
!name.compare("MINERvA_CCQE_XSec_1DQ2_antinu_newflux") ||
!name.compare("MINERvA_CCQE_XSec_1DQ2_antinu_20deg_newflux")) {
fChain->push_back(
new MINERvA_CCQE_XSec_1DQ2_antinu(name, file, rw, type, fkdt));
} else if (!name.compare("MINERvA_CCQE_XSec_1DQ2_joint") ||
!name.compare("MINERvA_CCQE_XSec_1DQ2_joint_20deg") ||
// !name.compare("MINERvA_CCQE_XSec_1DQ2_joint_newflux") ||
// //< Not Current Supported/Stable
!name.compare("MINERvA_CCQE_XSec_1DQ2_joint_20deg_newflux")) {
fChain->push_back(
new MINERvA_CCQE_XSec_1DQ2_joint(name, file, rw, type, fkdt));
} else if (!name.compare("MINERvA_CC0pi_XSec_1DEe_nue")) {
fChain->push_back(new MINERvA_CC0pi_XSec_1DEe_nue(file, rw, type, fkdt));
} else if (!name.compare("MINERvA_CC0pi_XSec_1DQ2_nue")) {
fChain->push_back(new MINERvA_CC0pi_XSec_1DQ2_nue(file, rw, type, fkdt));
} else if (!name.compare("MINERvA_CC0pi_XSec_1DThetae_nue")) {
fChain->push_back(
new MINERvA_CC0pi_XSec_1DThetae_nue(file, rw, type, fkdt));
} else if (!name.compare("MINERvA_CC0pi_XSec_1DQ2_nu_proton")) {
fChain->push_back(
new MINERvA_CC0pi_XSec_1DQ2_nu_proton(file, rw, type, fkdt));
/*
CC1pi+
*/
} else if (!name.compare("MINERvA_CC1pip_XSec_1DTpi_20deg_nu")) {
fChain->push_back(
new MINERvA_CC1pip_XSec_1DTpi_20deg_nu(file, rw, type, fkdt));
} else if (!name.compare("MINERvA_CC1pip_XSec_1DTpi_nu")) {
fChain->push_back(new MINERvA_CC1pip_XSec_1DTpi_nu(file, rw, type, fkdt));
} else if (!name.compare("MINERvA_CC1pip_XSec_1Dth_20deg_nu")) {
fChain->push_back(
new MINERvA_CC1pip_XSec_1Dth_20deg_nu(file, rw, type, fkdt));
} else if (!name.compare("MINERvA_CC1pip_XSec_1Dth_nu")) {
fChain->push_back(new MINERvA_CC1pip_XSec_1Dth_nu(file, rw, type, fkdt));
/*
CCNpi+
*/
} else if (!name.compare("MINERvA_CCNpip_XSec_1Dth_nu")) {
fChain ->push_back(new MINERvA_CCNpip_XSec_1Dth_nu(file, rw, type, fkdt));
} else if (!name.compare("MINERvA_CCNpip_XSec_1Dth_20deg_nu")) {
fChain ->push_back(new MINERvA_CCNpip_XSec_1Dth_20deg_nu(file, rw, type, fkdt));
} else if (!name.compare("MINERvA_CCNpip_XSec_1DTpi_nu")) {
fChain ->push_back(new MINERvA_CCNpip_XSec_1DTpi_nu(file, rw, type, fkdt));
} else if (!name.compare("MINERvA_CCNpip_XSec_1DTpi_20deg_nu")) {
fChain ->push_back(new MINERvA_CCNpip_XSec_1DTpi_20deg_nu(file, rw, type, fkdt));
} else if (!name.compare("MINERvA_CCNpip_XSec_1Dthmu_nu")) {
fChain ->push_back(new MINERvA_CCNpip_XSec_1Dthmu_nu(file, rw, type, fkdt));
} else if (!name.compare("MINERvA_CCNpip_XSec_1Dpmu_nu")) {
fChain ->push_back(new MINERvA_CCNpip_XSec_1Dpmu_nu(file, rw, type, fkdt));
} else if (!name.compare("MINERvA_CCNpip_XSec_1DQ2_nu")) {
fChain ->push_back(new MINERvA_CCNpip_XSec_1DQ2_nu(file, rw, type, fkdt));
} else if (!name.compare("MINERvA_CCNpip_XSec_1DEnu_nu")) {
fChain ->push_back(new MINERvA_CCNpip_XSec_1DEnu_nu(file, rw, type, fkdt));
/*
CC1pi0
*/
} else if (!name.compare("MINERvA_CC1pi0_XSec_1Dth_antinu")) {
fChain ->push_back(new MINERvA_CC1pi0_XSec_1Dth_antinu(file, rw, type, fkdt));
} else if (!name.compare("MINERvA_CC1pi0_XSec_1Dppi0_antinu")) {
fChain ->push_back(new MINERvA_CC1pi0_XSec_1Dppi0_antinu(file, rw, type, fkdt));
} else if (!name.compare("MINERvA_CC1pi0_XSec_1DQ2_antinu")) {
fChain ->push_back(new MINERvA_CC1pi0_XSec_1DQ2_antinu(file, rw, type, fkdt));
} else if (!name.compare("MINERvA_CC1pi0_XSec_1Dthmu_antinu")) {
fChain ->push_back(new MINERvA_CC1pi0_XSec_1Dthmu_antinu(file, rw, type, fkdt));
} else if (!name.compare("MINERvA_CC1pi0_XSec_1Dpmu_antinu")) {
fChain ->push_back(new MINERvA_CC1pi0_XSec_1Dpmu_antinu(file, rw, type, fkdt));
} else if (!name.compare("MINERvA_CC1pi0_XSec_1DEnu_antinu")) {
fChain ->push_back(new MINERvA_CC1pi0_XSec_1DEnu_antinu(file, rw, type, fkdt));
/*
CCINC
*/
} else if (!name.compare("MINERvA_CCinc_XSec_2DEavq3_nu")) {
fChain->push_back(new MINERvA_CCinc_XSec_2DEavq3_nu(file, rw, type, fkdt));
} else if (!name.compare("MINERvA_CCinc_XSec_1Dx_ratio_C12_CH") ||
!name.compare("MINERvA_CCinc_XSec_1Dx_ratio_Fe56_CH") ||
!name.compare("MINERvA_CCinc_XSec_1Dx_ratio_Pb208_CH")) {
fChain ->push_back(new MINERvA_CCinc_XSec_1Dx_ratio(name, file, rw, type, fkdt));
} else if (!name.compare("MINERvA_CCinc_XSec_1DEnu_ratio_C12_CH") ||
!name.compare("MINERvA_CCinc_XSec_1DEnu_ratio_Fe56_CH") ||
!name.compare("MINERvA_CCinc_XSec_1DEnu_ratio_Pb208_CH")) {
fChain ->push_back(new MINERvA_CCinc_XSec_1DEnu_ratio(name, file, rw, type, fkdt));
/*
T2K Samples
*/
} else if (!name.compare("T2K_CC0pi_XSec_2DPcos_nu") ||
!name.compare("T2K_CC0pi_XSec_2DPcos_nu_I") ||
!name.compare("T2K_CC0pi_XSec_2DPcos_nu_II")) {
fChain->push_back(new T2K_CC0pi_XSec_2DPcos_nu(name, file, rw, type, fkdt));
/*
T2K CC1pi+ CH samples
*/
} else if (!name.compare("T2K_CC1pip_CH_XSec_1Dpmu_nu")) {
fChain ->push_back(new T2K_CC1pip_CH_XSec_1Dpmu_nu(file, rw, type, fkdt));
} else if (!name.compare("T2K_CC1pip_CH_XSec_1Dppi_nu")) {
fChain ->push_back(new T2K_CC1pip_CH_XSec_1Dppi_nu(file, rw, type, fkdt));
} else if (!name.compare("T2K_CC1pip_CH_XSec_1DQ2_nu")) {
fChain ->push_back(new T2K_CC1pip_CH_XSec_1DQ2_nu(file, rw, type, fkdt));
} else if (!name.compare("T2K_CC1pip_CH_XSec_1Dq3_nu")) {
fChain ->push_back(new T2K_CC1pip_CH_XSec_1Dq3_nu(file, rw, type, fkdt));
} else if (!name.compare("T2K_CC1pip_CH_XSec_1Dthmupi_nu")) {
fChain ->push_back(new T2K_CC1pip_CH_XSec_1Dthmupi_nu(file, rw, type, fkdt));
} else if (!name.compare("T2K_CC1pip_CH_XSec_1Dthpi_nu")) {
fChain ->push_back(new T2K_CC1pip_CH_XSec_1Dthpi_nu(file, rw, type, fkdt));
} else if (!name.compare("T2K_CC1pip_CH_XSec_1Dthq3pi_nu")) {
fChain ->push_back(new T2K_CC1pip_CH_XSec_1Dthq3pi_nu(file, rw, type, fkdt));
} else if (!name.compare("T2K_CC1pip_CH_XSec_1DWrec_nu")) {
fChain ->push_back(new T2K_CC1pip_CH_XSec_1DWrec_nu(file, rw, type, fkdt));
/*
K2K Samples
*/
} else if (!name.compare("K2K_CC0pi_XSec_1DCosThetaMu_nu_1trk") ||
!name.compare("K2K_CC0pi_XSec_1DCosThetaMu_nu_2trkQE") ||
!name.compare("K2K_CC0pi_XSec_1DCosThetaMu_nu_2trkNonQE")) {
fChain->push_back(
new K2K_CC0pi_XSec_1DCosThetaMu_nu_subtrks(name, file, rw, type, fkdt));
} else if (!name.compare("K2KI_CC0pi_XSec_1DQ2_nu_1trk") ||
!name.compare("K2KI_CC0pi_XSec_1DQ2_nu_2trkQE") ||
!name.compare("K2KI_CC0pi_XSec_1DQ2_nu_2trkNonQE") ||
!name.compare("K2KIIa_CC0pi_XSec_1DQ2_nu_1trk") ||
!name.compare("K2KIIa_CC0pi_XSec_1DQ2_nu_2trkQE") ||
!name.compare("K2KIIa_CC0pi_XSec_1DQ2_nu_2trkNonQE")) {
fChain->push_back(
new K2K_CC0pi_XSec_1DQ2_nu_subtrks(name, file, rw, type, fkdt));
} else if (!name.compare("K2K_CC0pi_XSec_1DThetaMu_nu_Ntrks")) {
fChain->push_back(
new K2K_CC0pi_XSec_1DThetaMu_nu_Ntrks(file, rw, type, fkdt));
} else if (!name.compare("K2K_CC0pi_XSec_1DPmu_nu_Ntrks")) {
fChain->push_back(new K2K_CC0pi_XSec_1DPmu_nu_Ntrks(file, rw, type, fkdt));
} else if (!name.compare("K2K_CC0pi_XSec_1DDelPhi_nu_Ntrks")) {
fChain->push_back(
new K2K_CC0pi_XSec_1DDelPhi_nu_Ntrks(file, rw, type, fkdt));
/*
NC1pi0
*/
} else if (!name.compare("K2K_NC1pi0_Evt_1Dppi0_nu")) {
fChain->push_back(new K2K_NC1pi0_Evt_1Dppi0_nu(file, rw, type, fkdt));
/*
Stat Samples (Pulls etc)
*/
} else if (name.find("parameter_pulls") != std::string::npos) {
fChain->push_back(new parameter_pulls(name, file, rw, type, fkdt));
/*
Fake Studies
*/
} else if (name.find("ExpMultDist_CCQE_XSec_1D") != std::string::npos &&
name.find("_FakeStudy") != std::string::npos) {
fChain->push_back(
new ExpMultDist_CCQE_XSec_1DVar_FakeStudy(name, file, rw, type, fkdt));
} else if (name.find("ExpMultDist_CCQE_XSec_2D") != std::string::npos &&
name.find("_FakeStudy") != std::string::npos) {
fChain->push_back(
new ExpMultDist_CCQE_XSec_2DVar_FakeStudy(name, file, rw, type, fkdt));
} else if (name.find("GenericFlux_") != std::string::npos) {
fChain->push_back(new GenericFlux_Tester(name, file, rw, type, fkdt));
} else {
std::cerr << "Error: could not find " << name << std::endl;
exit(-1);
return false;
}
// Return if sample was loaded correctly;
return true;
}
}
diff --git a/src/FCN/SampleList.h b/src/FCN/SampleList.h
index 71d2442..144f04a 100644
--- a/src/FCN/SampleList.h
+++ b/src/FCN/SampleList.h
@@ -1,190 +1,194 @@
#ifndef _SAMPLE_LIST_H_
#define _SAMPLE_LIST_H_
/*!
* \addtogroup FCN
* @{
*/
#include "ANL_CCQE_Evt_1DQ2_nu.h"
#include "ANL_CCQE_XSec_1DEnu_nu.h"
// ANL CC1ppip
#include "ANL_CC1ppip_Evt_1DQ2_nu.h"
#include "ANL_CC1ppip_Evt_1DcosmuStar_nu.h"
#include "ANL_CC1ppip_Evt_1DcosmuStar_nu.h"
#include "ANL_CC1ppip_Evt_1DcosthAdler_nu.h"
#include "ANL_CC1ppip_Evt_1Dphi_nu.h"
#include "ANL_CC1ppip_Evt_1Dppi_nu.h"
#include "ANL_CC1ppip_Evt_1Dthpr_nu.h"
#include "ANL_CC1ppip_XSec_1DEnu_nu.h"
#include "ANL_CC1ppip_XSec_1DQ2_nu.h"
// ANL CC1npip
#include "ANL_CC1npip_Evt_1DQ2_nu.h"
#include "ANL_CC1npip_Evt_1DcosmuStar_nu.h"
#include "ANL_CC1npip_Evt_1Dppi_nu.h"
#include "ANL_CC1npip_XSec_1DEnu_nu.h"
// ANL CC1pi0
#include "ANL_CC1pi0_Evt_1DQ2_nu.h"
#include "ANL_CC1pi0_Evt_1DcosmuStar_nu.h"
#include "ANL_CC1pi0_XSec_1DEnu_nu.h"
// ANL NC1npip (mm, exotic!)
#include "ANL_NC1npip_Evt_1Dppi_nu.h"
+// ANL CC2pi 1pim1pip (mm, even more exotic!)
+#include "ANL_CC2pi_1pim1pip_XSec_1DEnu_nu.h"
+#include "ANL_CC2pi_1pip1pip_XSec_1DEnu_nu.h"
+#include "ANL_CC2pi_1pip1pi0_XSec_1DEnu_nu.h"
// BNL CCQE
#include "BNL_CCQE_Evt_1DQ2_nu.h"
#include "BNL_CCQE_XSec_1DEnu_nu.h"
// BNL CC1ppip
#include "BNL_CC1ppip_Evt_1DQ2_nu.h"
#include "BNL_CC1ppip_Evt_1DQ2_nu.h"
#include "BNL_CC1ppip_Evt_1DcosthAdler_nu.h"
#include "BNL_CC1ppip_Evt_1Dphi_nu.h"
#include "BNL_CC1ppip_XSec_1DEnu_nu.h"
// BNL CC1npip
#include "BNL_CC1npip_Evt_1DQ2_nu.h"
#include "BNL_CC1npip_XSec_1DEnu_nu.h"
// BNL CC1pi0
#include "BNL_CC1pi0_Evt_1DQ2_nu.h"
#include "BNL_CC1pi0_XSec_1DEnu_nu.h"
// FNAL CCQE
#include "FNAL_CCQE_Evt_1DQ2_nu.h"
// FNAL CC1ppip
#include "FNAL_CC1ppip_Evt_1DQ2_nu.h"
#include "FNAL_CC1ppip_XSec_1DEnu_nu.h"
#include "FNAL_CC1ppip_XSec_1DQ2_nu.h"
// FNAL CC1ppim
//#include "FNAL_CC1ppim_XSec_1DEnu_antinu.h"
// BEBC CCQE
#include "BEBC_CCQE_XSec_1DQ2_nu.h"
// BEBC CC1ppip
#include "BEBC_CC1ppip_XSec_1DEnu_nu.h"
#include "BEBC_CC1ppip_XSec_1DQ2_nu.h"
// BEBC CC1npip
#include "BEBC_CC1npip_XSec_1DEnu_nu.h"
#include "BEBC_CC1npip_XSec_1DQ2_nu.h"
// BEBC CC1pi0
#include "BEBC_CC1pi0_XSec_1DEnu_nu.h"
#include "BEBC_CC1pi0_XSec_1DQ2_nu.h"
// BEBC CC1npim
#include "BEBC_CC1npim_XSec_1DEnu_antinu.h"
#include "BEBC_CC1npim_XSec_1DQ2_antinu.h"
// BEBC CC1ppim
#include "BEBC_CC1ppim_XSec_1DEnu_antinu.h"
#include "BEBC_CC1ppim_XSec_1DQ2_antinu.h"
// GGM CC1ppip
#include "GGM_CC1ppip_Evt_1DQ2_nu.h"
#include "GGM_CC1ppip_XSec_1DEnu_nu.h"
// MiniBooNE CCQE
#include "MiniBooNE_CCQE_XSec_1DQ2_nu.h"
#include "MiniBooNE_CCQE_XSec_1DQ2_antinu.h"
#include "MiniBooNE_CCQE_XSec_2DTcos_antinu.h"
#include "MiniBooNE_CCQE_XSec_2DTcos_antinu.h"
#include "MiniBooNE_CCQE_XSec_2DTcos_nu.h"
// MiniBooNE CC1pi+
#include "MiniBooNE_CC1pip_XSec_1DEnu_nu.h"
#include "MiniBooNE_CC1pip_XSec_1DQ2_nu.h"
#include "MiniBooNE_CC1pip_XSec_1DTpi_nu.h"
#include "MiniBooNE_CC1pip_XSec_1DTu_nu.h"
#include "MiniBooNE_CC1pip_XSec_2DQ2Enu_nu.h"
#include "MiniBooNE_CC1pip_XSec_2DTpiCospi_nu.h"
#include "MiniBooNE_CC1pip_XSec_2DTpiEnu_nu.h"
#include "MiniBooNE_CC1pip_XSec_2DTuCosmu_nu.h"
#include "MiniBooNE_CC1pip_XSec_2DTuEnu_nu.h"
// MiniBooNE CC1pi0
#include "MiniBooNE_CC1pi0_XSec_1DEnu_nu.h"
#include "MiniBooNE_CC1pi0_XSec_1DQ2_nu.h"
#include "MiniBooNE_CC1pi0_XSec_1DTu_nu.h"
#include "MiniBooNE_CC1pi0_XSec_1Dcosmu_nu.h"
#include "MiniBooNE_CC1pi0_XSec_1Dcospi0_nu.h"
#include "MiniBooNE_CC1pi0_XSec_1Dppi0_nu.h"
//#include "MiniBooNE_NCpi0_XSec_1Dppi0_nu.h"
// MiniBooNE NCEL
// #include "MiniBooNE_NCEL_XSec_Treco_nu.h"
// MINERvA CCQE
#include "MINERvA_CCQE_XSec_1DQ2_antinu.h"
#include "MINERvA_CCQE_XSec_1DQ2_joint.h"
#include "MINERvA_CCQE_XSec_1DQ2_nu.h"
// MINERvA CC0pi
#include "MINERvA_CC0pi_XSec_1DEe_nue.h"
#include "MINERvA_CC0pi_XSec_1DQ2_nu_proton.h"
#include "MINERvA_CC0pi_XSec_1DQ2_nue.h"
#include "MINERvA_CC0pi_XSec_1DThetae_nue.h"
// MINERvA CC1pi+
#include "MINERvA_CC1pip_XSec_1DTpi_20deg_nu.h"
#include "MINERvA_CC1pip_XSec_1DTpi_nu.h"
#include "MINERvA_CC1pip_XSec_1Dth_20deg_nu.h"
#include "MINERvA_CC1pip_XSec_1Dth_nu.h"
// MINERvA CCNpi+
#include "MINERvA_CCNpip_XSec_1Dth_nu.h"
#include "MINERvA_CCNpip_XSec_1Dth_20deg_nu.h"
#include "MINERvA_CCNpip_XSec_1DTpi_nu.h"
#include "MINERvA_CCNpip_XSec_1DTpi_20deg_nu.h"
#include "MINERvA_CCNpip_XSec_1Dpmu_nu.h"
#include "MINERvA_CCNpip_XSec_1Dthmu_nu.h"
#include "MINERvA_CCNpip_XSec_1DQ2_nu.h"
#include "MINERvA_CCNpip_XSec_1DEnu_nu.h"
// MINERvA CC1pi0
#include "MINERvA_CC1pi0_XSec_1Dth_antinu.h"
#include "MINERvA_CC1pi0_XSec_1Dppi0_antinu.h"
#include "MINERvA_CC1pi0_XSec_1Dthmu_antinu.h"
#include "MINERvA_CC1pi0_XSec_1Dpmu_antinu.h"
#include "MINERvA_CC1pi0_XSec_1DQ2_antinu.h"
#include "MINERvA_CC1pi0_XSec_1DEnu_antinu.h"
// MINERvA CCINC
#include "MINERvA_CCinc_XSec_2DEavq3_nu.h"
#include "MINERvA_CCinc_XSec_1Dx_ratio.h"
#include "MINERvA_CCinc_XSec_1DEnu_ratio.h"
// T2K CC0pi
#include "T2K_CC0pi_XSec_2DPcos_nu.h"
// T2K CC1pi+ on CH
#include "T2K_CC1pip_CH_XSec_1Dpmu_nu.h"
#include "T2K_CC1pip_CH_XSec_1Dppi_nu.h"
#include "T2K_CC1pip_CH_XSec_1Dthpi_nu.h"
#include "T2K_CC1pip_CH_XSec_1Dthmupi_nu.h"
#include "T2K_CC1pip_CH_XSec_1DQ2_nu.h"
#include "T2K_CC1pip_CH_XSec_1Dq3_nu.h"
#include "T2K_CC1pip_CH_XSec_1Dthq3pi_nu.h"
#include "T2K_CC1pip_CH_XSec_1DWrec_nu.h"
// K2K CC0pi
#include "K2K_CC0pi_XSec_1DDelPhi_nu_Ntrks.h"
#include "K2K_CC0pi_XSec_1DPmu_nu_Ntrks.h"
#include "K2K_CC0pi_XSec_1DQ2_nu_subtrks.h"
#include "K2K_CC0pi_XSec_1DCosThetaMu_nu_subtrks.h"
#include "K2K_CC0pi_XSec_1DThetaMu_nu_Ntrks.h"
// K2K NC1pi0
#include "K2K_NC1pi0_Evt_1Dppi0_nu.h"
#include "ExpMultDist_CCQE_XSec_1DVar_FakeStudy.h"
#include "ExpMultDist_CCQE_XSec_2DVar_FakeStudy.h"
#include "GenericFlux_Tester.h"
#include "FitWeight.h"
#include "parameter_pulls.h"
//! Functions to make it easier for samples to be created and handled.
namespace SampleUtils {
//! Create a given sample given its name, file, type, fakdata(fkdt) file and the
//! current rw engine and push it back into the list fChain.
bool LoadSample(std::list<MeasurementBase*>* fChain, std::string name,
std::string file, std::string type, std::string fkdt,
FitWeight* rw);
}
/*! @} */
#endif

File Metadata

Mime Type
text/x-diff
Expires
Tue, Nov 19, 8:43 PM (1 d, 11 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3806142
Default Alt Text
(48 KB)

Event Timeline