diff --git a/CHANGELOG b/CHANGELOG deleted file mode 100644 index e69de29..0000000 diff --git a/CMakeLists.txt b/CMakeLists.txt index 6b75c51..a67d563 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,79 +1,79 @@ # Copyright 2018 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 . ################################################################################ -cmake_minimum_required (VERSION 2.8 FATAL_ERROR) +cmake_minimum_required (VERSION 3.0 FATAL_ERROR) #Use the compilers found in the path find_program(CMAKE_C_COMPILER NAMES $ENV{CC} gcc PATHS ENV PATH NO_DEFAULT_PATH) find_program(CMAKE_CXX_COMPILER NAMES $ENV{CXX} g++ PATHS ENV PATH NO_DEFAULT_PATH) project(NUISANCE) include(ExternalProject) set (NUISANCE_VERSION_MAJOR 3) set (NUISANCE_VERSION_MINOR 0) set (NUISANCE_VERSION_REVISION 0) set (NUISANCE_VERSION_STRING "v${NUISANCE_VERSION_MAJOR}r${NUISANCE_VERSION_MINOR}") if(${NUISANCE_VERSION_REVISION} STRGREATER "0") set (NUISANCE_VERSION_STRING "${NUISANCE_VERSION_STRING}p${NUISANCE_VERSION_REVISION}") endif() #Set this to TRUE to enable build debugging messages set(BUILD_DEBUG_MSGS TRUE) include(${CMAKE_SOURCE_DIR}/cmake/cmessage.cmake) include(${CMAKE_SOURCE_DIR}/cmake/cacheVariables.cmake) include(${CMAKE_SOURCE_DIR}/cmake/parseConfigApp.cmake) include(${CMAKE_SOURCE_DIR}/cmake/StringAndListUtils.cmake) cmessage(STATUS "CMAKE_INSTALL_PREFIX: \"${CMAKE_INSTALL_PREFIX}\"") cmessage(STATUS "CMAKE_BUILD_TYPE: \"${CMAKE_BUILD_TYPE}\"") ################################################################################ # Check Dependencies ################################################################################ ################################## ROOT ###################################### include(${CMAKE_SOURCE_DIR}/cmake/ROOTSetup.cmake) ################################# InputHandler ################################# include(${CMAKE_SOURCE_DIR}/cmake/InputHandlerSetup.cmake) ################################# Pythia6/8 ################################### include(${CMAKE_SOURCE_DIR}/cmake/pythia6Setup.cmake) #Want this before fhiclcpp which will add the install directory include_directories(${CMAKE_SOURCE_DIR}/src) ################################## FHICLCPP #################################### include(${CMAKE_SOURCE_DIR}/cmake/fhiclcppSetup.cmake) ################################## COMPILER #################################### include(${CMAKE_SOURCE_DIR}/cmake/gperfSetup.cmake) include(${CMAKE_SOURCE_DIR}/cmake/c++CompilerSetup.cmake) ################################################################################ add_subdirectory(src) add_subdirectory(scripts) add_subdirectory(config) add_subdirectory(data) diff --git a/CMakeLists_old.txt b/CMakeLists_old.txt deleted file mode 100644 index 220742b..0000000 --- a/CMakeLists_old.txt +++ /dev/null @@ -1,232 +0,0 @@ -# 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 . -################################################################################ -cmake_minimum_required (VERSION 2.8 FATAL_ERROR) - -#Use the compilers found in the path -find_program(CMAKE_C_COMPILER NAMES $ENV{CC} gcc PATHS ENV PATH NO_DEFAULT_PATH) -find_program(CMAKE_CXX_COMPILER NAMES $ENV{CXX} g++ PATHS ENV PATH NO_DEFAULT_PATH) - -project(NUISANCE) - -include(ExternalProject) - -enable_language(Fortran) - -set (NUISANCE_VERSION_MAJOR 2) -set (NUISANCE_VERSION_MINOR 7) -set (NUISANCE_VERSION_REVISION 0) - -set (NUISANCE_VERSION_STRING "v${NUISANCE_VERSION_MAJOR}r${NUISANCE_VERSION_MINOR}") -if(${NUISANCE_VERSION_REVISION} STRGREATER "0") - set (NUISANCE_VERSION_STRING "${NUISANCE_VERSION_STRING}p${NUISANCE_VERSION_REVISION}") -endif() - -#Set this to TRUE to enable build debugging messages -set(BUILD_DEBUG_MSGS TRUE) -include(${CMAKE_SOURCE_DIR}/cmake/cmessage.cmake) - -include(${CMAKE_SOURCE_DIR}/cmake/cacheVariables.cmake) - -cmessage(STATUS "CMAKE_INSTALL_PREFIX: \"${CMAKE_INSTALL_PREFIX}\"") -cmessage(STATUS "CMAKE_BUILD_TYPE: \"${CMAKE_BUILD_TYPE}\"") - -################################################################################ -# Check Dependencies -################################################################################ - -################################## ROOT ###################################### -include(${CMAKE_SOURCE_DIR}/cmake/ROOTSetup.cmake) - -################################# HEPMC ###################################### -include(${CMAKE_SOURCE_DIR}/cmake/HepMC.cmake) - -############################ Reweight Engines ################################ -include(${CMAKE_SOURCE_DIR}/cmake/ReweightEnginesSetup.cmake) - -############################ Other Generators ################################ - -include(${CMAKE_SOURCE_DIR}/cmake/GiBUUSetup.cmake) - -if(USE_NUANCE) - LIST(APPEND EXTRA_CXX_FLAGS -D__NUANCE_ENABLED__) -endif() - -################################# Pythia6/8 #################################### -include(${CMAKE_SOURCE_DIR}/cmake/pythia6Setup.cmake) -include(${CMAKE_SOURCE_DIR}/cmake/pythia8Setup.cmake) - -################################# gperftools ################################### - -include(${CMAKE_SOURCE_DIR}/cmake/gperfSetup.cmake) - -if(NOT NOTEST) - enable_testing() -endif() - -SET(GENERATOR_SUPPORT) - -foreach(gen NEUT;NuWro;GENIE;GiBUU;NUANCE) - if(USE_${gen}) - SET(GENERATOR_SUPPORT "${GENERATOR_SUPPORT}${gen} ") - endif() -endforeach(gen) - -cmessage(STATUS "Generator Input Support: ${GENERATOR_SUPPORT}") - -set(MINCODE - Routines - FCN) - -set(CORE - MCStudies - Genie - FitBase - Config - Logger - InputHandler - Splines - Reweight - Utils - Statistical - #Devel - Smearceptance - ) - -LIST(APPEND ALLEXPERIMENTS - ANL - ArgoNeuT - BEBC - BNL - Electron - FNAL - GGM - K2K - MINERvA - MiniBooNE - SciBooNE - T2K) - -foreach(exp ${ALLEXPERIMENTS}) - if(NOT NO_${exp}) - LIST(APPEND EXPERIMENTS_TO_BUILD ${exp}) - else() - LIST(REVERSE EXTRA_CXX_FLAGS) - LIST(APPEND EXTRA_CXX_FLAGS -D__NO_${exp}__) - LIST(REVERSE EXTRA_CXX_FLAGS) - endif() -endforeach() - -################################## COMPILER #################################### -include(${CMAKE_SOURCE_DIR}/cmake/c++CompilerSetup.cmake) - -################################### doxygen ################################### - -include(${CMAKE_SOURCE_DIR}/cmake/docsSetup.cmake) - -################################################################################ - - -set(MINIMUM_INCLUDE_DIRECTORIES) -LIST(APPEND MINIMUM_INCLUDE_DIRECTORIES - ${RWENGINE_INCLUDE_DIRECTORIES} - ${CMAKE_SOURCE_DIR}/src/FitBase - ${CMAKE_SOURCE_DIR}/src/Reweight - ${CMAKE_SOURCE_DIR}/src/InputHandler - ${CMAKE_SOURCE_DIR}/src/Config - ${CMAKE_SOURCE_DIR}/src/Logger - ${CMAKE_SOURCE_DIR}/src/Statistical - ${CMAKE_SOURCE_DIR}/src/Splines - ${CMAKE_SOURCE_DIR}/src/Utils - ${CMAKE_SOURCE_DIR}/src/Genie) - -cmessage(DEBUG "Base include directories: ${MINIMUM_INCLUDE_DIRECTORIES}") - -set(EXP_INCLUDE_DIRECTORIES) - -foreach(edir ${EXPERIMENTS_TO_BUILD}) - LIST(APPEND EXP_INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR}/src/${edir}) -endforeach() -cmessage(DEBUG "Included experiments: ${EXP_INCLUDE_DIRECTORIES}") - -foreach(mdir ${MINCODE}) - cmessage (DEBUG "Configuring directory: src/${mdir}") - add_subdirectory(src/${mdir}) -endforeach() - -foreach(edir ${EXPERIMENTS_TO_BUILD}) - cmessage (DEBUG "Configuring directory: src/${edir}") - add_subdirectory(src/${edir}) -endforeach() - -foreach(cdir ${CORE}) - cmessage (DEBUG "Configuring directory: src/${cdir}") - add_subdirectory(src/${cdir}) -endforeach() - -cmessage(DEBUG "Module targets: ${MODULETargets}") - -set(MODULETargets "${MODULETargets}") - -add_subdirectory(app) -add_subdirectory(src/Tests) - -configure_file(cmake/setup.sh.in - "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/setup.sh" @ONLY) -install(FILES - "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/setup.sh" DESTINATION - ${CMAKE_INSTALL_PREFIX}) - -configure_file(cmake/MakeBinaryBlob.in - "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/MakeBinaryBlob" @ONLY) -install(PROGRAMS - "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/MakeBinaryBlob" DESTINATION - bin) - -if(USE_DYNSAMPLES) - SET(ALL_INCLUDES ${MINIMUM_INCLUDE_DIRECTORIES}) - LIST(APPEND ALL_INCLUDES ${CMAKE_SOURCE_DIR}/src/Smearceptance) - LIST(APPEND ALL_INCLUDES ${EXP_INCLUDE_DIRECTORIES}) - - string(REPLACE ";" " -I" ALL_INCLUDES_STR "${ALL_INCLUDES}") - - cmessage(DEBUG ${NUISANCE_DEPEND_LIBS}) - string(REPLACE "-levent " "" NUISANCE_DEPEND_LIBS_NEW ${NUISANCE_DEPEND_LIBS}) - set(NUISANCE_DEPEND_LIBS ${NUISANCE_DEPEND_LIBS_NEW}) - cmessage(DEBUG ${NUISANCE_DEPEND_LIBS}) - - configure_file(cmake/BuildDynamicSample.in - "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/BuildDynamicSample" @ONLY) - install(PROGRAMS - "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/BuildDynamicSample" DESTINATION - bin) - - configure_file(cmake/BuildDynamicSmearcepter.in - "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/BuildDynamicSmearcepter" @ONLY) - install(PROGRAMS - "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/BuildDynamicSmearcepter" DESTINATION - bin) -endif() - -install(PROGRAMS - "${PROJECT_SOURCE_DIR}/scripts/nuiscardgen" DESTINATION - bin) - -install(PROGRAMS - "${PROJECT_SOURCE_DIR}/scripts/nuissamples" DESTINATION - bin) diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt deleted file mode 100644 index 7865834..0000000 --- a/app/CMakeLists.txt +++ /dev/null @@ -1,224 +0,0 @@ -# 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 . -################################################################################ - -set(TARGETS_TO_BUILD) - -if(USE_MINIMIZER) - add_executable(nuismin nuismin.cxx) - set(TARGETS_TO_BUILD ${TARGETS_TO_BUILD};nuismin) - target_link_libraries(nuismin ${MODULETargets}) - target_link_libraries(nuismin ${NUISANCE_DEPEND_LIBS}) - # target_link_libraries(nuismin ${ROOT_LIBS}) - if(NOT "${CMAKE_LINK_FLAGS}" STREQUAL "") - set_target_properties(nuismin PROPERTIES LINK_FLAGS ${CMAKE_LINK_FLAGS}) - endif() - - add_executable(nuissplines nuissplines.cxx) - set(TARGETS_TO_BUILD ${TARGETS_TO_BUILD};nuissplines) - target_link_libraries(nuissplines ${MODULETargets}) - target_link_libraries(nuissplines ${NUISANCE_DEPEND_LIBS}) - # target_link_libraries(nuissplines ${ROOT_LIBS}) - if(NOT "${CMAKE_LINK_FLAGS}" STREQUAL "") - set_target_properties(nuissplines PROPERTIES LINK_FLAGS ${CMAKE_LINK_FLAGS}) - endif() - -endif() - -include_directories(${RWENGINE_INCLUDE_DIRECTORIES}) -include_directories(${CMAKE_SOURCE_DIR}/src/Routines) -include_directories(${CMAKE_SOURCE_DIR}/src/InputHandler) -include_directories(${CMAKE_SOURCE_DIR}/src/Genie) -include_directories(${CMAKE_SOURCE_DIR}/src/FitBase) -include_directories(${CMAKE_SOURCE_DIR}/src/Statistical) -include_directories(${CMAKE_SOURCE_DIR}/src/Utils) -include_directories(${CMAKE_SOURCE_DIR}/src/Config) -include_directories(${CMAKE_SOURCE_DIR}/src/Logger) -include_directories(${CMAKE_SOURCE_DIR}/src/Splines) -include_directories(${CMAKE_SOURCE_DIR}/src/Reweight) -include_directories(${CMAKE_SOURCE_DIR}/src/FCN) -include_directories(${CMAKE_SOURCE_DIR}/src/MCStudies) -include_directories(${CMAKE_SOURCE_DIR}/src/Smearceptance) -include_directories(${EXP_INCLUDE_DIRECTORIES}) - -if (USE_NUWRO) - add_executable(nuwro_nuisance nuwro_NUISANCE.cxx) - set(TARGETS_TO_BUILD ${TARGETS_TO_BUILD};nuwro_nuisance) - target_link_libraries(nuwro_nuisance ${MODULETargets}) - target_link_libraries(nuwro_nuisance ${NUISANCE_DEPEND_LIBS}) - # target_link_libraries(nuwro_nuisance ${ROOT_LIBS}) - include_directories(${CMAKE_SOURCE_DIR}/src/FitBase) - if(NOT "${CMAKE_LINK_FLAGS}" STREQUAL "") - set_target_properties(nuwro_nuisance PROPERTIES LINK_FLAGS ${CMAKE_LINK_FLAGS}) - endif() -endif() - -if (USE_NEUT) - add_executable(neut_nuisance neut_NUISANCE.cxx) - set(TARGETS_TO_BUILD ${TARGETS_TO_BUILD};neut_nuisance) - target_link_libraries(neut_nuisance ${MODULETargets}) - target_link_libraries(neut_nuisance ${NUISANCE_DEPEND_LIBS}) - target_link_libraries(neut_nuisance ${ROOT_LIBS}) - include_directories(${CMAKE_SOURCE_DIR}/src/FitBase) - if(NOT "${CMAKE_LINK_FLAGS}" STREQUAL "") - set_target_properties(neut_nuisance PROPERTIES LINK_FLAGS ${CMAKE_LINK_FLAGS}) - endif() -endif() - -if (BUILD_GEVGEN) - add_executable(gevgen_nuisance gEvGen_NUISANCE.cxx) - set(TARGETS_TO_BUILD ${TARGETS_TO_BUILD};gevgen_nuisance) - target_link_libraries(gevgen_nuisance ${MODULETargets}) - target_link_libraries(gevgen_nuisance ${NUISANCE_DEPEND_LIBS}) - # target_link_libraries(gevgen_nuisance ${ROOT_LIBS}) - include_directories(${CMAKE_SOURCE_DIR}/src/FitBase) - include_directories(${GENIE_INCLUDES}/Apps) - include_directories(${GENIE_INCLUDES}/FluxDrivers) - include_directories(${GENIE_INCLUDES}/EVGDrivers) - if(NOT "${CMAKE_LINK_FLAGS}" STREQUAL "") - set_target_properties(gevgen_nuisance PROPERTIES LINK_FLAGS ${CMAKE_LINK_FLAGS}) - endif() - - - add_executable(gevgen_nuisance_mixed gEvGen_NUISANCE_MIXED.cxx) - set(TARGETS_TO_BUILD ${TARGETS_TO_BUILD};gevgen_nuisance_mixed) - target_link_libraries(gevgen_nuisance_mixed ${MODULETargets}) - target_link_libraries(gevgen_nuisance_mixed ${NUISANCE_DEPEND_LIBS}) - # target_link_libraries(gevgen_nuisance_mixed ${ROOT_LIBS}) - include_directories(${CMAKE_SOURCE_DIR}/src/FitBase) - include_directories(${GENIE_INCLUDES}/Apps) - include_directories(${GENIE_INCLUDES}/FluxDrivers) - include_directories(${GENIE_INCLUDES}/EVGDrivers) - if(NOT "${CMAKE_LINK_FLAGS}" STREQUAL "") - set_target_properties(gevgen_nuisance_mixed PROPERTIES LINK_FLAGS ${CMAKE_LINK_FLAGS}) - endif() -endif() - -if (USE_GiBUU) - add_executable(DumpGiBUUEvents DumpGiBUUEvents.cxx) - set(TARGETS_TO_BUILD ${TARGETS_TO_BUILD};DumpGiBUUEvents) - target_link_libraries(DumpGiBUUEvents ${MODULETargets}) - target_link_libraries(DumpGiBUUEvents ${NUISANCE_DEPEND_LIBS}) - # target_link_libraries(DumpGiBUUEvents ${ROOT_LIBS}) - include_directories(${CMAKE_SOURCE_DIR}/src/FitBase) - if(NOT "${CMAKE_LINK_FLAGS}" STREQUAL "") - set_target_properties(DumpGiBUUEvents PROPERTIES LINK_FLAGS ${CMAKE_LINK_FLAGS}) - endif() -endif() - -add_executable(nuiscomp nuiscomp.cxx) -set(TARGETS_TO_BUILD ${TARGETS_TO_BUILD};nuiscomp) -target_link_libraries(nuiscomp ${MODULETargets}) -target_link_libraries(nuiscomp ${NUISANCE_DEPEND_LIBS}) -# target_link_libraries(nuiscomp ${ROOT_LIBS}) -if(NOT "${CMAKE_LINK_FLAGS}" STREQUAL "") - set_target_properties(nuiscomp PROPERTIES LINK_FLAGS ${CMAKE_LINK_FLAGS}) -endif() - -add_executable(nuisflat nuisflat.cxx) -set(TARGETS_TO_BUILD ${TARGETS_TO_BUILD};nuisflat) -target_link_libraries(nuisflat ${MODULETargets}) -target_link_libraries(nuisflat ${NUISANCE_DEPEND_LIBS}) -# target_link_libraries(nuisflat ${ROOT_LIBS}) -if(NOT "${CMAKE_LINK_FLAGS}" STREQUAL "") - set_target_properties(nuisflat PROPERTIES LINK_FLAGS ${CMAKE_LINK_FLAGS}) -endif() - -add_executable(nuissmear nuissmear.cxx) -set(TARGETS_TO_BUILD ${TARGETS_TO_BUILD};nuissmear) -target_link_libraries(nuissmear ${MODULETargets}) -target_link_libraries(nuissmear ${NUISANCE_DEPEND_LIBS}) -# target_link_libraries(nuissmear ${ROOT_LIBS}) -if(NOT "${CMAKE_LINK_FLAGS}" STREQUAL "") - set_target_properties(nuissmear PROPERTIES LINK_FLAGS ${CMAKE_LINK_FLAGS}) -endif() - -add_executable(nuissyst nuissyst.cxx) -set(TARGETS_TO_BUILD ${TARGETS_TO_BUILD};nuissyst) -target_link_libraries(nuissyst ${MODULETargets}) -target_link_libraries(nuissyst ${NUISANCE_DEPEND_LIBS}) -# target_link_libraries(nuissyst ${ROOT_LIBS}) -if(NOT "${CMAKE_LINK_FLAGS}" STREQUAL "") - set_target_properties(nuissyst PROPERTIES LINK_FLAGS ${CMAKE_LINK_FLAGS}) -endif() - -add_executable(nuisbayes nuisbayes.cxx) -set(TARGETS_TO_BUILD ${TARGETS_TO_BUILD};nuisbayes) -target_link_libraries(nuisbayes ${MODULETargets}) -target_link_libraries(nuisbayes ${NUISANCE_DEPEND_LIBS}) -# target_link_libraries(nuisbayes ${ROOT_LIBS}) -if(NOT "${CMAKE_LINK_FLAGS}" STREQUAL "") - set_target_properties(nuisbayes PROPERTIES LINK_FLAGS ${CMAKE_LINK_FLAGS}) -endif() - -if(USE_GENIE) - add_executable(PrepareGENIE PrepareGENIE.cxx) - set(TARGETS_TO_BUILD ${TARGETS_TO_BUILD};PrepareGENIE) - target_link_libraries(PrepareGENIE ${MODULETargets}) - target_link_libraries(PrepareGENIE ${NUISANCE_DEPEND_LIBS}) - # target_link_libraries(PrepareGENIE ${ROOT_LIBS}) - if(NOT "${CMAKE_LINK_FLAGS}" STREQUAL "") - set_target_properties(PrepareGENIE PROPERTIES LINK_FLAGS ${CMAKE_LINK_FLAGS}) - endif() -endif() - -if(USE_NEUT) - add_executable(PrepareNEUT PrepareNEUT.cxx) - set(TARGETS_TO_BUILD ${TARGETS_TO_BUILD};PrepareNEUT) - target_link_libraries(PrepareNEUT ${MODULETargets}) - target_link_libraries(PrepareNEUT ${NUISANCE_DEPEND_LIBS}) - # target_link_libraries(PrepareNEUT ${ROOT_LIBS}) - if(NOT "${CMAKE_LINK_FLAGS}" STREQUAL "") - set_target_properties(PrepareNEUT PROPERTIES LINK_FLAGS ${CMAKE_LINK_FLAGS}) - endif() -endif() - -# PREPARE NUWRO -# Commented out for the time being until it is finished.. -if(USE_NUWRO) - add_executable(PrepareNuwro PrepareNuwroEvents.cxx) - set(TARGETS_TO_BUILD ${TARGETS_TO_BUILD};PrepareNuwro) - target_link_libraries(PrepareNuwro ${MODULETargets}) - target_link_libraries(PrepareNuwro ${NUISANCE_DEPEND_LIBS}) - # target_link_libraries(PrepareNuwro ${ROOT_LIBS}) - if(NOT "${CMAKE_LINK_FLAGS}" STREQUAL "") - set_target_properties(PrepareNuwro PROPERTIES LINK_FLAGS ${CMAKE_LINK_FLAGS}) - endif() -endif() - -add_executable(nuisbac nuisbac.cxx) -set(TARGETS_TO_BUILD ${TARGETS_TO_BUILD};nuisbac) -target_link_libraries(nuisbac ${MODULETargets}) -target_link_libraries(nuisbac ${NUISANCE_DEPEND_LIBS}) -if(NOT "${CMAKE_LINK_FLAGS}" STREQUAL "") - set_target_properties(nuisbac PROPERTIES LINK_FLAGS ${CMAKE_LINK_FLAGS}) -endif() - -install(TARGETS ${TARGETS_TO_BUILD} DESTINATION bin) - -#add_executable(DumpROOTClassesFromVector DumpROOTClassesFromVector.cxx) -# #Strip out -lNuWro_event1 -# string(REPLACE "-lNuWro_event1" "" NWEVSTRIPPED_CDF ${NUISANCE_DEPEND_LIBS}) -# cmessage(DEBUG "Attempted to strip out nuwro library: \"${NUISANCE_DEPEND_LIBS}\" -> \"${NWEVSTRIPPED_CDF}\"") -# add_executable(PrepareNEUT PrepareNEUT.cxx) -# target_link_libraries(DumpROOTClassesFromVector ${MODULETargets}) -# target_link_libraries(DumpROOTClassesFromVector ${NWEVSTRIPPED_CDF}) -# if(NOT CMAKE_LINK_FLAGS STREQUAL "") -# set_target_properties(DumpROOTClassesFromVector PROPERTIES LINK_FLAGS ${CMAKE_LINK_FLAGS}) -# endif() -#install(TARGETS DumpROOTClassesFromVector DESTINATION bin) diff --git a/app/DumpGiBUUEvents.cxx b/app/DumpGiBUUEvents.cxx deleted file mode 100644 index 6320332..0000000 --- a/app/DumpGiBUUEvents.cxx +++ /dev/null @@ -1,56 +0,0 @@ -// 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 . -*******************************************************************************/ - -#include - -#include "StdHepEvt.h" -#include "FitLogger.h" - -int main(int argv, char const *argc[]) { - if (argv != 2) { - ERR(FTL) << "[ERROR]: expected a single input GiBUU rootracker file." - << std::endl; - return 1; - } - std::string inpf(argc[1]); - - if (!inpf.length()) { - ERR(FTL) << "[ERROR]: expected an input GiBUU rootracker file." - << std::endl; - return 2; - } - - TChain tn("giRooTracker"); - tn.AddFile(inpf.c_str()); - - GiBUUStdHepReader giRead; - bool ok = giRead.SetBranchAddresses(&tn); - - if (!ok) { - ERR(FTL) - << "[ERROR]: Could not correctly set branch address for input file." - << std::endl; - return 4; - } - - for (Long64_t ievt = 0; ievt < tn.GetEntries(); ++ievt) { - tn.GetEntry(ievt); - LOG(EVT) << WriteGiBUUEvent(giRead) << std::endl; - } -} diff --git a/app/DumpROOTClassesFromVector.cxx b/app/DumpROOTClassesFromVector.cxx deleted file mode 100644 index 7c22652..0000000 --- a/app/DumpROOTClassesFromVector.cxx +++ /dev/null @@ -1,128 +0,0 @@ -// 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 . -*******************************************************************************/ - -#include "GeneralUtils.h" - -#include "TCollection.h" -#include "TError.h" -#include "TFile.h" -#include "TStreamerInfo.h" -#include "TString.h" -#include "TTree.h" - -#include -#include -#include - -int main(int argc, char const* argv[]) { - // shhh ROOT it okay. - gErrorIgnoreLevel = kError; - - if (argc != 4) { - std::cout << "[ERROR](DumpROOTClassesFromVector): Recieved " << (argc - 1) - << " CLI opts." << std::endl; - for (int i = 1; i < argc; ++i) { - std::cout << "[" << i << "] \"" << argv[i] << "\"" << std::endl; - } - std::cout << "Usage: " << argv[0] - << " " - " " - << std::endl; - return 1; - } - char const* ROOTFileName = argv[1]; - char const* OutputDirectoryName = argv[2]; - char const* CSLClasses = argv[3]; - TFile* fl = TFile::Open(ROOTFileName); - if (!fl || !fl->IsOpen()) { - std::cerr - << "[ERROR](DumpROOTClassesFromVector): Failed to open root file: " - << fl << std::endl; - return 1; - } - std::cout << "[INFO]: Writing project files to " << OutputDirectoryName - << std::endl; - fl->MakeProject(OutputDirectoryName); - - TIter next(fl->GetStreamerInfoList()); - TStreamerInfo* inf = 0; - std::vector ClassesToFind = - GeneralUtils::ParseToStr(CSLClasses, ","); - - if (!ClassesToFind.size() || !ClassesToFind[0].length()) { - std::cerr - << "[ERROR](DumpROOTClassesFromVector): No classes to find passed in." - << std::endl; - return 2; - } - - std::vector ClassesToLink; - while ((inf = dynamic_cast(next()))) { - std::cout << "[INFO]: Have StreamerInfo for class: " << inf->GetName() - << std::endl; - for (size_t ClTF_it = 0; ClTF_it < ClassesToFind.size(); ++ClTF_it) { - if (std::string(inf->GetName()) == ClassesToFind[ClTF_it]) { - ClassesToLink.push_back(inf->GetName()); - std::cout << "[INFO]: Including streamer info for: " << inf->GetName() - << " in generated LinkDef" << std::endl; - } - } - } - - if (ClassesToFind.size() > ClassesToLink.size()) { - std::cerr << "[ERROR](DumpROOTClassesFromVector): Only found " - << ClassesToLink.size() - << " classes to include in the ROOT library, expected at least " - << ClassesToFind.size() << std::endl; - return 1; - } - - std::string OutputDir(OutputDirectoryName); - - size_t pos = OutputDir.find_last_of('/'); - pos = (pos == std::string::npos) ? 0 : pos; - - std::string LinkDef_loc = - OutputDir + "/" + OutputDir.substr(pos) + "LinkDef.h"; - std::cout << "[INFO]: Writing LinkDef to: " << LinkDef_loc << std::endl; - std::ofstream LinkDefos(LinkDef_loc.c_str()); - - if (!LinkDefos.is_open()) { - std::cerr << "[ERROR] Couldn't open " << LinkDef_loc << " for writing." - << std::endl; - } - - LinkDefos << "#ifdef __CINT__" << std::endl; - for (size_t ClTL_it = 0; ClTL_it < ClassesToLink.size(); ++ClTL_it) { - LinkDefos << "#pragma link C++ class " << ClassesToLink[ClTL_it] << "+;" - << std::endl; - } - LinkDefos << "#endif" << std::endl; - LinkDefos.close(); - - std::string Instances_loc = - OutputDir + "/" + OutputDir.substr(pos) + "ProjectInstances.h"; - std::ofstream Instancesos(Instances_loc.c_str()); - if (!Instancesos.is_open()) { - std::cerr << "[ERROR] Couldn't open " << Instances_loc << " for writing." - << std::endl; - } - Instancesos.close(); -} diff --git a/app/PrepareGENIE.cxx b/app/PrepareGENIE.cxx deleted file mode 100644 index 0e74407..0000000 --- a/app/PrepareGENIE.cxx +++ /dev/null @@ -1,615 +0,0 @@ -#include -#include -#include "FitLogger.h" -#include "PlotUtils.h" -#include "TFile.h" -#include "TH1D.h" -#include "TTree.h" - -#ifdef __GENIE_ENABLED__ -#include "Conventions/Units.h" -#include "GHEP/GHepParticle.h" -#include "PDG/PDGUtils.h" -#endif - -std::string gInputFiles = ""; -std::string gOutputFile = ""; -std::string gFluxFile = ""; -std::string gTarget = ""; -double MonoEnergy; -bool IsMonoE = false; - -void PrintOptions(); -void ParseOptions(int argc, char* argv[]); -void RunGENIEPrepareMono(std::string input, std::string target, - std::string output); -void RunGENIEPrepare(std::string input, std::string flux, std::string target, - std::string output); - -int main(int argc, char* argv[]) { - ParseOptions(argc, argv); - if (IsMonoE) { - RunGENIEPrepareMono(gInputFiles, gTarget, gOutputFile); - } else { - RunGENIEPrepare(gInputFiles, gFluxFile, gTarget, gOutputFile); - } -} - -void RunGENIEPrepareMono(std::string input, std::string target, - std::string output) { - - std::cout << "Running in mono" << std::endl; - // Setup TTree - TChain* tn = new TChain("gtree"); - tn->AddFile(input.c_str()); - - int nevt = tn->GetEntries(); - NtpMCEventRecord* genientpl = NULL; - tn->SetBranchAddress("gmcrec", &genientpl); - - TH1D* fluxhist = new TH1D("flux", "flux", 1000, 0, 10); - fluxhist->Fill(MonoEnergy); - fluxhist->Scale(1, "width"); - - // Make Event Hist - TH1D* eventhist = (TH1D*)fluxhist->Clone(); - eventhist->Reset(); - - TH1D* xsechist = (TH1D*)eventhist->Clone(); - - // Create maps - std::map modexsec; - std::map modecount; - std::vector genieids; - std::vector targetids; - std::vector interids; - - // Loop over all events - for (int i = 0; i < nevt; i++) { - tn->GetEntry(i); - - StopTalking(); - EventRecord& event = *(genientpl->event); - GHepParticle* neu = event.Probe(); - StartTalking(); - - // Get XSec From Spline - GHepRecord genie_record = static_cast(event); - double xsec = (genie_record.XSec() / (1E-38 * genie::units::cm2)); - - // Parse Interaction String - std::string mode = genie_record.Summary()->AsString(); - std::vector modevec = GeneralUtils::ParseToStr(mode, ";"); - std::string targ = (modevec[0] + ";" + modevec[1]); - std::string inter = mode; - - // Fill lists of Unique IDS - if (std::find(targetids.begin(), targetids.end(), targ) == - targetids.end()) { - targetids.push_back(targ); - } - - if (std::find(interids.begin(), interids.end(), inter) == interids.end()) { - interids.push_back(inter); - } - - // Create entries Mode Maps - if (modexsec.find(mode) == modexsec.end()) { - genieids.push_back(mode); - - modexsec[mode] = (TH1D*)xsechist->Clone(); - modecount[mode] = (TH1D*)xsechist->Clone(); - } - - // Fill XSec Histograms - modexsec[mode]->Fill(neu->E(), xsec); - modecount[mode]->Fill(neu->E()); - - // Fill total event hist - eventhist->Fill(neu->E()); - - // Clear Event - genientpl->Clear(); - - size_t freq = nevt / 20; - if (freq && !(i % freq)) { - LOG(FIT) << "Processed " << i << "/" << nevt << " GENIE events." - << std::endl; - } - } - LOG(FIT) << "Processed all events" << std::endl; - - TFile* outputfile = new TFile(input.c_str(), "UPDATE"); - outputfile->cd(); - - LOG(FIT) << "Getting splines in mono" << std::endl; - - // Save each of the reconstructed splines to file - std::map modeavg; - - TDirectory* inddir = (TDirectory*)outputfile->Get("IndividualGENIESplines"); - if (!inddir) - inddir = (TDirectory*)outputfile->mkdir("IndividualGENIESplines"); - inddir->cd(); - - // Loop over GENIE ID's and get MEC count - int MECcount = 0; - bool MECcorrect = FitPar::Config().GetParB("CorrectGENIEMECNorm"); - for (UInt_t i = 0; i < genieids.size(); i++) { - if (genieids[i].find("MEC") != std::string::npos) { - MECcount++; - } - } - LOG(FIT) << "Found " << MECcount << " repeated MEC instances." << std::endl; - - for (UInt_t i = 0; i < genieids.size(); i++) { - std::string mode = genieids[i]; - - modexsec[mode]->Write((mode + "_summed_xsec").c_str(), TObject::kOverwrite); - modecount[mode]->Write((mode + "_summed_evt").c_str(), TObject::kOverwrite); - - // Form extra avg xsec map -> Reconstructed spline - modeavg[mode] = (TH1D*)modexsec[mode]->Clone(); - modeavg[mode]->Divide(modecount[mode]); - - if (MECcorrect && (mode.find("MEC") != std::string::npos)) { - modeavg[mode]->Scale(1.0 / double(MECcount)); - } - - modeavg[mode]->Write((mode + "_rec_spline").c_str(), TObject::kOverwrite); - } - - TDirectory* targdir = (TDirectory*)outputfile->Get("TargetGENIESplines"); - if (!targdir) targdir = (TDirectory*)outputfile->mkdir("TargetGENIESplines"); - targdir->cd(); - - LOG(FIT) << "Getting Target Splines" << std::endl; - // For each target save a total spline - std::map targetsplines; - - for (uint i = 0; i < targetids.size(); i++) { - LOG(FIT) << "Getting target " << i << std::endl; - std::string targ = targetids[i]; - targetsplines[targ] = (TH1D*)xsechist->Clone(); - LOG(FIT) << "Created target spline for " << targ << std::endl; - - for (uint j = 0; j < genieids.size(); j++) { - std::string mode = genieids[j]; - - if (mode.find(targ) != std::string::npos) { - LOG(FIT) << "Mode " << mode << " contains " << targ << " target!" - << std::endl; - targetsplines[targ]->Add(modeavg[mode]); - LOG(FIT) << "Finished with Mode " << mode << " " - << modeavg[mode]->Integral() << std::endl; - } - } - - LOG(FIT) << "Saving target spline:" << targ << std::endl; - targetsplines[targ]->Write(("Total" + targ).c_str(), TObject::kOverwrite); - } - - LOG(FIT) << "Getting total splines" << std::endl; - // Now we have each of the targets we need to create a total cross-section. - int totalnucl = 0; - std::vector targprs = GeneralUtils::ParseToStr(target, ","); - TH1D* totalxsec = (TH1D*)xsechist->Clone(); - - for (uint i = 0; i < targprs.size(); i++) { - std::string targpdg = targprs[i]; - - for (std::map::iterator iter = targetsplines.begin(); - iter != targetsplines.end(); iter++) { - std::string targstr = iter->first; - TH1D* xsec = iter->second; - - if (targstr.find(targpdg) != std::string::npos) { - LOG(FIT) << "Adding target spline " << targstr - << " Integral = " << xsec->Integral("width") << std::endl; - totalxsec->Add(xsec); - - int nucl = atoi(targpdg.c_str()); - totalnucl += int((nucl % 10000) / 10); - } - } - } - - outputfile->cd(); - totalxsec->Write("nuisance_Xsec", TObject::kOverwrite); - eventhist = (TH1D*)totalxsec->Clone(); - eventhist->Multiply(fluxhist); - - eventhist->Write("nuisance_events", TObject::kOverwrite); - fluxhist->Write("nuisance_flux", TObject::kOverwrite); - - LOG(FIT) << "Inclusive XSec Per Nucleon = " - << eventhist->Integral("width") * 1E-38 / fluxhist->Integral("width") - << std::endl; - std::cout << "XSec Hist Integral = " << xsechist->Integral("width") - << std::endl; - - return; -} - -void RunGENIEPrepare(std::string input, std::string flux, std::string target, - std::string output) { - LOG(FIT) << "Running GENIE Prepare" << std::endl; - std::cout << "Running in prepare" << std::endl; - - // Get Flux Hist - std::vector fluxvect = GeneralUtils::ParseToStr(flux, ","); - TH1* fluxhist = NULL; - if (fluxvect.size() == 3) { - double from = GeneralUtils::StrToDbl(fluxvect[0]); - double to = GeneralUtils::StrToDbl(fluxvect[1]); - double step = GeneralUtils::StrToDbl(fluxvect[2]); - - int nstep = ceil((to - from) / step); - to = from + step * nstep; - - QLOG(FIT, "Generating flat flux histogram from " - << from << " to " << to << " with bins " << step - << " wide (NBins = " << nstep << ")."); - - fluxhist = - new TH1D("spectrum", ";E_{#nu} (GeV);Count (A.U.)", nstep, from, to); - - for (Int_t bi_it = 1; bi_it < fluxhist->GetXaxis()->GetNbins(); ++bi_it) { - fluxhist->SetBinContent(bi_it, 1.0 / double(step * nstep)); - } - fluxhist->SetDirectory(0); - } else if (fluxvect.size() == 2) { - TFile* fluxfile = new TFile(fluxvect[0].c_str(), "READ"); - if (!fluxfile->IsZombie()) { - fluxhist = dynamic_cast(fluxfile->Get(fluxvect[1].c_str())); - if (!fluxhist) { - ERR(FTL) << "Couldn't find histogram named: \"" << fluxvect[1] - << "\" in file: \"" << fluxvect[0] << std::endl; - throw; - } - fluxhist->SetDirectory(0); - } - } else if (fluxvect.size() == 1) { - MonoEnergy = GeneralUtils::StrToDbl(fluxvect[0]); - RunGENIEPrepareMono(input, target, output); - return; - } else { - LOG(FTL) << "Bad flux specification: \"" << flux << "\"." << std::endl; - throw; - } - - // Setup TTree - TChain* tn = new TChain("gtree"); - - if (input.find_first_of(',') != std::string::npos) { - std::vector inputvect = GeneralUtils::ParseToStr(input, ","); - - for (size_t iv_it = 0; iv_it < inputvect.size(); ++iv_it) { - tn->AddFile(inputvect[iv_it].c_str()); - QLOG(FIT, "Added input file: " << inputvect[iv_it]); - } - } else { // The Add form can accept wildcards. - tn->Add(input.c_str()); - } - - int nevt = tn->GetEntries(); - - if (!nevt) { - THROW("Couldn't load any events from input specification: \"" - << input.c_str() << "\""); - } else { - QLOG(FIT, "Found " << nevt << " input entries."); - } - - NtpMCEventRecord* genientpl = NULL; - tn->SetBranchAddress("gmcrec", &genientpl); - - // Make Event Hist - TH1D* eventhist = (TH1D*)fluxhist->Clone(); - eventhist->Reset(); - - TH1D* xsechist = (TH1D*)eventhist->Clone(); - - // Create maps - std::map modexsec; - std::map modecount; - std::vector genieids; - std::vector targetids; - std::vector interids; - - // Loop over all events - for (int i = 0; i < nevt; i++) { - tn->GetEntry(i); - - StopTalking(); - EventRecord& event = *(genientpl->event); - GHepParticle* neu = event.Probe(); - StartTalking(); - - // Get XSec From Spline - GHepRecord genie_record = static_cast(event); - double xsec = (genie_record.XSec() / (1E-38 * genie::units::cm2)); - - // Parse Interaction String - std::string mode = genie_record.Summary()->AsString(); - std::vector modevec = GeneralUtils::ParseToStr(mode, ";"); - std::string targ = (modevec[0] + ";" + modevec[1]); - std::string inter = mode; - - // Fill lists of Unique IDS - if (std::find(targetids.begin(), targetids.end(), targ) == - targetids.end()) { - targetids.push_back(targ); - } - - if (std::find(interids.begin(), interids.end(), inter) == interids.end()) { - interids.push_back(inter); - } - - // Create entries Mode Maps - if (modexsec.find(mode) == modexsec.end()) { - genieids.push_back(mode); - - modexsec[mode] = (TH1D*)xsechist->Clone(); - modecount[mode] = (TH1D*)xsechist->Clone(); - } - - // Fill XSec Histograms - modexsec[mode]->Fill(neu->E(), xsec); - modecount[mode]->Fill(neu->E()); - - // Fill total event hist - eventhist->Fill(neu->E()); - - if (i % (nevt / 20) == 0) { - LOG(FIT) << "Processed " << i << "/" << nevt - << " GENIE events (Last event: { E: " << neu->E() - << ", xsec: " << xsec << " }." << std::endl; - } - - // Clear Event - genientpl->Clear(); - } - LOG(FIT) << "Processed all events" << std::endl; - - // Once event loop is done we can start saving stuff into the file - - TFile* outputfile; - - if (!gOutputFile.length()) { - tn->GetEntry(0); - outputfile = tn->GetFile(); - outputfile->cd(); - } else { - outputfile = new TFile(gOutputFile.c_str(), "RECREATE"); - outputfile->cd(); - - QLOG(FIT, "Cloning input vector to output file: " << gOutputFile); - TTree* cloneTree = tn->CloneTree(); - cloneTree->SetDirectory(outputfile); - cloneTree->Write(); - QLOG(FIT, "Done."); - } - - LOG(FIT) << "Getting splines " << std::endl; - - // Save each of the reconstructed splines to file - std::map modeavg; - - TDirectory* inddir = (TDirectory*)outputfile->Get("IndividualGENIESplines"); - if (!inddir) - inddir = (TDirectory*)outputfile->mkdir("IndividualGENIESplines"); - inddir->cd(); - - // Loop over GENIE ID's and get MEC count - int MECcount = 0; - bool MECcorrect = FitPar::Config().GetParB("CorrectGENIEMECNorm"); - for (UInt_t i = 0; i < genieids.size(); i++) { - if (genieids[i].find("MEC") != std::string::npos) { - MECcount++; - } - } - LOG(FIT) << "Found " << MECcount << " repeated MEC instances." << std::endl; - - for (UInt_t i = 0; i < genieids.size(); i++) { - std::string mode = genieids[i]; - - modexsec[mode]->Write((mode + "_summed_xsec").c_str(), TObject::kOverwrite); - modecount[mode]->Write((mode + "_summed_evt").c_str(), TObject::kOverwrite); - - // Form extra avg xsec map -> Reconstructed spline - modeavg[mode] = (TH1D*)modexsec[mode]->Clone(); - modeavg[mode]->Divide(modecount[mode]); - - if (MECcorrect && (mode.find("MEC") != std::string::npos)) { - modeavg[mode]->Scale(1.0 / double(MECcount)); - } - - modeavg[mode]->Write((mode + "_rec_spline").c_str(), TObject::kOverwrite); - } - - TDirectory* targdir = (TDirectory*)outputfile->Get("TargetGENIESplines"); - if (!targdir) targdir = (TDirectory*)outputfile->mkdir("TargetGENIESplines"); - targdir->cd(); - - LOG(FIT) << "Getting Target Splines" << std::endl; - // For each target save a total spline - std::map targetsplines; - - for (uint i = 0; i < targetids.size(); i++) { - LOG(FIT) << "Getting target " << i << std::endl; - std::string targ = targetids[i]; - targetsplines[targ] = (TH1D*)xsechist->Clone(); - LOG(FIT) << "Created target spline for " << targ << std::endl; - - for (uint j = 0; j < genieids.size(); j++) { - std::string mode = genieids[j]; - - // Look at all matching modes/targets - if (mode.find(targ) != std::string::npos) { - LOG(FIT) << "Mode " << mode << " contains " << targ << " target!" - << std::endl; - // modeavg[mode]->Write( (mode + "_cont_" + targ).c_str() , - // TObject::kOverwrite); - targetsplines[targ]->Add(modeavg[mode]); - LOG(FIT) << "Finished with Mode " << mode << " " - << modeavg[mode]->Integral() << std::endl; - } - } - - LOG(FIT) << "Saving target spline:" << targ << std::endl; - targetsplines[targ]->Write(("Total" + targ).c_str(), TObject::kOverwrite); - } - - LOG(FIT) << "Getting total splines" << std::endl; - // Now we have each of the targets we need to create a total cross-section. - int totalnucl = 0; - std::vector targprs = GeneralUtils::ParseToStr(target, ","); - TH1D* totalxsec = (TH1D*)xsechist->Clone(); - - for (uint i = 0; i < targprs.size(); i++) { - std::string targpdg = targprs[i]; - - for (std::map::iterator iter = targetsplines.begin(); - iter != targetsplines.end(); iter++) { - std::string targstr = iter->first; - TH1D* xsec = iter->second; - - if (targstr.find(targpdg) != std::string::npos) { - LOG(FIT) << "Adding target spline " << targstr - << " Integral = " << xsec->Integral("width") << std::endl; - totalxsec->Add(xsec); - - int nucl = atoi(targpdg.c_str()); - totalnucl += int((nucl % 10000) / 10); - } - } - } - LOG(FIT) << "Total XSec Integral = " << totalxsec->Integral("width") - << std::endl; - - outputfile->cd(); - totalxsec->Write("nuisance_xsec", TObject::kOverwrite); - eventhist = (TH1D*)fluxhist->Clone(); - eventhist->Multiply(totalxsec); - - LOG(FIT) << "Dividing by Total Nucl = " << totalnucl << std::endl; - eventhist->Scale(1.0 / double(totalnucl)); - - eventhist->Write("nuisance_events", TObject::kOverwrite); - fluxhist->Write("nuisance_flux", TObject::kOverwrite); - - LOG(FIT) << "Inclusive XSec Per Nucleon = " - << eventhist->Integral("width") * 1E-38 / fluxhist->Integral("width") - << std::endl; - std::cout << "XSec Hist Integral = " << xsechist->Integral("width") - << std::endl; - - outputfile->Write(); - outputfile->Close(); - delete outputfile; - - return; -}; - -void PrintOptions() { - std::cout << "PrepareGENIEEvents NUISANCE app. " << std::endl - << "Takes GHep Outputs and prepares events for NUISANCE." - << std::endl - << std::endl - << "PrepareGENIEEvents [-h,-help,--h,--help] [-i " - "inputfile1.root,inputfile2.root,inputfile3.root,...] " - << "[-f flux_root_file.root,flux_hist_name] [-t " - "target1[frac1],target2[frac2],...]" - << std::endl - << std::endl; - - std::cout << "Prepare Mode [Default] : Takes a single GHep file, " - "reconstructs the original GENIE splines, " - << " and creates a duplicate file that also contains the flux, " - "event rate, and xsec predictions that NUISANCE needs. " - << std::endl; - std::cout << "Following options are required for Prepare Mode:" << std::endl; - std::cout << " [ -i inputfile.root ] : Reads in a single GHep input file " - "that needs the xsec calculation ran on it. " - << std::endl; - std::cout << " [ -f flux_file.root,hist_name ] : Path to root file " - "containing the flux histogram the GHep records were generated " - "with." - << " A simple method is to point this to the flux histogram genie " - "generatrs '-f /path/to/events/input-flux.root,spectrum'. " - << std::endl; - std::cout << " [ -f elow,ehigh,estep ] : Energy range specification when no " - "flux file was used." - << std::endl; - std::cout << " [ -t target ] : Target that GHepRecords were generated with. " - "Comma seperated list. E.g. for CH2 " - "target=1000060120,1000010010,1000010010" - << std::endl; - std::cout << " [ -o outputfile.root ] : File to write prepared input file to." - << std::endl; - std::cout << " [ -m Mono_E_nu_GeV ] : Run in mono-energetic mode." - << std::endl; -} - -void ParseOptions(int argc, char* argv[]) { - bool flagopt = false; - - // If No Arguments print commands - for (int i = 1; i < argc; ++i) { - if (!std::strcmp(argv[i], "-h")) { - flagopt = true; - break; - } - if (i + 1 != argc) { - // Cardfile - if (!std::strcmp(argv[i], "-h")) { - flagopt = true; - break; - } else if (!std::strcmp(argv[i], "-i")) { - gInputFiles = argv[i + 1]; - ++i; - } else if (!std::strcmp(argv[i], "-o")) { - gOutputFile = argv[i + 1]; - ++i; - } else if (!std::strcmp(argv[i], "-f")) { - gFluxFile = argv[i + 1]; - ++i; - } else if (!std::strcmp(argv[i], "-t")) { - gTarget = argv[i + 1]; - ++i; - } else if (!std::strcmp(argv[i], "-m")) { - MonoEnergy = GeneralUtils::StrToDbl(argv[i + 1]); - IsMonoE = true; - ++i; - } else { - ERR(FTL) << "ERROR: unknown command line option given! - '" << argv[i] - << " " << argv[i + 1] << "'" << std::endl; - PrintOptions(); - break; - } - } - } - - if (gInputFiles == "" && !flagopt) { - ERR(FTL) << "No input file(s) specified!" << std::endl; - flagopt = true; - } - - if (gFluxFile == "" && !flagopt && !IsMonoE) { - ERR(FTL) << "No flux input specified for Prepare Mode" << std::endl; - flagopt = true; - } - - if (gTarget == "" && !flagopt) { - ERR(FTL) << "No target specified for Prepare Mode" << std::endl; - flagopt = true; - } - - if (argc < 1 || flagopt) { - PrintOptions(); - exit(-1); - } - - return; -} diff --git a/app/PrepareNEUT.cxx b/app/PrepareNEUT.cxx deleted file mode 100644 index d177a46..0000000 --- a/app/PrepareNEUT.cxx +++ /dev/null @@ -1,424 +0,0 @@ -#include "FitLogger.h" -#include "PlotUtils.h" -#include "StatUtils.h" -#include "TFile.h" -#include "TH1D.h" -#include "TTree.h" -#include -#include - -// If you don't have NEUT enabled, you shouldn't compile this... -#include "neutpart.h" -#include "neutvect.h" - -std::string fInputFiles = ""; -std::string fOutputFile = ""; -std::string fFluxFile = ""; -bool fFluxInGeV = false; -bool fIsMonoEFlux = false; -double fMonoEEnergy = 0xdeadbeef; - -void PrintOptions(); -void ParseOptions(int argc, char *argv[]); -void AddMonoRateHistogram(std::string inputList, double MonoE, - std::string output); -void CreateRateHistogram(std::string inputList, std::string flux, - std::string output); - -//******************************* -int main(int argc, char *argv[]) { - //******************************* - - LOG_VERB(FitPar::Config().GetParI("VERBOSITY")); - ERR_VERB(FitPar::Config().GetParI("ERROR")); - - ParseOptions(argc, argv); - LOG(FIT) << "Running PrepareNEUT" << std::endl; - if (fIsMonoEFlux) { - AddMonoRateHistogram(fInputFiles, fMonoEEnergy, fOutputFile); - } else { - CreateRateHistogram(fInputFiles, fFluxFile, fOutputFile); - } -}; - -void AddMonoRateHistogram(std::string inputList, double MonoE, - std::string output) { - // Need to allow for more than one file... will do soon - TChain *tn = new TChain("neuttree"); - - std::vector inputs = GeneralUtils::ParseToStr(inputList, ","); - for (std::vector::iterator it = inputs.begin(); - it != inputs.end(); ++it) { - LOG(FIT) << "Adding " << *it << " to the output" << std::endl; - tn->AddFile((*it).c_str()); - } - - if (inputs.size() > 1 && output.empty()) { - ERR(FTL) << "You must provide a new output file name if you want to have " - "more than 1 input file!" - << std::endl; - throw; - } - - int nevts = tn->GetEntries(); - - if (!nevts) { - ERR(FTL) << "Either the input file is not from NEUT, or it's empty..." - << std::endl; - throw; - } - - NeutVect *fNeutVect = NULL; - tn->SetBranchAddress("vectorbranch", &fNeutVect); - - TH1D *fluxHist = new TH1D("flux", "flux", 1000, 0, fFluxInGeV ? 10 : 10000); - fluxHist->Fill(MonoE); - fluxHist->Scale(1, "width"); - // Make Event Hist - TH1D *xsecHist = (TH1D *)fluxHist->Clone(); - xsecHist->Reset(); - - // Make a total cross section hist for shits and giggles - TH1D *entryHist = (TH1D *)xsecHist->Clone(); - - double MeanE = 0; - for (int i = 0; i < nevts; ++i) { - tn->GetEntry(i); - NeutPart *part = fNeutVect->PartInfo(0); - double E = part->fP.E(); - double xsec = fNeutVect->Totcrs; - - // Unit conversion - if (fFluxInGeV) - E *= 1E-3; - - xsecHist->Fill(E, xsec); - entryHist->Fill(E); - MeanE += E; - - if (i % (nevts / 20) == 0) { - LOG(FIT) << "Processed " << i << "/" << nevts << " NEUT events." - << std::endl; - } - } - MeanE /= double(nevts); - LOG(FIT) << "Processed all events" << std::endl; - - xsecHist->Divide(entryHist); - - // This will be the evtrt histogram - TH1D *evtHist = (TH1D *)xsecHist->Clone(); - evtHist->Multiply(fluxHist); - - // Check whether the overflow is empty. If not, advise that either the wrong - // flux histogram or units were used... - // If the events were generated with a limited range of the flux histogram, - // this may be benign - if (evtHist->Integral(0, -1) != evtHist->Integral() || - evtHist->Integral(0, -1) == 0) { - ERR(WRN) << "The input file(" << evtHist->Integral(0, -1) - << ") and flux histogram provided do not match... " << std::endl; - ERR(WRN) << "Are the units correct (MeanE = " << MeanE - << ", FluxHistoUpperLim: " - << fluxHist->GetXaxis()->GetBinUpEdge(1000) - << ")? Did you provide the correct flux file?" << std::endl; - ERR(WRN) << "Use output with caution..." << std::endl; - } - - // Pick where the output should go - TFile *outFile = NULL; - if (!output.empty()) { - LOG(FIT) << "Saving histograms in " << output << std::endl; - outFile = new TFile(output.c_str(), "RECREATE"); - } else { - LOG(FIT) << "Saving histograms in " << inputs[0] << std::endl; - outFile = new TFile(inputs[0].c_str(), "UPDATE"); - } - outFile->cd(); - - std::string xsec_name = "xsec_PrepareNeut"; - std::string flux_name = "flux_PrepareNeut"; - std::string rate_name = "evtrt_PrepareNeut"; - - if (output.empty()) { - // Check whether we should overwrite existing histograms - std::string input_xsec = PlotUtils::GetObjectWithName(outFile, "xsec"); - std::string input_flux = PlotUtils::GetObjectWithName(outFile, "flux"); - std::string input_rate = PlotUtils::GetObjectWithName(outFile, "evtrt"); - - if (!input_xsec.empty()) { - LOG(FIT) << "Updating histogram: " << input_xsec << std::endl; - xsec_name = input_xsec; - } - if (!input_flux.empty()) { - LOG(FIT) << "Updating histogram: " << input_flux << std::endl; - flux_name = input_flux; - } - if (!input_rate.empty()) { - LOG(FIT) << "Updating histogram: " << input_rate << std::endl; - rate_name = input_rate; - } - - } else { - LOG(FIT) << "Cloning neuttree into output file." << std::endl; - StopTalking(); - TTree *newtree = (TTree *)tn->CloneTree(-1, "fast"); - StartTalking(); - newtree->Write(); - } - - xsecHist->Write(xsec_name.c_str(), TObject::kOverwrite); - fluxHist->Write(flux_name.c_str(), TObject::kOverwrite); - evtHist->Write(rate_name.c_str(), TObject::kOverwrite); - - outFile->Close(); -} - -//******************************* -void CreateRateHistogram(std::string inputList, std::string flux, - std::string output) { - //******************************* - - // Need to allow for more than one file... will do soon - TChain *tn = new TChain("neuttree"); - - std::vector inputs = GeneralUtils::ParseToStr(inputList, ","); - for (std::vector::iterator it = inputs.begin(); - it != inputs.end(); ++it) { - LOG(FIT) << "Adding " << *it << " to the output" << std::endl; - tn->AddFile((*it).c_str()); - } - - if (inputs.size() > 1 && output.empty()) { - ERR(FTL) << "You must provide a new output file name if you want to have " - "more than 1 input file!" - << std::endl; - throw; - } - - int nevts = tn->GetEntries(); - - if (!nevts) { - ERR(FTL) << "Either the input file is not from NEUT, or it's empty..." - << std::endl; - throw; - } - - NeutVect *fNeutVect = NULL; - tn->SetBranchAddress("vectorbranch", &fNeutVect); - - // Get Flux Hist - std::vector fluxvect = GeneralUtils::ParseToStr(flux, ","); - TH1D *fluxHist = NULL; - if (fluxvect.size() > 1) { - TFile *fluxfile = new TFile(fluxvect[0].c_str(), "READ"); - fluxHist = (TH1D *)fluxfile->Get(fluxvect[1].c_str()); - fluxHist->SetDirectory(0); - } else { - ERR(FTL) << "NO FLUX SPECIFIED" << std::endl; - throw; - } - - // Decide what type of flux was given - if (fFluxInGeV) - LOG(FIT) << "Assuming flux histogram is in GeV" << std::endl; - else - LOG(FIT) << "Assuming flux histogram is in MeV" << std::endl; - - // Make Event Hist - TH1D *xsecHist = (TH1D *)fluxHist->Clone(); - xsecHist->Reset(); - - // Make a total cross section hist for shits and giggles - TH1D *entryHist = (TH1D *)xsecHist->Clone(); - - for (int i = 0; i < nevts; ++i) { - tn->GetEntry(i); - NeutPart *part = fNeutVect->PartInfo(0); - double E = part->fP.E(); - double xsec = fNeutVect->Totcrs; - - // Unit conversion - if (fFluxInGeV) - E *= 1E-3; - - xsecHist->Fill(E, xsec); - entryHist->Fill(E); - - if (i % (nevts / 20) == 0) { - LOG(FIT) << "Processed " << i << "/" << nevts << " NEUT events." - << "(Enu = " << E << ", xsec = " << xsec << ") " << std::endl; - } - } - LOG(FIT) << "Processed all events" << std::endl; - - xsecHist->Divide(entryHist); - - // This will be the evtrt histogram - TH1D *evtHist = NULL; - - // If the integral of xsecHist is 0 the input file used a really old version - // of NEUT without Totcrs - if (!xsecHist->Integral(0, -1)) { - ERR(WRN) << "Old NEUT input file: events will not be correctly normalized" - << std::endl; - evtHist = (TH1D *)entryHist->Clone(); - - if (evtHist->Integral() != 0) - evtHist->Scale(fluxHist->Integral() / float(evtHist->Integral())); - } else { - evtHist = (TH1D *)xsecHist->Clone(); - evtHist->Multiply(fluxHist); - } - - // Check whether the overflow is empty. If not, advise that either the wrong - // flux histogram or units were used... - // If the events were generated with a limited range of the flux histogram, - // this may be benign - if (evtHist->Integral(0, -1) != evtHist->Integral() || - evtHist->Integral(0, -1) == 0) { - ERR(WRN) << "The input file(" << evtHist->Integral(0, -1) - << ") and flux histogram provided do not match... " << std::endl; - ERR(WRN) << "Are the units correct? Did you provide the correct flux file?" - << std::endl; - ERR(WRN) << "Use output with caution..." << std::endl; - } - - // Pick where the output should go - TFile *outFile = NULL; - if (!output.empty()) { - LOG(FIT) << "Saving histograms in " << output << std::endl; - outFile = new TFile(output.c_str(), "RECREATE"); - } else { - LOG(FIT) << "Saving histograms in " << inputs[0] << std::endl; - outFile = new TFile(inputs[0].c_str(), "UPDATE"); - } - outFile->cd(); - - std::string xsec_name = "xsec_PrepareNeut"; - std::string flux_name = "flux_PrepareNeut"; - std::string rate_name = "evtrt_PrepareNeut"; - - if (output.empty()) { - // Check whether we should overwrite existing histograms - std::string input_xsec = PlotUtils::GetObjectWithName(outFile, "xsec"); - std::string input_flux = PlotUtils::GetObjectWithName(outFile, "flux"); - std::string input_rate = PlotUtils::GetObjectWithName(outFile, "evtrt"); - - if (!input_xsec.empty()) { - LOG(FIT) << "Updating histogram: " << input_xsec << std::endl; - xsec_name = input_xsec; - } - if (!input_flux.empty()) { - LOG(FIT) << "Updating histogram: " << input_flux << std::endl; - flux_name = input_flux; - } - if (!input_rate.empty()) { - LOG(FIT) << "Updating histogram: " << input_rate << std::endl; - rate_name = input_rate; - } - - } else { - LOG(FIT) << "Cloning neuttree into output file." << std::endl; - StopTalking(); - TTree *newtree = (TTree *)tn->CloneTree(-1, "fast"); - StartTalking(); - newtree->Write(); - } - - xsecHist->Write(xsec_name.c_str(), TObject::kOverwrite); - fluxHist->Write(flux_name.c_str(), TObject::kOverwrite); - evtHist->Write(rate_name.c_str(), TObject::kOverwrite); - outFile->Close(); - - return; -} - -void PrintOptions() { - std::cout << "PrepareNEUT NUISANCE app. " << std::endl - << "Produces or recalculates evtrt and flux histograms necessary " - "for NUISANCE normalization." - << std::endl; - std::cout << "PrepareNEUT: " << std::endl; - std::cout << " [-h,-help,--h,--help]" << std::endl; - std::cout << " -i inputfile1.root,inputfile2.root,inputfile3.root,..." - << std::endl; - std::cout << " Takes any number of files, but assumes all are " - "produced with a single flux" - << std::endl; - std::cout << " -f flux_root_file.root,flux_hist_name" << std::endl; - std::cout << " Path to root file containing the flux histogram used " - "when generating the NEUT files" - << std::endl; - std::cout << " [-o outputfile.root] " << std::endl; - std::cout - << " If an output file is not given, the input file will be used" - << std::endl; - std::cout << " If more than one input file is given, an output file " - "must be given" - << std::endl; - std::cout << " [-G]" << std::endl; - std::cout << " Flux is assumed to be in MeV. This switch indicates " - "the input flux is in GeV" - << std::endl; - std::cout << " [-m E_nu]" << std::endl; - std::cout << " Used to add dummy flux and evt rate histograms to " - "mono-energetic vectors. Adheres to the -G flag." - << std::endl; -} - -void ParseOptions(int argc, char *argv[]) { - bool flagopt = false; - - // If No Arguments print commands - for (int i = 1; i < argc; ++i) { - if (!std::strcmp(argv[i], "-h")) { - flagopt = true; - break; - } else if (!std::strcmp(argv[i], "-G")) { - fFluxInGeV = true; - continue; - } - if (i + 1 != argc) { - // Cardfile - if (!std::strcmp(argv[i], "-h")) { - flagopt = true; - break; - } else if (!std::strcmp(argv[i], "-i")) { - fInputFiles = argv[i + 1]; - ++i; - } else if (!std::strcmp(argv[i], "-o")) { - fOutputFile = argv[i + 1]; - ++i; - } else if (!std::strcmp(argv[i], "-f")) { - fFluxFile = argv[i + 1]; - ++i; - } else if (!std::strcmp(argv[i], "-m")) { - fIsMonoEFlux = true; - fMonoEEnergy = GeneralUtils::StrToDbl(argv[i + 1]); - ++i; - } else { - ERR(FTL) << "ERROR: unknown command line option given! - '" << argv[i] - << " " << argv[i + 1] << "'" << std::endl; - PrintOptions(); - break; - } - } - } - if (fInputFiles == "" && !flagopt) { - ERR(FTL) << "No input file(s) specified!" << std::endl; - flagopt = true; - } - - if (fFluxFile == "" && (!flagopt) && (!fIsMonoEFlux)) { - ERR(FTL) << "No flux input specified!" << std::endl; - flagopt = true; - } - - if (argc < 1 || flagopt) { - PrintOptions(); - exit(-1); - } - - return; -} diff --git a/app/PrepareNuwroEvents.cxx b/app/PrepareNuwroEvents.cxx deleted file mode 100644 index 8702d4d..0000000 --- a/app/PrepareNuwroEvents.cxx +++ /dev/null @@ -1,500 +0,0 @@ -#include -#include -#include "event1.h" -// Hopefully we don't need these as they're included above. -// #include "params_all.h" -// #include "params.h" -#include "FitLogger.h" -#include "PlotUtils.h" -#include "TFile.h" -#include "TH1D.h" -#include "TTree.h" - -void printInputCommands(char* argv[]) { - std::cout << "[USAGE]: " << argv[0] - << " [-h] [-f] [-F ,] [-o output.root] " - "inputfile.root [file2.root ...]" - << std::endl - << "\t-h : Print this message." << std::endl - << "\t-f : Pass -f argument to '$ hadd' invocation." << std::endl - << "\t-F : Read input flux from input descriptor." << std::endl - << "\t-o : Write full output to a new file." << std::endl - << std::endl; -}; -void CreateRateHistograms(std::string inputs, bool force_out); -void HaddNuwroFiles(std::vector& inputs, bool force_out); - -bool outputNewFile = false; -std::string ofile = ""; -bool haveFluxInputs = false; - -struct FluxInputBlob { - FluxInputBlob(std::string _File, std::string _Hist, int _PDG, - double _Fraction) - : File(_File), Hist(_Hist), PDG(_PDG), Fraction(_Fraction) {} - std::string File; - std::string Hist; - int PDG; - double Fraction; -}; - -std::vector FluxInputs; - -bool haddedFiles = false; - -TH1D* F2D(TH1F* f) { - Double_t* bins = new Double_t[f->GetXaxis()->GetNbins() + 1]; - for (Int_t bi_it = 0; bi_it < f->GetXaxis()->GetNbins(); ++bi_it) { - bins[bi_it] = f->GetXaxis()->GetBinLowEdge(bi_it + 1); - } - bins[f->GetXaxis()->GetNbins()] = - f->GetXaxis()->GetBinUpEdge(f->GetXaxis()->GetNbins()); - - TH1D* d = new TH1D((std::string(f->GetName()) + "_f").c_str(), f->GetTitle(), - f->GetXaxis()->GetNbins(), bins); - std::cout << "Converted TH1F with " << f->GetXaxis()->GetXbins() - << " bins : " << std::endl; - for (Int_t bi_it = 0; bi_it < f->GetXaxis()->GetNbins() + 2; ++bi_it) { - d->SetBinContent(bi_it, f->GetBinContent(bi_it)); - d->SetBinError(bi_it, f->GetBinError(bi_it)); - std::cout << "\tF " << f->GetXaxis()->GetBinLowEdge(bi_it) << "--[" << bi_it - << "]--" << f->GetXaxis()->GetBinUpEdge(bi_it) << ": " - << f->GetBinContent(bi_it) << " D " - << d->GetXaxis()->GetBinLowEdge(bi_it) << "--[" << bi_it << "]--" - << d->GetXaxis()->GetBinUpEdge(bi_it) << ": " - << d->GetBinContent(bi_it) << std::endl; - } - delete bins; - return d; -} -TH1D* GetTH1DFromFile(std::string const& rootFile, - std::string const& histName) { - TFile* inpFile = new TFile(rootFile.c_str(), "READ"); - if (!inpFile || !inpFile->IsOpen()) { - ERR(FTL) << "Cannot open input root file: " << rootFile - << " to read input histo." << std::endl; - throw; - } - - TH1D* histD = dynamic_cast(inpFile->Get(histName.c_str())); - if (!histD) { - TH1F* histF = dynamic_cast(inpFile->Get(histName.c_str())); - if (!histF) { - ERR(FTL) << "Cannot find TH1D/F: " << histName - << " in root file: " << rootFile << "." << std::endl; - throw; - } - histD = F2D(histF); - } else { - histD = static_cast(histD->Clone()); - } - histD->SetDirectory(NULL); - inpFile->Close(); - return histD; -} - -//******************************* -int main(int argc, char* argv[]) { - //******************************* - - // If No Arguments print commands - if (argc == 1) { - printInputCommands(argv); - return 0; - } - std::vector inputfiles; - bool force_output = false; - - // Get Inputs - for (int i = 1; i < argc; ++i) { - if (!std::strcmp(argv[i], "-h")) { - printInputCommands(argv); - return 0; - } else if (!std::strcmp(argv[i], "-f")) { - force_output = true; - } else if (!std::strcmp(argv[i], "-o")) { - outputNewFile = true; - ofile = argv[++i]; - } else if (!std::strcmp(argv[i], "-F")) { - std::string inpLine = argv[++i]; - std::vector fluxInputDescriptor = - GeneralUtils::ParseToStr(inpLine, ","); - if ((fluxInputDescriptor.size() != 2) && - (fluxInputDescriptor.size() != 3) && - (fluxInputDescriptor.size() != 4)) { - ERR(FTL) << "Received -F argument with option: \"" << inpLine - << "\", was expecting " - ",[,PDG[,speciesFraction]]." - << std::endl; - return 1; - } - haveFluxInputs = true; - FluxInputs.push_back( - FluxInputBlob(fluxInputDescriptor[0], fluxInputDescriptor[1], - (fluxInputDescriptor.size() > 2) - ? GeneralUtils::StrToInt(fluxInputDescriptor[2]) - : 14, - (fluxInputDescriptor.size() > 3) - ? GeneralUtils::StrToDbl(fluxInputDescriptor[3]) - : 1)); - - if (!FluxInputs.back().File.length() || - !FluxInputs.back().Hist.length()) { - ERR(FTL) << "Received -F argument with option: \"" << inpLine - << "\", was expecting " - ",[,PDG[,speciesFraction]]." - << std::endl; - return 1; - } - } else { - inputfiles.push_back(std::string(argv[i])); - } - } - - // If one input file just create flux histograms - if (inputfiles.size() > (UInt_t)1) { - HaddNuwroFiles(inputfiles, force_output); - } else if (inputfiles.size() < (UInt_t)1) { - printInputCommands(argv); - } - - CreateRateHistograms(inputfiles[0], force_output); - - LOG(FIT) << "Finished NUWRO Prep." << std::endl; -}; - -//******************************* -void CreateRateHistograms(std::string inputs, bool force_out) { - //******************************* - - // Open root file - TFile* outRootFile = 0; - TTree* nuwrotree = 0; - - if (!haddedFiles && - outputNewFile) { // we need to make the new file and clone the tree. - TFile* inpFile = new TFile(inputs.c_str(), "READ"); - if (!inpFile || !inpFile->IsOpen()) { - ERR(FTL) << "Cannot open input root file: " << inputs << std::endl; - throw; - } - TTree* inpTree = dynamic_cast(inpFile->Get("treeout")); - if (!inpTree) { - ERR(FTL) << "Cannot find TTree \"treeout\" in input root file: " - << inputs.c_str() << std::endl; - throw; - } - - outRootFile = new TFile(ofile.c_str(), force_out ? "RECREATE" : "CREATE"); - if (!outRootFile || !outRootFile->IsOpen()) { - ERR(FTL) << "Couldn't open root file: " << ofile - << " for writing, does it already exist?" << std::endl; - throw; - } - - nuwrotree = inpTree->CloneTree(); - nuwrotree->SetDirectory(outRootFile); - nuwrotree->Write(nuwrotree->GetName()); - } else { - outRootFile = new TFile(inputs.c_str(), "UPDATE"); - if (!outRootFile || !outRootFile->IsOpen()) { - ERR(FTL) << "Cannot open input root file: " << inputs << std::endl; - throw; - } - nuwrotree = dynamic_cast(outRootFile->Get("treeout")); - if (!nuwrotree) { - ERR(FTL) << "Cannot find TTree \"treeout\" in input root file: " - << inputs.c_str() << std::endl; - throw; - } - } - - // Get Flux Histogram - event* evt = NULL; - nuwrotree->SetBranchAddress("e", &evt); - nuwrotree->GetEntry(0); - - int fluxtype = evt->par.beam_type; - - std::map fluxlist; - std::map eventlist; - std::vector allpdg; - std::map nevtlist; - std::map intxseclist; - - // Did the input file have a mono-energetic flux? - bool isMono = false; - - nevtlist[0] = 0.0; - intxseclist[0] = 0.0; - - allpdg.push_back(0); - - LOG(FIT) << "Nuwro fluxtype = " << fluxtype << std::endl; - if (haveFluxInputs) { - double totalFraction = 0; - for (size_t flux_it = 0; flux_it < FluxInputs.size(); ++flux_it) { - FluxInputBlob& fb = FluxInputs[flux_it]; - - int pdg = fb.PDG; - - TH1D* fluxHist = GetTH1DFromFile(fb.File, fb.Hist); - - double pctg = fb.Fraction; - totalFraction += pctg; - double Elow = fluxHist->GetXaxis()->GetBinLowEdge(1); - double Ehigh = fluxHist->GetXaxis()->GetBinLowEdge( - fluxHist->GetXaxis()->GetNbins() + 1); - - LOG(FIT) << "Adding new nuwro flux " - << "pdg: " << pdg << " pctg: " << pctg << " Elow: " << Elow - << " Ehigh: " << Ehigh << std::endl; - - // Sort total flux plot - if (!fluxlist[0]) { - // Setup total flux - fluxlist[0] = (TH1D*)fluxHist->Clone(); - fluxlist[0]->SetNameTitle("FluxHist", "FluxHist"); - - // Prep empty total events - eventlist[0] = (TH1D*)fluxHist->Clone(); - eventlist[0]->SetNameTitle("EvtHist", "EvtHist"); - eventlist[0]->Reset(); - - } else { - // Add up each new plot - fluxlist[0]->Add(fluxHist); - } - - fluxHist->SetNameTitle(Form("nuwro_pdg%i_pct%f_Flux", pdg, pctg), - Form("nuwro_pdg%i_pct%f_Flux", pdg, pctg)); - - TH1D* eventplot = (TH1D*)fluxHist->Clone(); - eventplot->SetNameTitle(Form("nuwro_pdg%i_pct%f_Evt", pdg, pctg), - Form("nuwro_pdg%i_pct%f_Evt", pdg, pctg)); - eventplot->Reset(); - - fluxlist[pdg] = (TH1D*)fluxHist->Clone(); - eventlist[pdg] = eventplot; - nevtlist[pdg] = 0; - intxseclist[pdg] = 0.0; - allpdg.push_back(pdg); - delete fluxHist; - } - if (fabs(totalFraction - 1) > 1E-5) { - ERR(FTL) << "Total species fraction for input flux histos = " - << totalFraction << ", expected to sum to 1." << std::endl; - throw; - } - } else if (fluxtype == 0) { - std::string fluxstring = evt->par.beam_energy; - std::vector fluxvals = GeneralUtils::ParseToDbl(fluxstring, " "); - - int pdg = evt->par.beam_particle; - double Elow = double(fluxvals[0]) / 1000.0; - double Ehigh = double(fluxvals[1]) / 1000.0; - TH1D* fluxplot = NULL; - - if (Elow > Ehigh) isMono = true; - - // For files produced with a flux distribution - if (!isMono) { - LOG(FIT) << "Adding new nuwro flux " - << "pdg: " << pdg << " Elow: " << Elow << " Ehigh: " << Ehigh - << std::endl; - - fluxplot = - new TH1D("fluxplot", "fluxplot", fluxvals.size() - 4, Elow, Ehigh); - for (uint j = 2; j < fluxvals.size(); j++) { - LOG(DEB) << j << " " << fluxvals[j] << endl; - fluxplot->SetBinContent(j - 1, fluxvals[j]); - } - } else { // For monoenergetic fluxes - LOG(FIT) << "Adding mono-energetic nuwro flux " - << "pdg: " << pdg << " E: " << Elow << std::endl; - - fluxplot = new TH1D("fluxplot", "fluxplot", 100, 0, Elow * 2); - fluxplot->SetBinContent(fluxplot->FindBin(Elow), 1); - } - - // Setup total flux - fluxlist[0] = (TH1D*)fluxplot->Clone(); - fluxlist[0]->SetNameTitle("FluxHist", "FluxHist"); - - // Prep empty total events - eventlist[0] = (TH1D*)fluxplot->Clone(); - eventlist[0]->SetNameTitle("EvtHist", "EvtHist"); - eventlist[0]->Reset(); - - fluxplot->SetNameTitle(Form("nuwro_pdg%i_Flux", pdg), - Form("nuwro_pdg%i_Flux", pdg)); - - TH1D* eventplot = (TH1D*)fluxplot->Clone(); - eventplot->SetNameTitle(Form("nuwro_pdg%i_Evt", pdg), - Form("nuwro_pdg%i_Evt", pdg)); - eventplot->Reset(); - - fluxlist[pdg] = fluxplot; - eventlist[pdg] = eventplot; - nevtlist[pdg] = 0; - intxseclist[pdg] = 0.0; - allpdg.push_back(pdg); - - } else if (fluxtype == 1) { - std::string fluxstring = evt->par.beam_content; - - std::vector fluxlines = - GeneralUtils::ParseToStr(fluxstring, "\n"); - for (uint i = 0; i < fluxlines.size(); i++) { - std::vector fluxvals = - GeneralUtils::ParseToDbl(fluxlines[i], " "); - - int pdg = int(fluxvals[0]); - double pctg = double(fluxvals[1]) / 100.0; - double Elow = double(fluxvals[2]) / 1000.0; - double Ehigh = double(fluxvals[3]) / 1000.0; - - LOG(FIT) << "Adding new nuwro flux " - << "pdg: " << pdg << " pctg: " << pctg << " Elow: " << Elow - << " Ehigh: " << Ehigh << std::endl; - - TH1D* fluxplot = - new TH1D("fluxplot", "fluxplot", fluxvals.size() - 4, Elow, Ehigh); - for (uint j = 4; j < fluxvals.size(); j++) { - fluxplot->SetBinContent(j + 1, fluxvals[j]); - } - - // Sort total flux plot - if (!fluxlist[0]) { - // Setup total flux - fluxlist[0] = (TH1D*)fluxplot->Clone(); - fluxlist[0]->SetNameTitle("FluxHist", "FluxHist"); - - // Prep empty total events - eventlist[0] = (TH1D*)fluxplot->Clone(); - eventlist[0]->SetNameTitle("EvtHist", "EvtHist"); - eventlist[0]->Reset(); - - } else { - // Add up each new plot - fluxlist[0]->Add(fluxplot); - } - - fluxplot->SetNameTitle(Form("nuwro_pdg%i_pct%f_Flux", pdg, pctg), - Form("nuwro_pdg%i_pct%f_Flux", pdg, pctg)); - - TH1D* eventplot = (TH1D*)fluxplot->Clone(); - eventplot->SetNameTitle(Form("nuwro_pdg%i_pct%f_Evt", pdg, pctg), - Form("nuwro_pdg%i_pct%f_Evt", pdg, pctg)); - eventplot->Reset(); - - fluxlist[pdg] = fluxplot; - eventlist[pdg] = eventplot; - nevtlist[pdg] = 0; - intxseclist[pdg] = 0.0; - allpdg.push_back(pdg); - } - } - - // Start main event loop to fill plots - int nevents = nuwrotree->GetEntries(); - double Enu = 0.0; - double TotXSec = 0.0; - // double totaleventmode = 0.0; - // double totalevents = 0.0; - int pdg = 0; - int countwidth = nevents / 50.0; - countwidth = countwidth ? countwidth : 1; - - for (int i = 0; i < nevents; i++) { - nuwrotree->GetEntry(i); - - // Get Variables - Enu = evt->in[0].t / 1000.0; - TotXSec = evt->weight; - pdg = evt->in[0].pdg; - - eventlist[0]->Fill(Enu); - eventlist[pdg]->Fill(Enu); - - nevtlist[0] += 1; - nevtlist[pdg] += 1; - - intxseclist[0] += TotXSec; - intxseclist[pdg] += TotXSec; - - if (i % countwidth == 0) - LOG(FIT) << "Processed " << i << " events " - << " (" << int(i * 100.0 / nevents) << "%)" - << " : E, W, PDG = " << Enu << ", " << TotXSec << ", " << pdg - << std::endl; - } - - TH1D* zeroevents = (TH1D*)eventlist[0]->Clone(); - - outRootFile->cd(); - // Loop over eventlist - for (uint i = 0; i < allpdg.size(); i++) { - int pdg = allpdg[i]; - double AvgXSec = intxseclist[0] * 1E38 / double(nevtlist[0]); - - LOG(FIT) << pdg << " Avg XSec = " << AvgXSec << endl; - LOG(FIT) << pdg << " nevents = " << double(nevtlist[pdg]) << endl; - - if (!isMono) { - // Convert events to PDF - eventlist[pdg]->Scale(1.0 / zeroevents->Integral("width")); - - // Multiply by total predicted event rate - eventlist[pdg]->Scale(fluxlist[0]->Integral("width") * AvgXSec); - } else { - // If a mono-energetic flux was used, width should not be used - // The output is (now) forced to be flux = 1, evtrt = xsec (in 1E38 * nb - // cm^2) - eventlist[pdg]->Scale(1.0 / zeroevents->Integral()); - eventlist[pdg]->Scale(fluxlist[0]->Integral() * AvgXSec); - } - - // Save everything - fluxlist[pdg]->Write("", TObject::kOverwrite); - eventlist[pdg]->Write("", TObject::kOverwrite); - } - - // Tidy up - outRootFile->Close(); - fluxlist.clear(); - eventlist.clear(); - - // Exit Program - return; -} - -//******************************* -void HaddNuwroFiles(std::vector& inputs, bool force_out) { - //******************************* - - // Get output file name - std::string outputname = inputs[0]; - - // Make command line string - std::string cmd = "hadd "; - if (outputNewFile) { - cmd += ofile + " "; - outputname = ofile; - } else if (force_out) { - cmd += "-f "; - } - for (UInt_t i = 0; i < inputs.size(); i++) { - cmd += inputs[i] + " "; - } - LOG(FIT) << " Running HADD from PrepareNuwro: " << cmd << std::endl; - - // Start HADD - system(cmd.c_str()); - - // Return name of output file - inputs.clear(); - inputs.push_back(outputname); - haddedFiles = true; - return; -} diff --git a/app/neut_NUISANCE.cxx b/app/neut_NUISANCE.cxx deleted file mode 100644 index a2e1dbc..0000000 --- a/app/neut_NUISANCE.cxx +++ /dev/null @@ -1,839 +0,0 @@ -#ifdef __NEUT_ENABLED__ -#include "ComparisonRoutines.h" -#include "ParserUtils.h" -#include "TargetUtils.h" -#ifdef WINDOWS -#include - #define GetCurrentDir _getcwd -#else -#include - #define GetCurrentDir getcwd -#endif - -// All possible inputs -std::string gOptEnergyDef; -std::vector gOptEnergyRange; -int gOptNumberEvents = -1; -int gOptNumberTestEvents = 5E6; -std::string gOptGeneratorList = "Default"; -std::string gOptCrossSections = "Default"; // If default this will look in $NUISANCE/data/neut/Default_params.txt -int gOptSeed = time(NULL); -std::string gOptTargetDef = ""; -std::string gOptFluxDef = ""; -std::string gOptOutputFile = ""; -int gOptRunNumber = -1; - -using namespace TargetUtils; - -void GetCommandLineArgs (int argc, char ** argv); -void PrintSyntax (void); - -std::string GETCWD(){ - char cCurrentPath[FILENAME_MAX]; - if (!GetCurrentDir(cCurrentPath, sizeof(cCurrentPath))){ - THROW("CANT FIND CURRENT DIRECTORY!"); - } - std::string curdir = std::string(cCurrentPath); - return curdir; -} - -std::string ExpandPath(std::string name){ - - // Get Current - char cCurrentPath[FILENAME_MAX]; - if (!GetCurrentDir(cCurrentPath, sizeof(cCurrentPath))){ - THROW("CANT FIND CURRENT DIRECTORY!"); - } - std::string curdir = std::string(cCurrentPath); - - - // If first entry is not / then add the current working directory - if (!name.empty() and name.at(0) != '/'){ - name = curdir + "/" + name; - } - return name; -} - -std::string GetBaseName(std::string name){ - std::vector splitfile = GeneralUtils::ParseToStr(name,"/"); - std::string filename = ""; - if (splitfile.size() == 1){ - filename = splitfile[0]; - } else if (splitfile.size() > 1){ - filename = splitfile[splitfile.size()-1]; - } else { - THROW("Cannot split filename: " << name); - } - return filename; -} - -std::string GetDynamicModes(std::string list, bool neutrino){ - LOG(FIT) << "Using " << list << " to define interaction modes for Neutrino=" << neutrino << std::endl; - - std::map modes; - std::vector ids; - - // Create vector of ids for the print out and future reference - /* - C -C nu nub -C 1: CC Q.E. CC Q.E.( Free ) -C 2-4: CC 1pi CC 1pi -C 5: CC DIS 1320 CC DIS 1.3 < W < 2.0 -C 6-9: NC 1pi NC 1pi -C 10: NC DIS 1320 NC DIS 1.3 < W < 2.0 -C 11: NC els CC Q.E.( Bound ) -C 12: NC els NC els -C 13: NC els NC els -C 14: coherent NC els -C 15: coherent coherent -C 16: CC eta coherent -C 17 NC eta CC eta -C 18: NC eta NC eta -C 19: CC K NC eta -C 20 NC K CC K -C 21: NC K NC K -C 22: N/A NC K -C 23: CC DIS CC DIS (W > 2.0) -C 24: NC DIS NC DIS (W > 2.0) -C 25: CC 1 gamma CC 1 gamma -C 26: NC 1 gamma NC 1 gamma -C 27: NC 1 gamma NC 1 gamma -C 28: 2p2h 2p2h - - */ - ids.push_back("crsmode_CCQE" ); - ids.push_back("crsmode_CC2P2H" ); - ids.push_back("crsmode_CC1pi"); - ids.push_back("crsmode_CCDIS_lowW" ); - ids.push_back("crsmode_NC1pi"); - ids.push_back("crsmode_NCDIS_lowW" ); - ids.push_back("crsmode_NCEL"); - ids.push_back("crsmode_CCCOH"); - ids.push_back("crsmode_NCCOH"); - ids.push_back("crsmode_CCETA"); - ids.push_back("crsmode_NCETA"); - ids.push_back("crsmode_CCKAON"); - ids.push_back("crsmode_NCKAON"); - ids.push_back("crsmode_CCDIS_highW"); - ids.push_back("crsmode_NCDIS_highW"); - ids.push_back("crsmode_CCGAMMA"); - ids.push_back("crsmode_NCGAMMA"); - - // Now define possible models - if (!list.compare("Default")){ // Everything but MEC - - modes["crsmode_CCQE"] = 1; - modes["crsmode_CC2P2H"] = 0; - modes["crsmode_CC1pi"] = 1; - modes["crsmode_CCDIS_lowW"] = 1; - modes["crsmode_CCCOH"] = 1; - modes["crsmode_CCETA"] = 1; - modes["crsmode_CCKAON"] = 1; - modes["crsmode_CCDIS_highW"] = 1; - modes["crsmode_CCGAMMA"] = 1; - modes["crsmode_NC1pi"] = 1; - modes["crsmode_NCDIS_lowW"] = 1; - modes["crsmode_NCEL"] = 1; - modes["crsmode_NCCOH"] = 1; - modes["crsmode_NCETA"] = 1; - modes["crsmode_NCKAON"] = 1; - modes["crsmode_NCDIS_highW"] = 1; - modes["crsmode_NCGAMMA"] = 1; - - } else if (!list.compare("DefaultFree")){ - - modes["crsmode_CCQE"] = 1; - modes["crsmode_CC2P2H"] = 0; - modes["crsmode_CC1pi"] = 1; - modes["crsmode_CCDIS_lowW"] = 1; - modes["crsmode_CCCOH"] = 0; - modes["crsmode_CCETA"] = 1; - modes["crsmode_CCKAON"] = 1; - modes["crsmode_CCDIS_highW"] = 1; - modes["crsmode_CCGAMMA"] = 1; - modes["crsmode_NC1pi"] = 1; - modes["crsmode_NCDIS_lowW"] = 1; - modes["crsmode_NCEL"] = 1; - modes["crsmode_NCCOH"] = 0; - modes["crsmode_NCETA"] = 1; - modes["crsmode_NCKAON"] = 1; - modes["crsmode_NCDIS_highW"] = 1; - modes["crsmode_NCGAMMA"] = 1; - - } else if (!list.compare("Default+MEC")){ - - modes["crsmode_CCQE"] = 1; - modes["crsmode_CC2P2H"] = 1; - modes["crsmode_CC1pi"] = 1; - modes["crsmode_CCDIS_lowW"] = 1; - modes["crsmode_CCCOH"] = 1; - modes["crsmode_CCETA"] = 1; - modes["crsmode_CCKAON"] = 1; - modes["crsmode_CCDIS_highW"] = 1; - modes["crsmode_CCGAMMA"] = 1; - modes["crsmode_NC1pi"] = 1; - modes["crsmode_NCDIS_lowW"] = 1; - modes["crsmode_NCEL"] = 1; - modes["crsmode_NCCOH"] = 1; - modes["crsmode_NCETA"] = 1; - modes["crsmode_NCKAON"] = 1; - modes["crsmode_NCDIS_highW"] = 1; - modes["crsmode_NCGAMMA"] = 1; - - } else { - THROW("Event generator list " << list << " not found!"); - } - - - // Now we actually have to make the conversion because NEUTS modes organisation are a mess. - /* - C -C nu nub -C 1: CC Q.E. CC Q.E.( Free ) -C 2-4: CC 1pi CC 1pi -C 5: CC DIS 1320 CC DIS 1.3 < W < 2.0 -C 6-9: NC 1pi NC 1pi -C 10: NC DIS 1320 NC DIS 1.3 < W < 2.0 -C 11: NC els CC Q.E.( Bound ) -C 12: NC els NC els -C 13: NC els NC els -C 14: coherent NC els -C 15: coherent coherent -C 16: CC eta coherent -C 17 NC eta CC eta -C 18: NC eta NC eta -C 19: CC K NC eta -C 20 NC K CC K -C 21: NC K NC K -C 22: N/A NC K -C 23: CC DIS CC DIS (W > 2.0) -C 24: NC DIS NC DIS (W > 2.0) -C 25: CC 1 gamma CC 1 gamma -C 26,27: NC 1 gamma NC 1 gamma - */ - - std::string modestring_neutrino = "NEUT-CRS "; - std::string modestring_antineutrino = "NEUT-CRSB "; - - // Neutrino First - if (neutrino){ - - // Fill empty NEUT-CRSB - for (size_t i = 0; i < 27; i++){ - modestring_antineutrino += " 0"; - } - - modestring_neutrino += (modes["crsmode_CCQE"]? " 1" : " 0"); - modestring_neutrino += (modes["crsmode_CC1pi"]? " 1 1 1" : " 0 0 0"); - modestring_neutrino += (modes["crsmode_CCDIS_lowW"]? " 1" : " 0"); - modestring_neutrino += (modes["crsmode_NC1pi"]? " 1 1 1 1" : " 0 0 0 0"); - modestring_neutrino += (modes["crsmode_NCDIS_lowW"]? " 1" : " 0"); - modestring_neutrino += (modes["crsmode_NCEL"]? " 1 1 1" : " 0 0 0"); - modestring_neutrino += (modes["crsmode_CCCOH"]? " 1" : " 0"); - modestring_neutrino += (modes["crsmode_NCCOH"]? " 1" : " 0"); - modestring_neutrino += (modes["crsmode_CCETA"]? " 1" : " 0"); - modestring_neutrino += (modes["crsmode_NCETA"]? " 1 1" : " 0 0"); - modestring_neutrino += (modes["crsmode_CCKAON"]? " 1" : " 0"); - modestring_neutrino += (modes["crsmode_NCKAON"]? " 1 1" : " 0 0"); - modestring_neutrino += " 1"; // /NA - modestring_neutrino += (modes["crsmode_CCDIS_highW"]? " 1" : " 0"); - modestring_neutrino += (modes["crsmode_NCDIS_highW"]? " 1" : " 0"); - modestring_neutrino += (modes["crsmode_CCGAMMA"]? " 1" : " 0"); - modestring_neutrino += (modes["crsmode_NCGAMMA"]? " 1" : " 0"); - modestring_neutrino += (modes["crsmode_CC2P2H"]? " 1" : " 0"); - - } else { - - // Fill Empty NEUT CRS - for (size_t i = 0; i < 27; i++){ - modestring_neutrino += " 0"; - } - - modestring_antineutrino += (modes["crsmode_CCQE"]? " 1" : " 0"); - modestring_antineutrino += (modes["crsmode_CC1pi"]? " 1 1 1" : " 0 0 0"); - modestring_antineutrino += (modes["crsmode_CCDIS_lowW"]? " 1" : " 0"); - modestring_antineutrino += (modes["crsmode_NC1pi"]? " 1 1 1 1" : " 0 0 0 0"); - modestring_antineutrino += (modes["crsmode_NCDIS_lowW"]? " 1" : " 0"); - modestring_antineutrino += (modes["crsmode_CCQE"]? " 1" : " 0"); - modestring_antineutrino += (modes["crsmode_NCEL"]? " 1 1 1" : " 0 0 0"); - modestring_antineutrino += (modes["crsmode_CCCOH"]? " 1" : " 0"); - modestring_antineutrino += (modes["crsmode_NCCOH"]? " 1" : " 0"); - modestring_antineutrino += (modes["crsmode_CCETA"]? " 1" : " 0"); - modestring_antineutrino += (modes["crsmode_NCETA"]? " 1 1" : " 0 0"); - modestring_antineutrino += (modes["crsmode_CCKAON"]? " 1" : " 0"); - modestring_antineutrino += (modes["crsmode_NCKAON"]? " 1 1" : " 0 0"); - modestring_antineutrino += (modes["crsmode_CCDIS_highW"]? " 1" : " 0"); - modestring_antineutrino+= (modes["crsmode_NCDIS_highW"]? " 1" : " 0"); - modestring_antineutrino+= (modes["crsmode_CCGAMMA"]? " 1" : " 0"); - modestring_antineutrino+= (modes["crsmode_NCGAMMA"]? " 1" : " 0"); - modestring_antineutrino+= (modes["crsmode_CC2P2H"]? " 1" : " 0"); - - } - - return "NEUT-MODE -1 \n" + modestring_neutrino + "\n" + modestring_antineutrino; -} - -std::map MakeNewFluxFile(std::string flux, std::string out){ - LOG(FIT) << "Using " << flux << " to define NEUT beam." << std::endl; - - std::vector fluxargs = GeneralUtils::ParseToStr(flux,","); - if (fluxargs.size() < 2){ - THROW("Expected flux in the format: file.root,hist_name1[pdg1],... : reveived : " << flux); - } - - // Build Map - std::map fluxmap; - fluxmap["beam_type"] = "6"; - fluxmap["beam_inputroot"] = fluxargs[0]; - fluxmap["beam_inputroot_nue"] = ""; - fluxmap["beam_inputroot_nueb"] = ""; - fluxmap["beam_inputroot_numu"] = ""; - fluxmap["beam_inputroot_numub"] = ""; - fluxmap["beam_inputroot_nutau"] = ""; - fluxmap["beam_inputroot_nutaub"] = ""; - - // Split by beam bdgs - for (uint i = 1; i < fluxargs.size(); i++){ - std::string histdef = fluxargs[i]; - string::size_type open_bracket = histdef.find("["); - string::size_type close_bracket = histdef.find("]"); - string::size_type ibeg = 0; - string::size_type iend = open_bracket; - string::size_type jbeg = open_bracket+1; - string::size_type jend = close_bracket-1; - std::string name = std::string(histdef.substr(ibeg,iend).c_str()); - int pdg = atoi(histdef.substr(jbeg,jend).c_str()); - - if (pdg == 12) fluxmap["beam_inputroot_nue"] = name; - else if (pdg ==-12) fluxmap["beam_inputroot_nueb"] = name; - else if (pdg == 14) fluxmap["beam_inputroot_numu"] = name; - else if (pdg ==-14) fluxmap["beam_inputroot_numub"] = name; - else if (pdg == 16) fluxmap["beam_inputroot_tau"] = name; - else if (pdg ==-16) fluxmap["beam_inputroot_taub"] = name; - } - - // Now create a new flux file matching the output file - std::cout << " -> Moving flux from '" + fluxmap["beam_inputroot"] + "' to current directory to keep everything organised." << std::endl; - TFile* fluxread = new TFile(fluxmap["beam_inputroot"].c_str(),"READ"); - TFile* fluxwrite = new TFile((out + ".flux.root").c_str(),"RECREATE"); - - for(std::map::iterator iter = fluxmap.begin(); - iter != fluxmap.end(); iter++){ - TH1* temp = (TH1*)fluxread->Get(iter->second.c_str()); - if (!temp) continue; - TH1D* cuthist = (TH1D*)temp->Clone(); - - // Restrict energy range if required - if (gOptEnergyRange.size() == 2){ - for (int i = 0; i < cuthist->GetNbinsX(); i++){ - if (cuthist->GetXaxis()->GetBinCenter(i+1) < gOptEnergyRange[0] or - cuthist->GetXaxis()->GetBinCenter(i+1) > gOptEnergyRange[1]){ - cuthist->SetBinContent(i+1, 0.0); - } - } - } - - // Check Flux - if (cuthist->Integral() <= 0.0){ - THROW("Flux histogram " << iter->second << " has integral <= 0.0"); - } - - // Save - fluxwrite->cd(); - cuthist->Write(); - } - std::cout << " ->-> Saved to : " << (out + ".flux.root") << std::endl; - fluxmap["beam_inputroot"] = (out + ".flux.root"); - fluxwrite->Close(); - - return fluxmap; -} - -std::string GetFluxDefinition( std::string fluxfile, std::string fluxhist, std::string fluxid ){ - - // Get base name of flux file as its being copied to NEUT Run Directory - std::vector splitfluxfile = GeneralUtils::ParseToStr(fluxfile,"/"); - std::string filename = ""; - if (splitfluxfile.size() == 1){ - filename = splitfluxfile[0]; - } else if (splitfluxfile.size() > 1){ - filename = splitfluxfile[splitfluxfile.size()-1]; - } else { - THROW("NO FILENAME FOR FLUX DEFINITION FOUND!"); - } - - // Build string - std::string fluxparams = ""; - fluxparams += "EVCT-FILENM \'" + filename + "\' \n"; - fluxparams += "EVCT-HISTNM \'" + fluxhist + "\' \n"; - fluxparams += "EVCT-INMEV 0 \n"; - fluxparams += "EVCT-MPV 3 \n"; - - // Set PDG Code - if (!fluxid.compare("nue")) fluxparams += "EVCT-IDPT 12"; - else if (!fluxid.compare("nueb")) fluxparams += "EVCT-IDPT -12"; - else if (!fluxid.compare("numu")) fluxparams += "EVCT-IDPT 14"; - else if (!fluxid.compare("numub")) fluxparams += "EVCT-IDPT -14"; - else if (!fluxid.compare("nutau")) fluxparams += "EVCT-IDPT 16"; - else if (!fluxid.compare("nutaub")) fluxparams += "EVCT-IDPT -16"; - else { - THROW("UNKNOWN FLUX ID GIVEN!"); - } - - return fluxparams; -} - -std::string GetTargetDefinition(std::string target){ - - LOG(FIT) << "Defining NEUT Target from : " << target << std::endl; - - // Target is given as either a single PDG, or a combo with the total number of nucleons - std::vector trgts = GeneralUtils::ParseToStr(target,","); - std::string targetstring = ""; - - // NEUT only lets us pass C and CH type inputs. - - // Single Target - if (trgts.size() == 1){ - - int PDG = GeneralUtils::StrToInt(trgts[0]); - int Z = TargetUtils::GetTargetZFromPDG(PDG); - int N = TargetUtils::GetTargetAFromPDG(PDG) - Z; - targetstring += "NEUT-NUMBNDP " + GeneralUtils::IntToStr(Z) + "\n"; - targetstring += "NEUT-NUMBNDN " + GeneralUtils::IntToStr(N) + "\n"; - targetstring += "NEUT-NUMFREP 0\n"; - targetstring += "NEUT-NUMATOM " + GeneralUtils::IntToStr(Z+N) + "\n"; - - // Combined target - } else if (trgts.size() == 3){ - - int NUCLEONS = GeneralUtils::StrToInt(trgts[0]); - std::string target1 = trgts[1]; - std::string target2 = trgts[2]; - - // Parse target strings - string::size_type open_bracket = target1.find("["); - string::size_type close_bracket = target1.find("]"); - string::size_type ibeg = 0; - string::size_type iend = open_bracket; - string::size_type jbeg = open_bracket+1; - string::size_type jend = close_bracket-1; - int PDG1 = atoi(target1.substr(ibeg,iend).c_str()); - double W1 = atof(target1.substr(jbeg,jend).c_str()); - - open_bracket = target2.find("["); - close_bracket = target2.find("]"); - ibeg = 0; - iend = open_bracket; - jbeg = open_bracket+1; - jend = close_bracket-1; - int PDG2 = atoi(target2.substr(ibeg,iend).c_str()); - double W2 = atof(target2.substr(jbeg,jend).c_str()); - - // Can only have H as a secondary target! - if (PDG1 != 1000010010 && PDG2 != 1000010010){ - THROW("NEUT Doesn't support composite targets apart fromn Target+H. E.g. CH"); - } - - // Switch so H is PDG2 if given - if (PDG1 == 1000010010 && PDG2 != 1000010010){ - PDG1 = PDG2; - PDG2 = 1000010010; - - double temp1 = W1; - W1 = W2; - W2 = temp1; - } - - // Now build string - int Z = TargetUtils::GetTargetZFromPDG(PDG1); - int N = TargetUtils::GetTargetAFromPDG(PDG1) - Z; - int NHydrogen = int(W2 * double(NUCLEONS)); - if (double(W2*double(NUCLEONS)) - (double(NHydrogen)) > 0.5){ - NHydrogen++; // awkward rounding bug fix - } - targetstring += "NEUT-NUMBNDP " + GeneralUtils::IntToStr(Z) + "\n"; - targetstring += "NEUT-NUMBNDN " + GeneralUtils::IntToStr(N) + "\n"; - targetstring += "NEUT-NUMFREP " + GeneralUtils::IntToStr(NHydrogen) + "\n"; - targetstring += "NEUT-NUMATOM " + GeneralUtils::IntToStr(Z+N) + "\n"; - - } else { - THROW("NEUT only supports single targets or ones with a secondary H!"); - } - - return targetstring; -} - -std::string GetEventAndSeedDefinition(int nevents, int seed){ - - std::string eventdef = ""; - eventdef += "EVCT-NEVT " + GeneralUtils::IntToStr(nevents) + "\n"; - - LOG(FIT) << "Event Definition: " << std::endl; - std::cout << " -> EVCT-NEVT : " << nevents << std::endl; - - return eventdef; -} - - - - -//____________________________________________________________________________ -int main(int argc, char ** argv) -{ - LOG(FIT) << "==== RUNNING neut_nuisance Event Generator =====" << std::endl; - GetCommandLineArgs(argc,argv); - std::string neutroot = std::string(getenv("NEUT_ROOT")) + "/src/neutsmpl/"; - - // Calculate the dynamic modes definition - - // Read Target string - std::string targetparamsdef = GetTargetDefinition(gOptTargetDef); - - - - //____________________________ - - // NEUT doesn't let us do combined flux inputs so have to loop over each flux. - std::map newfluxdef = MakeNewFluxFile(gOptFluxDef,gOptOutputFile); - - // Quick fix to make flux also save to pid_time.root.flux.root - std::stringstream ss; - ss << getpid() << "_" << time(NULL) << ".root"; - newfluxdef = MakeNewFluxFile(gOptFluxDef,ss.str()); - - // Copy this file to the NEUT working directory - LOG(FIT) << "Copying flux to NEUT working directory" << std::endl; - system(("cp -v " + newfluxdef["beam_inputroot"] + " " + neutroot + "/").c_str()); - TFile* fluxrootfile = new TFile( newfluxdef["beam_inputroot"].c_str(), "READ"); - - // Setup possible beams and get relative fractions - std::vector possiblefluxids; - std::vector fluxfractions; - possiblefluxids.push_back("nue"); - possiblefluxids.push_back("nueb"); - possiblefluxids.push_back("numu"); - possiblefluxids.push_back("numub"); - possiblefluxids.push_back("tau"); - possiblefluxids.push_back("taub"); - - // Total up integrals - double totintflux = 0.0; - for (size_t i = 0; i < possiblefluxids.size(); i++){ - if (newfluxdef["beam_inputroot_" + possiblefluxids[i]].empty()){ - fluxfractions.push_back(0.0); - } else { - - TH1D* fluxhist = (TH1D*) fluxrootfile->Get( newfluxdef["beam_inputroot_" + possiblefluxids[i]].c_str() ); - if (!fluxhist){ - THROW("FLUX HIST : " << newfluxdef["beam_inputroot_" + possiblefluxids[i]] << " not found!"); - } - fluxfractions.push_back( fluxhist->Integral() ); - totintflux += fluxhist->Integral(); - } - } - fluxrootfile->Close(); - - - // Now loop over and actually generate jobs! - for (size_t i = 0; i < possiblefluxids.size(); i++){ - if (fluxfractions[i] == 0.0) continue; - - // Get number of events for this subbeam - - int nevents = int( double(gOptNumberEvents) * fluxfractions[i] / totintflux ); - std::cout << "NEVENTS = " << gOptNumberEvents << " " << fluxfractions[i] <<" " << totintflux << " " << nevents << std::endl; - std::string eventparamsdef = GetEventAndSeedDefinition(nevents, - gOptSeed); - - bool neutrino = true; - if (possiblefluxids[i].find("b") != std::string::npos) neutrino = false; - std::string dynparamsdef = GetDynamicModes(gOptGeneratorList, neutrino); - - std::string fluxparamsdef = GetFluxDefinition( newfluxdef["beam_inputroot"], - newfluxdef["beam_inputroot_" + possiblefluxids[i]], - possiblefluxids[i] ); - - - LOG(FIT) << "==== Generating CardFiles NEUT! ===" << std::endl; - std::cout << dynparamsdef << std::endl; - std::cout << targetparamsdef << std::endl; - std::cout << eventparamsdef << std::endl; - std::cout << fluxparamsdef << std::endl; - - // Create card file - std::ifstream incardfile; - std::ofstream outcardfile; - std::string line; - incardfile.open( gOptCrossSections.c_str(), ios::in ); - outcardfile.open( (gOptOutputFile + "." + possiblefluxids[i] + ".par").c_str(), ios::out ); - - // Copy base card file - if (incardfile.is_open()){ - while( getline (incardfile, line) ){ - outcardfile << line << '\n'; - } - } else { - THROW( "Cannot find card file : " << gOptCrossSections ); - } - - // Now copy our strings - outcardfile << eventparamsdef<< '\n'; - outcardfile << dynparamsdef << '\n'; - outcardfile << targetparamsdef<< '\n'; - outcardfile << fluxparamsdef<< '\n'; - - // Close card and keep name for future use. - outcardfile.close(); - - } - - LOG(FIT) << "GENERATING" << std::endl; - for (size_t i = 0; i < possiblefluxids.size(); i++){ - if (fluxfractions[i] == 0.0) continue; - int nevents = int( double(gOptNumberEvents) * fluxfractions[i] / totintflux ); - if (nevents <= 0) continue; - - std::string cardfile = ExpandPath(gOptOutputFile + "." + possiblefluxids[i] + ".par"); - std::string outputfile = ExpandPath(gOptOutputFile + "." + possiblefluxids[i] + ".root"); - std::string basecardfile = GetBaseName(cardfile); - std::string baseoutputfile = ss.str(); - - std::cout << "CARDFILE = " << cardfile << " : " << basecardfile << std::endl; - std::cout << "OUTPUTFILE = " << outputfile << " : " << baseoutputfile << std::endl; - - system(("cp " + cardfile + " " + neutroot).c_str()); - - std::string cwd = GETCWD(); - chdir(neutroot.c_str()); - - // int attempts = 0; - // while(true){ - - // Break if too many attempts - // attempts++; - // if (attempts > 20) continue; - - // Actually run neutroot2 - system(("./neutroot2 " + basecardfile + " " + baseoutputfile).c_str()); - - // Check the output is valid, sometimes NEUT aborts mid run. - // TFile* f = new TFile(baseoutputfile.c_str(),"READ"); - // if (!f or f->IsZombie()) continue; - - // Check neutttree is there and filled correctly. - // TTree* tn = (TTree*) f->Get("neuttree"); - // if (!tn) continue; - // if (tn->GetEntries() < nevents * 0.9) continue; - - // break; - // } - - // Move the finished file back and clean this directory of card files - system(("mv -v " + baseoutputfile + " " + outputfile).c_str()); - system(("rm -v " + basecardfile).c_str()); - chdir(cwd.c_str()); - - } - - return 0; -} - -//____________________________________________________________________________ -void GetCommandLineArgs(int argc, char ** argv) -{ - - // Check for -h flag. - for (int i = 0; i < argc; i++){ - if (!std::string(argv[i]).compare("-h")) PrintSyntax(); - } - - // Format is neut -r run_number -n n events - std::vector args = GeneralUtils::LoadCharToVectStr(argc, argv); - ParserUtils::ParseArgument(args, "-n", gOptNumberEvents, false); - if (gOptNumberEvents == -1){ - THROW( "No event count passed to neut_NUISANCE!"); - } - - // Flux/Energy Specs - ParserUtils::ParseArgument(args, "-e", gOptEnergyDef, false); - gOptEnergyRange = GeneralUtils::ParseToDbl(gOptEnergyDef,","); - - ParserUtils::ParseArgument(args, "-f", gOptFluxDef, false); - if (gOptFluxDef.empty() and gOptEnergyRange.size() < 1){ - THROW("No flux or energy range given to neut_nuisance!"); - - } else if (gOptFluxDef.empty() and gOptEnergyRange.size() == 1){ - // Fixed energy, make sure -p is given - THROW("neut_NUISANCE cannot yet do fixed energy!"); - - } else if (gOptFluxDef.empty() and gOptEnergyRange.size() == 2){ - // Uniform energy range - THROW("neut_NUISANCE cannot yet do a uniform energy range!"); - - } else if (!gOptFluxDef.empty()){ - // Try to convert the flux definition if possible. - std::string convflux = BeamUtils::ConvertFluxIDs(gOptFluxDef); - if (!convflux.empty()) gOptFluxDef = convflux; - - } else { - THROW("Unknown flux energy range combination!"); - } - - ParserUtils::ParseArgument(args, "-t", gOptTargetDef, false); - if (gOptTargetDef.empty()){ - THROW("No Target passed to neut_nuisance! use the '-t' argument."); - } else { - std::string convtarget = TargetUtils::ConvertTargetIDs(gOptTargetDef); - if (!convtarget.empty()) gOptTargetDef = convtarget; - } - - ParserUtils::ParseArgument(args, "-r", gOptRunNumber, false); - ParserUtils::ParseArgument(args, "-o", gOptOutputFile, false); - if (gOptOutputFile.empty()){ - if (gOptRunNumber == -1) gOptRunNumber = 1; - LOG(FIT) << "No output file given! Saving file to : neutgen." << gOptRunNumber << ".neutvect.root" << std::endl; - gOptOutputFile = "neutgen." + GeneralUtils::IntToStr(gOptRunNumber) + ".neutvect.root"; - } else { - // if no run number given leave as is, else add run number. - if (gOptRunNumber != -1){ - gOptOutputFile += "." + GeneralUtils::IntToStr(gOptRunNumber) + ".root"; - } else { - gOptRunNumber = 0; - } - } - - ParserUtils::ParseArgument(args, "--cross-section", gOptCrossSections, false); - if (!gOptCrossSections.compare("Default")){ - LOG(FIT) << "No Parameters File passed. Using default neut one." << std::endl; - char * const var = getenv("NUISANCE"); - if (!var) { - std::cout << "Cannot find top level directory! Set the NUISANCE environmental variable" << std::endl; - exit(-1); - } - std::string topnuisancedir = string(var); - gOptCrossSections = topnuisancedir + "/neut/Default_params.txt"; - } - - ParserUtils::ParseArgument(args, "--event-generator-list", gOptGeneratorList, false); - - // Final Check and output - if (args.size() > 0){ - PrintSyntax(); - ParserUtils::CheckBadArguments(args); - } - - LOG(FIT) << "Generating Neut Events with the following properties:" << std::endl - << " -> Energy : " << gOptEnergyDef << " (" << gOptEnergyRange.size() << ")" << std::endl - << " -> NEvents : " << gOptNumberEvents << std::endl - << " -> Generators : " << gOptGeneratorList << std::endl - << " -> XSecPars : " << gOptCrossSections << std::endl - << " -> Target : " << gOptTargetDef << std::endl - << " -> Flux : " << gOptFluxDef << std::endl - << " -> Output : " << gOptOutputFile << std::endl - << " -> Run : " << gOptRunNumber << std::endl; - return; -} -//____________________________________________________________________________ -void PrintSyntax(void) -{ - - LOG(FIT) - << "\n\n" << "Syntax:" << "\n" - << "\n neut_nuisance [-h]" - << "\n -n nev" - << "\n -f flux_description" - << "\n -t target_description" - << "\n [ -r run_number ]" - << "\n [ -o output_file ]" - << "\n [ --cross-section /path/to/params.txt ]" - << "\n [ --event-generator-list mode_definition ]" - << "\n \n"; - - LOG(FIT) - << "\n\n Arguments:" << "\n" - << "\n -n nev" - << "\n -> Total number of events to generate (e.g. 2500000)" - << "\n" - << "\n -f flux_description" - << "\n Definition of the flux to be read in from a ROOT file." - << "\n" - << "\n Multiple histograms can be read in from the same file using" - << "\n the format '-f file.root,hist1[pdg1],hist2[pdg2]" - << "\n e.g. \'-f ./flux/myfluxfile.root,numu_flux[14],numubar_flux[-14]\'" - << "\n" - << "\n A flux can also be given according to any of the flux IDs shown" - << "\n at the end of this help message." - << "\n e.g. \' -f MINERvA_fhc_numu\' " - << "\n" - << "\n WARNING: NEUT can't actually generate combined fluxes yet" - << "\n if you want a composite flux, pass them in as normal, but the app" - << "\n will generate you the files seperately, with reduced nevents in each" - << "\n so that the statistics are roughly okay." - << "\n" - << "\n -t target_description" - << "\n Definition of the target to be used. Multiple targets can be given." - << "\n" - << "\n To pass a single target just provide the target PDG" - << "\n e.g. \' -t 1000060120 \'" - << "\n" - << "\n To pass a combined target provide a list containing the following" - << "\n \' -t TotalNucleons,Target1[Weight1],Target2[Weight2],.. where the " - << "\n TotalNucleons is the total nucleons combined, Target1 is the PDG " - << "\n of the first target, and Weight1 is the fractional weight of the " - << "\n first target." - << "\n e.g. \' -t 13,1000060120[0.9231],1000010010[0.0769] \'" - << "\n" - << "\n Target can also be specified by the target IDs given at the end of" - << "\n this help message." - << "\n e.g. \' -t CH2 \'" - << "\n" - << "\n WARNING: NEUT can only generate A+H targets. E.g. CH or CH2 will work, but " - << "\n Fe+Pb will not. You will have to generate each seperately if you want" - << "\n something other than A+NH." - << "\n" - << "\n -r run_number" - << "\n run number ID that can be used when generating large samples in small " - << "\n jobs. Must be an integer. When given neut_nuisance will update the " - << "\n output file from 'output.root' to 'output.root.run_number.root'" - << "\n" - << "\n -o output_file" - << "\n Path to the output_file you want to save events to." - << "\n" - << "\n If this is not given but '-r' is then events will be saved to " - << "\n the file 'neutgen.run_number.neutvect.root'" - << "\n" - << "\n If a run number is given alongside '-o' then events will be saved " - << "\n to 'output.root.run_number.root'" - << "\n" - << "\n --cross-section /path/to/params.txt" - << "\n Path to the neut model definition. If this is not given, then this " - << "\n will default to $NUISANCE/data/neut/Default_params.txt" - << "\n" - << "\n Look in $NUISANCE/data/neut/Default_params.txt for examples when " - << "\n writing your own card files." - << "\n" - << "\n --event-generator-list mode_definition" - << "\n Name of modes to run. This sets the CRS and CRSB values in NEUT." - << "\n e.g. --event-generator-list Default+MEC" - << "\n" - << "\n Allowed mode_definitions are given at the end of this help message." - << "\n" - << "\n\n"; - - std::cout << "-----------------"<. -*******************************************************************************/ - -// Author: Patrick Stowell 09/2016 -/* - Usage: ./nuissyst -c card file -o output file, where the results of the throws are stored - where: -*/ - -#include "BayesianRoutines.h" - -//******************************* -void printInputCommands(){ -//******************************* - - exit(-1); - -}; - -//******************************* -int main(int argc, char* argv[]){ -//******************************* - - // Program status; - int status = 0; - - // If No Arguments print commands - if (argc == 1) printInputCommands(); - - for (int i = 1; i< argc; ++i){ - // Cardfile - if (!std::strcmp(argv[i], "-h")) printInputCommands(); - else break; - } - - // Read input arguments such as card file, parameter arguments, and fit routines - LOG(FIT)<<"Starting nuissyst"<Run(); - - - // Show Final Status - LOG(FIT)<<"-------------------------------------"<. -*******************************************************************************/ -#include "ComparisonRoutines.h" - -//******************************* -void printInputCommands() { -//******************************* - - std::cout << "nuiscomp : NUISANCE Data Comparison App \n" << std::endl; - - std::cout << "# Running nuiscomp with a card file #\n" - << "######################################\n" - << "nuiscomp -c cardfile.xml [ -o outputfile.root ] [ -f routines ] [ -n maxevents ] \n" - << " [ -i 'cardstructure' ] [ -d fakedata ] [ -q config=val ] [ +e/-e ] [ +v/-v ] \n" - << "\n" - << "# Running nuiscomp with structures at cmd line #\n" - << "################################################\n" - << "nuiscomp -i 'cardstructure' -o outputfile.root [ -c cardfile.xml [ -f routines ] [ -n maxevents ] \n" - << " [ -d fakedata ] [ -q config=val ] [ +e/-e ] [ +v/-v ] \n" - << std::endl; - - sleep(4); - std::cout << "" - << "\n" - << " \n" - << " -c cardfile.xml : NUISANCE format card file defining comparisons. \n" - << " \n" - << " -o outputfile.root : Output file that histograms will be saved in. If a card file is \n" - << " given but no output file this will default to cardfile.xml.root \n" - << " \n" - << " -f routines : Comma separated list of comparison routines to run in order. \n" - << " Allowed Routines : \n" - << " Compare : Fixed comparison at nominal dial values. \n" - << " \n" - << " -n maxevents : Set limit on the number of event entries to process. \n" - << " \n" - << " -i \'cardstructure\' : Define card structure like those available in the standard NUISANCE \n" - << " card format, but on the command line at runtime. MUST be enclosed \n" - << " in single quotation marks. See examples below for usage. \n" - << " \n" - << " It is possible to entirely define the comparison using \' -i\' commands \n" - << " without the need to write a card file explicitly. If you do this, \n" - << " make sure to also use the \' -o\' flag to tell it where to go. \n" - << " \n" - << " -d fakedata : Define a fake data set to be used. All data in NUISANCE will be set \n" - << " to the values defined in this fake data before comparisons are made. \n" - << " \n" - << " There are two possible methods. Fake data from MC or a previous file.\n" - << " fakedata = \'MC\' : Sets the MC to the values defined by \'fake_parameters\' \n" - << " shown in the examples below, and then sets the data \n" - << " to be equal to this MC prediction. \n" - << " fakedata = \'file.root\' : Reads in the ROOT file at the specified path \n" - << " assuming its a standard NUISANCE file. Takes \n" - << " MC predictions in this file and uses them as \n" - << " fake data. \n" - << " \n" - << " -q config=val : Overrides default configurations provided in the cardfile and in \n" - << " '$NUISANCE/parameters/config.xml\'. Any config parameter can be set. \n" - << " Examples : \n" - << " \'-q VERBOSITY=4\' \n" - << " \'-q EventManager=1\' \n" - << " \'-q drawOpts=DATA/MC\' \n" - << " \n" - << " +e/-e : Increase/Decrease the default error verbosity by 1. \n" - << " \n" - << " +v/-v : Increase/Decrease the default logging verbosity by 1.\n" - << " \n\n" << std::endl; - - sleep(4); - std::cout << "# nuiscomp Running Examples #" - << "############################# \n" - << " \n" - << " 1. Generate cardfile comparisons with increased verbosity and only 50000 events \n\n" - << " nuiscomp -c cardfile.card -o mycomp.root -n 50000 +v +v \n" - << " \n\n" - << " 2. Generate a comparison to MiniBooNE data using simple structure, saving it to outfile.root \n\n" - << " nuiscomp -o outfile.root -i \'sample MiniBooNE_CCQE_XSec_1DQ2_nu NEUT:neutevents.root\' \n" - << " \n\n" - << " 3. Generate a comparison to MiniBooNE data using xml structure, reweight MaCCQE, and save the prediction to outfile.root \n\n" - << " nuiscomp -o outfile.root -i \'sample name=\"MiniBooNE_CCQE_XSec_1DQ2_nu\" input=\"NEUT:neutevents.root\"\' \\ \n" - << " -i \'sample name=\"MiniBooNE_CC1pip_XSec_1DQ2_nu\" input=\"NEUT:neutevents.root\"\' \\ \n" - << " -i \'parameter name=\"MaCCQE\" nominal=\"1.0\" type=\"neut_parameter\"\' \n " - << " \n\n" - << " 4. Generate a comparison, using fake data from the MC predictions inside the fakedata.root \n\n" - << " nuiscomp -c cardfile.card -o myfakecomp.root -d fakedata.root \n" - << " \n\n" - << " 5. Generate a comparison using fake data defined on the command line use fake parameters \n\n" - << " nuiscomp -c cardfile.card -d MC -i \'fakeparameter name=\"MaCCQE\" nominal=\"1.0\"\' \n " - << " -i \'parameter name=\"MaCCQE\" nominal=\"1.0\" type=\"neut_parameter\"' " - << " \n\n" - << std::endl; - - sleep(4); - std::cout << "# NUISANCE Card Format Structure Examples # \n" - << "########################################### \n" - << "\n" - << "The NUISANCE card can be defined as a simple text file, or an xml file. \n" - << "Examples for both with relevant structures are given below. \n" - << std::endl; - - std::cout << "# XML Card File Example # \n" - << "cardfile.xml: \n" - << "" - << "\n" - << " \n" - << " \n" - << " \n" - << "\n" - << " \n" - << " \n" - << " \n" - << " \n" - << " \n" - << " \n" - << " \n" - << "\n" - << " \n" - << " \n" - << "\n" - << "\n" - << " \n" - << " \n" - << " \n" - << " \n" - << " \n" - << "\n" - << " \n" - << "\n" - << " \n" - << " \n" - << " \n" - << " \n" - << " \n" - << "\n" - << " \n" - << "\n" - << " \n\n" << std::endl; - - - std::cout << "# Simple Card File Example # \n" - << "cardfile.card: \n" - << "\n" - << "# CONFIG STRUCTURE \n" - << "# config name val \n" - << "config VERBOSITY 4 \n" - << "\n" - << "# Sample Structure \n" - << "# ID Corresponds to names given in src/FCN/SampleList.cxx \n" - << "# TYPE is the generator type (NEUT,NUWRO,GENIE,GIBUU). \n" - << "# FILE is the input generator events file. \n" - << "# TYPE is optional and used to define options for a class. e.g. FREE \n" - << "# NORM is optional and sets sample normalisations. \n" - << "# sample ID TYPE:FILE TYPE 1.0 \n" - << "\n" - << "sample MiniBooNE_CCQE_XSec_1DQ2_nu GENIE:genieevents.root \n" - << "sample MiniBooNE_CC1pip_XSec_1DQ2_nu GENIE:genieevents.root SHAPE \n" - << "\n" - << "\n" - << "# Parameter Structure \n" - << "# ID is the name of the dial in each generator RW engine \n" - << "# TYPE is the dial type (neut,newer,genie,niwg,t2k,custom,norm) \n" - << "# VAL is the nominal value in 1-sigma variation for the comparison \n" - << "# TYPE_parameter ID VAL \n" - << "\n" - << "neut_parameter MaCCQE 0.5 \n" - << "\n" - << "# Fake Parameter Structure \n" - << "# Sets values for fake data defined using the ‘MC’ flag. \n" - << "# ID is the dial name, it MUST be specified before hand using a normal parameter structure \n" - << "# VAL is the value to use for the fake data \n" - << "# fake_parameter ID VAL \n" - << "\n" - << "fake_parameter MaCCQE 1.0 \n" - << "\n" << std::endl; - - exit(-1); - -}; - -//******************************* -int main(int argc, char* argv[]) { - //******************************* - - // Program status; - int status = 0; - - // If No Arguments print commands - if (argc == 1) printInputCommands(); - - for (int i = 1; i < argc; ++i) { - // Cardfile - if (!std::strcmp(argv[i], "-h")) printInputCommands(); - else break; - } - - // Read input arguments such as card file, parameter arguments, and fit routines - LOG(FIT) << "Starting nuiscomp.exe" << std::endl; - - // Make minimizer class and run fit - ComparisonRoutines* comp = new ComparisonRoutines(argc, argv); - comp->Run(); - - // Show Final Status - LOG(FIT) << "------------------------------------ -" << std::endl; - LOG(FIT) << "Comparison Complete." << std::endl; - LOG(FIT) << "------------------------------------ -" << std::endl; - - return status; -} - - - diff --git a/app/nuisflat.cxx b/app/nuisflat.cxx deleted file mode 100644 index cb128e6..0000000 --- a/app/nuisflat.cxx +++ /dev/null @@ -1,187 +0,0 @@ -// 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 . -*******************************************************************************/ -#include "ComparisonRoutines.h" -#include "InputUtils.h" -#include "MeasurementBase.h" -#include "GenericFlux_Tester.h" -#include "GenericFlux_Vectors.h" -#include "Smearceptance_Tester.h" - -// Global Arguments -std::string gOptInputFile = ""; -std::string gOptFormat = ""; -std::string gOptOutputFile = ""; -std::string gOptType = "DEFAULT"; -std::string gOptNumberEvents = "NULL"; -std::string gOptCardInput = ""; -std::string gOptOptions = ""; - -//******************************* -void PrintSyntax() { - //******************************* - - std::cout << "nuisflat -i input [-f format] [-o outfile] [-n nevents] [-t " - "options] [-q con=val] \n"; - std::cout - << "\n Arguments : " - << "\n\t -i input : Path to input vector of events to flatten" - << "\n\t" - << "\n\t This should be given in the same format a normal " - "input file" - << "\n\t is given to NUISANCE. {e.g. NUWRO:eventsout.root}." - << "\n\t" - << "\n\t -f format : FlatTree format to output. If none given GenericVectors used." - << "\n\t\t GenericFlux : Flat event summary format." - << "\n\t\t GenericVectors : Standard event summary format with particle vectors." - << "\n\t " - << "\n\t[-c crd.xml]: Input card file to override configs or set dial values." - << "\n\t " - << "\n\t[-o outfile]: Optional output file path. " - << "\n\t " - << "\n\t If none given, input.format.root is chosen." - << "\n\t" - << "\n\t[-n nevents]: Optional choice of Nevents to run over. Default is " - "all." - << "\n\t" - << "\n\t[-t options]: Pass OPTION to the FlatTree sample. " - << "\n\t Similar to type field in comparison xml configs." - << "\n\t" - << "\n\t[-q con=val]: Configuration overrides." << std::endl; - - exit(-1); -}; - -//____________________________________________________________________________ -void GetCommandLineArgs(int argc, char** argv) { - // Check for -h flag. - for (int i = 0; i < argc; i++) { - if ((!std::string(argv[i]).compare("-h")) || - (!std::string(argv[i]).compare("-?")) || - (!std::string(argv[i]).compare("--help"))) - PrintSyntax(); - } - - // Format is nuwro -r run_number -n n events - std::vector args = GeneralUtils::LoadCharToVectStr(argc, argv); - - // Parse input file - ParserUtils::ParseArgument(args, "-i", gOptInputFile, false); - if (gOptInputFile == "") { - THROW("Need to provide a valid input file to nuisflat using -i flag!"); - } else { - LOG(FIT) << "Reading Input File = " << gOptInputFile << std::endl; - } - - // Get Output Format - ParserUtils::ParseArgument(args, "-f", gOptFormat, false); - if (gOptFormat == "") { - gOptFormat = "GenericVectors"; - LOG(FIT) << "Saving flattree in default format = " << gOptFormat << std::endl; - } else { - LOG(FIT) << "Saving flattree in format = " << gOptFormat << std::endl; - } - - // Get Output File - ParserUtils::ParseArgument(args, "-o", gOptOutputFile, false); - if (gOptOutputFile == "") { - gOptOutputFile = gOptInputFile + "." + gOptFormat + ".root"; - LOG(FIT) << "No output file given so saving nuisflat output to:" - << gOptOutputFile << std::endl; - } else { - LOG(FIT) << "Saving nuisflat output to " << gOptOutputFile << std::endl; - } - - // Get N Events and Configs - nuisconfig configuration = Config::Get(); - - ParserUtils::ParseArgument(args, "-n", gOptNumberEvents, false); - if (gOptNumberEvents.compare("NULL")) { - configuration.OverrideConfig("MAXEVENTS=" + gOptNumberEvents); - } - - std::vector configargs; - ParserUtils::ParseArgument(args, "-q", configargs); - for (size_t i = 0; i < configargs.size(); i++) { - configuration.OverrideConfig(configargs[i]); - } - - ParserUtils::ParseArgument(args, "-c", gOptCardInput, false); - if (gOptCardInput != "") { - QLOG(FIT, "Reading cardfile: " << gOptCardInput); - configuration.LoadSettings(gOptCardInput, ""); - } - - ParserUtils::ParseArgument(args, "-t", gOptOptions, false); - if (gOptOptions != "") { - QLOG(FIT, "Read options: \"" << gOptOptions << "\'"); - } - return; -} - -//******************************* -int main(int argc, char* argv[]) { - //******************************* - - // Parse - GetCommandLineArgs(argc, argv); - - // Make output file - TFile* f = new TFile(gOptOutputFile.c_str(), "RECREATE"); - if (f->IsZombie()) { - THROW("Cannot create output file!"); - } - f->cd(); - FitPar::Config().out = f; - - // Create a new measurementbase class depending on the Format - MeasurementBase* flattreecreator = NULL; - - // Make a new sample key for the format of interest. - nuiskey samplekey = Config::CreateKey("sample"); - if (!gOptFormat.compare("GenericFlux")) { - samplekey.Set("name", "FlatTree"); - samplekey.Set("input", gOptInputFile); - samplekey.Set("type", gOptType); - flattreecreator = new GenericFlux_Tester("FlatTree", gOptInputFile, - FitBase::GetRW(), gOptType, ""); - - } else if (!gOptFormat.compare("GenericVectors")) { - samplekey.Set("name", "FlatTree"); - samplekey.Set("input", gOptInputFile); - samplekey.Set("type", gOptType); - flattreecreator = new GenericFlux_Vectors("FlatTree", gOptInputFile, - FitBase::GetRW(), gOptType, ""); - - } else { - ERR(FTL) << "Unknown FlatTree format!" << std::endl; - } - - // Make the FlatTree reconfigure - flattreecreator->Reconfigure(); - f->cd(); - flattreecreator->Write(); - f->Close(); - - // Show Final Status - LOG(FIT) << "-------------------------------------" << std::endl; - LOG(FIT) << "Flattree Generation Complete." << std::endl; - LOG(FIT) << "-------------------------------------" << std::endl; - - return 0; -} diff --git a/app/nuismin.cxx b/app/nuismin.cxx deleted file mode 100644 index 5bb48d8..0000000 --- a/app/nuismin.cxx +++ /dev/null @@ -1,113 +0,0 @@ -// 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 . -*******************************************************************************/ - -// Author: Callum Wilkinson 01/2014 - -// Patrick Stowell 09/2015 -/** - Usage: ./GSLminimizerWithReWeight.exe -c card file, where samples and parameters are defined - -o output file, where the results of the fit are stored - where: -*/ - -#include "MinimizerRoutines.h" - -//******************************* -void printInputCommands(){ -//******************************* - - std::cout<<"ExtFit_minimizer.exe -c cardFile -o outFile [-f fitStategy] [-d fakeDataFile] [-i inputFile] [-q config_name=config_val] \n"; - std::cout<SaveNominal(); - if (FitPar::Config().GetParB("saveprefit")) min->SavePrefit(); - - // Run the fit rotines - min->Run(); - - // Save by default - min->SaveResults(); - - // Get Status - status = min->GetStatus(); - - // Show Final Status - LOG(FIT)<<"-------------------------------------"</} - file=${file//\.\//} - - file=${file//\(/ } - file=${file//\)/ } - file=${file//\,/ } - file=${file//\;/ } - - file=${file//GENIE:/ } - file=${file//NEUT:/ } - file=${file//NUWRO:/ } - file=${file//ROOT:/ } - file=${file//FEVENT:/ } - - for newfile in $file; - do - base=$(basename $newfile) - if [[ "$base" != "$newfile" ]] - then - sed -i -e "s#$newfile#$base#g" preload_${card} - fi - allfiles=$newfile,$allfiles - done - done - echo $allfiles -fi - - -# Copy Files -if [[ $opt == "-copy" ]] -then - - if [[ -e "$card" ]] - then - echo "Copying files across from $card" - else - echo "$card not found!" - return - fi - - # Copy File - cp $card preload_${card} - - # Strip out config replacers - for obj in $(\grep config $card); - do - for events in "NEUT_DIR" "GENIE_DIR" "NUWRO_DIR" "NUSANCE_DIR" "EVSPLN_DIR" "GIBUU_DIR" - do - - if [[ $obj == ${events}"="* ]] - then - obj=${obj//\/\>/} - obj=${obj//${events}=/} - obj=${obj//\"/} - - echo "Sedding : " sed -i -e "s#$events#$obj#g" preload_${card} - sed -i -e "s#@$events#$obj#g" preload_${card} - fi - done - done - - # Make preload - for obj in $(\grep input preload_${card}); - do - - if [[ $obj != "input="* ]] - then - continue - fi - - file=${obj//\"/} - file=${file//input=/} - file=${file//\/\>/} - file=${file//\.\//} - - file=${file//\(/ } - file=${file//\)/ } - file=${file//\,/ } - file=${file//\;/ } - - file=${file//GENIE:/ } - file=${file//NEUT:/ } - file=${file//NUWRO:/ } - file=${file//ROOT:/ } - file=${file//FEVENT:/ } - - for newfile in $file; - do - base=$(basename $newfile) - if [[ "$base" != "$newfile" ]] - then - #echo cp $newfile $base - cp -rvf $newfile $base - sed -i -e "s#$newfile#$base#g" preload_${card} - else - echo "Not copying $base $newfile" - fi - done - done -fi - -if [[ $opt == "-clean" ]] -then - - if [[ -e "preload_${card}" ]] - then - echo "Cleaning from preload_${card}" - else - echo "No preload card found!" - return 0 - fi - - # Strip out config replacers - for obj in $(\grep config $card); - do - for events in "NEUT_DIR" "GENIE_DIR" "NUWRO_DIR" "NUSANCE_DIR" "EVSPLN_DIR" "GIBUU_DIR" - do - - if [[ $obj == ${events}"="* ]] - then - obj=${obj//\/\>/} - obj=${obj//${events}=/} - obj=${obj//\"/} - - echo "Sedding : " sed -i -e "s#$events#$obj#g" preload_${card} - sed -i -e "s#@$events#$obj#g" preload_${card} - fi - done - done - - # Make preload - for obj in $(\grep input ${card}); - do - if [[ $obj != "input="* ]] - then - continue - fi - - file=${obj//\"/} - file=${file//input=/} - file=${file//\/\>/} - file=${file//\.\//} - - file=${file//\(/ } - file=${file//\)/ } - file=${file//\,/ } - file=${file//\;/ } - - file=${file//GENIE:/ } - file=${file//NEUT:/ } - file=${file//NUWRO:/ } - file=${file//ROOT:/ } - file=${file//FEVENT:/ } - - for newfile in $file; - do - base=$(basename $newfile) - if [[ "$base" != "$newfile" ]] - then -# echo rm $base - rm -v $base - else - echo "Not removing current folder file : $base $newfile" - fi - done - done - - # Remove file - rm preload_${card} - - if [[ $card != $fullcard ]] - then - rm $card - fi -fi - diff --git a/app/nuissmear.cxx b/app/nuissmear.cxx deleted file mode 100644 index c558d1f..0000000 --- a/app/nuissmear.cxx +++ /dev/null @@ -1,223 +0,0 @@ -// 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 . -*******************************************************************************/ -#include "ComparisonRoutines.h" -#include "InputUtils.h" - -#include "Smearceptance_Tester.h" - -// Global Arguments -std::string gOptInputFile = ""; -std::string gOptOutputFile = ""; -std::string gOptType = "DEFAULT"; -std::string gOptNumberEvents = "NULL"; -std::string gOptCardInput = ""; -std::string gOptOptions = ""; - -//******************************* -void PrintSyntax() { - //******************************* - - std::cout << "nuisflat -i input [-o outfile] [-n nevents] [-t " - "options] [-q con=val] \n"; - std::cout - << "\n Arguments : " - << "\n\t -i input : Path to input vector of events to flatten" - << "\n\t" - << "\n\t This should be given in the same format a normal " - "input file" - << "\n\t is given to NUISANCE. {e.g. NUWRO:eventsout.root}." - << "\n\t" - << "\n\t[-c crd.xml]: Input card file to override configs or define " - "smearcepters." - << "\n\t " - << "\n\t[-o outfile]: Optional output file path. " - << "\n\t " - << "\n\t If none given, input.smear.root is chosen." - << "\n\t" - << "\n\t[-n nevents]: Optional choice of Nevents to run over. Default is " - "all." - << "\n\t" - << "\n\t[-t options]: Pass OPTION to the smearception sample. " - << "\n\t Similar to type field in comparison xml configs." - << "\n\t" - << "\n\t[-q con=val]: Configuration overrides." << std::endl; - - exit(-1); -}; - -//____________________________________________________________________________ -void GetCommandLineArgs(int argc, char** argv) { - // Check for -h flag. - for (int i = 0; i < argc; i++) { - if ((!std::string(argv[i]).compare("-h")) || - (!std::string(argv[i]).compare("-?")) || - (!std::string(argv[i]).compare("--help"))) - PrintSyntax(); - } - - // Format is nuwro -r run_number -n n events - std::vector args = GeneralUtils::LoadCharToVectStr(argc, argv); - - // Parse input file - ParserUtils::ParseArgument(args, "-i", gOptInputFile, false); - if (gOptInputFile == "") { - THROW("Need to provide a valid input file to nuisflat using -i flag!"); - } else { - LOG(FIT) << "Reading Input File = " << gOptInputFile << std::endl; - gOptInputFile = InputUtils::PrependGuessedInputTypeToName(gOptInputFile); - } - - // Get Output File - ParserUtils::ParseArgument(args, "-o", gOptOutputFile, false); - if (gOptOutputFile == "") { - gOptOutputFile = gOptInputFile + ".smear.root"; - LOG(FIT) << "No output file given so saving nuisflat output to:" - << gOptOutputFile << std::endl; - } else { - LOG(FIT) << "Saving nuisflat output to " << gOptOutputFile << std::endl; - } - - // Get N Events and Configs - nuisconfig configuration = Config::Get(); - - ParserUtils::ParseArgument(args, "-n", gOptNumberEvents, false); - if (gOptNumberEvents.compare("NULL")) { - configuration.OverrideConfig("MAXEVENTS=" + gOptNumberEvents); - } - - std::vector configargs; - ParserUtils::ParseArgument(args, "-q", configargs); - for (size_t i = 0; i < configargs.size(); i++) { - configuration.OverrideConfig(configargs[i]); - } - - ParserUtils::ParseArgument(args, "-c", gOptCardInput, false); - if (gOptCardInput != "") { - QLOG(FIT, "Reading cardfile: " << gOptCardInput); - configuration.LoadSettings(gOptCardInput, ""); - } - - ParserUtils::ParseArgument(args, "-t", gOptOptions, false); - if (gOptOptions != "") { - QLOG(FIT, "Read options: \"" << gOptOptions << "\'"); - } - return; -} - -void SetupRW() { - std::vector parkeys = Config::QueryKeys("parameter"); - if (!parkeys.empty()) { - LOG(FIT) << "Number of parameters : " << parkeys.size() << std::endl; - } - - std::vector Params; - std::map TypeVals; - std::map CurrVals; - for (size_t i = 0; i < parkeys.size(); i++) { - nuiskey key = parkeys.at(i); - - // Check for type,name,nom - if (!key.Has("type")) { - ERR(FTL) << "No type given for parameter " << i << std::endl; - ERR(FTL) << "type='PARAMETER_TYPE'" << std::endl; - throw; - } else if (!key.Has("name")) { - ERR(FTL) << "No name given for parameter " << i << std::endl; - ERR(FTL) << "name='SAMPLE_NAME'" << std::endl; - throw; - } else if (!key.Has("nominal")) { - ERR(FTL) << "No nominal given for parameter " << i << std::endl; - ERR(FTL) << "nominal='NOMINAL_VALUE'" << std::endl; - throw; - } - - // Get Inputs - std::string partype = key.GetS("type"); - std::string parname = key.GetS("name"); - double parnom = key.GetD("nominal"); - - // Push into vectors - Params.push_back(parname); - - TypeVals[parname] = FitBase::ConvDialType(partype); - CurrVals[parname] = parnom; - } - - for (UInt_t i = 0; i < Params.size(); i++) { - FitBase::GetRW()->IncludeDial(Params[i], TypeVals[Params[i]]); - FitBase::GetRW()->SetDialValue(Params[i], CurrVals[Params[i]]); - } - - FitBase::GetRW()->Reconfigure(); -} - -//******************************* -int main(int argc, char* argv[]) { - //******************************* - - // Parse - GetCommandLineArgs(argc, argv); - - // Make output file - TFile* f = new TFile(gOptOutputFile.c_str(), "RECREATE"); - if (f->IsZombie()) { - THROW("Cannot create output file!"); - } - f->cd(); - Config::Get().out = f; - - // Create a new measurementbase class depending on the Format - MeasurementBase* flattreecreator = NULL; - - // Make a new sample key for the format of interest. - nuiskey samplekey = Config::CreateKey("sample"); - - samplekey.Set("name", "FlatTree"); - samplekey.Set("smearceptor", gOptOptions); - samplekey.Set("input", gOptInputFile); - samplekey.Set("type", gOptType); - - if (gOptOptions == "") { - THROW( - "Attempting to flatten with Smearceptor, but no Smearceptor given. " - "Please supply a -t option."); - } - if (gOptCardInput == "") { - THROW( - "Attempting to flatten with Smearceptor, but no card passed with " - "Smearceptors configured. Please supply a -c option."); - } - - SetupRW(); - - flattreecreator = new Smearceptance_Tester(samplekey); - - // Make the FlatTree reconfigure - flattreecreator->Reconfigure(); - f->cd(); - flattreecreator->Write(); - f->Close(); - - // Show Final Status - LOG(FIT) << "-------------------------------------" << std::endl; - LOG(FIT) << "Flattree Generation Complete." << std::endl; - LOG(FIT) << "-------------------------------------" << std::endl; - - return 0; -} diff --git a/app/nuissplines.cxx b/app/nuissplines.cxx deleted file mode 100644 index 90f8876..0000000 --- a/app/nuissplines.cxx +++ /dev/null @@ -1,97 +0,0 @@ -// 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 . -*******************************************************************************/ - -// Author: Callum Wilkinson 01/2014 - -// Patrick Stowell 09/2015 -/** - Usage: ./GSLminimizerWithReWeight.exe -c card file, where samples and parameters are defined - -o output file, where the results of the fit are stored - where: -*/ - -#include "SplineRoutines.h" - -//******************************* -void printInputCommands(){ -//******************************* - /* - std::cout<<"ExtFit_splines.exe -c cardFile -f [spline_routines] [-q config_name=config_val] \n"; - std::cout<Run(); - - // Show Final Status - LOG(FIT)<<"-------------------------------------"<. -*******************************************************************************/ - -// Author: Patrick Stowell 09/2016 -/* - Usage: ./nuissyst -c card file -o output file, where the results of the throws are stored - where: -*/ - -#include "SystematicRoutines.h" - -//******************************* -void printInputCommands(){ -//******************************* - - std::cout<<"nuissyst.exe -c cardFile -o outFile [-f fitStategy] [-d fakeDataFile] [-i inputFile] [-q config_name=config_val] \n"; - std::cout<Run(); - - - // Show Final Status - LOG(FIT)<<"-------------------------------------"< gOptEnergyRange; -int gOptNumberEvents = -1; -int gOptNumberTestEvents = 5E6; -std::string gOptGeneratorList = "Default"; -std::string gOptCrossSections = - "Default"; // If default this will look in - // $NUISANCE/data/nuwro/default_params.txt -int gOptSeed = time(NULL); -std::string gOptTargetDef = ""; -std::string gOptFluxDef = ""; -std::string gOptOutputFile = ""; -int gOptRunNumber = -1; - -void GetCommandLineArgs(int argc, char** argv); -void PrintSyntax(void); - -std::string GetDynamicModes(std::string list) { - LOG(FIT) << "Using " << list << " to define interaction modes." << std::endl; - std::map modes; - - if (!list.compare("Default")) { - modes["dyn_qel_cc"] = 1; // Quasi elastic charged current - modes["dyn_qel_nc"] = 1; // Quasi elastic neutral current - modes["dyn_res_cc"] = 1; // Resonant charged current - modes["dyn_res_nc"] = 1; // Resonant neutral current - modes["dyn_dis_cc"] = 1; // Deep inelastic charged current - modes["dyn_dis_nc"] = 1; // Deep inelastic neutral current - modes["dyn_coh_cc"] = 1; // Coherent charged current - modes["dyn_coh_nc"] = 1; // Coherent neutral current - modes["dyn_mec_cc"] = 0; // Meson exchange charged current - modes["dyn_mec_nc"] = 0; // Meson exchange neutral current - - } else if (!list.compare("DefaultFree")) { - modes["dyn_qel_cc"] = 1; // Quasi elastic charged current - modes["dyn_qel_nc"] = 1; // Quasi elastic neutral current - modes["dyn_res_cc"] = 1; // Resonant charged current - modes["dyn_res_nc"] = 1; // Resonant neutral current - modes["dyn_dis_cc"] = 1; // Deep inelastic charged current - modes["dyn_dis_nc"] = 1; // Deep inelastic neutral current - modes["dyn_coh_cc"] = 0; // Coherent charged current - modes["dyn_coh_nc"] = 0; // Coherent neutral current - modes["dyn_mec_cc"] = 0; // Meson exchange charged current - modes["dyn_mec_nc"] = 0; // Meson exchange neutral current - - } else if (!list.compare("Default+MEC")) { - modes["dyn_qel_cc"] = 1; // Quasi elastic charged current - modes["dyn_qel_nc"] = 1; // Quasi elastic neutral current - modes["dyn_res_cc"] = 1; // Resonant charged current - modes["dyn_res_nc"] = 1; // Resonant neutral current - modes["dyn_dis_cc"] = 1; // Deep inelastic charged current - modes["dyn_dis_nc"] = 1; // Deep inelastic neutral current - modes["dyn_coh_cc"] = 1; // Coherent charged current - modes["dyn_coh_nc"] = 1; // Coherent neutral current - modes["dyn_mec_cc"] = 1; // Meson exchange charged current - modes["dyn_mec_nc"] = 1; // Meson exchange neutral current - - } else { - THROW("Event generator list " << list << " not found!"); - } - - std::string modestring = ""; - for (std::map::iterator iter = modes.begin(); - iter != modes.end(); iter++) { - std::cout << " -> " << iter->first << " : " << iter->second << std::endl; - modestring += " -p \"" + iter->first + "=" + - GeneralUtils::IntToStr(iter->second) + "\""; - } - return modestring; -} - -std::string GetFluxDefinition(std::string flux, std::string out) { - LOG(FIT) << "Using " << flux << " to define NuWro beam." << std::endl; - - // By default the flux is type 6 with a root file - std::vector fluxargs = GeneralUtils::ParseToStr(flux, ","); - if (fluxargs.size() < 2) { - THROW( - "Expected flux in the format: file.root,hist_name1[pdg1],... : " - "reveived : " - << flux); - } - - // Build Map - std::map fluxmap; - fluxmap["beam_type"] = "6"; - fluxmap["beam_inputroot"] = fluxargs[0]; - fluxmap["beam_inputroot_nue"] = ""; - fluxmap["beam_inputroot_nueb"] = ""; - fluxmap["beam_inputroot_numu"] = ""; - fluxmap["beam_inputroot_numub"] = ""; - fluxmap["beam_inputroot_nutau"] = ""; - fluxmap["beam_inputroot_nutaub"] = ""; - - // Split by beam bdgs - for (int i = 1; i < fluxargs.size(); i++) { - std::string histdef = fluxargs[i]; - string::size_type open_bracket = histdef.find("["); - string::size_type close_bracket = histdef.find("]"); - string::size_type ibeg = 0; - string::size_type iend = open_bracket; - string::size_type jbeg = open_bracket + 1; - string::size_type jend = close_bracket - 1; - std::string name = std::string(histdef.substr(ibeg, iend).c_str()); - int pdg = atoi(histdef.substr(jbeg, jend).c_str()); - - if (pdg == 12) - fluxmap["beam_inputroot_nue"] = name; - else if (pdg == -12) - fluxmap["beam_inputroot_nueb"] = name; - else if (pdg == 14) - fluxmap["beam_inputroot_numu"] = name; - else if (pdg == -14) - fluxmap["beam_inputroot_numub"] = name; - else if (pdg == 16) - fluxmap["beam_inputroot_nutau"] = name; - else if (pdg == -16) - fluxmap["beam_inputroot_nutaub"] = name; - } - - // Now create a new flux file matching the output file - std::cout << " -> Moving flux from '" + fluxmap["beam_inputroot"] + - "' to current directory to keep everything organised." - << std::endl; - TFile* fluxread = new TFile(fluxmap["beam_inputroot"].c_str(), "READ"); - TFile* fluxwrite = new TFile((out + ".flux.root").c_str(), "RECREATE"); - - for (std::map::iterator iter = fluxmap.begin(); - iter != fluxmap.end(); iter++) { - TH1* temp = (TH1*)fluxread->Get(iter->second.c_str()); - if (!temp) continue; - TH1D* cuthist = (TH1D*)temp->Clone(); - - // Restrict energy range if required - if (gOptEnergyRange.size() == 2) { - for (int i = 0; i < cuthist->GetNbinsX(); i++) { - if (cuthist->GetXaxis()->GetBinCenter(i + 1) < gOptEnergyRange[0] or - cuthist->GetXaxis()->GetBinCenter(i + 1) > gOptEnergyRange[1]) { - cuthist->SetBinContent(i + 1, 0.0); - } - } - } - - // Check Flux - if (cuthist->Integral() <= 0.0) { - THROW("Flux histogram " << iter->second << " has integral <= 0.0"); - } - - // Save - fluxwrite->cd(); - cuthist->Write(); - } - std::cout << " ->-> Saved to : " << (out + ".flux.root") << std::endl; - fluxmap["beam_inputroot"] = (out + ".flux.root"); - fluxwrite->Close(); - - // Return a parameters string - std::string fluxstring = ""; - for (std::map::iterator iter = fluxmap.begin(); - iter != fluxmap.end(); iter++) { - std::cout << " -> " << iter->first << " : " << iter->second << std::endl; - fluxstring += " -p \"" + iter->first + "=" + iter->second + "\""; - } - return fluxstring; -} - -std::string GetTargetDefinition(std::string target) { - LOG(FIT) << "Defining NuWro Target from : " << target << std::endl; - - // Target is given as either a single PDG, or a combo with the total number of - // nucleons - std::vector trgts = GeneralUtils::ParseToStr(target, ","); - std::string targetstring = ""; - - // Single Target - if (trgts.size() == 1) { - int PDG = GeneralUtils::StrToInt(trgts[0]); - int Z = TargetUtils::GetTargetZFromPDG(PDG); - int N = TargetUtils::GetTargetAFromPDG(PDG) - Z; - int TOTAL = 1; - targetstring += (" -p \"target_content=" + GeneralUtils::IntToStr(Z) + " " + - GeneralUtils::IntToStr(N) + " " + - GeneralUtils::IntToStr(TOTAL) + "x" + "\""); - - // Combined target - } else if (trgts.size() > 1) { - int NUCLEONS = GeneralUtils::StrToInt(trgts[0]); - - // Loop over all targets - for (size_t i = 1; i < trgts.size(); i++) { - // Extra PDG and W - std::string tgtdef = trgts[i]; - string::size_type open_bracket = tgtdef.find("["); - string::size_type close_bracket = tgtdef.find("]"); - string::size_type ibeg = 0; - string::size_type iend = open_bracket; - string::size_type jbeg = open_bracket + 1; - string::size_type jend = close_bracket - 1; - int PDG = atoi(tgtdef.substr(ibeg, iend).c_str()); - double W = atof(tgtdef.substr(jbeg, jend).c_str()); - - // extract Z N - int Z = TargetUtils::GetTargetZFromPDG(PDG); - int A = TargetUtils::GetTargetAFromPDG(PDG); - int N = TargetUtils::GetTargetAFromPDG(PDG) - Z; - std::cout << "Target " << PDG << " Z" << Z << " N" << N << std::endl; - - // extract weight - int TOTAL = round(double(NUCLEONS) * W / A); - - if (i == 1) { - targetstring += (" -p \"target_content=" + GeneralUtils::IntToStr(Z) + - " " + GeneralUtils::IntToStr(N) + " " + - GeneralUtils::IntToStr(TOTAL) + "x" + "\""); - } else { - targetstring += (" -p \"target_content+=" + GeneralUtils::IntToStr(Z) + - " " + GeneralUtils::IntToStr(N) + " " + - GeneralUtils::IntToStr(TOTAL) + "x" + "\""); - } - } - - // No target given! - } else { - THROW("No target given : " << target); - } - - std::cout << " -> " << targetstring << std::endl; - return targetstring; -} - -std::string GetEventAndSeedDefinition(int nevents, int ntestevents, int seed) { - std::string eventdef = ""; - eventdef += - " -p \"number_of_events=" + GeneralUtils::IntToStr(nevents) + "\""; - eventdef += " -p \"number_of_test_events=" + - GeneralUtils::IntToStr(ntestevents) + "\""; - eventdef += " -p \"random_seed=" + GeneralUtils::IntToStr(seed) + "\""; - - LOG(FIT) << "Event Definition: " << std::endl; - std::cout << " -> number_of_events : " << nevents << std::endl; - std::cout << " -> number_of_test_events : " << ntestevents << std::endl; - std::cout << " -> seed : " << seed << std::endl; - - return eventdef; -} - -//____________________________________________________________________________ -int main(int argc, char** argv) { - LOG(FIT) << "==== RUNNING nuwro_nuisance Event Generator =====" << std::endl; - GetCommandLineArgs(argc, argv); - - // Calculate the dynamic modes definition - std::string dynparamsdef = GetDynamicModes(gOptGeneratorList); - - // Get Flux and Target definition - std::string fluxparamsdef = GetFluxDefinition(gOptFluxDef, gOptOutputFile); - std::string targetparamsdef = GetTargetDefinition(gOptTargetDef); - - // Get Run Definition - std::string eventparamsdef = GetEventAndSeedDefinition( - gOptNumberEvents, gOptNumberTestEvents, gOptSeed); - - // Run NuWro Externally! - LOG(FIT) << "==== Actually running nuwro! ===" << std::endl; - std::string nuwrocommand = "nuwro"; - nuwrocommand += " -i " + gOptCrossSections; - nuwrocommand += " -o " + gOptOutputFile; - nuwrocommand += " " + fluxparamsdef; - nuwrocommand += " " + dynparamsdef; - nuwrocommand += " " + eventparamsdef; - nuwrocommand += " " + targetparamsdef; - std::cout << nuwrocommand << std::endl; - sleep(10); - system((nuwrocommand).c_str()); - - return 0; -} - -//____________________________________________________________________________ -void GetCommandLineArgs(int argc, char** argv) { - // Check for -h flag. - for (int i = 0; i < argc; i++) { - if (!std::string(argv[i]).compare("-h")) PrintSyntax(); - } - - // Format is nuwro -r run_number -n n events - std::vector args = GeneralUtils::LoadCharToVectStr(argc, argv); - ParserUtils::ParseArgument(args, "-n", gOptNumberEvents, false); - if (gOptNumberEvents == -1) { - THROW("No event count passed to nuwro_NUISANCE!"); - } - - // Flux/Energy Specs - ParserUtils::ParseArgument(args, "-e", gOptEnergyDef, false); - gOptEnergyRange = GeneralUtils::ParseToDbl(gOptEnergyDef, ","); - - ParserUtils::ParseArgument(args, "-f", gOptFluxDef, false); - if (gOptFluxDef.empty() and gOptEnergyRange.size() < 1) { - THROW("No flux or energy range given to nuwro_nuisance!"); - - } else if (gOptFluxDef.empty() and gOptEnergyRange.size() == 1) { - // Fixed energy, make sure -p is given - THROW("nuwro_NUISANCE cannot yet do fixed energy!"); - - } else if (gOptFluxDef.empty() and gOptEnergyRange.size() == 2) { - // Uniform energy range - THROW("nuwro_NUISANCE cannot yet do a uniform energy range!"); - - } else if (!gOptFluxDef.empty()) { - // Try to convert the flux definition if possible. - std::string convflux = BeamUtils::ConvertFluxIDs(gOptFluxDef); - if (!convflux.empty()) gOptFluxDef = convflux; - - } else { - THROW("Unknown flux energy range combination!"); - } - - ParserUtils::ParseArgument(args, "-t", gOptTargetDef, false); - if (gOptTargetDef.empty()) { - THROW("No Target passed to nuwro_nuisance! use the '-t' argument."); - } else { - std::string convtarget = TargetUtils::ConvertTargetIDs(gOptTargetDef); - if (!convtarget.empty()) gOptTargetDef = convtarget; - } - - ParserUtils::ParseArgument(args, "-r", gOptRunNumber, false); - ParserUtils::ParseArgument(args, "-o", gOptOutputFile, false); - if (gOptOutputFile.empty()) { - if (gOptRunNumber == -1) gOptRunNumber = 1; - LOG(FIT) << "No output file given! Saving file to : nuwrogen." - << gOptRunNumber << ".event.root" << std::endl; - gOptOutputFile = - "nuwrogen." + GeneralUtils::IntToStr(gOptRunNumber) + ".event.root"; - } else { - // if no run number given leave as is, else add run number. - if (gOptRunNumber != -1) { - gOptOutputFile += "." + GeneralUtils::IntToStr(gOptRunNumber) + ".root"; - } else { - gOptRunNumber = 0; - } - } - - ParserUtils::ParseArgument(args, "--cross-section", gOptCrossSections, false); - if (!gOptCrossSections.compare("Default")) { - LOG(FIT) << "No Parameters File passed. Using default NuWro one." - << std::endl; - char* const var = getenv("NUISANCE"); - if (!var) { - std::cout << "Cannot find top level directory! Set the NUISANCE " - "environmental variable" - << std::endl; - exit(-1); - } - std::string topnuisancedir = string(var); - gOptCrossSections = topnuisancedir + "/nuwro/Default_params.txt"; - } - - ParserUtils::ParseArgument(args, "--event-generator-list", gOptGeneratorList, - false); - ParserUtils::ParseArgument(args, "--seed", gOptSeed, false); - ParserUtils::ParseArgument(args, "--test-events", gOptNumberTestEvents, - false); - - // Final Check and output - if (args.size() > 0) { - PrintSyntax(); - ParserUtils::CheckBadArguments(args); - } - - LOG(FIT) << "Generating NuWro Events with the following properties:" - << std::endl - << " -> Energy : " << gOptEnergyDef << " (" - << gOptEnergyRange.size() << ")" << std::endl - << " -> NEvents : " << gOptNumberEvents << std::endl - << " -> NTestEvents : " << gOptNumberTestEvents << std::endl - << " -> Generators : " << gOptGeneratorList << std::endl - << " -> XSecPars : " << gOptCrossSections << std::endl - << " -> Seed : " << gOptSeed << std::endl - << " -> Target : " << gOptTargetDef << std::endl - << " -> Flux : " << gOptFluxDef << std::endl - << " -> Output : " << gOptOutputFile << std::endl - << " -> Run : " << gOptRunNumber << std::endl; - return; -} -//____________________________________________________________________________ -void PrintSyntax(void) { - LOG(FIT) << "\n\n" - << "Syntax:" - << "\n" - << "\n nuwro_nuisance [-h]" - << "\n -n nev" - << "\n -f flux_description" - << "\n -t target_description" - << "\n [ -r run_number ]" - << "\n [ -o output_file ]" - << "\n [ --cross-section /path/to/params.txt ]" - << "\n [ --event-generator-list mode_definition ]" - << "\n [ --seed seed_value ]" - << "\n [ --test-events ntest ]" - << "\n \n"; - - LOG(FIT) - << "\n\n Arguments:" - << "\n" - << "\n -n nev" - << "\n -> Total number of events to generate (e.g. 2500000)" - << "\n" - << "\n -f flux_description" - << "\n Definition of the flux to be read in from a ROOT file." - << "\n" - << "\n Multiple histograms can be read in from the same file using" - << "\n the format '-f file.root,hist1[pdg1],hist2[pdg2]" - << "\n e.g. \'-f " - "./flux/myfluxfile.root,numu_flux[14],numubar_flux[-14]\'" - << "\n" - << "\n When passing in multiple histograms, the nuwro_nuisance will" - << "\n generate a single file containing both sets of events with the" - << "\n correct ratios for each set." - << "\n" - << "\n A flux can also be given according to any of the flux IDs shown" - << "\n at the end of this help message." - << "\n e.g. \' -f MINERvA_fhc_numu\' " - << "\n" - << "\n -t target_description" - << "\n Definition of the target to be used. Multiple targets can be " - "given." - << "\n" - << "\n To pass a single target just provide the target PDG" - << "\n e.g. \' -t 1000060120 \'" - << "\n" - << "\n To pass a combined target provide a list containing the " - "following" - << "\n \' -t TotalNucleons,Target1[Weight1],Target2[Weight2],.. where " - "the " - << "\n TotalNucleons is the total nucleons combined, Target1 is the " - "PDG " - << "\n of the first target, and Weight1 is the fractional weight of " - "the " - << "\n first target." - << "\n e.g. \' -t 13,1000060120[0.9231],1000010010[0.0769] \'" - << "\n" - << "\n Target can also be specified by the target IDs given at the " - "end of" - << "\n this help message." - << "\n e.g. \' -t CH2 \'" - << "\n" - << "\n -r run_number" - << "\n run number ID that can be used when generating large samples " - "in small " - << "\n jobs. Must be an integer. When given nuwro_nuisance will " - "update the " - << "\n output file from 'output.root' to 'output.root.run_number.root'" - << "\n" - << "\n -o output_file" - << "\n Path to the output_file you want to save events to." - << "\n" - << "\n If this is not given but '-r' is then events will be saved to " - << "\n the file 'nuwrogen.run_number.events.root'" - << "\n" - << "\n If a run number is given alongside '-o' then events will be " - "saved " - << "\n to 'output.root.run_number.root'" - << "\n" - << "\n --cross-section /path/to/params.txt" - << "\n Path to the nuwro model definition. If this is not given, then " - "this " - << "\n will default to $NUISANCE/data/nuwro/Default_params.txt" - << "\n" - << "\n Look in $NUISANCE/data/nuwro/Default_params.txt for examples " - "when " - << "\n writing your own card files." - << "\n" - << "\n --event-generator-list mode_definition" - << "\n Name of modes to run. This sets the dynamic mode settings in " - "nuwro." - << "\n e.g. --event-generator-list Default+MEC" - << "\n" - << "\n Allowed mode_definitions are given at the end of this help " - "message." - << "\n" - << "\n --seed seed_value " - << "\n Value to use as the seed. If seed isn't given, time(NULL) is " - "used." - << "\n" - << "\n --test-events ntest " - << "\n Sets the number of test events for Nuwro to use. If this " - "option " - << "\n isn't given then we assume 5E6 test events by default." - << "\n\n"; - - std::cout << "-----------------" << std::endl; - TargetUtils::ListTargetIDs(); - std::cout << "-----------------" << std::endl; - BeamUtils::ListFluxIDs(); - std::cout << "-----------------" << std::endl; - LOG(FIT) << "Allowed Mode Definitions:" << std::endl - << " - Default : Default CC+NC modes, no MEC" << std::endl - << " - Default+MEC : Default CC+NC modes + 2p2h MEC " << std::endl - << " - DefaultFree : Default CC+NC modes, no Coherent or MEC " - << std::endl; - std::cout << "----------------" << std::endl; - - exit(0); -} -//____________________________________________________________________________ -#endif diff --git a/checksamples.sh b/checksamples.sh deleted file mode 100644 index edb23e5..0000000 --- a/checksamples.sh +++ /dev/null @@ -1,29 +0,0 @@ - - -for line in $(cat ./src/FCN/SampleList.cxx); #$(grep compare ../src/FCN/SampleList.cxx); -do - - if [[ "$line" == *"compare"* ]]; - then - parsed=${line/'!name.compare'/} - parsed=${parsed/'('/} - parsed=${parsed/')'/} - parsed=${parsed/'"'/} - parsed=${parsed/'("'/} - parsed=${parsed/'")'/} - echo $parsed - fi - - if [[ "$line" == *"find("* ]]; - then - parsed=${line/'!name.find'/} - parsed=${parsed/'('/} - parsed=${parsed/')'/} - parsed=${parsed/'"'/} - parsed=${parsed/'("'/} - parsed=${parsed/'")'/} - echo "MultIEventProcessor: $line" - fi - - -done; diff --git a/cmake/NEUTSetup.cmake b/cmake/NEUTSetup.cmake index 97c9034..de636f5 100644 --- a/cmake/NEUTSetup.cmake +++ b/cmake/NEUTSetup.cmake @@ -1,146 +1,212 @@ # 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 . ################################################################################ -if(NEUT_ROOT STREQUAL "") - cmessage(FATAL_ERROR "Variable NEUT_ROOT is not defined. Please export environment variable NEUT_ROOT or configure with -DNEUT_ROOT=/path/to/NEUT. This must be set to point to a prebuilt NEUT instance.") -endif() +find_program(neut-config NEUTCONFIGFOUND) -if(CERN STREQUAL "") - cmessage(FATAL_ERROR "Variable CERN is not defined. Please export environment variable CERN or configure with -DCERN=/path/to/CERNLIB. This must be set to point to a prebuilt CERNLIB instance.") +SET(HAVENEUTCONFIG FALSE) +# We are dealing with shiny NEUT +if(NOT NEUTCONFIGFOUND STREQUAL NEUTCONFIGFOUND-NOTFOUND) + SET(HAVENEUTCONFIG TRUE) endif() -if(CERN_LEVEL STREQUAL "") - cmessage(FATAL_ERROR "Variable CERN_LEVEL is not defined. Please export environment variable CERN_LEVEL or configure with -DCERN_LEVEL=XXXX (likely to be 2005).") -endif() +if(HAVENEUTCONFIG) + execute_process (COMMAND neut-config + --version OUTPUT_VARIABLE NEUT_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE) -if(${NEUT_VERSION} VERSION_LESS 5.4.0) - set(NEUT_LIB_DIR ${NEUT_ROOT}/lib/Linux_pc) -else() - set(NEUT_LIB_DIR ${NEUT_ROOT}/lib) -endif() + execute_process (COMMAND neut-config + --incdir OUTPUT_VARIABLE NEUT_INCLUDE_DIRS + OUTPUT_STRIP_TRAILING_WHITESPACE) -set(NEUT_CLASS ${NEUT_ROOT}/src/neutclass) + execute_process (COMMAND neut-config + --libdir OUTPUT_VARIABLE NEUT_LINK_DIRS + OUTPUT_STRIP_TRAILING_WHITESPACE) -LIST(APPEND NEUT_CXX_FLAGS -DUSE_NEUT -DNEUT_VERSION=${NEUT_VERSION}) + GETLIBDIRS(neut-config --cernflags CERN_LIB_DIR) + LIST(APPEND NEUT_LINK_DIRS ${CERN_LIB_DIR}) + GETLIBS(neut-config --cernflags CERN_LIBS) -if(${NEUT_VERSION} VERSION_GREATER 5.4.0) - LIST(APPEND NEUT_CXX_FLAGS -DNEUT_COMMON_QEAV) -endif() + if(USE_GENERATOR_REWEIGHT) + execute_process (COMMAND neut-config + --rwlibflags OUTPUT_VARIABLE NEUT_RWLIBS + OUTPUT_STRIP_TRAILING_WHITESPACE) + GETLIBS(neut-config --rwlibflags NEUT_RWLIBS) + LIST(APPEND NEUT_LIBS ${NEUT_RWLIBS}) + else() + GETLIBS(neut-config --libflags NEUT_GENLIBS) + GETLIBS(neut-config --iolibflags NEUT_LIBS) + LIST(APPEND NEUT_LIBS ${NEUT_IOLIBS}) + LIST(APPEND NEUT_LIBS ${NEUT_GENLIBS}) + endif() -LIST(APPEND NEUT_INCLUDE_DIRS - ${NEUT_ROOT}/include - ${NEUT_ROOT}/src/neutclass) + LIST(APPEND NEUT_LIBS ${CERN_LIBS};gfortran) -LIST(APPEND NEUT_LINK_DIRS - ${NEUT_LIB_DIR} - ${CERN}/${CERN_LEVEL}/lib) + PrefixList(NEUT_LINK_DIRS "-L" ${NEUT_LINK_DIRS}) -if(${NEUT_VERSION} VERSION_GREATER 5.4.1.999) - LIST(APPEND NEUT_LIBS - neutcore_5.4.2 - nuccorspl_5.4.2 #typo in NEUT, may hopefully disappear - nuceff_5.4.2 - partnuck_5.4.2 - skmcsvc_5.4.2 - tauola_5.4.2 - HT2p2h_5.4.0 - N1p1h_5.4.0) - LIST(APPEND NEUT_CXX_FLAGS -DNEUT_COMMON_QEAV) -elseif(${NEUT_VERSION} VERSION_GREATER 5.3.999) - LIST(APPEND NEUT_LIBS - neutcore_5.4.0 - nuccorspl_5.4.0 #typo in NEUT, may hopefully disappear - nuceff_5.4.0 - partnuck_5.4.0 - skmcsvc_5.4.0 - tauola_5.4.0 - HT2p2h_5.4.0 - N1p1h_5.4.0) -else() - LIST(APPEND NEUT_LIBS - neutcore - nuccorrspl - nuceff - partnuck - skmcsvc - tauola) -endif() + LIST(APPEND NEUT_CXX_FLAGS -DUSE_NEUT -DNEUT_VERSION=${NEUT_VERSION}) + + cmessage(STATUS "NEUT") + cmessage(STATUS " Version : ${NEUT_VERSION}") + cmessage(STATUS " Flags : ${NEUT_CXX_FLAGS}") + cmessage(STATUS " Includes : ${NEUT_INCLUDE_DIRS}") + cmessage(STATUS " Link Dirs : ${NEUT_LINK_DIRS}") + cmessage(STATUS " Libs : ${NEUT_LIBS}") + + +else() # Everything better be set up already + if(NEUT_ROOT STREQUAL "") + cmessage(FATAL_ERROR "Variable NEUT_ROOT is not defined. Please export environment variable NEUT_ROOT or configure with -DNEUT_ROOT=/path/to/NEUT. This must be set to point to a prebuilt NEUT instance.") + endif() + + if(CERN STREQUAL "") + cmessage(FATAL_ERROR "Variable CERN is not defined. Please export environment variable CERN or configure with -DCERN=/path/to/CERNLIB. This must be set to point to a prebuilt CERNLIB instance.") + endif() + + if(CERN_LEVEL STREQUAL "") + cmessage(FATAL_ERROR "Variable CERN_LEVEL is not defined. Please export environment variable CERN_LEVEL or configure with -DCERN_LEVEL=XXXX (likely to be 2005).") + endif() -LIST(APPEND NEUT_LIBS - jetset74 - pdflib804 - mathlib - packlib - pawlib - gfortran) + if(${NEUT_VERSION} VERSION_LESS 5.4.0) + set(NEUT_LIB_DIR ${NEUT_ROOT}/lib/Linux_pc) + else() + set(NEUT_LIB_DIR ${NEUT_ROOT}/lib) + endif() + + set(NEUT_CLASS ${NEUT_ROOT}/src/neutclass) -if(USE_GENERATOR_REWEIGHT) LIST(APPEND NEUT_INCLUDE_DIRS - ${NEUT_ROOT}/src/reweight) + ${NEUT_ROOT}/include + ${NEUT_ROOT}/src/neutclass) + LIST(APPEND NEUT_LINK_DIRS - ${NEUT_ROOT}/src/reweight) - LIST(APPEND NEUT_LIBS NReWeight) -endif() + ${NEUT_LIB_DIR} + ${CERN}/${CERN_LEVEL}/lib) + + + if(${NEUT_VERSION} VERSION_GREATER 5.4.1.999) + LIST(APPEND NEUT_LIBS + neutcore_5.4.2 + nuccorspl_5.4.2 #typo in NEUT, may hopefully disappear + nuceff_5.4.2 + partnuck_5.4.2 + skmcsvc_5.4.2 + tauola_5.4.2 + HT2p2h_5.4.0 + N1p1h_5.4.0) + LIST(APPEND NEUT_CXX_FLAGS -DNEUT_COMMON_QEAV) + elseif(${NEUT_VERSION} VERSION_EQUAL 5.4.1) + LIST(APPEND NEUT_LIBS + neutcore_5.4.1 + nuccorspl_5.4.1 #typo in NEUT, may hopefully disappear + nuceff_5.4.1 + partnuck_5.4.1 + skmcsvc_5.4.1 + tauola_5.4.1 + HT2p2h_5.4.1 + N1p1h_5.4.1) + elseif(${NEUT_VERSION} VERSION_GREATER 5.3.999) + LIST(APPEND NEUT_LIBS + neutcore_5.4.0 + nuccorspl_5.4.0 #typo in NEUT, may hopefully disappear + nuceff_5.4.0 + partnuck_5.4.0 + skmcsvc_5.4.0 + tauola_5.4.0 + HT2p2h_5.4.0 + N1p1h_5.4.0) + else() + LIST(APPEND NEUT_LIBS + neutcore + nuccorrspl + nuceff + partnuck + skmcsvc + tauola) + endif() + + LIST(APPEND NEUT_LIBS + jetset74 + pdflib804 + mathlib + packlib + pawlib + gfortran) + + if(USE_GENERATOR_REWEIGHT) + LIST(APPEND NEUT_INCLUDE_DIRS + ${NEUT_ROOT}/src/reweight) + LIST(APPEND NEUT_LINK_DIRS + ${NEUT_ROOT}/src/reweight) + LIST(REVERSE NEUT_LIBS) + LIST(APPEND NEUT_LIBS NReWeight) + LIST(REVERSE NEUT_LIBS) + endif() + + set(NEUT_ROOT_SHAREDOBJS) + + LIST(APPEND NEUT_ROOT_SHAREDOBJS + ${NEUT_CLASS}/neutctrl.so + ${NEUT_CLASS}/neutfsivert.so) -set(NEUT_ROOT_SHAREDOBJS) + # Check for new versions of NEUT with NUCLEON FSI + if(EXISTS "${NEUT_CLASS}/neutnucfsistep.so") + set(NEUT_NUCFSI 1) + LIST(APPEND NEUT_CXX_FLAGS -DNEUT_NUCFSI_ENABLED) -LIST(APPEND NEUT_ROOT_SHAREDOBJS - ${NEUT_CLASS}/neutctrl.so - ${NEUT_CLASS}/neutfsivert.so) + LIST(APPEND NEUT_ROOT_SHAREDOBJS + ${NEUT_CLASS}/neutnucfsistep.so + ${NEUT_CLASS}/neutnucfsivert.so + ) + endif() -# Check for new versions of NEUT with NUCLEON FSI -if(EXISTS "${NEUT_CLASS}/neutnucfsistep.so") - set(NEUT_NUCFSI 1) - LIST(APPEND NEUT_CXX_FLAGS -DNEUT_NUCFSI_ENABLED) + if(${NEUT_VERSION} VERSION_LESS 5.4.0) + LIST(APPEND NEUT_ROOT_SHAREDOBJS + ${NEUT_CLASS}/neutrootTreeSingleton.so) + endif() LIST(APPEND NEUT_ROOT_SHAREDOBJS - ${NEUT_CLASS}/neutnucfsistep.so - ${NEUT_CLASS}/neutnucfsivert.so + ${NEUT_CLASS}/neutvtx.so + ${NEUT_CLASS}/neutfsipart.so + ${NEUT_CLASS}/neutpart.so + ${NEUT_CLASS}/neutvect.so ) -endif() -if(${NEUT_VERSION} VERSION_LESS 5.4.0) - LIST(APPEND NEUT_ROOT_SHAREDOBJS - ${NEUT_CLASS}/neutrootTreeSingleton.so) + foreach(so ${NEUT_ROOT_SHAREDOBJS}) + get_filename_component(SONAME ${so} NAME_WE) + add_library(${SONAME} SHARED IMPORTED) + set_property(TARGET ${SONAME} PROPERTY IMPORTED_LOCATION ${so}) + LIST(APPEND NEUT_IMPORTED_TARGETS ${SONAME}) + endforeach() + + PrefixList(NEUT_LINK_DIRS "-L" ${NEUT_LINK_DIRS}) + + LIST(APPEND NEUT_CXX_FLAGS -DUSE_NEUT -DNEUT_VERSION=${NEUT_VERSION}) + + cmessage(STATUS "NEUT") + cmessage(STATUS " Version : ${NEUT_VERSION}") + cmessage(STATUS " Flags : ${NEUT_CXX_FLAGS}") + cmessage(STATUS " Includes : ${NEUT_INCLUDE_DIRS}") + cmessage(STATUS " Link Dirs : ${NEUT_LINK_DIRS}") + cmessage(STATUS " Libs : ${NEUT_LIBS}") + cmessage(STATUS " SOs : ${NEUT_IMPORTED_TARGETS}") + endif() -LIST(APPEND NEUT_ROOT_SHAREDOBJS - ${NEUT_CLASS}/neutvtx.so - ${NEUT_CLASS}/neutfsipart.so - ${NEUT_CLASS}/neutpart.so - ${NEUT_CLASS}/neutvect.so - ) - -foreach(so ${NEUT_ROOT_SHAREDOBJS}) - get_filename_component(SONAME ${so} NAME_WE) - add_library(${SONAME} SHARED IMPORTED) - set_property(TARGET ${SONAME} PROPERTY IMPORTED_LOCATION ${so}) - LIST(APPEND NEUT_IMPORTED_TARGETS ${SONAME}) -endforeach() - -PrefixList(NEUT_LINK_DIRS "-L" ${NEUT_LINK_DIRS}) - -cmessage(STATUS "NEUT") -cmessage(STATUS " Version : ${NEUT_VERSION}") -cmessage(STATUS " Flags : ${NEUT_CXX_FLAGS}") -cmessage(STATUS " Includes : ${NEUT_INCLUDE_DIRS}") -cmessage(STATUS " Link Dirs : ${NEUT_LINK_DIRS}") -cmessage(STATUS " Libs : ${NEUT_LIBS}") -cmessage(STATUS " SOs : ${NEUT_IMPORTED_TARGETS}") +SET(USE_NEUT TRUE CACHE BOOL "Whether to enable GENIE support. Requires external libraries. " FORCE) diff --git a/cmake_old/BinBlobSetup.header b/cmake_old/BinBlobSetup.header deleted file mode 100644 index d83827c..0000000 --- a/cmake_old/BinBlobSetup.header +++ /dev/null @@ -1,47 +0,0 @@ -### Adapted from https://unix.stackexchange.com/questions/4965/keep-duplicates-out-of-path-on-source -function add_to_PATH () { - for d; do - - d=$(cd -- "$d" && { pwd -P || pwd; }) 2>/dev/null # canonicalize symbolic links - if [ -z "$d" ]; then continue; fi # skip nonexistent directory - - if [ "$d" == "/usr/bin" ] || [ "$d" == "/usr/bin64" ] || [ "$d" == "/usr/local/bin" ] || [ "$d" == "/usr/local/bin64" ]; then - case ":$PATH:" in - *":$d:"*) :;; - *) export PATH=$PATH:$d;; - esac - else - case ":$PATH:" in - *":$d:"*) :;; - *) export PATH=$d:$PATH;; - esac - fi - done -} - -function add_to_LD_LIBRARY_PATH () { - for d; do - - d=$(cd -- "$d" && { pwd -P || pwd; }) 2>/dev/null # canonicalize symbolic links - if [ -z "$d" ]; then continue; fi # skip nonexistent directory - - if [ "$d" == "/usr/lib" ] || [ "$d" == "/usr/lib64" ] || [ "$d" == "/usr/local/lib" ] || [ "$d" == "/usr/local/lib64" ]; then - case ":$LD_LIBRARY_PATH:" in - *":$d:"*) :;; - *) export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$d;; - esac - else - case ":$LD_LIBRARY_PATH:" in - *":$d:"*) :;; - *) export LD_LIBRARY_PATH=$d:$LD_LIBRARY_PATH;; - esac - fi - done -} - -if ! echo "${BASH_SOURCE}" | grep "/" --silent; then - SETUP_DIR=$(readlink -f $PWD) -else - SETUP_DIR=$(readlink -f ${BASH_SOURCE%/*}) -fi -export NUISANCE=${SETUP_DIR} diff --git a/cmake_old/BuildDynamicSample.in b/cmake_old/BuildDynamicSample.in deleted file mode 100644 index d11283d..0000000 --- a/cmake_old/BuildDynamicSample.in +++ /dev/null @@ -1,87 +0,0 @@ -# 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 . -################################################################################ - -#!/bin/bash - -if [ ! "${1}" ] || [ ! -e ${1} ] || [ ! "${2}" ]; then - echo "[USAGE]: ${0} input.cxx outputLibName.so [classname]" - exit 1 -fi - -if [ ! "${3}" ]; then - CN=$(grep "class .*" $1 | sed "s/^class \([0-9a-zA-Z]\+\).*$/\1/g") -else - CN=${3} -fi - -if [ ! "${CN}" ]; then - echo "[ERROR]: Couldn't find class name -- Expected to find a line like: \"class XXXX : public Measurement1D\" in \"$1\". You can also forcibly specify your classes name by passing a third argument to this script." - exit 1 -fi - -if [ ! -e compile.tmp ]; then - mkdir compile.tmp -fi - -cat $1 > compile.tmp/$1 - -echo -e "static char const * SampleNames[] = {\"${CN}\"};\n"\ -"static int const NSamples = 1;\n"\ -"\n"\ -"extern \"C\" {\n"\ -"int DSF_NSamples() { return NSamples; }\n"\ -"char const* DSF_GetSampleName(int i) {\n"\ -" if (i < NSamples) {\n"\ -" return SampleNames[i];\n"\ -" }\n"\ -" return 0;\n"\ -"}\n"\ -"MeasurementBase* DSF_GetSample(int i, void* samplekey) {\n"\ -" nuiskey* sk = reinterpret_cast(samplekey);\n"\ -" if (!sk) {\n"\ -" return 0;\n"\ -" }\n"\ -"\n"\ -" if (sk->GetS(\"name\") != DSF_GetSampleName(i)) {\n"\ -" std::cout\n"\ -" << \"[ERROR]: When instantiating dynamic sample. Samplekey named: \"\n"\ -" << sk->GetS(\"name\") << \", but requested sample named: \"\n"\ -" << DSF_GetSampleName(i)\n"\ -" << \". It is possible that the nuiskey object is lost in translation. \"\n"\ -" \"Was NUISANCE and this dynamic sample manifest built with the same \"\n"\ -" \"environment and compiler?\"\n"\ -" << std::endl;\n"\ -" }\n"\ -"\n"\ -" if (i == 0) {\n"\ -" return new ${CN}(*sk);\n"\ -" }\n"\ -" return 0;\n"\ -"}\n"\ -"void DSF_DestroySample(MeasurementBase* mb) { delete mb; }\n"\ -"}" >> compile.tmp/$1 - -echo "g++ ${DYNSAMPLE_EXTRA_BUILD_FLAGS} compile.tmp/$1 -shared -o $2 -fPIC @CMAKE_CXX_FLAGS@ -I. -I@ALL_INCLUDES_STR@ -L@CMAKE_INSTALL_PREFIX@/lib -l@ALL_MODULETARGETS_STR@ @CMAKE_LINK_FLAGS@ @NUISANCE_DEPEND_LIBS@" - -if ! g++ ${DYNSAMPLE_EXTRA_BUILD_FLAGS} compile.tmp/$1 -shared -o $2 -fPIC @CMAKE_CXX_FLAGS@ -I. -I@ALL_INCLUDES_STR@ -L@CMAKE_INSTALL_PREFIX@/lib -l@ALL_MODULETARGETS_STR@ @CMAKE_LINK_FLAGS@ @NUISANCE_DEPEND_LIBS@; then - echo "[ERROR]: Failed to compile $1. Generated code can be found in ./compile.tmp/$1" -else - rm -r compile.tmp - echo "Successfully build: $2." -fi diff --git a/cmake_old/BuildDynamicSmearcepter.in b/cmake_old/BuildDynamicSmearcepter.in deleted file mode 100644 index feb960e..0000000 --- a/cmake_old/BuildDynamicSmearcepter.in +++ /dev/null @@ -1,89 +0,0 @@ -# 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 . -################################################################################ - -#!/bin/bash - -if [ ! "${1}" ] || [ ! -e ${1} ] || [ ! "${2}" ]; then - echo "[USAGE]: ${0} input.cxx outputLibName.so [classname]" - exit 1 -fi - -if [ ! "${3}" ]; then - CN=$(grep "class .*" $1 | sed "s/^class \([0-9a-zA-Z]\+\).*$/\1/g") -else - CN=${3} -fi - -if [ ! "${CN}" ]; then - echo "[ERROR]: Couldn't find class name -- Expected to find a line like: \"class XXXX : public ISmearcepter\" in \"$1\". You can also forcibly specify your classes name by passing a third argument to this script." - exit 1 -fi - -if [ ! -e compile.tmp ]; then - mkdir compile.tmp -fi - -cat $1 > compile.tmp/$1 - -echo -e "static char const * SmearceptorNames[] = {\"${CN}\"};\n"\ -"static int const NSmearceptors = 1;\n"\ -"\n"\ -"extern \"C\" {\n"\ -"int DSF_NSmearceptors() { return NSmearceptors; }\n"\ -"char const* DSF_GetSmearceptorName(int i) {\n"\ -" if (i < NSmearceptors) {\n"\ -" return SmearceptorNames[i];\n"\ -" }\n"\ -" return 0;\n"\ -"}\n"\ -"ISmearcepter* DSF_GetSmearceptor(int i, void* smearceptorkey) {\n"\ -" nuiskey* sk = reinterpret_cast(smearceptorkey);\n"\ -" if (!sk) {\n"\ -" return 0;\n"\ -" }\n"\ -"\n"\ -" if (sk->GetElementName() != DSF_GetSmearceptorName(i)) {\n"\ -" std::cout\n"\ -" << \"[ERROR]: When instantiating dynamic smearceptor. Smearceptorkey named: \"\n"\ -" << sk->GetElementName() << \", but requested smearceptor named: \"\n"\ -" << DSF_GetSmearceptorName(i)\n"\ -" << \". It is possible that the nuiskey object is lost in translation. \"\n"\ -" \"Was NUISANCE and this dynamic smearceptor manifest built with the same \"\n"\ -" \"environment and compiler?\"\n"\ -" << std::endl;\n"\ -" }\n"\ -"\n"\ -" if (i == 0) {\n"\ -" ISmearcepter* sm = new ${CN}();\n"\ -" sm->Setup(*sk);\n"\ -" return sm;\n"\ -" }\n"\ -" return 0;\n"\ -"}\n"\ -"void DSF_DestroySmearceptor(ISmearcepter* mb) { delete mb; }\n"\ -"}" >> compile.tmp/$1 - -echo "g++ ${DYNSAMPLE_EXTRA_BUILD_FLAGS} compile.tmp/$1 -shared -o $2 -fPIC @CMAKE_CXX_FLAGS@ -I. -I@ALL_INCLUDES_STR@ -L@CMAKE_INSTALL_PREFIX@/lib -l@ALL_MODULETARGETS_STR@ @CMAKE_LINK_FLAGS@ @NUISANCE_DEPEND_LIBS@" - -if ! g++ ${DYNSAMPLE_EXTRA_BUILD_FLAGS} compile.tmp/$1 -shared -o $2 -fPIC @CMAKE_CXX_FLAGS@ -I. -I@ALL_INCLUDES_STR@ -L@CMAKE_INSTALL_PREFIX@/lib -l@ALL_MODULETARGETS_STR@ @CMAKE_LINK_FLAGS@ @NUISANCE_DEPEND_LIBS@; then - echo "[ERROR]: Failed to compile $1. Generated code can be found in ./compile.tmp/$1" -else - rm -r compile.tmp - echo "Successfully build: $2." -fi diff --git a/cmake_old/DUNERwtSetup.cmake b/cmake_old/DUNERwtSetup.cmake deleted file mode 100644 index 1f72c03..0000000 --- a/cmake_old/DUNERwtSetup.cmake +++ /dev/null @@ -1,37 +0,0 @@ -# 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 . -################################################################################ - -if(NUSYST_ROOT STREQUAL "") - cmessage(FATAL_ERROR "Variable NUSYST_ROOT is not defined. Either configure with -DNUSYST_ROOT or \"\$ export NUSYST_ROOT=/path/to/nusystematics\". This must be set to point to a prebuilt NuSystematics instance.") -endif() - -if(SYSTTOOLS_ROOT STREQUAL "") - cmessage(FATAL_ERROR "Variable SYSTTOOLS_ROOT is not defined. Either configure with -DSYSTTOOLS_ROOT or \"\$ export SYSTTOOLS_ROOT=/path/to/systematicstools\". This must be set to point to a prebuilt ART Systematics Tools instance.") -endif() - -LIST(APPEND EXTRA_CXX_FLAGS -D__DUNERWT_ENABLED__ -DNO_ART -std=c++1y -Wno-deprecated-declarations -Wno-deprecated) - -LIST(APPEND RWENGINE_INCLUDE_DIRECTORIES ${NUSYST_ROOT}/include ${SYSTTOOLS_ROOT}/include) - -LIST(APPEND EXTRA_LINK_DIRS ${NUSYST_ROOT}/lib ${SYSTTOOLS_ROOT}/lib) -LIST(APPEND EXTRA_LIBS nusystematics_systproviders - systematicstools_interface - systematicstools_interpreters - systematicstools_systproviders - systematicstools_utility) diff --git a/cmake_old/GENIESetup.cmake b/cmake_old/GENIESetup.cmake deleted file mode 100644 index 47e2d3f..0000000 --- a/cmake_old/GENIESetup.cmake +++ /dev/null @@ -1,169 +0,0 @@ -# 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 . -################################################################################ - -# TODO -# check system for libxml2 -# check whether we need the includes -# check if we can use a subset of the GENIE libraries - -################################################################################ -# Check Dependencies -################################################################################ - -################################# GENIE ###################################### -if(GENIE STREQUAL "") - cmessage(FATAL_ERROR "Variable GENIE is not defined. " - "The location of a pre-built GENIE install must be defined either as" - " $ cmake -DGENIE=/path/to/GENIE or as and environment vairable" - " $ export GENIE=/path/to/GENIE") -endif() - -if (BUILD_GEVGEN) - cmessage(STATUS "Building custom gevgen") - LIST(APPEND EXTRA_CXX_FLAGS -D__GEVGEN_ENABLED__) -endif() - -# Extract GENIE VERSION -if (GENIE_VERSION STREQUAL "AUTO") - execute_process (COMMAND ${CMAKE_SOURCE_DIR}/cmake/getgenieversion.sh ${GENIE} - OUTPUT_VARIABLE GENIE_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) -endif() - -execute_process (COMMAND genie-config - --libs OUTPUT_VARIABLE GENIE_LD_FLAGS_STR OUTPUT_STRIP_TRAILING_WHITESPACE) -execute_process (COMMAND genie-config - --topsrcdir OUTPUT_VARIABLE GENIE_INCLUDES_DIR OUTPUT_STRIP_TRAILING_WHITESPACE) - -string(REGEX MATCH "-L\([^ ]+\) \(.*\)$" PARSE_GENIE_LIBS_MATCH ${GENIE_LD_FLAGS_STR}) - -cmessage(DEBUG "genie-config --libs: ${GENIE_LD_FLAGS_STR}") - -if(NOT PARSE_GENIE_LIBS_MATCH) - cmessage(FATAL_ERROR "Expected to be able to parse the result of genie-config --libs to a lib directory and a list of libraries to include, but got: \"${GENIE_LD_FLAGS_STR}\"") -endif() - -set(GENIE_LIB_DIR ${CMAKE_MATCH_1}) -set(GENIE_LIBS_RAW ${CMAKE_MATCH_2}) -string(REPLACE "-l" "" GENIE_LIBS_STRIPED "${GENIE_LIBS_RAW}") - -cmessage(STATUS "GENIE version : ${GENIE_VERSION}") -cmessage(STATUS "GENIE libdir : ${GENIE_LIB_DIR}") -cmessage(STATUS "GENIE libs : ${GENIE_LIBS_STRIPED}") - -string(REGEX MATCH "ReinSeghal" WASMATCHED ${GENIE_LIBS_STRIPED}) -if(WASMATCHED AND GENIE_VERSION STREQUAL "210") - set(GENIE_SEHGAL ${GENIE_LIBS_STRIPED}) - STRING(REPLACE "ReinSeghal" "ReinSehgal" GENIE_LIBS_STRIPED ${GENIE_SEHGAL}) - cmessage(DEBUG "Fixed inconsistency in library naming: ${GENIE_LIBS_STRIPED}") -endif() - -string(REGEX MATCH "ReWeight" WASMATCHED ${GENIE_LIBS_STRIPED}) -if(NOT WASMATCHED) - set(GENIE_LIBS_STRIPED "GReWeight ${GENIE_LIBS_STRIPED}") - cmessage(DEBUG "Force added ReWeight library: ${GENIE_LIBS_STRIPED}") -endif() - -string(REPLACE " " ";" GENIE_LIBS_LIST ${GENIE_LIBS_STRIPED}) -cmessage(DEBUG "genie-config --libs -- MATCH1: ${CMAKE_MATCH_1}") -cmessage(DEBUG "genie-config --libs -- MATCH2: ${CMAKE_MATCH_2}") -cmessage(DEBUG "genie-config --libs -- libs stripped: ${GENIE_LIBS_STRIPED}") -cmessage(DEBUG "genie-config --libs -- libs list: ${GENIE_LIBS_LIST}") - -################################ LHAPDF ###################################### -if(LHAPDF_LIB STREQUAL "") - cmessage(FATAL_ERROR "Variable LHAPDF_LIB is not defined. The location of a pre-built lhapdf install must be defined either as $ cmake -DLHAPDF_LIB=/path/to/LHAPDF_libraries or as and environment vairable $ export LHAPDF_LIB=/path/to/LHAPDF_libraries") -endif() - -if(LHAPDF_INC STREQUAL "") - cmessage(FATAL_ERROR "Variable LHAPDF_INC is not defined. The location of a pre-built lhapdf install must be defined either as $ cmake -DLHAPDF_INC=/path/to/LHAPDF_includes or as and environment vairable $ export LHAPDF_INC=/path/to/LHAPDF_includes") -endif() - -if(LHAPATH STREQUAL "") - cmessage(FATAL_ERROR "Variable LHAPATH is not defined. The location of a the LHAPATH directory must be defined either as $ cmake -DLHAPATH=/path/to/LHAPATH or as and environment variable $ export LHAPATH=/path/to/LHAPATH") -endif() - -################################ LIBXML ###################################### -if(LIBXML2_LIB STREQUAL "") - cmessage(FATAL_ERROR "Variable LIBXML2_LIB is not defined. The location of a pre-built libxml2 install must be defined either as $ cmake -DLIBXML2_LIB=/path/to/LIBXML2_libraries or as and environment vairable $ export LIBXML2_LIB=/path/to/LIBXML2_libraries") -endif() - -if(LIBXML2_INC STREQUAL "") - cmessage(FATAL_ERROR "Variable LIBXML2_INC is not defined. The location of a pre-built libxml2 install must be defined either as $ cmake -DLIBXML2_INC=/path/to/LIBXML2_includes or as and environment vairable $ export LIBXML2_INC=/path/to/LIBXML2_includes") -endif() -############################### log4cpp ###################################### -if(LOG4CPP_LIB STREQUAL "") - find_program(LOG4CPPCFG log4cpp-config) - if(NOT LOG4CPPCFG STREQUAL "LOG4CPPCFG-NOTFOUND") - execute_process (COMMAND ${LOG4CPPCFG} - --pkglibdir OUTPUT_VARIABLE LOG4CPP_LIB OUTPUT_STRIP_TRAILING_WHITESPACE) - else() - message(FATAL_ERROR "Variable LOG4CPP_LIB is not defined. The location of a pre-built log4cpp install must be defined either as $ cmake -DLOG4CPP_LIB=/path/to/LOG4CPP_libraries or as and environment vairable $ export LOG4CPP_LIB=/path/to/LOG4CPP_libraries") - endif() -endif() - -if(LOG4CPP_INC STREQUAL "") - find_program(LOG4CPPCFG log4cpp-config) - if(NOT LOG4CPPCFG STREQUAL "LOG4CPPCFG-NOTFOUND") - execute_process (COMMAND ${LOG4CPPCFG} - --pkgincludedir OUTPUT_VARIABLE LOG4CPP_INC OUTPUT_STRIP_TRAILING_WHITESPACE) - else() - message(FATAL_ERROR "Variable LOG4CPP_INC is not defined. The location of a pre-built log4cpp install must be defined either as $ cmake -DGENIE_LOG4CPP_INC=/path/to/LOG4CPP_includes or as and environment vairable $ export LOG4CPP_INC=/path/to/LOG4CPP_includes") - endif() -endif() -################################################################################ - -LIST(APPEND EXTRA_CXX_FLAGS -D__GENIE_ENABLED__ -D__GENIE_VERSION__=${GENIE_VERSION}) - -LIST(APPEND RWENGINE_INCLUDE_DIRECTORIES - ${GENIE_INCLUDES_DIR} - ${GENIE_INCLUDES_DIR}/GHEP - ${GENIE_INCLUDES_DIR}/Ntuple - ${GENIE_INCLUDES_DIR}/ReWeight - ${GENIE_INCLUDES_DIR}/Apps - ${GENIE_INCLUDES_DIR}/FluxDrivers - ${GENIE_INCLUDES_DIR}/EVGDrivers - ${LHAPDF_INC} - ${LIBXML2_INC} - ${LOG4CPP_INC}) - -SAYVARS() - -LIST(APPEND EXTRA_LINK_DIRS - ${GENIE_LIB_DIR} - ${LHAPDF_LIB} - ${LIBXML2_LIB} - ${LOG4CPP_LIB}) - -#-Wl,--no-as-needed used to ensuring dynamic linking of GENIE algorithm libraries so that TClass::GetClass has access to the dictionaries at runtime -LIST(APPEND EXTRA_LIBS -Wl,--no-as-needed -Wl,--start-group) -LIST(APPEND EXTRA_LIBS ${GENIE_LIBS_LIST}) -LIST(APPEND EXTRA_LIBS -Wl,--end-group -Wl,-as-needed) - -LIST(APPEND EXTRA_LIBS LHAPDF xml2 log4cpp) - -if(USE_PYTHIA8) - set(NEED_PYTHIA8 TRUE) - set(NEED_ROOTPYTHIA8 TRUE) -else() - set(NEED_PYTHIA6 TRUE) - set(NEED_ROOTPYTHIA6 TRUE) -endif() -set(NEED_ROOTEVEGEN TRUE) - -SET(USE_GENIE TRUE CACHE BOOL "Whether to enable GENIE (reweight) support. Requires external libraries. " FORCE) diff --git a/cmake_old/GiBUUSetup.cmake b/cmake_old/GiBUUSetup.cmake deleted file mode 100644 index 6bbe0b0..0000000 --- a/cmake_old/GiBUUSetup.cmake +++ /dev/null @@ -1,45 +0,0 @@ -# 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 . -################################################################################ - -if(USE_GiBUU) - LIST(APPEND EXTRA_CXX_FLAGS -D__GiBUU_ENABLED__) - - if(BUILD_GiBUU) - if (NO_EXTERNAL_UPDATE) - set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - PROPERTY EP_UPDATE_DISCONNECTED 1) - cmessage(STATUS "Will not attempt to update third party GiBUU tools for each build.") - endif() - - ExternalProject_Add(GiBUUTools - PREFIX "${PROJECT_BINARY_DIR}/GiBUUTools" - GIT_REPOSITORY https://github.com/luketpickering/GiBUU-t2k-dev.git - CMAKE_ARGS - -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DUSE_GiBUU=1 - -DFORCECPP03=1 - -DNO_EXTERNAL_UPDATE=${NO_EXTERNAL_UPDATE}) - - cmessage(STATUS "Building GiBUU and GiBUUTools") - SET(BUILD_GiBUU TRUE CACHE BOOL "Whether to build supporting GiBUU event tools along with a patched version of GiBUU. " FORCE) - endif() - - SET(USE_GiBUU TRUE CACHE BOOL "Whether to enable GiBUU event support. " FORCE) -endif() diff --git a/cmake_old/HepMC.cmake b/cmake_old/HepMC.cmake deleted file mode 100644 index 2ade454..0000000 --- a/cmake_old/HepMC.cmake +++ /dev/null @@ -1,61 +0,0 @@ -# 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 . -################################################################################ - -if(USE_HEPMC) - - LIST(APPEND EXTRA_CXX_FLAGS -D__HEPMC_ENABLED__) - - if(HEPMC STREQUAL "") - if (NO_EXTERNAL_UPDATE) - set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - PROPERTY EP_UPDATE_DISCONNECTED 1) - cmessage(STATUS "Will not attempt to update third party HepMC tools for each build.") - endif() - - ExternalProject_Add(HepMC - PREFIX "${PROJECT_BINARY_DIR}/HepMC" - GIT_REPOSITORY https://gitlab.cern.ch/hepmc/HepMC.git - GIT_TAG HEPMC_02_06_09 - CMAKE_ARGS - -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} - -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - -Dmomentum=${HEPMC_MOMUNIT} - -Dlength=${HEPMC_LENUNIT}) - - - #Have to re-include the doc string here as the whole cache entry will be - #overwritten when this happens - set(HEPMC "${CMAKE_INSTALL_PREFIX}" CACHE PATH - "Path to HEPMC source tree root directory. Overrides environment variable \$HEPMC <>" - FORCE) - - set(HEPMC_USED_EP TRUE CACHE INTERNAL "Whether the we built HepMC or not. " - FORCE) - - cmessage(STATUS "Building HepMC") - endif() - - LIST(APPEND EXTRA_CXX_FLAGS - -I${HEPMC}/include/) - - LIST(APPEND EXTRA_LINK_DIRS ${HEPMC}/lib/) - LIST(APPEND EXTRA_LIBS HepMC HepMCfio) -endif() diff --git a/cmake_old/MINERvASetup.cmake b/cmake_old/MINERvASetup.cmake deleted file mode 100644 index 0ccfcd9..0000000 --- a/cmake_old/MINERvASetup.cmake +++ /dev/null @@ -1,19 +0,0 @@ -# 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 . -################################################################################ -LIST(APPEND EXTRA_CXX_FLAGS -D__MINERVA_RW_ENABLED__) diff --git a/cmake_old/MakeBinaryBlob.in b/cmake_old/MakeBinaryBlob.in deleted file mode 100644 index 502cbdf..0000000 --- a/cmake_old/MakeBinaryBlob.in +++ /dev/null @@ -1,173 +0,0 @@ -# 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 . -################################################################################ - -#!/bin/sh - -if [ ! ${NUISANCE} ]; then - echo "[ERROR]; NUISANCE envrionment variable is not defined, please source NUSIANCE before trying to make a binary blob." - exit 1 -fi - -mkdir BinBlob -cd BinBlob - -echo "#!/bin/sh" > setup.sh - -cat @PROJECT_SOURCE_DIR@/cmake/BinBlobSetup.header >> setup.sh - -mkdir deps exes - -mkdir root - -mkdir -p root/lib/root -echo "[INFO]: Copying ROOT libraries from @CMAKE_ROOTSYS@/lib/root" -cp @CMAKE_ROOTSYS@/lib/root/*.so* root/lib/root/ - -mkdir root/bin -echo "[INFO]: Copying ROOT binary from @CMAKE_ROOTSYS@/bin" -cp @CMAKE_ROOTSYS@/bin/* root/bin - -mkdir -p root/share/man/man1 -echo "[INFO]: Copying ROOT man pages from @CMAKE_ROOTSYS@/share/man/man1" -cp -r @CMAKE_ROOTSYS@/share/man/man1 root/share/man/man1 - -cat root/bin/thisroot.sh | sed 's:@CMAKE_ROOTSYS@:__INST_ROOT__:g' > root/bin/thisroot.sh_tmp -rm root/bin/thisroot.sh - -echo "cat \$NUISANCE/root/bin/thisroot.sh_tmp | sed \"s:__INST_ROOT__:\$NUISANCE/root:g\" > \$NUISANCE/root/bin/thisroot.sh" >> setup.sh - -cat root/bin/thisroot.csh | sed 's:@CMAKE_ROOTSYS@:__INST_ROOT__:g' > root/bin/thisroot.csh_tmp -rm root/bin/thisroot.csh - -echo "cat \$NUISANCE/root/bin/thisroot.csh_tmp | sed \"s:__INST_ROOT__:\$NUISANCE/root:g\" > \$NUISANCE/root/bin/thisroot.csh" >> setup.sh - -echo "source \$NUISANCE/root/bin/thisroot.sh" >> setup.sh - -if [ "@USE_T2K@" != "FALSE" ]; then - mkdir deps/t2k - - echo "[INFO]: Copying T2K libraries from @T2KREWEIGHT@" - cp @T2KREWEIGHT@/lib/*.so deps/t2k/ - - echo "add_to_LD_LIBRARY_PATH \$NUISANCE/deps/t2k" >> setup.sh -fi - - -if [ "@USE_NIWG@" != "FALSE" ]; then - mkdir deps/niwg - echo "[INFO]: Copying NIWG libraries from @NIWG@" - cp @NIWG@/lib/*.so deps/niwg/ - - echo "add_to_LD_LIBRARY_PATH \$NUISANCE/deps/niwg" >> setup.sh -fi - -if [ "@USE_NEUT@" != "FALSE" ]; then - mkdir deps/neut - mkdir exes/neut - - echo "[INFO]: Copying NEUT libraries from @NEUT_ROOT@" - cp @NEUT_ROOT@/src/reweight/*.so* deps/neut - cp @NEUT_ROOT@/src/neutclass/*.so* deps/neut - - cp @NEUT_ROOT@/src/neutsmpl/neutroot2 exes/neut - - echo "add_to_LD_LIBRARY_PATH \$NUISANCE/deps/neut" >> setup.sh -fi - -if [ "@USE_NUWRO@" != "FALSE" ]; then - if [ "@NUWRO_BUILT_FROM_FILE@" == "FALSE" ]; then - mkdir deps/nuwro - mkdir exes/nuwro - mkdir data - mkdir data/nuwro - - echo "[INFO]: Copying NuWro libraries from @NUWRO@" - - cp @NUWRO@/lib/*.so deps/nuwro - - cp @NUWRO@/bin/nuwro exes/nuwro/ - cp -r @NUWRO@/data data/nuwro - - echo "add_to_LD_LIBRARY_PATH \$NUISANCE/deps/nuwro" >> setup.sh - echo "export NUWRO=\$NUISANCE/data/nuwro" >> setup.sh - - else - echo "[INFO]: NuWro support included from input event file." - fi -fi - -if [ "@NEED_PYTHIA6@" != "FALSE" ]; then - mkdir deps/pythia - echo "[INFO]: Copying PYTHIA libraries from @PYTHIA6@" - cp @PYTHIA6@/*.so deps/pythia/ - - echo "add_to_LD_LIBRARY_PATH \$NUISANCE/deps/pythia" >> setup.sh -fi - -if [ "@USE_GENIE@" != "FALSE" ]; then - mkdir -p deps/genie/{,libxml2,lhapdf,log4cpp} - mkdir exes/genie - - echo "[INFO]: Copying LHAPDF libraries from @LHAPDF_LIB@" - cp @LHAPDF_LIB@/libLHAPDF.so* deps/genie/lhapdf - echo "add_to_LD_LIBRARY_PATH \$NUISANCE/deps/genie/lhapdf" >> setup.sh - - echo "[INFO]: Copying LIBXML2 libraries from @LIBXML2_LIB@" - cp @LIBXML2_LIB@/libxml2.so* deps/genie/libxml2 - echo "add_to_LD_LIBRARY_PATH \$NUISANCE/deps/genie/libxml2" >> setup.sh - - echo "[INFO]: Copying LOG4CPP libraries from @LOG4CPP_LIB@" - cp @LOG4CPP_LIB@/liblog4cpp.so* deps/genie/log4cpp - echo "add_to_LD_LIBRARY_PATH \$NUISANCE/deps/genie/log4cpp" >> setup.sh - - - if [ "@LHAPATH@" ]; then - mkdir -p data/genie/lhapdf - cp @LHAPATH@/*.LHgrid data/genie/lhapdf/ - echo "export LHAPATH=\"\$NUISANCE/data/genie/lhapdf\"" >> setup.sh - fi - - echo "[INFO]: Copying GENIE libraries from @GENIE@/lib" - cp @GENIE@/lib/*.so* deps/genie/ - echo "add_to_LD_LIBRARY_PATH \$NUISANCE/deps/genie" >> setup.sh - - echo "[INFO]: Copying GENIE binaries from @GENIE@/bin" - cp @GENIE@/bin/* exes/genie/ - echo "add_to_PATH \$NUISANCE/exes/genie" >> setup.sh - -fi - -mkdir exes/nuisance -cp @CMAKE_INSTALL_PREFIX@/bin/* exes/nuisance/ -echo "add_to_PATH \$NUISANCE/exes/nuisance" >> setup.sh - -rm exes/nuisance/BuildDynamic* - -if [ @CMAKE_BUILD_TYPE@ == "RELEASE" ]; then - mkdir deps/nuisance - echo "add_to_LD_LIBRARY_PATH \$NUISANCE/deps/nuisance" >> setup.sh - cp @CMAKE_INSTALL_PREFIX@/lib/*.so deps/nuisance/ -fi - -if [ -e data ]; then - tar -zcvf nuisblob.tar.gz setup.sh exes/* deps/* root/* data/* -else - tar -zcvf nuisblob.tar.gz setup.sh exes/* deps/* root/* -fi -cd ../ diff --git a/cmake_old/NEUTSetup.cmake b/cmake_old/NEUTSetup.cmake deleted file mode 100644 index c4665af..0000000 --- a/cmake_old/NEUTSetup.cmake +++ /dev/null @@ -1,114 +0,0 @@ -# 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 . -################################################################################ - -if(NEUT_ROOT STREQUAL "") - cmessage(FATAL_ERROR "Variable NEUT_ROOT is not defined. Please export environment variable NEUT_ROOT or configure with -DNEUT_ROOT=/path/to/NEUT. This must be set to point to a prebuilt NEUT instance.") -endif() - -if(CERN STREQUAL "") - cmessage(FATAL_ERROR "Variable CERN is not defined. Please export environment variable CERN or configure with -DCERN=/path/to/CERNLIB. This must be set to point to a prebuilt CERNLIB instance.") -endif() - -if(CERN_LEVEL STREQUAL "") - cmessage(FATAL_ERROR "Variable CERN_LEVEL is not defined. Please export environment variable CERN_LEVEL or configure with -DCERN_LEVEL=XXXX (likely to be 2005).") -endif() - -if(NOT IS_NEUT_54) - set(NEUT_LIB_DIR ${NEUT_ROOT}/lib/Linux_pc) -else() - set(NEUT_LIB_DIR ${NEUT_ROOT}/lib) -endif() -set(NEUT_CLASS ${NEUT_ROOT}/src/neutclass) - -LIST(APPEND EXTRA_CXX_FLAGS -D__NEUT_ENABLED__ ) - -LIST(APPEND RWENGINE_INCLUDE_DIRECTORIES - ${NEUT_ROOT}/include - ${NEUT_ROOT}/src/neutclass - ${NEUT_ROOT}/src/reweight) - -LIST(APPEND EXTRA_LINK_DIRS - ${NEUT_LIB_DIR} - ${CERN}/${CERN_LEVEL}/lib - ${NEUT_ROOT}/src/reweight) - -if(NOT IS_NEUT_54) - LIST(APPEND EXTRA_LIBS - NReWeight - neutcore - nuccorrspl - nuceff - partnuck - skmcsvc - tauola - jetset74 - pdflib804 - mathlib - packlib - pawlib) -else() - LIST(APPEND EXTRA_LIBS - NReWeight - neutcore_5.4.0 - nuccorspl_5.4.0 #typo in NEUT, may hopefully disappear - nuceff_5.4.0 - partnuck_5.4.0 - skmcsvc_5.4.0 - tauola_5.4.0 - HT2p2h_5.4.0 - N1p1h_5.4.0 - jetset74 - pdflib804 - mathlib - packlib - pawlib) -endif() - -set(NEUT_ROOT_LIBS) - -LIST(APPEND NEUT_ROOT_LIBS - ${NEUT_CLASS}/neutctrl.so - ${NEUT_CLASS}/neutfsivert.so) - -# Check for new versions of NEUT with NUCLEON FSI -if(EXISTS "${NEUT_CLASS}/neutnucfsistep.so") - set(NEUT_NUCFSI 1) - LIST(APPEND EXTRA_CXX_FLAGS -D__NEUT_NUCFSI_ENABLED__ ) - - LIST(APPEND NEUT_ROOT_LIBS - ${NEUT_CLASS}/neutnucfsistep.so - ${NEUT_CLASS}/neutnucfsivert.so - ) -endif() - -if(NOT IS_NEUT_54) - LIST(APPEND NEUT_ROOT_LIBS - ${NEUT_CLASS}/neutrootTreeSingleton.so) -endif() - -LIST(APPEND NEUT_ROOT_LIBS - ${NEUT_CLASS}/neutvtx.so - ${NEUT_CLASS}/neutfsipart.so - ${NEUT_CLASS}/neutpart.so - ${NEUT_CLASS}/neutvect.so - ) - -foreach(OBJ ${NEUT_ROOT_LIBS}) - LIST(APPEND EXTRA_SHAREDOBJS ${OBJ}) -endforeach() diff --git a/cmake_old/NIWGSetup.cmake b/cmake_old/NIWGSetup.cmake deleted file mode 100644 index ec49cca..0000000 --- a/cmake_old/NIWGSetup.cmake +++ /dev/null @@ -1,29 +0,0 @@ -# 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 . -################################################################################ - -if(NIWG_ROOT STREQUAL "") - cmessage(FATAL_ERROR "Variable NIWG_ROOT is not defined. Either configure with -DNIWG_ROOT or \"\$ export NIWG=/path/to/NIWGReWeight\". This must be set to point to a prebuilt NIWGReWeight instance.") -endif() - -LIST(APPEND EXTRA_CXX_FLAGS -D__NIWG_ENABLED__) - -LIST(APPEND RWENGINE_INCLUDE_DIRECTORIES ${NIWG_ROOT}) - -LIST(APPEND EXTRA_LINK_DIRS ${NIWG_ROOT}) -LIST(APPEND EXTRA_LIBS NIWGReWeight) diff --git a/cmake_old/NuWroSetup.cmake b/cmake_old/NuWroSetup.cmake deleted file mode 100644 index eb8eb11..0000000 --- a/cmake_old/NuWroSetup.cmake +++ /dev/null @@ -1,112 +0,0 @@ -# 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 . -################################################################################ - -if(NOT NUWRO_INPUT_FILE STREQUAL "") - - if(NOT EXISTS ${NUWRO_INPUT_FILE}) - cmessage(FATAL_ERROR "Expected -DNUWRO_INPUT_FILE to point to a valid input file. Cannot find: '${NUWRO_INPUT_FILE}'") - endif() - - if(CMAKE_BUILD_TYPE MATCHES DEBUG) - BuildROOTProject(NuWro_event1 ${NUWRO_INPUT_FILE} "event,vec,vect,particle,flags,params,line" STATIC) - SET(ROOTLIBNAME "libNuWro_event1.a") - else(CMAKE_BUILD_TYPE MATCHES RELEASE) - BuildROOTProject(NuWro_event1 ${NUWRO_INPUT_FILE} "event,vec,vect,particle,flags,params,line" SHARED) - SET(ROOTLIBNAME "libNuWro_event1.so") - endif() - - ADD_CUSTOM_TARGET(NuWro_event1HeaderLink ALL - COMMAND ${CMAKE_COMMAND} -E create_symlink - ${CMAKE_BINARY_DIR}/NuWro_event1/event.h - ${CMAKE_BINARY_DIR}/NuWro_event1/event1.h - DEPENDS NuWro_event1) - - LIST(APPEND EXTRA_CXX_FLAGS -D__NUWRO_ENABLED__) - - LIST(APPEND RWENGINE_INCLUDE_DIRECTORIES ${CMAKE_BINARY_DIR}/NuWro_event1) - - LIST(APPEND EXTRA_LINK_DIRS ${CMAKE_BINARY_DIR}) - - LIST(APPEND EXTRA_LIBS NuWro_event1) - - LIST(APPEND PROJECTWIDE_EXTRA_DEPENDENCIES NuWro_event1HeaderLink ) - - install(TARGETS NuWro_event1 DESTINATION lib) - - SET(NUWRO_BUILT_FROM_FILE TRUE) - -else() - - if(NUWRO STREQUAL "") - cmessage(FATAL_ERROR "Variable NUWRO is not defined. " - "This must be set to point to a prebuilt NuWro instance.") - endif() - - # If you are using a version of NuWro without reweighting use this to compile. - if(USE_NUWRO_RW) - - if(NUWRO_INC STREQUAL "") - cmessage(FATAL_ERROR "Variable NUWRO_INC is not defined. " - "This must be set to point to an installed NuWro instance.") - endif() - - LIST(APPEND EXTRA_CXX_FLAGS -D__NUWRO_ENABLED__ -D__NUWRO_REWEIGHT_ENABLED__) - - if(USE_NUWRO_SRW_Event) - LIST(APPEND EXTRA_CXX_FLAGS -D__USE_NUWRO_SRW_EVENTS__) - endif() - - LIST(APPEND RWENGINE_INCLUDE_DIRECTORIES - ${NUWRO}/src - ${NUWRO}/src/reweight - ${NUWRO_INC}/nuwro) - - LIST(APPEND EXTRA_LINK_DIRS ${NUWRO}/build/${CMAKE_SYSTEM_NAME}/lib) - LIST(APPEND EXTRA_LIBS reweight event) - - else () - LIST(APPEND EXTRA_CXX_FLAGS -D__NUWRO_ENABLED__) - - LIST(APPEND RWENGINE_INCLUDE_DIRECTORIES ${NUWRO}/src) - - if(NOT EXISTS ${NUWRO}/bin/event1.so) - if(EXISTS ${NUWRO}/build/${CMAKE_SYSTEM_NAME}/lib) - - if(NUWRO_INC STREQUAL "") - cmessage(FATAL_ERROR "Variable NUWRO_INC is not defined. " - "This must be set to point to an installed NuWro instance.") - endif() - - LIST(APPEND RWENGINE_INCLUDE_DIRECTORIES ${NUWRO_INC}/nuwro) - - LIST(APPEND EXTRA_LINK_DIRS ${NUWRO}/build/${CMAKE_SYSTEM_NAME}/lib) - LIST(APPEND EXTRA_LIBS event) - else() - cmessage(FATAL_ERROR "Expected to find the NuWro event library in: ${NUWRO}/bin/event1.so, or if using NuWro with reweight support: ${NUWRO}/build/${CMAKE_SYSTEM_NAME}/lib/libevent.a. Is NuWro built?") - endif() - else() - LIST(APPEND EXTRA_SHAREDOBJS ${NUWRO}/bin/event1.so) - endif() - - endif() - - set(NEED_PYTHIA6 TRUE) - set(NEED_ROOTPYTHIA6 TRUE) -endif() - diff --git a/cmake_old/Prob3++Setup.cmake b/cmake_old/Prob3++Setup.cmake deleted file mode 100644 index 03de820..0000000 --- a/cmake_old/Prob3++Setup.cmake +++ /dev/null @@ -1,42 +0,0 @@ -# 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 . -################################################################################ - -if(USE_PROB3PP) - - LIST(APPEND EXTRA_CXX_FLAGS -D__PROB3PP_ENABLED__) - - ExternalProject_Add(prob3pp - PREFIX "${CMAKE_BINARY_DIR}/Ext" - URL "http://webhome.phy.duke.edu/~raw22/public/Prob3++/Prob3++.20121225.tar.gz" - CONFIGURE_COMMAND "" - BUILD_IN_SOURCE 1 - UPDATE_COMMAND "" - BUILD_COMMAND CXXFLAGS=-fPIC CFLAGS=-fPIC make - INSTALL_COMMAND "" - ) - - LIST(APPEND RWENGINE_INCLUDE_DIRECTORIES ${CMAKE_BINARY_DIR}/Ext/src/prob3pp) - - LIST(APPEND EXTRA_LINK_DIRS ${CMAKE_BINARY_DIR}/Ext/src/prob3pp) - - LIST(APPEND EXTRA_LIBS ThreeProb_2.10) - - cmessage(STATUS "Using Prob3++ 2.10") - -endif() diff --git a/cmake_old/ROOTSetup.cmake b/cmake_old/ROOTSetup.cmake deleted file mode 100644 index f6597a3..0000000 --- a/cmake_old/ROOTSetup.cmake +++ /dev/null @@ -1,170 +0,0 @@ -# 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 . -################################################################################ - -if ( NOT DEFINED ENV{ROOTSYS} ) - cmessage (FATAL_ERROR "$ROOTSYS is not defined, please set up ROOT first.") -else() - cmessage(STATUS "Using ROOT installed at $ENV{ROOTSYS}") - set(CMAKE_ROOTSYS $ENV{ROOTSYS}) -endif() - -# Get cflags from ROOT -execute_process (COMMAND root-config - --cflags OUTPUT_VARIABLE ROOT_CXX_FLAGS_RAW OUTPUT_STRIP_TRAILING_WHITESPACE) -string(REPLACE " " ";" ROOT_CXX_FLAGS "${ROOT_CXX_FLAGS_RAW}") -# Get libdir from ROOT -execute_process (COMMAND root-config - --libdir OUTPUT_VARIABLE ROOT_LIBDIR OUTPUT_STRIP_TRAILING_WHITESPACE) -# Get version from ROOT -execute_process (COMMAND root-config - --version OUTPUT_VARIABLE ROOT_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) -# Get features from ROOT -execute_process (COMMAND root-config - --features OUTPUT_VARIABLE ROOT_FEATURES OUTPUT_STRIP_TRAILING_WHITESPACE) - -LIST(APPEND EXTRA_LINK_DIRS ${ROOT_LIBDIR}) - -LIST(APPEND ROOT_LIBS - Core - Cint - RIO - XMLIO - Net - Hist - Graf - Graf3d - Gpad - Tree - Rint - Postscript - Matrix - Physics - MathCore - Thread - EG - Geom - GenVector) - -if(USE_MINIMIZER) - - if("${ROOT_FEATURES}" MATCHES "minuit2") - cmessage(STATUS "ROOT built with MINUIT2 support") - LIST(APPEND EXTRA_CXX_FLAGS -D__MINUIT2_ENABLED__) - else() - cmessage(FATAL_ERROR "ROOT built without MINUIT2 support but minimizer functionality requested. Either configure with -DUSE_MINIMIZER=FALSE or use a version of ROOT with MINUIT2 support.") - endif() - - string(REGEX MATCH "6.*" ROOTVERSIXMATCH ${ROOT_VERSION}) - if(ROOTVERSIXMATCH) - cmessage(STATUS "Using ROOT6, We are essentially flying blind here.") - LIST(REMOVE_ITEM ROOT_LIBS Cint) - LIST(APPEND EXTRA_CXX_FLAGS -DROOT6_USE_FIT_FITTER_INTERFACE) - set(USE_ROOT6 True) - else() - string(REGEX MATCH "5.34/([0-9]+)" ROOTVERSMATCH ${ROOT_VERSION}) - if(NOT ROOTVERSMATCH OR ${CMAKE_MATCH_1} LESS "19") - cmessage(FATAL_ERROR "ROOT Version: ${ROOT_VERSION} has out of date minimizer interface, but minimizer functionality requested. Please configure with -DUSE_MINIMIZER=FALSE or update to 5.34/19 or greater to enable minimization features.") - endif() - endif() - -endif() - -if("${ROOT_FEATURES}" MATCHES "opengl") - cmessage(STATUS "ROOT built with OpenGL support") - LIST(APPEND ROOT_LIBS RGL) -endif() - -if(DEFINED NEED_ROOTPYTHIA6 AND NEED_ROOTPYTHIA6) - LIST(APPEND ROOT_LIBS EGPythia6 Pythia6) -endif() - -cmessage ( STATUS "[ROOT]: root-config --version: ${ROOT_VERSION} ") -cmessage ( STATUS "[ROOT]: root-config --cflags : ${ROOT_CXX_FLAGS} ") -cmessage ( STATUS "[ROOT]: root-config --libs : ${ROOT_LD_FLAGS} ") - -LIST(APPEND EXTRA_CXX_FLAGS ${ROOT_CXX_FLAGS}) - -#Helper functions for building dictionaries -function(GenROOTDictionary OutputDictName Header LinkDef) - - get_directory_property(incdirs INCLUDE_DIRECTORIES) - string(REPLACE ";" ";-I" LISTDIRINCLUDES "-I${incdirs}") - string(REPLACE " " ";" LISTCPPFLAGS "${EXTRA_CXX_FLAGS}") - - #ROOT5 CINT cannot handle it. - list(REMOVE_ITEM LISTCPPFLAGS "-std=c++11") - - message(STATUS "LISTCPPFLAGS: ${LISTCPPFLAGS}") - message(STATUS "LISTINCLUDES: ${LISTDIRINCLUDES}") - #Learn how to generate the Dict.cxx and Dict.hxx - add_custom_command( - OUTPUT "${OutputDictName}.cxx" "${OutputDictName}.h" - COMMAND rootcint - ARGS -f ${OutputDictName}.cxx -c - -p ${LISTDIRINCLUDES} ${LISTCPPFLAGS} ${Header} ${LinkDef} - DEPENDS ${Header};${LinkDef}) -endfunction() - - -function(BuildROOTProject ProjectName InputFile CommaSeparatedClassesToDump LIBLINKMODE) - - string(REPLACE "," ";" HeadersToDump ${CommaSeparatedClassesToDump}) - set(OUTPUTFILES ${CMAKE_BINARY_DIR}/${ProjectName}/${ProjectName}ProjectSource.cxx - ${CMAKE_BINARY_DIR}/${ProjectName}/${ProjectName}LinkDef.h - ${CMAKE_BINARY_DIR}/${ProjectName}/${ProjectName}ProjectHeaders.h - ${CMAKE_BINARY_DIR}/${ProjectName}/${ProjectName}ProjectInstances.h) - - cmessage(STATUS "As part of ROOT project: ${ProjectName}") - foreach (header ${HeadersToDump}) - LIST(APPEND OUTPUTFILES "${CMAKE_BINARY_DIR}/${ProjectName}/${header}.h") - cmessage(STATUS "Will generate: ${CMAKE_BINARY_DIR}/${ProjectName}/${header}.h") - endforeach() - - add_custom_command( - OUTPUT ${OUTPUTFILES} - COMMAND ${CMAKE_BINARY_DIR}/src/Utils/DumpROOTClassesFromVector - ARGS ${InputFile} - ${CMAKE_BINARY_DIR}/${ProjectName} - ${CommaSeparatedClassesToDump} - VERBATIM - DEPENDS DumpROOTClassesFromVector) - - add_custom_target(${ProjectName}_sources - DEPENDS ${OUTPUTFILES}) - - GenROOTDictionary( - ${CMAKE_BINARY_DIR}/${ProjectName}/${ProjectName}ProjectDict - ${CMAKE_BINARY_DIR}/${ProjectName}/${ProjectName}ProjectHeaders.h - ${CMAKE_BINARY_DIR}/${ProjectName}/${ProjectName}LinkDef.h - ) - - add_custom_target(${ProjectName}ProjectDict - DEPENDS - ${CMAKE_BINARY_DIR}/${ProjectName}/${ProjectName}ProjectDict.cxx - ${CMAKE_BINARY_DIR}/${ProjectName}/${ProjectName}ProjectDict.h ) - # add_dependencies(${ProjectName}ProjectDict ${ProjectName}_sources) - - #ProjectSource.cxx includes ProjectDict.cxx, so no need to add to compilation. - set(ROAA_SOURCEFILES - ${CMAKE_BINARY_DIR}/${ProjectName}/${ProjectName}ProjectSource.cxx) - - add_library(${ProjectName} ${LIBLINKMODE} ${ROAA_SOURCEFILES}) - add_dependencies(${ProjectName} ${ProjectName}ProjectDict) - -endfunction() diff --git a/cmake_old/ReweightEnginesSetup.cmake b/cmake_old/ReweightEnginesSetup.cmake deleted file mode 100644 index 1f3a4c5..0000000 --- a/cmake_old/ReweightEnginesSetup.cmake +++ /dev/null @@ -1,93 +0,0 @@ -# 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 . -################################################################################ - -################################## T2K ###################################### -if(USE_T2K) - include(${CMAKE_SOURCE_DIR}/cmake/T2KSetup.cmake) - cmessage(STATUS "Using T2K Reweight engine.") - set(USE_T2K TRUE CACHE BOOL "Whether to enable T2KReWeight support. Requires external libraries. " FORCE) -endif() -################################## NIWG ###################################### -if(USE_NIWG) - include(${CMAKE_SOURCE_DIR}/cmake/NIWGSetup.cmake) - cmessage(STATUS "Using NIWG Reweight engine.") - set(USE_NIWG TRUE CACHE BOOL "Whether to enable (T2K) NIWG ReWeight support. Requires external libraries. " FORCE) -endif() -################################## NIWG ###################################### -if(USE_DUNERWT) - include(${CMAKE_SOURCE_DIR}/cmake/DUNERwtSetup.cmake) - cmessage(STATUS "Using DUNE Reweight engine.") - set(USE_DUNERWT TRUE CACHE BOOL "Whether to enable DUNE ReWeight support. Requires external libraries. " FORCE) -endif() -################################## MINERvA ###################################### -if(USE_MINERvA_RW) - include(${CMAKE_SOURCE_DIR}/cmake/MINERvASetup.cmake) - cmessage(STATUS "Using MINERvA Reweight engine.") - set(USE_MINERvA_RW TRUE CACHE BOOL "Whether to enable MINERvA ReWeight support. " FORCE) -endif() -################################## NEUT ###################################### -if(USE_NEUT) - include(${CMAKE_SOURCE_DIR}/cmake/NEUTSetup.cmake) - cmessage(STATUS "Using NEUT Reweight engine.") - set(USE_NEUT TRUE CACHE BOOL "Whether to enable NEUT (reweight) support. Requires external libraries. " FORCE) -endif() -################################# NuWro ###################################### -if(USE_NUWRO) - include(${CMAKE_SOURCE_DIR}/cmake/NuWroSetup.cmake) - cmessage(STATUS "Using NuWro Reweight engine.") - set(USE_NUWRO TRUE CACHE BOOL "Whether to enable NuWro support. " FORCE) -endif() -################################## GENIE ##################################### -if(USE_GENIE) - include(${CMAKE_SOURCE_DIR}/cmake/GENIESetup.cmake) - cmessage(STATUS "Using GENIE Reweight engine.") - set(USE_GENIE TRUE CACHE BOOL "Whether to enable GENIE (reweight) support. Requires external libraries. " FORCE) -endif() - -################################################################################ - -################################ Prob3++ #################################### -include(${CMAKE_SOURCE_DIR}/cmake/Prob3++Setup.cmake) -################################################################################ - - -cmessage(STATUS "Reweight engine include directories: ${RWENGINE_INCLUDE_DIRECTORIES}") - -if(NEED_ROOTEVEGEN) - cmessage(STATUS "Require ROOT eve generation libraries") - LIST(REVERSE ROOT_LIBS) - LIST(APPEND ROOT_LIBS - Gui - Ged - Geom - TreePlayer - EG - Eve) - LIST(REVERSE ROOT_LIBS) -endif() - -if(NEED_ROOTPYTHIA6) - cmessage(STATUS "Require ROOT Pythia6 libraries") - LIST(APPEND ROOT_LIBS - EGPythia6 - Pythia6) -endif() - - -LIST(APPEND EXTRA_LIBS ${ROOT_LIBS}) diff --git a/cmake_old/T2KSetup.cmake b/cmake_old/T2KSetup.cmake deleted file mode 100644 index ad938bc..0000000 --- a/cmake_old/T2KSetup.cmake +++ /dev/null @@ -1,31 +0,0 @@ -# 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 . -################################################################################ - -if(T2KREWEIGHT STREQUAL "") - cmessage(FATAL_ERROR "Variable T2KREWEIGHT is not defined. Either configure with -DT2KREWEIGHT or \"\$ export T2KREWEIGHT=/path/to/T2KReWeight\". This must be set to point to a prebuilt T2KReWeight instance.") -endif() - -LIST(APPEND EXTRA_CXX_FLAGS -D__T2KREW_ENABLED__ ) - -LIST(APPEND RWENGINE_INCLUDE_DIRECTORIES ${T2KREWEIGHT}/src/) - -LIST(APPEND EXTRA_LINK_DIRS ${T2KREWEIGHT}/lib) -LIST(APPEND EXTRA_LIBS T2KReWeight) - - diff --git a/cmake_old/c++CompilerSetup.cmake b/cmake_old/c++CompilerSetup.cmake deleted file mode 100644 index 29d518b..0000000 --- a/cmake_old/c++CompilerSetup.cmake +++ /dev/null @@ -1,109 +0,0 @@ -# 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 . -################################################################################ - -if(USE_OMP) - LIST(APPEND EXTRA_CXX_FLAGS -fopenmp) -endif() - -if(USE_DYNSAMPLES) - LIST(APPEND EXTRA_LIBS dl) - LIST(APPEND EXTRA_CXX_FLAGS -D__USE_DYNSAMPLES__) -endif() - -set(CXX_WARNINGS -Wall ) - -cmessage(DEBUG "EXTRA_CXX_FLAGS: ${EXTRA_CXX_FLAGS}") -string(REPLACE ";" " " STR_EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS}") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${STR_EXTRA_CXX_FLAGS} ${CXX_WARNINGS}") - set(CMAKE_Fortran_FLAGS_RELEASE "-fPIC") - -set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0") - -if(USE_DYNSAMPLES) - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fPIC") - set(CMAKE_Fortran_FLAGS_DEBUG "-fPIC") -endif() - -set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fPIC -O3") - -if(CMAKE_BUILD_TYPE MATCHES DEBUG) - set(CURRENT_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS_DEBUG}) -elseif(CMAKE_BUILD_TYPE MATCHES RELEASE) - set(CURRENT_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS_RELEASE}) -else() - cmessage(FATAL_ERROR "[ERROR]: Unknown CMAKE_BUILD_TYPE (\"${CMAKE_BUILD_TYPE}\"): Should be \"DEBUG\" or \"RELEASE\".") -endif() - - -SET(STR_EXTRA_LINK_DIRS) -if(NOT EXTRA_LINK_DIRS STREQUAL "") - string(REPLACE ";" " -L" STR_EXTRA_LINK_DIRS "-L${EXTRA_LINK_DIRS}") -endif() - -SET(STR_EXTRA_LIBS) -if(NOT EXTRA_LIBS STREQUAL "") - SET(STR_EXTRA_LIBS_NO_SCRUB_LINKOPTS) - string(REPLACE ";" " -l" STR_EXTRA_LIBS_NO_SCRUB_LINKOPTS "-l${EXTRA_LIBS}") - string(REPLACE "-l-" "-" STR_EXTRA_LIBS ${STR_EXTRA_LIBS_NO_SCRUB_LINKOPTS}) -endif() - -SET(STR_EXTRA_SHAREDOBJS) -if(NOT EXTRA_SHAREDOBJS STREQUAL "") - string(REPLACE ";" " " STR_EXTRA_SHAREDOBJS "${EXTRA_SHAREDOBJS}") -endif() - -LIST(APPEND EXTRA_LINK_FLAGS -Wl,--no-as-needed) -SET(STR_EXTRA_LINK_FLAGS) -if(NOT EXTRA_LINK_FLAGS STREQUAL "") - string(REPLACE ";" " " STR_EXTRA_LINK_FLAGS "${EXTRA_LINK_FLAGS}") -endif() - -cmessage(DEBUG "EXTRA_LINK_DIRS: ${STR_EXTRA_LINK_DIRS}") -cmessage(DEBUG "EXTRA_LIBS: ${STR_EXTRA_LIBS}") -cmessage(DEBUG "EXTRA_SHAREDOBJS: ${STR_EXTRA_SHAREDOBJS}") -cmessage(DEBUG "EXTRA_LINK_FLAGS: ${STR_EXTRA_LINK_FLAGS}") - -if(NOT STR_EXTRA_LINK_DIRS STREQUAL "" AND NOT STR_EXTRA_LIBS STREQUAL "") - SET(NUISANCE_DEPEND_LIBS "${STR_EXTRA_LINK_DIRS} ${STR_EXTRA_LIBS}") -endif() -if(NOT STR_EXTRA_SHAREDOBJS STREQUAL "") - SET(NUISANCE_DEPEND_LIBS "${NUISANCE_DEPEND_LIBS} ${STR_EXTRA_SHAREDOBJS}") -endif() - -if(NOT EXTRA_LINK_FLAGS STREQUAL "") - if(NOT CMAKE_LINK_FLAGS STREQUAL "") - SET(CMAKE_LINK_FLAGS "${CMAKE_LINK_FLAGS} ${STR_EXTRA_LINK_FLAGS}") - else() - SET(CMAKE_LINK_FLAGS "${STR_EXTRA_LINK_FLAGS}") - endif() -endif() - -if(USE_OMP) - cmessage(FATAL_ERROR "No OMP features currently enabled so this is a FATAL_ERROR to let you know that you don't gain anything with this declaration.") -endif() - - -if (VERBOSE) - cmessage (STATUS "C++ Compiler : ${CXX_COMPILER_NAME}") - cmessage (STATUS " flags : ${CMAKE_CXX_FLAGS}") - cmessage (STATUS " Release flags : ${CMAKE_CXX_FLAGS_RELEASE}") - cmessage (STATUS " Debug flags : ${CMAKE_CXX_FLAGS_DEBUG}") - cmessage (STATUS " Link Flags : ${CMAKE_LINK_FLAGS}") - cmessage (STATUS " Lib Flags : ${NUISANCE_DEPEND_LIBS}") -endif() diff --git a/cmake_old/cacheVariables.cmake b/cmake_old/cacheVariables.cmake deleted file mode 100644 index 54572c8..0000000 --- a/cmake_old/cacheVariables.cmake +++ /dev/null @@ -1,220 +0,0 @@ -# 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 . -################################################################################ - -function(CheckAndSetDefaultEnv VARNAME DEFAULT CACHETYPE DOCSTRING ENVNAME) - #cmessage(DEBUG "Trying to assign variable ${VARNAME} into the cache.") - if(NOT DEFINED ${VARNAME}) - if(DEFINED ENV{${ENVNAME}} AND NOT $ENV{${ENVNAME}} STREQUAL "") - set(${VARNAME} $ENV{${ENVNAME}} CACHE ${CACHETYPE} ${DOCSTRING}) - cmessage(DEBUG " Read ${VARNAME} from ENVVAR ${ENVNAME} as $ENV{${ENVNAME}}.") - else() - set(${VARNAME} ${DEFAULT} CACHE ${CACHETYPE} ${DOCSTRING}) - endif() - else() - set(${VARNAME} ${${VARNAME}} CACHE ${CACHETYPE} ${DOCSTRING}) - unset(${VARNAME}) - endif() - cmessage(CACHE "--Set cache variable: \"${VARNAME}\" to \"${${VARNAME}}\", in cache ${CACHETYPE}.") -endfunction() - -function(CheckAndSetDefaultCache VARNAME DEFAULT CACHETYPE DOCSTRING) -# cmessage(DEBUG "Trying to assign variable ${VARNAME} into the cache.") - if(NOT DEFINED ${VARNAME}) - set(${VARNAME} ${DEFAULT} CACHE ${CACHETYPE} ${DOCSTRING}) - else() - set(${VARNAME} ${${VARNAME}} CACHE ${CACHETYPE} ${DOCSTRING}) - unset(${VARNAME}) - endif() - cmessage(CACHE "--Set cache variable: \"${VARNAME}\" to \"${${VARNAME}}\", in cache ${CACHETYPE}.") -endfunction() - -function(CheckAndSetDefault VARNAME DEFAULT) -# cmessage(DEBUG "Trying to assign variable ${VARNAME}.") - if(NOT DEFINED ${VARNAME}) - set(${VARNAME} ${DEFAULT} PARENT_SCOPE) - set(${VARNAME} ${DEFAULT}) - endif() - cmessage(CACHE "--Set variable: \"${VARNAME}\" to \"${${VARNAME}}\".") -endfunction() - -CheckAndSetDefaultCache(VERBOSE TRUE BOOL "Whether to configure loudly.") - -set (CMAKE_SKIP_BUILD_RPATH TRUE) - -#Changes default install path to be a subdirectory of the build dir. -#Can set build dir at configure time with -DCMAKE_INSTALL_PREFIX=/install/path -if(CMAKE_INSTALL_PREFIX STREQUAL "" OR CMAKE_INSTALL_PREFIX STREQUAL - "/usr/local") - set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}") -elseif(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}") -endif() - -if(CMAKE_BUILD_TYPE STREQUAL "") - set(CMAKE_BUILD_TYPE DEBUG) -elseif(NOT DEFINED CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE DEBUG) -endif() - -CheckAndSetDefaultCache(EXTRA_SETUP_SCRIPT "" PATH "The path to an extra script to inject into the NUISANCE setup script. <>") - -CheckAndSetDefaultCache(USE_MINIMIZER TRUE INTERNAL "Whether we are using the ROOT minimization libraries. ") - -CheckAndSetDefaultCache(USE_ROOT6 FALSE INTERNAL "Whether we are using the ROOT 6. ") - -CheckAndSetDefaultCache(USE_HEPMC FALSE BOOL "Whether to enable HepMC input support. ") -CheckAndSetDefaultEnv(HEPMC "" PATH "Path to HepMC source tree root directory. Overrides environment variable \$HEPMC <>" HEPMC) -CheckAndSetDefaultCache(HEPMC_MOMUNIT "GEV" STRING "HepMC momentum units [MEV|GEV]. ") -CheckAndSetDefaultCache(HEPMC_LENUNIT "CM" STRING "HepMC momentum units [MM|CM]. ") -CheckAndSetDefaultCache(HEPMC_USED_EP FALSE INTERNAL "Whether we built HepMC or not. ") - -CheckAndSetDefaultCache(USE_NEUT FALSE BOOL "Whether to enable NEUT (reweight) support. Requires external libraries. ") -CheckAndSetDefaultCache(IS_NEUT_54 FALSE BOOL "Whether to enabled NEUT is version 5.4 or greater. ") -CheckAndSetDefaultEnv(NEUT_ROOT "" PATH "Path to NEUT source tree root directory. Overrides environment variable \$NEUT_ROOT <>" NEUT_ROOT) -CheckAndSetDefaultEnv(CERN "" PATH "Path to CERNLIB source tree root directory that NEUT was built against. Overrides environment variable \$CERN <>" CERN) -CheckAndSetDefaultEnv(CERN_LEVEL "" STRING "CERNLIB Library version. Overrides environment variable \$CERN_LEVEL <>" CERN_LEVEL) - -CheckAndSetDefaultCache(USE_NUWRO FALSE BOOL "Whether to enable NuWro support. ") -CheckAndSetDefaultEnv(NUWRO "" PATH "Path to NuWro source tree root directory. Overrides environment variable \$NUWRO <>" NUWRO) -CheckAndSetDefaultEnv(NUWRO_INC "" PATH "Path to NuWro installed includes directory, needs to contain \"params_all.h\". Overrides environment variable \$NUWRO_INC <>" NUWRO_INC) -CheckAndSetDefaultCache(NUWRO_INPUT_FILE "" FILEPATH "Path to an input NuWro event vector, which can be used to build NuWro i/o libraries. <>") -CheckAndSetDefaultCache(NUWRO_BUILT_FROM_FILE FALSE INTERNAL "Whether the NuWro libraries were built by NUISANCE. ") -CheckAndSetDefaultCache(USE_NUWRO_RW FALSE BOOL "Whether to try and build support for NuWro reweighting. ") -CheckAndSetDefaultCache(USE_NUWRO_SRW_Event FALSE BOOL "Whether to use cut down NuWro reweight event format. Requires NuWro reweight. ") - -CheckAndSetDefaultCache(USE_GENIE FALSE BOOL "Whether to enable GENIE (reweight) support. Requires external libraries. ") -CheckAndSetDefaultCache(GENIE_VERSION "AUTO" STRING "GENIE Version ") -CheckAndSetDefaultEnv(GENIE "" PATH "Path to GENIE source tree root directory. Overrides environment variable \$GENIE <>" GENIE) -CheckAndSetDefaultEnv(LHAPDF_LIB "" PATH "Path to pre-built LHAPDF libraries. Overrides environment variable \$LHAPDF_LIB. <>" LHAPDF_LIB) -CheckAndSetDefaultEnv(LHAPDF_INC "" PATH "Path to installed LHAPDF headers. Overrides environment variable \$LHAPDF_INC. <>" LHAPDF_INC) -CheckAndSetDefaultEnv(LHAPATH "" PATH "Path to LHA PDF inputs. Overrides environment variable \$LHAPATH. <>" LHAPATH) -CheckAndSetDefaultEnv(LIBXML2_LIB "" PATH "Path to pre-built LIBXML2 libraries. Overrides environment variable \$LIBXML2_LIB. <>" LIBXML2_LIB) -CheckAndSetDefaultEnv(LIBXML2_INC "" PATH "Path to installed LIBXML2 headers. Overrides environment variable \$LIBXML2_INC. <>" LIBXML2_INC) -CheckAndSetDefaultEnv(LOG4CPP_LIB "" PATH "Path to pre-built LOG4CPP libraries. Overrides environment variable \$LOG4CPP_LIB. <>" LOG4CPP_LIB) -CheckAndSetDefaultEnv(LOG4CPP_INC "" PATH "Path to installed LOG4CPP headers. Overrides environment variable \$LOG4CPP_INC. <>" LOG4CPP_INC) - -CheckAndSetDefaultCache(BUILD_GEVGEN FALSE BOOL "Whether to build nuisance_gevgen app.") - -CheckAndSetDefaultCache(USE_T2K FALSE BOOL "Whether to enable T2KReWeight support. Requires external libraries. ") -CheckAndSetDefaultEnv(T2KREWEIGHT "" PATH "Path to installed T2KREWEIGHTReWeight. Overrides environment variable \$T2KREWEIGHT. <>" T2KREWEIGHT) - -CheckAndSetDefaultCache(USE_NIWG FALSE BOOL "Whether to enable (T2K) NIWG ReWeight support. Requires external libraries. ") -CheckAndSetDefaultEnv(NIWG_ROOT "" PATH "Path to installed NIWGReWeight. Overrides environment variable \$NIWG. <>" NIWG) - -CheckAndSetDefaultCache(USE_DUNERWT FALSE BOOL "Whether to enable DUNE ReWeight support. Requires external libraries. ") -CheckAndSetDefaultEnv(NUSYST_ROOT "" PATH "Path to installed NuSystematics. Overrides environment variable \$NUSYST_ROOT. <>" DUNERWT_ROOT) -CheckAndSetDefaultEnv(SYSTTOOLS_ROOT "" PATH "Path to installed ART Systematics Tools. Overrides environment variable \$SYSTTOOLS_ROOT. <>" SYSTTOOLS_ROOT) - -CheckAndSetDefaultCache(USE_MINERvA_RW FALSE BOOL "Whether to enable MINERvA ReWeight support. ") - -CheckAndSetDefaultEnv(PYTHIA6 "" PATH "Path to directory containing libPythia6.so. Overrides environment variable \$PYTHIA6 <>" PYTHIA6) - -CheckAndSetDefaultEnv(PYTHIA8 "" PATH "Path to directory containing libPythia8.so. Overrides environment variable \$PYTHIA8 <>" PYTHIA8) -CheckAndSetDefaultCache(USE_PYTHIA8 FALSE BOOL "Whether to enable PYTHIA8 event support. ") - -CheckAndSetDefaultCache(USE_GiBUU TRUE BOOL "Whether to enable GiBUU event support. ") -CheckAndSetDefaultCache(BUILD_GiBUU FALSE BOOL "Whether to build supporting GiBUU event tools along with a patched version of GiBUU. ") - -CheckAndSetDefaultCache(USE_NUANCE TRUE BOOL "Whether to enable NUANCE event support. ") - -CheckAndSetDefaultCache(USE_PROB3PP FALSE BOOL "Whether to download and compile in Prob3++ support. ") - -CheckAndSetDefaultCache(NO_EXTERNAL_UPDATE FALSE BOOL "Whether to perform the update target for external dependencies. Note this may produce errors for CMake < 3.8 where a bug was fixed for the feature that this option invokes. ") - -CheckAndSetDefaultCache(USE_GPERFTOOLS FALSE BOOL "Whether to compile in google performance tools. ") - -CheckAndSetDefault(NEED_PYTHIA6 FALSE) -CheckAndSetDefault(NEED_PYTHIA8 FALSE) - -CheckAndSetDefault(NEED_ROOTEVEGEN FALSE) -CheckAndSetDefault(NEED_ROOTPYTHIA6 FALSE) - -CheckAndSetDefaultCache(USE_OMP FALSE BOOL "Whether to enable multicore features (there currently are none...). ") - -CheckAndSetDefaultCache(USE_DYNSAMPLES TRUE BOOL "Whether to enable the dynamic sample loader. ") - -CheckAndSetDefault(NO_EXPERIMENTS FALSE) - -cmessage(STATUS "NO_EXPERIMENTS: ${NO_EXPERIMENTS}") - -CheckAndSetDefaultCache(NO_ANL ${NO_EXPERIMENTS} BOOL "Whether to *NOT* build ANL samples. <-DNO_EXPERIMENTS=FALSE>") -CheckAndSetDefaultCache(NO_ArgoNeuT ${NO_EXPERIMENTS} BOOL "Whether to *NOT* build ArgoNeuT samples. <-DNO_EXPERIMENTS=FALSE>") -CheckAndSetDefaultCache(NO_BEBC ${NO_EXPERIMENTS} BOOL "Whether to *NOT* build BEBC samples. <-DNO_EXPERIMENTS=FALSE>") -CheckAndSetDefaultCache(NO_BNL ${NO_EXPERIMENTS} BOOL "Whether to *NOT* build BNL samples. <-DNO_EXPERIMENTS=FALSE>") -CheckAndSetDefaultCache(NO_FNAL ${NO_EXPERIMENTS} BOOL "Whether to *NOT* build FNAL samples. <-DNO_EXPERIMENTS=FALSE>") -CheckAndSetDefaultCache(NO_GGM ${NO_EXPERIMENTS} BOOL "Whether to *NOT* build GGM samples. <-DNO_EXPERIMENTS=FALSE>") -CheckAndSetDefaultCache(NO_K2K ${NO_EXPERIMENTS} BOOL "Whether to *NOT* build K2K samples. <-DNO_EXPERIMENTS=FALSE>") -CheckAndSetDefaultCache(NO_MINERvA ${NO_EXPERIMENTS} BOOL "Whether to *NOT* build MINERvA samples. <-DNO_EXPERIMENTS=FALSE>") -CheckAndSetDefaultCache(NO_MiniBooNE ${NO_EXPERIMENTS} BOOL "Whether to *NOT* build MiniBooNE samples. <-DNO_EXPERIMENTS=FALSE>") -CheckAndSetDefaultCache(NO_T2K ${NO_EXPERIMENTS} BOOL "Whether to *NOT* build T2K samples. <-DNO_EXPERIMENTS=FALSE>") -CheckAndSetDefaultCache(NO_SciBooNE ${NO_EXPERIMENTS} BOOL "Whether to *NOT* build SciBooNE samples. <-DNO_EXPERIMENTS=FALSE>") - - -function(SAYVARS) - -LIST(APPEND VARS - USE_HEPMC - HEPMC - HEPMC_MOMUNIT - HEPMC_LENUNIT - HEPMC_USED_EP - USE_NEUT - NEUT_ROOT - CERN - CERN_LEVEL - USE_NUWRO - NUWRO - NUWRO_INC - NUWRO_INPUT_FILE - NUWRO_BUILT_FROM_FILE - USE_GENIE - GENIE - LHAPDF_LIB - LHAPDF_INC - LIBXML2_LIB - LIBXML2_INC - LOG4CPP_LIB - GENIE_LOG4CPP_INC - BUILD_GEVGEN - USE_T2K - USE_NIWG - USE_GiBUU - BUILD_GiBUU - USE_NUANCE - NO_EXTERNAL_UPDATE - USE_GPERFTOOLS - NO_ANL - NO_ArgoNeuT - NO_BEBC - NO_BNL - NO_FNAL - NO_GGM - NO_K2K - NO_MINERvA - NO_MiniBooNE - NO_T2K - NO_SciBooNE) - - foreach(v ${VARS}) - if(DEFINED ${v}) - cmessage(DEBUG "VARIABLE: \"${v}\" = \"${${v}}\"") - endif() - endforeach(v) - -endfunction() diff --git a/cmake_old/cmessage.cmake b/cmake_old/cmessage.cmake deleted file mode 100644 index deba23a..0000000 --- a/cmake_old/cmessage.cmake +++ /dev/null @@ -1,48 +0,0 @@ -if(NOT WIN32) - string(ASCII 27 Esc) - set(CM_ColourReset "${Esc}[m") - set(CM_ColourBold "${Esc}[1m") - set(CM_Red "${Esc}[31m") - set(CM_Green "${Esc}[32m") - set(CM_Yellow "${Esc}[33m") - set(CM_Blue "${Esc}[34m") - set(CM_Magenta "${Esc}[35m") - set(CM_Cyan "${Esc}[36m") - set(CM_White "${Esc}[37m") - set(CM_BoldRed "${Esc}[1;31m") - set(CM_BoldGreen "${Esc}[1;32m") - set(CM_BoldYellow "${Esc}[1;33m") - set(CM_BoldBlue "${Esc}[1;34m") - set(CM_BoldMagenta "${Esc}[1;35m") - set(CM_BoldCyan "${Esc}[1;36m") - set(CM_BoldWhite "${Esc}[1;37m") -endif() - -message(STATUS "Setting up colored messages...") - -function(cmessage) - list(GET ARGV 0 MessageType) - if(MessageType STREQUAL FATAL_ERROR OR MessageType STREQUAL SEND_ERROR) - list(REMOVE_AT ARGV 0) - message(${MessageType} "${CM_BoldRed}${ARGV}${CM_ColourReset}") - elseif(MessageType STREQUAL WARNING) - list(REMOVE_AT ARGV 0) - message(${MessageType} "${CM_BoldYellow}${ARGV}${CM_ColourReset}") - elseif(MessageType STREQUAL AUTHOR_WARNING) - list(REMOVE_AT ARGV 0) - message(${MessageType} "${CM_BoldCyan}${ARGV}${CM_ColourReset}") - elseif(MessageType STREQUAL STATUS) - list(REMOVE_AT ARGV 0) - message(${MessageType} "${CM_Green}[INFO]:${CM_ColourReset} ${ARGV}") - elseif(MessageType STREQUAL CACHE) - list(REMOVE_AT ARGV 0) - message(-- "${CM_Blue}[CACHE]:${CM_ColourReset} ${ARGV}") - elseif(MessageType STREQUAL DEBUG) - list(REMOVE_AT ARGV 0) - if(BUILD_DEBUG_MSGS) - message("${CM_Magenta}[DEBUG]:${CM_ColourReset} ${ARGV}") - endif() - else() - message(${MessageType} "${CM_Green}[INFO]:${CM_ColourReset} ${ARGV}") - endif() -endfunction() diff --git a/cmake_old/docsSetup.cmake b/cmake_old/docsSetup.cmake deleted file mode 100644 index 618a51f..0000000 --- a/cmake_old/docsSetup.cmake +++ /dev/null @@ -1,43 +0,0 @@ -# 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 . -################################################################################ - -# add a target to generate API documentation with Doxygen -find_package(Doxygen) - -if(DOXYGEN_FOUND) - - file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc) - - configure_file(${CMAKE_SOURCE_DIR}/doc/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/doc/Doxyfile @ONLY) - add_custom_target(doc_generate - ${DOXYGEN_EXECUTABLE} ${CMAKE_BINARY_DIR}/doc/Doxyfile - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/doc - COMMENT "Generating documentation with Doxygen... (this will take a while)" VERBATIM - ) - - add_custom_target(docs - make - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/doc/latex - COMMENT "Building latex documentation with Doxygen... (this will also take a while)" VERBATIM - ) - add_dependencies(docs doc_generate) - install(FILES ${CMAKE_BINARY_DIR}/doc/latex/refman.pdf - DESTINATION ${CMAKE_BINARY_DIR}/doc - RENAME NUISANCE_${NUISANCE_VERSION_STRING}.pdf OPTIONAL) -endif(DOXYGEN_FOUND) diff --git a/cmake_old/getgenieversion.sh b/cmake_old/getgenieversion.sh deleted file mode 100755 index dcf2c4e..0000000 --- a/cmake_old/getgenieversion.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -LIBNAME=$(ls ${1}/lib/libGAlgorithm-*.so) -BASENAME="${LIBNAME##*-}" -BASENAME="${BASENAME//.so/}" -BASENAME="${BASENAME/./}" -BASENAME="${BASENAME/.*/}" -echo $BASENAME diff --git a/cmake_old/gperfSetup.cmake b/cmake_old/gperfSetup.cmake deleted file mode 100644 index dc33da7..0000000 --- a/cmake_old/gperfSetup.cmake +++ /dev/null @@ -1,59 +0,0 @@ -# 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 . -################################################################################ - -if(USE_GPERFTOOLS) - - ExternalProject_Add(libunwind - PREFIX "${CMAKE_BINARY_DIR}/Ext" - GIT_REPOSITORY "git://git.sv.gnu.org/libunwind.git" - CONFIGURE_COMMAND ${CMAKE_BINARY_DIR}/Ext/src/libunwind/autogen.sh --prefix=${CMAKE_INSTALL_PREFIX} - UPDATE_COMMAND "" - BUILD_COMMAND make -j6 - INSTALL_COMMAND make install - ) - - ExternalProject_Add(gperftools - PREFIX "${CMAKE_BINARY_DIR}/Ext" - GIT_REPOSITORY "https://github.com/gperftools/gperftools.git" - GIT_TAG "gperftools-2.5" - CONFIGURE_COMMAND ./autogen.sh && ./configure --prefix=${CMAKE_INSTALL_PREFIX} CPPFLAGS=-I${CMAKE_INSTALL_PREFIX}/include LDFLAGS=-L${CMAKE_INSTALL_PREFIX}/lib - BUILD_IN_SOURCE 1 - UPDATE_COMMAND "" - BUILD_COMMAND make -j6 - INSTALL_COMMAND make install - ) - - add_dependencies(gperftools libunwind) - - LIST(APPEND EXTRA_CXX_FLAGS - -fno-builtin-malloc - -fno-builtin-calloc - -fno-builtin-realloc - -fno-builtin-free) - - - LIST(APPEND EXTRA_LINK_DIRS ${CMAKE_INSTALL_PREFIX}/lib) - - ##Want to prepend them - LIST(REVERSE EXTRA_LIBS) - LIST(APPEND EXTRA_LIBS tcmalloc_and_profiler) - LIST(REVERSE EXTRA_LIBS) - - cmessage(STATUS "Using google performance libraries") -endif() diff --git a/cmake_old/pythia6Setup.cmake b/cmake_old/pythia6Setup.cmake deleted file mode 100644 index 012fa34..0000000 --- a/cmake_old/pythia6Setup.cmake +++ /dev/null @@ -1,31 +0,0 @@ -# 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 . -################################################################################ - -if(NEED_PYTHIA6) - if(PYTHIA6 STREQUAL "") - cmessage(FATAL_ERROR "Variable PYTHIA6 is not defined. This must be set to point to a prebuilt PYTHIA6 instance, please set the \$PYTHIA6 environment variable or configure with -DPYTHIA6=/path/to/pythia6.") - endif() - - LIST(APPEND EXTRA_LINK_DIRS ${PYTHIA6}) - - LIST(REVERSE EXTRA_LIBS) - LIST(APPEND EXTRA_LIBS Pythia6 gfortran) - LIST(REVERSE EXTRA_LIBS) - -endif() diff --git a/cmake_old/pythia8Setup.cmake b/cmake_old/pythia8Setup.cmake deleted file mode 100644 index d46002d..0000000 --- a/cmake_old/pythia8Setup.cmake +++ /dev/null @@ -1,30 +0,0 @@ -# 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 . -################################################################################ - -if(NEED_PYTHIA8) - if(PYTHIA8 STREQUAL "") - cmessage(FATAL_ERROR "Variable PYTHIA8 is not defined. This must be set to point to a prebuilt PYTHIA8 instance, please set the \$PYTHIA8 environment variable or configure with -DPYTHIA8=/path/to/pythia8.") - endif() - - LIST(APPEND EXTRA_LINK_DIRS ${PYTHIA8}) - - LIST(REVERSE EXTRA_LIBS) - LIST(APPEND EXTRA_LIBS Pythia8 gfortran) - LIST(REVERSE EXTRA_LIBS) -endif() diff --git a/cmake_old/setup.sh.in b/cmake_old/setup.sh.in deleted file mode 100644 index 1d4ff6b..0000000 --- a/cmake_old/setup.sh.in +++ /dev/null @@ -1,159 +0,0 @@ -# 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 . -################################################################################ - -#!/bin/sh - -### Adapted from https://unix.stackexchange.com/questions/4965/keep-duplicates-out-of-path-on-source -function add_to_PATH () { - for d; do - - d=$(cd -- "$d" && { pwd -P || pwd; }) 2>/dev/null # canonicalize symbolic links - if [ -z "$d" ]; then continue; fi # skip nonexistent directory - - if [ "$d" == "/usr/bin" ] || [ "$d" == "/usr/bin64" ] || [ "$d" == "/usr/local/bin" ] || [ "$d" == "/usr/local/bin64" ]; then - case ":$PATH:" in - *":$d:"*) :;; - *) export PATH=$PATH:$d;; - esac - else - case ":$PATH:" in - *":$d:"*) :;; - *) export PATH=$d:$PATH;; - esac - fi - done -} - -function add_to_LD_LIBRARY_PATH () { - for d; do - - d=$(cd -- "$d" && { pwd -P || pwd; }) 2>/dev/null # canonicalize symbolic links - if [ -z "$d" ]; then continue; fi # skip nonexistent directory - - if [ "$d" == "/usr/lib" ] || [ "$d" == "/usr/lib64" ] || [ "$d" == "/usr/local/lib" ] || [ "$d" == "/usr/local/lib64" ]; then - case ":$LD_LIBRARY_PATH:" in - *":$d:"*) :;; - *) export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$d;; - esac - else - case ":$LD_LIBRARY_PATH:" in - *":$d:"*) :;; - *) export LD_LIBRARY_PATH=$d:$LD_LIBRARY_PATH;; - esac - fi - done -} - -if [ "@EXTRA_SETUP_SCRIPT@" ]; then - if [ ! -e @EXTRA_SETUP_SCRIPT@ ]; then - echo "[WARN]: Extra setup script \"@EXTRA_SETUP_SCRIPT@\" requested, but could not be found. Skipping..." - else - echo "[INFO]: Sourcing extra setup from \"@EXTRA_SETUP_SCRIPT@\"." - . @EXTRA_SETUP_SCRIPT@ - fi -fi - -add_to_PATH "@CMAKE_INSTALL_PREFIX@/bin" - -add_to_LD_LIBRARY_PATH "@CMAKE_INSTALL_PREFIX@/lib" - -if [ ! "${ROOTSYS}" ]; then - echo "[INFO]: Sourcing ROOT from: @CMAKE_ROOTSYS@" - source "@CMAKE_ROOTSYS@/bin/thisroot.sh" -fi - -if [ "@USE_T2K@" != "FALSE" ]; then - echo "[INFO]: Adding T2K paths to the environment." - export T2KREWEIGHT=@T2KREWEIGHT@ - add_to_LD_LIBRARY_PATH "@T2KREWEIGHT@/lib" -fi - -if [ "@USE_NIWG@" != "FALSE" ]; then - echo "[INFO]: Adding NIWG paths to the environment." - export NIWG=@NIWG_ROOT@ - export NIWGREWEIGHT_INPUTS=@NIWG_ROOT@/inputs - add_to_LD_LIBRARY_PATH "@NIWG_ROOT@" -fi - -if [ "@USE_NEUT@" != "FALSE" ]; then - echo "[INFO]: Adding NEUT library paths to the environment." - export NEUT_ROOT=@NEUT_ROOT@ - export CERN=@CERN@ - export CERN_LEVEL=@CERN_LEVEL@ - add_to_LD_LIBRARY_PATH "${NEUT_LIB_DIR}" "${NEUT_ROOT}/src/reweight" -fi - -if [ "@USE_NUWRO@" != "FALSE" ]; then - if [ "@NUWRO_BUILT_FROM_FILE@" == "FALSE" ]; then - echo "[INFO]: Adding NuWro library paths to the environment." - export NUWRO="@NUWRO@" - - add_to_PATH "@NUWRO@/bin" - add_to_LD_LIBRARY_PATH "@NUWRO@/build/@CMAKE_SYSTEM_NAME@/lib" - - if [ "@NUWRO_INC@" ]; then - export NUWRO_INC=@NUWRO_INC@ - fi - - else - echo "[INFO]: NuWro support included from input event file." - fi -fi - -if [ "@NEED_PYTHIA6@" != "FALSE" ]; then - echo "[INFO]: Adding PYTHIA6 library paths to the environment." - export PYTHIA6="@PYTHIA6@" - - add_to_LD_LIBRARY_PATH "@PYTHIA6@" -fi - -if [ "@USE_GENIE@" != "FALSE" ]; then - echo "[INFO]: Adding GENIE paths to the environment." - - export GENIE="@GENIE@" - - export LHAPDF_LIB="@LHAPDF_LIB@" - export LHAPDF_INC="@LHAPDF_INC@" - - export LIBXML2_LIB="@LIBXML2_LIB@" - export LIBXML2_INC="@LIBXML2_INC@" - - export LOG4CPP_LIB="@LOG4CPP_LIB@" - export LOG4CPP_INC="@LOG4CPP_INC@" - - if [ "@LHAPATH@" ]; then - export LHAPATH="@LHAPATH@" - fi - - add_to_PATH "@GENIE@/bin" - - add_to_LD_LIBRARY_PATH "@GENIE@/lib" "@LHAPDF_LIB@" "@LIBXML2_LIB@" "@LOG4CPP_LIB@" - -fi - -if [ "@BUILD_GiBUU@" != "FALSE" ]; then - echo "[INFO]: Sourcing GiBUU tools." - source @CMAKE_BINARY_DIR@/GiBUUTools/src/GiBUUTools-build/Linux/setup.sh -fi - -if [ "@NUSYST_ROOT@" != "" ]; then - source @NUSYST_ROOT@/setup.sh -fi - -export NUISANCE="@CMAKE_SOURCE_DIR@" diff --git a/config/global/CMakeLists.txt b/config/global/CMakeLists.txt index caaac25..0b10902 100644 --- a/config/global/CMakeLists.txt +++ b/config/global/CMakeLists.txt @@ -1,18 +1,23 @@ configure_file(nuis.global.config.fcl.in "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/nuis.global.config.fcl" @ONLY) install(FILES "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/nuis.global.config.fcl" DESTINATION ${CMAKE_INSTALL_PREFIX}/fcl) SET(INuADataComparisons_FHiCL_Includes) foreach(fcl ${INuADataComparisons_FHiCL}) SET(INuADataComparisons_FHiCL_Includes "${INuADataComparisons_FHiCL_Includes}#include \"${fcl}\"\n") endforeach() +SET(IeADataComparisons_FHiCL_Includes) +foreach(fcl ${IeADataComparisons_FHiCL}) + SET(IeADataComparisons_FHiCL_Includes "${IeADataComparisons_FHiCL_Includes}#include \"${fcl}\"\n") +endforeach() + configure_file(nuis.datacomparisons.fcl.in "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/nuis.datacomparisons.fcl" @ONLY) install(FILES "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/nuis.datacomparisons.fcl" DESTINATION ${CMAKE_INSTALL_PREFIX}/fcl) diff --git a/config/global/nuis.datacomparisons.fcl.in b/config/global/nuis.datacomparisons.fcl.in index 471d2a8..5e22bbe 100644 --- a/config/global/nuis.datacomparisons.fcl.in +++ b/config/global/nuis.datacomparisons.fcl.in @@ -1,8 +1,9 @@ @INuADataComparisons_FHiCL_Includes@ +@IeADataComparisons_FHiCL_Includes@ data_comparisons: { nuA: [@INuADataComparisons_List@] - eA: [] + eA: [@IeADataComparisons_List@] piA: [] NA: [] } diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt index aafcffb..15c1b67 100644 --- a/data/CMakeLists.txt +++ b/data/CMakeLists.txt @@ -1,2 +1,3 @@ SET(DATA_INSTALL_DIR data) add_subdirectory(nuA) +add_subdirectory(eA) diff --git a/data/eA/CMakeLists.txt b/data/eA/CMakeLists.txt new file mode 100644 index 0000000..31e4994 --- /dev/null +++ b/data/eA/CMakeLists.txt @@ -0,0 +1,3 @@ +SET(DATA_INSTALL_DIR ${DATA_INSTALL_DIR}/eA) + +add_subdirectory(VirginiaArchive) diff --git a/data/eA/VirginiaArchive/CMakeLists.txt b/data/eA/VirginiaArchive/CMakeLists.txt new file mode 100644 index 0000000..58e6d12 --- /dev/null +++ b/data/eA/VirginiaArchive/CMakeLists.txt @@ -0,0 +1,5 @@ +SET(DATA_INSTALL_DIR ${DATA_INSTALL_DIR}/VirginiaArchive) + +FILE(GLOB DATA_FILES FHiCL/*.fcl) + +install(FILES ${DATA_FILES} DESTINATION ${DATA_INSTALL_DIR}) diff --git a/data/eA/VirginiaArchive/FHiCL/12C.fcl b/data/eA/VirginiaArchive/FHiCL/12C.fcl new file mode 100644 index 0000000..648cae9 --- /dev/null +++ b/data/eA/VirginiaArchive/FHiCL/12C.fcl @@ -0,0 +1,3545 @@ +datasets: [ + { + Author: "Barreau" + Year: "1983" + Citation: "Barreau:1983ht" + Target: [6, 12] + EIn: 0.160 + AngOut: 36.000 + Data: [ + [ 0.013, 4.1060e+05, 1.8320e+05 ], + [ 0.018, 4.0900e+05, 1.4750e+05 ], + [ 0.022, 7.9080e+05, 1.4650e+05 ], + [ 0.028, 5.4210e+05, 1.2300e+05 ], + ] + }, + { + Author: "Barreau" + Year: "1983" + Citation: "Barreau:1983ht" + Target: [6, 12] + EIn: 0.161 + AngOut: 60.000 + Data: [ + [ 0.008, 1.4680e+05, 1.9250e+04 ], + [ 0.013, 8.1090e+04, 1.0790e+04 ], + [ 0.018, 9.6280e+04, 9.2500e+03 ], + [ 0.023, 1.4710e+05, 9.3300e+03 ], + [ 0.028, 1.3280e+05, 8.3500e+03 ], + [ 0.033, 1.0100e+05, 7.3500e+03 ], + [ 0.038, 8.4780e+04, 6.8000e+03 ], + [ 0.043, 7.1350e+04, 6.3800e+03 ], + [ 0.048, 5.8670e+04, 6.0400e+03 ], + ] + }, + { + Author: "Barreau" + Year: "1983" + Citation: "Barreau:1983ht" + Target: [6, 12] + EIn: 0.200 + AngOut: 36.000 + Data: [ + [ 0.018, 4.3560e+05, 7.8200e+04 ], + [ 0.022, 6.0110e+05, 7.5400e+04 ], + [ 0.028, 6.5010e+05, 7.0570e+04 ], + [ 0.033, 4.5580e+05, 5.8990e+04 ], + [ 0.037, 3.7560e+05, 5.3380e+04 ], + [ 0.043, 2.7620e+05, 4.7410e+04 ], + [ 0.048, 2.0030e+05, 4.2920e+04 ], + ] + }, + { + Author: "Barreau" + Year: "1983" + Citation: "Barreau:1983ht" + Target: [6, 12] + EIn: 0.200 + AngOut: 60.000 + Data: [ + [ 0.007, 1.6400e+05, 1.2880e+04 ], + [ 0.013, 8.4410e+04, 5.9900e+03 ], + [ 0.018, 5.1280e+04, 4.2700e+03 ], + [ 0.022, 7.7990e+04, 4.7600e+03 ], + [ 0.028, 8.2410e+04, 4.7000e+03 ], + [ 0.033, 7.4080e+04, 4.3500e+03 ], + [ 0.037, 6.8520e+04, 4.1700e+03 ], + [ 0.043, 6.4950e+04, 4.0700e+03 ], + [ 0.048, 5.6440e+04, 3.8400e+03 ], + [ 0.052, 4.7050e+04, 3.6400e+03 ], + [ 0.058, 3.9000e+04, 3.5700e+03 ], + [ 0.062, 3.1660e+04, 3.3800e+03 ], + [ 0.068, 2.6050e+04, 3.2000e+03 ], + ] + }, + { + Author: "Barreau" + Year: "1983" + Citation: "Barreau:1983ht" + Target: [6, 12] + EIn: 0.240 + AngOut: 36.000 + Data: [ + [ 0.013, 3.6130e+05, 5.0450e+04 ], + [ 0.018, 3.0410e+05, 4.1200e+04 ], + [ 0.022, 4.9720e+05, 4.3530e+04 ], + [ 0.028, 4.6210e+05, 3.9490e+04 ], + [ 0.033, 3.6150e+05, 3.4100e+04 ], + [ 0.037, 2.9120e+05, 3.0190e+04 ], + [ 0.043, 2.6000e+05, 2.8030e+04 ], + [ 0.048, 2.0660e+05, 2.5240e+04 ], + [ 0.052, 1.9790e+05, 2.4360e+04 ], + [ 0.058, 1.3830e+05, 1.9810e+04 ], + [ 0.062, 1.0220e+05, 1.8420e+04 ], + ] + }, + { + Author: "Barreau" + Year: "1983" + Citation: "Barreau:1983ht" + Target: [6, 12] + EIn: 0.240 + AngOut: 60.000 + Data: [ + [ 0.003, 2.7070e+05, 7.1800e+03 ], + [ 0.008, 1.0670e+05, 4.1200e+03 ], + [ 0.013, 6.0580e+04, 1.8000e+03 ], + [ 0.018, 3.3090e+04, 1.3200e+03 ], + [ 0.023, 4.3270e+04, 1.4000e+03 ], + [ 0.028, 4.5830e+04, 1.3700e+03 ], + [ 0.033, 4.8900e+04, 1.4000e+03 ], + [ 0.038, 4.7980e+04, 1.4000e+03 ], + [ 0.043, 4.8650e+04, 1.4400e+03 ], + [ 0.048, 4.6260e+04, 1.4200e+03 ], + [ 0.053, 4.3750e+04, 1.4100e+03 ], + [ 0.058, 3.9630e+04, 1.3900e+03 ], + [ 0.063, 3.3680e+04, 1.3100e+03 ], + [ 0.068, 2.9580e+04, 1.2500e+03 ], + [ 0.073, 2.4830e+04, 1.2200e+03 ], + [ 0.078, 1.9880e+04, 1.1600e+03 ], + [ 0.083, 1.6970e+04, 1.1100e+03 ], + [ 0.088, 1.4830e+04, 1.1100e+03 ], + [ 0.093, 1.2020e+04, 1.0900e+03 ], + [ 0.098, 1.0710e+04, 1.1000e+03 ], + [ 0.103, 9.6500e+03, 1.1400e+03 ], + [ 0.108, 7.1400e+03, 1.1200e+03 ], + ] + }, + { + Author: "Barreau" + Year: "1983" + Citation: "Barreau:1983ht" + Target: [6, 12] + EIn: 0.280 + AngOut: 60.000 + Data: [ + [ 0.003, 4.8190e+04, 1.1800e+03 ], + [ 0.008, 5.6900e+04, 1.6500e+03 ], + [ 0.013, 3.9620e+04, 8.1000e+02 ], + [ 0.018, 2.1640e+04, 5.3000e+02 ], + [ 0.023, 2.6140e+04, 5.8000e+02 ], + [ 0.028, 2.6300e+04, 5.7000e+02 ], + [ 0.033, 3.1910e+04, 6.5000e+02 ], + [ 0.038, 3.4420e+04, 7.1000e+02 ], + [ 0.043, 3.6160e+04, 7.4000e+02 ], + [ 0.048, 3.8100e+04, 7.9000e+02 ], + [ 0.053, 3.8150e+04, 8.1000e+02 ], + [ 0.058, 3.6760e+04, 8.1000e+02 ], + [ 0.063, 3.4670e+04, 8.0000e+02 ], + [ 0.068, 3.1680e+04, 7.8000e+02 ], + [ 0.073, 2.8410e+04, 7.4000e+02 ], + [ 0.078, 2.4830e+04, 7.0000e+02 ], + [ 0.083, 2.1360e+04, 6.6000e+02 ], + [ 0.088, 1.8460e+04, 6.3000e+02 ], + [ 0.093, 1.5560e+04, 5.9000e+02 ], + [ 0.098, 1.3460e+04, 5.7000e+02 ], + [ 0.103, 1.1320e+04, 5.5000e+02 ], + [ 0.108, 1.0140e+04, 5.5000e+02 ], + [ 0.113, 8.6400e+03, 5.4000e+02 ], + [ 0.118, 7.6600e+03, 5.4000e+02 ], + [ 0.123, 6.4900e+03, 5.4000e+02 ], + [ 0.128, 5.8400e+03, 5.5000e+02 ], + [ 0.133, 5.3700e+03, 5.7000e+02 ], + [ 0.138, 4.9300e+03, 6.0000e+02 ], + ] + }, + { + Author: "Barreau" + Year: "1983" + Citation: "Barreau:1983ht" + Target: [6, 12] + EIn: 0.320 + AngOut: 36.000 + Data: [ + [ 0.013, 2.8410e+05, 1.7800e+04 ], + [ 0.018, 1.5420e+05, 1.1790e+04 ], + [ 0.022, 1.8710e+05, 1.1970e+04 ], + [ 0.028, 2.6020e+05, 1.3810e+04 ], + [ 0.033, 2.2770e+05, 1.2390e+04 ], + [ 0.037, 2.0430e+05, 1.1440e+04 ], + [ 0.043, 1.8800e+05, 1.0770e+04 ], + [ 0.048, 1.7590e+05, 1.0270e+04 ], + [ 0.052, 1.5170e+05, 9.4100e+03 ], + [ 0.058, 1.3370e+05, 8.7700e+03 ], + [ 0.062, 1.0750e+05, 7.8600e+03 ], + [ 0.068, 9.1440e+04, 7.2700e+03 ], + [ 0.072, 7.8750e+04, 6.8000e+03 ], + [ 0.077, 6.1850e+04, 6.1900e+03 ], + [ 0.083, 5.1520e+04, 5.8100e+03 ], + [ 0.087, 4.3880e+04, 5.5200e+03 ], + [ 0.092, 3.2750e+04, 4.7900e+03 ], + ] + }, + { + Author: "Barreau" + Year: "1983" + Citation: "Barreau:1983ht" + Target: [6, 12] + EIn: 0.320 + AngOut: 60.000 + Data: [ + [ 0.003, 4.6900e+03, 1.6000e+02 ], + [ 0.008, 3.0210e+04, 7.8000e+02 ], + [ 0.013, 2.3290e+04, 4.3000e+02 ], + [ 0.018, 1.6330e+04, 3.2000e+02 ], + [ 0.023, 1.8660e+04, 3.6000e+02 ], + [ 0.028, 1.7660e+04, 3.5000e+02 ], + [ 0.033, 2.0770e+04, 4.0000e+02 ], + [ 0.038, 2.1380e+04, 4.1000e+02 ], + [ 0.043, 2.3300e+04, 4.4000e+02 ], + [ 0.048, 2.4740e+04, 4.7000e+02 ], + [ 0.053, 2.5830e+04, 4.9000e+02 ], + [ 0.058, 2.6260e+04, 5.1000e+02 ], + [ 0.063, 2.6370e+04, 5.3000e+02 ], + [ 0.068, 2.5960e+04, 5.4000e+02 ], + [ 0.073, 2.4810e+04, 5.4000e+02 ], + [ 0.078, 2.2320e+04, 5.1000e+02 ], + [ 0.083, 2.0460e+04, 4.9000e+02 ], + [ 0.088, 1.8140e+04, 4.6000e+02 ], + [ 0.093, 1.5960e+04, 4.4000e+02 ], + [ 0.098, 1.4210e+04, 4.2000e+02 ], + [ 0.103, 1.2220e+04, 4.0000e+02 ], + [ 0.108, 1.0730e+04, 3.8000e+02 ], + [ 0.113, 9.3200e+03, 3.7000e+02 ], + [ 0.118, 8.1500e+03, 3.5000e+02 ], + [ 0.123, 7.1400e+03, 3.4000e+02 ], + [ 0.128, 6.1800e+03, 3.3000e+02 ], + [ 0.133, 5.6800e+03, 3.2000e+02 ], + [ 0.138, 5.2600e+03, 3.2000e+02 ], + [ 0.143, 4.6000e+03, 3.2000e+02 ], + [ 0.148, 4.1800e+03, 3.3000e+02 ], + [ 0.153, 3.8100e+03, 3.4000e+02 ], + [ 0.158, 3.3900e+03, 3.5000e+02 ], + [ 0.163, 3.0500e+03, 3.6000e+02 ], + [ 0.168, 2.8600e+03, 3.9000e+02 ], + ] + }, + { + Author: "Barreau" + Year: "1983" + Citation: "Barreau:1983ht" + Target: [6, 12] + EIn: 0.361 + AngOut: 60.000 + Data: [ + [ 0.003, 2.0000e+02, 8.0000e+01 ], + [ 0.008, 8.0100e+03, 2.7000e+02 ], + [ 0.013, 8.5300e+03, 2.1000e+02 ], + [ 0.018, 8.8100e+03, 1.6000e+02 ], + [ 0.023, 9.2000e+03, 1.9000e+02 ], + [ 0.028, 9.2400e+03, 1.7000e+02 ], + [ 0.033, 1.0600e+04, 1.9000e+02 ], + [ 0.038, 1.1880e+04, 2.1000e+02 ], + [ 0.043, 1.3230e+04, 2.3000e+02 ], + [ 0.048, 1.4690e+04, 2.6000e+02 ], + [ 0.053, 1.6020e+04, 2.8000e+02 ], + [ 0.058, 1.7330e+04, 3.0000e+02 ], + [ 0.063, 1.8280e+04, 3.2000e+02 ], + [ 0.068, 1.9050e+04, 3.3000e+02 ], + [ 0.073, 1.9330e+04, 3.5000e+02 ], + [ 0.078, 1.9400e+04, 3.6000e+02 ], + [ 0.083, 1.8910e+04, 3.6000e+02 ], + [ 0.088, 1.7980e+04, 3.5000e+02 ], + [ 0.093, 1.7180e+04, 3.4000e+02 ], + [ 0.098, 1.5760e+04, 3.3000e+02 ], + [ 0.103, 1.4450e+04, 3.2000e+02 ], + [ 0.108, 1.2910e+04, 3.0000e+02 ], + [ 0.113, 1.1670e+04, 2.9000e+02 ], + [ 0.118, 1.0250e+04, 2.7000e+02 ], + [ 0.123, 9.0500e+03, 2.5000e+02 ], + [ 0.128, 8.0700e+03, 2.4000e+02 ], + [ 0.133, 7.0500e+03, 2.3000e+02 ], + [ 0.138, 6.3500e+03, 2.2000e+02 ], + [ 0.143, 5.5600e+03, 2.1000e+02 ], + [ 0.148, 5.0200e+03, 2.1000e+02 ], + [ 0.153, 4.6700e+03, 2.1000e+02 ], + [ 0.158, 4.2300e+03, 2.0000e+02 ], + [ 0.163, 3.8100e+03, 2.0000e+02 ], + [ 0.168, 3.7100e+03, 2.1000e+02 ], + [ 0.173, 3.4200e+03, 2.1000e+02 ], + [ 0.178, 3.3300e+03, 2.2000e+02 ], + [ 0.183, 3.2000e+03, 2.3000e+02 ], + [ 0.188, 3.1800e+03, 2.5000e+02 ], + [ 0.193, 3.2200e+03, 2.6000e+02 ], + [ 0.198, 3.2400e+03, 2.8000e+02 ], + [ 0.203, 3.3300e+03, 3.0000e+02 ], + [ 0.208, 3.4000e+03, 3.3000e+02 ], + [ 0.213, 3.5900e+03, 3.6000e+02 ], + [ 0.218, 3.8700e+03, 3.9000e+02 ], + [ 0.223, 4.0600e+03, 4.3000e+02 ], + [ 0.228, 4.2900e+03, 4.8000e+02 ], + ] + }, + { + Author: "Barreau" + Year: "1983" + Citation: "Barreau:1983ht" + Target: [6, 12] + EIn: 0.400 + AngOut: 36.000 + Data: [ + [ 0.013, 1.8100e+05, 7.5500e+03 ], + [ 0.018, 1.2450e+05, 5.7000e+03 ], + [ 0.022, 1.1090e+05, 5.2600e+03 ], + [ 0.028, 1.2570e+05, 5.6500e+03 ], + [ 0.033, 1.3790e+05, 5.9900e+03 ], + [ 0.037, 1.3980e+05, 6.0600e+03 ], + [ 0.043, 1.3240e+05, 5.8700e+03 ], + [ 0.048, 1.3420e+05, 5.5100e+03 ], + [ 0.052, 1.2990e+05, 5.4000e+03 ], + [ 0.058, 1.2290e+05, 5.1900e+03 ], + [ 0.062, 1.1540e+05, 4.9800e+03 ], + [ 0.068, 9.6580e+04, 4.4400e+03 ], + [ 0.072, 8.9120e+04, 4.2200e+03 ], + [ 0.077, 7.7230e+04, 3.8500e+03 ], + [ 0.083, 6.3340e+04, 3.4300e+03 ], + [ 0.087, 5.6660e+04, 3.2100e+03 ], + [ 0.092, 4.8490e+04, 2.9500e+03 ], + [ 0.098, 4.1300e+04, 2.7200e+03 ], + [ 0.102, 3.4030e+04, 2.4900e+03 ], + [ 0.107, 3.0360e+04, 2.3700e+03 ], + [ 0.113, 2.4060e+04, 2.1700e+03 ], + [ 0.117, 2.1810e+04, 1.9700e+03 ], + [ 0.122, 1.9590e+04, 2.0600e+03 ], + [ 0.128, 1.6400e+04, 1.9600e+03 ], + [ 0.133, 1.5700e+04, 1.9600e+03 ], + [ 0.138, 1.3260e+04, 1.9000e+03 ], + [ 0.142, 1.2450e+04, 1.9000e+03 ], + [ 0.147, 1.3530e+04, 1.9600e+03 ], + [ 0.152, 1.1870e+04, 1.9400e+03 ], + [ 0.158, 1.0200e+04, 1.9200e+03 ], + ] + }, + { + Author: "Barreau" + Year: "1983" + Citation: "Barreau:1983ht" + Target: [6, 12] + EIn: 0.401 + AngOut: 60.000 + Data: [ + [ 0.009, 1.0500e+03, 4.0000e+01 ], + [ 0.013, 4.4400e+03, 1.0000e+02 ], + [ 0.018, 4.7100e+03, 1.0000e+02 ], + [ 0.024, 4.2000e+03, 9.0000e+01 ], + [ 0.029, 6.1500e+03, 1.2000e+02 ], + [ 0.034, 5.8300e+03, 1.1000e+02 ], + [ 0.038, 6.9400e+03, 1.3000e+02 ], + [ 0.043, 7.8800e+03, 1.4000e+02 ], + [ 0.049, 8.9100e+03, 1.6000e+02 ], + [ 0.053, 1.0170e+04, 1.8000e+02 ], + [ 0.059, 1.0980e+04, 1.9000e+02 ], + [ 0.064, 1.1980e+04, 2.0000e+02 ], + [ 0.069, 1.2940e+04, 2.2000e+02 ], + [ 0.073, 1.3590e+04, 2.4000e+02 ], + [ 0.079, 1.3680e+04, 2.5000e+02 ], + [ 0.084, 1.4260e+04, 2.7000e+02 ], + [ 0.088, 1.4610e+04, 2.7000e+02 ], + [ 0.093, 1.4300e+04, 2.7000e+02 ], + [ 0.099, 1.3830e+04, 2.8000e+02 ], + [ 0.103, 1.3420e+04, 2.8000e+02 ], + [ 0.108, 1.2540e+04, 2.7000e+02 ], + [ 0.114, 1.2050e+04, 2.6000e+02 ], + [ 0.118, 1.1140e+04, 2.4000e+02 ], + [ 0.123, 1.0350e+04, 2.3000e+02 ], + [ 0.129, 9.1100e+03, 2.2000e+02 ], + [ 0.134, 8.2800e+03, 2.1000e+02 ], + [ 0.139, 7.5300e+03, 2.0000e+02 ], + [ 0.143, 6.8000e+03, 1.9000e+02 ], + [ 0.148, 6.2700e+03, 1.8000e+02 ], + [ 0.153, 5.6400e+03, 1.7000e+02 ], + [ 0.159, 5.1400e+03, 1.6000e+02 ], + [ 0.164, 4.7400e+03, 1.6000e+02 ], + [ 0.169, 4.4100e+03, 1.5000e+02 ], + [ 0.173, 4.1500e+03, 1.5000e+02 ], + [ 0.178, 3.8400e+03, 1.5000e+02 ], + [ 0.183, 3.6900e+03, 1.5000e+02 ], + [ 0.189, 3.5200e+03, 1.5000e+02 ], + [ 0.194, 3.4500e+03, 1.5000e+02 ], + [ 0.199, 3.4300e+03, 1.5000e+02 ], + [ 0.203, 3.4500e+03, 1.6000e+02 ], + [ 0.208, 3.4200e+03, 1.7000e+02 ], + [ 0.213, 3.4900e+03, 1.8000e+02 ], + [ 0.218, 3.6500e+03, 1.9000e+02 ], + [ 0.224, 3.7700e+03, 2.1000e+02 ], + [ 0.229, 3.8800e+03, 2.2000e+02 ], + [ 0.234, 4.0400e+03, 2.4000e+02 ], + [ 0.238, 4.2300e+03, 2.6000e+02 ], + [ 0.243, 4.4200e+03, 2.8000e+02 ], + [ 0.248, 4.5700e+03, 3.1000e+02 ], + [ 0.254, 4.7800e+03, 3.4000e+02 ], + [ 0.259, 5.0800e+03, 3.7000e+02 ], + [ 0.264, 5.1700e+03, 4.1000e+02 ], + [ 0.269, 5.1100e+03, 4.4000e+02 ], + ] + }, + { + Author: "Barreau" + Year: "1983" + Citation: "Barreau:1983ht" + Target: [6, 12] + EIn: 0.440 + AngOut: 60.000 + Data: [ + [ 0.007, 8.3000e+02, 3.0000e+01 ], + [ 0.013, 1.2100e+03, 4.0000e+01 ], + [ 0.018, 1.3200e+03, 3.0000e+01 ], + [ 0.022, 1.7700e+03, 3.0000e+01 ], + [ 0.028, 2.9600e+03, 5.0000e+01 ], + [ 0.033, 3.1400e+03, 6.0000e+01 ], + [ 0.037, 3.6400e+03, 6.0000e+01 ], + [ 0.043, 4.3600e+03, 7.0000e+01 ], + [ 0.048, 4.9400e+03, 8.0000e+01 ], + [ 0.052, 5.8000e+03, 9.0000e+01 ], + [ 0.058, 6.5300e+03, 1.0000e+02 ], + [ 0.062, 7.4400e+03, 1.2000e+02 ], + [ 0.068, 8.0900e+03, 1.3000e+02 ], + [ 0.072, 8.9200e+03, 1.4000e+02 ], + [ 0.077, 9.4700e+03, 1.5000e+02 ], + [ 0.083, 9.9500e+03, 1.6000e+02 ], + [ 0.087, 1.0260e+04, 1.7000e+02 ], + [ 0.092, 1.0760e+04, 1.8000e+02 ], + [ 0.098, 1.0920e+04, 1.9000e+02 ], + [ 0.102, 1.1230e+04, 2.0000e+02 ], + [ 0.107, 1.1070e+04, 2.0000e+02 ], + [ 0.113, 1.0810e+04, 2.0000e+02 ], + [ 0.117, 1.0590e+04, 2.0000e+02 ], + [ 0.122, 1.0170e+04, 2.1000e+02 ], + [ 0.128, 9.6400e+03, 2.0000e+02 ], + [ 0.133, 8.8100e+03, 2.0000e+02 ], + [ 0.138, 8.3800e+03, 2.0000e+02 ], + [ 0.142, 7.5600e+03, 1.9000e+02 ], + [ 0.147, 7.0100e+03, 1.8000e+02 ], + [ 0.152, 6.2900e+03, 1.6000e+02 ], + [ 0.158, 5.2900e+03, 1.5000e+02 ], + [ 0.163, 5.3600e+03, 2.0000e+02 ], + [ 0.168, 4.7300e+03, 1.5000e+02 ], + [ 0.172, 4.4100e+03, 1.3000e+02 ], + [ 0.177, 3.9000e+03, 1.3000e+02 ], + [ 0.182, 3.5500e+03, 1.2000e+02 ], + [ 0.188, 3.5500e+03, 1.2000e+02 ], + [ 0.193, 3.2500e+03, 1.1000e+02 ], + [ 0.198, 3.3800e+03, 1.1000e+02 ], + [ 0.203, 3.2800e+03, 1.1000e+02 ], + [ 0.207, 3.1600e+03, 1.1000e+02 ], + [ 0.212, 3.2000e+03, 1.1000e+02 ], + [ 0.217, 3.2300e+03, 1.2000e+02 ], + [ 0.223, 3.2500e+03, 1.2000e+02 ], + [ 0.228, 3.2800e+03, 1.2000e+02 ], + [ 0.233, 3.3800e+03, 1.3000e+02 ], + [ 0.237, 3.4900e+03, 1.4000e+02 ], + [ 0.242, 3.6800e+03, 1.5000e+02 ], + [ 0.247, 3.7600e+03, 1.5000e+02 ], + [ 0.253, 3.9000e+03, 1.6000e+02 ], + [ 0.258, 3.9900e+03, 1.8000e+02 ], + [ 0.263, 4.1000e+03, 1.9000e+02 ], + [ 0.268, 4.2600e+03, 2.0000e+02 ], + [ 0.273, 4.3800e+03, 2.2000e+02 ], + [ 0.278, 4.5400e+03, 2.4000e+02 ], + ] + }, + { + Author: "Barreau" + Year: "1983" + Citation: "Barreau:1983ht" + Target: [6, 12] + EIn: 0.480 + AngOut: 36.000 + Data: [ + [ 0.013, 1.0170e+05, 3.3800e+03 ], + [ 0.018, 8.2540e+04, 2.8800e+03 ], + [ 0.022, 6.2480e+04, 2.3800e+03 ], + [ 0.028, 6.0700e+04, 2.3600e+03 ], + [ 0.033, 7.4870e+04, 2.7900e+03 ], + [ 0.037, 7.6930e+04, 2.8800e+03 ], + [ 0.043, 8.2520e+04, 2.8200e+03 ], + [ 0.048, 8.6860e+04, 2.9700e+03 ], + [ 0.052, 9.0870e+04, 3.1300e+03 ], + [ 0.058, 9.0590e+04, 3.1800e+03 ], + [ 0.062, 8.8260e+04, 3.1500e+03 ], + [ 0.068, 8.6560e+04, 3.1300e+03 ], + [ 0.072, 8.0110e+04, 2.9700e+03 ], + [ 0.077, 7.4390e+04, 2.8200e+03 ], + [ 0.083, 6.8270e+04, 2.6600e+03 ], + [ 0.087, 6.2230e+04, 2.4900e+03 ], + [ 0.092, 5.5530e+04, 2.2900e+03 ], + [ 0.098, 4.8520e+04, 2.0900e+03 ], + [ 0.102, 4.2720e+04, 1.9100e+03 ], + [ 0.107, 3.6610e+04, 1.7300e+03 ], + [ 0.113, 3.2870e+04, 1.6100e+03 ], + [ 0.117, 2.8140e+04, 1.4600e+03 ], + [ 0.122, 2.4910e+04, 1.3600e+03 ], + [ 0.128, 2.2050e+04, 1.2400e+03 ], + [ 0.133, 1.9570e+04, 1.1600e+03 ], + [ 0.138, 1.7090e+04, 1.2300e+03 ], + [ 0.142, 1.4850e+04, 1.1500e+03 ], + [ 0.147, 1.4320e+04, 1.1300e+03 ], + [ 0.152, 1.2820e+04, 1.0900e+03 ], + [ 0.158, 1.1860e+04, 1.0600e+03 ], + [ 0.163, 1.1580e+04, 1.0500e+03 ], + [ 0.168, 1.1460e+04, 1.0500e+03 ], + [ 0.172, 1.1510e+04, 1.0600e+03 ], + [ 0.177, 1.1320e+04, 1.0600e+03 ], + [ 0.182, 1.0280e+04, 1.0400e+03 ], + [ 0.188, 9.8700e+03, 1.0400e+03 ], + [ 0.193, 9.1000e+03, 1.0300e+03 ], + [ 0.198, 9.8700e+03, 9.6000e+02 ], + [ 0.203, 1.0450e+04, 9.9000e+02 ], + [ 0.207, 1.1760e+04, 1.1300e+03 ], + [ 0.212, 1.2070e+04, 1.1700e+03 ], + [ 0.217, 1.2000e+04, 1.1900e+03 ], + [ 0.223, 1.2410e+04, 1.2400e+03 ], + [ 0.228, 1.3280e+04, 1.3000e+03 ], + [ 0.233, 1.3460e+04, 1.3500e+03 ], + [ 0.237, 1.3960e+04, 1.4100e+03 ], + [ 0.242, 1.3920e+04, 1.4500e+03 ], + [ 0.247, 1.4660e+04, 1.5200e+03 ], + [ 0.253, 1.5660e+04, 1.6100e+03 ], + [ 0.258, 1.4070e+04, 1.6100e+03 ], + [ 0.263, 1.5270e+04, 1.7100e+03 ], + [ 0.268, 1.4210e+04, 1.7400e+03 ], + [ 0.273, 1.6380e+04, 1.9800e+03 ], + [ 0.278, 1.6540e+04, 1.9700e+03 ], + [ 0.282, 1.6230e+04, 2.0400e+03 ], + [ 0.287, 1.6310e+04, 2.1400e+03 ], + [ 0.292, 1.6800e+04, 2.2600e+03 ], + [ 0.297, 1.5240e+04, 2.2400e+03 ], + [ 0.302, 1.6810e+04, 2.4200e+03 ], + [ 0.307, 1.9220e+04, 2.7200e+03 ], + ] + }, + { + Author: "Barreau" + Year: "1983" + Citation: "Barreau:1983ht" + Target: [6, 12] + EIn: 0.480 + AngOut: 60.000 + Data: [ + [ 0.012, 3.8000e+02, 1.0000e+01 ], + [ 0.017, 3.5000e+02, 2.0000e+01 ], + [ 0.022, 4.9000e+02, 2.0000e+01 ], + [ 0.027, 1.2600e+03, 3.0000e+01 ], + [ 0.032, 1.7000e+03, 3.0000e+01 ], + [ 0.037, 1.7700e+03, 4.0000e+01 ], + [ 0.042, 2.2500e+03, 4.0000e+01 ], + [ 0.047, 2.6000e+03, 5.0000e+01 ], + [ 0.052, 3.1400e+03, 6.0000e+01 ], + [ 0.057, 3.6000e+03, 6.0000e+01 ], + [ 0.062, 4.1500e+03, 7.0000e+01 ], + [ 0.067, 4.7800e+03, 8.0000e+01 ], + [ 0.072, 5.2700e+03, 9.0000e+01 ], + [ 0.077, 5.7400e+03, 1.0000e+02 ], + [ 0.082, 6.2600e+03, 1.0000e+02 ], + [ 0.087, 6.6600e+03, 1.1000e+02 ], + [ 0.092, 6.9900e+03, 1.2000e+02 ], + [ 0.097, 7.5100e+03, 1.3000e+02 ], + [ 0.102, 7.6900e+03, 1.3000e+02 ], + [ 0.107, 7.8900e+03, 1.4000e+02 ], + [ 0.112, 8.1900e+03, 1.4000e+02 ], + [ 0.117, 8.0100e+03, 1.5000e+02 ], + [ 0.122, 8.1200e+03, 1.5000e+02 ], + [ 0.127, 8.1500e+03, 1.5000e+02 ], + [ 0.132, 7.9300e+03, 1.5000e+02 ], + [ 0.137, 7.6500e+03, 1.5000e+02 ], + [ 0.142, 7.1400e+03, 1.5000e+02 ], + [ 0.147, 6.6400e+03, 1.4000e+02 ], + [ 0.152, 6.2900e+03, 1.4000e+02 ], + [ 0.157, 5.8600e+03, 1.4000e+02 ], + [ 0.162, 5.5000e+03, 1.3000e+02 ], + [ 0.167, 5.1700e+03, 1.2000e+02 ], + [ 0.172, 4.6800e+03, 1.1000e+02 ], + [ 0.177, 4.3300e+03, 1.1000e+02 ], + [ 0.182, 3.9900e+03, 1.1000e+02 ], + [ 0.187, 3.6800e+03, 1.0000e+02 ], + [ 0.192, 3.4100e+03, 1.0000e+02 ], + [ 0.197, 3.2600e+03, 9.0000e+01 ], + [ 0.202, 3.1000e+03, 9.0000e+01 ], + [ 0.207, 2.9600e+03, 9.0000e+01 ], + [ 0.212, 2.8500e+03, 9.0000e+01 ], + [ 0.217, 2.7600e+03, 9.0000e+01 ], + [ 0.222, 2.6900e+03, 9.0000e+01 ], + [ 0.227, 2.7100e+03, 9.0000e+01 ], + [ 0.232, 2.7000e+03, 9.0000e+01 ], + [ 0.237, 2.7900e+03, 9.0000e+01 ], + [ 0.242, 2.7700e+03, 1.0000e+02 ], + [ 0.247, 2.9400e+03, 1.0000e+02 ], + [ 0.252, 3.0700e+03, 1.1000e+02 ], + [ 0.257, 3.1800e+03, 1.1000e+02 ], + [ 0.262, 3.2100e+03, 1.2000e+02 ], + [ 0.267, 3.3000e+03, 1.2000e+02 ], + [ 0.272, 3.3300e+03, 1.4000e+02 ], + [ 0.277, 3.4700e+03, 1.4000e+02 ], + [ 0.282, 3.6500e+03, 1.4000e+02 ], + [ 0.287, 3.7000e+03, 1.5000e+02 ], + [ 0.292, 3.8200e+03, 1.7000e+02 ], + [ 0.297, 4.0400e+03, 1.7000e+02 ], + [ 0.302, 4.0000e+03, 1.8000e+02 ], + [ 0.307, 4.1100e+03, 1.9000e+02 ], + [ 0.312, 4.3400e+03, 2.1000e+02 ], + [ 0.317, 4.3800e+03, 2.2000e+02 ], + [ 0.322, 4.2600e+03, 2.4000e+02 ], + [ 0.327, 4.4500e+03, 2.6000e+02 ], + [ 0.332, 4.5500e+03, 2.9000e+02 ], + [ 0.337, 4.5300e+03, 3.1000e+02 ], + [ 0.342, 4.6200e+03, 4.0000e+02 ], + ] + }, + { + Author: "Whitney" + Year: "1974" + Citation: "Whitney:1974hr" + Target: [6, 12] + EIn: 0.500 + AngOut: 60.000 + Data: [ + [ 0.020, 1.7900e+02, 1.9000e+01 ], + [ 0.026, 1.0200e+02, 1.3000e+01 ], + [ 0.030, 5.7500e+02, 5.2000e+01 ], + [ 0.036, 1.3800e+03, 1.1000e+02 ], + [ 0.040, 1.2000e+03, 9.0000e+01 ], + [ 0.046, 9.2100e+02, 7.1000e+01 ], + [ 0.056, 1.2600e+03, 7.0000e+01 ], + [ 0.060, 2.5900e+03, 1.3000e+02 ], + [ 0.066, 2.9900e+03, 1.4000e+02 ], + [ 0.076, 3.7500e+03, 1.5000e+02 ], + [ 0.086, 4.7500e+03, 1.9000e+02 ], + [ 0.096, 5.4600e+03, 2.2000e+02 ], + [ 0.100, 6.2500e+03, 2.5000e+02 ], + [ 0.105, 6.3200e+03, 2.6000e+02 ], + [ 0.114, 7.0900e+03, 2.8000e+02 ], + [ 0.125, 6.9700e+03, 2.8000e+02 ], + [ 0.135, 7.2800e+03, 2.9000e+02 ], + [ 0.140, 6.6100e+03, 2.8000e+02 ], + [ 0.145, 6.9700e+03, 2.8000e+02 ], + [ 0.155, 6.5400e+03, 2.6000e+02 ], + [ 0.165, 5.9100e+03, 2.4000e+02 ], + [ 0.174, 5.2300e+03, 2.1000e+02 ], + [ 0.184, 4.4300e+03, 1.8000e+02 ], + [ 0.194, 3.7900e+03, 1.5000e+02 ], + [ 0.204, 3.3800e+03, 1.4000e+02 ], + [ 0.214, 2.9600e+03, 1.4000e+02 ], + [ 0.224, 2.6400e+03, 1.3000e+02 ], + [ 0.234, 2.6100e+03, 1.4000e+02 ], + [ 0.244, 2.4300e+03, 1.5000e+02 ], + [ 0.253, 2.5500e+03, 1.6000e+02 ], + [ 0.263, 2.5400e+03, 1.6000e+02 ], + [ 0.273, 2.8800e+03, 1.9000e+02 ], + [ 0.283, 2.9400e+03, 2.1000e+02 ], + [ 0.293, 2.9400e+03, 2.1000e+02 ], + [ 0.303, 3.4200e+03, 2.4000e+02 ], + ] + }, + { + Author: "Barreau" + Year: "1983" + Citation: "Barreau:1983ht" + Target: [6, 12] + EIn: 0.519 + AngOut: 60.000 + Data: [ + [ 0.011, 2.5000e+02, 2.0000e+01 ], + [ 0.021, 9.0000e+01, 1.0000e+01 ], + [ 0.031, 8.2000e+02, 3.0000e+01 ], + [ 0.041, 1.0400e+03, 4.0000e+01 ], + [ 0.051, 1.5900e+03, 4.0000e+01 ], + [ 0.061, 2.3000e+03, 5.0000e+01 ], + [ 0.071, 3.1300e+03, 7.0000e+01 ], + [ 0.081, 3.8300e+03, 8.0000e+01 ], + [ 0.091, 4.6600e+03, 9.0000e+01 ], + [ 0.101, 5.3000e+03, 1.0000e+02 ], + [ 0.111, 5.9800e+03, 1.2000e+02 ], + [ 0.121, 6.2800e+03, 1.2000e+02 ], + [ 0.131, 6.4000e+03, 1.2000e+02 ], + [ 0.141, 6.4400e+03, 1.3000e+02 ], + [ 0.151, 6.0600e+03, 1.3000e+02 ], + [ 0.161, 5.4900e+03, 1.2000e+02 ], + [ 0.171, 4.9100e+03, 1.2000e+02 ], + [ 0.181, 4.2800e+03, 1.1000e+02 ], + [ 0.191, 3.5300e+03, 1.0000e+02 ], + [ 0.201, 3.1900e+03, 1.0000e+02 ], + [ 0.211, 2.8800e+03, 9.0000e+01 ], + [ 0.221, 2.5100e+03, 8.0000e+01 ], + [ 0.231, 2.3600e+03, 8.0000e+01 ], + [ 0.241, 2.3100e+03, 8.0000e+01 ], + [ 0.251, 2.4300e+03, 8.0000e+01 ], + [ 0.261, 2.6200e+03, 9.0000e+01 ], + [ 0.271, 2.6500e+03, 1.0000e+02 ], + [ 0.281, 3.0900e+03, 1.0000e+02 ], + [ 0.291, 3.2000e+03, 1.1000e+02 ], + [ 0.301, 3.4700e+03, 1.2000e+02 ], + [ 0.311, 3.5600e+03, 1.2000e+02 ], + [ 0.321, 3.8100e+03, 1.4000e+02 ], + [ 0.331, 3.8500e+03, 1.5000e+02 ], + [ 0.341, 3.8400e+03, 1.7000e+02 ], + [ 0.351, 4.1300e+03, 2.0000e+02 ], + [ 0.361, 4.0000e+03, 2.3000e+02 ], + [ 0.371, 3.9200e+03, 2.7000e+02 ], + ] + }, + { + Author: "Barreau" + Year: "1983" + Citation: "Barreau:1983ht" + Target: [6, 12] + EIn: 0.560 + AngOut: 36.000 + Data: [ + [ 0.013, 5.2550e+04, 1.6500e+03 ], + [ 0.022, 3.0650e+04, 1.0900e+03 ], + [ 0.033, 3.5030e+04, 1.2500e+03 ], + [ 0.043, 4.4090e+04, 1.5500e+03 ], + [ 0.052, 5.1190e+04, 2.0000e+03 ], + [ 0.062, 5.5510e+04, 2.1700e+03 ], + [ 0.072, 5.8570e+04, 2.3000e+03 ], + [ 0.083, 5.5270e+04, 2.2500e+03 ], + [ 0.092, 5.3500e+04, 2.2200e+03 ], + [ 0.102, 4.5030e+04, 2.0000e+03 ], + [ 0.113, 3.7340e+04, 1.7700e+03 ], + [ 0.122, 3.0420e+04, 1.3500e+03 ], + [ 0.133, 2.3200e+04, 1.1300e+03 ], + [ 0.142, 1.8790e+04, 1.0400e+03 ], + [ 0.152, 1.5700e+04, 9.4000e+02 ], + [ 0.163, 1.2760e+04, 8.4000e+02 ], + [ 0.172, 1.0740e+04, 7.6000e+02 ], + [ 0.182, 9.1500e+03, 7.1000e+02 ], + [ 0.193, 9.9900e+03, 7.3000e+02 ], + [ 0.203, 9.5600e+03, 7.2000e+02 ], + [ 0.212, 9.8300e+03, 6.3000e+02 ], + [ 0.223, 9.7600e+03, 6.7000e+02 ], + [ 0.233, 1.0560e+04, 7.1000e+02 ], + [ 0.242, 1.0890e+04, 7.4000e+02 ], + [ 0.253, 1.2560e+04, 8.1000e+02 ], + [ 0.263, 1.1700e+04, 8.2000e+02 ], + [ 0.273, 1.3180e+04, 9.0000e+02 ], + [ 0.282, 1.4010e+04, 9.2000e+02 ], + [ 0.292, 1.4230e+04, 1.0500e+03 ], + [ 0.302, 1.3360e+04, 1.0800e+03 ], + [ 0.312, 1.4040e+04, 1.1600e+03 ], + [ 0.323, 1.3960e+04, 1.2300e+03 ], + [ 0.333, 1.4960e+04, 1.3500e+03 ], + [ 0.343, 1.4280e+04, 1.4600e+03 ], + [ 0.352, 1.4780e+04, 1.5900e+03 ], + [ 0.362, 1.3780e+04, 1.6800e+03 ], + [ 0.372, 1.4170e+04, 1.8600e+03 ], + [ 0.383, 1.2780e+04, 1.9200e+03 ], + ] + }, + { + Author: "Barreau" + Year: "1983" + Citation: "Barreau:1983ht" + Target: [6, 12] + EIn: 0.560 + AngOut: 60.000 + Data: [ + [ 0.013, 3.0000e+01, 1.0000e+01 ], + [ 0.022, 3.0000e+01, 1.0000e+01 ], + [ 0.033, 3.2000e+02, 2.0000e+01 ], + [ 0.043, 4.8000e+02, 2.0000e+01 ], + [ 0.052, 7.5000e+02, 4.0000e+01 ], + [ 0.062, 1.1700e+03, 6.0000e+01 ], + [ 0.072, 1.6200e+03, 7.0000e+01 ], + [ 0.083, 2.2100e+03, 9.0000e+01 ], + [ 0.092, 2.7800e+03, 1.1000e+02 ], + [ 0.102, 3.4300e+03, 1.4000e+02 ], + [ 0.113, 3.9300e+03, 1.5000e+02 ], + [ 0.122, 4.5400e+03, 1.6000e+02 ], + [ 0.133, 4.7600e+03, 1.7000e+02 ], + [ 0.142, 4.9600e+03, 1.9000e+02 ], + [ 0.152, 4.9500e+03, 1.9000e+02 ], + [ 0.163, 4.8200e+03, 1.9000e+02 ], + [ 0.172, 4.6700e+03, 1.9000e+02 ], + [ 0.182, 4.2600e+03, 1.8000e+02 ], + [ 0.193, 3.9700e+03, 1.7000e+02 ], + [ 0.203, 3.5100e+03, 1.6000e+02 ], + [ 0.212, 2.9300e+03, 1.3000e+02 ], + [ 0.223, 2.5600e+03, 1.4000e+02 ], + [ 0.233, 2.3800e+03, 1.3000e+02 ], + [ 0.242, 2.1200e+03, 1.2000e+02 ], + [ 0.253, 2.1000e+03, 1.2000e+02 ], + [ 0.263, 2.0500e+03, 1.2000e+02 ], + [ 0.273, 2.2100e+03, 1.3000e+02 ], + [ 0.282, 2.2400e+03, 1.2000e+02 ], + [ 0.292, 2.3300e+03, 1.4000e+02 ], + [ 0.302, 2.5200e+03, 1.5000e+02 ], + [ 0.312, 2.7600e+03, 1.6000e+02 ], + [ 0.323, 2.8200e+03, 1.7000e+02 ], + [ 0.333, 3.1100e+03, 1.8000e+02 ], + [ 0.343, 3.2400e+03, 2.0000e+02 ], + [ 0.352, 3.1000e+03, 2.1000e+02 ], + [ 0.362, 3.4200e+03, 2.3000e+02 ], + [ 0.372, 3.6300e+03, 2.6000e+02 ], + [ 0.383, 3.4000e+03, 2.6000e+02 ], + [ 0.393, 3.3600e+03, 3.0000e+02 ], + [ 0.403, 3.2800e+03, 3.3000e+02 ], + [ 0.412, 3.1300e+03, 3.6000e+02 ], + [ 0.422, 2.8900e+03, 4.2000e+02 ], + [ 0.432, 2.8600e+03, 4.9000e+02 ], + [ 0.443, 2.4900e+03, 5.9000e+02 ], + ] + }, + { + Author: "Barreau" + Year: "1983" + Citation: "Barreau:1983ht" + Target: [6, 12] + EIn: 0.560 + AngOut: 145.000 + Data: [ + [ 0.193, 1.0000e+01, 2.0000e+00 ], + [ 0.203, 1.6000e+01, 3.0000e+00 ], + [ 0.212, 2.3000e+01, 1.0000e+00 ], + [ 0.223, 3.4000e+01, 2.0000e+00 ], + [ 0.233, 4.9000e+01, 3.0000e+00 ], + [ 0.242, 6.6000e+01, 3.0000e+00 ], + [ 0.253, 9.2000e+01, 4.0000e+00 ], + [ 0.263, 1.2300e+02, 5.0000e+00 ], + [ 0.273, 1.5100e+02, 7.0000e+00 ], + [ 0.282, 1.7100e+02, 7.0000e+00 ], + [ 0.292, 1.8500e+02, 1.0000e+01 ], + [ 0.302, 2.1100e+02, 1.1000e+01 ], + [ 0.312, 2.2000e+02, 1.2000e+01 ], + [ 0.323, 2.3400e+02, 1.3000e+01 ], + [ 0.333, 2.4100e+02, 1.3000e+01 ], + [ 0.343, 2.3600e+02, 1.4000e+01 ], + [ 0.352, 2.1700e+02, 1.3000e+01 ], + [ 0.362, 2.0700e+02, 1.4000e+01 ], + [ 0.372, 2.0500e+02, 1.4000e+01 ], + [ 0.383, 2.1500e+02, 1.4000e+01 ], + [ 0.393, 2.3500e+02, 1.7000e+01 ], + [ 0.403, 2.5800e+02, 1.9000e+01 ], + [ 0.412, 2.9000e+02, 2.0000e+01 ], + [ 0.422, 3.3100e+02, 2.5000e+01 ], + [ 0.432, 3.6100e+02, 2.8000e+01 ], + [ 0.443, 4.0600e+02, 3.4000e+01 ], + [ 0.453, 4.0100e+02, 3.7000e+01 ], + [ 0.463, 4.2100e+02, 4.3000e+01 ], + ] + }, + { + Author: "Barreau" + Year: "1983" + Citation: "Barreau:1983ht" + Target: [6, 12] + EIn: 0.620 + AngOut: 36.000 + Data: [ + [ 0.013, 1.6870e+04, 5.9000e+02 ], + [ 0.022, 1.8290e+04, 6.6000e+02 ], + [ 0.033, 1.8310e+04, 6.9000e+02 ], + [ 0.043, 2.5880e+04, 9.3000e+02 ], + [ 0.052, 3.0210e+04, 1.0800e+03 ], + [ 0.062, 3.5980e+04, 1.2700e+03 ], + [ 0.072, 4.1130e+04, 1.3700e+03 ], + [ 0.083, 4.2830e+04, 1.4500e+03 ], + [ 0.092, 4.2220e+04, 1.4600e+03 ], + [ 0.102, 3.9590e+04, 1.4100e+03 ], + [ 0.113, 3.6340e+04, 1.3500e+03 ], + [ 0.122, 3.0800e+04, 1.2000e+03 ], + [ 0.133, 2.6490e+04, 1.0800e+03 ], + [ 0.142, 2.1550e+04, 9.3000e+02 ], + [ 0.152, 1.7850e+04, 8.1000e+02 ], + [ 0.163, 1.4580e+04, 7.1000e+02 ], + [ 0.172, 1.2240e+04, 6.3000e+02 ], + [ 0.182, 1.0630e+04, 5.6000e+02 ], + [ 0.193, 9.7600e+03, 5.2000e+02 ], + [ 0.203, 9.1000e+03, 5.7000e+02 ], + [ 0.212, 8.3800e+03, 5.5000e+02 ], + [ 0.223, 8.5400e+03, 5.5000e+02 ], + [ 0.233, 9.1500e+03, 5.8000e+02 ], + [ 0.242, 9.7300e+03, 5.9000e+02 ], + [ 0.253, 9.8800e+03, 6.0000e+02 ], + [ 0.263, 1.0880e+04, 6.4000e+02 ], + [ 0.273, 1.1160e+04, 6.1000e+02 ], + [ 0.282, 1.1500e+04, 7.0000e+02 ], + [ 0.292, 1.2170e+04, 7.4000e+02 ], + [ 0.302, 1.2420e+04, 7.7000e+02 ], + [ 0.312, 1.2290e+04, 7.9000e+02 ], + [ 0.323, 1.3420e+04, 8.5000e+02 ], + [ 0.333, 1.3190e+04, 8.8000e+02 ], + [ 0.343, 1.3440e+04, 8.6000e+02 ], + [ 0.352, 1.2860e+04, 9.7000e+02 ], + [ 0.362, 1.2710e+04, 1.0100e+03 ], + [ 0.372, 1.1580e+04, 1.0300e+03 ], + [ 0.383, 1.2510e+04, 1.1200e+03 ], + [ 0.393, 1.2170e+04, 1.1800e+03 ], + [ 0.403, 1.1130e+04, 1.2100e+03 ], + [ 0.412, 1.1570e+04, 1.3200e+03 ], + [ 0.422, 9.9900e+03, 1.3700e+03 ], + [ 0.432, 9.7200e+03, 1.5000e+03 ], + [ 0.443, 1.0150e+04, 1.6100e+03 ], + ] + }, + { + Author: "Barreau" + Year: "1983" + Citation: "Barreau:1983ht" + Target: [6, 12] + EIn: 0.620 + AngOut: 60.000 + Data: [ + [ 0.037, 9.0000e+01, 1.0000e+01 ], + [ 0.048, 1.5000e+02, 1.0000e+01 ], + [ 0.058, 2.6000e+02, 1.0000e+01 ], + [ 0.068, 4.3000e+02, 2.0000e+01 ], + [ 0.077, 6.6000e+02, 3.0000e+01 ], + [ 0.087, 9.8000e+02, 4.0000e+01 ], + [ 0.098, 1.3200e+03, 5.0000e+01 ], + [ 0.107, 1.7000e+03, 6.0000e+01 ], + [ 0.117, 2.0100e+03, 8.0000e+01 ], + [ 0.128, 2.4800e+03, 1.0000e+02 ], + [ 0.138, 2.9100e+03, 1.1000e+02 ], + [ 0.147, 3.1100e+03, 1.2000e+02 ], + [ 0.158, 3.3500e+03, 1.3000e+02 ], + [ 0.168, 3.6700e+03, 1.4000e+02 ], + [ 0.177, 3.6500e+03, 1.5000e+02 ], + [ 0.188, 3.5700e+03, 1.4000e+02 ], + [ 0.198, 3.4900e+03, 1.5000e+02 ], + [ 0.207, 3.1400e+03, 1.4000e+02 ], + [ 0.217, 2.8400e+03, 1.3000e+02 ], + [ 0.228, 2.5100e+03, 1.2000e+02 ], + [ 0.237, 2.3800e+03, 1.2000e+02 ], + [ 0.247, 2.1600e+03, 1.1000e+02 ], + [ 0.258, 1.9700e+03, 1.0000e+02 ], + [ 0.268, 1.8700e+03, 9.0000e+01 ], + [ 0.278, 1.6700e+03, 1.0000e+02 ], + [ 0.287, 1.6700e+03, 1.0000e+02 ], + [ 0.297, 1.7900e+03, 1.0000e+02 ], + [ 0.307, 1.8300e+03, 1.0000e+02 ], + [ 0.318, 1.8900e+03, 1.1000e+02 ], + [ 0.328, 2.1500e+03, 1.2000e+02 ], + [ 0.338, 2.2700e+03, 1.1000e+02 ], + [ 0.347, 2.3200e+03, 1.3000e+02 ], + [ 0.357, 2.3700e+03, 1.3000e+02 ], + [ 0.367, 2.5800e+03, 1.4000e+02 ], + [ 0.378, 2.6400e+03, 1.5000e+02 ], + [ 0.388, 2.8000e+03, 1.6000e+02 ], + [ 0.398, 2.6800e+03, 1.7000e+02 ], + [ 0.407, 2.7500e+03, 1.8000e+02 ], + [ 0.417, 2.5900e+03, 1.9000e+02 ], + [ 0.427, 2.6900e+03, 2.0000e+02 ], + [ 0.438, 2.6800e+03, 2.1000e+02 ], + [ 0.448, 2.4300e+03, 2.7000e+02 ], + [ 0.458, 2.1800e+03, 2.9000e+02 ], + [ 0.468, 2.3000e+03, 3.2000e+02 ], + [ 0.477, 2.0000e+03, 3.1000e+02 ], + [ 0.487, 2.1700e+03, 3.7000e+02 ], + [ 0.497, 1.8900e+03, 4.3000e+02 ], + ] + }, + { + Author: "Barreau" + Year: "1983" + Citation: "Barreau:1983ht" + Target: [6, 12] + EIn: 0.680 + AngOut: 36.000 + Data: [ + [ 0.013, 3.7700e+03, 2.4000e+02 ], + [ 0.022, 8.2000e+03, 3.9000e+02 ], + [ 0.033, 1.1500e+04, 5.0000e+02 ], + [ 0.043, 1.4740e+04, 6.1000e+02 ], + [ 0.052, 1.8490e+04, 7.4000e+02 ], + [ 0.062, 2.3630e+04, 9.1000e+02 ], + [ 0.072, 2.6870e+04, 1.0200e+03 ], + [ 0.083, 2.9420e+04, 1.1200e+03 ], + [ 0.092, 3.1890e+04, 1.2100e+03 ], + [ 0.102, 3.1620e+04, 1.2300e+03 ], + [ 0.113, 3.0230e+04, 1.2000e+03 ], + [ 0.122, 2.8090e+04, 1.1500e+03 ], + [ 0.133, 2.6550e+04, 1.0400e+03 ], + [ 0.142, 2.2520e+04, 9.3000e+02 ], + [ 0.152, 1.9110e+04, 8.3000e+02 ], + [ 0.163, 1.6730e+04, 7.6000e+02 ], + [ 0.172, 1.2990e+04, 6.5000e+02 ], + [ 0.182, 1.1710e+04, 6.0000e+02 ], + [ 0.193, 1.0240e+04, 5.5000e+02 ], + [ 0.203, 9.2600e+03, 5.1000e+02 ], + [ 0.212, 8.3800e+03, 4.8000e+02 ], + [ 0.223, 7.4600e+03, 4.5000e+02 ], + [ 0.233, 8.0100e+03, 4.6000e+02 ], + [ 0.242, 7.9400e+03, 4.1000e+02 ], + [ 0.253, 8.2600e+03, 4.2000e+02 ], + [ 0.263, 8.3800e+03, 4.7000e+02 ], + [ 0.273, 9.1700e+03, 5.0000e+02 ], + [ 0.282, 9.6800e+03, 5.2000e+02 ], + [ 0.292, 1.0210e+04, 5.4000e+02 ], + [ 0.302, 1.0200e+04, 5.5000e+02 ], + [ 0.312, 1.0870e+04, 5.8000e+02 ], + [ 0.323, 1.0930e+04, 5.9000e+02 ], + [ 0.333, 1.1280e+04, 5.7000e+02 ], + [ 0.343, 1.1430e+04, 6.4000e+02 ], + [ 0.352, 1.1700e+04, 6.7000e+02 ], + [ 0.362, 1.1680e+04, 6.8000e+02 ], + [ 0.372, 1.1920e+04, 7.1000e+02 ], + [ 0.383, 1.0860e+04, 7.0000e+02 ], + [ 0.393, 1.0860e+04, 7.2000e+02 ], + [ 0.403, 9.4600e+03, 7.1000e+02 ], + [ 0.412, 9.5000e+03, 7.4000e+02 ], + [ 0.422, 9.0600e+03, 7.7000e+02 ], + [ 0.432, 8.5500e+03, 7.9000e+02 ], + [ 0.443, 8.3500e+03, 8.4000e+02 ], + [ 0.453, 8.3900e+03, 8.4000e+02 ], + [ 0.463, 7.6500e+03, 9.3000e+02 ], + [ 0.472, 7.2000e+03, 1.0000e+03 ], + [ 0.482, 7.2000e+03, 1.0900e+03 ], + [ 0.492, 7.0900e+03, 1.2100e+03 ], + [ 0.502, 7.0500e+03, 1.4000e+03 ], + ] + }, + { + Author: "Barreau" + Year: "1983" + Citation: "Barreau:1983ht" + Target: [6, 12] + EIn: 0.680 + AngOut: 60.000 + Data: [ + [ 0.048, 5.0000e+01, 1.0000e+01 ], + [ 0.058, 4.0000e+01, 1.0000e+01 ], + [ 0.068, 1.2000e+02, 1.0000e+01 ], + [ 0.077, 1.6000e+02, 2.0000e+01 ], + [ 0.087, 3.1000e+02, 2.0000e+01 ], + [ 0.098, 4.5000e+02, 3.0000e+01 ], + [ 0.107, 6.1000e+02, 4.0000e+01 ], + [ 0.117, 7.7000e+02, 4.0000e+01 ], + [ 0.128, 1.0200e+03, 1.0000e+02 ], + [ 0.138, 1.2200e+03, 5.0000e+01 ], + [ 0.147, 1.5700e+03, 6.0000e+01 ], + [ 0.158, 1.8300e+03, 7.0000e+01 ], + [ 0.168, 1.9900e+03, 8.0000e+01 ], + [ 0.177, 2.2400e+03, 9.0000e+01 ], + [ 0.188, 2.4000e+03, 1.0000e+02 ], + [ 0.198, 2.5100e+03, 1.0000e+02 ], + [ 0.207, 2.4500e+03, 1.0000e+02 ], + [ 0.217, 2.5300e+03, 1.0000e+02 ], + [ 0.228, 2.4300e+03, 1.0000e+02 ], + [ 0.237, 2.2900e+03, 1.0000e+02 ], + [ 0.247, 2.1300e+03, 9.0000e+01 ], + [ 0.258, 1.9500e+03, 9.0000e+01 ], + [ 0.268, 1.6200e+03, 8.0000e+01 ], + [ 0.278, 1.6000e+03, 8.0000e+01 ], + [ 0.287, 1.4700e+03, 8.0000e+01 ], + [ 0.297, 1.4400e+03, 7.0000e+01 ], + [ 0.307, 1.3900e+03, 7.0000e+01 ], + [ 0.318, 1.5100e+03, 8.0000e+01 ], + [ 0.328, 1.4300e+03, 7.0000e+01 ], + [ 0.338, 1.4600e+03, 8.0000e+01 ], + [ 0.347, 1.5400e+03, 8.0000e+01 ], + [ 0.357, 1.6500e+03, 9.0000e+01 ], + [ 0.367, 1.7400e+03, 9.0000e+01 ], + [ 0.378, 1.7800e+03, 1.0000e+02 ], + [ 0.388, 1.9900e+03, 1.0000e+02 ], + [ 0.398, 1.9800e+03, 1.0000e+02 ], + [ 0.407, 1.9900e+03, 1.1000e+02 ], + [ 0.417, 2.0500e+03, 1.2000e+02 ], + [ 0.427, 2.2200e+03, 1.2000e+02 ], + [ 0.438, 2.0000e+03, 1.2000e+02 ], + [ 0.448, 2.2500e+03, 1.3000e+02 ], + [ 0.458, 2.0800e+03, 1.4000e+02 ], + [ 0.468, 2.1400e+03, 1.5000e+02 ], + [ 0.477, 1.9500e+03, 1.5000e+02 ], + [ 0.487, 2.0300e+03, 1.7000e+02 ], + [ 0.497, 1.7400e+03, 1.6000e+02 ], + [ 0.507, 1.7400e+03, 1.8000e+02 ], + [ 0.517, 1.6800e+03, 2.0000e+02 ], + [ 0.527, 1.5800e+03, 2.3000e+02 ], + [ 0.537, 1.4800e+03, 2.5000e+02 ], + [ 0.547, 1.4800e+03, 3.0000e+02 ], + ] + }, + { + Author: "O'Connell" + Year: "1987" + Citation: "O'Connell:1987ag" + Target: [6, 12] + EIn: 0.730 + AngOut: 37.100 + Data: [ + [ 0.005, 1.1174e+03, 4.2759e+01 ], + [ 0.015, 1.4180e+03, 3.7414e+01 ], + [ 0.025, 3.6748e+03, 6.5014e+01 ], + [ 0.045, 7.4353e+03, 1.9283e+02 ], + [ 0.055, 1.0019e+04, 2.2633e+02 ], + [ 0.065, 1.2674e+04, 2.6096e+02 ], + [ 0.085, 1.8846e+04, 2.9542e+02 ], + [ 0.095, 2.0188e+04, 3.0471e+02 ], + [ 0.105, 2.1519e+04, 2.6191e+02 ], + [ 0.115, 2.1858e+04, 4.4757e+02 ], + [ 0.125, 2.1542e+04, 2.8092e+02 ], + [ 0.135, 2.0625e+04, 3.4395e+02 ], + [ 0.145, 1.8881e+04, 3.3278e+02 ], + [ 0.165, 1.5554e+04, 3.2286e+02 ], + [ 0.175, 1.2795e+04, 2.0623e+02 ], + [ 0.195, 9.9127e+03, 3.0260e+02 ], + [ 0.205, 7.4581e+03, 2.5900e+02 ], + [ 0.215, 7.6062e+03, 2.5459e+02 ], + [ 0.225, 6.8892e+03, 2.6737e+02 ], + [ 0.235, 6.3334e+03, 2.4752e+02 ], + [ 0.245, 6.0953e+03, 2.4339e+02 ], + [ 0.255, 6.4939e+03, 2.5976e+02 ], + [ 0.265, 7.1649e+03, 2.6313e+02 ], + [ 0.275, 7.0671e+03, 2.6520e+02 ], + [ 0.285, 7.6411e+03, 2.8420e+02 ], + [ 0.295, 7.7949e+03, 1.9823e+02 ], + [ 0.305, 8.5938e+03, 3.0396e+02 ], + [ 0.315, 8.8331e+03, 3.0356e+02 ], + [ 0.325, 8.1816e+03, 2.9986e+02 ], + [ 0.335, 9.6579e+03, 2.8874e+02 ], + [ 0.345, 9.7302e+03, 2.0204e+02 ], + [ 0.365, 9.9032e+03, 2.1629e+02 ], + [ 0.375, 9.5356e+03, 3.0291e+02 ], + [ 0.385, 9.2973e+03, 2.1999e+02 ], + [ 0.395, 9.4580e+03, 3.1211e+02 ], + [ 0.405, 9.0358e+03, 2.2700e+02 ], + [ 0.425, 8.6668e+03, 1.6094e+02 ], + [ 0.435, 8.3703e+03, 2.2314e+02 ], + [ 0.445, 8.1043e+03, 2.3677e+02 ], + [ 0.455, 8.0652e+03, 3.3520e+02 ], + [ 0.465, 7.5875e+03, 2.0834e+02 ], + [ 0.475, 6.6721e+03, 2.9563e+02 ], + [ 0.485, 6.1654e+03, 4.0253e+02 ], + [ 0.495, 6.6862e+03, 2.5589e+02 ], + [ 0.505, 6.0604e+03, 3.2902e+02 ], + [ 0.515, 6.6416e+03, 3.4600e+02 ], + [ 0.525, 6.1781e+03, 3.5921e+02 ], + [ 0.545, 5.3309e+03, 3.9896e+02 ], + [ 0.565, 4.2407e+03, 4.1378e+02 ], + [ 0.595, 4.3216e+03, 6.7109e+02 ], + [ 0.605, 5.3500e+03, 5.1360e+02 ], + [ 0.615, 3.8220e+03, 6.1944e+02 ], + [ 0.625, 7.2773e+03, 7.5061e+02 ], + [ 0.415, 8.2295e+03, 3.0870e+02 ], + ] + }, + { + Author: "Sealock" + Year: "1989" + Citation: "Sealock:1989nx" + Target: [6, 12] + EIn: 0.961 + AngOut: 37.500 + Data: [ + [ 0.073, 7.4640e+02, 8.3040e+01 ], + [ 0.083, 1.1450e+03, 7.9320e+01 ], + [ 0.093, 1.5960e+03, 9.3120e+01 ], + [ 0.103, 2.2210e+03, 1.0820e+02 ], + [ 0.113, 2.8610e+03, 1.2420e+02 ], + [ 0.123, 3.4820e+03, 1.3580e+02 ], + [ 0.133, 4.1660e+03, 1.2960e+02 ], + [ 0.143, 5.1670e+03, 1.3270e+02 ], + [ 0.153, 5.2980e+03, 1.9430e+02 ], + [ 0.163, 5.7300e+03, 2.0140e+02 ], + [ 0.173, 6.3830e+03, 2.0990e+02 ], + [ 0.183, 6.6380e+03, 1.8120e+02 ], + [ 0.193, 6.7900e+03, 1.5200e+02 ], + [ 0.203, 6.6010e+03, 1.6620e+02 ], + [ 0.213, 6.1550e+03, 2.0150e+02 ], + [ 0.223, 6.0130e+03, 1.9900e+02 ], + [ 0.233, 5.8130e+03, 1.7200e+02 ], + [ 0.243, 5.3220e+03, 1.2230e+02 ], + [ 0.253, 4.8130e+03, 1.4390e+02 ], + [ 0.263, 4.4030e+03, 1.4690e+02 ], + [ 0.273, 3.9130e+03, 1.3670e+02 ], + [ 0.283, 3.9640e+03, 1.1390e+02 ], + [ 0.293, 3.6140e+03, 9.3960e+01 ], + [ 0.303, 3.6220e+03, 1.2200e+02 ], + [ 0.313, 3.3410e+03, 1.1750e+02 ], + [ 0.323, 3.4360e+03, 1.1880e+02 ], + [ 0.333, 3.5470e+03, 8.6760e+01 ], + [ 0.343, 3.4000e+03, 1.1230e+02 ], + [ 0.353, 3.7310e+03, 1.2940e+02 ], + [ 0.363, 3.7040e+03, 1.2780e+02 ], + [ 0.373, 3.9060e+03, 1.0030e+02 ], + [ 0.383, 4.0570e+03, 1.2820e+02 ], + [ 0.393, 4.1320e+03, 1.4360e+02 ], + [ 0.403, 4.0810e+03, 1.4230e+02 ], + [ 0.413, 4.3440e+03, 1.0420e+02 ], + [ 0.423, 4.1120e+03, 1.4260e+02 ], + [ 0.433, 4.6660e+03, 1.5280e+02 ], + [ 0.443, 4.5080e+03, 1.2700e+02 ], + [ 0.453, 4.4030e+03, 1.1960e+02 ], + [ 0.463, 4.5100e+03, 1.5460e+02 ], + [ 0.473, 4.3620e+03, 1.5060e+02 ], + [ 0.483, 4.4340e+03, 1.0440e+02 ], + [ 0.493, 4.2460e+03, 1.3970e+02 ], + [ 0.503, 4.0820e+03, 1.3500e+02 ], + [ 0.513, 3.9350e+03, 9.5880e+01 ], + [ 0.523, 3.6600e+03, 1.1880e+02 ], + [ 0.533, 3.5270e+03, 1.1630e+02 ], + [ 0.543, 3.5240e+03, 8.9640e+01 ], + [ 0.553, 3.3440e+03, 1.2530e+02 ], + [ 0.563, 3.3900e+03, 1.2310e+02 ], + [ 0.573, 3.1700e+03, 9.4920e+01 ], + [ 0.583, 3.1150e+03, 1.1950e+02 ], + [ 0.593, 3.0180e+03, 1.0120e+02 ], + [ 0.603, 2.9690e+03, 1.0880e+02 ], + [ 0.613, 2.8450e+03, 1.1770e+02 ], + [ 0.623, 2.9420e+03, 9.1680e+01 ], + [ 0.633, 2.6760e+03, 1.0990e+02 ], + [ 0.643, 2.7950e+03, 7.8000e+01 ], + [ 0.653, 2.8680e+03, 9.3960e+01 ], + [ 0.663, 2.9980e+03, 1.2640e+02 ], + ] + }, + { + Author: "Sealock" + Year: "1989" + Citation: "Sealock:1989nx" + Target: [6, 12] + EIn: 1.108 + AngOut: 37.500 + Data: [ + [ 0.127, 7.9560e+02, 6.2160e+01 ], + [ 0.137, 1.1870e+03, 7.0080e+01 ], + [ 0.147, 1.2830e+03, 7.4280e+01 ], + [ 0.157, 1.6120e+03, 8.2320e+01 ], + [ 0.167, 2.1300e+03, 9.3720e+01 ], + [ 0.177, 2.3450e+03, 9.9240e+01 ], + [ 0.187, 2.8330e+03, 8.2680e+01 ], + [ 0.197, 2.9990e+03, 7.5960e+01 ], + [ 0.207, 3.3530e+03, 9.5400e+01 ], + [ 0.217, 3.6880e+03, 1.1470e+02 ], + [ 0.227, 3.7380e+03, 1.1570e+02 ], + [ 0.237, 3.7790e+03, 1.1500e+02 ], + [ 0.247, 3.8140e+03, 9.8880e+01 ], + [ 0.257, 3.9020e+03, 8.5680e+01 ], + [ 0.267, 3.8000e+03, 1.1420e+02 ], + [ 0.277, 3.6290e+03, 1.2230e+02 ], + [ 0.287, 3.4620e+03, 1.1870e+02 ], + [ 0.297, 3.1790e+03, 1.1300e+02 ], + [ 0.307, 3.0740e+03, 7.7160e+01 ], + [ 0.317, 2.7590e+03, 7.1520e+01 ], + [ 0.327, 2.5940e+03, 8.8440e+01 ], + [ 0.337, 2.5140e+03, 8.6280e+01 ], + [ 0.347, 2.2660e+03, 8.1480e+01 ], + [ 0.357, 2.2990e+03, 6.3240e+01 ], + [ 0.367, 2.2250e+03, 5.8320e+01 ], + [ 0.377, 2.1730e+03, 7.7040e+01 ], + [ 0.387, 2.2980e+03, 7.8720e+01 ], + [ 0.397, 2.3280e+03, 8.0160e+01 ], + [ 0.407, 2.4700e+03, 6.6840e+01 ], + [ 0.417, 2.4900e+03, 6.7680e+01 ], + [ 0.427, 2.5240e+03, 8.8800e+01 ], + [ 0.437, 2.6260e+03, 9.1200e+01 ], + [ 0.447, 2.7590e+03, 9.3480e+01 ], + [ 0.457, 2.6780e+03, 6.6480e+01 ], + [ 0.467, 2.7460e+03, 8.8440e+01 ], + [ 0.477, 2.7640e+03, 9.7440e+01 ], + [ 0.487, 2.8610e+03, 9.9000e+01 ], + [ 0.497, 2.9210e+03, 7.3080e+01 ], + [ 0.507, 2.8850e+03, 8.0040e+01 ], + [ 0.517, 2.7830e+03, 9.1320e+01 ], + [ 0.527, 2.9040e+03, 9.3360e+01 ], + [ 0.537, 2.7950e+03, 6.6720e+01 ], + [ 0.547, 2.7480e+03, 7.2960e+01 ], + [ 0.557, 2.4620e+03, 8.1120e+01 ], + [ 0.567, 2.4520e+03, 7.9920e+01 ], + [ 0.577, 2.4300e+03, 5.5080e+01 ], + [ 0.587, 2.4310e+03, 7.5960e+01 ], + [ 0.597, 2.3630e+03, 7.4520e+01 ], + [ 0.607, 2.2450e+03, 5.9040e+01 ], + [ 0.617, 2.2660e+03, 5.6160e+01 ], + [ 0.627, 2.2620e+03, 6.4440e+01 ], + [ 0.637, 2.2490e+03, 5.8200e+01 ], + [ 0.647, 2.1380e+03, 4.6320e+01 ], + [ 0.657, 2.1540e+03, 5.6400e+01 ], + [ 0.667, 2.1530e+03, 5.6520e+01 ], + [ 0.677, 2.1050e+03, 4.2720e+01 ], + [ 0.687, 2.1130e+03, 5.3160e+01 ], + [ 0.697, 2.0030e+03, 4.5360e+01 ], + [ 0.707, 2.1520e+03, 3.6600e+01 ], + [ 0.717, 2.0320e+03, 4.2480e+01 ], + [ 0.727, 2.0750e+03, 4.2840e+01 ], + ] + }, + { + Author: "Sealock" + Year: "1989" + Citation: "Sealock:1989nx" + Target: [6, 12] + EIn: 1.299 + AngOut: 37.500 + Data: [ + [ 0.163, 2.5800e+02, 1.8840e+01 ], + [ 0.173, 2.9400e+02, 1.9560e+01 ], + [ 0.183, 3.9840e+02, 1.7760e+01 ], + [ 0.193, 4.6560e+02, 1.8960e+01 ], + [ 0.203, 6.1200e+02, 2.7720e+01 ], + [ 0.213, 7.3560e+02, 3.8520e+01 ], + [ 0.223, 8.4840e+02, 4.1280e+01 ], + [ 0.233, 9.5160e+02, 4.3800e+01 ], + [ 0.243, 1.1680e+03, 4.7280e+01 ], + [ 0.253, 1.3420e+03, 3.9240e+01 ], + [ 0.263, 1.4500e+03, 3.8760e+01 ], + [ 0.273, 1.4570e+03, 4.7160e+01 ], + [ 0.283, 1.5890e+03, 5.8560e+01 ], + [ 0.293, 1.7630e+03, 6.1080e+01 ], + [ 0.303, 1.7510e+03, 6.0720e+01 ], + [ 0.313, 1.7500e+03, 6.1080e+01 ], + [ 0.323, 1.8430e+03, 4.4520e+01 ], + [ 0.333, 1.7560e+03, 4.0560e+01 ], + [ 0.343, 1.8290e+03, 5.5320e+01 ], + [ 0.353, 1.7120e+03, 5.3520e+01 ], + [ 0.363, 1.7040e+03, 5.2920e+01 ], + [ 0.373, 1.6210e+03, 5.1120e+01 ], + [ 0.383, 1.5710e+03, 6.6720e+01 ], + [ 0.393, 1.4860e+03, 5.0520e+01 ], + [ 0.403, 1.4260e+03, 4.9200e+01 ], + [ 0.413, 1.3550e+03, 4.7880e+01 ], + [ 0.423, 1.3540e+03, 4.6800e+01 ], + [ 0.433, 1.3430e+03, 4.7280e+01 ], + [ 0.443, 1.4400e+03, 3.7440e+01 ], + [ 0.453, 1.3550e+03, 3.2400e+01 ], + [ 0.463, 1.3390e+03, 4.0800e+01 ], + [ 0.473, 1.4180e+03, 4.5600e+01 ], + [ 0.483, 1.3980e+03, 4.5600e+01 ], + [ 0.493, 1.4480e+03, 4.6440e+01 ], + [ 0.503, 1.4750e+03, 3.5280e+01 ], + [ 0.513, 1.6070e+03, 4.1880e+01 ], + [ 0.523, 1.5710e+03, 5.5800e+01 ], + [ 0.533, 1.6340e+03, 5.6520e+01 ], + [ 0.543, 1.6920e+03, 5.7120e+01 ], + [ 0.553, 1.6930e+03, 4.4880e+01 ], + [ 0.563, 1.5980e+03, 4.0920e+01 ], + [ 0.573, 1.6540e+03, 5.5200e+01 ], + [ 0.583, 1.6540e+03, 5.5680e+01 ], + [ 0.593, 1.6780e+03, 5.5920e+01 ], + [ 0.603, 1.6400e+03, 4.1400e+01 ], + [ 0.613, 1.6250e+03, 4.4640e+01 ], + [ 0.623, 1.6790e+03, 5.7840e+01 ], + [ 0.633, 1.6130e+03, 5.5800e+01 ], + [ 0.643, 1.5980e+03, 5.0280e+01 ], + [ 0.653, 1.5430e+03, 3.8520e+01 ], + [ 0.663, 1.4800e+03, 5.2440e+01 ], + [ 0.673, 1.5290e+03, 5.2440e+01 ], + [ 0.683, 1.4960e+03, 5.2320e+01 ], + [ 0.693, 1.5120e+03, 3.6240e+01 ], + [ 0.703, 1.3860e+03, 4.4040e+01 ], + [ 0.713, 1.3370e+03, 4.6560e+01 ], + [ 0.723, 1.4350e+03, 4.8240e+01 ], + [ 0.733, 1.4080e+03, 3.3600e+01 ], + [ 0.743, 1.2960e+03, 4.5240e+01 ], + [ 0.753, 1.4140e+03, 4.7160e+01 ], + [ 0.763, 1.4320e+03, 4.0080e+01 ], + [ 0.773, 1.4950e+03, 3.6480e+01 ], + [ 0.783, 1.4020e+03, 4.7040e+01 ], + [ 0.793, 1.3620e+03, 4.6320e+01 ], + [ 0.803, 1.5170e+03, 4.8840e+01 ], + ] + }, + { + Author: "Baran" + Year: "1988" + Citation: "Baran:1988tw" + Target: [6, 12] + EIn: 1.300 + AngOut: 11.950 + Data: [ + [ 0.030, 9.3096e+05, 2.2404e+04 ], + [ 0.040, 9.5960e+05, 1.6964e+04 ], + [ 0.050, 9.5579e+05, 1.6637e+04 ], + [ 0.060, 9.3811e+05, 2.3700e+04 ], + [ 0.070, 8.7454e+05, 2.1925e+04 ], + [ 0.080, 7.3970e+05, 1.9792e+04 ], + [ 0.090, 6.0424e+05, 1.1974e+04 ], + [ 0.100, 5.1212e+05, 1.3913e+04 ], + [ 0.110, 4.1230e+05, 1.2092e+04 ], + [ 0.120, 3.0604e+05, 1.0284e+04 ], + [ 0.130, 2.4189e+05, 8.9093e+03 ], + [ 0.140, 1.9607e+05, 4.5681e+03 ], + [ 0.150, 1.5900e+05, 4.8132e+03 ], + [ 0.160, 1.3388e+05, 4.3140e+03 ], + [ 0.170, 1.2098e+05, 4.0319e+03 ], + [ 0.180, 1.1141e+05, 2.4924e+03 ], + [ 0.190, 1.0174e+05, 2.8199e+03 ], + [ 0.200, 1.0702e+05, 2.8597e+03 ], + [ 0.210, 1.0706e+05, 2.3781e+03 ], + [ 0.220, 1.1605e+05, 2.5063e+03 ], + [ 0.230, 1.1563e+05, 2.5642e+03 ], + [ 0.240, 1.2260e+05, 2.8734e+03 ], + [ 0.250, 1.3136e+05, 2.9695e+03 ], + [ 0.260, 1.3610e+05, 3.0673e+03 ], + [ 0.270, 1.3904e+05, 3.0968e+03 ], + [ 0.280, 1.4416e+05, 3.1696e+03 ], + [ 0.290, 1.4284e+05, 4.0396e+03 ], + [ 0.300, 1.5251e+05, 4.2621e+03 ], + [ 0.310, 1.5945e+05, 3.3964e+03 ], + [ 0.320, 1.5615e+05, 4.5136e+03 ], + [ 0.330, 1.4944e+05, 4.4287e+03 ], + [ 0.340, 1.5708e+05, 3.4597e+03 ], + [ 0.350, 1.5474e+05, 4.3355e+03 ], + [ 0.360, 1.5569e+05, 4.3229e+03 ], + [ 0.370, 1.3791e+05, 2.8918e+03 ], + [ 0.380, 1.3770e+05, 3.2793e+03 ], + [ 0.390, 1.2245e+05, 3.1715e+03 ], + [ 0.400, 1.2043e+05, 3.2436e+03 ], + [ 0.410, 1.1306e+05, 3.2007e+03 ], + [ 0.420, 1.0740e+05, 3.2221e+03 ], + [ 0.430, 1.0277e+05, 3.1792e+03 ], + [ 0.440, 9.3566e+04, 3.0632e+03 ], + [ 0.450, 8.8613e+04, 3.0445e+03 ], + [ 0.460, 8.3624e+04, 2.4836e+03 ], + [ 0.470, 7.8446e+04, 2.6320e+03 ], + [ 0.480, 7.2782e+04, 2.6413e+03 ], + [ 0.490, 7.0460e+04, 2.4374e+03 ], + [ 0.500, 6.4244e+04, 2.6066e+03 ], + [ 0.510, 6.1710e+04, 2.6234e+03 ], + [ 0.520, 5.8797e+04, 2.6612e+03 ], + ] + }, + { + Author: "Baran" + Year: "1988" + Citation: "Baran:1988tw" + Target: [6, 12] + EIn: 1.300 + AngOut: 13.540 + Data: [ + [ 0.020, 7.9665e+05, 1.9757e+04 ], + [ 0.030, 4.3789e+05, 1.1086e+04 ], + [ 0.040, 4.8234e+05, 7.8653e+03 ], + [ 0.050, 5.1574e+05, 7.8977e+03 ], + [ 0.060, 5.4700e+05, 1.0394e+04 ], + [ 0.070, 5.2658e+05, 1.0155e+04 ], + [ 0.080, 4.8480e+05, 9.7893e+03 ], + [ 0.090, 4.3454e+05, 5.8223e+03 ], + [ 0.100, 3.7067e+05, 6.5790e+03 ], + [ 0.110, 3.0080e+05, 5.7413e+03 ], + [ 0.120, 2.3744e+05, 5.0021e+03 ], + [ 0.130, 1.8793e+05, 4.3324e+03 ], + [ 0.140, 1.5489e+05, 2.3946e+03 ], + [ 0.150, 1.3254e+05, 2.6790e+03 ], + [ 0.160, 1.0987e+05, 2.3566e+03 ], + [ 0.170, 9.1335e+04, 2.1211e+03 ], + [ 0.180, 8.5560e+04, 1.3401e+03 ], + [ 0.190, 7.6155e+04, 1.5841e+03 ], + [ 0.200, 7.4381e+04, 1.5328e+03 ], + [ 0.210, 7.5515e+04, 1.5730e+03 ], + [ 0.220, 7.5660e+04, 1.6664e+03 ], + [ 0.230, 7.9371e+04, 1.7831e+03 ], + ] + }, + { + Author: "Baran" + Year: "1988" + Citation: "Baran:1988tw" + Target: [6, 12] + EIn: 1.500 + AngOut: 11.950 + Data: [ + [ 0.030, 5.2613e+05, 6.1979e+03 ], + [ 0.040, 5.6523e+05, 9.5412e+03 ], + [ 0.050, 6.0897e+05, 9.5758e+03 ], + [ 0.060, 6.7542e+05, 9.8335e+03 ], + [ 0.070, 6.4316e+05, 9.5982e+03 ], + [ 0.080, 6.1945e+05, 6.2595e+03 ], + [ 0.090, 5.4940e+05, 5.8666e+03 ], + [ 0.100, 4.6340e+05, 6.6168e+03 ], + [ 0.110, 3.9202e+05, 6.0078e+03 ], + [ 0.120, 3.1907e+05, 5.3120e+03 ], + [ 0.130, 2.4783e+05, 4.6023e+03 ], + [ 0.140, 2.1501e+05, 2.9294e+03 ], + [ 0.150, 1.8415e+05, 3.5698e+03 ], + [ 0.160, 1.5314e+05, 3.1745e+03 ], + [ 0.170, 1.2977e+05, 2.8399e+03 ], + [ 0.180, 1.1229e+05, 2.6106e+03 ], + [ 0.190, 1.0291e+05, 1.4794e+03 ], + [ 0.200, 9.8618e+04, 1.6941e+03 ], + [ 0.210, 9.5424e+04, 1.6507e+03 ], + [ 0.220, 9.2986e+04, 1.6264e+03 ], + [ 0.230, 9.4808e+04, 1.6769e+03 ], + [ 0.240, 9.8356e+04, 1.3005e+03 ], + [ 0.250, 1.0601e+05, 1.3675e+03 ], + [ 0.260, 1.0763e+05, 1.8524e+03 ], + [ 0.270, 1.1598e+05, 1.9504e+03 ], + [ 0.280, 1.1818e+05, 2.0481e+03 ], + [ 0.290, 1.1834e+05, 1.4992e+03 ], + [ 0.300, 1.2304e+05, 2.0988e+03 ], + [ 0.310, 1.2725e+05, 2.0746e+03 ], + [ 0.320, 1.2407e+05, 2.0647e+03 ], + [ 0.330, 1.2415e+05, 2.0889e+03 ], + [ 0.340, 1.2612e+05, 1.5412e+03 ], + [ 0.350, 1.2688e+05, 2.0853e+03 ], + [ 0.360, 1.2310e+05, 2.0312e+03 ], + [ 0.370, 1.2231e+05, 2.0159e+03 ], + [ 0.380, 1.1874e+05, 1.3887e+03 ], + [ 0.390, 1.1597e+05, 1.7139e+03 ], + [ 0.400, 1.1021e+05, 1.6417e+03 ], + [ 0.410, 1.0792e+05, 1.6383e+03 ], + [ 0.420, 1.0274e+05, 1.6489e+03 ], + [ 0.430, 9.2295e+04, 1.6215e+03 ], + ] + }, + { + Author: "Baran" + Year: "1988" + Citation: "Baran:1988tw" + Target: [6, 12] + EIn: 1.500 + AngOut: 13.540 + Data: [ + [ 0.040, 2.4373e+05, 5.3800e+03 ], + [ 0.050, 2.8296e+05, 5.6584e+03 ], + [ 0.060, 2.9919e+05, 5.6276e+03 ], + [ 0.070, 3.3836e+05, 6.0564e+03 ], + [ 0.080, 3.6145e+05, 4.8982e+03 ], + [ 0.090, 3.3493e+05, 4.5756e+03 ], + [ 0.100, 3.2352e+05, 6.7916e+03 ], + [ 0.110, 2.6514e+05, 5.9406e+03 ], + [ 0.120, 2.4541e+05, 5.5796e+03 ], + [ 0.130, 2.1072e+05, 5.1966e+03 ], + [ 0.140, 1.7345e+05, 2.9898e+03 ], + [ 0.150, 1.5438e+05, 3.5335e+03 ], + [ 0.160, 1.2324e+05, 2.9807e+03 ], + [ 0.170, 1.0264e+05, 2.6183e+03 ], + [ 0.180, 8.5607e+04, 2.3732e+03 ], + [ 0.190, 7.9920e+04, 1.3836e+03 ], + [ 0.200, 7.1877e+04, 1.2952e+03 ], + [ 0.210, 6.7310e+04, 1.4759e+03 ], + [ 0.220, 6.5397e+04, 1.4435e+03 ], + [ 0.230, 6.6201e+04, 1.4722e+03 ], + [ 0.240, 6.4869e+04, 1.1090e+03 ], + [ 0.250, 6.7608e+04, 1.1471e+03 ], + [ 0.260, 6.8399e+04, 1.6210e+03 ], + [ 0.270, 7.4223e+04, 1.6639e+03 ], + [ 0.280, 7.5058e+04, 1.7109e+03 ], + [ 0.290, 8.1059e+04, 1.3419e+03 ], + [ 0.300, 8.2755e+04, 1.9084e+03 ], + [ 0.310, 8.2211e+04, 1.8567e+03 ], + [ 0.320, 8.5495e+04, 1.9022e+03 ], + [ 0.330, 8.4328e+04, 1.9218e+03 ], + [ 0.340, 8.6021e+04, 1.4137e+03 ], + [ 0.350, 8.6772e+04, 1.9931e+03 ], + [ 0.360, 8.5897e+04, 1.9487e+03 ], + [ 0.370, 8.3131e+04, 1.9442e+03 ], + [ 0.380, 8.3651e+04, 1.1879e+03 ], + [ 0.390, 7.9108e+04, 1.3719e+03 ], + [ 0.400, 7.6460e+04, 1.2998e+03 ], + [ 0.410, 7.1875e+04, 1.2499e+03 ], + [ 0.420, 6.9097e+04, 1.2526e+03 ], + ] + }, + { + Author: "Sealock" + Year: "1989" + Citation: "Sealock:1989nx" + Target: [6, 12] + EIn: 1.501 + AngOut: 37.500 + Data: [ + [ 0.256, 1.7880e+02, 9.2400e+00 ], + [ 0.266, 2.2800e+02, 1.0200e+01 ], + [ 0.276, 3.0120e+02, 8.7600e+00 ], + [ 0.286, 3.4920e+02, 9.3600e+00 ], + [ 0.296, 3.9480e+02, 1.1160e+01 ], + [ 0.306, 4.5480e+02, 1.5600e+01 ], + [ 0.316, 5.2200e+02, 1.6440e+01 ], + [ 0.326, 5.4840e+02, 1.7160e+01 ], + [ 0.336, 6.3480e+02, 1.8240e+01 ], + [ 0.346, 6.7080e+02, 1.8720e+01 ], + [ 0.356, 7.7880e+02, 1.6080e+01 ], + [ 0.366, 7.8120e+02, 1.5360e+01 ], + [ 0.376, 8.2560e+02, 1.9440e+01 ], + [ 0.386, 8.3280e+02, 2.4360e+01 ], + [ 0.396, 8.4960e+02, 2.4480e+01 ], + [ 0.406, 8.5800e+02, 2.4240e+01 ], + [ 0.416, 8.7000e+02, 2.4480e+01 ], + [ 0.426, 8.7600e+02, 2.0400e+01 ], + [ 0.436, 8.7720e+02, 1.6680e+01 ], + [ 0.446, 8.2080e+02, 1.7040e+01 ], + [ 0.456, 8.3880e+02, 2.2560e+01 ], + [ 0.466, 8.2440e+02, 2.2200e+01 ], + [ 0.476, 8.4240e+02, 2.2200e+01 ], + [ 0.486, 7.7520e+02, 2.1240e+01 ], + [ 0.496, 7.4160e+02, 1.8000e+01 ], + [ 0.506, 7.6200e+02, 1.5840e+01 ], + [ 0.516, 6.9840e+02, 1.5960e+01 ], + [ 0.526, 6.9960e+02, 2.2800e+01 ], + [ 0.536, 6.8400e+02, 2.2440e+01 ], + [ 0.546, 7.1520e+02, 2.3040e+01 ], + [ 0.556, 7.6080e+02, 2.3640e+01 ], + [ 0.566, 8.0040e+02, 1.7640e+01 ], + [ 0.576, 8.0280e+02, 1.6800e+01 ], + [ 0.586, 8.0640e+02, 2.1120e+01 ], + [ 0.596, 8.7600e+02, 2.3760e+01 ], + [ 0.606, 8.9640e+02, 2.4240e+01 ], + [ 0.616, 8.8200e+02, 2.4120e+01 ], + [ 0.626, 9.0120e+02, 1.9320e+01 ], + [ 0.636, 9.3600e+02, 1.7400e+01 ], + [ 0.646, 9.2880e+02, 2.2800e+01 ], + [ 0.656, 9.2520e+02, 2.4840e+01 ], + [ 0.666, 9.6480e+02, 2.5320e+01 ], + [ 0.676, 9.2280e+02, 2.4480e+01 ], + [ 0.686, 9.6720e+02, 1.8720e+01 ], + [ 0.696, 9.2880e+02, 1.8120e+01 ], + [ 0.706, 9.5280e+02, 2.4600e+01 ], + [ 0.716, 9.1440e+02, 2.4000e+01 ], + [ 0.726, 9.0600e+02, 2.4000e+01 ], + [ 0.736, 8.9760e+02, 1.8000e+01 ], + [ 0.746, 8.6760e+02, 1.5960e+01 ], + [ 0.756, 9.0600e+02, 2.2320e+01 ], + [ 0.766, 8.7000e+02, 2.1600e+01 ], + [ 0.776, 9.0000e+02, 2.1960e+01 ], + [ 0.786, 8.8320e+02, 1.8720e+01 ], + [ 0.796, 8.9280e+02, 1.7160e+01 ], + [ 0.806, 8.7720e+02, 2.3880e+01 ], + [ 0.816, 8.6400e+02, 2.3760e+01 ], + [ 0.826, 8.6280e+02, 2.3640e+01 ], + [ 0.836, 8.8080e+02, 1.8480e+01 ], + [ 0.846, 8.6640e+02, 2.1360e+01 ], + [ 0.856, 8.8320e+02, 2.6400e+01 ], + [ 0.866, 9.3240e+02, 2.6880e+01 ], + [ 0.876, 9.2400e+02, 2.6760e+01 ], + [ 0.886, 8.7240e+02, 2.8680e+01 ], + ] + }, + { + Author: "Baran" + Year: "1988" + Citation: "Baran:1988tw" + Target: [6, 12] + EIn: 1.650 + AngOut: 11.950 + Data: [ + [ 0.030, 3.2396e+05, 5.2538e+03 ], + [ 0.040, 3.7859e+05, 5.5755e+03 ], + [ 0.050, 4.0692e+05, 4.5048e+03 ], + [ 0.060, 4.5161e+05, 4.6554e+03 ], + [ 0.070, 4.7909e+05, 4.7964e+03 ], + [ 0.080, 4.7089e+05, 6.8944e+03 ], + [ 0.090, 4.7808e+05, 6.9656e+03 ], + [ 0.100, 4.1963e+05, 6.5213e+03 ], + [ 0.110, 3.7603e+05, 6.2365e+03 ], + [ 0.120, 3.2397e+05, 3.9117e+03 ], + [ 0.130, 2.7178e+05, 3.4161e+03 ], + [ 0.140, 2.2411e+05, 3.9785e+03 ], + [ 0.150, 1.8254e+05, 3.5514e+03 ], + [ 0.160, 1.5556e+05, 3.2185e+03 ], + [ 0.170, 1.3564e+05, 1.7955e+03 ], + [ 0.180, 1.1360e+05, 1.4351e+03 ], + [ 0.190, 1.0032e+05, 1.5417e+03 ], + [ 0.200, 9.1758e+04, 1.4253e+03 ], + [ 0.210, 8.6537e+04, 1.3824e+03 ], + [ 0.220, 8.2889e+04, 1.3627e+03 ], + [ 0.230, 8.6643e+04, 1.0507e+03 ], + [ 0.240, 8.9520e+04, 1.0556e+03 ], + [ 0.250, 9.2661e+04, 1.4839e+03 ], + [ 0.260, 9.2073e+04, 1.4540e+03 ], + [ 0.270, 9.6154e+04, 1.5206e+03 ], + [ 0.280, 9.9363e+04, 1.5870e+03 ], + [ 0.290, 1.0806e+05, 1.6783e+03 ], + [ 0.300, 1.0922e+05, 1.7732e+03 ], + [ 0.310, 1.1394e+05, 2.0073e+03 ], + [ 0.320, 1.1618e+05, 1.9293e+03 ], + [ 0.330, 1.1763e+05, 1.8512e+03 ], + [ 0.340, 1.1951e+05, 2.0853e+03 ], + [ 0.350, 1.1915e+05, 2.0421e+03 ], + [ 0.360, 1.1530e+05, 1.9651e+03 ], + [ 0.370, 1.1596e+05, 1.9498e+03 ], + [ 0.380, 1.1512e+05, 1.9601e+03 ], + [ 0.390, 1.0841e+05, 1.3507e+03 ], + [ 0.400, 1.0227e+05, 1.3152e+03 ], + [ 0.410, 9.8445e+04, 1.7340e+03 ], + [ 0.420, 9.6016e+04, 1.7210e+03 ], + [ 0.430, 9.2806e+04, 1.6817e+03 ], + [ 0.440, 8.7306e+04, 1.1706e+03 ], + [ 0.450, 8.3263e+04, 1.5386e+03 ], + [ 0.460, 7.5245e+04, 1.4123e+03 ], + [ 0.470, 7.2463e+04, 1.3936e+03 ], + [ 0.480, 7.0795e+04, 1.3848e+03 ], + [ 0.490, 6.6436e+04, 9.9066e+02 ], + [ 0.500, 6.4571e+04, 1.3411e+03 ], + [ 0.510, 6.2391e+04, 1.2900e+03 ], + [ 0.520, 5.7711e+04, 1.2656e+03 ], + [ 0.530, 5.5144e+04, 9.6666e+02 ], + [ 0.540, 5.3845e+04, 1.3578e+03 ], + [ 0.550, 5.1175e+04, 1.2995e+03 ], + [ 0.560, 4.8190e+04, 1.2861e+03 ], + [ 0.570, 4.4998e+04, 1.2845e+03 ], + [ 0.580, 4.5271e+04, 1.3267e+03 ], + ] + }, + { + Author: "Baran" + Year: "1988" + Citation: "Baran:1988tw" + Target: [6, 12] + EIn: 1.650 + AngOut: 13.540 + Data: [ + [ 0.040, 1.4550e+05, 2.5269e+03 ], + [ 0.050, 1.7543e+05, 2.2920e+03 ], + [ 0.060, 1.9897e+05, 2.3776e+03 ], + [ 0.070, 2.2176e+05, 2.5087e+03 ], + [ 0.080, 2.4380e+05, 4.0760e+03 ], + [ 0.090, 2.5818e+05, 4.1586e+03 ], + [ 0.100, 2.5209e+05, 4.0963e+03 ], + [ 0.110, 2.4213e+05, 4.0746e+03 ], + [ 0.120, 2.2738e+05, 2.3708e+03 ], + [ 0.130, 2.0664e+05, 2.2299e+03 ], + [ 0.140, 1.7368e+05, 2.3360e+03 ], + [ 0.150, 1.4879e+05, 2.1218e+03 ], + [ 0.160, 1.2741e+05, 1.9747e+03 ], + [ 0.170, 1.0738e+05, 1.7872e+03 ], + [ 0.180, 9.4917e+04, 1.2134e+03 ], + [ 0.190, 8.1590e+04, 1.2957e+03 ], + [ 0.200, 7.4192e+04, 1.4876e+03 ], + [ 0.210, 6.4032e+04, 1.3372e+03 ], + [ 0.220, 6.1780e+04, 1.3313e+03 ], + [ 0.230, 5.7887e+04, 7.7605e+02 ], + [ 0.240, 5.7631e+04, 7.5243e+02 ], + [ 0.250, 5.6187e+04, 8.9025e+02 ], + [ 0.260, 5.7123e+04, 8.9187e+02 ], + [ 0.270, 5.8900e+04, 9.1254e+02 ], + [ 0.280, 6.1353e+04, 9.6195e+02 ], + [ 0.290, 6.5783e+04, 7.3892e+02 ], + [ 0.300, 6.8219e+04, 7.7838e+02 ], + [ 0.310, 6.7295e+04, 1.1029e+03 ], + [ 0.320, 6.8595e+04, 1.1147e+03 ], + [ 0.330, 7.2950e+04, 1.1336e+03 ], + [ 0.340, 7.2924e+04, 8.7124e+02 ], + [ 0.350, 7.3388e+04, 8.8248e+02 ], + [ 0.360, 7.4758e+04, 1.2962e+03 ], + [ 0.370, 7.3952e+04, 1.2788e+03 ], + [ 0.380, 7.6922e+04, 1.3209e+03 ], + [ 0.390, 7.3000e+04, 9.0101e+02 ], + [ 0.400, 7.0635e+04, 8.7027e+02 ], + [ 0.410, 7.2046e+04, 1.1355e+03 ], + [ 0.420, 6.9352e+04, 1.1141e+03 ], + [ 0.430, 6.4596e+04, 1.0962e+03 ], + [ 0.440, 6.2484e+04, 7.6616e+02 ], + [ 0.450, 5.9815e+04, 1.0173e+03 ], + [ 0.460, 5.6697e+04, 9.5349e+02 ], + [ 0.470, 5.1094e+04, 9.0767e+02 ], + [ 0.480, 4.9635e+04, 9.0237e+02 ], + [ 0.490, 4.9112e+04, 6.2486e+02 ], + [ 0.500, 4.8227e+04, 8.2415e+02 ], + [ 0.510, 4.5892e+04, 7.8630e+02 ], + [ 0.520, 4.2609e+04, 7.5900e+02 ], + [ 0.530, 4.0271e+04, 4.8688e+02 ], + [ 0.540, 4.0295e+04, 6.0142e+02 ], + [ 0.550, 3.7745e+04, 5.6283e+02 ], + [ 0.560, 3.4448e+04, 5.3211e+02 ], + [ 0.570, 3.3056e+04, 5.3444e+02 ], + [ 0.580, 3.2832e+04, 5.5849e+02 ], + ] + }, + { + Author: "Bagdasaryan" + Year: "1988" + Citation: "Bagdasaryan:1988hp" + Target: [6, 12] + EIn: 1.930 + AngOut: 16.000 + Data: [ + [ 0.000, 2.0700e+03, 3.0000e+02 ], + [ 0.018, 4.4400e+03, 5.0000e+02 ], + [ 0.036, 8.2400e+03, 6.0000e+02 ], + [ 0.054, 1.4600e+04, 9.0000e+02 ], + [ 0.073, 2.3500e+04, 1.7000e+03 ], + [ 0.091, 3.3800e+04, 1.3000e+03 ], + [ 0.109, 4.3200e+04, 2.1000e+03 ], + [ 0.127, 5.1100e+04, 2.5000e+03 ], + [ 0.145, 5.3000e+04, 2.5000e+03 ], + [ 0.164, 6.0200e+04, 2.8000e+03 ], + [ 0.182, 5.5300e+04, 2.7000e+03 ], + [ 0.200, 5.3300e+04, 2.7000e+03 ], + [ 0.218, 4.2500e+04, 2.3000e+03 ], + [ 0.236, 3.6200e+04, 2.0000e+03 ], + [ 0.262, 3.1400e+04, 1.9000e+03 ], + [ 0.278, 3.0500e+04, 1.8000e+03 ], + [ 0.293, 2.7200e+04, 1.8000e+03 ], + [ 0.309, 2.7000e+04, 1.8000e+03 ], + [ 0.324, 2.1600e+04, 1.6000e+03 ], + [ 0.340, 2.4300e+04, 1.8000e+03 ], + [ 0.355, 2.2400e+04, 1.7000e+03 ], + [ 0.371, 2.4900e+04, 2.0000e+03 ], + [ 0.386, 2.6100e+04, 2.0000e+03 ], + [ 0.401, 2.5400e+04, 2.1000e+03 ], + [ 0.417, 2.5900e+04, 2.2000e+03 ], + [ 0.432, 2.7200e+04, 2.3000e+03 ], + [ 0.448, 2.7500e+04, 2.4000e+03 ], + [ 0.463, 2.7000e+04, 2.5000e+03 ], + [ 0.479, 2.4300e+04, 2.2000e+03 ], + [ 0.504, 2.4400e+04, 2.3000e+03 ], + [ 0.510, 2.3100e+04, 2.3000e+03 ], + ] + }, + { + Author: "Bagdasaryan" + Year: "1988" + Citation: "Bagdasaryan:1988hp" + Target: [6, 12] + EIn: 1.930 + AngOut: 18.000 + Data: [ + [ 0.000, 3.8000e+02, 1.0000e+02 ], + [ 0.018, 8.0000e+02, 2.0000e+02 ], + [ 0.036, 2.1400e+03, 3.0000e+02 ], + [ 0.054, 2.6000e+03, 3.0000e+02 ], + [ 0.073, 5.7700e+03, 5.0000e+02 ], + [ 0.092, 8.7100e+03, 7.0000e+02 ], + [ 0.109, 1.2500e+04, 8.0000e+02 ], + [ 0.127, 1.6800e+04, 1.0000e+03 ], + [ 0.145, 2.3100e+04, 1.4000e+03 ], + [ 0.164, 2.6300e+04, 1.4000e+03 ], + [ 0.182, 2.7600e+04, 1.4000e+03 ], + [ 0.200, 3.1300e+04, 1.6000e+03 ], + [ 0.218, 2.8600e+04, 1.5000e+03 ], + [ 0.236, 2.7000e+04, 1.4000e+03 ], + [ 0.255, 2.4200e+04, 1.4000e+03 ], + [ 0.270, 2.2000e+04, 1.3000e+03 ], + [ 0.285, 2.0700e+04, 1.3000e+03 ], + [ 0.301, 1.8800e+04, 1.2000e+03 ], + [ 0.316, 1.9200e+04, 1.3000e+03 ], + [ 0.332, 1.8600e+04, 1.3000e+03 ], + [ 0.347, 1.7700e+04, 1.2000e+03 ], + [ 0.364, 1.6900e+04, 1.2000e+03 ], + [ 0.380, 1.6600e+04, 1.2000e+03 ], + [ 0.394, 1.9700e+04, 1.5000e+03 ], + [ 0.409, 1.8400e+04, 1.4000e+03 ], + [ 0.424, 1.9700e+04, 1.6000e+03 ], + [ 0.439, 1.9000e+04, 1.5000e+03 ], + [ 0.454, 2.0100e+04, 1.6000e+03 ], + [ 0.469, 1.9800e+04, 1.7000e+03 ], + [ 0.484, 2.0300e+04, 1.7000e+03 ], + [ 0.499, 1.8500e+04, 1.6000e+03 ], + [ 0.514, 1.9900e+04, 2.0000e+03 ], + [ 0.526, 1.8000e+04, 1.9000e+03 ], + [ 0.541, 1.8800e+04, 1.9000e+03 ], + [ 0.555, 1.7900e+04, 2.0000e+03 ], + [ 0.570, 1.7800e+04, 2.0000e+03 ], + ] + }, + { + Author: "Zeller" + Year: "1973" + Citation: "Zeller:1973ge" + Target: [6, 12] + EIn: 2.000 + AngOut: 15.000 + Data: [ + [ 0.030, 7.1076e+03, 2.9710e+02 ], + [ 0.040, 1.2529e+04, 4.0720e+02 ], + [ 0.050, 1.9548e+04, 5.1607e+02 ], + [ 0.060, 2.7763e+04, 6.1634e+02 ], + [ 0.070, 3.7016e+04, 7.0331e+02 ], + [ 0.080, 4.7376e+04, 7.9592e+02 ], + [ 0.090, 5.8369e+04, 8.8137e+02 ], + [ 0.100, 6.9192e+04, 9.5485e+02 ], + [ 0.110, 7.9181e+04, 1.0056e+03 ], + [ 0.120, 8.8087e+04, 1.0570e+03 ], + [ 0.130, 9.5264e+04, 1.0955e+03 ], + [ 0.140, 9.9616e+04, 1.1057e+03 ], + [ 0.150, 1.0128e+05, 1.1040e+03 ], + [ 0.160, 1.0052e+05, 1.0857e+03 ], + [ 0.170, 9.7810e+04, 1.0563e+03 ], + [ 0.180, 9.3515e+04, 1.0287e+03 ], + [ 0.190, 8.6876e+04, 9.9039e+02 ], + [ 0.200, 7.8488e+04, 9.0262e+02 ], + [ 0.210, 7.0250e+04, 8.4300e+02 ], + [ 0.220, 6.2899e+04, 7.7995e+02 ], + [ 0.230, 5.6008e+04, 7.3370e+02 ], + [ 0.240, 4.9319e+04, 6.6580e+02 ], + [ 0.250, 4.3849e+04, 6.2266e+02 ], + [ 0.260, 3.9661e+04, 5.7905e+02 ], + [ 0.270, 3.6758e+04, 5.5505e+02 ], + [ 0.280, 3.5168e+04, 5.4159e+02 ], + [ 0.290, 3.4420e+04, 5.4039e+02 ], + [ 0.300, 3.3758e+04, 5.3676e+02 ], + [ 0.310, 3.3215e+04, 5.3144e+02 ], + [ 0.320, 3.3229e+04, 5.3831e+02 ], + [ 0.330, 3.3577e+04, 5.3388e+02 ], + [ 0.340, 3.4775e+04, 5.4944e+02 ], + [ 0.350, 3.6208e+04, 5.7208e+02 ], + [ 0.360, 3.7064e+04, 5.7450e+02 ], + [ 0.370, 3.7583e+04, 5.8629e+02 ], + [ 0.380, 3.8134e+04, 5.9488e+02 ], + [ 0.390, 3.8740e+04, 5.9659e+02 ], + [ 0.400, 3.9557e+04, 6.0917e+02 ], + [ 0.410, 3.9976e+04, 6.1562e+02 ], + [ 0.420, 3.9614e+04, 5.9818e+02 ], + [ 0.430, 3.9292e+04, 5.9723e+02 ], + [ 0.440, 3.9341e+04, 6.0585e+02 ], + [ 0.450, 3.9116e+04, 5.9848e+02 ], + [ 0.460, 3.8507e+04, 5.9300e+02 ], + [ 0.470, 3.7669e+04, 5.8011e+02 ], + [ 0.480, 3.6841e+04, 5.7104e+02 ], + [ 0.490, 3.5683e+04, 5.6379e+02 ], + [ 0.500, 3.4472e+04, 5.3777e+02 ], + [ 0.510, 3.3274e+04, 5.3238e+02 ], + [ 0.520, 3.1962e+04, 5.1459e+02 ], + [ 0.530, 3.0605e+04, 5.0498e+02 ], + [ 0.540, 2.8960e+04, 4.8652e+02 ], + [ 0.550, 2.7517e+04, 4.7054e+02 ], + [ 0.560, 2.6542e+04, 4.6979e+02 ], + [ 0.570, 2.5564e+04, 4.4736e+02 ], + [ 0.580, 2.4880e+04, 4.5778e+02 ], + [ 0.590, 2.4101e+04, 4.4345e+02 ], + [ 0.600, 2.3086e+04, 4.3170e+02 ], + [ 0.610, 2.2409e+04, 4.3025e+02 ], + [ 0.620, 2.2061e+04, 4.3460e+02 ], + [ 0.630, 2.1616e+04, 4.3447e+02 ], + [ 0.640, 2.0642e+04, 4.2111e+02 ], + ] + }, + { + Author: "Arrington" + Year: "1995" + Citation: "Arrington:1995hs" + Target: [6, 12] + EIn: 2.015 + AngOut: 35.510 + Data: [ + [ 0.550, 2.0680e+02, 1.6800e+00 ], + [ 0.560, 2.1930e+02, 1.4380e+00 ], + [ 0.571, 2.3620e+02, 1.4460e+00 ], + [ 0.582, 2.6100e+02, 1.5400e+00 ], + [ 0.593, 2.7210e+02, 1.5670e+00 ], + [ 0.605, 2.7970e+02, 1.5950e+00 ], + [ 0.616, 2.8130e+02, 1.6070e+00 ], + [ 0.627, 2.8580e+02, 1.5900e+00 ], + [ 0.638, 2.9690e+02, 1.6440e+00 ], + [ 0.649, 2.9400e+02, 1.6040e+00 ], + [ 0.660, 3.0100e+02, 1.6320e+00 ], + [ 0.671, 3.1690e+02, 1.7430e+00 ], + [ 0.682, 3.2050e+02, 1.8750e+00 ], + [ 0.693, 3.3100e+02, 2.0650e+00 ], + ] + }, + { + Author: "Day" + Year: "1993" + Citation: "Day:1993md" + Target: [6, 12] + EIn: 2.020 + AngOut: 15.022 + Data: [ + [ 0.075, 2.7980e+04, 4.8200e+02 ], + [ 0.090, 3.7590e+04, 5.6200e+02 ], + [ 0.105, 5.0770e+04, 1.1690e+03 ], + [ 0.120, 5.6920e+04, 1.2240e+03 ], + [ 0.135, 6.4680e+04, 9.8860e+02 ], + [ 0.150, 6.7040e+04, 1.0000e+03 ], + [ 0.165, 6.7860e+04, 1.4700e+03 ], + [ 0.180, 6.4310e+04, 1.3740e+03 ], + [ 0.195, 5.7740e+04, 1.2650e+03 ], + [ 0.210, 5.3760e+04, 9.7580e+02 ], + [ 0.225, 4.8690e+04, 9.3360e+02 ], + [ 0.240, 4.0050e+04, 1.2440e+03 ], + [ 0.255, 3.4220e+04, 1.1400e+03 ], + [ 0.270, 2.9530e+04, 1.0430e+03 ], + [ 0.285, 2.8320e+04, 7.3930e+02 ], + [ 0.300, 2.8960e+04, 1.0410e+03 ], + [ 0.315, 2.6140e+04, 9.7930e+02 ], + [ 0.330, 2.9150e+04, 1.0340e+03 ], + [ 0.345, 2.9440e+04, 1.0750e+03 ], + [ 0.360, 2.7920e+04, 1.0710e+03 ], + ] + }, + { + Author: "Day" + Year: "1993" + Citation: "Day:1993md" + Target: [6, 12] + EIn: 2.020 + AngOut: 20.016 + Data: [ + [ 0.075, 4.6420e+02, 1.4280e+01 ], + [ 0.090, 8.5330e+02, 1.9270e+01 ], + [ 0.105, 1.3640e+03, 2.4010e+01 ], + [ 0.120, 2.0290e+03, 1.3620e+02 ], + [ 0.135, 3.3430e+03, 1.6790e+02 ], + [ 0.150, 4.3020e+03, 1.5040e+02 ], + [ 0.165, 5.8500e+03, 1.7170e+02 ], + [ 0.180, 7.6370e+03, 1.6980e+02 ], + [ 0.195, 9.2340e+03, 1.8540e+02 ], + [ 0.210, 1.0550e+04, 2.5760e+02 ], + [ 0.225, 1.1210e+04, 2.3380e+02 ], + [ 0.240, 1.1680e+04, 2.9120e+02 ], + [ 0.255, 1.2000e+04, 2.2720e+02 ], + [ 0.270, 1.1700e+04, 2.7250e+02 ], + [ 0.285, 1.1220e+04, 2.6200e+02 ], + [ 0.300, 1.0630e+04, 2.5240e+02 ], + [ 0.315, 9.7040e+03, 2.9330e+02 ], + [ 0.330, 9.3460e+03, 2.0240e+02 ], + [ 0.345, 8.6900e+03, 2.6120e+02 ], + [ 0.360, 8.3230e+03, 2.4760e+02 ], + [ 0.375, 7.5720e+03, 2.2900e+02 ], + [ 0.390, 7.4060e+03, 1.6220e+02 ], + [ 0.405, 7.0630e+03, 1.5940e+02 ], + [ 0.420, 6.6280e+03, 2.1040e+02 ], + [ 0.435, 6.9370e+03, 2.1750e+02 ], + [ 0.450, 7.6020e+03, 2.3470e+02 ], + ] + }, + { + Author: "Bagdasaryan" + Year: "1988" + Citation: "Bagdasaryan:1988hp" + Target: [6, 12] + EIn: 2.130 + AngOut: 16.000 + Data: [ + [ 0.021, 1.1100e+03, 2.0000e+02 ], + [ 0.040, 3.3800e+03, 4.0000e+02 ], + [ 0.063, 6.7100e+03, 6.0000e+02 ], + [ 0.082, 9.8900e+03, 7.0000e+02 ], + [ 0.102, 1.7300e+04, 1.0000e+03 ], + [ 0.121, 2.2800e+04, 1.2000e+03 ], + [ 0.141, 2.9300e+04, 1.7000e+03 ], + [ 0.160, 3.5500e+04, 1.7000e+03 ], + [ 0.179, 3.7000e+04, 1.8000e+03 ], + [ 0.199, 3.8500e+04, 1.9000e+03 ], + [ 0.218, 3.7600e+04, 1.8000e+03 ], + [ 0.237, 3.6000e+04, 1.8000e+03 ], + [ 0.256, 3.3400e+04, 1.8000e+03 ], + [ 0.272, 2.8600e+04, 1.7000e+03 ], + [ 0.297, 2.5600e+04, 1.6000e+03 ], + [ 0.315, 2.1700e+04, 1.5000e+03 ], + [ 0.334, 2.1800e+04, 1.6000e+03 ], + [ 0.353, 1.9200e+04, 1.5000e+03 ], + [ 0.373, 2.2400e+04, 1.8000e+03 ], + [ 0.389, 2.2100e+04, 1.9000e+03 ], + [ 0.406, 2.2100e+04, 1.9000e+03 ], + [ 0.423, 2.4500e+04, 2.1000e+03 ], + [ 0.440, 2.3600e+04, 2.1000e+03 ], + [ 0.457, 2.3800e+04, 2.2000e+03 ], + [ 0.474, 2.5400e+04, 2.1000e+03 ], + [ 0.491, 2.1100e+04, 2.3000e+03 ], + [ 0.508, 2.2300e+04, 2.3000e+03 ], + [ 0.521, 1.8800e+04, 2.0000e+03 ], + [ 0.537, 2.4400e+04, 2.6000e+03 ], + [ 0.554, 2.0700e+04, 2.3000e+03 ], + [ 0.570, 2.2600e+04, 2.6000e+03 ], + [ 0.586, 2.3000e+04, 2.6000e+03 ], + [ 0.602, 1.6600e+04, 2.0000e+03 ], + [ 0.619, 1.6500e+04, 2.0000e+03 ], + ] + }, + { + Author: "Bagdasaryan" + Year: "1988" + Citation: "Bagdasaryan:1988hp" + Target: [6, 12] + EIn: 2.130 + AngOut: 18.000 + Data: [ + [ 0.035, 5.6000e+02, 1.0000e+02 ], + [ 0.054, 1.0500e+03, 1.0000e+02 ], + [ 0.074, 1.7200e+03, 2.0000e+02 ], + [ 0.093, 3.0500e+03, 3.0000e+02 ], + [ 0.112, 5.5100e+03, 4.0000e+02 ], + [ 0.132, 7.4600e+03, 4.0000e+02 ], + [ 0.151, 9.9800e+03, 5.0000e+02 ], + [ 0.171, 1.3500e+04, 7.0000e+02 ], + [ 0.190, 1.5600e+04, 8.0000e+02 ], + [ 0.209, 1.6200e+04, 8.0000e+02 ], + [ 0.229, 1.8500e+04, 9.0000e+02 ], + [ 0.246, 2.0400e+04, 1.0000e+03 ], + [ 0.265, 1.9900e+04, 9.0000e+02 ], + [ 0.283, 1.8300e+04, 9.0000e+02 ], + [ 0.301, 1.5700e+04, 8.0000e+02 ], + [ 0.314, 1.5800e+04, 9.0000e+02 ], + [ 0.329, 1.3700e+04, 8.0000e+02 ], + [ 0.347, 1.4400e+04, 8.0000e+02 ], + [ 0.367, 1.4500e+04, 9.0000e+02 ], + [ 0.384, 1.3400e+04, 8.0000e+02 ], + [ 0.401, 1.3700e+04, 9.0000e+02 ], + [ 0.419, 1.3400e+04, 9.0000e+02 ], + [ 0.436, 1.3400e+04, 9.0000e+02 ], + [ 0.454, 1.4600e+04, 1.0000e+03 ], + [ 0.470, 1.5100e+04, 1.1000e+03 ], + [ 0.487, 1.4300e+04, 1.2000e+03 ], + [ 0.504, 1.5200e+04, 1.2000e+03 ], + [ 0.516, 1.4400e+04, 1.2000e+03 ], + [ 0.531, 1.4500e+04, 1.3000e+03 ], + [ 0.547, 1.4700e+04, 1.3000e+03 ], + [ 0.562, 1.4300e+04, 1.3000e+03 ], + [ 0.578, 1.4300e+04, 1.3000e+03 ], + [ 0.594, 1.4200e+04, 1.4000e+03 ], + ] + }, + { + Author: "Zeller" + Year: "1973" + Citation: "Zeller:1973ge" + Target: [6, 12] + EIn: 2.500 + AngOut: 15.000 + Data: [ + [ 0.030, 3.4320e+02, 6.8057e+01 ], + [ 0.040, 6.6720e+02, 6.3718e+01 ], + [ 0.050, 1.0572e+03, 9.5888e+01 ], + [ 0.060, 1.5468e+03, 1.1756e+02 ], + [ 0.070, 2.2536e+03, 1.2575e+02 ], + [ 0.080, 3.2364e+03, 1.5664e+02 ], + [ 0.090, 4.4940e+03, 1.9774e+02 ], + [ 0.100, 6.0336e+03, 2.2867e+02 ], + [ 0.110, 7.9608e+03, 2.7783e+02 ], + [ 0.120, 1.0270e+04, 2.9371e+02 ], + [ 0.130, 1.2659e+04, 3.2913e+02 ], + [ 0.140, 1.5206e+04, 3.6799e+02 ], + [ 0.150, 1.7626e+04, 3.8953e+02 ], + [ 0.160, 1.9801e+04, 4.1583e+02 ], + [ 0.170, 2.1704e+04, 4.4277e+02 ], + [ 0.180, 2.3634e+04, 4.5377e+02 ], + [ 0.190, 2.5409e+04, 4.5736e+02 ], + [ 0.200, 2.7019e+04, 4.7554e+02 ], + [ 0.210, 2.8216e+04, 4.8249e+02 ], + [ 0.220, 2.8904e+04, 4.9137e+02 ], + [ 0.230, 2.9201e+04, 4.8181e+02 ], + [ 0.240, 2.9066e+04, 4.7669e+02 ], + [ 0.250, 2.8524e+04, 4.7065e+02 ], + [ 0.260, 2.7716e+04, 4.5455e+02 ], + [ 0.270, 2.6570e+04, 4.4904e+02 ], + [ 0.280, 2.5002e+04, 4.3253e+02 ], + [ 0.290, 2.3359e+04, 4.0645e+02 ], + [ 0.300, 2.2134e+04, 3.9399e+02 ], + [ 0.310, 2.0880e+04, 3.8419e+02 ], + [ 0.320, 1.9570e+04, 3.6399e+02 ], + [ 0.330, 1.8652e+04, 3.5252e+02 ], + [ 0.340, 1.7860e+04, 3.2504e+02 ], + [ 0.350, 1.6850e+04, 3.2184e+02 ], + [ 0.360, 1.6084e+04, 3.2006e+02 ], + [ 0.370, 1.5618e+04, 3.0143e+02 ], + [ 0.380, 1.5341e+04, 3.0682e+02 ], + [ 0.390, 1.5148e+04, 3.0295e+02 ], + [ 0.400, 1.4962e+04, 3.0372e+02 ], + [ 0.410, 1.4900e+04, 3.0397e+02 ], + [ 0.420, 1.5044e+04, 3.0540e+02 ], + [ 0.430, 1.5270e+04, 3.0998e+02 ], + [ 0.440, 1.5445e+04, 3.0273e+02 ], + [ 0.450, 1.5592e+04, 3.1495e+02 ], + [ 0.460, 1.5883e+04, 3.1608e+02 ], + [ 0.470, 1.6097e+04, 3.2516e+02 ], + [ 0.480, 1.6228e+04, 3.2293e+02 ], + [ 0.490, 1.6357e+04, 3.2224e+02 ], + [ 0.500, 1.6456e+04, 3.1924e+02 ], + [ 0.510, 1.6552e+04, 3.2110e+02 ], + [ 0.520, 1.6458e+04, 3.2093e+02 ], + [ 0.530, 1.6178e+04, 3.1871e+02 ], + [ 0.540, 1.5944e+04, 3.1251e+02 ], + [ 0.550, 1.5704e+04, 3.1566e+02 ], + [ 0.560, 1.5560e+04, 3.0965e+02 ], + [ 0.570, 1.5384e+04, 2.9845e+02 ], + [ 0.580, 1.4988e+04, 3.0426e+02 ], + [ 0.590, 1.4569e+04, 2.9138e+02 ], + [ 0.600, 1.4268e+04, 2.9107e+02 ], + [ 0.610, 1.4114e+04, 2.8088e+02 ], + [ 0.620, 1.3866e+04, 2.8425e+02 ], + [ 0.630, 1.3538e+04, 2.7483e+02 ], + [ 0.640, 1.3236e+04, 2.7266e+02 ], + [ 0.650, 1.2754e+04, 2.6910e+02 ], + [ 0.660, 1.2180e+04, 2.6065e+02 ], + [ 0.670, 1.1818e+04, 2.5999e+02 ], + [ 0.680, 1.1692e+04, 2.5488e+02 ], + [ 0.690, 1.1638e+04, 2.5254e+02 ], + [ 0.700, 1.1364e+04, 2.5114e+02 ], + [ 0.710, 1.1125e+04, 2.5365e+02 ], + [ 0.720, 1.1090e+04, 2.5175e+02 ], + [ 0.730, 1.0997e+04, 2.4523e+02 ], + [ 0.740, 1.0853e+04, 2.5178e+02 ], + [ 0.750, 1.0678e+04, 2.4665e+02 ], + [ 0.760, 1.0439e+04, 2.1064e+02 ], + [ 0.770, 1.0350e+04, 2.4737e+02 ], + [ 0.780, 1.0412e+04, 2.3532e+02 ], + ] + }, + { + Author: "Zeller" + Year: "1973" + Citation: "Zeller:1973ge" + Target: [6, 12] + EIn: 2.700 + AngOut: 15.000 + Data: [ + [ 0.040, 3.8400e+01, 2.7187e+01 ], + [ 0.050, 1.0200e+02, 2.9121e+01 ], + [ 0.060, 2.0160e+02, 5.1670e+01 ], + [ 0.070, 3.2760e+02, 6.2768e+01 ], + [ 0.080, 4.9800e+02, 7.0567e+01 ], + [ 0.090, 7.4400e+02, 8.9726e+01 ], + [ 0.100, 1.0680e+03, 1.0477e+02 ], + [ 0.110, 1.5564e+03, 1.2451e+02 ], + [ 0.120, 2.2104e+03, 1.6114e+02 ], + [ 0.130, 3.0012e+03, 1.7767e+02 ], + [ 0.140, 4.0644e+03, 2.0810e+02 ], + [ 0.150, 5.3508e+03, 2.4239e+02 ], + [ 0.160, 6.8100e+03, 2.7172e+02 ], + [ 0.170, 8.4660e+03, 3.0139e+02 ], + [ 0.180, 1.0312e+04, 3.3306e+02 ], + [ 0.190, 1.2383e+04, 3.6034e+02 ], + [ 0.200, 1.4519e+04, 3.9491e+02 ], + [ 0.210, 1.6394e+04, 4.1970e+02 ], + [ 0.220, 1.8095e+04, 4.3066e+02 ], + [ 0.230, 1.9872e+04, 4.6103e+02 ], + [ 0.240, 2.1367e+04, 4.6794e+02 ], + [ 0.250, 2.2540e+04, 4.8235e+02 ], + [ 0.260, 2.3405e+04, 4.8682e+02 ], + [ 0.270, 2.3879e+04, 4.8952e+02 ], + [ 0.280, 2.4089e+04, 4.8418e+02 ], + [ 0.290, 2.4115e+04, 4.8230e+02 ], + [ 0.300, 2.3788e+04, 4.7813e+02 ], + [ 0.310, 2.3069e+04, 4.6368e+02 ], + [ 0.320, 2.2330e+04, 4.5106e+02 ], + [ 0.330, 2.1797e+04, 4.4248e+02 ], + [ 0.340, 2.1109e+04, 4.3696e+02 ], + [ 0.350, 2.0072e+04, 4.1751e+02 ], + [ 0.360, 1.9178e+04, 4.0466e+02 ], + [ 0.370, 1.8389e+04, 4.0088e+02 ], + [ 0.380, 1.7164e+04, 3.7588e+02 ], + [ 0.390, 1.6001e+04, 3.6162e+02 ], + [ 0.400, 1.5274e+04, 3.5435e+02 ], + [ 0.410, 1.4850e+04, 3.4304e+02 ], + [ 0.420, 1.4585e+04, 3.4712e+02 ], + [ 0.430, 1.4419e+04, 3.3597e+02 ], + [ 0.440, 1.4320e+04, 3.4367e+02 ], + [ 0.450, 1.4089e+04, 3.3391e+02 ], + [ 0.460, 1.4126e+04, 3.3762e+02 ], + [ 0.470, 1.4316e+04, 3.4072e+02 ], + [ 0.480, 1.4417e+04, 3.3735e+02 ], + [ 0.490, 1.4477e+04, 3.4310e+02 ], + [ 0.500, 1.4610e+04, 3.3895e+02 ], + [ 0.510, 1.4958e+04, 3.5450e+02 ], + [ 0.520, 1.5168e+04, 3.4735e+02 ], + [ 0.530, 1.5276e+04, 3.5440e+02 ], + [ 0.540, 1.5196e+04, 3.4798e+02 ], + [ 0.550, 1.5020e+04, 3.4697e+02 ], + [ 0.560, 1.4884e+04, 3.4679e+02 ], + [ 0.570, 1.4846e+04, 3.4295e+02 ], + [ 0.580, 1.4968e+04, 3.4425e+02 ], + [ 0.590, 1.5070e+04, 3.4961e+02 ], + [ 0.600, 1.4964e+04, 3.4118e+02 ], + [ 0.610, 1.4754e+04, 3.4524e+02 ], + [ 0.620, 1.4422e+04, 3.3458e+02 ], + [ 0.630, 1.4188e+04, 3.3057e+02 ], + [ 0.640, 1.4179e+04, 3.2754e+02 ], + [ 0.650, 1.4090e+04, 3.3676e+02 ], + [ 0.660, 1.3849e+04, 3.1992e+02 ], + [ 0.670, 1.3637e+04, 3.2865e+02 ], + [ 0.680, 1.2958e+04, 3.1098e+02 ], + [ 0.690, 1.2222e+04, 2.9944e+02 ], + [ 0.700, 1.2108e+04, 2.9544e+02 ], + [ 0.710, 1.2320e+04, 3.0801e+02 ], + [ 0.720, 1.2192e+04, 2.9992e+02 ], + [ 0.730, 1.1844e+04, 2.9373e+02 ], + [ 0.740, 1.1615e+04, 2.9269e+02 ], + [ 0.750, 1.1545e+04, 2.9209e+02 ], + [ 0.760, 1.1419e+04, 2.9119e+02 ], + [ 0.770, 1.1111e+04, 2.8999e+02 ], + [ 0.780, 1.0781e+04, 2.7814e+02 ], + [ 0.790, 1.0704e+04, 2.8366e+02 ], + [ 0.800, 1.0777e+04, 2.8236e+02 ], + [ 0.810, 1.0834e+04, 2.8817e+02 ], + [ 0.820, 1.0759e+04, 2.9050e+02 ], + [ 0.830, 1.0576e+04, 2.8131e+02 ], + [ 0.840, 1.0588e+04, 2.8904e+02 ], + [ 0.850, 1.0532e+04, 2.9175e+02 ], + [ 0.860, 1.0198e+04, 2.7839e+02 ], + [ 0.870, 9.9708e+03, 3.1725e+02 ], + [ 0.880, 9.8364e+03, 2.8034e+02 ], + ] + }, + { + Author: "Arrington" + Year: "1995" + Citation: "Arrington:1995hs" + Target: [6, 12] + EIn: 3.188 + AngOut: 47.680 + Data: [ + [ 1.635, 1.4810e+00, 3.3620e-02 ], + [ 1.645, 1.5630e+00, 2.9250e-02 ], + [ 1.657, 1.7810e+00, 3.0590e-02 ], + [ 1.668, 2.0100e+00, 3.2350e-02 ], + [ 1.680, 2.2350e+00, 3.4090e-02 ], + [ 1.692, 2.3980e+00, 3.5110e-02 ], + [ 1.704, 2.5360e+00, 3.6200e-02 ], + [ 1.716, 2.7440e+00, 3.7580e-02 ], + [ 1.727, 2.9860e+00, 3.9230e-02 ], + [ 1.739, 3.2400e+00, 4.0960e-02 ], + [ 1.751, 3.5390e+00, 4.2780e-02 ], + [ 1.762, 3.9270e+00, 4.6020e-02 ], + [ 1.774, 4.2830e+00, 5.0330e-02 ], + [ 1.786, 4.5260e+00, 5.3750e-02 ], + ] + }, + { + Author: "Day" + Year: "1993" + Citation: "Day:1993md" + Target: [6, 12] + EIn: 3.595 + AngOut: 16.020 + Data: [ + [ 0.210, 7.9870e+01, 4.2470e+00 ], + [ 0.225, 1.1590e+02, 4.9990e+00 ], + [ 0.240, 1.6210e+02, 5.8460e+00 ], + [ 0.255, 2.1540e+02, 6.8190e+00 ], + [ 0.270, 2.6840e+02, 7.9340e+00 ], + [ 0.285, 3.6270e+02, 8.5860e+00 ], + [ 0.300, 4.7090e+02, 9.6100e+00 ], + [ 0.315, 6.1080e+02, 1.0840e+01 ], + [ 0.330, 7.8750e+02, 3.0520e+01 ], + [ 0.345, 9.8430e+02, 3.3920e+01 ], + [ 0.360, 1.2150e+03, 3.7700e+01 ], + [ 0.375, 1.4200e+03, 4.0490e+01 ], + [ 0.390, 1.5980e+03, 4.2840e+01 ], + [ 0.405, 1.8690e+03, 3.7950e+01 ], + [ 0.420, 2.1250e+03, 4.0160e+01 ], + [ 0.435, 2.2830e+03, 4.1380e+01 ], + [ 0.450, 2.3100e+03, 6.3090e+01 ], + [ 0.465, 2.5340e+03, 6.4400e+01 ], + [ 0.480, 2.6450e+03, 6.5000e+01 ], + [ 0.495, 2.6510e+03, 6.3900e+01 ], + [ 0.510, 2.7400e+03, 6.4440e+01 ], + [ 0.525, 2.6070e+03, 4.9450e+01 ], + [ 0.540, 2.6530e+03, 4.8890e+01 ], + [ 0.555, 2.5710e+03, 4.8310e+01 ], + [ 0.570, 2.6060e+03, 7.3660e+01 ], + [ 0.585, 2.4250e+03, 7.0080e+01 ], + [ 0.600, 2.4210e+03, 6.7020e+01 ], + [ 0.615, 2.5080e+03, 6.7000e+01 ], + [ 0.630, 2.4070e+03, 6.6110e+01 ], + [ 0.645, 2.3190e+03, 5.5950e+01 ], + [ 0.660, 2.4350e+03, 5.7020e+01 ], + [ 0.675, 2.4290e+03, 5.5850e+01 ], + [ 0.690, 2.5520e+03, 9.1670e+01 ], + [ 0.705, 2.4970e+03, 9.2820e+01 ], + [ 0.720, 2.7380e+03, 9.6960e+01 ], + [ 0.735, 2.6360e+03, 9.1400e+01 ], + [ 0.750, 2.7660e+03, 9.7520e+01 ], + [ 0.765, 2.7450e+03, 7.1180e+01 ], + [ 0.780, 2.5570e+03, 6.6480e+01 ], + [ 0.795, 2.6930e+03, 6.9600e+01 ], + [ 0.810, 2.4400e+03, 8.9870e+01 ], + [ 0.825, 2.7810e+03, 9.6580e+01 ], + [ 0.840, 2.6750e+03, 9.3790e+01 ], + [ 0.855, 2.5930e+03, 9.2430e+01 ], + [ 0.870, 2.5050e+03, 7.3950e+01 ], + [ 0.885, 2.7360e+03, 7.8170e+01 ], + [ 0.900, 2.6740e+03, 7.6540e+01 ], + [ 0.915, 2.8510e+03, 1.2580e+02 ], + [ 0.930, 2.6540e+03, 1.1920e+02 ], + [ 0.945, 2.8000e+03, 1.2510e+02 ], + [ 0.960, 2.5310e+03, 1.1820e+02 ], + [ 0.975, 2.6140e+03, 8.1560e+01 ], + [ 0.990, 2.5980e+03, 8.0600e+01 ], + [ 1.005, 2.8040e+03, 1.1120e+02 ], + [ 1.020, 2.9450e+03, 1.1610e+02 ], + [ 1.035, 2.7400e+03, 1.0910e+02 ], + [ 1.050, 2.7340e+03, 1.0660e+02 ], + [ 1.065, 2.7910e+03, 1.1090e+02 ], + [ 1.080, 2.8040e+03, 8.1830e+01 ], + [ 1.095, 2.6290e+03, 7.8210e+01 ], + [ 1.110, 2.8400e+03, 1.1450e+02 ], + [ 1.125, 2.7660e+03, 1.1390e+02 ], + [ 1.140, 2.7760e+03, 1.1650e+02 ], + [ 1.155, 2.8850e+03, 1.2020e+02 ], + [ 1.170, 3.0620e+03, 7.2990e+01 ], + [ 1.185, 3.0240e+03, 6.8060e+01 ], + [ 1.200, 2.7430e+03, 7.4940e+01 ], + [ 1.215, 2.8360e+03, 7.4760e+01 ], + [ 1.230, 2.8890e+03, 7.4130e+01 ], + [ 1.245, 2.9920e+03, 7.5510e+01 ], + [ 1.260, 2.9380e+03, 7.5200e+01 ], + [ 1.275, 2.9650e+03, 6.1060e+01 ], + [ 1.290, 2.8720e+03, 6.0770e+01 ], + [ 1.305, 2.7380e+03, 9.4620e+01 ], + [ 1.320, 2.8340e+03, 9.3410e+01 ], + [ 1.335, 2.8110e+03, 9.2270e+01 ], + [ 1.350, 3.0710e+03, 9.9130e+01 ], + [ 1.365, 2.8140e+03, 7.4480e+01 ], + [ 1.380, 2.8350e+03, 7.4120e+01 ], + [ 1.395, 2.8550e+03, 1.1150e+02 ], + [ 1.410, 3.0070e+03, 1.1350e+02 ], + [ 1.425, 2.5610e+03, 1.0360e+02 ], + [ 1.440, 2.8160e+03, 8.0240e+01 ], + [ 1.455, 2.7540e+03, 7.7590e+01 ], + [ 1.470, 2.7990e+03, 1.0790e+02 ], + [ 1.485, 2.6010e+03, 1.0360e+02 ], + [ 1.500, 2.6600e+03, 1.0520e+02 ], + [ 1.515, 2.6670e+03, 1.0540e+02 ], + [ 1.530, 2.7290e+03, 1.0770e+02 ], + [ 1.545, 2.5150e+03, 1.0480e+02 ], + ] + }, + { + Author: "Day" + Year: "1993" + Citation: "Day:1993md" + Target: [6, 12] + EIn: 3.595 + AngOut: 20.016 + Data: [ + [ 0.165, 5.9550e-02, 2.8440e-02 ], + [ 0.180, 1.4390e-01, 3.6090e-02 ], + [ 0.195, 2.2000e-01, 4.0460e-02 ], + [ 0.210, 3.5310e-01, 4.9290e-02 ], + [ 0.225, 5.9720e-01, 6.5580e-02 ], + [ 0.240, 1.0270e+00, 8.9160e-02 ], + [ 0.255, 1.2490e+00, 1.0150e-01 ], + [ 0.270, 1.9240e+00, 1.1270e-01 ], + [ 0.285, 2.6550e+00, 1.2840e-01 ], + [ 0.300, 3.7690e+00, 1.5250e-01 ], + [ 0.315, 5.0060e+00, 3.8180e-01 ], + [ 0.330, 6.7110e+00, 4.3480e-01 ], + [ 0.345, 8.4460e+00, 4.9010e-01 ], + [ 0.360, 1.1740e+01, 5.8180e-01 ], + [ 0.375, 1.4480e+01, 6.4550e-01 ], + [ 0.390, 1.7800e+01, 7.1960e-01 ], + [ 0.405, 2.5050e+01, 7.9510e-01 ], + [ 0.420, 3.0350e+01, 8.8470e-01 ], + [ 0.435, 3.9920e+01, 1.0350e+00 ], + [ 0.450, 4.6960e+01, 2.3040e+00 ], + [ 0.465, 6.1050e+01, 2.5620e+00 ], + [ 0.480, 8.4440e+01, 2.9990e+00 ], + [ 0.495, 9.7260e+01, 3.1620e+00 ], + [ 0.510, 1.2210e+02, 3.5480e+00 ], + [ 0.525, 1.4380e+02, 3.3490e+00 ], + [ 0.540, 1.6770e+02, 3.5750e+00 ], + [ 0.555, 1.9860e+02, 3.9590e+00 ], + [ 0.570, 2.4550e+02, 7.8870e+00 ], + [ 0.585, 2.8180e+02, 8.3900e+00 ], + [ 0.600, 3.1430e+02, 8.4820e+00 ], + [ 0.615, 3.6190e+02, 8.9340e+00 ], + [ 0.630, 3.6560e+02, 9.0860e+00 ], + [ 0.645, 4.1680e+02, 8.3140e+00 ], + [ 0.660, 4.2180e+02, 8.3190e+00 ], + [ 0.675, 4.4120e+02, 8.1820e+00 ], + [ 0.690, 4.5510e+02, 1.3840e+01 ], + [ 0.705, 4.6200e+02, 1.3780e+01 ], + [ 0.720, 4.9470e+02, 1.3680e+01 ], + [ 0.735, 5.1210e+02, 1.4340e+01 ], + [ 0.750, 5.2090e+02, 1.1030e+01 ], + [ 0.765, 5.1760e+02, 1.0580e+01 ], + [ 0.780, 5.1780e+02, 1.0740e+01 ], + [ 0.795, 5.2570e+02, 1.5370e+01 ], + [ 0.810, 5.3390e+02, 1.5500e+01 ], + [ 0.825, 5.4390e+02, 1.5490e+01 ], + [ 0.840, 5.2970e+02, 1.5420e+01 ], + [ 0.855, 5.2230e+02, 1.5390e+01 ], + [ 0.870, 5.5890e+02, 1.6040e+01 ], + [ 0.885, 5.8700e+02, 1.6840e+01 ], + ] + }, + { + Author: "Day" + Year: "1993" + Citation: "Day:1993md" + Target: [6, 12] + EIn: 3.595 + AngOut: 25.012 + Data: [ + [ 0.360, 2.9920e-02, 1.3940e-02 ], + [ 0.390, 4.3800e-02, 1.5970e-02 ], + [ 0.405, 7.0700e-02, 1.8370e-02 ], + [ 0.420, 8.0210e-02, 1.8580e-02 ], + [ 0.435, 1.3600e-01, 2.4440e-02 ], + [ 0.450, 1.5990e-01, 2.6620e-02 ], + [ 0.465, 1.8850e-01, 2.8610e-02 ], + [ 0.480, 2.6640e-01, 2.9820e-02 ], + [ 0.495, 4.3830e-01, 3.9390e-02 ], + [ 0.510, 5.0800e-01, 4.2780e-02 ], + [ 0.525, 6.3530e-01, 4.8220e-02 ], + [ 0.540, 8.9350e-01, 1.1630e-01 ], + [ 0.555, 1.1710e+00, 1.2450e-01 ], + [ 0.570, 1.5930e+00, 1.4540e-01 ], + [ 0.585, 1.8610e+00, 1.5500e-01 ], + [ 0.600, 2.0430e+00, 1.6680e-01 ], + [ 0.615, 2.3500e+00, 1.5100e-01 ], + [ 0.630, 3.0690e+00, 1.7320e-01 ], + [ 0.645, 3.2040e+00, 2.7280e-01 ], + [ 0.660, 4.6830e+00, 3.4340e-01 ], + [ 0.675, 5.8680e+00, 3.7750e-01 ], + [ 0.690, 6.6100e+00, 3.9070e-01 ], + [ 0.705, 8.2640e+00, 4.4280e-01 ], + [ 0.720, 1.0670e+01, 4.2740e-01 ], + [ 0.735, 1.3280e+01, 4.6970e-01 ], + [ 0.750, 1.5720e+01, 5.1570e-01 ], + [ 0.765, 1.8600e+01, 9.6290e-01 ], + [ 0.780, 2.2460e+01, 1.0540e+00 ], + [ 0.795, 2.6740e+01, 1.1370e+00 ], + [ 0.810, 3.4050e+01, 1.3050e+00 ], + [ 0.825, 3.5080e+01, 1.3120e+00 ], + [ 0.840, 4.2240e+01, 1.1380e+00 ], + [ 0.855, 4.7230e+01, 1.2120e+00 ], + [ 0.870, 5.2190e+01, 1.9330e+00 ], + [ 0.885, 5.3990e+01, 1.9640e+00 ], + [ 0.900, 6.4130e+01, 2.1130e+00 ], + [ 0.915, 7.1990e+01, 2.2700e+00 ], + [ 0.930, 7.1310e+01, 2.2480e+00 ], + [ 0.945, 7.7470e+01, 1.8330e+00 ], + [ 0.960, 8.4070e+01, 1.8980e+00 ], + [ 0.975, 8.7150e+01, 2.9140e+00 ], + [ 0.990, 9.2960e+01, 3.0530e+00 ], + [ 1.005, 1.0120e+02, 3.1480e+00 ], + [ 1.020, 9.3660e+01, 2.9020e+00 ], + [ 1.035, 1.0280e+02, 3.1610e+00 ], + [ 1.050, 1.0130e+02, 2.3300e+00 ], + [ 1.065, 1.0550e+02, 2.3360e+00 ], + [ 1.080, 1.1320e+02, 3.4850e+00 ], + [ 1.095, 1.1410e+02, 3.5320e+00 ], + [ 1.110, 1.1550e+02, 3.6360e+00 ], + [ 1.125, 1.2200e+02, 3.7510e+00 ], + [ 1.140, 1.1970e+02, 3.6390e+00 ], + [ 1.155, 1.3080e+02, 3.8340e+00 ], + ] + }, + { + Author: "Day" + Year: "1993" + Citation: "Day:1993md" + Target: [6, 12] + EIn: 3.595 + AngOut: 30.010 + Data: [ + [ 0.975, 2.6750e+00, 2.9530e-01 ], + [ 0.990, 2.5500e+00, 2.7420e-01 ], + [ 1.005, 2.8370e+00, 2.7850e-01 ], + [ 1.020, 3.6740e+00, 3.2870e-01 ], + [ 1.035, 5.0640e+00, 3.8440e-01 ], + [ 1.050, 5.4370e+00, 3.8390e-01 ], + [ 1.065, 6.4630e+00, 4.2270e-01 ], + [ 1.080, 7.2080e+00, 2.9120e-01 ], + [ 1.095, 8.3410e+00, 3.0990e-01 ], + [ 1.110, 9.5450e+00, 4.1270e-01 ], + [ 1.125, 1.1240e+01, 4.5340e-01 ], + [ 1.140, 1.2110e+01, 4.7700e-01 ], + [ 1.155, 1.3110e+01, 5.0240e-01 ], + [ 1.170, 1.5080e+01, 4.2580e-01 ], + [ 1.185, 1.6750e+01, 4.4570e-01 ], + [ 1.200, 1.8020e+01, 7.3290e-01 ], + [ 1.215, 1.9410e+01, 7.4080e-01 ], + [ 1.230, 2.2670e+01, 7.8970e-01 ], + [ 1.245, 2.1680e+01, 7.6580e-01 ], + [ 1.260, 2.3170e+01, 6.3400e-01 ], + [ 1.275, 2.4620e+01, 6.4980e-01 ], + [ 1.290, 2.8480e+01, 1.1310e+00 ], + [ 1.305, 2.7890e+01, 1.1210e+00 ], + [ 1.320, 2.9290e+01, 1.1290e+00 ], + [ 1.335, 3.1350e+01, 1.1440e+00 ], + [ 1.350, 3.2110e+01, 9.0640e-01 ], + [ 1.365, 3.3310e+01, 9.3340e-01 ], + [ 1.380, 3.3990e+01, 1.3480e+00 ], + [ 1.395, 3.5930e+01, 1.3930e+00 ], + [ 1.410, 3.7210e+01, 1.4000e+00 ], + [ 1.425, 3.8120e+01, 1.4290e+00 ], + [ 1.440, 4.3400e+01, 1.1270e+00 ], + [ 1.455, 4.4030e+01, 1.1280e+00 ], + [ 1.470, 4.6600e+01, 1.6150e+00 ], + [ 1.485, 5.1830e+01, 1.6880e+00 ], + [ 1.500, 4.9720e+01, 1.6430e+00 ], + [ 1.515, 5.2890e+01, 1.1770e+00 ], + [ 1.530, 5.5510e+01, 1.1980e+00 ], + [ 1.545, 5.5900e+01, 1.6050e+00 ], + [ 1.560, 6.2170e+01, 1.6640e+00 ], + [ 1.575, 5.8910e+01, 1.5800e+00 ], + [ 1.590, 6.1060e+01, 1.6670e+00 ], + [ 1.605, 6.6630e+01, 1.4710e+00 ], + [ 1.620, 6.5630e+01, 2.5130e+00 ], + [ 1.635, 7.4620e+01, 2.6890e+00 ], + [ 1.650, 7.7410e+01, 2.7660e+00 ], + [ 1.665, 7.3860e+01, 2.6830e+00 ], + [ 1.680, 7.8620e+01, 2.1940e+00 ], + [ 1.695, 8.6650e+01, 3.5620e+00 ], + [ 1.710, 8.8780e+01, 3.4740e+00 ], + [ 1.725, 8.5290e+01, 3.3240e+00 ], + [ 1.740, 9.2630e+01, 3.4670e+00 ], + [ 1.755, 9.9540e+01, 2.5510e+00 ], + [ 1.770, 1.0100e+02, 2.5460e+00 ], + [ 1.785, 1.0410e+02, 3.4600e+00 ], + [ 1.800, 1.1050e+02, 3.5520e+00 ], + [ 1.815, 1.0820e+02, 3.4770e+00 ], + [ 1.830, 1.0670e+02, 2.6220e+00 ], + [ 1.845, 1.1710e+02, 3.9250e+00 ], + [ 1.860, 1.1290e+02, 3.8190e+00 ], + [ 1.875, 1.2040e+02, 3.9020e+00 ], + [ 1.890, 1.1830e+02, 3.9370e+00 ], + [ 1.905, 1.2560e+02, 2.6750e+00 ], + [ 1.920, 1.2940e+02, 3.4680e+00 ], + [ 1.935, 1.3440e+02, 3.4460e+00 ], + [ 1.950, 1.3260e+02, 3.3900e+00 ], + [ 1.965, 1.4210e+02, 2.9230e+00 ], + [ 1.980, 1.4360e+02, 4.8200e+00 ], + [ 1.995, 1.4790e+02, 4.8540e+00 ], + [ 2.010, 1.4460e+02, 4.7740e+00 ], + [ 2.025, 1.4510e+02, 4.9090e+00 ], + ] + }, + { + Author: "Day" + Year: "1993" + Citation: "Day:1993md" + Target: [6, 12] + EIn: 3.605 + AngOut: 16.020 + Data: [ + [ 0.105, 3.4190e+00, 1.1180e-01 ], + [ 0.120, 6.2230e+00, 1.5570e-01 ], + [ 0.135, 1.0310e+01, 2.0380e-01 ], + [ 0.150, 1.6480e+01, 2.5070e-01 ], + [ 0.165, 2.4880e+01, 3.0720e-01 ], + [ 0.180, 3.6690e+01, 3.9790e-01 ], + [ 0.195, 5.2060e+01, 4.8270e-01 ], + ] + }, + { + Author: "Arrington" + Year: "1998" + Citation: "Arrington:1998ps" + Target: [6, 12] + EIn: 4.045 + AngOut: 15.000 + Data: [ + [ 0.075, 5.8300e-02, 4.6090e-02 ], + [ 0.090, 4.9440e-01, 1.8020e-01 ], + [ 0.105, 1.1980e+00, 3.5290e-01 ], + [ 0.120, 1.3600e+00, 4.4050e-01 ], + [ 0.135, 4.9920e+00, 9.0360e-01 ], + [ 0.150, 7.2110e+00, 1.1330e+00 ], + [ 0.165, 1.2020e+01, 1.4840e+00 ], + [ 0.180, 1.6170e+01, 1.7190e+00 ], + [ 0.195, 2.5340e+01, 2.1230e+00 ], + [ 0.210, 3.6300e+01, 2.5080e+00 ], + [ 0.225, 4.8290e+01, 2.8590e+00 ], + [ 0.240, 7.1500e+01, 3.4680e+00 ], + [ 0.255, 8.0040e+01, 3.6420e+00 ], + [ 0.270, 1.1630e+02, 4.3730e+00 ], + [ 0.285, 1.5810e+02, 5.0910e+00 ], + [ 0.300, 2.1380e+02, 5.9220e+00 ], + [ 0.315, 2.8190e+02, 6.7940e+00 ], + [ 0.330, 3.4080e+02, 7.4290e+00 ], + [ 0.345, 4.4360e+02, 8.3840e+00 ], + [ 0.360, 5.4280e+02, 9.0650e+00 ], + [ 0.375, 7.2450e+02, 1.0800e+01 ], + [ 0.390, 9.1810e+02, 1.2300e+01 ], + [ 0.405, 1.0950e+03, 1.3360e+01 ], + [ 0.420, 1.2670e+03, 1.4320e+01 ], + [ 0.435, 1.4810e+03, 1.5550e+01 ], + [ 0.450, 1.6770e+03, 1.6430e+01 ], + [ 0.465, 1.8400e+03, 1.6930e+01 ], + [ 0.480, 1.9820e+03, 1.4070e+01 ], + [ 0.495, 2.0690e+03, 1.4070e+01 ], + [ 0.510, 2.1790e+03, 1.3950e+01 ], + [ 0.525, 2.2440e+03, 1.3910e+01 ], + [ 0.540, 2.2740e+03, 1.3870e+01 ], + [ 0.555, 2.2650e+03, 1.3360e+01 ], + [ 0.570, 2.2620e+03, 1.3120e+01 ], + [ 0.585, 2.2380e+03, 1.2980e+01 ], + [ 0.600, 2.2550e+03, 1.3080e+01 ], + [ 0.615, 2.2420e+03, 1.3000e+01 ], + [ 0.630, 2.2010e+03, 1.7610e+01 ], + [ 0.645, 2.2120e+03, 1.7470e+01 ], + [ 0.660, 2.2040e+03, 1.7190e+01 ], + [ 0.675, 2.2480e+03, 1.7760e+01 ], + [ 0.690, 2.2390e+03, 1.7460e+01 ], + [ 0.705, 2.3250e+03, 1.7900e+01 ], + [ 0.720, 2.3690e+03, 1.8240e+01 ], + [ 0.735, 2.3680e+03, 1.8230e+01 ], + [ 0.750, 2.3830e+03, 1.8110e+01 ], + [ 0.765, 2.3920e+03, 1.8180e+01 ], + [ 0.780, 2.4030e+03, 1.8020e+01 ], + [ 0.795, 2.4130e+03, 1.8100e+01 ], + [ 0.810, 2.4430e+03, 1.8080e+01 ], + [ 0.825, 2.4490e+03, 1.8120e+01 ], + [ 0.840, 2.4540e+03, 1.7910e+01 ], + [ 0.855, 2.4650e+03, 1.7990e+01 ], + [ 0.870, 2.5150e+03, 1.8110e+01 ], + [ 0.885, 2.5090e+03, 1.8060e+01 ], + [ 0.900, 2.4760e+03, 1.7830e+01 ], + [ 0.915, 2.4600e+03, 1.7710e+01 ], + [ 0.930, 2.4660e+03, 1.7510e+01 ], + [ 0.945, 2.4600e+03, 1.7470e+01 ], + [ 0.960, 2.4850e+03, 1.7640e+01 ], + [ 0.975, 2.5090e+03, 1.7810e+01 ], + [ 0.990, 2.4690e+03, 1.7780e+01 ], + [ 1.005, 2.5430e+03, 1.8310e+01 ], + [ 1.020, 2.5590e+03, 1.8420e+01 ], + [ 1.035, 2.5830e+03, 1.8860e+01 ], + [ 1.050, 2.6060e+03, 1.9280e+01 ], + [ 1.065, 2.5980e+03, 1.9480e+01 ], + [ 1.080, 2.6020e+03, 1.9780e+01 ], + [ 1.095, 2.6090e+03, 2.0350e+01 ], + [ 1.110, 2.6660e+03, 2.1060e+01 ], + ] + }, + { + Author: "Arrington" + Year: "1998" + Citation: "Arrington:1998ps" + Target: [6, 12] + EIn: 4.045 + AngOut: 23.000 + Data: [ + [ 0.240, 3.8420e-04, 3.0370e-04 ], + [ 0.255, 3.8230e-04, 3.0220e-04 ], + [ 0.270, 3.8020e-04, 3.0060e-04 ], + [ 0.285, 4.9570e-04, 2.7550e-04 ], + [ 0.300, 1.2360e-03, 4.0990e-04 ], + [ 0.315, 2.3410e-03, 5.5080e-04 ], + [ 0.330, 3.7130e-03, 6.8910e-04 ], + [ 0.345, 4.9750e-03, 7.9650e-04 ], + [ 0.360, 5.6170e-03, 8.4650e-04 ], + [ 0.375, 9.8030e-03, 1.1170e-03 ], + [ 0.390, 1.4200e-02, 1.3480e-03 ], + [ 0.405, 2.1940e-02, 1.6740e-03 ], + [ 0.420, 3.0340e-02, 1.9660e-03 ], + [ 0.435, 4.7650e-02, 2.4640e-03 ], + [ 0.450, 7.0980e-02, 3.0020e-03 ], + [ 0.465, 9.2610e-02, 3.4270e-03 ], + [ 0.480, 1.1340e-01, 3.7420e-03 ], + [ 0.495, 1.6260e-01, 4.4550e-03 ], + [ 0.510, 2.1550e-01, 5.1290e-03 ], + [ 0.525, 2.6900e-01, 5.7030e-03 ], + [ 0.540, 3.3700e-01, 6.4030e-03 ], + [ 0.555, 4.4570e-01, 7.3990e-03 ], + [ 0.570, 5.5000e-01, 8.2500e-03 ], + [ 0.585, 6.7560e-01, 9.1880e-03 ], + [ 0.600, 8.4330e-01, 1.0370e-02 ], + [ 0.615, 1.0390e+00, 1.1740e-02 ], + [ 0.630, 1.2730e+00, 1.9990e-02 ], + [ 0.645, 1.5570e+00, 2.2110e-02 ], + [ 0.660, 1.9260e+00, 2.4650e-02 ], + [ 0.675, 2.2640e+00, 2.6940e-02 ], + [ 0.690, 2.8060e+00, 3.0300e-02 ], + [ 0.705, 3.4490e+00, 3.3800e-02 ], + [ 0.720, 4.1630e+00, 3.7880e-02 ], + [ 0.735, 5.0820e+00, 4.2690e-02 ], + [ 0.750, 6.1950e+00, 4.7700e-02 ], + [ 0.765, 7.4940e+00, 5.3960e-02 ], + [ 0.780, 9.0960e+00, 2.0470e-01 ], + [ 0.795, 1.0850e+01, 2.2240e-01 ], + [ 0.810, 1.3270e+01, 2.4280e-01 ], + [ 0.825, 1.6230e+01, 2.7270e-01 ], + [ 0.840, 1.9270e+01, 2.9680e-01 ], + [ 0.855, 2.2140e+01, 3.1660e-01 ], + [ 0.870, 2.6770e+01, 3.4800e-01 ], + [ 0.885, 2.9930e+01, 3.6510e-01 ], + [ 0.900, 3.4660e+01, 3.9170e-01 ], + [ 0.915, 3.9280e+01, 4.1640e-01 ], + [ 0.930, 4.3630e+01, 4.3630e-01 ], + [ 0.945, 4.8310e+01, 4.5410e-01 ], + [ 0.960, 5.3280e+01, 4.7420e-01 ], + [ 0.975, 5.6830e+01, 4.8870e-01 ], + [ 0.990, 6.0630e+01, 5.0320e-01 ], + [ 1.005, 6.5210e+01, 5.1520e-01 ], + [ 1.020, 6.8030e+01, 5.3060e-01 ], + [ 1.035, 7.0910e+01, 5.4600e-01 ], + [ 1.050, 7.4710e+01, 5.6030e-01 ], + [ 1.065, 7.9310e+01, 5.8690e-01 ], + [ 1.080, 8.1960e+01, 6.0650e-01 ], + [ 1.095, 8.5220e+01, 6.3060e-01 ], + [ 1.110, 8.6920e+01, 6.4320e-01 ], + ] + }, + { + Author: "Arrington" + Year: "1998" + Citation: "Arrington:1998ps" + Target: [6, 12] + EIn: 4.045 + AngOut: 30.000 + Data: [ + [ 0.660, 9.0760e-04, 4.8140e-04 ], + [ 0.675, 3.2780e-04, 2.1780e-04 ], + [ 0.690, 4.1480e-04, 2.3050e-04 ], + [ 0.705, 2.9710e-04, 1.9740e-04 ], + [ 0.720, 6.6740e-04, 2.6960e-04 ], + [ 0.735, 1.3800e-03, 3.6740e-04 ], + [ 0.750, 1.9790e-03, 4.3140e-04 ], + [ 0.765, 2.5690e-03, 4.8530e-04 ], + [ 0.780, 3.3340e-03, 5.4810e-04 ], + [ 0.795, 3.4700e-03, 5.5550e-04 ], + [ 0.810, 3.7040e-03, 5.7150e-04 ], + [ 0.825, 6.1550e-03, 7.3060e-04 ], + [ 0.840, 9.2180e-03, 8.8680e-04 ], + [ 0.855, 1.2490e-02, 1.0270e-03 ], + [ 0.870, 1.3730e-02, 1.0700e-03 ], + [ 0.885, 1.4800e-02, 1.1060e-03 ], + [ 0.900, 1.9820e-02, 1.2740e-03 ], + [ 0.915, 2.5740e-02, 1.4440e-03 ], + [ 0.930, 3.0290e-02, 1.5630e-03 ], + [ 0.945, 3.6360e-02, 1.6980e-03 ], + [ 0.960, 4.6640e-02, 1.9220e-03 ], + [ 0.975, 5.5510e-02, 2.0260e-03 ], + [ 0.990, 6.5230e-02, 2.1790e-03 ], + [ 1.005, 7.9770e-02, 2.4010e-03 ], + [ 1.020, 9.9530e-02, 2.6670e-03 ], + [ 1.035, 1.1650e-01, 2.8780e-03 ], + [ 1.050, 1.4420e-01, 3.2160e-03 ], + [ 1.065, 1.6600e-01, 3.4530e-03 ], + [ 1.080, 2.0720e-01, 3.8750e-03 ], + [ 1.095, 2.5200e-01, 4.2840e-03 ], + [ 1.110, 2.9890e-01, 4.6930e-03 ], + [ 1.125, 3.6450e-01, 6.1970e-03 ], + [ 1.140, 4.4270e-01, 6.8620e-03 ], + [ 1.155, 5.2170e-01, 7.4080e-03 ], + [ 1.170, 6.3700e-01, 8.2170e-03 ], + [ 1.185, 7.6120e-01, 8.9820e-03 ], + [ 1.200, 9.1650e-01, 9.8980e-03 ], + [ 1.215, 1.0620e+00, 1.0730e-02 ], + [ 1.230, 1.2930e+00, 1.1900e-02 ], + [ 1.245, 1.5530e+00, 1.3360e-02 ], + [ 1.260, 1.8270e+00, 1.4800e-02 ], + [ 1.275, 2.1550e+00, 1.6380e-02 ], + [ 1.290, 2.5370e+00, 4.2620e-02 ], + [ 1.305, 2.9560e+00, 4.5820e-02 ], + [ 1.320, 3.3960e+00, 4.8900e-02 ], + [ 1.335, 3.8480e+00, 5.1560e-02 ], + [ 1.350, 4.3540e+00, 5.4860e-02 ], + [ 1.365, 4.7900e+00, 5.7480e-02 ], + [ 1.380, 5.3630e+00, 6.0600e-02 ], + [ 1.395, 6.1610e+00, 6.4690e-02 ], + [ 1.410, 6.6490e+00, 6.7150e-02 ], + [ 1.425, 7.1290e+00, 6.4870e-02 ], + [ 1.440, 7.8920e+00, 6.7870e-02 ], + [ 1.455, 8.4040e+00, 6.9750e-02 ], + [ 1.470, 9.1190e+00, 7.2040e-02 ], + [ 1.485, 9.8170e+00, 7.5590e-02 ], + [ 1.500, 1.0440e+01, 7.8300e-02 ], + [ 1.515, 1.1040e+01, 8.1700e-02 ], + [ 1.530, 1.1810e+01, 8.6210e-02 ], + [ 1.545, 1.2250e+01, 1.7890e-01 ], + [ 1.560, 1.3210e+01, 1.8360e-01 ], + [ 1.575, 1.4080e+01, 1.8870e-01 ], + [ 1.590, 1.4770e+01, 1.9200e-01 ], + [ 1.605, 1.5620e+01, 1.9680e-01 ], + [ 1.620, 1.6110e+01, 1.9980e-01 ], + [ 1.635, 1.7400e+01, 2.0710e-01 ], + [ 1.650, 1.8150e+01, 2.1050e-01 ], + [ 1.665, 1.8980e+01, 2.1450e-01 ], + [ 1.680, 2.0220e+01, 2.2040e-01 ], + [ 1.695, 2.1110e+01, 2.2380e-01 ], + [ 1.710, 2.2350e+01, 2.3240e-01 ], + [ 1.725, 2.3950e+01, 2.3950e-01 ], + [ 1.740, 2.4740e+01, 2.4250e-01 ], + [ 1.755, 2.6370e+01, 2.5050e-01 ], + [ 1.770, 2.7550e+01, 2.5620e-01 ], + [ 1.785, 2.8910e+01, 2.6310e-01 ], + [ 1.800, 3.0150e+01, 2.6830e-01 ], + [ 1.815, 3.1960e+01, 2.7810e-01 ], + [ 1.830, 3.3010e+01, 2.8720e-01 ], + [ 1.845, 3.5110e+01, 3.0190e-01 ], + [ 1.860, 3.6580e+01, 3.1820e-01 ], + [ 1.875, 3.8570e+01, 3.3170e-01 ], + [ 1.890, 4.0700e+01, 3.5410e-01 ], + ] + }, + { + Author: "Arrington" + Year: "1998" + Citation: "Arrington:1998ps" + Target: [6, 12] + EIn: 4.045 + AngOut: 37.000 + Data: [ + [ 1.425, 2.0090e-02, 2.6720e-03 ], + [ 1.440, 2.6610e-02, 2.8950e-03 ], + [ 1.455, 3.1430e-02, 2.9760e-03 ], + [ 1.470, 3.6510e-02, 3.0700e-03 ], + [ 1.485, 4.9210e-02, 3.4500e-03 ], + [ 1.500, 5.9270e-02, 3.6980e-03 ], + [ 1.515, 7.8000e-02, 4.1960e-03 ], + [ 1.530, 9.0750e-02, 4.4920e-03 ], + [ 1.545, 9.6900e-02, 4.6120e-03 ], + [ 1.560, 1.1770e-01, 5.0380e-03 ], + [ 1.575, 1.4870e-01, 5.6360e-03 ], + [ 1.590, 1.6330e-01, 5.8790e-03 ], + [ 1.605, 2.0750e-01, 6.6190e-03 ], + [ 1.620, 2.4230e-01, 7.1240e-03 ], + [ 1.635, 2.9250e-01, 7.8100e-03 ], + [ 1.650, 3.4040e-01, 8.4760e-03 ], + [ 1.665, 4.1890e-01, 9.3410e-03 ], + [ 1.680, 4.9650e-01, 1.0130e-02 ], + [ 1.695, 5.6640e-01, 1.0820e-02 ], + [ 1.710, 6.4940e-01, 1.1560e-02 ], + [ 1.725, 7.5800e-01, 1.2430e-02 ], + [ 1.740, 8.6650e-01, 1.3260e-02 ], + [ 1.755, 9.9270e-01, 1.4100e-02 ], + [ 1.770, 1.1370e+00, 1.5010e-02 ], + [ 1.785, 1.2550e+00, 1.5810e-02 ], + [ 1.800, 1.4340e+00, 1.6780e-02 ], + [ 1.815, 1.5570e+00, 1.7590e-02 ], + [ 1.830, 1.7440e+00, 1.8840e-02 ], + [ 1.845, 1.8660e+00, 1.9590e-02 ], + [ 1.860, 2.0510e+00, 2.0920e-02 ], + [ 1.875, 2.2690e+00, 2.2460e-02 ], + [ 1.890, 2.4870e+00, 2.4370e-02 ], + ] + }, + { + Author: "Arrington" + Year: "1998" + Citation: "Arrington:1998ps" + Target: [6, 12] + EIn: 4.045 + AngOut: 45.000 + Data: [ + [ 1.680, 6.3460e-04, 5.0170e-04 ], + [ 1.695, 3.1570e-04, 3.8660e-04 ], + [ 1.710, 2.8290e-03, 9.6860e-04 ], + [ 1.725, 1.2450e-03, 6.6050e-04 ], + [ 1.740, 1.5630e-03, 7.3300e-04 ], + [ 1.755, 1.2430e-03, 6.5900e-04 ], + [ 1.770, 2.8100e-03, 9.6240e-04 ], + [ 1.785, 3.7160e-03, 1.0950e-03 ], + [ 1.800, 5.1880e-03, 7.6470e-04 ], + [ 1.815, 4.9120e-03, 7.0880e-04 ], + [ 1.830, 7.1510e-03, 8.1450e-04 ], + [ 1.845, 8.0320e-03, 8.3290e-04 ], + [ 1.860, 1.0220e-02, 9.1780e-04 ], + [ 1.875, 9.9570e-03, 8.9410e-04 ], + [ 1.890, 1.3650e-02, 1.0410e-03 ], + [ 1.905, 1.6610e-02, 1.1460e-03 ], + [ 1.920, 2.1470e-02, 1.3010e-03 ], + [ 1.935, 2.6580e-02, 1.4510e-03 ], + [ 1.950, 3.2090e-02, 1.6080e-03 ], + [ 1.965, 3.7130e-02, 1.9310e-03 ], + [ 1.980, 4.5070e-02, 2.1140e-03 ], + [ 1.995, 5.5640e-02, 2.3420e-03 ], + [ 2.010, 6.2290e-02, 2.4670e-03 ], + [ 2.025, 7.9930e-02, 2.8140e-03 ], + [ 2.040, 9.0860e-02, 2.9980e-03 ], + [ 2.055, 1.1220e-01, 3.3320e-03 ], + [ 2.070, 1.3480e-01, 3.6400e-03 ], + [ 2.085, 1.6540e-01, 4.0190e-03 ], + [ 2.100, 1.8890e-01, 4.2690e-03 ], + [ 2.115, 2.1040e-01, 4.5030e-03 ], + [ 2.130, 2.6230e-01, 4.6690e-03 ], + [ 2.145, 2.9690e-01, 4.9290e-03 ], + [ 2.160, 3.4130e-01, 5.2900e-03 ], + [ 2.175, 3.9480e-01, 5.7250e-03 ], + [ 2.190, 4.4550e-01, 6.1920e-03 ], + [ 2.205, 4.9830e-01, 6.7270e-03 ], + [ 2.220, 5.4770e-01, 1.4400e-02 ], + [ 2.235, 6.1000e-01, 1.5070e-02 ], + [ 2.250, 6.7440e-01, 1.5780e-02 ], + [ 2.265, 7.8660e-01, 1.6910e-02 ], + [ 2.280, 8.5350e-01, 1.7500e-02 ], + [ 2.295, 9.2110e-01, 1.8150e-02 ], + [ 2.310, 1.0170e+00, 1.9020e-02 ], + [ 2.325, 1.1440e+00, 2.0130e-02 ], + [ 2.340, 1.2370e+00, 2.0910e-02 ], + [ 2.355, 1.3960e+00, 2.2060e-02 ], + [ 2.370, 1.5230e+00, 2.3000e-02 ], + [ 2.385, 1.6250e+00, 2.3720e-02 ], + [ 2.400, 1.8060e+00, 2.5100e-02 ], + [ 2.415, 1.9680e+00, 2.6370e-02 ], + [ 2.430, 2.1580e+00, 2.8050e-02 ], + [ 2.445, 2.4280e+00, 3.0590e-02 ], + [ 2.460, 2.5760e+00, 3.2970e-02 ], + [ 2.460, 2.5760e+00, 3.2970e-02 ], + ] + }, + { + Author: "Arrington" + Year: "1998" + Citation: "Arrington:1998ps" + Target: [6, 12] + EIn: 4.045 + AngOut: 55.000 + Data: [ + [ 2.145, 1.4840e-03, 6.6450e-04 ], + [ 2.160, 6.6860e-04, 4.7960e-04 ], + [ 2.175, 1.2670e-03, 5.8510e-04 ], + [ 2.190, 2.2420e-03, 6.9390e-04 ], + [ 2.205, 4.0350e-04, 3.2520e-04 ], + [ 2.220, 1.1970e-03, 5.2860e-04 ], + [ 2.235, 2.3500e-03, 7.1600e-04 ], + [ 2.250, 1.7570e-03, 6.3940e-04 ], + [ 2.265, 3.6530e-03, 8.8400e-04 ], + [ 2.280, 2.8600e-03, 7.7190e-04 ], + [ 2.295, 5.3020e-03, 1.0360e-03 ], + [ 2.310, 5.8550e-03, 1.0940e-03 ], + [ 2.325, 6.7370e-03, 1.1730e-03 ], + [ 2.340, 8.7600e-03, 1.3170e-03 ], + [ 2.355, 1.0920e-02, 1.4670e-03 ], + [ 2.370, 1.2930e-02, 1.5870e-03 ], + [ 2.385, 1.5790e-02, 9.5210e-04 ], + [ 2.400, 1.8270e-02, 9.5190e-04 ], + [ 2.415, 2.5650e-02, 1.0570e-03 ], + [ 2.430, 2.9950e-02, 1.0990e-03 ], + [ 2.445, 3.7940e-02, 1.2100e-03 ], + [ 2.460, 4.5360e-02, 1.3250e-03 ], + [ 2.475, 5.5900e-02, 1.5930e-03 ], + [ 2.490, 6.7430e-02, 1.7190e-03 ], + [ 2.505, 8.0550e-02, 1.8770e-03 ], + [ 2.520, 9.7770e-02, 2.0340e-03 ], + [ 2.535, 1.1410e-01, 2.1680e-03 ], + [ 2.550, 1.2720e-01, 2.2770e-03 ], + [ 2.565, 1.4700e-01, 2.4250e-03 ], + [ 2.580, 1.7510e-01, 2.6270e-03 ], + [ 2.595, 1.9750e-01, 2.7850e-03 ], + [ 2.610, 2.2650e-01, 2.8540e-03 ], + [ 2.625, 2.5910e-01, 3.0570e-03 ], + [ 2.640, 3.0130e-01, 3.2540e-03 ], + [ 2.655, 3.4600e-01, 3.5290e-03 ], + [ 2.670, 3.9980e-01, 3.9180e-03 ], + [ 2.685, 4.6980e-01, 4.4630e-03 ], + [ 2.700, 5.4880e-01, 1.4050e-02 ], + [ 2.715, 6.1570e-01, 1.4900e-02 ], + [ 2.730, 6.7980e-01, 1.5430e-02 ], + [ 2.745, 7.6540e-01, 1.6380e-02 ], + [ 2.760, 8.5820e-01, 1.7250e-02 ], + [ 2.775, 9.4510e-01, 1.8050e-02 ], + [ 2.790, 1.0420e+00, 1.8860e-02 ], + [ 2.805, 1.1810e+00, 2.0080e-02 ], + [ 2.820, 1.2890e+00, 1.8560e-02 ], + [ 2.835, 1.4370e+00, 1.9260e-02 ], + [ 2.850, 1.6120e+00, 2.0630e-02 ], + [ 2.865, 1.7460e+00, 2.2170e-02 ], + [ 2.880, 1.9990e+00, 4.1580e-02 ], + [ 2.895, 2.1230e+00, 4.2460e-02 ], + [ 2.910, 2.3200e+00, 4.4080e-02 ], + [ 2.925, 2.5030e+00, 4.5550e-02 ], + [ 2.940, 2.7300e+00, 4.7230e-02 ], + [ 2.955, 2.9790e+00, 4.9450e-02 ], + [ 2.970, 3.3570e+00, 5.2030e-02 ], + [ 2.985, 3.5700e+00, 5.3910e-02 ], + [ 3.000, 3.8630e+00, 5.6400e-02 ], + [ 3.015, 4.2410e+00, 6.1070e-02 ], + [ 3.030, 4.6240e+00, 6.7970e-02 ], + ] + }, + { + Author: "Arrington" + Year: "1998" + Citation: "Arrington:1998ps" + Target: [6, 12] + EIn: 4.045 + AngOut: 74.000 + Data: [ + [ 2.805, 2.1800e-03, 4.4490e-04 ], + [ 2.820, 1.9400e-03, 3.8700e-04 ], + [ 2.835, 2.2000e-03, 3.7620e-04 ], + [ 2.850, 3.7300e-03, 4.3450e-04 ], + [ 2.865, 3.5900e-03, 4.1610e-04 ], + [ 2.880, 4.1000e-03, 4.4030e-04 ], + [ 2.895, 5.7900e-03, 5.1470e-04 ], + [ 2.910, 8.5000e-03, 6.0950e-04 ], + [ 2.925, 1.1000e-02, 6.8530e-04 ], + [ 2.940, 1.5300e-02, 7.9710e-04 ], + [ 2.955, 1.8800e-02, 8.7980e-04 ], + [ 2.970, 2.3000e-02, 9.6600e-04 ], + [ 2.985, 2.8700e-02, 1.0710e-03 ], + [ 3.000, 3.5300e-02, 1.1750e-03 ], + [ 3.015, 4.3400e-02, 1.2930e-03 ], + [ 3.030, 5.0800e-02, 1.2650e-03 ], + [ 3.045, 6.4800e-02, 1.3870e-03 ], + [ 3.060, 7.7000e-02, 1.4940e-03 ], + [ 3.075, 8.6500e-02, 2.7160e-03 ], + [ 3.090, 1.0700e-01, 2.9210e-03 ], + [ 3.105, 1.2900e-01, 3.1730e-03 ], + [ 3.120, 1.6100e-01, 3.5420e-03 ], + [ 3.135, 1.9400e-01, 3.8610e-03 ], + [ 3.150, 2.2700e-01, 4.1770e-03 ], + [ 3.165, 2.7300e-01, 4.5590e-03 ], + [ 3.180, 3.2200e-01, 4.9270e-03 ], + [ 3.195, 3.7300e-01, 5.2970e-03 ], + [ 3.210, 4.2700e-01, 5.7220e-03 ], + [ 3.225, 5.0100e-01, 5.6110e-03 ], + [ 3.240, 5.8500e-01, 6.0260e-03 ], + [ 3.255, 6.5600e-01, 1.1480e-02 ], + [ 3.270, 7.7100e-01, 1.1950e-02 ], + [ 3.285, 8.6400e-01, 1.2610e-02 ], + [ 3.300, 1.0200e+00, 1.3670e-02 ], + [ 3.315, 1.1600e+00, 1.4620e-02 ], + [ 3.330, 1.3900e+00, 1.5980e-02 ], + [ 3.345, 1.5000e+00, 1.6650e-02 ], + [ 3.360, 1.6400e+00, 1.7550e-02 ], + [ 3.375, 1.9300e+00, 1.9490e-02 ], + [ 3.390, 2.0700e+00, 2.1110e-02 ], + ] + }, + { + Author: "Arrington" + Year: "1995" + Citation: "Arrington:1995hs" + Target: [6, 12] + EIn: 4.212 + AngOut: 53.389 + Data: [ + [ 2.659, 1.1865e-01, 3.7818e-03 ], + [ 2.669, 1.3532e-01, 3.4336e-03 ], + [ 2.681, 1.6154e-01, 3.6948e-03 ], + [ 2.692, 1.8935e-01, 4.0127e-03 ], + [ 2.704, 2.1797e-01, 4.2932e-03 ], + [ 2.716, 2.3682e-01, 4.4686e-03 ], + [ 2.728, 2.5283e-01, 4.5718e-03 ], + [ 2.739, 2.9515e-01, 4.9599e-03 ], + [ 2.751, 3.2015e-01, 5.1610e-03 ], + [ 2.763, 3.6058e-01, 5.4447e-03 ], + [ 2.775, 4.0399e-01, 5.7839e-03 ], + [ 2.786, 4.6353e-01, 6.3306e-03 ], + [ 2.798, 4.9122e-01, 6.7027e-03 ], + [ 2.810, 5.4716e-01, 7.3861e-03 ], + ] + }, + { + Author: "Arrington" + Year: "1995" + Citation: "Arrington:1995hs" + Target: [6, 12] + EIn: 5.120 + AngOut: 56.639 + Data: [ + [ 3.567, 2.9522e-02, 1.2218e-03 ], + [ 3.578, 3.3413e-02, 1.1055e-03 ], + [ 3.589, 3.9633e-02, 1.1956e-03 ], + [ 3.601, 5.0295e-02, 1.3466e-03 ], + [ 3.613, 5.2522e-02, 1.3684e-03 ], + [ 3.625, 6.3555e-02, 1.5050e-03 ], + [ 3.636, 6.6005e-02, 1.5161e-03 ], + [ 3.648, 7.7974e-02, 1.6499e-03 ], + [ 3.660, 8.4903e-02, 1.7115e-03 ], + [ 3.672, 9.7368e-02, 1.8388e-03 ], + [ 3.683, 1.1489e-01, 1.9988e-03 ], + [ 3.695, 1.2374e-01, 2.0939e-03 ], + [ 3.707, 1.4123e-01, 2.3308e-03 ], + [ 3.719, 1.7035e-01, 2.7137e-03 ], + ] + }, + { + Author: "Fomin" + Year: "2010" + Citation: "Fomin:2010ei" + Target: [6, 12] + EIn: 5.766 + AngOut: 18.00 + Data: [ + [ 2.3101e+00, 2.5728e+02, 3.9088e-01 ], + [ 2.2120e+00, 2.3927e+02, 3.4525e-01 ], + [ 2.1216e+00, 2.1680e+02, 3.2282e-01 ], + [ 2.0386e+00, 1.9365e+02, 3.1663e-01 ], + [ 1.9618e+00, 1.7247e+02, 3.1227e-01 ], + [ 1.8904e+00, 1.5527e+02, 3.1684e-01 ], + [ 1.8242e+00, 1.3452e+02, 3.2813e-01 ], + [ 1.7624e+00, 1.1717e+02, 2.0150e-01 ], + [ 1.7046e+00, 1.0399e+02, 1.8956e-01 ], + [ 1.6506e+00, 9.2538e+01, 1.9509e-01 ], + [ 1.5999e+00, 8.3416e+01, 1.8341e-01 ], + [ 1.5520e+00, 7.5492e+01, 1.7953e-01 ], + [ 1.5071e+00, 6.7108e+01, 1.7391e-01 ], + [ 1.4647e+00, 6.0603e+01, 1.7115e-01 ], + [ 1.4246e+00, 5.4916e+01, 1.6831e-01 ], + [ 1.3866e+00, 4.9395e+01, 1.6416e-01 ], + [ 1.3507e+00, 4.4147e+01, 1.5943e-01 ], + [ 1.3164e+00, 3.8913e+01, 1.5429e-01 ], + [ 1.2840e+00, 3.5027e+01, 1.5146e-01 ], + [ 1.2531e+00, 3.0725e+01, 1.4643e-01 ], + [ 1.2236e+00, 2.6010e+01, 1.3834e-01 ], + [ 1.1955e+00, 2.1523e+01, 1.2969e-01 ], + [ 1.1687e+00, 1.7823e+01, 1.2111e-01 ], + [ 1.1429e+00, 1.4524e+01, 1.1532e-01 ], + [ 1.1184e+00, 1.2001e+01, 4.5638e-02 ], + [ 1.0949e+00, 9.7129e+00, 4.0163e-02 ], + [ 1.0723e+00, 7.6817e+00, 3.5086e-02 ], + [ 1.0506e+00, 6.2295e+00, 3.1578e-02 ], + [ 1.0299e+00, 4.9778e+00, 2.8078e-02 ], + [ 1.0098e+00, 4.0469e+00, 2.5552e-02 ], + [ 9.9063e-01, 3.2821e+00, 2.3599e-02 ], + [ 9.7214e-01, 2.7237e+00, 2.1892e-02 ], + [ 9.5428e-01, 2.2719e+00, 2.0507e-02 ], + [ 9.3711e-01, 1.8699e+00, 1.8778e-02 ], + [ 9.2055e-01, 1.5550e+00, 1.7468e-02 ], + [ 9.0451e-01, 1.2902e+00, 1.6103e-02 ], + [ 8.8907e-01, 1.1184e+00, 1.5516e-02 ], + [ 8.7415e-01, 9.7264e-01, 1.4524e-02 ], + [ 8.5968e-01, 7.8618e-01, 1.3221e-02 ], + [ 8.4572e-01, 7.0622e-01, 1.2857e-02 ], + [ 8.3221e-01, 5.9549e-01, 1.1837e-02 ], + [ 8.1908e-01, 5.0680e-01, 1.1180e-02 ], + [ 8.0640e-01, 4.3588e-01, 1.0452e-02 ], + [ 7.9410e-01, 3.9300e-01, 1.0107e-02 ], + [ 7.8214e-01, 3.3961e-01, 9.5410e-03 ], + [ 7.7057e-01, 2.9536e-01, 9.0377e-03 ], + [ 7.5934e-01, 2.5078e-01, 8.4298e-03 ], + [ 7.4839e-01, 2.2106e-01, 8.0395e-03 ], + [ 7.3779e-01, 1.9023e-01, 7.6093e-03 ], + [ 7.2749e-01, 1.5406e-01, 6.8424e-03 ], + [ 7.1744e-01, 1.3897e-01, 6.5585e-03 ], + [ 7.0769e-01, 1.2479e-01, 6.2868e-03 ], + [ 6.9820e-01, 1.1448e-01, 6.1455e-03 ], + [ 6.8894e-01, 9.9249e-02, 5.7397e-03 ], + [ 6.7994e-01, 9.3518e-02, 5.6291e-03 ], + [ 6.7118e-01, 7.1369e-02, 4.9846e-03 ], + [ 6.6262e-01, 6.1549e-02, 4.6930e-03 ], + [ 6.5429e-01, 6.6501e-02, 4.9985e-03 ], + [ 6.4618e-01, 4.6530e-02, 4.1953e-03 ], + [ 6.3823e-01, 4.4652e-02, 4.1458e-03 ], + [ 6.3051e-01, 3.9887e-02, 3.9884e-03 ], + [ 6.2297e-01, 3.6122e-02, 3.7864e-03 ], + [ 6.1558e-01, 2.4418e-02, 3.1519e-03 ], + [ 6.0839e-01, 2.5029e-02, 3.2308e-03 ], + [ 6.0137e-01, 2.0738e-02, 2.9926e-03 ], + [ 5.9448e-01, 2.1512e-02, 3.0116e-03 ], + [ 5.8777e-01, 1.9818e-02, 2.9870e-03 ], + [ 5.8121e-01, 1.5788e-02, 2.6676e-03 ], + [ 5.7478e-01, 1.7101e-02, 2.8492e-03 ], + [ 5.6851e-01, 1.3098e-02, 2.5192e-03 ], + [ 5.6237e-01, 1.1157e-02, 2.3244e-03 ], + [ 5.5634e-01, 1.0403e-02, 2.2680e-03 ], + [ 5.5046e-01, 1.2690e-02, 2.4870e-03 ], + [ 5.4471e-01, 8.9061e-03, 2.1566e-03 ], + [ 5.3905e-01, 6.3169e-03, 1.8181e-03 ], + [ 5.3353e-01, 6.2884e-03, 1.8099e-03 ], + [ 5.2812e-01, 7.1497e-03, 1.9779e-03 ], + [ 5.2280e-01, 6.7852e-03, 1.9529e-03 ], + [ 5.1761e-01, 3.2412e-03, 1.4292e-03 ], + [ 5.1251e-01, 3.7923e-03, 1.5323e-03 ], + [ 5.0751e-01, 3.1853e-03, 1.4046e-03 ], + [ 5.0261e-01, 4.5620e-03, 1.7108e-03 ], + [ 4.9308e-01, 1.6891e-03, 1.1261e-03 ], + [ 4.8845e-01, 2.2971e-03, 1.2841e-03 ], + [ 4.8391e-01, 2.9273e-03, 1.4341e-03 ], + [ 4.7945e-01, 1.8308e-03, 1.2205e-03 ], + [ 4.7507e-01, 1.8301e-03, 1.2201e-03 ], + [ 4.7078e-01, 2.3939e-03, 1.3382e-03 ], + [ 4.6655e-01, 6.0780e-04, 8.5955e-04 ], + [ 4.6241e-01, 3.2048e-03, 1.5701e-03 ], + [ 4.5433e-01, 6.2209e-04, 8.7976e-04 ], + [ 4.5040e-01, 6.6632e-04, 9.4230e-04 ], + [ 4.4273e-01, 1.3016e-03, 1.1272e-03 ], + [ 4.3171e-01, 1.3495e-03, 1.1687e-03 ], + [ 4.2816e-01, 6.8892e-04, 9.7427e-04 ], + [ 4.2123e-01, 7.0111e-04, 9.9151e-04 ], + [ 4.1785e-01, 7.1296e-04, 1.0083e-03 ], + [ 4.0485e-01, 2.2829e-03, 1.5219e-03 ], + [ 3.9262e-01, 7.7228e-04, 1.0922e-03 ], + [ 3.8968e-01, 8.1222e-04, 1.1486e-03 ], + ] + }, + { + Author: "Fomin" + Year: "2010" + Citation: "Fomin:2010ei" + Target: [6, 12] + EIn: 5.766 + AngOut: 22.00 + Data: [ + [ 2.9858e+00, 1.1154e+02, 1.9416e-01 ], + [ 2.8750e+00, 9.9950e+01, 1.7080e-01 ], + [ 2.7722e+00, 8.9828e+01, 1.6889e-01 ], + [ 2.6761e+00, 7.9769e+01, 1.8158e-01 ], + [ 2.5868e+00, 7.0708e+01, 9.7967e-02 ], + [ 2.5032e+00, 6.2284e+01, 9.3564e-02 ], + [ 2.4247e+00, 5.3309e+01, 8.4105e-02 ], + [ 2.3511e+00, 4.5815e+01, 8.0762e-02 ], + [ 2.2819e+00, 3.9388e+01, 7.7530e-02 ], + [ 2.2164e+00, 3.2964e+01, 7.3145e-02 ], + [ 2.1548e+00, 2.8050e+01, 7.4189e-02 ], + [ 2.0965e+00, 2.3245e+01, 4.2602e-02 ], + [ 2.0411e+00, 2.0109e+01, 3.8673e-02 ], + [ 1.9887e+00, 1.7322e+01, 3.8217e-02 ], + [ 1.9389e+00, 1.4620e+01, 3.4005e-02 ], + [ 1.8915e+00, 1.2707e+01, 3.2587e-02 ], + [ 1.8464e+00, 1.0873e+01, 3.1015e-02 ], + [ 1.8034e+00, 9.2300e+00, 2.9265e-02 ], + [ 1.7623e+00, 7.7514e+00, 2.7500e-02 ], + [ 1.7231e+00, 6.5788e+00, 2.6013e-02 ], + [ 1.6856e+00, 5.3424e+00, 2.4024e-02 ], + [ 1.6496e+00, 4.4013e+00, 2.2372e-02 ], + [ 1.6152e+00, 3.5270e+00, 2.0548e-02 ], + [ 1.5823e+00, 2.7966e+00, 1.8770e-02 ], + [ 1.5505e+00, 2.1878e+00, 1.7061e-02 ], + [ 1.5201e+00, 1.6821e+00, 1.0339e-02 ], + [ 1.4908e+00, 1.2867e+00, 9.0159e-03 ], + [ 1.4626e+00, 1.0132e+00, 8.0535e-03 ], + [ 1.4355e+00, 7.5247e-01, 7.0285e-03 ], + [ 1.4094e+00, 5.8809e-01, 6.3210e-03 ], + [ 1.3842e+00, 4.6160e-01, 6.2858e-03 ], + [ 1.3599e+00, 3.7365e-01, 5.7486e-03 ], + [ 1.3364e+00, 2.9707e-01, 5.2287e-03 ], + [ 1.3137e+00, 2.4533e-01, 4.8507e-03 ], + [ 1.2918e+00, 1.8602e-01, 4.2485e-03 ], + [ 1.2706e+00, 1.5043e-01, 3.8971e-03 ], + [ 1.2500e+00, 1.1964e-01, 3.5370e-03 ], + [ 1.2302e+00, 9.5252e-02, 3.2001e-03 ], + [ 1.2110e+00, 7.7586e-02, 2.9429e-03 ], + [ 1.1923e+00, 6.4148e-02, 2.7157e-03 ], + [ 1.1742e+00, 5.5130e-02, 2.5484e-03 ], + [ 1.1567e+00, 4.3140e-02, 2.2800e-03 ], + [ 1.1396e+00, 3.5220e-02, 2.0899e-03 ], + [ 1.1231e+00, 3.0535e-02, 1.9792e-03 ], + [ 1.1071e+00, 2.7009e-02, 1.8910e-03 ], + [ 1.0914e+00, 2.3896e-02, 1.8012e-03 ], + [ 1.0763e+00, 1.8230e-02, 1.5806e-03 ], + [ 1.0615e+00, 1.5408e-02, 1.4826e-03 ], + [ 1.0471e+00, 1.3793e-02, 1.4302e-03 ], + [ 1.0332e+00, 9.9112e-03, 1.2107e-03 ], + [ 1.0196e+00, 7.5849e-03, 1.0834e-03 ], + [ 1.0063e+00, 7.3284e-03, 1.0803e-03 ], + [ 9.9340e-01, 4.6357e-03, 8.7551e-04 ], + [ 9.8082e-01, 6.4440e-03, 1.0450e-03 ], + [ 9.6853e-01, 4.7641e-03, 9.1626e-04 ], + [ 9.5657e-01, 4.1371e-03, 8.6190e-04 ], + [ 9.4491e-01, 2.3004e-03, 6.6210e-04 ], + [ 9.3349e-01, 2.8680e-03, 7.3906e-04 ], + [ 9.2238e-01, 1.6983e-03, 5.9670e-04 ], + [ 9.1153e-01, 2.4512e-03, 7.0550e-04 ], + [ 9.0090e-01, 1.7324e-03, 6.0871e-04 ], + [ 8.9055e-01, 5.9509e-04, 3.9673e-04 ], + [ 8.8043e-01, 8.0944e-04, 4.5249e-04 ], + [ 8.7051e-01, 4.1697e-04, 3.6111e-04 ], + [ 8.6084e-01, 8.3650e-04, 4.6761e-04 ], + [ 8.5138e-01, 8.6425e-04, 4.8313e-04 ], + [ 8.4210e-01, 6.4945e-04, 4.3297e-04 ], + [ 8.3304e-01, 6.6554e-04, 4.4369e-04 ], + [ 8.2418e-01, 4.5041e-04, 3.9007e-04 ], + [ 8.1548e-01, 4.6088e-04, 3.9914e-04 ], + [ 8.0699e-01, 4.7644e-04, 4.1261e-04 ], + [ 7.9867e-01, 4.8674e-04, 4.2153e-04 ], + [ 7.9050e-01, 4.9940e-04, 4.3249e-04 ], + [ 7.7470e-01, 5.9482e-04, 5.1513e-04 ], + [ 7.6700e-01, 6.7884e-04, 5.8789e-04 ], + [ 7.5949e-01, 3.8013e-04, 5.3759e-04 ], + [ 7.5212e-01, 4.0826e-04, 5.7738e-04 ], + [ 7.1069e-01, 1.0118e-03, 1.4310e-03 ], + [ 7.0421e-01, 1.1925e-03, 1.6864e-03 ], + ] + }, + { + Author: "Fomin" + Year: "2010" + Citation: "Fomin:2010ei" + Target: [6, 12] + EIn: 5.766 + AngOut: 26.00 + Data: [ + [ 3.2448e+00, 4.2437e+01, 7.6571e-02 ], + [ 3.1496e+00, 3.7218e+01, 6.3801e-02 ], + [ 3.0601e+00, 3.1966e+01, 5.9882e-02 ], + [ 2.9756e+00, 2.7492e+01, 5.8525e-02 ], + [ 2.8953e+00, 2.3738e+01, 6.3794e-02 ], + [ 2.8195e+00, 1.9845e+01, 2.8539e-02 ], + [ 2.7476e+00, 1.6644e+01, 2.5747e-02 ], + [ 2.6790e+00, 1.3955e+01, 2.3600e-02 ], + [ 2.6140e+00, 1.1338e+01, 2.1736e-02 ], + [ 2.5521e+00, 9.1864e+00, 2.0015e-02 ], + [ 2.4928e+00, 7.5344e+00, 1.8738e-02 ], + [ 2.4364e+00, 6.1767e+00, 1.8504e-02 ], + [ 2.3825e+00, 4.9535e+00, 1.0594e-02 ], + [ 2.3308e+00, 4.1116e+00, 9.4249e-03 ], + [ 2.2814e+00, 3.3595e+00, 9.0376e-03 ], + [ 2.2341e+00, 2.7423e+00, 8.0063e-03 ], + [ 2.1886e+00, 2.2324e+00, 7.3852e-03 ], + [ 2.1450e+00, 1.8028e+00, 6.8129e-03 ], + [ 2.1031e+00, 1.4224e+00, 6.1861e-03 ], + [ 2.0627e+00, 1.1052e+00, 5.5546e-03 ], + [ 2.0239e+00, 8.4955e-01, 4.9627e-03 ], + [ 1.9866e+00, 6.4896e-01, 4.4465e-03 ], + [ 1.9505e+00, 4.8320e-01, 3.9259e-03 ], + [ 1.9158e+00, 3.5672e-01, 3.4344e-03 ], + [ 1.8823e+00, 2.7114e-01, 3.0800e-03 ], + [ 1.8499e+00, 1.9464e-01, 2.8105e-03 ], + [ 1.8187e+00, 1.4744e-01, 1.9286e-03 ], + [ 1.7885e+00, 1.1035e-01, 1.7018e-03 ], + [ 1.7592e+00, 7.9346e-02, 1.4748e-03 ], + [ 1.7309e+00, 6.2400e-02, 1.5819e-03 ], + [ 1.7035e+00, 5.0177e-02, 1.4020e-03 ], + [ 1.6769e+00, 3.7714e-02, 1.2288e-03 ], + [ 1.6512e+00, 2.9720e-02, 1.1145e-03 ], + [ 1.6263e+00, 2.0928e-02, 9.4740e-04 ], + [ 1.6020e+00, 1.7591e-02, 8.7955e-04 ], + [ 1.5785e+00, 1.3936e-02, 7.9410e-04 ], + [ 1.5557e+00, 9.6023e-03, 6.6899e-04 ], + [ 1.5335e+00, 8.2386e-03, 6.3187e-04 ], + [ 1.5120e+00, 6.6855e-03, 5.7323e-04 ], + [ 1.4910e+00, 5.0031e-03, 5.0280e-04 ], + [ 1.4706e+00, 4.0199e-03, 4.6107e-04 ], + [ 1.4508e+00, 3.2959e-03, 4.2194e-04 ], + [ 1.4315e+00, 3.4978e-03, 4.4062e-04 ], + [ 1.4127e+00, 2.4014e-03, 3.7044e-04 ], + [ 1.3944e+00, 1.7054e-03, 3.1651e-04 ], + [ 1.3766e+00, 1.3912e-03, 2.8984e-04 ], + [ 1.3592e+00, 1.7418e-03, 3.2897e-04 ], + [ 1.3422e+00, 8.5294e-04, 2.3596e-04 ], + [ 1.3257e+00, 5.0864e-04, 1.9074e-04 ], + [ 1.3095e+00, 7.1738e-04, 2.2592e-04 ], + [ 1.2938e+00, 4.6664e-04, 1.8855e-04 ], + [ 1.2784e+00, 2.0604e-04, 1.3736e-04 ], + [ 1.2634e+00, 1.3958e-04, 1.2087e-04 ], + [ 1.2488e+00, 1.4394e-04, 1.2465e-04 ], + [ 1.2344e+00, 4.4208e-04, 1.9493e-04 ], + [ 1.2204e+00, 1.5128e-04, 1.3101e-04 ], + [ 1.1934e+00, 1.5634e-04, 1.3539e-04 ], + [ 1.1306e+00, 1.1767e-04, 1.6641e-04 ], + ] + }, + { + Author: "Fomin" + Year: "2010" + Citation: "Fomin:2010ei" + Target: [6, 12] + EIn: 5.766 + AngOut: 32.00 + Data: [ + [ 3.6288e+00, 1.3513e+01, 2.2261e-02 ], + [ 3.5492e+00, 1.1216e+01, 1.8109e-02 ], + [ 3.4727e+00, 9.3301e+00, 1.6853e-02 ], + [ 3.3997e+00, 7.5957e+00, 1.5842e-02 ], + [ 3.3297e+00, 6.2864e+00, 9.7686e-03 ], + [ 3.2623e+00, 5.1138e+00, 8.9903e-03 ], + [ 3.1978e+00, 4.0498e+00, 7.4569e-03 ], + [ 3.1358e+00, 3.2086e+00, 6.7579e-03 ], + [ 3.0760e+00, 2.5021e+00, 6.0910e-03 ], + [ 3.0185e+00, 1.9442e+00, 5.4966e-03 ], + [ 2.9632e+00, 1.5173e+00, 5.2420e-03 ], + [ 2.9097e+00, 1.1796e+00, 4.3408e-03 ], + [ 2.8583e+00, 9.3559e-01, 5.6746e-03 ], + [ 2.8087e+00, 7.1512e-01, 4.5996e-03 ], + [ 2.7606e+00, 5.4766e-01, 3.9790e-03 ], + [ 2.7142e+00, 4.1931e-01, 3.5497e-03 ], + [ 2.6694e+00, 3.1130e-01, 3.1057e-03 ], + [ 2.6259e+00, 2.3243e-01, 2.7380e-03 ], + [ 2.5840e+00, 1.6911e-01, 2.3772e-03 ], + [ 2.5433e+00, 1.2168e-01, 2.0578e-03 ], + [ 2.5038e+00, 8.2795e-02, 1.7283e-03 ], + [ 2.4657e+00, 6.1852e-02, 1.6397e-03 ], + [ 2.4286e+00, 4.5648e-02, 1.0285e-03 ], + [ 2.3926e+00, 3.0727e-02, 8.4659e-04 ], + [ 2.3577e+00, 2.4401e-02, 8.8221e-04 ], + [ 2.3238e+00, 1.6402e-02, 7.0067e-04 ], + [ 2.2908e+00, 1.2018e-02, 6.0544e-04 ], + [ 2.2588e+00, 9.1216e-03, 5.3108e-04 ], + [ 2.2277e+00, 6.3312e-03, 4.5223e-04 ], + [ 2.1973e+00, 4.3762e-03, 3.8090e-04 ], + [ 2.1679e+00, 3.0851e-03, 3.2339e-04 ], + [ 2.1392e+00, 2.9712e-03, 3.2418e-04 ], + [ 2.1112e+00, 1.7932e-03, 2.5354e-04 ], + [ 2.0840e+00, 1.2317e-03, 2.1432e-04 ], + [ 2.0574e+00, 1.2332e-03, 2.1790e-04 ], + [ 2.0315e+00, 9.6260e-04, 1.9633e-04 ], + [ 2.0063e+00, 1.1095e-03, 2.1339e-04 ], + [ 1.9817e+00, 5.3182e-04, 1.5308e-04 ], + [ 1.9577e+00, 4.2010e-04, 1.3933e-04 ], + [ 1.9342e+00, 2.9955e-04, 1.2104e-04 ], + [ 1.9114e+00, 1.3473e-04, 8.9820e-05 ], + [ 1.8890e+00, 1.0039e-04, 8.6938e-05 ], + [ 1.8672e+00, 1.1880e-04, 1.0288e-04 ], + [ 1.8250e+00, 8.6575e-05, 1.2243e-04 ], + [ 1.8046e+00, 1.1173e-04, 1.5800e-04 ], + ] + }, + { + Author: "Fomin" + Year: "2010" + Citation: "Fomin:2010ei" + Target: [6, 12] + EIn: 5.766 + AngOut: 40.00 + Data: [ + [ 4.7252e+00, 1.8260e+01, 4.3909e-02 ], + [ 4.6372e+00, 1.6194e+01, 3.0798e-02 ], + [ 4.5524e+00, 1.3884e+01, 2.2183e-02 ], + [ 4.4704e+00, 1.2019e+01, 2.0251e-02 ], + [ 4.3916e+00, 1.0315e+01, 1.9610e-02 ], + [ 4.3155e+00, 8.5810e+00, 1.5507e-02 ], + [ 4.2417e+00, 7.2354e+00, 1.2354e-02 ], + [ 4.1707e+00, 5.9965e+00, 1.1464e-02 ], + [ 4.1019e+00, 4.9109e+00, 9.8557e-03 ], + [ 4.0353e+00, 3.9983e+00, 1.1510e-02 ], + [ 3.9709e+00, 3.2162e+00, 1.0119e-02 ], + [ 3.9086e+00, 2.5516e+00, 9.1648e-03 ], + [ 3.8480e+00, 2.0073e+00, 9.0220e-03 ], + [ 3.7894e+00, 1.5833e+00, 5.1967e-03 ], + [ 3.7326e+00, 1.2288e+00, 4.7028e-03 ], + [ 3.6773e+00, 9.2892e-01, 4.0928e-03 ], + [ 3.6238e+00, 6.9334e-01, 3.6008e-03 ], + [ 3.5718e+00, 5.1792e-01, 3.1561e-03 ], + [ 3.5211e+00, 3.9158e-01, 3.0070e-03 ], + [ 3.4720e+00, 2.9165e-01, 2.0784e-03 ], + [ 3.4243e+00, 2.1248e-01, 2.1085e-03 ], + [ 3.3777e+00, 1.5682e-01, 1.7835e-03 ], + [ 3.3324e+00, 1.0805e-01, 1.5155e-03 ], + [ 3.2884e+00, 7.7139e-02, 1.2926e-03 ], + [ 3.2454e+00, 5.4870e-02, 1.0935e-03 ], + [ 3.2037e+00, 3.8589e-02, 9.3129e-04 ], + [ 3.1630e+00, 2.6578e-02, 8.2739e-04 ], + [ 3.1232e+00, 1.8786e-02, 6.2212e-04 ], + [ 3.0845e+00, 1.3089e-02, 5.2202e-04 ], + [ 3.0467e+00, 8.3993e-03, 5.3678e-04 ], + [ 3.0098e+00, 5.4747e-03, 4.2237e-04 ], + [ 2.9738e+00, 3.8246e-03, 3.5207e-04 ], + [ 2.9387e+00, 2.2255e-03, 2.8168e-04 ], + [ 2.9044e+00, 2.0132e-03, 2.6209e-04 ], + [ 2.8709e+00, 1.2816e-03, 2.2399e-04 ], + [ 2.8381e+00, 1.0476e-03, 1.9443e-04 ], + [ 2.8061e+00, 5.3516e-04, 1.4271e-04 ], + [ 2.7748e+00, 5.1434e-04, 1.4229e-04 ], + [ 2.7442e+00, 1.7769e-04, 1.2206e-04 ], + [ 2.7142e+00, 1.9849e-04, 9.7241e-05 ], + [ 2.6849e+00, 1.8559e-04, 1.0375e-04 ], + [ 2.6282e+00, 7.7292e-05, 1.0931e-04 ], + ] + }, + { + Author: "Fomin" + Year: "2010" + Citation: "Fomin:2010ei" + Target: [6, 12] + EIn: 5.766 + AngOut: 50.00 + Data: [ + [ 4.9731e+00, 8.7143e+00, 5.0462e-02 ], + [ 4.9089e+00, 7.5890e+00, 3.7068e-02 ], + [ 4.8462e+00, 6.3798e+00, 2.4008e-02 ], + [ 4.7852e+00, 5.4278e+00, 2.1599e-02 ], + [ 4.7257e+00, 4.5143e+00, 2.0398e-02 ], + [ 4.6675e+00, 3.6620e+00, 1.2016e-02 ], + [ 4.6109e+00, 2.9873e+00, 9.8872e-03 ], + [ 4.5556e+00, 2.4053e+00, 8.9741e-03 ], + [ 4.5015e+00, 1.9092e+00, 7.6442e-03 ], + [ 4.4488e+00, 1.5157e+00, 9.0158e-03 ], + [ 4.3973e+00, 1.1496e+00, 7.9369e-03 ], + [ 4.3469e+00, 8.9707e-01, 7.2348e-03 ], + [ 4.2978e+00, 6.9312e-01, 4.5029e-03 ], + [ 4.2497e+00, 5.3602e-01, 4.0800e-03 ], + [ 4.2026e+00, 3.9202e-01, 3.4965e-03 ], + [ 4.1566e+00, 2.8107e-01, 2.9858e-03 ], + [ 4.1117e+00, 1.9897e-01, 2.5707e-03 ], + [ 4.0675e+00, 1.5190e-01, 1.8075e-03 ], + [ 4.0245e+00, 1.0740e-01, 1.7744e-03 ], + [ 3.9823e+00, 7.4475e-02, 1.3822e-03 ], + [ 3.9409e+00, 5.2883e-02, 1.1419e-03 ], + [ 3.9005e+00, 3.6467e-02, 1.0001e-03 ], + [ 3.8609e+00, 2.4695e-02, 8.6412e-04 ], + [ 3.8219e+00, 1.5708e-02, 6.7622e-04 ], + [ 3.7839e+00, 1.0189e-02, 5.1476e-04 ], + [ 3.7466e+00, 8.0087e-03, 4.3952e-04 ], + [ 3.7099e+00, 5.0803e-03, 4.8478e-04 ], + [ 3.6741e+00, 4.2622e-03, 3.4917e-04 ], + [ 3.6389e+00, 2.6694e-03, 2.7830e-04 ], + [ 3.6043e+00, 1.7491e-03, 2.2768e-04 ], + [ 3.5704e+00, 8.7977e-04, 3.5127e-04 ], + [ 3.5372e+00, 6.0316e-04, 1.3820e-04 ], + [ 3.5045e+00, 6.1238e-04, 1.4032e-04 ], + [ 3.4725e+00, 3.0087e-04, 1.0572e-04 ], + [ 3.4410e+00, 8.6418e-05, 7.4840e-05 ], + ] + }, +] diff --git a/data/eA/VirginiaArchive/FHiCL/16O.fcl b/data/eA/VirginiaArchive/FHiCL/16O.fcl new file mode 100644 index 0000000..1989b3c --- /dev/null +++ b/data/eA/VirginiaArchive/FHiCL/16O.fcl @@ -0,0 +1,188 @@ +datasets: [ + { + Author: "Anghinolfi" + Year: "1996" + Citation: "Anghinolfi:1996vm" + Target: [8, 16] + EIn: 0.7000 + AngOut: 32.0 + Data: [ + [ 0.0131, 1.110e+04, 1.414e+03 ], + [ 0.0639, 3.926e+04, 2.946e+03 ], + [ 0.1132, 5.246e+04, 3.417e+03 ], + [ 0.1632, 2.230e+04, 2.356e+03 ], + [ 0.2127, 1.511e+04, 1.885e+03 ], + [ 0.2634, 1.275e+04, 1.767e+03 ], + [ 0.3127, 1.593e+04, 2.121e+03 ], + [ 0.3617, 1.605e+04, 2.238e+03 ], + [ 0.4136, 1.723e+04, 2.356e+03 ], + [ 0.4609, 1.511e+04, 2.710e+03 ], + ] + }, + { + Author: "O'Connell" + Year: "1987" + Citation: "O'Connell:1987ag" + Target: [8, 16] + EIn: 0.737 + AngOut: 37.10 + Data: [ + [ 0.005, 1.145274e+03, 5.437932e+01 ], + [ 0.015, 2.072565e+03, 9.286002e+02 ], + [ 0.025, 4.294244e+03, 1.720724e+02 ], + [ 0.045, 1.069533e+04, 6.362957e+02 ], + [ 0.055, 1.362179e+04, 7.386101e+02 ], + [ 0.065, 1.566595e+04, 8.562046e+02 ], + [ 0.085, 2.359134e+04, 4.783858e+02 ], + [ 0.095, 2.620867e+04, 5.286609e+02 ], + [ 0.105, 2.736528e+04, 4.896991e+02 ], + [ 0.115, 2.676651e+04, 1.077763e+03 ], + [ 0.125, 2.750357e+04, 6.717801e+02 ], + [ 0.135, 2.864351e+04, 8.384742e+02 ], + [ 0.145, 2.334026e+04, 7.864340e+02 ], + [ 0.165, 2.054571e+04, 6.587918e+02 ], + [ 0.175, 1.620420e+04, 4.157587e+02 ], + [ 0.195, 1.189352e+04, 6.028586e+02 ], + [ 0.205, 9.845611e+03, 5.369455e+02 ], + [ 0.215, 9.780346e+03, 5.247376e+02 ], + [ 0.225, 9.684979e+03, 5.524420e+02 ], + [ 0.235, 9.465869e+03, 5.286224e+02 ], + [ 0.245, 7.550561e+03, 5.051374e+02 ], + [ 0.255, 8.699222e+03, 4.518011e+02 ], + [ 0.265, 9.082392e+03, 4.542263e+02 ], + [ 0.275, 8.347293e+03, 4.661163e+02 ], + [ 0.285, 1.053541e+04, 5.947030e+02 ], + [ 0.295, 9.777702e+03, 4.146686e+02 ], + [ 0.305, 1.155415e+04, 5.196829e+02 ], + [ 0.315, 1.090209e+04, 5.096803e+02 ], + [ 0.325, 1.054513e+04, 5.257814e+02 ], + [ 0.335, 1.156878e+04, 5.789788e+02 ], + [ 0.345, 1.160804e+04, 4.127202e+02 ], + [ 0.365, 1.277601e+04, 5.222418e+02 ], + [ 0.375, 1.211411e+04, 7.427255e+02 ], + [ 0.385, 1.209115e+04, 5.704618e+02 ], + [ 0.405, 1.169767e+04, 4.996077e+02 ], + [ 0.415, 1.184870e+04, 5.668907e+02 ], + [ 0.425, 1.087115e+04, 5.057672e+02 ], + [ 0.435, 1.125201e+04, 8.026966e+02 ], + [ 0.445, 1.056200e+04, 5.826770e+02 ], + [ 0.455, 1.064251e+04, 8.006067e+02 ], + [ 0.465, 1.028915e+04, 4.160326e+02 ], + [ 0.475, 9.250337e+03, 6.439489e+02 ], + [ 0.485, 8.978261e+03, 8.670644e+02 ], + [ 0.495, 7.948388e+03, 4.155895e+02 ], + [ 0.505, 8.269516e+03, 5.469043e+02 ], + [ 0.515, 8.277872e+03, 5.741224e+02 ], + [ 0.525, 8.099373e+03, 6.452941e+02 ], + [ 0.545, 8.073712e+03, 8.653318e+02 ], + [ 0.565, 4.407392e+03, 9.898168e+02 ], + [ 0.595, 6.908552e+03, 2.205562e+03 ], + [ 0.605, 7.510988e+03, 1.602130e+03 ], + [ 0.615, 7.673268e+03, 1.399119e+03 ], + [ 0.625, 5.116644e+03, 2.015953e+03 ], + ] + }, + { + Author: "Anghinolfi" + Year: "1996" + Citation: "Anghinolfi:1996vm" + Target: [8, 16] + EIn: 0.8800 + AngOut: 32.0 + Data: [ + [ 0.0129, 2.568e+03, 2.177e+03 ], + [ 0.0616, 1.345e+04, 1.837e+03 ], + [ 0.1121, 2.692e+04, 1.633e+03 ], + [ 0.1622, 2.522e+04, 1.224e+03 ], + [ 0.2121, 1.372e+04, 1.292e+03 ], + [ 0.2625, 1.094e+04, 1.088e+03 ], + [ 0.3121, 1.080e+04, 9.523e+02 ], + [ 0.3615, 1.236e+04, 1.088e+03 ], + [ 0.4116, 1.345e+04, 1.156e+03 ], + [ 0.4624, 9.099e+03, 1.156e+03 ], + [ 0.5100, 8.350e+03, 1.088e+03 ], + [ 0.5616, 6.105e+03, 1.020e+03 ], + [ 0.6121, 5.289e+03, 1.224e+03 ], + ] + }, + { + Author: "Anghinolfi" + Year: "1996" + Citation: "Anghinolfi:1996vm" + Target: [8, 16] + EIn: 1.0800 + AngOut: 32.0 + Data: [ + [ 0.0644, 2.464e+03, 4.361e+02 ], + [ 0.1108, 7.464e+03, 6.395e+02 ], + [ 0.1618, 1.310e+04, 8.721e+02 ], + [ 0.2136, 1.331e+04, 8.721e+02 ], + [ 0.2617, 8.801e+03, 6.686e+02 ], + [ 0.3137, 6.359e+03, 6.686e+02 ], + [ 0.3622, 8.103e+03, 6.977e+02 ], + [ 0.4097, 9.498e+03, 7.558e+02 ], + [ 0.4606, 7.725e+03, 7.558e+02 ], + [ 0.5117, 7.725e+03, 6.977e+02 ], + [ 0.5611, 6.853e+03, 6.977e+02 ], + [ 0.6104, 5.458e+03, 6.105e+02 ], + [ 0.6593, 4.673e+03, 6.686e+02 ], + [ 0.7380, 4.702e+03, 7.267e+02 ], + ] + }, + { + Author: "Anghinolfi" + Year: "1996" + Citation: "Anghinolfi:1996vm" + Target: [8, 16] + EIn: 1.2000 + AngOut: 32.0 + Data: [ + [ 0.0371, 1.401e+02, 1.353e+02 ], + [ 0.0880, 1.551e+03, 2.512e+02 ], + [ 0.1385, 4.372e+03, 4.251e+02 ], + [ 0.1887, 8.546e+03, 5.604e+02 ], + [ 0.2394, 8.121e+03, 5.990e+02 ], + [ 0.2883, 7.039e+03, 5.024e+02 ], + [ 0.3381, 5.589e+03, 5.024e+02 ], + [ 0.3885, 5.396e+03, 4.831e+02 ], + [ 0.4357, 5.570e+03, 5.024e+02 ], + [ 0.4885, 7.676e+03, 5.604e+02 ], + [ 0.5395, 5.377e+03, 5.217e+02 ], + [ 0.5902, 4.758e+03, 4.638e+02 ], + [ 0.6383, 5.280e+03, 5.024e+02 ], + [ 0.6857, 4.527e+03, 4.831e+02 ], + [ 0.7389, 4.121e+03, 4.058e+02 ], + [ 0.7867, 3.947e+03, 4.251e+02 ], + [ 0.8428, 4.681e+03, 4.831e+02 ], + ] + }, + { + Author: "Anghinolfi" + Year: "1996" + Citation: "Anghinolfi:1996vm" + Target: [8, 16] + EIn: 1.5000 + AngOut: 32.0 + Data: [ + [ 0.1380, 2.873e+02, 6.094e+01 ], + [ 0.1859, 1.280e+03, 1.219e+02 ], + [ 0.2356, 2.203e+03, 1.567e+02 ], + [ 0.2850, 3.187e+03, 2.002e+02 ], + [ 0.3365, 2.734e+03, 1.828e+02 ], + [ 0.3871, 2.804e+03, 1.828e+02 ], + [ 0.4360, 2.307e+03, 1.654e+02 ], + [ 0.4847, 2.508e+03, 1.567e+02 ], + [ 0.5356, 2.429e+03, 1.654e+02 ], + [ 0.5856, 2.481e+03, 1.654e+02 ], + [ 0.6344, 2.455e+03, 1.654e+02 ], + [ 0.6850, 2.063e+03, 1.480e+02 ], + [ 0.7373, 2.264e+03, 1.654e+02 ], + [ 0.7879, 2.098e+03, 1.654e+02 ], + [ 0.8399, 2.098e+03, 1.567e+02 ], + [ 0.8863, 2.368e+03, 1.480e+02 ], + [ 0.9376, 2.298e+03, 1.654e+02 ], + [ 0.9901, 2.516e+03, 1.654e+02 ], + [ 1.0362, 2.577e+03, 1.741e+02 ], + ] + }, +] diff --git a/data/eA/VirginiaArchive/Raw/12C.dat b/data/eA/VirginiaArchive/Raw/12C.dat new file mode 100644 index 0000000..ae483a0 --- /dev/null +++ b/data/eA/VirginiaArchive/Raw/12C.dat @@ -0,0 +1,2883 @@ + 6 12 0.160 36.000 0.013 4.1060e+05 1.8320e+05 Barreau:1983ht + 6 12 0.160 36.000 0.018 4.0900e+05 1.4750e+05 Barreau:1983ht + 6 12 0.160 36.000 0.022 7.9080e+05 1.4650e+05 Barreau:1983ht + 6 12 0.160 36.000 0.028 5.4210e+05 1.2300e+05 Barreau:1983ht + 6 12 0.161 60.000 0.008 1.4680e+05 1.9250e+04 Barreau:1983ht + 6 12 0.161 60.000 0.013 8.1090e+04 1.0790e+04 Barreau:1983ht + 6 12 0.161 60.000 0.018 9.6280e+04 9.2500e+03 Barreau:1983ht + 6 12 0.161 60.000 0.023 1.4710e+05 9.3300e+03 Barreau:1983ht + 6 12 0.161 60.000 0.028 1.3280e+05 8.3500e+03 Barreau:1983ht + 6 12 0.161 60.000 0.033 1.0100e+05 7.3500e+03 Barreau:1983ht + 6 12 0.161 60.000 0.038 8.4780e+04 6.8000e+03 Barreau:1983ht + 6 12 0.161 60.000 0.043 7.1350e+04 6.3800e+03 Barreau:1983ht + 6 12 0.161 60.000 0.048 5.8670e+04 6.0400e+03 Barreau:1983ht + 6 12 0.200 36.000 0.018 4.3560e+05 7.8200e+04 Barreau:1983ht + 6 12 0.200 36.000 0.022 6.0110e+05 7.5400e+04 Barreau:1983ht + 6 12 0.200 36.000 0.028 6.5010e+05 7.0570e+04 Barreau:1983ht + 6 12 0.200 36.000 0.033 4.5580e+05 5.8990e+04 Barreau:1983ht + 6 12 0.200 36.000 0.037 3.7560e+05 5.3380e+04 Barreau:1983ht + 6 12 0.200 36.000 0.043 2.7620e+05 4.7410e+04 Barreau:1983ht + 6 12 0.200 36.000 0.048 2.0030e+05 4.2920e+04 Barreau:1983ht + 6 12 0.200 60.000 0.007 1.6400e+05 1.2880e+04 Barreau:1983ht + 6 12 0.200 60.000 0.013 8.4410e+04 5.9900e+03 Barreau:1983ht + 6 12 0.200 60.000 0.018 5.1280e+04 4.2700e+03 Barreau:1983ht + 6 12 0.200 60.000 0.022 7.7990e+04 4.7600e+03 Barreau:1983ht + 6 12 0.200 60.000 0.028 8.2410e+04 4.7000e+03 Barreau:1983ht + 6 12 0.200 60.000 0.033 7.4080e+04 4.3500e+03 Barreau:1983ht + 6 12 0.200 60.000 0.037 6.8520e+04 4.1700e+03 Barreau:1983ht + 6 12 0.200 60.000 0.043 6.4950e+04 4.0700e+03 Barreau:1983ht + 6 12 0.200 60.000 0.048 5.6440e+04 3.8400e+03 Barreau:1983ht + 6 12 0.200 60.000 0.052 4.7050e+04 3.6400e+03 Barreau:1983ht + 6 12 0.200 60.000 0.058 3.9000e+04 3.5700e+03 Barreau:1983ht + 6 12 0.200 60.000 0.062 3.1660e+04 3.3800e+03 Barreau:1983ht + 6 12 0.200 60.000 0.068 2.6050e+04 3.2000e+03 Barreau:1983ht + 6 12 0.240 36.000 0.013 3.6130e+05 5.0450e+04 Barreau:1983ht + 6 12 0.240 36.000 0.018 3.0410e+05 4.1200e+04 Barreau:1983ht + 6 12 0.240 36.000 0.022 4.9720e+05 4.3530e+04 Barreau:1983ht + 6 12 0.240 36.000 0.028 4.6210e+05 3.9490e+04 Barreau:1983ht + 6 12 0.240 36.000 0.033 3.6150e+05 3.4100e+04 Barreau:1983ht + 6 12 0.240 36.000 0.037 2.9120e+05 3.0190e+04 Barreau:1983ht + 6 12 0.240 36.000 0.043 2.6000e+05 2.8030e+04 Barreau:1983ht + 6 12 0.240 36.000 0.048 2.0660e+05 2.5240e+04 Barreau:1983ht + 6 12 0.240 36.000 0.052 1.9790e+05 2.4360e+04 Barreau:1983ht + 6 12 0.240 36.000 0.058 1.3830e+05 1.9810e+04 Barreau:1983ht + 6 12 0.240 36.000 0.062 1.0220e+05 1.8420e+04 Barreau:1983ht + 6 12 0.240 60.000 0.003 2.7070e+05 7.1800e+03 Barreau:1983ht + 6 12 0.240 60.000 0.008 1.0670e+05 4.1200e+03 Barreau:1983ht + 6 12 0.240 60.000 0.013 6.0580e+04 1.8000e+03 Barreau:1983ht + 6 12 0.240 60.000 0.018 3.3090e+04 1.3200e+03 Barreau:1983ht + 6 12 0.240 60.000 0.023 4.3270e+04 1.4000e+03 Barreau:1983ht + 6 12 0.240 60.000 0.028 4.5830e+04 1.3700e+03 Barreau:1983ht + 6 12 0.240 60.000 0.033 4.8900e+04 1.4000e+03 Barreau:1983ht + 6 12 0.240 60.000 0.038 4.7980e+04 1.4000e+03 Barreau:1983ht + 6 12 0.240 60.000 0.043 4.8650e+04 1.4400e+03 Barreau:1983ht + 6 12 0.240 60.000 0.048 4.6260e+04 1.4200e+03 Barreau:1983ht + 6 12 0.240 60.000 0.053 4.3750e+04 1.4100e+03 Barreau:1983ht + 6 12 0.240 60.000 0.058 3.9630e+04 1.3900e+03 Barreau:1983ht + 6 12 0.240 60.000 0.063 3.3680e+04 1.3100e+03 Barreau:1983ht + 6 12 0.240 60.000 0.068 2.9580e+04 1.2500e+03 Barreau:1983ht + 6 12 0.240 60.000 0.073 2.4830e+04 1.2200e+03 Barreau:1983ht + 6 12 0.240 60.000 0.078 1.9880e+04 1.1600e+03 Barreau:1983ht + 6 12 0.240 60.000 0.083 1.6970e+04 1.1100e+03 Barreau:1983ht + 6 12 0.240 60.000 0.088 1.4830e+04 1.1100e+03 Barreau:1983ht + 6 12 0.240 60.000 0.093 1.2020e+04 1.0900e+03 Barreau:1983ht + 6 12 0.240 60.000 0.098 1.0710e+04 1.1000e+03 Barreau:1983ht + 6 12 0.240 60.000 0.103 9.6500e+03 1.1400e+03 Barreau:1983ht + 6 12 0.240 60.000 0.108 7.1400e+03 1.1200e+03 Barreau:1983ht + 6 12 0.280 60.000 0.003 4.8190e+04 1.1800e+03 Barreau:1983ht + 6 12 0.280 60.000 0.008 5.6900e+04 1.6500e+03 Barreau:1983ht + 6 12 0.280 60.000 0.013 3.9620e+04 8.1000e+02 Barreau:1983ht + 6 12 0.280 60.000 0.018 2.1640e+04 5.3000e+02 Barreau:1983ht + 6 12 0.280 60.000 0.023 2.6140e+04 5.8000e+02 Barreau:1983ht + 6 12 0.280 60.000 0.028 2.6300e+04 5.7000e+02 Barreau:1983ht + 6 12 0.280 60.000 0.033 3.1910e+04 6.5000e+02 Barreau:1983ht + 6 12 0.280 60.000 0.038 3.4420e+04 7.1000e+02 Barreau:1983ht + 6 12 0.280 60.000 0.043 3.6160e+04 7.4000e+02 Barreau:1983ht + 6 12 0.280 60.000 0.048 3.8100e+04 7.9000e+02 Barreau:1983ht + 6 12 0.280 60.000 0.053 3.8150e+04 8.1000e+02 Barreau:1983ht + 6 12 0.280 60.000 0.058 3.6760e+04 8.1000e+02 Barreau:1983ht + 6 12 0.280 60.000 0.063 3.4670e+04 8.0000e+02 Barreau:1983ht + 6 12 0.280 60.000 0.068 3.1680e+04 7.8000e+02 Barreau:1983ht + 6 12 0.280 60.000 0.073 2.8410e+04 7.4000e+02 Barreau:1983ht + 6 12 0.280 60.000 0.078 2.4830e+04 7.0000e+02 Barreau:1983ht + 6 12 0.280 60.000 0.083 2.1360e+04 6.6000e+02 Barreau:1983ht + 6 12 0.280 60.000 0.088 1.8460e+04 6.3000e+02 Barreau:1983ht + 6 12 0.280 60.000 0.093 1.5560e+04 5.9000e+02 Barreau:1983ht + 6 12 0.280 60.000 0.098 1.3460e+04 5.7000e+02 Barreau:1983ht + 6 12 0.280 60.000 0.103 1.1320e+04 5.5000e+02 Barreau:1983ht + 6 12 0.280 60.000 0.108 1.0140e+04 5.5000e+02 Barreau:1983ht + 6 12 0.280 60.000 0.113 8.6400e+03 5.4000e+02 Barreau:1983ht + 6 12 0.280 60.000 0.118 7.6600e+03 5.4000e+02 Barreau:1983ht + 6 12 0.280 60.000 0.123 6.4900e+03 5.4000e+02 Barreau:1983ht + 6 12 0.280 60.000 0.128 5.8400e+03 5.5000e+02 Barreau:1983ht + 6 12 0.280 60.000 0.133 5.3700e+03 5.7000e+02 Barreau:1983ht + 6 12 0.280 60.000 0.138 4.9300e+03 6.0000e+02 Barreau:1983ht + 6 12 0.320 36.000 0.013 2.8410e+05 1.7800e+04 Barreau:1983ht + 6 12 0.320 36.000 0.018 1.5420e+05 1.1790e+04 Barreau:1983ht + 6 12 0.320 36.000 0.022 1.8710e+05 1.1970e+04 Barreau:1983ht + 6 12 0.320 36.000 0.028 2.6020e+05 1.3810e+04 Barreau:1983ht + 6 12 0.320 36.000 0.033 2.2770e+05 1.2390e+04 Barreau:1983ht + 6 12 0.320 36.000 0.037 2.0430e+05 1.1440e+04 Barreau:1983ht + 6 12 0.320 36.000 0.043 1.8800e+05 1.0770e+04 Barreau:1983ht + 6 12 0.320 36.000 0.048 1.7590e+05 1.0270e+04 Barreau:1983ht + 6 12 0.320 36.000 0.052 1.5170e+05 9.4100e+03 Barreau:1983ht + 6 12 0.320 36.000 0.058 1.3370e+05 8.7700e+03 Barreau:1983ht + 6 12 0.320 36.000 0.062 1.0750e+05 7.8600e+03 Barreau:1983ht + 6 12 0.320 36.000 0.068 9.1440e+04 7.2700e+03 Barreau:1983ht + 6 12 0.320 36.000 0.072 7.8750e+04 6.8000e+03 Barreau:1983ht + 6 12 0.320 36.000 0.077 6.1850e+04 6.1900e+03 Barreau:1983ht + 6 12 0.320 36.000 0.083 5.1520e+04 5.8100e+03 Barreau:1983ht + 6 12 0.320 36.000 0.087 4.3880e+04 5.5200e+03 Barreau:1983ht + 6 12 0.320 36.000 0.092 3.2750e+04 4.7900e+03 Barreau:1983ht + 6 12 0.320 60.000 0.003 4.6900e+03 1.6000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.008 3.0210e+04 7.8000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.013 2.3290e+04 4.3000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.018 1.6330e+04 3.2000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.023 1.8660e+04 3.6000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.028 1.7660e+04 3.5000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.033 2.0770e+04 4.0000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.038 2.1380e+04 4.1000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.043 2.3300e+04 4.4000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.048 2.4740e+04 4.7000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.053 2.5830e+04 4.9000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.058 2.6260e+04 5.1000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.063 2.6370e+04 5.3000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.068 2.5960e+04 5.4000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.073 2.4810e+04 5.4000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.078 2.2320e+04 5.1000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.083 2.0460e+04 4.9000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.088 1.8140e+04 4.6000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.093 1.5960e+04 4.4000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.098 1.4210e+04 4.2000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.103 1.2220e+04 4.0000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.108 1.0730e+04 3.8000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.113 9.3200e+03 3.7000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.118 8.1500e+03 3.5000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.123 7.1400e+03 3.4000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.128 6.1800e+03 3.3000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.133 5.6800e+03 3.2000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.138 5.2600e+03 3.2000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.143 4.6000e+03 3.2000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.148 4.1800e+03 3.3000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.153 3.8100e+03 3.4000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.158 3.3900e+03 3.5000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.163 3.0500e+03 3.6000e+02 Barreau:1983ht + 6 12 0.320 60.000 0.168 2.8600e+03 3.9000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.003 2.0000e+02 8.0000e+01 Barreau:1983ht + 6 12 0.361 60.000 0.008 8.0100e+03 2.7000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.013 8.5300e+03 2.1000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.018 8.8100e+03 1.6000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.023 9.2000e+03 1.9000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.028 9.2400e+03 1.7000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.033 1.0600e+04 1.9000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.038 1.1880e+04 2.1000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.043 1.3230e+04 2.3000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.048 1.4690e+04 2.6000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.053 1.6020e+04 2.8000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.058 1.7330e+04 3.0000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.063 1.8280e+04 3.2000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.068 1.9050e+04 3.3000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.073 1.9330e+04 3.5000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.078 1.9400e+04 3.6000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.083 1.8910e+04 3.6000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.088 1.7980e+04 3.5000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.093 1.7180e+04 3.4000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.098 1.5760e+04 3.3000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.103 1.4450e+04 3.2000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.108 1.2910e+04 3.0000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.113 1.1670e+04 2.9000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.118 1.0250e+04 2.7000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.123 9.0500e+03 2.5000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.128 8.0700e+03 2.4000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.133 7.0500e+03 2.3000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.138 6.3500e+03 2.2000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.143 5.5600e+03 2.1000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.148 5.0200e+03 2.1000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.153 4.6700e+03 2.1000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.158 4.2300e+03 2.0000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.163 3.8100e+03 2.0000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.168 3.7100e+03 2.1000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.173 3.4200e+03 2.1000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.178 3.3300e+03 2.2000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.183 3.2000e+03 2.3000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.188 3.1800e+03 2.5000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.193 3.2200e+03 2.6000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.198 3.2400e+03 2.8000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.203 3.3300e+03 3.0000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.208 3.4000e+03 3.3000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.213 3.5900e+03 3.6000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.218 3.8700e+03 3.9000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.223 4.0600e+03 4.3000e+02 Barreau:1983ht + 6 12 0.361 60.000 0.228 4.2900e+03 4.8000e+02 Barreau:1983ht + 6 12 0.400 36.000 0.013 1.8100e+05 7.5500e+03 Barreau:1983ht + 6 12 0.400 36.000 0.018 1.2450e+05 5.7000e+03 Barreau:1983ht + 6 12 0.400 36.000 0.022 1.1090e+05 5.2600e+03 Barreau:1983ht + 6 12 0.400 36.000 0.028 1.2570e+05 5.6500e+03 Barreau:1983ht + 6 12 0.400 36.000 0.033 1.3790e+05 5.9900e+03 Barreau:1983ht + 6 12 0.400 36.000 0.037 1.3980e+05 6.0600e+03 Barreau:1983ht + 6 12 0.400 36.000 0.043 1.3240e+05 5.8700e+03 Barreau:1983ht + 6 12 0.400 36.000 0.048 1.3420e+05 5.5100e+03 Barreau:1983ht + 6 12 0.400 36.000 0.052 1.2990e+05 5.4000e+03 Barreau:1983ht + 6 12 0.400 36.000 0.058 1.2290e+05 5.1900e+03 Barreau:1983ht + 6 12 0.400 36.000 0.062 1.1540e+05 4.9800e+03 Barreau:1983ht + 6 12 0.400 36.000 0.068 9.6580e+04 4.4400e+03 Barreau:1983ht + 6 12 0.400 36.000 0.072 8.9120e+04 4.2200e+03 Barreau:1983ht + 6 12 0.400 36.000 0.077 7.7230e+04 3.8500e+03 Barreau:1983ht + 6 12 0.400 36.000 0.083 6.3340e+04 3.4300e+03 Barreau:1983ht + 6 12 0.400 36.000 0.087 5.6660e+04 3.2100e+03 Barreau:1983ht + 6 12 0.400 36.000 0.092 4.8490e+04 2.9500e+03 Barreau:1983ht + 6 12 0.400 36.000 0.098 4.1300e+04 2.7200e+03 Barreau:1983ht + 6 12 0.400 36.000 0.102 3.4030e+04 2.4900e+03 Barreau:1983ht + 6 12 0.400 36.000 0.107 3.0360e+04 2.3700e+03 Barreau:1983ht + 6 12 0.400 36.000 0.113 2.4060e+04 2.1700e+03 Barreau:1983ht + 6 12 0.400 36.000 0.117 2.1810e+04 1.9700e+03 Barreau:1983ht + 6 12 0.400 36.000 0.122 1.9590e+04 2.0600e+03 Barreau:1983ht + 6 12 0.400 36.000 0.128 1.6400e+04 1.9600e+03 Barreau:1983ht + 6 12 0.400 36.000 0.133 1.5700e+04 1.9600e+03 Barreau:1983ht + 6 12 0.400 36.000 0.138 1.3260e+04 1.9000e+03 Barreau:1983ht + 6 12 0.400 36.000 0.142 1.2450e+04 1.9000e+03 Barreau:1983ht + 6 12 0.400 36.000 0.147 1.3530e+04 1.9600e+03 Barreau:1983ht + 6 12 0.400 36.000 0.152 1.1870e+04 1.9400e+03 Barreau:1983ht + 6 12 0.400 36.000 0.158 1.0200e+04 1.9200e+03 Barreau:1983ht + 6 12 0.401 60.000 0.009 1.0500e+03 4.0000e+01 Barreau:1983ht + 6 12 0.401 60.000 0.013 4.4400e+03 1.0000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.018 4.7100e+03 1.0000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.024 4.2000e+03 9.0000e+01 Barreau:1983ht + 6 12 0.401 60.000 0.029 6.1500e+03 1.2000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.034 5.8300e+03 1.1000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.038 6.9400e+03 1.3000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.043 7.8800e+03 1.4000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.049 8.9100e+03 1.6000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.053 1.0170e+04 1.8000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.059 1.0980e+04 1.9000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.064 1.1980e+04 2.0000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.069 1.2940e+04 2.2000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.073 1.3590e+04 2.4000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.079 1.3680e+04 2.5000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.084 1.4260e+04 2.7000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.088 1.4610e+04 2.7000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.093 1.4300e+04 2.7000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.099 1.3830e+04 2.8000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.103 1.3420e+04 2.8000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.108 1.2540e+04 2.7000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.114 1.2050e+04 2.6000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.118 1.1140e+04 2.4000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.123 1.0350e+04 2.3000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.129 9.1100e+03 2.2000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.134 8.2800e+03 2.1000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.139 7.5300e+03 2.0000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.143 6.8000e+03 1.9000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.148 6.2700e+03 1.8000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.153 5.6400e+03 1.7000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.159 5.1400e+03 1.6000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.164 4.7400e+03 1.6000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.169 4.4100e+03 1.5000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.173 4.1500e+03 1.5000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.178 3.8400e+03 1.5000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.183 3.6900e+03 1.5000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.189 3.5200e+03 1.5000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.194 3.4500e+03 1.5000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.199 3.4300e+03 1.5000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.203 3.4500e+03 1.6000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.208 3.4200e+03 1.7000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.213 3.4900e+03 1.8000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.218 3.6500e+03 1.9000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.224 3.7700e+03 2.1000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.229 3.8800e+03 2.2000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.234 4.0400e+03 2.4000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.238 4.2300e+03 2.6000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.243 4.4200e+03 2.8000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.248 4.5700e+03 3.1000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.254 4.7800e+03 3.4000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.259 5.0800e+03 3.7000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.264 5.1700e+03 4.1000e+02 Barreau:1983ht + 6 12 0.401 60.000 0.269 5.1100e+03 4.4000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.007 8.3000e+02 3.0000e+01 Barreau:1983ht + 6 12 0.440 60.000 0.013 1.2100e+03 4.0000e+01 Barreau:1983ht + 6 12 0.440 60.000 0.018 1.3200e+03 3.0000e+01 Barreau:1983ht + 6 12 0.440 60.000 0.022 1.7700e+03 3.0000e+01 Barreau:1983ht + 6 12 0.440 60.000 0.028 2.9600e+03 5.0000e+01 Barreau:1983ht + 6 12 0.440 60.000 0.033 3.1400e+03 6.0000e+01 Barreau:1983ht + 6 12 0.440 60.000 0.037 3.6400e+03 6.0000e+01 Barreau:1983ht + 6 12 0.440 60.000 0.043 4.3600e+03 7.0000e+01 Barreau:1983ht + 6 12 0.440 60.000 0.048 4.9400e+03 8.0000e+01 Barreau:1983ht + 6 12 0.440 60.000 0.052 5.8000e+03 9.0000e+01 Barreau:1983ht + 6 12 0.440 60.000 0.058 6.5300e+03 1.0000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.062 7.4400e+03 1.2000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.068 8.0900e+03 1.3000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.072 8.9200e+03 1.4000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.077 9.4700e+03 1.5000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.083 9.9500e+03 1.6000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.087 1.0260e+04 1.7000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.092 1.0760e+04 1.8000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.098 1.0920e+04 1.9000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.102 1.1230e+04 2.0000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.107 1.1070e+04 2.0000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.113 1.0810e+04 2.0000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.117 1.0590e+04 2.0000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.122 1.0170e+04 2.1000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.128 9.6400e+03 2.0000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.133 8.8100e+03 2.0000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.138 8.3800e+03 2.0000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.142 7.5600e+03 1.9000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.147 7.0100e+03 1.8000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.152 6.2900e+03 1.6000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.158 5.2900e+03 1.5000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.163 5.3600e+03 2.0000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.168 4.7300e+03 1.5000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.172 4.4100e+03 1.3000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.177 3.9000e+03 1.3000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.182 3.5500e+03 1.2000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.188 3.5500e+03 1.2000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.193 3.2500e+03 1.1000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.198 3.3800e+03 1.1000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.203 3.2800e+03 1.1000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.207 3.1600e+03 1.1000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.212 3.2000e+03 1.1000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.217 3.2300e+03 1.2000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.223 3.2500e+03 1.2000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.228 3.2800e+03 1.2000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.233 3.3800e+03 1.3000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.237 3.4900e+03 1.4000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.242 3.6800e+03 1.5000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.247 3.7600e+03 1.5000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.253 3.9000e+03 1.6000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.258 3.9900e+03 1.8000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.263 4.1000e+03 1.9000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.268 4.2600e+03 2.0000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.273 4.3800e+03 2.2000e+02 Barreau:1983ht + 6 12 0.440 60.000 0.278 4.5400e+03 2.4000e+02 Barreau:1983ht + 6 12 0.480 36.000 0.013 1.0170e+05 3.3800e+03 Barreau:1983ht + 6 12 0.480 36.000 0.018 8.2540e+04 2.8800e+03 Barreau:1983ht + 6 12 0.480 36.000 0.022 6.2480e+04 2.3800e+03 Barreau:1983ht + 6 12 0.480 36.000 0.028 6.0700e+04 2.3600e+03 Barreau:1983ht + 6 12 0.480 36.000 0.033 7.4870e+04 2.7900e+03 Barreau:1983ht + 6 12 0.480 36.000 0.037 7.6930e+04 2.8800e+03 Barreau:1983ht + 6 12 0.480 36.000 0.043 8.2520e+04 2.8200e+03 Barreau:1983ht + 6 12 0.480 36.000 0.048 8.6860e+04 2.9700e+03 Barreau:1983ht + 6 12 0.480 36.000 0.052 9.0870e+04 3.1300e+03 Barreau:1983ht + 6 12 0.480 36.000 0.058 9.0590e+04 3.1800e+03 Barreau:1983ht + 6 12 0.480 36.000 0.062 8.8260e+04 3.1500e+03 Barreau:1983ht + 6 12 0.480 36.000 0.068 8.6560e+04 3.1300e+03 Barreau:1983ht + 6 12 0.480 36.000 0.072 8.0110e+04 2.9700e+03 Barreau:1983ht + 6 12 0.480 36.000 0.077 7.4390e+04 2.8200e+03 Barreau:1983ht + 6 12 0.480 36.000 0.083 6.8270e+04 2.6600e+03 Barreau:1983ht + 6 12 0.480 36.000 0.087 6.2230e+04 2.4900e+03 Barreau:1983ht + 6 12 0.480 36.000 0.092 5.5530e+04 2.2900e+03 Barreau:1983ht + 6 12 0.480 36.000 0.098 4.8520e+04 2.0900e+03 Barreau:1983ht + 6 12 0.480 36.000 0.102 4.2720e+04 1.9100e+03 Barreau:1983ht + 6 12 0.480 36.000 0.107 3.6610e+04 1.7300e+03 Barreau:1983ht + 6 12 0.480 36.000 0.113 3.2870e+04 1.6100e+03 Barreau:1983ht + 6 12 0.480 36.000 0.117 2.8140e+04 1.4600e+03 Barreau:1983ht + 6 12 0.480 36.000 0.122 2.4910e+04 1.3600e+03 Barreau:1983ht + 6 12 0.480 36.000 0.128 2.2050e+04 1.2400e+03 Barreau:1983ht + 6 12 0.480 36.000 0.133 1.9570e+04 1.1600e+03 Barreau:1983ht + 6 12 0.480 36.000 0.138 1.7090e+04 1.2300e+03 Barreau:1983ht + 6 12 0.480 36.000 0.142 1.4850e+04 1.1500e+03 Barreau:1983ht + 6 12 0.480 36.000 0.147 1.4320e+04 1.1300e+03 Barreau:1983ht + 6 12 0.480 36.000 0.152 1.2820e+04 1.0900e+03 Barreau:1983ht + 6 12 0.480 36.000 0.158 1.1860e+04 1.0600e+03 Barreau:1983ht + 6 12 0.480 36.000 0.163 1.1580e+04 1.0500e+03 Barreau:1983ht + 6 12 0.480 36.000 0.168 1.1460e+04 1.0500e+03 Barreau:1983ht + 6 12 0.480 36.000 0.172 1.1510e+04 1.0600e+03 Barreau:1983ht + 6 12 0.480 36.000 0.177 1.1320e+04 1.0600e+03 Barreau:1983ht + 6 12 0.480 36.000 0.182 1.0280e+04 1.0400e+03 Barreau:1983ht + 6 12 0.480 36.000 0.188 9.8700e+03 1.0400e+03 Barreau:1983ht + 6 12 0.480 36.000 0.193 9.1000e+03 1.0300e+03 Barreau:1983ht + 6 12 0.480 36.000 0.198 9.8700e+03 9.6000e+02 Barreau:1983ht + 6 12 0.480 36.000 0.203 1.0450e+04 9.9000e+02 Barreau:1983ht + 6 12 0.480 36.000 0.207 1.1760e+04 1.1300e+03 Barreau:1983ht + 6 12 0.480 36.000 0.212 1.2070e+04 1.1700e+03 Barreau:1983ht + 6 12 0.480 36.000 0.217 1.2000e+04 1.1900e+03 Barreau:1983ht + 6 12 0.480 36.000 0.223 1.2410e+04 1.2400e+03 Barreau:1983ht + 6 12 0.480 36.000 0.228 1.3280e+04 1.3000e+03 Barreau:1983ht + 6 12 0.480 36.000 0.233 1.3460e+04 1.3500e+03 Barreau:1983ht + 6 12 0.480 36.000 0.237 1.3960e+04 1.4100e+03 Barreau:1983ht + 6 12 0.480 36.000 0.242 1.3920e+04 1.4500e+03 Barreau:1983ht + 6 12 0.480 36.000 0.247 1.4660e+04 1.5200e+03 Barreau:1983ht + 6 12 0.480 36.000 0.253 1.5660e+04 1.6100e+03 Barreau:1983ht + 6 12 0.480 36.000 0.258 1.4070e+04 1.6100e+03 Barreau:1983ht + 6 12 0.480 36.000 0.263 1.5270e+04 1.7100e+03 Barreau:1983ht + 6 12 0.480 36.000 0.268 1.4210e+04 1.7400e+03 Barreau:1983ht + 6 12 0.480 36.000 0.273 1.6380e+04 1.9800e+03 Barreau:1983ht + 6 12 0.480 36.000 0.278 1.6540e+04 1.9700e+03 Barreau:1983ht + 6 12 0.480 36.000 0.282 1.6230e+04 2.0400e+03 Barreau:1983ht + 6 12 0.480 36.000 0.287 1.6310e+04 2.1400e+03 Barreau:1983ht + 6 12 0.480 36.000 0.292 1.6800e+04 2.2600e+03 Barreau:1983ht + 6 12 0.480 36.000 0.297 1.5240e+04 2.2400e+03 Barreau:1983ht + 6 12 0.480 36.000 0.302 1.6810e+04 2.4200e+03 Barreau:1983ht + 6 12 0.480 36.000 0.307 1.9220e+04 2.7200e+03 Barreau:1983ht + 6 12 0.480 60.000 0.012 3.8000e+02 1.0000e+01 Barreau:1983ht + 6 12 0.480 60.000 0.017 3.5000e+02 2.0000e+01 Barreau:1983ht + 6 12 0.480 60.000 0.022 4.9000e+02 2.0000e+01 Barreau:1983ht + 6 12 0.480 60.000 0.027 1.2600e+03 3.0000e+01 Barreau:1983ht + 6 12 0.480 60.000 0.032 1.7000e+03 3.0000e+01 Barreau:1983ht + 6 12 0.480 60.000 0.037 1.7700e+03 4.0000e+01 Barreau:1983ht + 6 12 0.480 60.000 0.042 2.2500e+03 4.0000e+01 Barreau:1983ht + 6 12 0.480 60.000 0.047 2.6000e+03 5.0000e+01 Barreau:1983ht + 6 12 0.480 60.000 0.052 3.1400e+03 6.0000e+01 Barreau:1983ht + 6 12 0.480 60.000 0.057 3.6000e+03 6.0000e+01 Barreau:1983ht + 6 12 0.480 60.000 0.062 4.1500e+03 7.0000e+01 Barreau:1983ht + 6 12 0.480 60.000 0.067 4.7800e+03 8.0000e+01 Barreau:1983ht + 6 12 0.480 60.000 0.072 5.2700e+03 9.0000e+01 Barreau:1983ht + 6 12 0.480 60.000 0.077 5.7400e+03 1.0000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.082 6.2600e+03 1.0000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.087 6.6600e+03 1.1000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.092 6.9900e+03 1.2000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.097 7.5100e+03 1.3000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.102 7.6900e+03 1.3000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.107 7.8900e+03 1.4000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.112 8.1900e+03 1.4000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.117 8.0100e+03 1.5000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.122 8.1200e+03 1.5000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.127 8.1500e+03 1.5000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.132 7.9300e+03 1.5000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.137 7.6500e+03 1.5000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.142 7.1400e+03 1.5000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.147 6.6400e+03 1.4000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.152 6.2900e+03 1.4000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.157 5.8600e+03 1.4000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.162 5.5000e+03 1.3000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.167 5.1700e+03 1.2000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.172 4.6800e+03 1.1000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.177 4.3300e+03 1.1000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.182 3.9900e+03 1.1000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.187 3.6800e+03 1.0000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.192 3.4100e+03 1.0000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.197 3.2600e+03 9.0000e+01 Barreau:1983ht + 6 12 0.480 60.000 0.202 3.1000e+03 9.0000e+01 Barreau:1983ht + 6 12 0.480 60.000 0.207 2.9600e+03 9.0000e+01 Barreau:1983ht + 6 12 0.480 60.000 0.212 2.8500e+03 9.0000e+01 Barreau:1983ht + 6 12 0.480 60.000 0.217 2.7600e+03 9.0000e+01 Barreau:1983ht + 6 12 0.480 60.000 0.222 2.6900e+03 9.0000e+01 Barreau:1983ht + 6 12 0.480 60.000 0.227 2.7100e+03 9.0000e+01 Barreau:1983ht + 6 12 0.480 60.000 0.232 2.7000e+03 9.0000e+01 Barreau:1983ht + 6 12 0.480 60.000 0.237 2.7900e+03 9.0000e+01 Barreau:1983ht + 6 12 0.480 60.000 0.242 2.7700e+03 1.0000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.247 2.9400e+03 1.0000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.252 3.0700e+03 1.1000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.257 3.1800e+03 1.1000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.262 3.2100e+03 1.2000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.267 3.3000e+03 1.2000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.272 3.3300e+03 1.4000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.277 3.4700e+03 1.4000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.282 3.6500e+03 1.4000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.287 3.7000e+03 1.5000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.292 3.8200e+03 1.7000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.297 4.0400e+03 1.7000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.302 4.0000e+03 1.8000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.307 4.1100e+03 1.9000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.312 4.3400e+03 2.1000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.317 4.3800e+03 2.2000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.322 4.2600e+03 2.4000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.327 4.4500e+03 2.6000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.332 4.5500e+03 2.9000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.337 4.5300e+03 3.1000e+02 Barreau:1983ht + 6 12 0.480 60.000 0.342 4.6200e+03 4.0000e+02 Barreau:1983ht + 6 12 0.500 60.000 0.020 1.7900e+02 1.9000e+01 Whitney:1974hr + 6 12 0.500 60.000 0.026 1.0200e+02 1.3000e+01 Whitney:1974hr + 6 12 0.500 60.000 0.030 5.7500e+02 5.2000e+01 Whitney:1974hr + 6 12 0.500 60.000 0.036 1.3800e+03 1.1000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.040 1.2000e+03 9.0000e+01 Whitney:1974hr + 6 12 0.500 60.000 0.046 9.2100e+02 7.1000e+01 Whitney:1974hr + 6 12 0.500 60.000 0.056 1.2600e+03 7.0000e+01 Whitney:1974hr + 6 12 0.500 60.000 0.060 2.5900e+03 1.3000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.066 2.9900e+03 1.4000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.076 3.7500e+03 1.5000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.086 4.7500e+03 1.9000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.096 5.4600e+03 2.2000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.100 6.2500e+03 2.5000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.105 6.3200e+03 2.6000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.114 7.0900e+03 2.8000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.125 6.9700e+03 2.8000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.135 7.2800e+03 2.9000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.140 6.6100e+03 2.8000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.145 6.9700e+03 2.8000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.155 6.5400e+03 2.6000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.165 5.9100e+03 2.4000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.174 5.2300e+03 2.1000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.184 4.4300e+03 1.8000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.194 3.7900e+03 1.5000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.204 3.3800e+03 1.4000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.214 2.9600e+03 1.4000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.224 2.6400e+03 1.3000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.234 2.6100e+03 1.4000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.244 2.4300e+03 1.5000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.253 2.5500e+03 1.6000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.263 2.5400e+03 1.6000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.273 2.8800e+03 1.9000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.283 2.9400e+03 2.1000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.293 2.9400e+03 2.1000e+02 Whitney:1974hr + 6 12 0.500 60.000 0.303 3.4200e+03 2.4000e+02 Whitney:1974hr + 6 12 0.519 60.000 0.011 2.5000e+02 2.0000e+01 Barreau:1983ht + 6 12 0.519 60.000 0.021 9.0000e+01 1.0000e+01 Barreau:1983ht + 6 12 0.519 60.000 0.031 8.2000e+02 3.0000e+01 Barreau:1983ht + 6 12 0.519 60.000 0.041 1.0400e+03 4.0000e+01 Barreau:1983ht + 6 12 0.519 60.000 0.051 1.5900e+03 4.0000e+01 Barreau:1983ht + 6 12 0.519 60.000 0.061 2.3000e+03 5.0000e+01 Barreau:1983ht + 6 12 0.519 60.000 0.071 3.1300e+03 7.0000e+01 Barreau:1983ht + 6 12 0.519 60.000 0.081 3.8300e+03 8.0000e+01 Barreau:1983ht + 6 12 0.519 60.000 0.091 4.6600e+03 9.0000e+01 Barreau:1983ht + 6 12 0.519 60.000 0.101 5.3000e+03 1.0000e+02 Barreau:1983ht + 6 12 0.519 60.000 0.111 5.9800e+03 1.2000e+02 Barreau:1983ht + 6 12 0.519 60.000 0.121 6.2800e+03 1.2000e+02 Barreau:1983ht + 6 12 0.519 60.000 0.131 6.4000e+03 1.2000e+02 Barreau:1983ht + 6 12 0.519 60.000 0.141 6.4400e+03 1.3000e+02 Barreau:1983ht + 6 12 0.519 60.000 0.151 6.0600e+03 1.3000e+02 Barreau:1983ht + 6 12 0.519 60.000 0.161 5.4900e+03 1.2000e+02 Barreau:1983ht + 6 12 0.519 60.000 0.171 4.9100e+03 1.2000e+02 Barreau:1983ht + 6 12 0.519 60.000 0.181 4.2800e+03 1.1000e+02 Barreau:1983ht + 6 12 0.519 60.000 0.191 3.5300e+03 1.0000e+02 Barreau:1983ht + 6 12 0.519 60.000 0.201 3.1900e+03 1.0000e+02 Barreau:1983ht + 6 12 0.519 60.000 0.211 2.8800e+03 9.0000e+01 Barreau:1983ht + 6 12 0.519 60.000 0.221 2.5100e+03 8.0000e+01 Barreau:1983ht + 6 12 0.519 60.000 0.231 2.3600e+03 8.0000e+01 Barreau:1983ht + 6 12 0.519 60.000 0.241 2.3100e+03 8.0000e+01 Barreau:1983ht + 6 12 0.519 60.000 0.251 2.4300e+03 8.0000e+01 Barreau:1983ht + 6 12 0.519 60.000 0.261 2.6200e+03 9.0000e+01 Barreau:1983ht + 6 12 0.519 60.000 0.271 2.6500e+03 1.0000e+02 Barreau:1983ht + 6 12 0.519 60.000 0.281 3.0900e+03 1.0000e+02 Barreau:1983ht + 6 12 0.519 60.000 0.291 3.2000e+03 1.1000e+02 Barreau:1983ht + 6 12 0.519 60.000 0.301 3.4700e+03 1.2000e+02 Barreau:1983ht + 6 12 0.519 60.000 0.311 3.5600e+03 1.2000e+02 Barreau:1983ht + 6 12 0.519 60.000 0.321 3.8100e+03 1.4000e+02 Barreau:1983ht + 6 12 0.519 60.000 0.331 3.8500e+03 1.5000e+02 Barreau:1983ht + 6 12 0.519 60.000 0.341 3.8400e+03 1.7000e+02 Barreau:1983ht + 6 12 0.519 60.000 0.351 4.1300e+03 2.0000e+02 Barreau:1983ht + 6 12 0.519 60.000 0.361 4.0000e+03 2.3000e+02 Barreau:1983ht + 6 12 0.519 60.000 0.371 3.9200e+03 2.7000e+02 Barreau:1983ht + 6 12 0.560 36.000 0.013 5.2550e+04 1.6500e+03 Barreau:1983ht + 6 12 0.560 36.000 0.022 3.0650e+04 1.0900e+03 Barreau:1983ht + 6 12 0.560 36.000 0.033 3.5030e+04 1.2500e+03 Barreau:1983ht + 6 12 0.560 36.000 0.043 4.4090e+04 1.5500e+03 Barreau:1983ht + 6 12 0.560 36.000 0.052 5.1190e+04 2.0000e+03 Barreau:1983ht + 6 12 0.560 36.000 0.062 5.5510e+04 2.1700e+03 Barreau:1983ht + 6 12 0.560 36.000 0.072 5.8570e+04 2.3000e+03 Barreau:1983ht + 6 12 0.560 36.000 0.083 5.5270e+04 2.2500e+03 Barreau:1983ht + 6 12 0.560 36.000 0.092 5.3500e+04 2.2200e+03 Barreau:1983ht + 6 12 0.560 36.000 0.102 4.5030e+04 2.0000e+03 Barreau:1983ht + 6 12 0.560 36.000 0.113 3.7340e+04 1.7700e+03 Barreau:1983ht + 6 12 0.560 36.000 0.122 3.0420e+04 1.3500e+03 Barreau:1983ht + 6 12 0.560 36.000 0.133 2.3200e+04 1.1300e+03 Barreau:1983ht + 6 12 0.560 36.000 0.142 1.8790e+04 1.0400e+03 Barreau:1983ht + 6 12 0.560 36.000 0.152 1.5700e+04 9.4000e+02 Barreau:1983ht + 6 12 0.560 36.000 0.163 1.2760e+04 8.4000e+02 Barreau:1983ht + 6 12 0.560 36.000 0.172 1.0740e+04 7.6000e+02 Barreau:1983ht + 6 12 0.560 36.000 0.182 9.1500e+03 7.1000e+02 Barreau:1983ht + 6 12 0.560 36.000 0.193 9.9900e+03 7.3000e+02 Barreau:1983ht + 6 12 0.560 36.000 0.203 9.5600e+03 7.2000e+02 Barreau:1983ht + 6 12 0.560 36.000 0.212 9.8300e+03 6.3000e+02 Barreau:1983ht + 6 12 0.560 36.000 0.223 9.7600e+03 6.7000e+02 Barreau:1983ht + 6 12 0.560 36.000 0.233 1.0560e+04 7.1000e+02 Barreau:1983ht + 6 12 0.560 36.000 0.242 1.0890e+04 7.4000e+02 Barreau:1983ht + 6 12 0.560 36.000 0.253 1.2560e+04 8.1000e+02 Barreau:1983ht + 6 12 0.560 36.000 0.263 1.1700e+04 8.2000e+02 Barreau:1983ht + 6 12 0.560 36.000 0.273 1.3180e+04 9.0000e+02 Barreau:1983ht + 6 12 0.560 36.000 0.282 1.4010e+04 9.2000e+02 Barreau:1983ht + 6 12 0.560 36.000 0.292 1.4230e+04 1.0500e+03 Barreau:1983ht + 6 12 0.560 36.000 0.302 1.3360e+04 1.0800e+03 Barreau:1983ht + 6 12 0.560 36.000 0.312 1.4040e+04 1.1600e+03 Barreau:1983ht + 6 12 0.560 36.000 0.323 1.3960e+04 1.2300e+03 Barreau:1983ht + 6 12 0.560 36.000 0.333 1.4960e+04 1.3500e+03 Barreau:1983ht + 6 12 0.560 36.000 0.343 1.4280e+04 1.4600e+03 Barreau:1983ht + 6 12 0.560 36.000 0.352 1.4780e+04 1.5900e+03 Barreau:1983ht + 6 12 0.560 36.000 0.362 1.3780e+04 1.6800e+03 Barreau:1983ht + 6 12 0.560 36.000 0.372 1.4170e+04 1.8600e+03 Barreau:1983ht + 6 12 0.560 36.000 0.383 1.2780e+04 1.9200e+03 Barreau:1983ht + 6 12 0.560 60.000 0.013 3.0000e+01 1.0000e+01 Barreau:1983ht + 6 12 0.560 60.000 0.022 3.0000e+01 1.0000e+01 Barreau:1983ht + 6 12 0.560 60.000 0.033 3.2000e+02 2.0000e+01 Barreau:1983ht + 6 12 0.560 60.000 0.043 4.8000e+02 2.0000e+01 Barreau:1983ht + 6 12 0.560 60.000 0.052 7.5000e+02 4.0000e+01 Barreau:1983ht + 6 12 0.560 60.000 0.062 1.1700e+03 6.0000e+01 Barreau:1983ht + 6 12 0.560 60.000 0.072 1.6200e+03 7.0000e+01 Barreau:1983ht + 6 12 0.560 60.000 0.083 2.2100e+03 9.0000e+01 Barreau:1983ht + 6 12 0.560 60.000 0.092 2.7800e+03 1.1000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.102 3.4300e+03 1.4000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.113 3.9300e+03 1.5000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.122 4.5400e+03 1.6000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.133 4.7600e+03 1.7000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.142 4.9600e+03 1.9000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.152 4.9500e+03 1.9000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.163 4.8200e+03 1.9000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.172 4.6700e+03 1.9000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.182 4.2600e+03 1.8000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.193 3.9700e+03 1.7000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.203 3.5100e+03 1.6000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.212 2.9300e+03 1.3000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.223 2.5600e+03 1.4000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.233 2.3800e+03 1.3000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.242 2.1200e+03 1.2000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.253 2.1000e+03 1.2000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.263 2.0500e+03 1.2000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.273 2.2100e+03 1.3000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.282 2.2400e+03 1.2000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.292 2.3300e+03 1.4000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.302 2.5200e+03 1.5000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.312 2.7600e+03 1.6000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.323 2.8200e+03 1.7000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.333 3.1100e+03 1.8000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.343 3.2400e+03 2.0000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.352 3.1000e+03 2.1000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.362 3.4200e+03 2.3000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.372 3.6300e+03 2.6000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.383 3.4000e+03 2.6000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.393 3.3600e+03 3.0000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.403 3.2800e+03 3.3000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.412 3.1300e+03 3.6000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.422 2.8900e+03 4.2000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.432 2.8600e+03 4.9000e+02 Barreau:1983ht + 6 12 0.560 60.000 0.443 2.4900e+03 5.9000e+02 Barreau:1983ht + 6 12 0.560 145.000 0.193 1.0000e+01 2.0000e+00 Barreau:1983ht + 6 12 0.560 145.000 0.203 1.6000e+01 3.0000e+00 Barreau:1983ht + 6 12 0.560 145.000 0.212 2.3000e+01 1.0000e+00 Barreau:1983ht + 6 12 0.560 145.000 0.223 3.4000e+01 2.0000e+00 Barreau:1983ht + 6 12 0.560 145.000 0.233 4.9000e+01 3.0000e+00 Barreau:1983ht + 6 12 0.560 145.000 0.242 6.6000e+01 3.0000e+00 Barreau:1983ht + 6 12 0.560 145.000 0.253 9.2000e+01 4.0000e+00 Barreau:1983ht + 6 12 0.560 145.000 0.263 1.2300e+02 5.0000e+00 Barreau:1983ht + 6 12 0.560 145.000 0.273 1.5100e+02 7.0000e+00 Barreau:1983ht + 6 12 0.560 145.000 0.282 1.7100e+02 7.0000e+00 Barreau:1983ht + 6 12 0.560 145.000 0.292 1.8500e+02 1.0000e+01 Barreau:1983ht + 6 12 0.560 145.000 0.302 2.1100e+02 1.1000e+01 Barreau:1983ht + 6 12 0.560 145.000 0.312 2.2000e+02 1.2000e+01 Barreau:1983ht + 6 12 0.560 145.000 0.323 2.3400e+02 1.3000e+01 Barreau:1983ht + 6 12 0.560 145.000 0.333 2.4100e+02 1.3000e+01 Barreau:1983ht + 6 12 0.560 145.000 0.343 2.3600e+02 1.4000e+01 Barreau:1983ht + 6 12 0.560 145.000 0.352 2.1700e+02 1.3000e+01 Barreau:1983ht + 6 12 0.560 145.000 0.362 2.0700e+02 1.4000e+01 Barreau:1983ht + 6 12 0.560 145.000 0.372 2.0500e+02 1.4000e+01 Barreau:1983ht + 6 12 0.560 145.000 0.383 2.1500e+02 1.4000e+01 Barreau:1983ht + 6 12 0.560 145.000 0.393 2.3500e+02 1.7000e+01 Barreau:1983ht + 6 12 0.560 145.000 0.403 2.5800e+02 1.9000e+01 Barreau:1983ht + 6 12 0.560 145.000 0.412 2.9000e+02 2.0000e+01 Barreau:1983ht + 6 12 0.560 145.000 0.422 3.3100e+02 2.5000e+01 Barreau:1983ht + 6 12 0.560 145.000 0.432 3.6100e+02 2.8000e+01 Barreau:1983ht + 6 12 0.560 145.000 0.443 4.0600e+02 3.4000e+01 Barreau:1983ht + 6 12 0.560 145.000 0.453 4.0100e+02 3.7000e+01 Barreau:1983ht + 6 12 0.560 145.000 0.463 4.2100e+02 4.3000e+01 Barreau:1983ht + 6 12 0.620 36.000 0.013 1.6870e+04 5.9000e+02 Barreau:1983ht + 6 12 0.620 36.000 0.022 1.8290e+04 6.6000e+02 Barreau:1983ht + 6 12 0.620 36.000 0.033 1.8310e+04 6.9000e+02 Barreau:1983ht + 6 12 0.620 36.000 0.043 2.5880e+04 9.3000e+02 Barreau:1983ht + 6 12 0.620 36.000 0.052 3.0210e+04 1.0800e+03 Barreau:1983ht + 6 12 0.620 36.000 0.062 3.5980e+04 1.2700e+03 Barreau:1983ht + 6 12 0.620 36.000 0.072 4.1130e+04 1.3700e+03 Barreau:1983ht + 6 12 0.620 36.000 0.083 4.2830e+04 1.4500e+03 Barreau:1983ht + 6 12 0.620 36.000 0.092 4.2220e+04 1.4600e+03 Barreau:1983ht + 6 12 0.620 36.000 0.102 3.9590e+04 1.4100e+03 Barreau:1983ht + 6 12 0.620 36.000 0.113 3.6340e+04 1.3500e+03 Barreau:1983ht + 6 12 0.620 36.000 0.122 3.0800e+04 1.2000e+03 Barreau:1983ht + 6 12 0.620 36.000 0.133 2.6490e+04 1.0800e+03 Barreau:1983ht + 6 12 0.620 36.000 0.142 2.1550e+04 9.3000e+02 Barreau:1983ht + 6 12 0.620 36.000 0.152 1.7850e+04 8.1000e+02 Barreau:1983ht + 6 12 0.620 36.000 0.163 1.4580e+04 7.1000e+02 Barreau:1983ht + 6 12 0.620 36.000 0.172 1.2240e+04 6.3000e+02 Barreau:1983ht + 6 12 0.620 36.000 0.182 1.0630e+04 5.6000e+02 Barreau:1983ht + 6 12 0.620 36.000 0.193 9.7600e+03 5.2000e+02 Barreau:1983ht + 6 12 0.620 36.000 0.203 9.1000e+03 5.7000e+02 Barreau:1983ht + 6 12 0.620 36.000 0.212 8.3800e+03 5.5000e+02 Barreau:1983ht + 6 12 0.620 36.000 0.223 8.5400e+03 5.5000e+02 Barreau:1983ht + 6 12 0.620 36.000 0.233 9.1500e+03 5.8000e+02 Barreau:1983ht + 6 12 0.620 36.000 0.242 9.7300e+03 5.9000e+02 Barreau:1983ht + 6 12 0.620 36.000 0.253 9.8800e+03 6.0000e+02 Barreau:1983ht + 6 12 0.620 36.000 0.263 1.0880e+04 6.4000e+02 Barreau:1983ht + 6 12 0.620 36.000 0.273 1.1160e+04 6.1000e+02 Barreau:1983ht + 6 12 0.620 36.000 0.282 1.1500e+04 7.0000e+02 Barreau:1983ht + 6 12 0.620 36.000 0.292 1.2170e+04 7.4000e+02 Barreau:1983ht + 6 12 0.620 36.000 0.302 1.2420e+04 7.7000e+02 Barreau:1983ht + 6 12 0.620 36.000 0.312 1.2290e+04 7.9000e+02 Barreau:1983ht + 6 12 0.620 36.000 0.323 1.3420e+04 8.5000e+02 Barreau:1983ht + 6 12 0.620 36.000 0.333 1.3190e+04 8.8000e+02 Barreau:1983ht + 6 12 0.620 36.000 0.343 1.3440e+04 8.6000e+02 Barreau:1983ht + 6 12 0.620 36.000 0.352 1.2860e+04 9.7000e+02 Barreau:1983ht + 6 12 0.620 36.000 0.362 1.2710e+04 1.0100e+03 Barreau:1983ht + 6 12 0.620 36.000 0.372 1.1580e+04 1.0300e+03 Barreau:1983ht + 6 12 0.620 36.000 0.383 1.2510e+04 1.1200e+03 Barreau:1983ht + 6 12 0.620 36.000 0.393 1.2170e+04 1.1800e+03 Barreau:1983ht + 6 12 0.620 36.000 0.403 1.1130e+04 1.2100e+03 Barreau:1983ht + 6 12 0.620 36.000 0.412 1.1570e+04 1.3200e+03 Barreau:1983ht + 6 12 0.620 36.000 0.422 9.9900e+03 1.3700e+03 Barreau:1983ht + 6 12 0.620 36.000 0.432 9.7200e+03 1.5000e+03 Barreau:1983ht + 6 12 0.620 36.000 0.443 1.0150e+04 1.6100e+03 Barreau:1983ht + 6 12 0.620 60.000 0.037 9.0000e+01 1.0000e+01 Barreau:1983ht + 6 12 0.620 60.000 0.048 1.5000e+02 1.0000e+01 Barreau:1983ht + 6 12 0.620 60.000 0.058 2.6000e+02 1.0000e+01 Barreau:1983ht + 6 12 0.620 60.000 0.068 4.3000e+02 2.0000e+01 Barreau:1983ht + 6 12 0.620 60.000 0.077 6.6000e+02 3.0000e+01 Barreau:1983ht + 6 12 0.620 60.000 0.087 9.8000e+02 4.0000e+01 Barreau:1983ht + 6 12 0.620 60.000 0.098 1.3200e+03 5.0000e+01 Barreau:1983ht + 6 12 0.620 60.000 0.107 1.7000e+03 6.0000e+01 Barreau:1983ht + 6 12 0.620 60.000 0.117 2.0100e+03 8.0000e+01 Barreau:1983ht + 6 12 0.620 60.000 0.128 2.4800e+03 1.0000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.138 2.9100e+03 1.1000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.147 3.1100e+03 1.2000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.158 3.3500e+03 1.3000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.168 3.6700e+03 1.4000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.177 3.6500e+03 1.5000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.188 3.5700e+03 1.4000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.198 3.4900e+03 1.5000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.207 3.1400e+03 1.4000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.217 2.8400e+03 1.3000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.228 2.5100e+03 1.2000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.237 2.3800e+03 1.2000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.247 2.1600e+03 1.1000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.258 1.9700e+03 1.0000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.268 1.8700e+03 9.0000e+01 Barreau:1983ht + 6 12 0.620 60.000 0.278 1.6700e+03 1.0000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.287 1.6700e+03 1.0000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.297 1.7900e+03 1.0000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.307 1.8300e+03 1.0000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.318 1.8900e+03 1.1000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.328 2.1500e+03 1.2000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.338 2.2700e+03 1.1000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.347 2.3200e+03 1.3000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.357 2.3700e+03 1.3000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.367 2.5800e+03 1.4000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.378 2.6400e+03 1.5000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.388 2.8000e+03 1.6000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.398 2.6800e+03 1.7000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.407 2.7500e+03 1.8000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.417 2.5900e+03 1.9000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.427 2.6900e+03 2.0000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.438 2.6800e+03 2.1000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.448 2.4300e+03 2.7000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.458 2.1800e+03 2.9000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.468 2.3000e+03 3.2000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.477 2.0000e+03 3.1000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.487 2.1700e+03 3.7000e+02 Barreau:1983ht + 6 12 0.620 60.000 0.497 1.8900e+03 4.3000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.013 3.7700e+03 2.4000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.022 8.2000e+03 3.9000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.033 1.1500e+04 5.0000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.043 1.4740e+04 6.1000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.052 1.8490e+04 7.4000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.062 2.3630e+04 9.1000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.072 2.6870e+04 1.0200e+03 Barreau:1983ht + 6 12 0.680 36.000 0.083 2.9420e+04 1.1200e+03 Barreau:1983ht + 6 12 0.680 36.000 0.092 3.1890e+04 1.2100e+03 Barreau:1983ht + 6 12 0.680 36.000 0.102 3.1620e+04 1.2300e+03 Barreau:1983ht + 6 12 0.680 36.000 0.113 3.0230e+04 1.2000e+03 Barreau:1983ht + 6 12 0.680 36.000 0.122 2.8090e+04 1.1500e+03 Barreau:1983ht + 6 12 0.680 36.000 0.133 2.6550e+04 1.0400e+03 Barreau:1983ht + 6 12 0.680 36.000 0.142 2.2520e+04 9.3000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.152 1.9110e+04 8.3000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.163 1.6730e+04 7.6000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.172 1.2990e+04 6.5000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.182 1.1710e+04 6.0000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.193 1.0240e+04 5.5000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.203 9.2600e+03 5.1000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.212 8.3800e+03 4.8000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.223 7.4600e+03 4.5000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.233 8.0100e+03 4.6000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.242 7.9400e+03 4.1000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.253 8.2600e+03 4.2000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.263 8.3800e+03 4.7000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.273 9.1700e+03 5.0000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.282 9.6800e+03 5.2000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.292 1.0210e+04 5.4000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.302 1.0200e+04 5.5000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.312 1.0870e+04 5.8000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.323 1.0930e+04 5.9000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.333 1.1280e+04 5.7000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.343 1.1430e+04 6.4000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.352 1.1700e+04 6.7000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.362 1.1680e+04 6.8000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.372 1.1920e+04 7.1000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.383 1.0860e+04 7.0000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.393 1.0860e+04 7.2000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.403 9.4600e+03 7.1000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.412 9.5000e+03 7.4000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.422 9.0600e+03 7.7000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.432 8.5500e+03 7.9000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.443 8.3500e+03 8.4000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.453 8.3900e+03 8.4000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.463 7.6500e+03 9.3000e+02 Barreau:1983ht + 6 12 0.680 36.000 0.472 7.2000e+03 1.0000e+03 Barreau:1983ht + 6 12 0.680 36.000 0.482 7.2000e+03 1.0900e+03 Barreau:1983ht + 6 12 0.680 36.000 0.492 7.0900e+03 1.2100e+03 Barreau:1983ht + 6 12 0.680 36.000 0.502 7.0500e+03 1.4000e+03 Barreau:1983ht + 6 12 0.680 60.000 0.048 5.0000e+01 1.0000e+01 Barreau:1983ht + 6 12 0.680 60.000 0.058 4.0000e+01 1.0000e+01 Barreau:1983ht + 6 12 0.680 60.000 0.068 1.2000e+02 1.0000e+01 Barreau:1983ht + 6 12 0.680 60.000 0.077 1.6000e+02 2.0000e+01 Barreau:1983ht + 6 12 0.680 60.000 0.087 3.1000e+02 2.0000e+01 Barreau:1983ht + 6 12 0.680 60.000 0.098 4.5000e+02 3.0000e+01 Barreau:1983ht + 6 12 0.680 60.000 0.107 6.1000e+02 4.0000e+01 Barreau:1983ht + 6 12 0.680 60.000 0.117 7.7000e+02 4.0000e+01 Barreau:1983ht + 6 12 0.680 60.000 0.128 1.0200e+03 1.0000e+02 Barreau:1983ht + 6 12 0.680 60.000 0.138 1.2200e+03 5.0000e+01 Barreau:1983ht + 6 12 0.680 60.000 0.147 1.5700e+03 6.0000e+01 Barreau:1983ht + 6 12 0.680 60.000 0.158 1.8300e+03 7.0000e+01 Barreau:1983ht + 6 12 0.680 60.000 0.168 1.9900e+03 8.0000e+01 Barreau:1983ht + 6 12 0.680 60.000 0.177 2.2400e+03 9.0000e+01 Barreau:1983ht + 6 12 0.680 60.000 0.188 2.4000e+03 1.0000e+02 Barreau:1983ht + 6 12 0.680 60.000 0.198 2.5100e+03 1.0000e+02 Barreau:1983ht + 6 12 0.680 60.000 0.207 2.4500e+03 1.0000e+02 Barreau:1983ht + 6 12 0.680 60.000 0.217 2.5300e+03 1.0000e+02 Barreau:1983ht + 6 12 0.680 60.000 0.228 2.4300e+03 1.0000e+02 Barreau:1983ht + 6 12 0.680 60.000 0.237 2.2900e+03 1.0000e+02 Barreau:1983ht + 6 12 0.680 60.000 0.247 2.1300e+03 9.0000e+01 Barreau:1983ht + 6 12 0.680 60.000 0.258 1.9500e+03 9.0000e+01 Barreau:1983ht + 6 12 0.680 60.000 0.268 1.6200e+03 8.0000e+01 Barreau:1983ht + 6 12 0.680 60.000 0.278 1.6000e+03 8.0000e+01 Barreau:1983ht + 6 12 0.680 60.000 0.287 1.4700e+03 8.0000e+01 Barreau:1983ht + 6 12 0.680 60.000 0.297 1.4400e+03 7.0000e+01 Barreau:1983ht + 6 12 0.680 60.000 0.307 1.3900e+03 7.0000e+01 Barreau:1983ht + 6 12 0.680 60.000 0.318 1.5100e+03 8.0000e+01 Barreau:1983ht + 6 12 0.680 60.000 0.328 1.4300e+03 7.0000e+01 Barreau:1983ht + 6 12 0.680 60.000 0.338 1.4600e+03 8.0000e+01 Barreau:1983ht + 6 12 0.680 60.000 0.347 1.5400e+03 8.0000e+01 Barreau:1983ht + 6 12 0.680 60.000 0.357 1.6500e+03 9.0000e+01 Barreau:1983ht + 6 12 0.680 60.000 0.367 1.7400e+03 9.0000e+01 Barreau:1983ht + 6 12 0.680 60.000 0.378 1.7800e+03 1.0000e+02 Barreau:1983ht + 6 12 0.680 60.000 0.388 1.9900e+03 1.0000e+02 Barreau:1983ht + 6 12 0.680 60.000 0.398 1.9800e+03 1.0000e+02 Barreau:1983ht + 6 12 0.680 60.000 0.407 1.9900e+03 1.1000e+02 Barreau:1983ht + 6 12 0.680 60.000 0.417 2.0500e+03 1.2000e+02 Barreau:1983ht + 6 12 0.680 60.000 0.427 2.2200e+03 1.2000e+02 Barreau:1983ht + 6 12 0.680 60.000 0.438 2.0000e+03 1.2000e+02 Barreau:1983ht + 6 12 0.680 60.000 0.448 2.2500e+03 1.3000e+02 Barreau:1983ht + 6 12 0.680 60.000 0.458 2.0800e+03 1.4000e+02 Barreau:1983ht + 6 12 0.680 60.000 0.468 2.1400e+03 1.5000e+02 Barreau:1983ht + 6 12 0.680 60.000 0.477 1.9500e+03 1.5000e+02 Barreau:1983ht + 6 12 0.680 60.000 0.487 2.0300e+03 1.7000e+02 Barreau:1983ht + 6 12 0.680 60.000 0.497 1.7400e+03 1.6000e+02 Barreau:1983ht + 6 12 0.680 60.000 0.507 1.7400e+03 1.8000e+02 Barreau:1983ht + 6 12 0.680 60.000 0.517 1.6800e+03 2.0000e+02 Barreau:1983ht + 6 12 0.680 60.000 0.527 1.5800e+03 2.3000e+02 Barreau:1983ht + 6 12 0.680 60.000 0.537 1.4800e+03 2.5000e+02 Barreau:1983ht + 6 12 0.680 60.000 0.547 1.4800e+03 3.0000e+02 Barreau:1983ht + 6 12 0.730 37.100 0.005 1.1174e+03 4.2759e+01 O'Connell:1987ag + 6 12 0.730 37.100 0.015 1.4180e+03 3.7414e+01 O'Connell:1987ag + 6 12 0.730 37.100 0.025 3.6748e+03 6.5014e+01 O'Connell:1987ag + 6 12 0.730 37.100 0.045 7.4353e+03 1.9283e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.055 1.0019e+04 2.2633e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.065 1.2674e+04 2.6096e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.085 1.8846e+04 2.9542e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.095 2.0188e+04 3.0471e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.105 2.1519e+04 2.6191e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.115 2.1858e+04 4.4757e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.125 2.1542e+04 2.8092e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.135 2.0625e+04 3.4395e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.145 1.8881e+04 3.3278e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.165 1.5554e+04 3.2286e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.175 1.2795e+04 2.0623e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.195 9.9127e+03 3.0260e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.205 7.4581e+03 2.5900e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.215 7.6062e+03 2.5459e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.225 6.8892e+03 2.6737e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.235 6.3334e+03 2.4752e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.245 6.0953e+03 2.4339e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.255 6.4939e+03 2.5976e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.265 7.1649e+03 2.6313e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.275 7.0671e+03 2.6520e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.285 7.6411e+03 2.8420e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.295 7.7949e+03 1.9823e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.305 8.5938e+03 3.0396e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.315 8.8331e+03 3.0356e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.325 8.1816e+03 2.9986e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.335 9.6579e+03 2.8874e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.345 9.7302e+03 2.0204e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.365 9.9032e+03 2.1629e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.375 9.5356e+03 3.0291e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.385 9.2973e+03 2.1999e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.395 9.4580e+03 3.1211e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.405 9.0358e+03 2.2700e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.425 8.6668e+03 1.6094e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.435 8.3703e+03 2.2314e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.445 8.1043e+03 2.3677e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.455 8.0652e+03 3.3520e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.465 7.5875e+03 2.0834e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.475 6.6721e+03 2.9563e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.485 6.1654e+03 4.0253e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.495 6.6862e+03 2.5589e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.505 6.0604e+03 3.2902e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.515 6.6416e+03 3.4600e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.525 6.1781e+03 3.5921e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.545 5.3309e+03 3.9896e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.565 4.2407e+03 4.1378e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.595 4.3216e+03 6.7109e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.605 5.3500e+03 5.1360e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.615 3.8220e+03 6.1944e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.625 7.2773e+03 7.5061e+02 O'Connell:1987ag + 6 12 0.730 37.100 0.415 8.2295e+03 3.0870e+02 O'Connell:1987ag + 6 12 0.961 37.500 0.073 7.4640e+02 8.3040e+01 Sealock:1989nx + 6 12 0.961 37.500 0.083 1.1450e+03 7.9320e+01 Sealock:1989nx + 6 12 0.961 37.500 0.093 1.5960e+03 9.3120e+01 Sealock:1989nx + 6 12 0.961 37.500 0.103 2.2210e+03 1.0820e+02 Sealock:1989nx + 6 12 0.961 37.500 0.113 2.8610e+03 1.2420e+02 Sealock:1989nx + 6 12 0.961 37.500 0.123 3.4820e+03 1.3580e+02 Sealock:1989nx + 6 12 0.961 37.500 0.133 4.1660e+03 1.2960e+02 Sealock:1989nx + 6 12 0.961 37.500 0.143 5.1670e+03 1.3270e+02 Sealock:1989nx + 6 12 0.961 37.500 0.153 5.2980e+03 1.9430e+02 Sealock:1989nx + 6 12 0.961 37.500 0.163 5.7300e+03 2.0140e+02 Sealock:1989nx + 6 12 0.961 37.500 0.173 6.3830e+03 2.0990e+02 Sealock:1989nx + 6 12 0.961 37.500 0.183 6.6380e+03 1.8120e+02 Sealock:1989nx + 6 12 0.961 37.500 0.193 6.7900e+03 1.5200e+02 Sealock:1989nx + 6 12 0.961 37.500 0.203 6.6010e+03 1.6620e+02 Sealock:1989nx + 6 12 0.961 37.500 0.213 6.1550e+03 2.0150e+02 Sealock:1989nx + 6 12 0.961 37.500 0.223 6.0130e+03 1.9900e+02 Sealock:1989nx + 6 12 0.961 37.500 0.233 5.8130e+03 1.7200e+02 Sealock:1989nx + 6 12 0.961 37.500 0.243 5.3220e+03 1.2230e+02 Sealock:1989nx + 6 12 0.961 37.500 0.253 4.8130e+03 1.4390e+02 Sealock:1989nx + 6 12 0.961 37.500 0.263 4.4030e+03 1.4690e+02 Sealock:1989nx + 6 12 0.961 37.500 0.273 3.9130e+03 1.3670e+02 Sealock:1989nx + 6 12 0.961 37.500 0.283 3.9640e+03 1.1390e+02 Sealock:1989nx + 6 12 0.961 37.500 0.293 3.6140e+03 9.3960e+01 Sealock:1989nx + 6 12 0.961 37.500 0.303 3.6220e+03 1.2200e+02 Sealock:1989nx + 6 12 0.961 37.500 0.313 3.3410e+03 1.1750e+02 Sealock:1989nx + 6 12 0.961 37.500 0.323 3.4360e+03 1.1880e+02 Sealock:1989nx + 6 12 0.961 37.500 0.333 3.5470e+03 8.6760e+01 Sealock:1989nx + 6 12 0.961 37.500 0.343 3.4000e+03 1.1230e+02 Sealock:1989nx + 6 12 0.961 37.500 0.353 3.7310e+03 1.2940e+02 Sealock:1989nx + 6 12 0.961 37.500 0.363 3.7040e+03 1.2780e+02 Sealock:1989nx + 6 12 0.961 37.500 0.373 3.9060e+03 1.0030e+02 Sealock:1989nx + 6 12 0.961 37.500 0.383 4.0570e+03 1.2820e+02 Sealock:1989nx + 6 12 0.961 37.500 0.393 4.1320e+03 1.4360e+02 Sealock:1989nx + 6 12 0.961 37.500 0.403 4.0810e+03 1.4230e+02 Sealock:1989nx + 6 12 0.961 37.500 0.413 4.3440e+03 1.0420e+02 Sealock:1989nx + 6 12 0.961 37.500 0.423 4.1120e+03 1.4260e+02 Sealock:1989nx + 6 12 0.961 37.500 0.433 4.6660e+03 1.5280e+02 Sealock:1989nx + 6 12 0.961 37.500 0.443 4.5080e+03 1.2700e+02 Sealock:1989nx + 6 12 0.961 37.500 0.453 4.4030e+03 1.1960e+02 Sealock:1989nx + 6 12 0.961 37.500 0.463 4.5100e+03 1.5460e+02 Sealock:1989nx + 6 12 0.961 37.500 0.473 4.3620e+03 1.5060e+02 Sealock:1989nx + 6 12 0.961 37.500 0.483 4.4340e+03 1.0440e+02 Sealock:1989nx + 6 12 0.961 37.500 0.493 4.2460e+03 1.3970e+02 Sealock:1989nx + 6 12 0.961 37.500 0.503 4.0820e+03 1.3500e+02 Sealock:1989nx + 6 12 0.961 37.500 0.513 3.9350e+03 9.5880e+01 Sealock:1989nx + 6 12 0.961 37.500 0.523 3.6600e+03 1.1880e+02 Sealock:1989nx + 6 12 0.961 37.500 0.533 3.5270e+03 1.1630e+02 Sealock:1989nx + 6 12 0.961 37.500 0.543 3.5240e+03 8.9640e+01 Sealock:1989nx + 6 12 0.961 37.500 0.553 3.3440e+03 1.2530e+02 Sealock:1989nx + 6 12 0.961 37.500 0.563 3.3900e+03 1.2310e+02 Sealock:1989nx + 6 12 0.961 37.500 0.573 3.1700e+03 9.4920e+01 Sealock:1989nx + 6 12 0.961 37.500 0.583 3.1150e+03 1.1950e+02 Sealock:1989nx + 6 12 0.961 37.500 0.593 3.0180e+03 1.0120e+02 Sealock:1989nx + 6 12 0.961 37.500 0.603 2.9690e+03 1.0880e+02 Sealock:1989nx + 6 12 0.961 37.500 0.613 2.8450e+03 1.1770e+02 Sealock:1989nx + 6 12 0.961 37.500 0.623 2.9420e+03 9.1680e+01 Sealock:1989nx + 6 12 0.961 37.500 0.633 2.6760e+03 1.0990e+02 Sealock:1989nx + 6 12 0.961 37.500 0.643 2.7950e+03 7.8000e+01 Sealock:1989nx + 6 12 0.961 37.500 0.653 2.8680e+03 9.3960e+01 Sealock:1989nx + 6 12 0.961 37.500 0.663 2.9980e+03 1.2640e+02 Sealock:1989nx + 6 12 1.108 37.500 0.127 7.9560e+02 6.2160e+01 Sealock:1989nx + 6 12 1.108 37.500 0.137 1.1870e+03 7.0080e+01 Sealock:1989nx + 6 12 1.108 37.500 0.147 1.2830e+03 7.4280e+01 Sealock:1989nx + 6 12 1.108 37.500 0.157 1.6120e+03 8.2320e+01 Sealock:1989nx + 6 12 1.108 37.500 0.167 2.1300e+03 9.3720e+01 Sealock:1989nx + 6 12 1.108 37.500 0.177 2.3450e+03 9.9240e+01 Sealock:1989nx + 6 12 1.108 37.500 0.187 2.8330e+03 8.2680e+01 Sealock:1989nx + 6 12 1.108 37.500 0.197 2.9990e+03 7.5960e+01 Sealock:1989nx + 6 12 1.108 37.500 0.207 3.3530e+03 9.5400e+01 Sealock:1989nx + 6 12 1.108 37.500 0.217 3.6880e+03 1.1470e+02 Sealock:1989nx + 6 12 1.108 37.500 0.227 3.7380e+03 1.1570e+02 Sealock:1989nx + 6 12 1.108 37.500 0.237 3.7790e+03 1.1500e+02 Sealock:1989nx + 6 12 1.108 37.500 0.247 3.8140e+03 9.8880e+01 Sealock:1989nx + 6 12 1.108 37.500 0.257 3.9020e+03 8.5680e+01 Sealock:1989nx + 6 12 1.108 37.500 0.267 3.8000e+03 1.1420e+02 Sealock:1989nx + 6 12 1.108 37.500 0.277 3.6290e+03 1.2230e+02 Sealock:1989nx + 6 12 1.108 37.500 0.287 3.4620e+03 1.1870e+02 Sealock:1989nx + 6 12 1.108 37.500 0.297 3.1790e+03 1.1300e+02 Sealock:1989nx + 6 12 1.108 37.500 0.307 3.0740e+03 7.7160e+01 Sealock:1989nx + 6 12 1.108 37.500 0.317 2.7590e+03 7.1520e+01 Sealock:1989nx + 6 12 1.108 37.500 0.327 2.5940e+03 8.8440e+01 Sealock:1989nx + 6 12 1.108 37.500 0.337 2.5140e+03 8.6280e+01 Sealock:1989nx + 6 12 1.108 37.500 0.347 2.2660e+03 8.1480e+01 Sealock:1989nx + 6 12 1.108 37.500 0.357 2.2990e+03 6.3240e+01 Sealock:1989nx + 6 12 1.108 37.500 0.367 2.2250e+03 5.8320e+01 Sealock:1989nx + 6 12 1.108 37.500 0.377 2.1730e+03 7.7040e+01 Sealock:1989nx + 6 12 1.108 37.500 0.387 2.2980e+03 7.8720e+01 Sealock:1989nx + 6 12 1.108 37.500 0.397 2.3280e+03 8.0160e+01 Sealock:1989nx + 6 12 1.108 37.500 0.407 2.4700e+03 6.6840e+01 Sealock:1989nx + 6 12 1.108 37.500 0.417 2.4900e+03 6.7680e+01 Sealock:1989nx + 6 12 1.108 37.500 0.427 2.5240e+03 8.8800e+01 Sealock:1989nx + 6 12 1.108 37.500 0.437 2.6260e+03 9.1200e+01 Sealock:1989nx + 6 12 1.108 37.500 0.447 2.7590e+03 9.3480e+01 Sealock:1989nx + 6 12 1.108 37.500 0.457 2.6780e+03 6.6480e+01 Sealock:1989nx + 6 12 1.108 37.500 0.467 2.7460e+03 8.8440e+01 Sealock:1989nx + 6 12 1.108 37.500 0.477 2.7640e+03 9.7440e+01 Sealock:1989nx + 6 12 1.108 37.500 0.487 2.8610e+03 9.9000e+01 Sealock:1989nx + 6 12 1.108 37.500 0.497 2.9210e+03 7.3080e+01 Sealock:1989nx + 6 12 1.108 37.500 0.507 2.8850e+03 8.0040e+01 Sealock:1989nx + 6 12 1.108 37.500 0.517 2.7830e+03 9.1320e+01 Sealock:1989nx + 6 12 1.108 37.500 0.527 2.9040e+03 9.3360e+01 Sealock:1989nx + 6 12 1.108 37.500 0.537 2.7950e+03 6.6720e+01 Sealock:1989nx + 6 12 1.108 37.500 0.547 2.7480e+03 7.2960e+01 Sealock:1989nx + 6 12 1.108 37.500 0.557 2.4620e+03 8.1120e+01 Sealock:1989nx + 6 12 1.108 37.500 0.567 2.4520e+03 7.9920e+01 Sealock:1989nx + 6 12 1.108 37.500 0.577 2.4300e+03 5.5080e+01 Sealock:1989nx + 6 12 1.108 37.500 0.587 2.4310e+03 7.5960e+01 Sealock:1989nx + 6 12 1.108 37.500 0.597 2.3630e+03 7.4520e+01 Sealock:1989nx + 6 12 1.108 37.500 0.607 2.2450e+03 5.9040e+01 Sealock:1989nx + 6 12 1.108 37.500 0.617 2.2660e+03 5.6160e+01 Sealock:1989nx + 6 12 1.108 37.500 0.627 2.2620e+03 6.4440e+01 Sealock:1989nx + 6 12 1.108 37.500 0.637 2.2490e+03 5.8200e+01 Sealock:1989nx + 6 12 1.108 37.500 0.647 2.1380e+03 4.6320e+01 Sealock:1989nx + 6 12 1.108 37.500 0.657 2.1540e+03 5.6400e+01 Sealock:1989nx + 6 12 1.108 37.500 0.667 2.1530e+03 5.6520e+01 Sealock:1989nx + 6 12 1.108 37.500 0.677 2.1050e+03 4.2720e+01 Sealock:1989nx + 6 12 1.108 37.500 0.687 2.1130e+03 5.3160e+01 Sealock:1989nx + 6 12 1.108 37.500 0.697 2.0030e+03 4.5360e+01 Sealock:1989nx + 6 12 1.108 37.500 0.707 2.1520e+03 3.6600e+01 Sealock:1989nx + 6 12 1.108 37.500 0.717 2.0320e+03 4.2480e+01 Sealock:1989nx + 6 12 1.108 37.500 0.727 2.0750e+03 4.2840e+01 Sealock:1989nx + 6 12 1.299 37.500 0.163 2.5800e+02 1.8840e+01 Sealock:1989nx + 6 12 1.299 37.500 0.173 2.9400e+02 1.9560e+01 Sealock:1989nx + 6 12 1.299 37.500 0.183 3.9840e+02 1.7760e+01 Sealock:1989nx + 6 12 1.299 37.500 0.193 4.6560e+02 1.8960e+01 Sealock:1989nx + 6 12 1.299 37.500 0.203 6.1200e+02 2.7720e+01 Sealock:1989nx + 6 12 1.299 37.500 0.213 7.3560e+02 3.8520e+01 Sealock:1989nx + 6 12 1.299 37.500 0.223 8.4840e+02 4.1280e+01 Sealock:1989nx + 6 12 1.299 37.500 0.233 9.5160e+02 4.3800e+01 Sealock:1989nx + 6 12 1.299 37.500 0.243 1.1680e+03 4.7280e+01 Sealock:1989nx + 6 12 1.299 37.500 0.253 1.3420e+03 3.9240e+01 Sealock:1989nx + 6 12 1.299 37.500 0.263 1.4500e+03 3.8760e+01 Sealock:1989nx + 6 12 1.299 37.500 0.273 1.4570e+03 4.7160e+01 Sealock:1989nx + 6 12 1.299 37.500 0.283 1.5890e+03 5.8560e+01 Sealock:1989nx + 6 12 1.299 37.500 0.293 1.7630e+03 6.1080e+01 Sealock:1989nx + 6 12 1.299 37.500 0.303 1.7510e+03 6.0720e+01 Sealock:1989nx + 6 12 1.299 37.500 0.313 1.7500e+03 6.1080e+01 Sealock:1989nx + 6 12 1.299 37.500 0.323 1.8430e+03 4.4520e+01 Sealock:1989nx + 6 12 1.299 37.500 0.333 1.7560e+03 4.0560e+01 Sealock:1989nx + 6 12 1.299 37.500 0.343 1.8290e+03 5.5320e+01 Sealock:1989nx + 6 12 1.299 37.500 0.353 1.7120e+03 5.3520e+01 Sealock:1989nx + 6 12 1.299 37.500 0.363 1.7040e+03 5.2920e+01 Sealock:1989nx + 6 12 1.299 37.500 0.373 1.6210e+03 5.1120e+01 Sealock:1989nx + 6 12 1.299 37.500 0.383 1.5710e+03 6.6720e+01 Sealock:1989nx + 6 12 1.299 37.500 0.393 1.4860e+03 5.0520e+01 Sealock:1989nx + 6 12 1.299 37.500 0.403 1.4260e+03 4.9200e+01 Sealock:1989nx + 6 12 1.299 37.500 0.413 1.3550e+03 4.7880e+01 Sealock:1989nx + 6 12 1.299 37.500 0.423 1.3540e+03 4.6800e+01 Sealock:1989nx + 6 12 1.299 37.500 0.433 1.3430e+03 4.7280e+01 Sealock:1989nx + 6 12 1.299 37.500 0.443 1.4400e+03 3.7440e+01 Sealock:1989nx + 6 12 1.299 37.500 0.453 1.3550e+03 3.2400e+01 Sealock:1989nx + 6 12 1.299 37.500 0.463 1.3390e+03 4.0800e+01 Sealock:1989nx + 6 12 1.299 37.500 0.473 1.4180e+03 4.5600e+01 Sealock:1989nx + 6 12 1.299 37.500 0.483 1.3980e+03 4.5600e+01 Sealock:1989nx + 6 12 1.299 37.500 0.493 1.4480e+03 4.6440e+01 Sealock:1989nx + 6 12 1.299 37.500 0.503 1.4750e+03 3.5280e+01 Sealock:1989nx + 6 12 1.299 37.500 0.513 1.6070e+03 4.1880e+01 Sealock:1989nx + 6 12 1.299 37.500 0.523 1.5710e+03 5.5800e+01 Sealock:1989nx + 6 12 1.299 37.500 0.533 1.6340e+03 5.6520e+01 Sealock:1989nx + 6 12 1.299 37.500 0.543 1.6920e+03 5.7120e+01 Sealock:1989nx + 6 12 1.299 37.500 0.553 1.6930e+03 4.4880e+01 Sealock:1989nx + 6 12 1.299 37.500 0.563 1.5980e+03 4.0920e+01 Sealock:1989nx + 6 12 1.299 37.500 0.573 1.6540e+03 5.5200e+01 Sealock:1989nx + 6 12 1.299 37.500 0.583 1.6540e+03 5.5680e+01 Sealock:1989nx + 6 12 1.299 37.500 0.593 1.6780e+03 5.5920e+01 Sealock:1989nx + 6 12 1.299 37.500 0.603 1.6400e+03 4.1400e+01 Sealock:1989nx + 6 12 1.299 37.500 0.613 1.6250e+03 4.4640e+01 Sealock:1989nx + 6 12 1.299 37.500 0.623 1.6790e+03 5.7840e+01 Sealock:1989nx + 6 12 1.299 37.500 0.633 1.6130e+03 5.5800e+01 Sealock:1989nx + 6 12 1.299 37.500 0.643 1.5980e+03 5.0280e+01 Sealock:1989nx + 6 12 1.299 37.500 0.653 1.5430e+03 3.8520e+01 Sealock:1989nx + 6 12 1.299 37.500 0.663 1.4800e+03 5.2440e+01 Sealock:1989nx + 6 12 1.299 37.500 0.673 1.5290e+03 5.2440e+01 Sealock:1989nx + 6 12 1.299 37.500 0.683 1.4960e+03 5.2320e+01 Sealock:1989nx + 6 12 1.299 37.500 0.693 1.5120e+03 3.6240e+01 Sealock:1989nx + 6 12 1.299 37.500 0.703 1.3860e+03 4.4040e+01 Sealock:1989nx + 6 12 1.299 37.500 0.713 1.3370e+03 4.6560e+01 Sealock:1989nx + 6 12 1.299 37.500 0.723 1.4350e+03 4.8240e+01 Sealock:1989nx + 6 12 1.299 37.500 0.733 1.4080e+03 3.3600e+01 Sealock:1989nx + 6 12 1.299 37.500 0.743 1.2960e+03 4.5240e+01 Sealock:1989nx + 6 12 1.299 37.500 0.753 1.4140e+03 4.7160e+01 Sealock:1989nx + 6 12 1.299 37.500 0.763 1.4320e+03 4.0080e+01 Sealock:1989nx + 6 12 1.299 37.500 0.773 1.4950e+03 3.6480e+01 Sealock:1989nx + 6 12 1.299 37.500 0.783 1.4020e+03 4.7040e+01 Sealock:1989nx + 6 12 1.299 37.500 0.793 1.3620e+03 4.6320e+01 Sealock:1989nx + 6 12 1.299 37.500 0.803 1.5170e+03 4.8840e+01 Sealock:1989nx + 6 12 1.300 11.950 0.030 9.3096e+05 2.2404e+04 Baran:1988tw + 6 12 1.300 11.950 0.040 9.5960e+05 1.6964e+04 Baran:1988tw + 6 12 1.300 11.950 0.050 9.5579e+05 1.6637e+04 Baran:1988tw + 6 12 1.300 11.950 0.060 9.3811e+05 2.3700e+04 Baran:1988tw + 6 12 1.300 11.950 0.070 8.7454e+05 2.1925e+04 Baran:1988tw + 6 12 1.300 11.950 0.080 7.3970e+05 1.9792e+04 Baran:1988tw + 6 12 1.300 11.950 0.090 6.0424e+05 1.1974e+04 Baran:1988tw + 6 12 1.300 11.950 0.100 5.1212e+05 1.3913e+04 Baran:1988tw + 6 12 1.300 11.950 0.110 4.1230e+05 1.2092e+04 Baran:1988tw + 6 12 1.300 11.950 0.120 3.0604e+05 1.0284e+04 Baran:1988tw + 6 12 1.300 11.950 0.130 2.4189e+05 8.9093e+03 Baran:1988tw + 6 12 1.300 11.950 0.140 1.9607e+05 4.5681e+03 Baran:1988tw + 6 12 1.300 11.950 0.150 1.5900e+05 4.8132e+03 Baran:1988tw + 6 12 1.300 11.950 0.160 1.3388e+05 4.3140e+03 Baran:1988tw + 6 12 1.300 11.950 0.170 1.2098e+05 4.0319e+03 Baran:1988tw + 6 12 1.300 11.950 0.180 1.1141e+05 2.4924e+03 Baran:1988tw + 6 12 1.300 11.950 0.190 1.0174e+05 2.8199e+03 Baran:1988tw + 6 12 1.300 11.950 0.200 1.0702e+05 2.8597e+03 Baran:1988tw + 6 12 1.300 11.950 0.210 1.0706e+05 2.3781e+03 Baran:1988tw + 6 12 1.300 11.950 0.220 1.1605e+05 2.5063e+03 Baran:1988tw + 6 12 1.300 11.950 0.230 1.1563e+05 2.5642e+03 Baran:1988tw + 6 12 1.300 11.950 0.240 1.2260e+05 2.8734e+03 Baran:1988tw + 6 12 1.300 11.950 0.250 1.3136e+05 2.9695e+03 Baran:1988tw + 6 12 1.300 11.950 0.260 1.3610e+05 3.0673e+03 Baran:1988tw + 6 12 1.300 11.950 0.270 1.3904e+05 3.0968e+03 Baran:1988tw + 6 12 1.300 11.950 0.280 1.4416e+05 3.1696e+03 Baran:1988tw + 6 12 1.300 11.950 0.290 1.4284e+05 4.0396e+03 Baran:1988tw + 6 12 1.300 11.950 0.300 1.5251e+05 4.2621e+03 Baran:1988tw + 6 12 1.300 11.950 0.310 1.5945e+05 3.3964e+03 Baran:1988tw + 6 12 1.300 11.950 0.320 1.5615e+05 4.5136e+03 Baran:1988tw + 6 12 1.300 11.950 0.330 1.4944e+05 4.4287e+03 Baran:1988tw + 6 12 1.300 11.950 0.340 1.5708e+05 3.4597e+03 Baran:1988tw + 6 12 1.300 11.950 0.350 1.5474e+05 4.3355e+03 Baran:1988tw + 6 12 1.300 11.950 0.360 1.5569e+05 4.3229e+03 Baran:1988tw + 6 12 1.300 11.950 0.370 1.3791e+05 2.8918e+03 Baran:1988tw + 6 12 1.300 11.950 0.380 1.3770e+05 3.2793e+03 Baran:1988tw + 6 12 1.300 11.950 0.390 1.2245e+05 3.1715e+03 Baran:1988tw + 6 12 1.300 11.950 0.400 1.2043e+05 3.2436e+03 Baran:1988tw + 6 12 1.300 11.950 0.410 1.1306e+05 3.2007e+03 Baran:1988tw + 6 12 1.300 11.950 0.420 1.0740e+05 3.2221e+03 Baran:1988tw + 6 12 1.300 11.950 0.430 1.0277e+05 3.1792e+03 Baran:1988tw + 6 12 1.300 11.950 0.440 9.3566e+04 3.0632e+03 Baran:1988tw + 6 12 1.300 11.950 0.450 8.8613e+04 3.0445e+03 Baran:1988tw + 6 12 1.300 11.950 0.460 8.3624e+04 2.4836e+03 Baran:1988tw + 6 12 1.300 11.950 0.470 7.8446e+04 2.6320e+03 Baran:1988tw + 6 12 1.300 11.950 0.480 7.2782e+04 2.6413e+03 Baran:1988tw + 6 12 1.300 11.950 0.490 7.0460e+04 2.4374e+03 Baran:1988tw + 6 12 1.300 11.950 0.500 6.4244e+04 2.6066e+03 Baran:1988tw + 6 12 1.300 11.950 0.510 6.1710e+04 2.6234e+03 Baran:1988tw + 6 12 1.300 11.950 0.520 5.8797e+04 2.6612e+03 Baran:1988tw + 6 12 1.300 13.540 0.020 7.9665e+05 1.9757e+04 Baran:1988tw + 6 12 1.300 13.540 0.030 4.3789e+05 1.1086e+04 Baran:1988tw + 6 12 1.300 13.540 0.040 4.8234e+05 7.8653e+03 Baran:1988tw + 6 12 1.300 13.540 0.050 5.1574e+05 7.8977e+03 Baran:1988tw + 6 12 1.300 13.540 0.060 5.4700e+05 1.0394e+04 Baran:1988tw + 6 12 1.300 13.540 0.070 5.2658e+05 1.0155e+04 Baran:1988tw + 6 12 1.300 13.540 0.080 4.8480e+05 9.7893e+03 Baran:1988tw + 6 12 1.300 13.540 0.090 4.3454e+05 5.8223e+03 Baran:1988tw + 6 12 1.300 13.540 0.100 3.7067e+05 6.5790e+03 Baran:1988tw + 6 12 1.300 13.540 0.110 3.0080e+05 5.7413e+03 Baran:1988tw + 6 12 1.300 13.540 0.120 2.3744e+05 5.0021e+03 Baran:1988tw + 6 12 1.300 13.540 0.130 1.8793e+05 4.3324e+03 Baran:1988tw + 6 12 1.300 13.540 0.140 1.5489e+05 2.3946e+03 Baran:1988tw + 6 12 1.300 13.540 0.150 1.3254e+05 2.6790e+03 Baran:1988tw + 6 12 1.300 13.540 0.160 1.0987e+05 2.3566e+03 Baran:1988tw + 6 12 1.300 13.540 0.170 9.1335e+04 2.1211e+03 Baran:1988tw + 6 12 1.300 13.540 0.180 8.5560e+04 1.3401e+03 Baran:1988tw + 6 12 1.300 13.540 0.190 7.6155e+04 1.5841e+03 Baran:1988tw + 6 12 1.300 13.540 0.200 7.4381e+04 1.5328e+03 Baran:1988tw + 6 12 1.300 13.540 0.210 7.5515e+04 1.5730e+03 Baran:1988tw + 6 12 1.300 13.540 0.220 7.5660e+04 1.6664e+03 Baran:1988tw + 6 12 1.300 13.540 0.230 7.9371e+04 1.7831e+03 Baran:1988tw + 6 12 1.500 11.950 0.030 5.2613e+05 6.1979e+03 Baran:1988tw + 6 12 1.500 11.950 0.040 5.6523e+05 9.5412e+03 Baran:1988tw + 6 12 1.500 11.950 0.050 6.0897e+05 9.5758e+03 Baran:1988tw + 6 12 1.500 11.950 0.060 6.7542e+05 9.8335e+03 Baran:1988tw + 6 12 1.500 11.950 0.070 6.4316e+05 9.5982e+03 Baran:1988tw + 6 12 1.500 11.950 0.080 6.1945e+05 6.2595e+03 Baran:1988tw + 6 12 1.500 11.950 0.090 5.4940e+05 5.8666e+03 Baran:1988tw + 6 12 1.500 11.950 0.100 4.6340e+05 6.6168e+03 Baran:1988tw + 6 12 1.500 11.950 0.110 3.9202e+05 6.0078e+03 Baran:1988tw + 6 12 1.500 11.950 0.120 3.1907e+05 5.3120e+03 Baran:1988tw + 6 12 1.500 11.950 0.130 2.4783e+05 4.6023e+03 Baran:1988tw + 6 12 1.500 11.950 0.140 2.1501e+05 2.9294e+03 Baran:1988tw + 6 12 1.500 11.950 0.150 1.8415e+05 3.5698e+03 Baran:1988tw + 6 12 1.500 11.950 0.160 1.5314e+05 3.1745e+03 Baran:1988tw + 6 12 1.500 11.950 0.170 1.2977e+05 2.8399e+03 Baran:1988tw + 6 12 1.500 11.950 0.180 1.1229e+05 2.6106e+03 Baran:1988tw + 6 12 1.500 11.950 0.190 1.0291e+05 1.4794e+03 Baran:1988tw + 6 12 1.500 11.950 0.200 9.8618e+04 1.6941e+03 Baran:1988tw + 6 12 1.500 11.950 0.210 9.5424e+04 1.6507e+03 Baran:1988tw + 6 12 1.500 11.950 0.220 9.2986e+04 1.6264e+03 Baran:1988tw + 6 12 1.500 11.950 0.230 9.4808e+04 1.6769e+03 Baran:1988tw + 6 12 1.500 11.950 0.240 9.8356e+04 1.3005e+03 Baran:1988tw + 6 12 1.500 11.950 0.250 1.0601e+05 1.3675e+03 Baran:1988tw + 6 12 1.500 11.950 0.260 1.0763e+05 1.8524e+03 Baran:1988tw + 6 12 1.500 11.950 0.270 1.1598e+05 1.9504e+03 Baran:1988tw + 6 12 1.500 11.950 0.280 1.1818e+05 2.0481e+03 Baran:1988tw + 6 12 1.500 11.950 0.290 1.1834e+05 1.4992e+03 Baran:1988tw + 6 12 1.500 11.950 0.300 1.2304e+05 2.0988e+03 Baran:1988tw + 6 12 1.500 11.950 0.310 1.2725e+05 2.0746e+03 Baran:1988tw + 6 12 1.500 11.950 0.320 1.2407e+05 2.0647e+03 Baran:1988tw + 6 12 1.500 11.950 0.330 1.2415e+05 2.0889e+03 Baran:1988tw + 6 12 1.500 11.950 0.340 1.2612e+05 1.5412e+03 Baran:1988tw + 6 12 1.500 11.950 0.350 1.2688e+05 2.0853e+03 Baran:1988tw + 6 12 1.500 11.950 0.360 1.2310e+05 2.0312e+03 Baran:1988tw + 6 12 1.500 11.950 0.370 1.2231e+05 2.0159e+03 Baran:1988tw + 6 12 1.500 11.950 0.380 1.1874e+05 1.3887e+03 Baran:1988tw + 6 12 1.500 11.950 0.390 1.1597e+05 1.7139e+03 Baran:1988tw + 6 12 1.500 11.950 0.400 1.1021e+05 1.6417e+03 Baran:1988tw + 6 12 1.500 11.950 0.410 1.0792e+05 1.6383e+03 Baran:1988tw + 6 12 1.500 11.950 0.420 1.0274e+05 1.6489e+03 Baran:1988tw + 6 12 1.500 11.950 0.430 9.2295e+04 1.6215e+03 Baran:1988tw + 6 12 1.500 13.540 0.040 2.4373e+05 5.3800e+03 Baran:1988tw + 6 12 1.500 13.540 0.050 2.8296e+05 5.6584e+03 Baran:1988tw + 6 12 1.500 13.540 0.060 2.9919e+05 5.6276e+03 Baran:1988tw + 6 12 1.500 13.540 0.070 3.3836e+05 6.0564e+03 Baran:1988tw + 6 12 1.500 13.540 0.080 3.6145e+05 4.8982e+03 Baran:1988tw + 6 12 1.500 13.540 0.090 3.3493e+05 4.5756e+03 Baran:1988tw + 6 12 1.500 13.540 0.100 3.2352e+05 6.7916e+03 Baran:1988tw + 6 12 1.500 13.540 0.110 2.6514e+05 5.9406e+03 Baran:1988tw + 6 12 1.500 13.540 0.120 2.4541e+05 5.5796e+03 Baran:1988tw + 6 12 1.500 13.540 0.130 2.1072e+05 5.1966e+03 Baran:1988tw + 6 12 1.500 13.540 0.140 1.7345e+05 2.9898e+03 Baran:1988tw + 6 12 1.500 13.540 0.150 1.5438e+05 3.5335e+03 Baran:1988tw + 6 12 1.500 13.540 0.160 1.2324e+05 2.9807e+03 Baran:1988tw + 6 12 1.500 13.540 0.170 1.0264e+05 2.6183e+03 Baran:1988tw + 6 12 1.500 13.540 0.180 8.5607e+04 2.3732e+03 Baran:1988tw + 6 12 1.500 13.540 0.190 7.9920e+04 1.3836e+03 Baran:1988tw + 6 12 1.500 13.540 0.200 7.1877e+04 1.2952e+03 Baran:1988tw + 6 12 1.500 13.540 0.210 6.7310e+04 1.4759e+03 Baran:1988tw + 6 12 1.500 13.540 0.220 6.5397e+04 1.4435e+03 Baran:1988tw + 6 12 1.500 13.540 0.230 6.6201e+04 1.4722e+03 Baran:1988tw + 6 12 1.500 13.540 0.240 6.4869e+04 1.1090e+03 Baran:1988tw + 6 12 1.500 13.540 0.250 6.7608e+04 1.1471e+03 Baran:1988tw + 6 12 1.500 13.540 0.260 6.8399e+04 1.6210e+03 Baran:1988tw + 6 12 1.500 13.540 0.270 7.4223e+04 1.6639e+03 Baran:1988tw + 6 12 1.500 13.540 0.280 7.5058e+04 1.7109e+03 Baran:1988tw + 6 12 1.500 13.540 0.290 8.1059e+04 1.3419e+03 Baran:1988tw + 6 12 1.500 13.540 0.300 8.2755e+04 1.9084e+03 Baran:1988tw + 6 12 1.500 13.540 0.310 8.2211e+04 1.8567e+03 Baran:1988tw + 6 12 1.500 13.540 0.320 8.5495e+04 1.9022e+03 Baran:1988tw + 6 12 1.500 13.540 0.330 8.4328e+04 1.9218e+03 Baran:1988tw + 6 12 1.500 13.540 0.340 8.6021e+04 1.4137e+03 Baran:1988tw + 6 12 1.500 13.540 0.350 8.6772e+04 1.9931e+03 Baran:1988tw + 6 12 1.500 13.540 0.360 8.5897e+04 1.9487e+03 Baran:1988tw + 6 12 1.500 13.540 0.370 8.3131e+04 1.9442e+03 Baran:1988tw + 6 12 1.500 13.540 0.380 8.3651e+04 1.1879e+03 Baran:1988tw + 6 12 1.500 13.540 0.390 7.9108e+04 1.3719e+03 Baran:1988tw + 6 12 1.500 13.540 0.400 7.6460e+04 1.2998e+03 Baran:1988tw + 6 12 1.500 13.540 0.410 7.1875e+04 1.2499e+03 Baran:1988tw + 6 12 1.500 13.540 0.420 6.9097e+04 1.2526e+03 Baran:1988tw + 6 12 1.501 37.500 0.256 1.7880e+02 9.2400e+00 Sealock:1989nx + 6 12 1.501 37.500 0.266 2.2800e+02 1.0200e+01 Sealock:1989nx + 6 12 1.501 37.500 0.276 3.0120e+02 8.7600e+00 Sealock:1989nx + 6 12 1.501 37.500 0.286 3.4920e+02 9.3600e+00 Sealock:1989nx + 6 12 1.501 37.500 0.296 3.9480e+02 1.1160e+01 Sealock:1989nx + 6 12 1.501 37.500 0.306 4.5480e+02 1.5600e+01 Sealock:1989nx + 6 12 1.501 37.500 0.316 5.2200e+02 1.6440e+01 Sealock:1989nx + 6 12 1.501 37.500 0.326 5.4840e+02 1.7160e+01 Sealock:1989nx + 6 12 1.501 37.500 0.336 6.3480e+02 1.8240e+01 Sealock:1989nx + 6 12 1.501 37.500 0.346 6.7080e+02 1.8720e+01 Sealock:1989nx + 6 12 1.501 37.500 0.356 7.7880e+02 1.6080e+01 Sealock:1989nx + 6 12 1.501 37.500 0.366 7.8120e+02 1.5360e+01 Sealock:1989nx + 6 12 1.501 37.500 0.376 8.2560e+02 1.9440e+01 Sealock:1989nx + 6 12 1.501 37.500 0.386 8.3280e+02 2.4360e+01 Sealock:1989nx + 6 12 1.501 37.500 0.396 8.4960e+02 2.4480e+01 Sealock:1989nx + 6 12 1.501 37.500 0.406 8.5800e+02 2.4240e+01 Sealock:1989nx + 6 12 1.501 37.500 0.416 8.7000e+02 2.4480e+01 Sealock:1989nx + 6 12 1.501 37.500 0.426 8.7600e+02 2.0400e+01 Sealock:1989nx + 6 12 1.501 37.500 0.436 8.7720e+02 1.6680e+01 Sealock:1989nx + 6 12 1.501 37.500 0.446 8.2080e+02 1.7040e+01 Sealock:1989nx + 6 12 1.501 37.500 0.456 8.3880e+02 2.2560e+01 Sealock:1989nx + 6 12 1.501 37.500 0.466 8.2440e+02 2.2200e+01 Sealock:1989nx + 6 12 1.501 37.500 0.476 8.4240e+02 2.2200e+01 Sealock:1989nx + 6 12 1.501 37.500 0.486 7.7520e+02 2.1240e+01 Sealock:1989nx + 6 12 1.501 37.500 0.496 7.4160e+02 1.8000e+01 Sealock:1989nx + 6 12 1.501 37.500 0.506 7.6200e+02 1.5840e+01 Sealock:1989nx + 6 12 1.501 37.500 0.516 6.9840e+02 1.5960e+01 Sealock:1989nx + 6 12 1.501 37.500 0.526 6.9960e+02 2.2800e+01 Sealock:1989nx + 6 12 1.501 37.500 0.536 6.8400e+02 2.2440e+01 Sealock:1989nx + 6 12 1.501 37.500 0.546 7.1520e+02 2.3040e+01 Sealock:1989nx + 6 12 1.501 37.500 0.556 7.6080e+02 2.3640e+01 Sealock:1989nx + 6 12 1.501 37.500 0.566 8.0040e+02 1.7640e+01 Sealock:1989nx + 6 12 1.501 37.500 0.576 8.0280e+02 1.6800e+01 Sealock:1989nx + 6 12 1.501 37.500 0.586 8.0640e+02 2.1120e+01 Sealock:1989nx + 6 12 1.501 37.500 0.596 8.7600e+02 2.3760e+01 Sealock:1989nx + 6 12 1.501 37.500 0.606 8.9640e+02 2.4240e+01 Sealock:1989nx + 6 12 1.501 37.500 0.616 8.8200e+02 2.4120e+01 Sealock:1989nx + 6 12 1.501 37.500 0.626 9.0120e+02 1.9320e+01 Sealock:1989nx + 6 12 1.501 37.500 0.636 9.3600e+02 1.7400e+01 Sealock:1989nx + 6 12 1.501 37.500 0.646 9.2880e+02 2.2800e+01 Sealock:1989nx + 6 12 1.501 37.500 0.656 9.2520e+02 2.4840e+01 Sealock:1989nx + 6 12 1.501 37.500 0.666 9.6480e+02 2.5320e+01 Sealock:1989nx + 6 12 1.501 37.500 0.676 9.2280e+02 2.4480e+01 Sealock:1989nx + 6 12 1.501 37.500 0.686 9.6720e+02 1.8720e+01 Sealock:1989nx + 6 12 1.501 37.500 0.696 9.2880e+02 1.8120e+01 Sealock:1989nx + 6 12 1.501 37.500 0.706 9.5280e+02 2.4600e+01 Sealock:1989nx + 6 12 1.501 37.500 0.716 9.1440e+02 2.4000e+01 Sealock:1989nx + 6 12 1.501 37.500 0.726 9.0600e+02 2.4000e+01 Sealock:1989nx + 6 12 1.501 37.500 0.736 8.9760e+02 1.8000e+01 Sealock:1989nx + 6 12 1.501 37.500 0.746 8.6760e+02 1.5960e+01 Sealock:1989nx + 6 12 1.501 37.500 0.756 9.0600e+02 2.2320e+01 Sealock:1989nx + 6 12 1.501 37.500 0.766 8.7000e+02 2.1600e+01 Sealock:1989nx + 6 12 1.501 37.500 0.776 9.0000e+02 2.1960e+01 Sealock:1989nx + 6 12 1.501 37.500 0.786 8.8320e+02 1.8720e+01 Sealock:1989nx + 6 12 1.501 37.500 0.796 8.9280e+02 1.7160e+01 Sealock:1989nx + 6 12 1.501 37.500 0.806 8.7720e+02 2.3880e+01 Sealock:1989nx + 6 12 1.501 37.500 0.816 8.6400e+02 2.3760e+01 Sealock:1989nx + 6 12 1.501 37.500 0.826 8.6280e+02 2.3640e+01 Sealock:1989nx + 6 12 1.501 37.500 0.836 8.8080e+02 1.8480e+01 Sealock:1989nx + 6 12 1.501 37.500 0.846 8.6640e+02 2.1360e+01 Sealock:1989nx + 6 12 1.501 37.500 0.856 8.8320e+02 2.6400e+01 Sealock:1989nx + 6 12 1.501 37.500 0.866 9.3240e+02 2.6880e+01 Sealock:1989nx + 6 12 1.501 37.500 0.876 9.2400e+02 2.6760e+01 Sealock:1989nx + 6 12 1.501 37.500 0.886 8.7240e+02 2.8680e+01 Sealock:1989nx + 6 12 1.650 11.950 0.030 3.2396e+05 5.2538e+03 Baran:1988tw + 6 12 1.650 11.950 0.040 3.7859e+05 5.5755e+03 Baran:1988tw + 6 12 1.650 11.950 0.050 4.0692e+05 4.5048e+03 Baran:1988tw + 6 12 1.650 11.950 0.060 4.5161e+05 4.6554e+03 Baran:1988tw + 6 12 1.650 11.950 0.070 4.7909e+05 4.7964e+03 Baran:1988tw + 6 12 1.650 11.950 0.080 4.7089e+05 6.8944e+03 Baran:1988tw + 6 12 1.650 11.950 0.090 4.7808e+05 6.9656e+03 Baran:1988tw + 6 12 1.650 11.950 0.100 4.1963e+05 6.5213e+03 Baran:1988tw + 6 12 1.650 11.950 0.110 3.7603e+05 6.2365e+03 Baran:1988tw + 6 12 1.650 11.950 0.120 3.2397e+05 3.9117e+03 Baran:1988tw + 6 12 1.650 11.950 0.130 2.7178e+05 3.4161e+03 Baran:1988tw + 6 12 1.650 11.950 0.140 2.2411e+05 3.9785e+03 Baran:1988tw + 6 12 1.650 11.950 0.150 1.8254e+05 3.5514e+03 Baran:1988tw + 6 12 1.650 11.950 0.160 1.5556e+05 3.2185e+03 Baran:1988tw + 6 12 1.650 11.950 0.170 1.3564e+05 1.7955e+03 Baran:1988tw + 6 12 1.650 11.950 0.180 1.1360e+05 1.4351e+03 Baran:1988tw + 6 12 1.650 11.950 0.190 1.0032e+05 1.5417e+03 Baran:1988tw + 6 12 1.650 11.950 0.200 9.1758e+04 1.4253e+03 Baran:1988tw + 6 12 1.650 11.950 0.210 8.6537e+04 1.3824e+03 Baran:1988tw + 6 12 1.650 11.950 0.220 8.2889e+04 1.3627e+03 Baran:1988tw + 6 12 1.650 11.950 0.230 8.6643e+04 1.0507e+03 Baran:1988tw + 6 12 1.650 11.950 0.240 8.9520e+04 1.0556e+03 Baran:1988tw + 6 12 1.650 11.950 0.250 9.2661e+04 1.4839e+03 Baran:1988tw + 6 12 1.650 11.950 0.260 9.2073e+04 1.4540e+03 Baran:1988tw + 6 12 1.650 11.950 0.270 9.6154e+04 1.5206e+03 Baran:1988tw + 6 12 1.650 11.950 0.280 9.9363e+04 1.5870e+03 Baran:1988tw + 6 12 1.650 11.950 0.290 1.0806e+05 1.6783e+03 Baran:1988tw + 6 12 1.650 11.950 0.300 1.0922e+05 1.7732e+03 Baran:1988tw + 6 12 1.650 11.950 0.310 1.1394e+05 2.0073e+03 Baran:1988tw + 6 12 1.650 11.950 0.320 1.1618e+05 1.9293e+03 Baran:1988tw + 6 12 1.650 11.950 0.330 1.1763e+05 1.8512e+03 Baran:1988tw + 6 12 1.650 11.950 0.340 1.1951e+05 2.0853e+03 Baran:1988tw + 6 12 1.650 11.950 0.350 1.1915e+05 2.0421e+03 Baran:1988tw + 6 12 1.650 11.950 0.360 1.1530e+05 1.9651e+03 Baran:1988tw + 6 12 1.650 11.950 0.370 1.1596e+05 1.9498e+03 Baran:1988tw + 6 12 1.650 11.950 0.380 1.1512e+05 1.9601e+03 Baran:1988tw + 6 12 1.650 11.950 0.390 1.0841e+05 1.3507e+03 Baran:1988tw + 6 12 1.650 11.950 0.400 1.0227e+05 1.3152e+03 Baran:1988tw + 6 12 1.650 11.950 0.410 9.8445e+04 1.7340e+03 Baran:1988tw + 6 12 1.650 11.950 0.420 9.6016e+04 1.7210e+03 Baran:1988tw + 6 12 1.650 11.950 0.430 9.2806e+04 1.6817e+03 Baran:1988tw + 6 12 1.650 11.950 0.440 8.7306e+04 1.1706e+03 Baran:1988tw + 6 12 1.650 11.950 0.450 8.3263e+04 1.5386e+03 Baran:1988tw + 6 12 1.650 11.950 0.460 7.5245e+04 1.4123e+03 Baran:1988tw + 6 12 1.650 11.950 0.470 7.2463e+04 1.3936e+03 Baran:1988tw + 6 12 1.650 11.950 0.480 7.0795e+04 1.3848e+03 Baran:1988tw + 6 12 1.650 11.950 0.490 6.6436e+04 9.9066e+02 Baran:1988tw + 6 12 1.650 11.950 0.500 6.4571e+04 1.3411e+03 Baran:1988tw + 6 12 1.650 11.950 0.510 6.2391e+04 1.2900e+03 Baran:1988tw + 6 12 1.650 11.950 0.520 5.7711e+04 1.2656e+03 Baran:1988tw + 6 12 1.650 11.950 0.530 5.5144e+04 9.6666e+02 Baran:1988tw + 6 12 1.650 11.950 0.540 5.3845e+04 1.3578e+03 Baran:1988tw + 6 12 1.650 11.950 0.550 5.1175e+04 1.2995e+03 Baran:1988tw + 6 12 1.650 11.950 0.560 4.8190e+04 1.2861e+03 Baran:1988tw + 6 12 1.650 11.950 0.570 4.4998e+04 1.2845e+03 Baran:1988tw + 6 12 1.650 11.950 0.580 4.5271e+04 1.3267e+03 Baran:1988tw + 6 12 1.650 13.540 0.040 1.4550e+05 2.5269e+03 Baran:1988tw + 6 12 1.650 13.540 0.050 1.7543e+05 2.2920e+03 Baran:1988tw + 6 12 1.650 13.540 0.060 1.9897e+05 2.3776e+03 Baran:1988tw + 6 12 1.650 13.540 0.070 2.2176e+05 2.5087e+03 Baran:1988tw + 6 12 1.650 13.540 0.080 2.4380e+05 4.0760e+03 Baran:1988tw + 6 12 1.650 13.540 0.090 2.5818e+05 4.1586e+03 Baran:1988tw + 6 12 1.650 13.540 0.100 2.5209e+05 4.0963e+03 Baran:1988tw + 6 12 1.650 13.540 0.110 2.4213e+05 4.0746e+03 Baran:1988tw + 6 12 1.650 13.540 0.120 2.2738e+05 2.3708e+03 Baran:1988tw + 6 12 1.650 13.540 0.130 2.0664e+05 2.2299e+03 Baran:1988tw + 6 12 1.650 13.540 0.140 1.7368e+05 2.3360e+03 Baran:1988tw + 6 12 1.650 13.540 0.150 1.4879e+05 2.1218e+03 Baran:1988tw + 6 12 1.650 13.540 0.160 1.2741e+05 1.9747e+03 Baran:1988tw + 6 12 1.650 13.540 0.170 1.0738e+05 1.7872e+03 Baran:1988tw + 6 12 1.650 13.540 0.180 9.4917e+04 1.2134e+03 Baran:1988tw + 6 12 1.650 13.540 0.190 8.1590e+04 1.2957e+03 Baran:1988tw + 6 12 1.650 13.540 0.200 7.4192e+04 1.4876e+03 Baran:1988tw + 6 12 1.650 13.540 0.210 6.4032e+04 1.3372e+03 Baran:1988tw + 6 12 1.650 13.540 0.220 6.1780e+04 1.3313e+03 Baran:1988tw + 6 12 1.650 13.540 0.230 5.7887e+04 7.7605e+02 Baran:1988tw + 6 12 1.650 13.540 0.240 5.7631e+04 7.5243e+02 Baran:1988tw + 6 12 1.650 13.540 0.250 5.6187e+04 8.9025e+02 Baran:1988tw + 6 12 1.650 13.540 0.260 5.7123e+04 8.9187e+02 Baran:1988tw + 6 12 1.650 13.540 0.270 5.8900e+04 9.1254e+02 Baran:1988tw + 6 12 1.650 13.540 0.280 6.1353e+04 9.6195e+02 Baran:1988tw + 6 12 1.650 13.540 0.290 6.5783e+04 7.3892e+02 Baran:1988tw + 6 12 1.650 13.540 0.300 6.8219e+04 7.7838e+02 Baran:1988tw + 6 12 1.650 13.540 0.310 6.7295e+04 1.1029e+03 Baran:1988tw + 6 12 1.650 13.540 0.320 6.8595e+04 1.1147e+03 Baran:1988tw + 6 12 1.650 13.540 0.330 7.2950e+04 1.1336e+03 Baran:1988tw + 6 12 1.650 13.540 0.340 7.2924e+04 8.7124e+02 Baran:1988tw + 6 12 1.650 13.540 0.350 7.3388e+04 8.8248e+02 Baran:1988tw + 6 12 1.650 13.540 0.360 7.4758e+04 1.2962e+03 Baran:1988tw + 6 12 1.650 13.540 0.370 7.3952e+04 1.2788e+03 Baran:1988tw + 6 12 1.650 13.540 0.380 7.6922e+04 1.3209e+03 Baran:1988tw + 6 12 1.650 13.540 0.390 7.3000e+04 9.0101e+02 Baran:1988tw + 6 12 1.650 13.540 0.400 7.0635e+04 8.7027e+02 Baran:1988tw + 6 12 1.650 13.540 0.410 7.2046e+04 1.1355e+03 Baran:1988tw + 6 12 1.650 13.540 0.420 6.9352e+04 1.1141e+03 Baran:1988tw + 6 12 1.650 13.540 0.430 6.4596e+04 1.0962e+03 Baran:1988tw + 6 12 1.650 13.540 0.440 6.2484e+04 7.6616e+02 Baran:1988tw + 6 12 1.650 13.540 0.450 5.9815e+04 1.0173e+03 Baran:1988tw + 6 12 1.650 13.540 0.460 5.6697e+04 9.5349e+02 Baran:1988tw + 6 12 1.650 13.540 0.470 5.1094e+04 9.0767e+02 Baran:1988tw + 6 12 1.650 13.540 0.480 4.9635e+04 9.0237e+02 Baran:1988tw + 6 12 1.650 13.540 0.490 4.9112e+04 6.2486e+02 Baran:1988tw + 6 12 1.650 13.540 0.500 4.8227e+04 8.2415e+02 Baran:1988tw + 6 12 1.650 13.540 0.510 4.5892e+04 7.8630e+02 Baran:1988tw + 6 12 1.650 13.540 0.520 4.2609e+04 7.5900e+02 Baran:1988tw + 6 12 1.650 13.540 0.530 4.0271e+04 4.8688e+02 Baran:1988tw + 6 12 1.650 13.540 0.540 4.0295e+04 6.0142e+02 Baran:1988tw + 6 12 1.650 13.540 0.550 3.7745e+04 5.6283e+02 Baran:1988tw + 6 12 1.650 13.540 0.560 3.4448e+04 5.3211e+02 Baran:1988tw + 6 12 1.650 13.540 0.570 3.3056e+04 5.3444e+02 Baran:1988tw + 6 12 1.650 13.540 0.580 3.2832e+04 5.5849e+02 Baran:1988tw + 6 12 1.930 16.000 0.000 2.0700e+03 3.0000e+02 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.018 4.4400e+03 5.0000e+02 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.036 8.2400e+03 6.0000e+02 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.054 1.4600e+04 9.0000e+02 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.073 2.3500e+04 1.7000e+03 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.091 3.3800e+04 1.3000e+03 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.109 4.3200e+04 2.1000e+03 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.127 5.1100e+04 2.5000e+03 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.145 5.3000e+04 2.5000e+03 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.164 6.0200e+04 2.8000e+03 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.182 5.5300e+04 2.7000e+03 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.200 5.3300e+04 2.7000e+03 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.218 4.2500e+04 2.3000e+03 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.236 3.6200e+04 2.0000e+03 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.262 3.1400e+04 1.9000e+03 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.278 3.0500e+04 1.8000e+03 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.293 2.7200e+04 1.8000e+03 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.309 2.7000e+04 1.8000e+03 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.324 2.1600e+04 1.6000e+03 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.340 2.4300e+04 1.8000e+03 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.355 2.2400e+04 1.7000e+03 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.371 2.4900e+04 2.0000e+03 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.386 2.6100e+04 2.0000e+03 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.401 2.5400e+04 2.1000e+03 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.417 2.5900e+04 2.2000e+03 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.432 2.7200e+04 2.3000e+03 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.448 2.7500e+04 2.4000e+03 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.463 2.7000e+04 2.5000e+03 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.479 2.4300e+04 2.2000e+03 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.504 2.4400e+04 2.3000e+03 Bagdasaryan:1988hp + 6 12 1.930 16.000 0.510 2.3100e+04 2.3000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.000 3.8000e+02 1.0000e+02 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.018 8.0000e+02 2.0000e+02 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.036 2.1400e+03 3.0000e+02 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.054 2.6000e+03 3.0000e+02 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.073 5.7700e+03 5.0000e+02 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.092 8.7100e+03 7.0000e+02 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.109 1.2500e+04 8.0000e+02 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.127 1.6800e+04 1.0000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.145 2.3100e+04 1.4000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.164 2.6300e+04 1.4000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.182 2.7600e+04 1.4000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.200 3.1300e+04 1.6000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.218 2.8600e+04 1.5000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.236 2.7000e+04 1.4000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.255 2.4200e+04 1.4000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.270 2.2000e+04 1.3000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.285 2.0700e+04 1.3000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.301 1.8800e+04 1.2000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.316 1.9200e+04 1.3000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.332 1.8600e+04 1.3000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.347 1.7700e+04 1.2000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.364 1.6900e+04 1.2000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.380 1.6600e+04 1.2000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.394 1.9700e+04 1.5000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.409 1.8400e+04 1.4000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.424 1.9700e+04 1.6000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.439 1.9000e+04 1.5000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.454 2.0100e+04 1.6000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.469 1.9800e+04 1.7000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.484 2.0300e+04 1.7000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.499 1.8500e+04 1.6000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.514 1.9900e+04 2.0000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.526 1.8000e+04 1.9000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.541 1.8800e+04 1.9000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.555 1.7900e+04 2.0000e+03 Bagdasaryan:1988hp + 6 12 1.930 18.000 0.570 1.7800e+04 2.0000e+03 Bagdasaryan:1988hp + 6 12 2.000 15.000 0.030 7.1076e+03 2.9710e+02 Zeller:1973ge + 6 12 2.000 15.000 0.040 1.2529e+04 4.0720e+02 Zeller:1973ge + 6 12 2.000 15.000 0.050 1.9548e+04 5.1607e+02 Zeller:1973ge + 6 12 2.000 15.000 0.060 2.7763e+04 6.1634e+02 Zeller:1973ge + 6 12 2.000 15.000 0.070 3.7016e+04 7.0331e+02 Zeller:1973ge + 6 12 2.000 15.000 0.080 4.7376e+04 7.9592e+02 Zeller:1973ge + 6 12 2.000 15.000 0.090 5.8369e+04 8.8137e+02 Zeller:1973ge + 6 12 2.000 15.000 0.100 6.9192e+04 9.5485e+02 Zeller:1973ge + 6 12 2.000 15.000 0.110 7.9181e+04 1.0056e+03 Zeller:1973ge + 6 12 2.000 15.000 0.120 8.8087e+04 1.0570e+03 Zeller:1973ge + 6 12 2.000 15.000 0.130 9.5264e+04 1.0955e+03 Zeller:1973ge + 6 12 2.000 15.000 0.140 9.9616e+04 1.1057e+03 Zeller:1973ge + 6 12 2.000 15.000 0.150 1.0128e+05 1.1040e+03 Zeller:1973ge + 6 12 2.000 15.000 0.160 1.0052e+05 1.0857e+03 Zeller:1973ge + 6 12 2.000 15.000 0.170 9.7810e+04 1.0563e+03 Zeller:1973ge + 6 12 2.000 15.000 0.180 9.3515e+04 1.0287e+03 Zeller:1973ge + 6 12 2.000 15.000 0.190 8.6876e+04 9.9039e+02 Zeller:1973ge + 6 12 2.000 15.000 0.200 7.8488e+04 9.0262e+02 Zeller:1973ge + 6 12 2.000 15.000 0.210 7.0250e+04 8.4300e+02 Zeller:1973ge + 6 12 2.000 15.000 0.220 6.2899e+04 7.7995e+02 Zeller:1973ge + 6 12 2.000 15.000 0.230 5.6008e+04 7.3370e+02 Zeller:1973ge + 6 12 2.000 15.000 0.240 4.9319e+04 6.6580e+02 Zeller:1973ge + 6 12 2.000 15.000 0.250 4.3849e+04 6.2266e+02 Zeller:1973ge + 6 12 2.000 15.000 0.260 3.9661e+04 5.7905e+02 Zeller:1973ge + 6 12 2.000 15.000 0.270 3.6758e+04 5.5505e+02 Zeller:1973ge + 6 12 2.000 15.000 0.280 3.5168e+04 5.4159e+02 Zeller:1973ge + 6 12 2.000 15.000 0.290 3.4420e+04 5.4039e+02 Zeller:1973ge + 6 12 2.000 15.000 0.300 3.3758e+04 5.3676e+02 Zeller:1973ge + 6 12 2.000 15.000 0.310 3.3215e+04 5.3144e+02 Zeller:1973ge + 6 12 2.000 15.000 0.320 3.3229e+04 5.3831e+02 Zeller:1973ge + 6 12 2.000 15.000 0.330 3.3577e+04 5.3388e+02 Zeller:1973ge + 6 12 2.000 15.000 0.340 3.4775e+04 5.4944e+02 Zeller:1973ge + 6 12 2.000 15.000 0.350 3.6208e+04 5.7208e+02 Zeller:1973ge + 6 12 2.000 15.000 0.360 3.7064e+04 5.7450e+02 Zeller:1973ge + 6 12 2.000 15.000 0.370 3.7583e+04 5.8629e+02 Zeller:1973ge + 6 12 2.000 15.000 0.380 3.8134e+04 5.9488e+02 Zeller:1973ge + 6 12 2.000 15.000 0.390 3.8740e+04 5.9659e+02 Zeller:1973ge + 6 12 2.000 15.000 0.400 3.9557e+04 6.0917e+02 Zeller:1973ge + 6 12 2.000 15.000 0.410 3.9976e+04 6.1562e+02 Zeller:1973ge + 6 12 2.000 15.000 0.420 3.9614e+04 5.9818e+02 Zeller:1973ge + 6 12 2.000 15.000 0.430 3.9292e+04 5.9723e+02 Zeller:1973ge + 6 12 2.000 15.000 0.440 3.9341e+04 6.0585e+02 Zeller:1973ge + 6 12 2.000 15.000 0.450 3.9116e+04 5.9848e+02 Zeller:1973ge + 6 12 2.000 15.000 0.460 3.8507e+04 5.9300e+02 Zeller:1973ge + 6 12 2.000 15.000 0.470 3.7669e+04 5.8011e+02 Zeller:1973ge + 6 12 2.000 15.000 0.480 3.6841e+04 5.7104e+02 Zeller:1973ge + 6 12 2.000 15.000 0.490 3.5683e+04 5.6379e+02 Zeller:1973ge + 6 12 2.000 15.000 0.500 3.4472e+04 5.3777e+02 Zeller:1973ge + 6 12 2.000 15.000 0.510 3.3274e+04 5.3238e+02 Zeller:1973ge + 6 12 2.000 15.000 0.520 3.1962e+04 5.1459e+02 Zeller:1973ge + 6 12 2.000 15.000 0.530 3.0605e+04 5.0498e+02 Zeller:1973ge + 6 12 2.000 15.000 0.540 2.8960e+04 4.8652e+02 Zeller:1973ge + 6 12 2.000 15.000 0.550 2.7517e+04 4.7054e+02 Zeller:1973ge + 6 12 2.000 15.000 0.560 2.6542e+04 4.6979e+02 Zeller:1973ge + 6 12 2.000 15.000 0.570 2.5564e+04 4.4736e+02 Zeller:1973ge + 6 12 2.000 15.000 0.580 2.4880e+04 4.5778e+02 Zeller:1973ge + 6 12 2.000 15.000 0.590 2.4101e+04 4.4345e+02 Zeller:1973ge + 6 12 2.000 15.000 0.600 2.3086e+04 4.3170e+02 Zeller:1973ge + 6 12 2.000 15.000 0.610 2.2409e+04 4.3025e+02 Zeller:1973ge + 6 12 2.000 15.000 0.620 2.2061e+04 4.3460e+02 Zeller:1973ge + 6 12 2.000 15.000 0.630 2.1616e+04 4.3447e+02 Zeller:1973ge + 6 12 2.000 15.000 0.640 2.0642e+04 4.2111e+02 Zeller:1973ge + 6 12 2.015 35.510 0.550 2.0680e+02 1.6800e+00 Arrington:1995hs + 6 12 2.015 35.510 0.560 2.1930e+02 1.4380e+00 Arrington:1995hs + 6 12 2.015 35.510 0.571 2.3620e+02 1.4460e+00 Arrington:1995hs + 6 12 2.015 35.510 0.582 2.6100e+02 1.5400e+00 Arrington:1995hs + 6 12 2.015 35.510 0.593 2.7210e+02 1.5670e+00 Arrington:1995hs + 6 12 2.015 35.510 0.605 2.7970e+02 1.5950e+00 Arrington:1995hs + 6 12 2.015 35.510 0.616 2.8130e+02 1.6070e+00 Arrington:1995hs + 6 12 2.015 35.510 0.627 2.8580e+02 1.5900e+00 Arrington:1995hs + 6 12 2.015 35.510 0.638 2.9690e+02 1.6440e+00 Arrington:1995hs + 6 12 2.015 35.510 0.649 2.9400e+02 1.6040e+00 Arrington:1995hs + 6 12 2.015 35.510 0.660 3.0100e+02 1.6320e+00 Arrington:1995hs + 6 12 2.015 35.510 0.671 3.1690e+02 1.7430e+00 Arrington:1995hs + 6 12 2.015 35.510 0.682 3.2050e+02 1.8750e+00 Arrington:1995hs + 6 12 2.015 35.510 0.693 3.3100e+02 2.0650e+00 Arrington:1995hs + 6 12 2.020 15.022 0.075 2.7980e+04 4.8200e+02 Day:1993md + 6 12 2.020 15.022 0.090 3.7590e+04 5.6200e+02 Day:1993md + 6 12 2.020 15.022 0.105 5.0770e+04 1.1690e+03 Day:1993md + 6 12 2.020 15.022 0.120 5.6920e+04 1.2240e+03 Day:1993md + 6 12 2.020 15.022 0.135 6.4680e+04 9.8860e+02 Day:1993md + 6 12 2.020 15.022 0.150 6.7040e+04 1.0000e+03 Day:1993md + 6 12 2.020 15.022 0.165 6.7860e+04 1.4700e+03 Day:1993md + 6 12 2.020 15.022 0.180 6.4310e+04 1.3740e+03 Day:1993md + 6 12 2.020 15.022 0.195 5.7740e+04 1.2650e+03 Day:1993md + 6 12 2.020 15.022 0.210 5.3760e+04 9.7580e+02 Day:1993md + 6 12 2.020 15.022 0.225 4.8690e+04 9.3360e+02 Day:1993md + 6 12 2.020 15.022 0.240 4.0050e+04 1.2440e+03 Day:1993md + 6 12 2.020 15.022 0.255 3.4220e+04 1.1400e+03 Day:1993md + 6 12 2.020 15.022 0.270 2.9530e+04 1.0430e+03 Day:1993md + 6 12 2.020 15.022 0.285 2.8320e+04 7.3930e+02 Day:1993md + 6 12 2.020 15.022 0.300 2.8960e+04 1.0410e+03 Day:1993md + 6 12 2.020 15.022 0.315 2.6140e+04 9.7930e+02 Day:1993md + 6 12 2.020 15.022 0.330 2.9150e+04 1.0340e+03 Day:1993md + 6 12 2.020 15.022 0.345 2.9440e+04 1.0750e+03 Day:1993md + 6 12 2.020 15.022 0.360 2.7920e+04 1.0710e+03 Day:1993md + 6 12 2.020 20.016 0.075 4.6420e+02 1.4280e+01 Day:1993md + 6 12 2.020 20.016 0.090 8.5330e+02 1.9270e+01 Day:1993md + 6 12 2.020 20.016 0.105 1.3640e+03 2.4010e+01 Day:1993md + 6 12 2.020 20.016 0.120 2.0290e+03 1.3620e+02 Day:1993md + 6 12 2.020 20.016 0.135 3.3430e+03 1.6790e+02 Day:1993md + 6 12 2.020 20.016 0.150 4.3020e+03 1.5040e+02 Day:1993md + 6 12 2.020 20.016 0.165 5.8500e+03 1.7170e+02 Day:1993md + 6 12 2.020 20.016 0.180 7.6370e+03 1.6980e+02 Day:1993md + 6 12 2.020 20.016 0.195 9.2340e+03 1.8540e+02 Day:1993md + 6 12 2.020 20.016 0.210 1.0550e+04 2.5760e+02 Day:1993md + 6 12 2.020 20.016 0.225 1.1210e+04 2.3380e+02 Day:1993md + 6 12 2.020 20.016 0.240 1.1680e+04 2.9120e+02 Day:1993md + 6 12 2.020 20.016 0.255 1.2000e+04 2.2720e+02 Day:1993md + 6 12 2.020 20.016 0.270 1.1700e+04 2.7250e+02 Day:1993md + 6 12 2.020 20.016 0.285 1.1220e+04 2.6200e+02 Day:1993md + 6 12 2.020 20.016 0.300 1.0630e+04 2.5240e+02 Day:1993md + 6 12 2.020 20.016 0.315 9.7040e+03 2.9330e+02 Day:1993md + 6 12 2.020 20.016 0.330 9.3460e+03 2.0240e+02 Day:1993md + 6 12 2.020 20.016 0.345 8.6900e+03 2.6120e+02 Day:1993md + 6 12 2.020 20.016 0.360 8.3230e+03 2.4760e+02 Day:1993md + 6 12 2.020 20.016 0.375 7.5720e+03 2.2900e+02 Day:1993md + 6 12 2.020 20.016 0.390 7.4060e+03 1.6220e+02 Day:1993md + 6 12 2.020 20.016 0.405 7.0630e+03 1.5940e+02 Day:1993md + 6 12 2.020 20.016 0.420 6.6280e+03 2.1040e+02 Day:1993md + 6 12 2.020 20.016 0.435 6.9370e+03 2.1750e+02 Day:1993md + 6 12 2.020 20.016 0.450 7.6020e+03 2.3470e+02 Day:1993md + 6 12 2.130 16.000 0.021 1.1100e+03 2.0000e+02 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.040 3.3800e+03 4.0000e+02 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.063 6.7100e+03 6.0000e+02 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.082 9.8900e+03 7.0000e+02 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.102 1.7300e+04 1.0000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.121 2.2800e+04 1.2000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.141 2.9300e+04 1.7000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.160 3.5500e+04 1.7000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.179 3.7000e+04 1.8000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.199 3.8500e+04 1.9000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.218 3.7600e+04 1.8000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.237 3.6000e+04 1.8000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.256 3.3400e+04 1.8000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.272 2.8600e+04 1.7000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.297 2.5600e+04 1.6000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.315 2.1700e+04 1.5000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.334 2.1800e+04 1.6000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.353 1.9200e+04 1.5000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.373 2.2400e+04 1.8000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.389 2.2100e+04 1.9000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.406 2.2100e+04 1.9000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.423 2.4500e+04 2.1000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.440 2.3600e+04 2.1000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.457 2.3800e+04 2.2000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.474 2.5400e+04 2.1000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.491 2.1100e+04 2.3000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.508 2.2300e+04 2.3000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.521 1.8800e+04 2.0000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.537 2.4400e+04 2.6000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.554 2.0700e+04 2.3000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.570 2.2600e+04 2.6000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.586 2.3000e+04 2.6000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.602 1.6600e+04 2.0000e+03 Bagdasaryan:1988hp + 6 12 2.130 16.000 0.619 1.6500e+04 2.0000e+03 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.035 5.6000e+02 1.0000e+02 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.054 1.0500e+03 1.0000e+02 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.074 1.7200e+03 2.0000e+02 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.093 3.0500e+03 3.0000e+02 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.112 5.5100e+03 4.0000e+02 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.132 7.4600e+03 4.0000e+02 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.151 9.9800e+03 5.0000e+02 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.171 1.3500e+04 7.0000e+02 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.190 1.5600e+04 8.0000e+02 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.209 1.6200e+04 8.0000e+02 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.229 1.8500e+04 9.0000e+02 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.246 2.0400e+04 1.0000e+03 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.265 1.9900e+04 9.0000e+02 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.283 1.8300e+04 9.0000e+02 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.301 1.5700e+04 8.0000e+02 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.314 1.5800e+04 9.0000e+02 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.329 1.3700e+04 8.0000e+02 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.347 1.4400e+04 8.0000e+02 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.367 1.4500e+04 9.0000e+02 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.384 1.3400e+04 8.0000e+02 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.401 1.3700e+04 9.0000e+02 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.419 1.3400e+04 9.0000e+02 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.436 1.3400e+04 9.0000e+02 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.454 1.4600e+04 1.0000e+03 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.470 1.5100e+04 1.1000e+03 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.487 1.4300e+04 1.2000e+03 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.504 1.5200e+04 1.2000e+03 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.516 1.4400e+04 1.2000e+03 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.531 1.4500e+04 1.3000e+03 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.547 1.4700e+04 1.3000e+03 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.562 1.4300e+04 1.3000e+03 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.578 1.4300e+04 1.3000e+03 Bagdasaryan:1988hp + 6 12 2.130 18.000 0.594 1.4200e+04 1.4000e+03 Bagdasaryan:1988hp + 6 12 2.500 15.000 0.030 3.4320e+02 6.8057e+01 Zeller:1973ge + 6 12 2.500 15.000 0.040 6.6720e+02 6.3718e+01 Zeller:1973ge + 6 12 2.500 15.000 0.050 1.0572e+03 9.5888e+01 Zeller:1973ge + 6 12 2.500 15.000 0.060 1.5468e+03 1.1756e+02 Zeller:1973ge + 6 12 2.500 15.000 0.070 2.2536e+03 1.2575e+02 Zeller:1973ge + 6 12 2.500 15.000 0.080 3.2364e+03 1.5664e+02 Zeller:1973ge + 6 12 2.500 15.000 0.090 4.4940e+03 1.9774e+02 Zeller:1973ge + 6 12 2.500 15.000 0.100 6.0336e+03 2.2867e+02 Zeller:1973ge + 6 12 2.500 15.000 0.110 7.9608e+03 2.7783e+02 Zeller:1973ge + 6 12 2.500 15.000 0.120 1.0270e+04 2.9371e+02 Zeller:1973ge + 6 12 2.500 15.000 0.130 1.2659e+04 3.2913e+02 Zeller:1973ge + 6 12 2.500 15.000 0.140 1.5206e+04 3.6799e+02 Zeller:1973ge + 6 12 2.500 15.000 0.150 1.7626e+04 3.8953e+02 Zeller:1973ge + 6 12 2.500 15.000 0.160 1.9801e+04 4.1583e+02 Zeller:1973ge + 6 12 2.500 15.000 0.170 2.1704e+04 4.4277e+02 Zeller:1973ge + 6 12 2.500 15.000 0.180 2.3634e+04 4.5377e+02 Zeller:1973ge + 6 12 2.500 15.000 0.190 2.5409e+04 4.5736e+02 Zeller:1973ge + 6 12 2.500 15.000 0.200 2.7019e+04 4.7554e+02 Zeller:1973ge + 6 12 2.500 15.000 0.210 2.8216e+04 4.8249e+02 Zeller:1973ge + 6 12 2.500 15.000 0.220 2.8904e+04 4.9137e+02 Zeller:1973ge + 6 12 2.500 15.000 0.230 2.9201e+04 4.8181e+02 Zeller:1973ge + 6 12 2.500 15.000 0.240 2.9066e+04 4.7669e+02 Zeller:1973ge + 6 12 2.500 15.000 0.250 2.8524e+04 4.7065e+02 Zeller:1973ge + 6 12 2.500 15.000 0.260 2.7716e+04 4.5455e+02 Zeller:1973ge + 6 12 2.500 15.000 0.270 2.6570e+04 4.4904e+02 Zeller:1973ge + 6 12 2.500 15.000 0.280 2.5002e+04 4.3253e+02 Zeller:1973ge + 6 12 2.500 15.000 0.290 2.3359e+04 4.0645e+02 Zeller:1973ge + 6 12 2.500 15.000 0.300 2.2134e+04 3.9399e+02 Zeller:1973ge + 6 12 2.500 15.000 0.310 2.0880e+04 3.8419e+02 Zeller:1973ge + 6 12 2.500 15.000 0.320 1.9570e+04 3.6399e+02 Zeller:1973ge + 6 12 2.500 15.000 0.330 1.8652e+04 3.5252e+02 Zeller:1973ge + 6 12 2.500 15.000 0.340 1.7860e+04 3.2504e+02 Zeller:1973ge + 6 12 2.500 15.000 0.350 1.6850e+04 3.2184e+02 Zeller:1973ge + 6 12 2.500 15.000 0.360 1.6084e+04 3.2006e+02 Zeller:1973ge + 6 12 2.500 15.000 0.370 1.5618e+04 3.0143e+02 Zeller:1973ge + 6 12 2.500 15.000 0.380 1.5341e+04 3.0682e+02 Zeller:1973ge + 6 12 2.500 15.000 0.390 1.5148e+04 3.0295e+02 Zeller:1973ge + 6 12 2.500 15.000 0.400 1.4962e+04 3.0372e+02 Zeller:1973ge + 6 12 2.500 15.000 0.410 1.4900e+04 3.0397e+02 Zeller:1973ge + 6 12 2.500 15.000 0.420 1.5044e+04 3.0540e+02 Zeller:1973ge + 6 12 2.500 15.000 0.430 1.5270e+04 3.0998e+02 Zeller:1973ge + 6 12 2.500 15.000 0.440 1.5445e+04 3.0273e+02 Zeller:1973ge + 6 12 2.500 15.000 0.450 1.5592e+04 3.1495e+02 Zeller:1973ge + 6 12 2.500 15.000 0.460 1.5883e+04 3.1608e+02 Zeller:1973ge + 6 12 2.500 15.000 0.470 1.6097e+04 3.2516e+02 Zeller:1973ge + 6 12 2.500 15.000 0.480 1.6228e+04 3.2293e+02 Zeller:1973ge + 6 12 2.500 15.000 0.490 1.6357e+04 3.2224e+02 Zeller:1973ge + 6 12 2.500 15.000 0.500 1.6456e+04 3.1924e+02 Zeller:1973ge + 6 12 2.500 15.000 0.510 1.6552e+04 3.2110e+02 Zeller:1973ge + 6 12 2.500 15.000 0.520 1.6458e+04 3.2093e+02 Zeller:1973ge + 6 12 2.500 15.000 0.530 1.6178e+04 3.1871e+02 Zeller:1973ge + 6 12 2.500 15.000 0.540 1.5944e+04 3.1251e+02 Zeller:1973ge + 6 12 2.500 15.000 0.550 1.5704e+04 3.1566e+02 Zeller:1973ge + 6 12 2.500 15.000 0.560 1.5560e+04 3.0965e+02 Zeller:1973ge + 6 12 2.500 15.000 0.570 1.5384e+04 2.9845e+02 Zeller:1973ge + 6 12 2.500 15.000 0.580 1.4988e+04 3.0426e+02 Zeller:1973ge + 6 12 2.500 15.000 0.590 1.4569e+04 2.9138e+02 Zeller:1973ge + 6 12 2.500 15.000 0.600 1.4268e+04 2.9107e+02 Zeller:1973ge + 6 12 2.500 15.000 0.610 1.4114e+04 2.8088e+02 Zeller:1973ge + 6 12 2.500 15.000 0.620 1.3866e+04 2.8425e+02 Zeller:1973ge + 6 12 2.500 15.000 0.630 1.3538e+04 2.7483e+02 Zeller:1973ge + 6 12 2.500 15.000 0.640 1.3236e+04 2.7266e+02 Zeller:1973ge + 6 12 2.500 15.000 0.650 1.2754e+04 2.6910e+02 Zeller:1973ge + 6 12 2.500 15.000 0.660 1.2180e+04 2.6065e+02 Zeller:1973ge + 6 12 2.500 15.000 0.670 1.1818e+04 2.5999e+02 Zeller:1973ge + 6 12 2.500 15.000 0.680 1.1692e+04 2.5488e+02 Zeller:1973ge + 6 12 2.500 15.000 0.690 1.1638e+04 2.5254e+02 Zeller:1973ge + 6 12 2.500 15.000 0.700 1.1364e+04 2.5114e+02 Zeller:1973ge + 6 12 2.500 15.000 0.710 1.1125e+04 2.5365e+02 Zeller:1973ge + 6 12 2.500 15.000 0.720 1.1090e+04 2.5175e+02 Zeller:1973ge + 6 12 2.500 15.000 0.730 1.0997e+04 2.4523e+02 Zeller:1973ge + 6 12 2.500 15.000 0.740 1.0853e+04 2.5178e+02 Zeller:1973ge + 6 12 2.500 15.000 0.750 1.0678e+04 2.4665e+02 Zeller:1973ge + 6 12 2.500 15.000 0.760 1.0439e+04 2.1064e+02 Zeller:1973ge + 6 12 2.500 15.000 0.770 1.0350e+04 2.4737e+02 Zeller:1973ge + 6 12 2.500 15.000 0.780 1.0412e+04 2.3532e+02 Zeller:1973ge + 6 12 2.700 15.000 0.040 3.8400e+01 2.7187e+01 Zeller:1973ge + 6 12 2.700 15.000 0.050 1.0200e+02 2.9121e+01 Zeller:1973ge + 6 12 2.700 15.000 0.060 2.0160e+02 5.1670e+01 Zeller:1973ge + 6 12 2.700 15.000 0.070 3.2760e+02 6.2768e+01 Zeller:1973ge + 6 12 2.700 15.000 0.080 4.9800e+02 7.0567e+01 Zeller:1973ge + 6 12 2.700 15.000 0.090 7.4400e+02 8.9726e+01 Zeller:1973ge + 6 12 2.700 15.000 0.100 1.0680e+03 1.0477e+02 Zeller:1973ge + 6 12 2.700 15.000 0.110 1.5564e+03 1.2451e+02 Zeller:1973ge + 6 12 2.700 15.000 0.120 2.2104e+03 1.6114e+02 Zeller:1973ge + 6 12 2.700 15.000 0.130 3.0012e+03 1.7767e+02 Zeller:1973ge + 6 12 2.700 15.000 0.140 4.0644e+03 2.0810e+02 Zeller:1973ge + 6 12 2.700 15.000 0.150 5.3508e+03 2.4239e+02 Zeller:1973ge + 6 12 2.700 15.000 0.160 6.8100e+03 2.7172e+02 Zeller:1973ge + 6 12 2.700 15.000 0.170 8.4660e+03 3.0139e+02 Zeller:1973ge + 6 12 2.700 15.000 0.180 1.0312e+04 3.3306e+02 Zeller:1973ge + 6 12 2.700 15.000 0.190 1.2383e+04 3.6034e+02 Zeller:1973ge + 6 12 2.700 15.000 0.200 1.4519e+04 3.9491e+02 Zeller:1973ge + 6 12 2.700 15.000 0.210 1.6394e+04 4.1970e+02 Zeller:1973ge + 6 12 2.700 15.000 0.220 1.8095e+04 4.3066e+02 Zeller:1973ge + 6 12 2.700 15.000 0.230 1.9872e+04 4.6103e+02 Zeller:1973ge + 6 12 2.700 15.000 0.240 2.1367e+04 4.6794e+02 Zeller:1973ge + 6 12 2.700 15.000 0.250 2.2540e+04 4.8235e+02 Zeller:1973ge + 6 12 2.700 15.000 0.260 2.3405e+04 4.8682e+02 Zeller:1973ge + 6 12 2.700 15.000 0.270 2.3879e+04 4.8952e+02 Zeller:1973ge + 6 12 2.700 15.000 0.280 2.4089e+04 4.8418e+02 Zeller:1973ge + 6 12 2.700 15.000 0.290 2.4115e+04 4.8230e+02 Zeller:1973ge + 6 12 2.700 15.000 0.300 2.3788e+04 4.7813e+02 Zeller:1973ge + 6 12 2.700 15.000 0.310 2.3069e+04 4.6368e+02 Zeller:1973ge + 6 12 2.700 15.000 0.320 2.2330e+04 4.5106e+02 Zeller:1973ge + 6 12 2.700 15.000 0.330 2.1797e+04 4.4248e+02 Zeller:1973ge + 6 12 2.700 15.000 0.340 2.1109e+04 4.3696e+02 Zeller:1973ge + 6 12 2.700 15.000 0.350 2.0072e+04 4.1751e+02 Zeller:1973ge + 6 12 2.700 15.000 0.360 1.9178e+04 4.0466e+02 Zeller:1973ge + 6 12 2.700 15.000 0.370 1.8389e+04 4.0088e+02 Zeller:1973ge + 6 12 2.700 15.000 0.380 1.7164e+04 3.7588e+02 Zeller:1973ge + 6 12 2.700 15.000 0.390 1.6001e+04 3.6162e+02 Zeller:1973ge + 6 12 2.700 15.000 0.400 1.5274e+04 3.5435e+02 Zeller:1973ge + 6 12 2.700 15.000 0.410 1.4850e+04 3.4304e+02 Zeller:1973ge + 6 12 2.700 15.000 0.420 1.4585e+04 3.4712e+02 Zeller:1973ge + 6 12 2.700 15.000 0.430 1.4419e+04 3.3597e+02 Zeller:1973ge + 6 12 2.700 15.000 0.440 1.4320e+04 3.4367e+02 Zeller:1973ge + 6 12 2.700 15.000 0.450 1.4089e+04 3.3391e+02 Zeller:1973ge + 6 12 2.700 15.000 0.460 1.4126e+04 3.3762e+02 Zeller:1973ge + 6 12 2.700 15.000 0.470 1.4316e+04 3.4072e+02 Zeller:1973ge + 6 12 2.700 15.000 0.480 1.4417e+04 3.3735e+02 Zeller:1973ge + 6 12 2.700 15.000 0.490 1.4477e+04 3.4310e+02 Zeller:1973ge + 6 12 2.700 15.000 0.500 1.4610e+04 3.3895e+02 Zeller:1973ge + 6 12 2.700 15.000 0.510 1.4958e+04 3.5450e+02 Zeller:1973ge + 6 12 2.700 15.000 0.520 1.5168e+04 3.4735e+02 Zeller:1973ge + 6 12 2.700 15.000 0.530 1.5276e+04 3.5440e+02 Zeller:1973ge + 6 12 2.700 15.000 0.540 1.5196e+04 3.4798e+02 Zeller:1973ge + 6 12 2.700 15.000 0.550 1.5020e+04 3.4697e+02 Zeller:1973ge + 6 12 2.700 15.000 0.560 1.4884e+04 3.4679e+02 Zeller:1973ge + 6 12 2.700 15.000 0.570 1.4846e+04 3.4295e+02 Zeller:1973ge + 6 12 2.700 15.000 0.580 1.4968e+04 3.4425e+02 Zeller:1973ge + 6 12 2.700 15.000 0.590 1.5070e+04 3.4961e+02 Zeller:1973ge + 6 12 2.700 15.000 0.600 1.4964e+04 3.4118e+02 Zeller:1973ge + 6 12 2.700 15.000 0.610 1.4754e+04 3.4524e+02 Zeller:1973ge + 6 12 2.700 15.000 0.620 1.4422e+04 3.3458e+02 Zeller:1973ge + 6 12 2.700 15.000 0.630 1.4188e+04 3.3057e+02 Zeller:1973ge + 6 12 2.700 15.000 0.640 1.4179e+04 3.2754e+02 Zeller:1973ge + 6 12 2.700 15.000 0.650 1.4090e+04 3.3676e+02 Zeller:1973ge + 6 12 2.700 15.000 0.660 1.3849e+04 3.1992e+02 Zeller:1973ge + 6 12 2.700 15.000 0.670 1.3637e+04 3.2865e+02 Zeller:1973ge + 6 12 2.700 15.000 0.680 1.2958e+04 3.1098e+02 Zeller:1973ge + 6 12 2.700 15.000 0.690 1.2222e+04 2.9944e+02 Zeller:1973ge + 6 12 2.700 15.000 0.700 1.2108e+04 2.9544e+02 Zeller:1973ge + 6 12 2.700 15.000 0.710 1.2320e+04 3.0801e+02 Zeller:1973ge + 6 12 2.700 15.000 0.720 1.2192e+04 2.9992e+02 Zeller:1973ge + 6 12 2.700 15.000 0.730 1.1844e+04 2.9373e+02 Zeller:1973ge + 6 12 2.700 15.000 0.740 1.1615e+04 2.9269e+02 Zeller:1973ge + 6 12 2.700 15.000 0.750 1.1545e+04 2.9209e+02 Zeller:1973ge + 6 12 2.700 15.000 0.760 1.1419e+04 2.9119e+02 Zeller:1973ge + 6 12 2.700 15.000 0.770 1.1111e+04 2.8999e+02 Zeller:1973ge + 6 12 2.700 15.000 0.780 1.0781e+04 2.7814e+02 Zeller:1973ge + 6 12 2.700 15.000 0.790 1.0704e+04 2.8366e+02 Zeller:1973ge + 6 12 2.700 15.000 0.800 1.0777e+04 2.8236e+02 Zeller:1973ge + 6 12 2.700 15.000 0.810 1.0834e+04 2.8817e+02 Zeller:1973ge + 6 12 2.700 15.000 0.820 1.0759e+04 2.9050e+02 Zeller:1973ge + 6 12 2.700 15.000 0.830 1.0576e+04 2.8131e+02 Zeller:1973ge + 6 12 2.700 15.000 0.840 1.0588e+04 2.8904e+02 Zeller:1973ge + 6 12 2.700 15.000 0.850 1.0532e+04 2.9175e+02 Zeller:1973ge + 6 12 2.700 15.000 0.860 1.0198e+04 2.7839e+02 Zeller:1973ge + 6 12 2.700 15.000 0.870 9.9708e+03 3.1725e+02 Zeller:1973ge + 6 12 2.700 15.000 0.880 9.8364e+03 2.8034e+02 Zeller:1973ge + 6 12 3.188 47.680 1.635 1.4810e+00 3.3620e-02 Arrington:1995hs + 6 12 3.188 47.680 1.645 1.5630e+00 2.9250e-02 Arrington:1995hs + 6 12 3.188 47.680 1.657 1.7810e+00 3.0590e-02 Arrington:1995hs + 6 12 3.188 47.680 1.668 2.0100e+00 3.2350e-02 Arrington:1995hs + 6 12 3.188 47.680 1.680 2.2350e+00 3.4090e-02 Arrington:1995hs + 6 12 3.188 47.680 1.692 2.3980e+00 3.5110e-02 Arrington:1995hs + 6 12 3.188 47.680 1.704 2.5360e+00 3.6200e-02 Arrington:1995hs + 6 12 3.188 47.680 1.716 2.7440e+00 3.7580e-02 Arrington:1995hs + 6 12 3.188 47.680 1.727 2.9860e+00 3.9230e-02 Arrington:1995hs + 6 12 3.188 47.680 1.739 3.2400e+00 4.0960e-02 Arrington:1995hs + 6 12 3.188 47.680 1.751 3.5390e+00 4.2780e-02 Arrington:1995hs + 6 12 3.188 47.680 1.762 3.9270e+00 4.6020e-02 Arrington:1995hs + 6 12 3.188 47.680 1.774 4.2830e+00 5.0330e-02 Arrington:1995hs + 6 12 3.188 47.680 1.786 4.5260e+00 5.3750e-02 Arrington:1995hs + 6 12 3.595 16.020 0.210 7.9870e+01 4.2470e+00 Day:1993md + 6 12 3.595 16.020 0.225 1.1590e+02 4.9990e+00 Day:1993md + 6 12 3.595 16.020 0.240 1.6210e+02 5.8460e+00 Day:1993md + 6 12 3.595 16.020 0.255 2.1540e+02 6.8190e+00 Day:1993md + 6 12 3.595 16.020 0.270 2.6840e+02 7.9340e+00 Day:1993md + 6 12 3.595 16.020 0.285 3.6270e+02 8.5860e+00 Day:1993md + 6 12 3.595 16.020 0.300 4.7090e+02 9.6100e+00 Day:1993md + 6 12 3.595 16.020 0.315 6.1080e+02 1.0840e+01 Day:1993md + 6 12 3.595 16.020 0.330 7.8750e+02 3.0520e+01 Day:1993md + 6 12 3.595 16.020 0.345 9.8430e+02 3.3920e+01 Day:1993md + 6 12 3.595 16.020 0.360 1.2150e+03 3.7700e+01 Day:1993md + 6 12 3.595 16.020 0.375 1.4200e+03 4.0490e+01 Day:1993md + 6 12 3.595 16.020 0.390 1.5980e+03 4.2840e+01 Day:1993md + 6 12 3.595 16.020 0.405 1.8690e+03 3.7950e+01 Day:1993md + 6 12 3.595 16.020 0.420 2.1250e+03 4.0160e+01 Day:1993md + 6 12 3.595 16.020 0.435 2.2830e+03 4.1380e+01 Day:1993md + 6 12 3.595 16.020 0.450 2.3100e+03 6.3090e+01 Day:1993md + 6 12 3.595 16.020 0.465 2.5340e+03 6.4400e+01 Day:1993md + 6 12 3.595 16.020 0.480 2.6450e+03 6.5000e+01 Day:1993md + 6 12 3.595 16.020 0.495 2.6510e+03 6.3900e+01 Day:1993md + 6 12 3.595 16.020 0.510 2.7400e+03 6.4440e+01 Day:1993md + 6 12 3.595 16.020 0.525 2.6070e+03 4.9450e+01 Day:1993md + 6 12 3.595 16.020 0.540 2.6530e+03 4.8890e+01 Day:1993md + 6 12 3.595 16.020 0.555 2.5710e+03 4.8310e+01 Day:1993md + 6 12 3.595 16.020 0.570 2.6060e+03 7.3660e+01 Day:1993md + 6 12 3.595 16.020 0.585 2.4250e+03 7.0080e+01 Day:1993md + 6 12 3.595 16.020 0.600 2.4210e+03 6.7020e+01 Day:1993md + 6 12 3.595 16.020 0.615 2.5080e+03 6.7000e+01 Day:1993md + 6 12 3.595 16.020 0.630 2.4070e+03 6.6110e+01 Day:1993md + 6 12 3.595 16.020 0.645 2.3190e+03 5.5950e+01 Day:1993md + 6 12 3.595 16.020 0.660 2.4350e+03 5.7020e+01 Day:1993md + 6 12 3.595 16.020 0.675 2.4290e+03 5.5850e+01 Day:1993md + 6 12 3.595 16.020 0.690 2.5520e+03 9.1670e+01 Day:1993md + 6 12 3.595 16.020 0.705 2.4970e+03 9.2820e+01 Day:1993md + 6 12 3.595 16.020 0.720 2.7380e+03 9.6960e+01 Day:1993md + 6 12 3.595 16.020 0.735 2.6360e+03 9.1400e+01 Day:1993md + 6 12 3.595 16.020 0.750 2.7660e+03 9.7520e+01 Day:1993md + 6 12 3.595 16.020 0.765 2.7450e+03 7.1180e+01 Day:1993md + 6 12 3.595 16.020 0.780 2.5570e+03 6.6480e+01 Day:1993md + 6 12 3.595 16.020 0.795 2.6930e+03 6.9600e+01 Day:1993md + 6 12 3.595 16.020 0.810 2.4400e+03 8.9870e+01 Day:1993md + 6 12 3.595 16.020 0.825 2.7810e+03 9.6580e+01 Day:1993md + 6 12 3.595 16.020 0.840 2.6750e+03 9.3790e+01 Day:1993md + 6 12 3.595 16.020 0.855 2.5930e+03 9.2430e+01 Day:1993md + 6 12 3.595 16.020 0.870 2.5050e+03 7.3950e+01 Day:1993md + 6 12 3.595 16.020 0.885 2.7360e+03 7.8170e+01 Day:1993md + 6 12 3.595 16.020 0.900 2.6740e+03 7.6540e+01 Day:1993md + 6 12 3.595 16.020 0.915 2.8510e+03 1.2580e+02 Day:1993md + 6 12 3.595 16.020 0.930 2.6540e+03 1.1920e+02 Day:1993md + 6 12 3.595 16.020 0.945 2.8000e+03 1.2510e+02 Day:1993md + 6 12 3.595 16.020 0.960 2.5310e+03 1.1820e+02 Day:1993md + 6 12 3.595 16.020 0.975 2.6140e+03 8.1560e+01 Day:1993md + 6 12 3.595 16.020 0.990 2.5980e+03 8.0600e+01 Day:1993md + 6 12 3.595 16.020 1.005 2.8040e+03 1.1120e+02 Day:1993md + 6 12 3.595 16.020 1.020 2.9450e+03 1.1610e+02 Day:1993md + 6 12 3.595 16.020 1.035 2.7400e+03 1.0910e+02 Day:1993md + 6 12 3.595 16.020 1.050 2.7340e+03 1.0660e+02 Day:1993md + 6 12 3.595 16.020 1.065 2.7910e+03 1.1090e+02 Day:1993md + 6 12 3.595 16.020 1.080 2.8040e+03 8.1830e+01 Day:1993md + 6 12 3.595 16.020 1.095 2.6290e+03 7.8210e+01 Day:1993md + 6 12 3.595 16.020 1.110 2.8400e+03 1.1450e+02 Day:1993md + 6 12 3.595 16.020 1.125 2.7660e+03 1.1390e+02 Day:1993md + 6 12 3.595 16.020 1.140 2.7760e+03 1.1650e+02 Day:1993md + 6 12 3.595 16.020 1.155 2.8850e+03 1.2020e+02 Day:1993md + 6 12 3.595 16.020 1.170 3.0620e+03 7.2990e+01 Day:1993md + 6 12 3.595 16.020 1.185 3.0240e+03 6.8060e+01 Day:1993md + 6 12 3.595 16.020 1.200 2.7430e+03 7.4940e+01 Day:1993md + 6 12 3.595 16.020 1.215 2.8360e+03 7.4760e+01 Day:1993md + 6 12 3.595 16.020 1.230 2.8890e+03 7.4130e+01 Day:1993md + 6 12 3.595 16.020 1.245 2.9920e+03 7.5510e+01 Day:1993md + 6 12 3.595 16.020 1.260 2.9380e+03 7.5200e+01 Day:1993md + 6 12 3.595 16.020 1.275 2.9650e+03 6.1060e+01 Day:1993md + 6 12 3.595 16.020 1.290 2.8720e+03 6.0770e+01 Day:1993md + 6 12 3.595 16.020 1.305 2.7380e+03 9.4620e+01 Day:1993md + 6 12 3.595 16.020 1.320 2.8340e+03 9.3410e+01 Day:1993md + 6 12 3.595 16.020 1.335 2.8110e+03 9.2270e+01 Day:1993md + 6 12 3.595 16.020 1.350 3.0710e+03 9.9130e+01 Day:1993md + 6 12 3.595 16.020 1.365 2.8140e+03 7.4480e+01 Day:1993md + 6 12 3.595 16.020 1.380 2.8350e+03 7.4120e+01 Day:1993md + 6 12 3.595 16.020 1.395 2.8550e+03 1.1150e+02 Day:1993md + 6 12 3.595 16.020 1.410 3.0070e+03 1.1350e+02 Day:1993md + 6 12 3.595 16.020 1.425 2.5610e+03 1.0360e+02 Day:1993md + 6 12 3.595 16.020 1.440 2.8160e+03 8.0240e+01 Day:1993md + 6 12 3.595 16.020 1.455 2.7540e+03 7.7590e+01 Day:1993md + 6 12 3.595 16.020 1.470 2.7990e+03 1.0790e+02 Day:1993md + 6 12 3.595 16.020 1.485 2.6010e+03 1.0360e+02 Day:1993md + 6 12 3.595 16.020 1.500 2.6600e+03 1.0520e+02 Day:1993md + 6 12 3.595 16.020 1.515 2.6670e+03 1.0540e+02 Day:1993md + 6 12 3.595 16.020 1.530 2.7290e+03 1.0770e+02 Day:1993md + 6 12 3.595 16.020 1.545 2.5150e+03 1.0480e+02 Day:1993md + 6 12 3.595 20.016 0.165 5.9550e-02 2.8440e-02 Day:1993md + 6 12 3.595 20.016 0.180 1.4390e-01 3.6090e-02 Day:1993md + 6 12 3.595 20.016 0.195 2.2000e-01 4.0460e-02 Day:1993md + 6 12 3.595 20.016 0.210 3.5310e-01 4.9290e-02 Day:1993md + 6 12 3.595 20.016 0.225 5.9720e-01 6.5580e-02 Day:1993md + 6 12 3.595 20.016 0.240 1.0270e+00 8.9160e-02 Day:1993md + 6 12 3.595 20.016 0.255 1.2490e+00 1.0150e-01 Day:1993md + 6 12 3.595 20.016 0.270 1.9240e+00 1.1270e-01 Day:1993md + 6 12 3.595 20.016 0.285 2.6550e+00 1.2840e-01 Day:1993md + 6 12 3.595 20.016 0.300 3.7690e+00 1.5250e-01 Day:1993md + 6 12 3.595 20.016 0.315 5.0060e+00 3.8180e-01 Day:1993md + 6 12 3.595 20.016 0.330 6.7110e+00 4.3480e-01 Day:1993md + 6 12 3.595 20.016 0.345 8.4460e+00 4.9010e-01 Day:1993md + 6 12 3.595 20.016 0.360 1.1740e+01 5.8180e-01 Day:1993md + 6 12 3.595 20.016 0.375 1.4480e+01 6.4550e-01 Day:1993md + 6 12 3.595 20.016 0.390 1.7800e+01 7.1960e-01 Day:1993md + 6 12 3.595 20.016 0.405 2.5050e+01 7.9510e-01 Day:1993md + 6 12 3.595 20.016 0.420 3.0350e+01 8.8470e-01 Day:1993md + 6 12 3.595 20.016 0.435 3.9920e+01 1.0350e+00 Day:1993md + 6 12 3.595 20.016 0.450 4.6960e+01 2.3040e+00 Day:1993md + 6 12 3.595 20.016 0.465 6.1050e+01 2.5620e+00 Day:1993md + 6 12 3.595 20.016 0.480 8.4440e+01 2.9990e+00 Day:1993md + 6 12 3.595 20.016 0.495 9.7260e+01 3.1620e+00 Day:1993md + 6 12 3.595 20.016 0.510 1.2210e+02 3.5480e+00 Day:1993md + 6 12 3.595 20.016 0.525 1.4380e+02 3.3490e+00 Day:1993md + 6 12 3.595 20.016 0.540 1.6770e+02 3.5750e+00 Day:1993md + 6 12 3.595 20.016 0.555 1.9860e+02 3.9590e+00 Day:1993md + 6 12 3.595 20.016 0.570 2.4550e+02 7.8870e+00 Day:1993md + 6 12 3.595 20.016 0.585 2.8180e+02 8.3900e+00 Day:1993md + 6 12 3.595 20.016 0.600 3.1430e+02 8.4820e+00 Day:1993md + 6 12 3.595 20.016 0.615 3.6190e+02 8.9340e+00 Day:1993md + 6 12 3.595 20.016 0.630 3.6560e+02 9.0860e+00 Day:1993md + 6 12 3.595 20.016 0.645 4.1680e+02 8.3140e+00 Day:1993md + 6 12 3.595 20.016 0.660 4.2180e+02 8.3190e+00 Day:1993md + 6 12 3.595 20.016 0.675 4.4120e+02 8.1820e+00 Day:1993md + 6 12 3.595 20.016 0.690 4.5510e+02 1.3840e+01 Day:1993md + 6 12 3.595 20.016 0.705 4.6200e+02 1.3780e+01 Day:1993md + 6 12 3.595 20.016 0.720 4.9470e+02 1.3680e+01 Day:1993md + 6 12 3.595 20.016 0.735 5.1210e+02 1.4340e+01 Day:1993md + 6 12 3.595 20.016 0.750 5.2090e+02 1.1030e+01 Day:1993md + 6 12 3.595 20.016 0.765 5.1760e+02 1.0580e+01 Day:1993md + 6 12 3.595 20.016 0.780 5.1780e+02 1.0740e+01 Day:1993md + 6 12 3.595 20.016 0.795 5.2570e+02 1.5370e+01 Day:1993md + 6 12 3.595 20.016 0.810 5.3390e+02 1.5500e+01 Day:1993md + 6 12 3.595 20.016 0.825 5.4390e+02 1.5490e+01 Day:1993md + 6 12 3.595 20.016 0.840 5.2970e+02 1.5420e+01 Day:1993md + 6 12 3.595 20.016 0.855 5.2230e+02 1.5390e+01 Day:1993md + 6 12 3.595 20.016 0.870 5.5890e+02 1.6040e+01 Day:1993md + 6 12 3.595 20.016 0.885 5.8700e+02 1.6840e+01 Day:1993md + 6 12 3.595 25.012 0.360 2.9920e-02 1.3940e-02 Day:1993md + 6 12 3.595 25.012 0.390 4.3800e-02 1.5970e-02 Day:1993md + 6 12 3.595 25.012 0.405 7.0700e-02 1.8370e-02 Day:1993md + 6 12 3.595 25.012 0.420 8.0210e-02 1.8580e-02 Day:1993md + 6 12 3.595 25.012 0.435 1.3600e-01 2.4440e-02 Day:1993md + 6 12 3.595 25.012 0.450 1.5990e-01 2.6620e-02 Day:1993md + 6 12 3.595 25.012 0.465 1.8850e-01 2.8610e-02 Day:1993md + 6 12 3.595 25.012 0.480 2.6640e-01 2.9820e-02 Day:1993md + 6 12 3.595 25.012 0.495 4.3830e-01 3.9390e-02 Day:1993md + 6 12 3.595 25.012 0.510 5.0800e-01 4.2780e-02 Day:1993md + 6 12 3.595 25.012 0.525 6.3530e-01 4.8220e-02 Day:1993md + 6 12 3.595 25.012 0.540 8.9350e-01 1.1630e-01 Day:1993md + 6 12 3.595 25.012 0.555 1.1710e+00 1.2450e-01 Day:1993md + 6 12 3.595 25.012 0.570 1.5930e+00 1.4540e-01 Day:1993md + 6 12 3.595 25.012 0.585 1.8610e+00 1.5500e-01 Day:1993md + 6 12 3.595 25.012 0.600 2.0430e+00 1.6680e-01 Day:1993md + 6 12 3.595 25.012 0.615 2.3500e+00 1.5100e-01 Day:1993md + 6 12 3.595 25.012 0.630 3.0690e+00 1.7320e-01 Day:1993md + 6 12 3.595 25.012 0.645 3.2040e+00 2.7280e-01 Day:1993md + 6 12 3.595 25.012 0.660 4.6830e+00 3.4340e-01 Day:1993md + 6 12 3.595 25.012 0.675 5.8680e+00 3.7750e-01 Day:1993md + 6 12 3.595 25.012 0.690 6.6100e+00 3.9070e-01 Day:1993md + 6 12 3.595 25.012 0.705 8.2640e+00 4.4280e-01 Day:1993md + 6 12 3.595 25.012 0.720 1.0670e+01 4.2740e-01 Day:1993md + 6 12 3.595 25.012 0.735 1.3280e+01 4.6970e-01 Day:1993md + 6 12 3.595 25.012 0.750 1.5720e+01 5.1570e-01 Day:1993md + 6 12 3.595 25.012 0.765 1.8600e+01 9.6290e-01 Day:1993md + 6 12 3.595 25.012 0.780 2.2460e+01 1.0540e+00 Day:1993md + 6 12 3.595 25.012 0.795 2.6740e+01 1.1370e+00 Day:1993md + 6 12 3.595 25.012 0.810 3.4050e+01 1.3050e+00 Day:1993md + 6 12 3.595 25.012 0.825 3.5080e+01 1.3120e+00 Day:1993md + 6 12 3.595 25.012 0.840 4.2240e+01 1.1380e+00 Day:1993md + 6 12 3.595 25.012 0.855 4.7230e+01 1.2120e+00 Day:1993md + 6 12 3.595 25.012 0.870 5.2190e+01 1.9330e+00 Day:1993md + 6 12 3.595 25.012 0.885 5.3990e+01 1.9640e+00 Day:1993md + 6 12 3.595 25.012 0.900 6.4130e+01 2.1130e+00 Day:1993md + 6 12 3.595 25.012 0.915 7.1990e+01 2.2700e+00 Day:1993md + 6 12 3.595 25.012 0.930 7.1310e+01 2.2480e+00 Day:1993md + 6 12 3.595 25.012 0.945 7.7470e+01 1.8330e+00 Day:1993md + 6 12 3.595 25.012 0.960 8.4070e+01 1.8980e+00 Day:1993md + 6 12 3.595 25.012 0.975 8.7150e+01 2.9140e+00 Day:1993md + 6 12 3.595 25.012 0.990 9.2960e+01 3.0530e+00 Day:1993md + 6 12 3.595 25.012 1.005 1.0120e+02 3.1480e+00 Day:1993md + 6 12 3.595 25.012 1.020 9.3660e+01 2.9020e+00 Day:1993md + 6 12 3.595 25.012 1.035 1.0280e+02 3.1610e+00 Day:1993md + 6 12 3.595 25.012 1.050 1.0130e+02 2.3300e+00 Day:1993md + 6 12 3.595 25.012 1.065 1.0550e+02 2.3360e+00 Day:1993md + 6 12 3.595 25.012 1.080 1.1320e+02 3.4850e+00 Day:1993md + 6 12 3.595 25.012 1.095 1.1410e+02 3.5320e+00 Day:1993md + 6 12 3.595 25.012 1.110 1.1550e+02 3.6360e+00 Day:1993md + 6 12 3.595 25.012 1.125 1.2200e+02 3.7510e+00 Day:1993md + 6 12 3.595 25.012 1.140 1.1970e+02 3.6390e+00 Day:1993md + 6 12 3.595 25.012 1.155 1.3080e+02 3.8340e+00 Day:1993md + 6 12 3.595 30.010 0.975 2.6750e+00 2.9530e-01 Day:1993md + 6 12 3.595 30.010 0.990 2.5500e+00 2.7420e-01 Day:1993md + 6 12 3.595 30.010 1.005 2.8370e+00 2.7850e-01 Day:1993md + 6 12 3.595 30.010 1.020 3.6740e+00 3.2870e-01 Day:1993md + 6 12 3.595 30.010 1.035 5.0640e+00 3.8440e-01 Day:1993md + 6 12 3.595 30.010 1.050 5.4370e+00 3.8390e-01 Day:1993md + 6 12 3.595 30.010 1.065 6.4630e+00 4.2270e-01 Day:1993md + 6 12 3.595 30.010 1.080 7.2080e+00 2.9120e-01 Day:1993md + 6 12 3.595 30.010 1.095 8.3410e+00 3.0990e-01 Day:1993md + 6 12 3.595 30.010 1.110 9.5450e+00 4.1270e-01 Day:1993md + 6 12 3.595 30.010 1.125 1.1240e+01 4.5340e-01 Day:1993md + 6 12 3.595 30.010 1.140 1.2110e+01 4.7700e-01 Day:1993md + 6 12 3.595 30.010 1.155 1.3110e+01 5.0240e-01 Day:1993md + 6 12 3.595 30.010 1.170 1.5080e+01 4.2580e-01 Day:1993md + 6 12 3.595 30.010 1.185 1.6750e+01 4.4570e-01 Day:1993md + 6 12 3.595 30.010 1.200 1.8020e+01 7.3290e-01 Day:1993md + 6 12 3.595 30.010 1.215 1.9410e+01 7.4080e-01 Day:1993md + 6 12 3.595 30.010 1.230 2.2670e+01 7.8970e-01 Day:1993md + 6 12 3.595 30.010 1.245 2.1680e+01 7.6580e-01 Day:1993md + 6 12 3.595 30.010 1.260 2.3170e+01 6.3400e-01 Day:1993md + 6 12 3.595 30.010 1.275 2.4620e+01 6.4980e-01 Day:1993md + 6 12 3.595 30.010 1.290 2.8480e+01 1.1310e+00 Day:1993md + 6 12 3.595 30.010 1.305 2.7890e+01 1.1210e+00 Day:1993md + 6 12 3.595 30.010 1.320 2.9290e+01 1.1290e+00 Day:1993md + 6 12 3.595 30.010 1.335 3.1350e+01 1.1440e+00 Day:1993md + 6 12 3.595 30.010 1.350 3.2110e+01 9.0640e-01 Day:1993md + 6 12 3.595 30.010 1.365 3.3310e+01 9.3340e-01 Day:1993md + 6 12 3.595 30.010 1.380 3.3990e+01 1.3480e+00 Day:1993md + 6 12 3.595 30.010 1.395 3.5930e+01 1.3930e+00 Day:1993md + 6 12 3.595 30.010 1.410 3.7210e+01 1.4000e+00 Day:1993md + 6 12 3.595 30.010 1.425 3.8120e+01 1.4290e+00 Day:1993md + 6 12 3.595 30.010 1.440 4.3400e+01 1.1270e+00 Day:1993md + 6 12 3.595 30.010 1.455 4.4030e+01 1.1280e+00 Day:1993md + 6 12 3.595 30.010 1.470 4.6600e+01 1.6150e+00 Day:1993md + 6 12 3.595 30.010 1.485 5.1830e+01 1.6880e+00 Day:1993md + 6 12 3.595 30.010 1.500 4.9720e+01 1.6430e+00 Day:1993md + 6 12 3.595 30.010 1.515 5.2890e+01 1.1770e+00 Day:1993md + 6 12 3.595 30.010 1.530 5.5510e+01 1.1980e+00 Day:1993md + 6 12 3.595 30.010 1.545 5.5900e+01 1.6050e+00 Day:1993md + 6 12 3.595 30.010 1.560 6.2170e+01 1.6640e+00 Day:1993md + 6 12 3.595 30.010 1.575 5.8910e+01 1.5800e+00 Day:1993md + 6 12 3.595 30.010 1.590 6.1060e+01 1.6670e+00 Day:1993md + 6 12 3.595 30.010 1.605 6.6630e+01 1.4710e+00 Day:1993md + 6 12 3.595 30.010 1.620 6.5630e+01 2.5130e+00 Day:1993md + 6 12 3.595 30.010 1.635 7.4620e+01 2.6890e+00 Day:1993md + 6 12 3.595 30.010 1.650 7.7410e+01 2.7660e+00 Day:1993md + 6 12 3.595 30.010 1.665 7.3860e+01 2.6830e+00 Day:1993md + 6 12 3.595 30.010 1.680 7.8620e+01 2.1940e+00 Day:1993md + 6 12 3.595 30.010 1.695 8.6650e+01 3.5620e+00 Day:1993md + 6 12 3.595 30.010 1.710 8.8780e+01 3.4740e+00 Day:1993md + 6 12 3.595 30.010 1.725 8.5290e+01 3.3240e+00 Day:1993md + 6 12 3.595 30.010 1.740 9.2630e+01 3.4670e+00 Day:1993md + 6 12 3.595 30.010 1.755 9.9540e+01 2.5510e+00 Day:1993md + 6 12 3.595 30.010 1.770 1.0100e+02 2.5460e+00 Day:1993md + 6 12 3.595 30.010 1.785 1.0410e+02 3.4600e+00 Day:1993md + 6 12 3.595 30.010 1.800 1.1050e+02 3.5520e+00 Day:1993md + 6 12 3.595 30.010 1.815 1.0820e+02 3.4770e+00 Day:1993md + 6 12 3.595 30.010 1.830 1.0670e+02 2.6220e+00 Day:1993md + 6 12 3.595 30.010 1.845 1.1710e+02 3.9250e+00 Day:1993md + 6 12 3.595 30.010 1.860 1.1290e+02 3.8190e+00 Day:1993md + 6 12 3.595 30.010 1.875 1.2040e+02 3.9020e+00 Day:1993md + 6 12 3.595 30.010 1.890 1.1830e+02 3.9370e+00 Day:1993md + 6 12 3.595 30.010 1.905 1.2560e+02 2.6750e+00 Day:1993md + 6 12 3.595 30.010 1.920 1.2940e+02 3.4680e+00 Day:1993md + 6 12 3.595 30.010 1.935 1.3440e+02 3.4460e+00 Day:1993md + 6 12 3.595 30.010 1.950 1.3260e+02 3.3900e+00 Day:1993md + 6 12 3.595 30.010 1.965 1.4210e+02 2.9230e+00 Day:1993md + 6 12 3.595 30.010 1.980 1.4360e+02 4.8200e+00 Day:1993md + 6 12 3.595 30.010 1.995 1.4790e+02 4.8540e+00 Day:1993md + 6 12 3.595 30.010 2.010 1.4460e+02 4.7740e+00 Day:1993md + 6 12 3.595 30.010 2.025 1.4510e+02 4.9090e+00 Day:1993md + 6 12 3.605 16.020 0.105 3.4190e+00 1.1180e-01 Day:1993md + 6 12 3.605 16.020 0.120 6.2230e+00 1.5570e-01 Day:1993md + 6 12 3.605 16.020 0.135 1.0310e+01 2.0380e-01 Day:1993md + 6 12 3.605 16.020 0.150 1.6480e+01 2.5070e-01 Day:1993md + 6 12 3.605 16.020 0.165 2.4880e+01 3.0720e-01 Day:1993md + 6 12 3.605 16.020 0.180 3.6690e+01 3.9790e-01 Day:1993md + 6 12 3.605 16.020 0.195 5.2060e+01 4.8270e-01 Day:1993md + 6 12 4.045 15.000 0.075 5.8300e-02 4.6090e-02 Arrington:1998ps + 6 12 4.045 15.000 0.090 4.9440e-01 1.8020e-01 Arrington:1998ps + 6 12 4.045 15.000 0.105 1.1980e+00 3.5290e-01 Arrington:1998ps + 6 12 4.045 15.000 0.120 1.3600e+00 4.4050e-01 Arrington:1998ps + 6 12 4.045 15.000 0.135 4.9920e+00 9.0360e-01 Arrington:1998ps + 6 12 4.045 15.000 0.150 7.2110e+00 1.1330e+00 Arrington:1998ps + 6 12 4.045 15.000 0.165 1.2020e+01 1.4840e+00 Arrington:1998ps + 6 12 4.045 15.000 0.180 1.6170e+01 1.7190e+00 Arrington:1998ps + 6 12 4.045 15.000 0.195 2.5340e+01 2.1230e+00 Arrington:1998ps + 6 12 4.045 15.000 0.210 3.6300e+01 2.5080e+00 Arrington:1998ps + 6 12 4.045 15.000 0.225 4.8290e+01 2.8590e+00 Arrington:1998ps + 6 12 4.045 15.000 0.240 7.1500e+01 3.4680e+00 Arrington:1998ps + 6 12 4.045 15.000 0.255 8.0040e+01 3.6420e+00 Arrington:1998ps + 6 12 4.045 15.000 0.270 1.1630e+02 4.3730e+00 Arrington:1998ps + 6 12 4.045 15.000 0.285 1.5810e+02 5.0910e+00 Arrington:1998ps + 6 12 4.045 15.000 0.300 2.1380e+02 5.9220e+00 Arrington:1998ps + 6 12 4.045 15.000 0.315 2.8190e+02 6.7940e+00 Arrington:1998ps + 6 12 4.045 15.000 0.330 3.4080e+02 7.4290e+00 Arrington:1998ps + 6 12 4.045 15.000 0.345 4.4360e+02 8.3840e+00 Arrington:1998ps + 6 12 4.045 15.000 0.360 5.4280e+02 9.0650e+00 Arrington:1998ps + 6 12 4.045 15.000 0.375 7.2450e+02 1.0800e+01 Arrington:1998ps + 6 12 4.045 15.000 0.390 9.1810e+02 1.2300e+01 Arrington:1998ps + 6 12 4.045 15.000 0.405 1.0950e+03 1.3360e+01 Arrington:1998ps + 6 12 4.045 15.000 0.420 1.2670e+03 1.4320e+01 Arrington:1998ps + 6 12 4.045 15.000 0.435 1.4810e+03 1.5550e+01 Arrington:1998ps + 6 12 4.045 15.000 0.450 1.6770e+03 1.6430e+01 Arrington:1998ps + 6 12 4.045 15.000 0.465 1.8400e+03 1.6930e+01 Arrington:1998ps + 6 12 4.045 15.000 0.480 1.9820e+03 1.4070e+01 Arrington:1998ps + 6 12 4.045 15.000 0.495 2.0690e+03 1.4070e+01 Arrington:1998ps + 6 12 4.045 15.000 0.510 2.1790e+03 1.3950e+01 Arrington:1998ps + 6 12 4.045 15.000 0.525 2.2440e+03 1.3910e+01 Arrington:1998ps + 6 12 4.045 15.000 0.540 2.2740e+03 1.3870e+01 Arrington:1998ps + 6 12 4.045 15.000 0.555 2.2650e+03 1.3360e+01 Arrington:1998ps + 6 12 4.045 15.000 0.570 2.2620e+03 1.3120e+01 Arrington:1998ps + 6 12 4.045 15.000 0.585 2.2380e+03 1.2980e+01 Arrington:1998ps + 6 12 4.045 15.000 0.600 2.2550e+03 1.3080e+01 Arrington:1998ps + 6 12 4.045 15.000 0.615 2.2420e+03 1.3000e+01 Arrington:1998ps + 6 12 4.045 15.000 0.630 2.2010e+03 1.7610e+01 Arrington:1998ps + 6 12 4.045 15.000 0.645 2.2120e+03 1.7470e+01 Arrington:1998ps + 6 12 4.045 15.000 0.660 2.2040e+03 1.7190e+01 Arrington:1998ps + 6 12 4.045 15.000 0.675 2.2480e+03 1.7760e+01 Arrington:1998ps + 6 12 4.045 15.000 0.690 2.2390e+03 1.7460e+01 Arrington:1998ps + 6 12 4.045 15.000 0.705 2.3250e+03 1.7900e+01 Arrington:1998ps + 6 12 4.045 15.000 0.720 2.3690e+03 1.8240e+01 Arrington:1998ps + 6 12 4.045 15.000 0.735 2.3680e+03 1.8230e+01 Arrington:1998ps + 6 12 4.045 15.000 0.750 2.3830e+03 1.8110e+01 Arrington:1998ps + 6 12 4.045 15.000 0.765 2.3920e+03 1.8180e+01 Arrington:1998ps + 6 12 4.045 15.000 0.780 2.4030e+03 1.8020e+01 Arrington:1998ps + 6 12 4.045 15.000 0.795 2.4130e+03 1.8100e+01 Arrington:1998ps + 6 12 4.045 15.000 0.810 2.4430e+03 1.8080e+01 Arrington:1998ps + 6 12 4.045 15.000 0.825 2.4490e+03 1.8120e+01 Arrington:1998ps + 6 12 4.045 15.000 0.840 2.4540e+03 1.7910e+01 Arrington:1998ps + 6 12 4.045 15.000 0.855 2.4650e+03 1.7990e+01 Arrington:1998ps + 6 12 4.045 15.000 0.870 2.5150e+03 1.8110e+01 Arrington:1998ps + 6 12 4.045 15.000 0.885 2.5090e+03 1.8060e+01 Arrington:1998ps + 6 12 4.045 15.000 0.900 2.4760e+03 1.7830e+01 Arrington:1998ps + 6 12 4.045 15.000 0.915 2.4600e+03 1.7710e+01 Arrington:1998ps + 6 12 4.045 15.000 0.930 2.4660e+03 1.7510e+01 Arrington:1998ps + 6 12 4.045 15.000 0.945 2.4600e+03 1.7470e+01 Arrington:1998ps + 6 12 4.045 15.000 0.960 2.4850e+03 1.7640e+01 Arrington:1998ps + 6 12 4.045 15.000 0.975 2.5090e+03 1.7810e+01 Arrington:1998ps + 6 12 4.045 15.000 0.990 2.4690e+03 1.7780e+01 Arrington:1998ps + 6 12 4.045 15.000 1.005 2.5430e+03 1.8310e+01 Arrington:1998ps + 6 12 4.045 15.000 1.020 2.5590e+03 1.8420e+01 Arrington:1998ps + 6 12 4.045 15.000 1.035 2.5830e+03 1.8860e+01 Arrington:1998ps + 6 12 4.045 15.000 1.050 2.6060e+03 1.9280e+01 Arrington:1998ps + 6 12 4.045 15.000 1.065 2.5980e+03 1.9480e+01 Arrington:1998ps + 6 12 4.045 15.000 1.080 2.6020e+03 1.9780e+01 Arrington:1998ps + 6 12 4.045 15.000 1.095 2.6090e+03 2.0350e+01 Arrington:1998ps + 6 12 4.045 15.000 1.110 2.6660e+03 2.1060e+01 Arrington:1998ps + 6 12 4.045 23.000 0.240 3.8420e-04 3.0370e-04 Arrington:1998ps + 6 12 4.045 23.000 0.255 3.8230e-04 3.0220e-04 Arrington:1998ps + 6 12 4.045 23.000 0.270 3.8020e-04 3.0060e-04 Arrington:1998ps + 6 12 4.045 23.000 0.285 4.9570e-04 2.7550e-04 Arrington:1998ps + 6 12 4.045 23.000 0.300 1.2360e-03 4.0990e-04 Arrington:1998ps + 6 12 4.045 23.000 0.315 2.3410e-03 5.5080e-04 Arrington:1998ps + 6 12 4.045 23.000 0.330 3.7130e-03 6.8910e-04 Arrington:1998ps + 6 12 4.045 23.000 0.345 4.9750e-03 7.9650e-04 Arrington:1998ps + 6 12 4.045 23.000 0.360 5.6170e-03 8.4650e-04 Arrington:1998ps + 6 12 4.045 23.000 0.375 9.8030e-03 1.1170e-03 Arrington:1998ps + 6 12 4.045 23.000 0.390 1.4200e-02 1.3480e-03 Arrington:1998ps + 6 12 4.045 23.000 0.405 2.1940e-02 1.6740e-03 Arrington:1998ps + 6 12 4.045 23.000 0.420 3.0340e-02 1.9660e-03 Arrington:1998ps + 6 12 4.045 23.000 0.435 4.7650e-02 2.4640e-03 Arrington:1998ps + 6 12 4.045 23.000 0.450 7.0980e-02 3.0020e-03 Arrington:1998ps + 6 12 4.045 23.000 0.465 9.2610e-02 3.4270e-03 Arrington:1998ps + 6 12 4.045 23.000 0.480 1.1340e-01 3.7420e-03 Arrington:1998ps + 6 12 4.045 23.000 0.495 1.6260e-01 4.4550e-03 Arrington:1998ps + 6 12 4.045 23.000 0.510 2.1550e-01 5.1290e-03 Arrington:1998ps + 6 12 4.045 23.000 0.525 2.6900e-01 5.7030e-03 Arrington:1998ps + 6 12 4.045 23.000 0.540 3.3700e-01 6.4030e-03 Arrington:1998ps + 6 12 4.045 23.000 0.555 4.4570e-01 7.3990e-03 Arrington:1998ps + 6 12 4.045 23.000 0.570 5.5000e-01 8.2500e-03 Arrington:1998ps + 6 12 4.045 23.000 0.585 6.7560e-01 9.1880e-03 Arrington:1998ps + 6 12 4.045 23.000 0.600 8.4330e-01 1.0370e-02 Arrington:1998ps + 6 12 4.045 23.000 0.615 1.0390e+00 1.1740e-02 Arrington:1998ps + 6 12 4.045 23.000 0.630 1.2730e+00 1.9990e-02 Arrington:1998ps + 6 12 4.045 23.000 0.645 1.5570e+00 2.2110e-02 Arrington:1998ps + 6 12 4.045 23.000 0.660 1.9260e+00 2.4650e-02 Arrington:1998ps + 6 12 4.045 23.000 0.675 2.2640e+00 2.6940e-02 Arrington:1998ps + 6 12 4.045 23.000 0.690 2.8060e+00 3.0300e-02 Arrington:1998ps + 6 12 4.045 23.000 0.705 3.4490e+00 3.3800e-02 Arrington:1998ps + 6 12 4.045 23.000 0.720 4.1630e+00 3.7880e-02 Arrington:1998ps + 6 12 4.045 23.000 0.735 5.0820e+00 4.2690e-02 Arrington:1998ps + 6 12 4.045 23.000 0.750 6.1950e+00 4.7700e-02 Arrington:1998ps + 6 12 4.045 23.000 0.765 7.4940e+00 5.3960e-02 Arrington:1998ps + 6 12 4.045 23.000 0.780 9.0960e+00 2.0470e-01 Arrington:1998ps + 6 12 4.045 23.000 0.795 1.0850e+01 2.2240e-01 Arrington:1998ps + 6 12 4.045 23.000 0.810 1.3270e+01 2.4280e-01 Arrington:1998ps + 6 12 4.045 23.000 0.825 1.6230e+01 2.7270e-01 Arrington:1998ps + 6 12 4.045 23.000 0.840 1.9270e+01 2.9680e-01 Arrington:1998ps + 6 12 4.045 23.000 0.855 2.2140e+01 3.1660e-01 Arrington:1998ps + 6 12 4.045 23.000 0.870 2.6770e+01 3.4800e-01 Arrington:1998ps + 6 12 4.045 23.000 0.885 2.9930e+01 3.6510e-01 Arrington:1998ps + 6 12 4.045 23.000 0.900 3.4660e+01 3.9170e-01 Arrington:1998ps + 6 12 4.045 23.000 0.915 3.9280e+01 4.1640e-01 Arrington:1998ps + 6 12 4.045 23.000 0.930 4.3630e+01 4.3630e-01 Arrington:1998ps + 6 12 4.045 23.000 0.945 4.8310e+01 4.5410e-01 Arrington:1998ps + 6 12 4.045 23.000 0.960 5.3280e+01 4.7420e-01 Arrington:1998ps + 6 12 4.045 23.000 0.975 5.6830e+01 4.8870e-01 Arrington:1998ps + 6 12 4.045 23.000 0.990 6.0630e+01 5.0320e-01 Arrington:1998ps + 6 12 4.045 23.000 1.005 6.5210e+01 5.1520e-01 Arrington:1998ps + 6 12 4.045 23.000 1.020 6.8030e+01 5.3060e-01 Arrington:1998ps + 6 12 4.045 23.000 1.035 7.0910e+01 5.4600e-01 Arrington:1998ps + 6 12 4.045 23.000 1.050 7.4710e+01 5.6030e-01 Arrington:1998ps + 6 12 4.045 23.000 1.065 7.9310e+01 5.8690e-01 Arrington:1998ps + 6 12 4.045 23.000 1.080 8.1960e+01 6.0650e-01 Arrington:1998ps + 6 12 4.045 23.000 1.095 8.5220e+01 6.3060e-01 Arrington:1998ps + 6 12 4.045 23.000 1.110 8.6920e+01 6.4320e-01 Arrington:1998ps + 6 12 4.045 30.000 0.660 9.0760e-04 4.8140e-04 Arrington:1998ps + 6 12 4.045 30.000 0.675 3.2780e-04 2.1780e-04 Arrington:1998ps + 6 12 4.045 30.000 0.690 4.1480e-04 2.3050e-04 Arrington:1998ps + 6 12 4.045 30.000 0.705 2.9710e-04 1.9740e-04 Arrington:1998ps + 6 12 4.045 30.000 0.720 6.6740e-04 2.6960e-04 Arrington:1998ps + 6 12 4.045 30.000 0.735 1.3800e-03 3.6740e-04 Arrington:1998ps + 6 12 4.045 30.000 0.750 1.9790e-03 4.3140e-04 Arrington:1998ps + 6 12 4.045 30.000 0.765 2.5690e-03 4.8530e-04 Arrington:1998ps + 6 12 4.045 30.000 0.780 3.3340e-03 5.4810e-04 Arrington:1998ps + 6 12 4.045 30.000 0.795 3.4700e-03 5.5550e-04 Arrington:1998ps + 6 12 4.045 30.000 0.810 3.7040e-03 5.7150e-04 Arrington:1998ps + 6 12 4.045 30.000 0.825 6.1550e-03 7.3060e-04 Arrington:1998ps + 6 12 4.045 30.000 0.840 9.2180e-03 8.8680e-04 Arrington:1998ps + 6 12 4.045 30.000 0.855 1.2490e-02 1.0270e-03 Arrington:1998ps + 6 12 4.045 30.000 0.870 1.3730e-02 1.0700e-03 Arrington:1998ps + 6 12 4.045 30.000 0.885 1.4800e-02 1.1060e-03 Arrington:1998ps + 6 12 4.045 30.000 0.900 1.9820e-02 1.2740e-03 Arrington:1998ps + 6 12 4.045 30.000 0.915 2.5740e-02 1.4440e-03 Arrington:1998ps + 6 12 4.045 30.000 0.930 3.0290e-02 1.5630e-03 Arrington:1998ps + 6 12 4.045 30.000 0.945 3.6360e-02 1.6980e-03 Arrington:1998ps + 6 12 4.045 30.000 0.960 4.6640e-02 1.9220e-03 Arrington:1998ps + 6 12 4.045 30.000 0.975 5.5510e-02 2.0260e-03 Arrington:1998ps + 6 12 4.045 30.000 0.990 6.5230e-02 2.1790e-03 Arrington:1998ps + 6 12 4.045 30.000 1.005 7.9770e-02 2.4010e-03 Arrington:1998ps + 6 12 4.045 30.000 1.020 9.9530e-02 2.6670e-03 Arrington:1998ps + 6 12 4.045 30.000 1.035 1.1650e-01 2.8780e-03 Arrington:1998ps + 6 12 4.045 30.000 1.050 1.4420e-01 3.2160e-03 Arrington:1998ps + 6 12 4.045 30.000 1.065 1.6600e-01 3.4530e-03 Arrington:1998ps + 6 12 4.045 30.000 1.080 2.0720e-01 3.8750e-03 Arrington:1998ps + 6 12 4.045 30.000 1.095 2.5200e-01 4.2840e-03 Arrington:1998ps + 6 12 4.045 30.000 1.110 2.9890e-01 4.6930e-03 Arrington:1998ps + 6 12 4.045 30.000 1.125 3.6450e-01 6.1970e-03 Arrington:1998ps + 6 12 4.045 30.000 1.140 4.4270e-01 6.8620e-03 Arrington:1998ps + 6 12 4.045 30.000 1.155 5.2170e-01 7.4080e-03 Arrington:1998ps + 6 12 4.045 30.000 1.170 6.3700e-01 8.2170e-03 Arrington:1998ps + 6 12 4.045 30.000 1.185 7.6120e-01 8.9820e-03 Arrington:1998ps + 6 12 4.045 30.000 1.200 9.1650e-01 9.8980e-03 Arrington:1998ps + 6 12 4.045 30.000 1.215 1.0620e+00 1.0730e-02 Arrington:1998ps + 6 12 4.045 30.000 1.230 1.2930e+00 1.1900e-02 Arrington:1998ps + 6 12 4.045 30.000 1.245 1.5530e+00 1.3360e-02 Arrington:1998ps + 6 12 4.045 30.000 1.260 1.8270e+00 1.4800e-02 Arrington:1998ps + 6 12 4.045 30.000 1.275 2.1550e+00 1.6380e-02 Arrington:1998ps + 6 12 4.045 30.000 1.290 2.5370e+00 4.2620e-02 Arrington:1998ps + 6 12 4.045 30.000 1.305 2.9560e+00 4.5820e-02 Arrington:1998ps + 6 12 4.045 30.000 1.320 3.3960e+00 4.8900e-02 Arrington:1998ps + 6 12 4.045 30.000 1.335 3.8480e+00 5.1560e-02 Arrington:1998ps + 6 12 4.045 30.000 1.350 4.3540e+00 5.4860e-02 Arrington:1998ps + 6 12 4.045 30.000 1.365 4.7900e+00 5.7480e-02 Arrington:1998ps + 6 12 4.045 30.000 1.380 5.3630e+00 6.0600e-02 Arrington:1998ps + 6 12 4.045 30.000 1.395 6.1610e+00 6.4690e-02 Arrington:1998ps + 6 12 4.045 30.000 1.410 6.6490e+00 6.7150e-02 Arrington:1998ps + 6 12 4.045 30.000 1.425 7.1290e+00 6.4870e-02 Arrington:1998ps + 6 12 4.045 30.000 1.440 7.8920e+00 6.7870e-02 Arrington:1998ps + 6 12 4.045 30.000 1.455 8.4040e+00 6.9750e-02 Arrington:1998ps + 6 12 4.045 30.000 1.470 9.1190e+00 7.2040e-02 Arrington:1998ps + 6 12 4.045 30.000 1.485 9.8170e+00 7.5590e-02 Arrington:1998ps + 6 12 4.045 30.000 1.500 1.0440e+01 7.8300e-02 Arrington:1998ps + 6 12 4.045 30.000 1.515 1.1040e+01 8.1700e-02 Arrington:1998ps + 6 12 4.045 30.000 1.530 1.1810e+01 8.6210e-02 Arrington:1998ps + 6 12 4.045 30.000 1.545 1.2250e+01 1.7890e-01 Arrington:1998ps + 6 12 4.045 30.000 1.560 1.3210e+01 1.8360e-01 Arrington:1998ps + 6 12 4.045 30.000 1.575 1.4080e+01 1.8870e-01 Arrington:1998ps + 6 12 4.045 30.000 1.590 1.4770e+01 1.9200e-01 Arrington:1998ps + 6 12 4.045 30.000 1.605 1.5620e+01 1.9680e-01 Arrington:1998ps + 6 12 4.045 30.000 1.620 1.6110e+01 1.9980e-01 Arrington:1998ps + 6 12 4.045 30.000 1.635 1.7400e+01 2.0710e-01 Arrington:1998ps + 6 12 4.045 30.000 1.650 1.8150e+01 2.1050e-01 Arrington:1998ps + 6 12 4.045 30.000 1.665 1.8980e+01 2.1450e-01 Arrington:1998ps + 6 12 4.045 30.000 1.680 2.0220e+01 2.2040e-01 Arrington:1998ps + 6 12 4.045 30.000 1.695 2.1110e+01 2.2380e-01 Arrington:1998ps + 6 12 4.045 30.000 1.710 2.2350e+01 2.3240e-01 Arrington:1998ps + 6 12 4.045 30.000 1.725 2.3950e+01 2.3950e-01 Arrington:1998ps + 6 12 4.045 30.000 1.740 2.4740e+01 2.4250e-01 Arrington:1998ps + 6 12 4.045 30.000 1.755 2.6370e+01 2.5050e-01 Arrington:1998ps + 6 12 4.045 30.000 1.770 2.7550e+01 2.5620e-01 Arrington:1998ps + 6 12 4.045 30.000 1.785 2.8910e+01 2.6310e-01 Arrington:1998ps + 6 12 4.045 30.000 1.800 3.0150e+01 2.6830e-01 Arrington:1998ps + 6 12 4.045 30.000 1.815 3.1960e+01 2.7810e-01 Arrington:1998ps + 6 12 4.045 30.000 1.830 3.3010e+01 2.8720e-01 Arrington:1998ps + 6 12 4.045 30.000 1.845 3.5110e+01 3.0190e-01 Arrington:1998ps + 6 12 4.045 30.000 1.860 3.6580e+01 3.1820e-01 Arrington:1998ps + 6 12 4.045 30.000 1.875 3.8570e+01 3.3170e-01 Arrington:1998ps + 6 12 4.045 30.000 1.890 4.0700e+01 3.5410e-01 Arrington:1998ps + 6 12 4.045 37.000 1.425 2.0090e-02 2.6720e-03 Arrington:1998ps + 6 12 4.045 37.000 1.440 2.6610e-02 2.8950e-03 Arrington:1998ps + 6 12 4.045 37.000 1.455 3.1430e-02 2.9760e-03 Arrington:1998ps + 6 12 4.045 37.000 1.470 3.6510e-02 3.0700e-03 Arrington:1998ps + 6 12 4.045 37.000 1.485 4.9210e-02 3.4500e-03 Arrington:1998ps + 6 12 4.045 37.000 1.500 5.9270e-02 3.6980e-03 Arrington:1998ps + 6 12 4.045 37.000 1.515 7.8000e-02 4.1960e-03 Arrington:1998ps + 6 12 4.045 37.000 1.530 9.0750e-02 4.4920e-03 Arrington:1998ps + 6 12 4.045 37.000 1.545 9.6900e-02 4.6120e-03 Arrington:1998ps + 6 12 4.045 37.000 1.560 1.1770e-01 5.0380e-03 Arrington:1998ps + 6 12 4.045 37.000 1.575 1.4870e-01 5.6360e-03 Arrington:1998ps + 6 12 4.045 37.000 1.590 1.6330e-01 5.8790e-03 Arrington:1998ps + 6 12 4.045 37.000 1.605 2.0750e-01 6.6190e-03 Arrington:1998ps + 6 12 4.045 37.000 1.620 2.4230e-01 7.1240e-03 Arrington:1998ps + 6 12 4.045 37.000 1.635 2.9250e-01 7.8100e-03 Arrington:1998ps + 6 12 4.045 37.000 1.650 3.4040e-01 8.4760e-03 Arrington:1998ps + 6 12 4.045 37.000 1.665 4.1890e-01 9.3410e-03 Arrington:1998ps + 6 12 4.045 37.000 1.680 4.9650e-01 1.0130e-02 Arrington:1998ps + 6 12 4.045 37.000 1.695 5.6640e-01 1.0820e-02 Arrington:1998ps + 6 12 4.045 37.000 1.710 6.4940e-01 1.1560e-02 Arrington:1998ps + 6 12 4.045 37.000 1.725 7.5800e-01 1.2430e-02 Arrington:1998ps + 6 12 4.045 37.000 1.740 8.6650e-01 1.3260e-02 Arrington:1998ps + 6 12 4.045 37.000 1.755 9.9270e-01 1.4100e-02 Arrington:1998ps + 6 12 4.045 37.000 1.770 1.1370e+00 1.5010e-02 Arrington:1998ps + 6 12 4.045 37.000 1.785 1.2550e+00 1.5810e-02 Arrington:1998ps + 6 12 4.045 37.000 1.800 1.4340e+00 1.6780e-02 Arrington:1998ps + 6 12 4.045 37.000 1.815 1.5570e+00 1.7590e-02 Arrington:1998ps + 6 12 4.045 37.000 1.830 1.7440e+00 1.8840e-02 Arrington:1998ps + 6 12 4.045 37.000 1.845 1.8660e+00 1.9590e-02 Arrington:1998ps + 6 12 4.045 37.000 1.860 2.0510e+00 2.0920e-02 Arrington:1998ps + 6 12 4.045 37.000 1.875 2.2690e+00 2.2460e-02 Arrington:1998ps + 6 12 4.045 37.000 1.890 2.4870e+00 2.4370e-02 Arrington:1998ps + 6 12 4.045 45.000 1.680 6.3460e-04 5.0170e-04 Arrington:1998ps + 6 12 4.045 45.000 1.695 3.1570e-04 3.8660e-04 Arrington:1998ps + 6 12 4.045 45.000 1.710 2.8290e-03 9.6860e-04 Arrington:1998ps + 6 12 4.045 45.000 1.725 1.2450e-03 6.6050e-04 Arrington:1998ps + 6 12 4.045 45.000 1.740 1.5630e-03 7.3300e-04 Arrington:1998ps + 6 12 4.045 45.000 1.755 1.2430e-03 6.5900e-04 Arrington:1998ps + 6 12 4.045 45.000 1.770 2.8100e-03 9.6240e-04 Arrington:1998ps + 6 12 4.045 45.000 1.785 3.7160e-03 1.0950e-03 Arrington:1998ps + 6 12 4.045 45.000 1.800 5.1880e-03 7.6470e-04 Arrington:1998ps + 6 12 4.045 45.000 1.815 4.9120e-03 7.0880e-04 Arrington:1998ps + 6 12 4.045 45.000 1.830 7.1510e-03 8.1450e-04 Arrington:1998ps + 6 12 4.045 45.000 1.845 8.0320e-03 8.3290e-04 Arrington:1998ps + 6 12 4.045 45.000 1.860 1.0220e-02 9.1780e-04 Arrington:1998ps + 6 12 4.045 45.000 1.875 9.9570e-03 8.9410e-04 Arrington:1998ps + 6 12 4.045 45.000 1.890 1.3650e-02 1.0410e-03 Arrington:1998ps + 6 12 4.045 45.000 1.905 1.6610e-02 1.1460e-03 Arrington:1998ps + 6 12 4.045 45.000 1.920 2.1470e-02 1.3010e-03 Arrington:1998ps + 6 12 4.045 45.000 1.935 2.6580e-02 1.4510e-03 Arrington:1998ps + 6 12 4.045 45.000 1.950 3.2090e-02 1.6080e-03 Arrington:1998ps + 6 12 4.045 45.000 1.965 3.7130e-02 1.9310e-03 Arrington:1998ps + 6 12 4.045 45.000 1.980 4.5070e-02 2.1140e-03 Arrington:1998ps + 6 12 4.045 45.000 1.995 5.5640e-02 2.3420e-03 Arrington:1998ps + 6 12 4.045 45.000 2.010 6.2290e-02 2.4670e-03 Arrington:1998ps + 6 12 4.045 45.000 2.025 7.9930e-02 2.8140e-03 Arrington:1998ps + 6 12 4.045 45.000 2.040 9.0860e-02 2.9980e-03 Arrington:1998ps + 6 12 4.045 45.000 2.055 1.1220e-01 3.3320e-03 Arrington:1998ps + 6 12 4.045 45.000 2.070 1.3480e-01 3.6400e-03 Arrington:1998ps + 6 12 4.045 45.000 2.085 1.6540e-01 4.0190e-03 Arrington:1998ps + 6 12 4.045 45.000 2.100 1.8890e-01 4.2690e-03 Arrington:1998ps + 6 12 4.045 45.000 2.115 2.1040e-01 4.5030e-03 Arrington:1998ps + 6 12 4.045 45.000 2.130 2.6230e-01 4.6690e-03 Arrington:1998ps + 6 12 4.045 45.000 2.145 2.9690e-01 4.9290e-03 Arrington:1998ps + 6 12 4.045 45.000 2.160 3.4130e-01 5.2900e-03 Arrington:1998ps + 6 12 4.045 45.000 2.175 3.9480e-01 5.7250e-03 Arrington:1998ps + 6 12 4.045 45.000 2.190 4.4550e-01 6.1920e-03 Arrington:1998ps + 6 12 4.045 45.000 2.205 4.9830e-01 6.7270e-03 Arrington:1998ps + 6 12 4.045 45.000 2.220 5.4770e-01 1.4400e-02 Arrington:1998ps + 6 12 4.045 45.000 2.235 6.1000e-01 1.5070e-02 Arrington:1998ps + 6 12 4.045 45.000 2.250 6.7440e-01 1.5780e-02 Arrington:1998ps + 6 12 4.045 45.000 2.265 7.8660e-01 1.6910e-02 Arrington:1998ps + 6 12 4.045 45.000 2.280 8.5350e-01 1.7500e-02 Arrington:1998ps + 6 12 4.045 45.000 2.295 9.2110e-01 1.8150e-02 Arrington:1998ps + 6 12 4.045 45.000 2.310 1.0170e+00 1.9020e-02 Arrington:1998ps + 6 12 4.045 45.000 2.325 1.1440e+00 2.0130e-02 Arrington:1998ps + 6 12 4.045 45.000 2.340 1.2370e+00 2.0910e-02 Arrington:1998ps + 6 12 4.045 45.000 2.355 1.3960e+00 2.2060e-02 Arrington:1998ps + 6 12 4.045 45.000 2.370 1.5230e+00 2.3000e-02 Arrington:1998ps + 6 12 4.045 45.000 2.385 1.6250e+00 2.3720e-02 Arrington:1998ps + 6 12 4.045 45.000 2.400 1.8060e+00 2.5100e-02 Arrington:1998ps + 6 12 4.045 45.000 2.415 1.9680e+00 2.6370e-02 Arrington:1998ps + 6 12 4.045 45.000 2.430 2.1580e+00 2.8050e-02 Arrington:1998ps + 6 12 4.045 45.000 2.445 2.4280e+00 3.0590e-02 Arrington:1998ps + 6 12 4.045 45.000 2.460 2.5760e+00 3.2970e-02 Arrington:1998ps + 6 12 4.045 45.000 2.460 2.5760e+00 3.2970e-02 Arrington:1998ps + 6 12 4.045 55.000 2.145 1.4840e-03 6.6450e-04 Arrington:1998ps + 6 12 4.045 55.000 2.160 6.6860e-04 4.7960e-04 Arrington:1998ps + 6 12 4.045 55.000 2.175 1.2670e-03 5.8510e-04 Arrington:1998ps + 6 12 4.045 55.000 2.190 2.2420e-03 6.9390e-04 Arrington:1998ps + 6 12 4.045 55.000 2.205 4.0350e-04 3.2520e-04 Arrington:1998ps + 6 12 4.045 55.000 2.220 1.1970e-03 5.2860e-04 Arrington:1998ps + 6 12 4.045 55.000 2.235 2.3500e-03 7.1600e-04 Arrington:1998ps + 6 12 4.045 55.000 2.250 1.7570e-03 6.3940e-04 Arrington:1998ps + 6 12 4.045 55.000 2.265 3.6530e-03 8.8400e-04 Arrington:1998ps + 6 12 4.045 55.000 2.280 2.8600e-03 7.7190e-04 Arrington:1998ps + 6 12 4.045 55.000 2.295 5.3020e-03 1.0360e-03 Arrington:1998ps + 6 12 4.045 55.000 2.310 5.8550e-03 1.0940e-03 Arrington:1998ps + 6 12 4.045 55.000 2.325 6.7370e-03 1.1730e-03 Arrington:1998ps + 6 12 4.045 55.000 2.340 8.7600e-03 1.3170e-03 Arrington:1998ps + 6 12 4.045 55.000 2.355 1.0920e-02 1.4670e-03 Arrington:1998ps + 6 12 4.045 55.000 2.370 1.2930e-02 1.5870e-03 Arrington:1998ps + 6 12 4.045 55.000 2.385 1.5790e-02 9.5210e-04 Arrington:1998ps + 6 12 4.045 55.000 2.400 1.8270e-02 9.5190e-04 Arrington:1998ps + 6 12 4.045 55.000 2.415 2.5650e-02 1.0570e-03 Arrington:1998ps + 6 12 4.045 55.000 2.430 2.9950e-02 1.0990e-03 Arrington:1998ps + 6 12 4.045 55.000 2.445 3.7940e-02 1.2100e-03 Arrington:1998ps + 6 12 4.045 55.000 2.460 4.5360e-02 1.3250e-03 Arrington:1998ps + 6 12 4.045 55.000 2.475 5.5900e-02 1.5930e-03 Arrington:1998ps + 6 12 4.045 55.000 2.490 6.7430e-02 1.7190e-03 Arrington:1998ps + 6 12 4.045 55.000 2.505 8.0550e-02 1.8770e-03 Arrington:1998ps + 6 12 4.045 55.000 2.520 9.7770e-02 2.0340e-03 Arrington:1998ps + 6 12 4.045 55.000 2.535 1.1410e-01 2.1680e-03 Arrington:1998ps + 6 12 4.045 55.000 2.550 1.2720e-01 2.2770e-03 Arrington:1998ps + 6 12 4.045 55.000 2.565 1.4700e-01 2.4250e-03 Arrington:1998ps + 6 12 4.045 55.000 2.580 1.7510e-01 2.6270e-03 Arrington:1998ps + 6 12 4.045 55.000 2.595 1.9750e-01 2.7850e-03 Arrington:1998ps + 6 12 4.045 55.000 2.610 2.2650e-01 2.8540e-03 Arrington:1998ps + 6 12 4.045 55.000 2.625 2.5910e-01 3.0570e-03 Arrington:1998ps + 6 12 4.045 55.000 2.640 3.0130e-01 3.2540e-03 Arrington:1998ps + 6 12 4.045 55.000 2.655 3.4600e-01 3.5290e-03 Arrington:1998ps + 6 12 4.045 55.000 2.670 3.9980e-01 3.9180e-03 Arrington:1998ps + 6 12 4.045 55.000 2.685 4.6980e-01 4.4630e-03 Arrington:1998ps + 6 12 4.045 55.000 2.700 5.4880e-01 1.4050e-02 Arrington:1998ps + 6 12 4.045 55.000 2.715 6.1570e-01 1.4900e-02 Arrington:1998ps + 6 12 4.045 55.000 2.730 6.7980e-01 1.5430e-02 Arrington:1998ps + 6 12 4.045 55.000 2.745 7.6540e-01 1.6380e-02 Arrington:1998ps + 6 12 4.045 55.000 2.760 8.5820e-01 1.7250e-02 Arrington:1998ps + 6 12 4.045 55.000 2.775 9.4510e-01 1.8050e-02 Arrington:1998ps + 6 12 4.045 55.000 2.790 1.0420e+00 1.8860e-02 Arrington:1998ps + 6 12 4.045 55.000 2.805 1.1810e+00 2.0080e-02 Arrington:1998ps + 6 12 4.045 55.000 2.820 1.2890e+00 1.8560e-02 Arrington:1998ps + 6 12 4.045 55.000 2.835 1.4370e+00 1.9260e-02 Arrington:1998ps + 6 12 4.045 55.000 2.850 1.6120e+00 2.0630e-02 Arrington:1998ps + 6 12 4.045 55.000 2.865 1.7460e+00 2.2170e-02 Arrington:1998ps + 6 12 4.045 55.000 2.880 1.9990e+00 4.1580e-02 Arrington:1998ps + 6 12 4.045 55.000 2.895 2.1230e+00 4.2460e-02 Arrington:1998ps + 6 12 4.045 55.000 2.910 2.3200e+00 4.4080e-02 Arrington:1998ps + 6 12 4.045 55.000 2.925 2.5030e+00 4.5550e-02 Arrington:1998ps + 6 12 4.045 55.000 2.940 2.7300e+00 4.7230e-02 Arrington:1998ps + 6 12 4.045 55.000 2.955 2.9790e+00 4.9450e-02 Arrington:1998ps + 6 12 4.045 55.000 2.970 3.3570e+00 5.2030e-02 Arrington:1998ps + 6 12 4.045 55.000 2.985 3.5700e+00 5.3910e-02 Arrington:1998ps + 6 12 4.045 55.000 3.000 3.8630e+00 5.6400e-02 Arrington:1998ps + 6 12 4.045 55.000 3.015 4.2410e+00 6.1070e-02 Arrington:1998ps + 6 12 4.045 55.000 3.030 4.6240e+00 6.7970e-02 Arrington:1998ps + 6 12 4.045 74.000 2.805 2.1800e-03 4.4490e-04 Arrington:1998ps + 6 12 4.045 74.000 2.820 1.9400e-03 3.8700e-04 Arrington:1998ps + 6 12 4.045 74.000 2.835 2.2000e-03 3.7620e-04 Arrington:1998ps + 6 12 4.045 74.000 2.850 3.7300e-03 4.3450e-04 Arrington:1998ps + 6 12 4.045 74.000 2.865 3.5900e-03 4.1610e-04 Arrington:1998ps + 6 12 4.045 74.000 2.880 4.1000e-03 4.4030e-04 Arrington:1998ps + 6 12 4.045 74.000 2.895 5.7900e-03 5.1470e-04 Arrington:1998ps + 6 12 4.045 74.000 2.910 8.5000e-03 6.0950e-04 Arrington:1998ps + 6 12 4.045 74.000 2.925 1.1000e-02 6.8530e-04 Arrington:1998ps + 6 12 4.045 74.000 2.940 1.5300e-02 7.9710e-04 Arrington:1998ps + 6 12 4.045 74.000 2.955 1.8800e-02 8.7980e-04 Arrington:1998ps + 6 12 4.045 74.000 2.970 2.3000e-02 9.6600e-04 Arrington:1998ps + 6 12 4.045 74.000 2.985 2.8700e-02 1.0710e-03 Arrington:1998ps + 6 12 4.045 74.000 3.000 3.5300e-02 1.1750e-03 Arrington:1998ps + 6 12 4.045 74.000 3.015 4.3400e-02 1.2930e-03 Arrington:1998ps + 6 12 4.045 74.000 3.030 5.0800e-02 1.2650e-03 Arrington:1998ps + 6 12 4.045 74.000 3.045 6.4800e-02 1.3870e-03 Arrington:1998ps + 6 12 4.045 74.000 3.060 7.7000e-02 1.4940e-03 Arrington:1998ps + 6 12 4.045 74.000 3.075 8.6500e-02 2.7160e-03 Arrington:1998ps + 6 12 4.045 74.000 3.090 1.0700e-01 2.9210e-03 Arrington:1998ps + 6 12 4.045 74.000 3.105 1.2900e-01 3.1730e-03 Arrington:1998ps + 6 12 4.045 74.000 3.120 1.6100e-01 3.5420e-03 Arrington:1998ps + 6 12 4.045 74.000 3.135 1.9400e-01 3.8610e-03 Arrington:1998ps + 6 12 4.045 74.000 3.150 2.2700e-01 4.1770e-03 Arrington:1998ps + 6 12 4.045 74.000 3.165 2.7300e-01 4.5590e-03 Arrington:1998ps + 6 12 4.045 74.000 3.180 3.2200e-01 4.9270e-03 Arrington:1998ps + 6 12 4.045 74.000 3.195 3.7300e-01 5.2970e-03 Arrington:1998ps + 6 12 4.045 74.000 3.210 4.2700e-01 5.7220e-03 Arrington:1998ps + 6 12 4.045 74.000 3.225 5.0100e-01 5.6110e-03 Arrington:1998ps + 6 12 4.045 74.000 3.240 5.8500e-01 6.0260e-03 Arrington:1998ps + 6 12 4.045 74.000 3.255 6.5600e-01 1.1480e-02 Arrington:1998ps + 6 12 4.045 74.000 3.270 7.7100e-01 1.1950e-02 Arrington:1998ps + 6 12 4.045 74.000 3.285 8.6400e-01 1.2610e-02 Arrington:1998ps + 6 12 4.045 74.000 3.300 1.0200e+00 1.3670e-02 Arrington:1998ps + 6 12 4.045 74.000 3.315 1.1600e+00 1.4620e-02 Arrington:1998ps + 6 12 4.045 74.000 3.330 1.3900e+00 1.5980e-02 Arrington:1998ps + 6 12 4.045 74.000 3.345 1.5000e+00 1.6650e-02 Arrington:1998ps + 6 12 4.045 74.000 3.360 1.6400e+00 1.7550e-02 Arrington:1998ps + 6 12 4.045 74.000 3.375 1.9300e+00 1.9490e-02 Arrington:1998ps + 6 12 4.045 74.000 3.390 2.0700e+00 2.1110e-02 Arrington:1998ps + 6 12 4.212 53.389 2.659 1.1865e-01 3.7818e-03 Arrington:1995hs + 6 12 4.212 53.389 2.669 1.3532e-01 3.4336e-03 Arrington:1995hs + 6 12 4.212 53.389 2.681 1.6154e-01 3.6948e-03 Arrington:1995hs + 6 12 4.212 53.389 2.692 1.8935e-01 4.0127e-03 Arrington:1995hs + 6 12 4.212 53.389 2.704 2.1797e-01 4.2932e-03 Arrington:1995hs + 6 12 4.212 53.389 2.716 2.3682e-01 4.4686e-03 Arrington:1995hs + 6 12 4.212 53.389 2.728 2.5283e-01 4.5718e-03 Arrington:1995hs + 6 12 4.212 53.389 2.739 2.9515e-01 4.9599e-03 Arrington:1995hs + 6 12 4.212 53.389 2.751 3.2015e-01 5.1610e-03 Arrington:1995hs + 6 12 4.212 53.389 2.763 3.6058e-01 5.4447e-03 Arrington:1995hs + 6 12 4.212 53.389 2.775 4.0399e-01 5.7839e-03 Arrington:1995hs + 6 12 4.212 53.389 2.786 4.6353e-01 6.3306e-03 Arrington:1995hs + 6 12 4.212 53.389 2.798 4.9122e-01 6.7027e-03 Arrington:1995hs + 6 12 4.212 53.389 2.810 5.4716e-01 7.3861e-03 Arrington:1995hs + 6 12 5.120 56.639 3.567 2.9522e-02 1.2218e-03 Arrington:1995hs + 6 12 5.120 56.639 3.578 3.3413e-02 1.1055e-03 Arrington:1995hs + 6 12 5.120 56.639 3.589 3.9633e-02 1.1956e-03 Arrington:1995hs + 6 12 5.120 56.639 3.601 5.0295e-02 1.3466e-03 Arrington:1995hs + 6 12 5.120 56.639 3.613 5.2522e-02 1.3684e-03 Arrington:1995hs + 6 12 5.120 56.639 3.625 6.3555e-02 1.5050e-03 Arrington:1995hs + 6 12 5.120 56.639 3.636 6.6005e-02 1.5161e-03 Arrington:1995hs + 6 12 5.120 56.639 3.648 7.7974e-02 1.6499e-03 Arrington:1995hs + 6 12 5.120 56.639 3.660 8.4903e-02 1.7115e-03 Arrington:1995hs + 6 12 5.120 56.639 3.672 9.7368e-02 1.8388e-03 Arrington:1995hs + 6 12 5.120 56.639 3.683 1.1489e-01 1.9988e-03 Arrington:1995hs + 6 12 5.120 56.639 3.695 1.2374e-01 2.0939e-03 Arrington:1995hs + 6 12 5.120 56.639 3.707 1.4123e-01 2.3308e-03 Arrington:1995hs + 6 12 5.120 56.639 3.719 1.7035e-01 2.7137e-03 Arrington:1995hs +6 12 5.766 18.00 2.3101e+00 2.5728e+02 3.9088e-01 Fomin:2010ei +6 12 5.766 18.00 2.2120e+00 2.3927e+02 3.4525e-01 Fomin:2010ei +6 12 5.766 18.00 2.1216e+00 2.1680e+02 3.2282e-01 Fomin:2010ei +6 12 5.766 18.00 2.0386e+00 1.9365e+02 3.1663e-01 Fomin:2010ei +6 12 5.766 18.00 1.9618e+00 1.7247e+02 3.1227e-01 Fomin:2010ei +6 12 5.766 18.00 1.8904e+00 1.5527e+02 3.1684e-01 Fomin:2010ei +6 12 5.766 18.00 1.8242e+00 1.3452e+02 3.2813e-01 Fomin:2010ei +6 12 5.766 18.00 1.7624e+00 1.1717e+02 2.0150e-01 Fomin:2010ei +6 12 5.766 18.00 1.7046e+00 1.0399e+02 1.8956e-01 Fomin:2010ei +6 12 5.766 18.00 1.6506e+00 9.2538e+01 1.9509e-01 Fomin:2010ei +6 12 5.766 18.00 1.5999e+00 8.3416e+01 1.8341e-01 Fomin:2010ei +6 12 5.766 18.00 1.5520e+00 7.5492e+01 1.7953e-01 Fomin:2010ei +6 12 5.766 18.00 1.5071e+00 6.7108e+01 1.7391e-01 Fomin:2010ei +6 12 5.766 18.00 1.4647e+00 6.0603e+01 1.7115e-01 Fomin:2010ei +6 12 5.766 18.00 1.4246e+00 5.4916e+01 1.6831e-01 Fomin:2010ei +6 12 5.766 18.00 1.3866e+00 4.9395e+01 1.6416e-01 Fomin:2010ei +6 12 5.766 18.00 1.3507e+00 4.4147e+01 1.5943e-01 Fomin:2010ei +6 12 5.766 18.00 1.3164e+00 3.8913e+01 1.5429e-01 Fomin:2010ei +6 12 5.766 18.00 1.2840e+00 3.5027e+01 1.5146e-01 Fomin:2010ei +6 12 5.766 18.00 1.2531e+00 3.0725e+01 1.4643e-01 Fomin:2010ei +6 12 5.766 18.00 1.2236e+00 2.6010e+01 1.3834e-01 Fomin:2010ei +6 12 5.766 18.00 1.1955e+00 2.1523e+01 1.2969e-01 Fomin:2010ei +6 12 5.766 18.00 1.1687e+00 1.7823e+01 1.2111e-01 Fomin:2010ei +6 12 5.766 18.00 1.1429e+00 1.4524e+01 1.1532e-01 Fomin:2010ei +6 12 5.766 18.00 1.1184e+00 1.2001e+01 4.5638e-02 Fomin:2010ei +6 12 5.766 18.00 1.0949e+00 9.7129e+00 4.0163e-02 Fomin:2010ei +6 12 5.766 18.00 1.0723e+00 7.6817e+00 3.5086e-02 Fomin:2010ei +6 12 5.766 18.00 1.0506e+00 6.2295e+00 3.1578e-02 Fomin:2010ei +6 12 5.766 18.00 1.0299e+00 4.9778e+00 2.8078e-02 Fomin:2010ei +6 12 5.766 18.00 1.0098e+00 4.0469e+00 2.5552e-02 Fomin:2010ei +6 12 5.766 18.00 9.9063e-01 3.2821e+00 2.3599e-02 Fomin:2010ei +6 12 5.766 18.00 9.7214e-01 2.7237e+00 2.1892e-02 Fomin:2010ei +6 12 5.766 18.00 9.5428e-01 2.2719e+00 2.0507e-02 Fomin:2010ei +6 12 5.766 18.00 9.3711e-01 1.8699e+00 1.8778e-02 Fomin:2010ei +6 12 5.766 18.00 9.2055e-01 1.5550e+00 1.7468e-02 Fomin:2010ei +6 12 5.766 18.00 9.0451e-01 1.2902e+00 1.6103e-02 Fomin:2010ei +6 12 5.766 18.00 8.8907e-01 1.1184e+00 1.5516e-02 Fomin:2010ei +6 12 5.766 18.00 8.7415e-01 9.7264e-01 1.4524e-02 Fomin:2010ei +6 12 5.766 18.00 8.5968e-01 7.8618e-01 1.3221e-02 Fomin:2010ei +6 12 5.766 18.00 8.4572e-01 7.0622e-01 1.2857e-02 Fomin:2010ei +6 12 5.766 18.00 8.3221e-01 5.9549e-01 1.1837e-02 Fomin:2010ei +6 12 5.766 18.00 8.1908e-01 5.0680e-01 1.1180e-02 Fomin:2010ei +6 12 5.766 18.00 8.0640e-01 4.3588e-01 1.0452e-02 Fomin:2010ei +6 12 5.766 18.00 7.9410e-01 3.9300e-01 1.0107e-02 Fomin:2010ei +6 12 5.766 18.00 7.8214e-01 3.3961e-01 9.5410e-03 Fomin:2010ei +6 12 5.766 18.00 7.7057e-01 2.9536e-01 9.0377e-03 Fomin:2010ei +6 12 5.766 18.00 7.5934e-01 2.5078e-01 8.4298e-03 Fomin:2010ei +6 12 5.766 18.00 7.4839e-01 2.2106e-01 8.0395e-03 Fomin:2010ei +6 12 5.766 18.00 7.3779e-01 1.9023e-01 7.6093e-03 Fomin:2010ei +6 12 5.766 18.00 7.2749e-01 1.5406e-01 6.8424e-03 Fomin:2010ei +6 12 5.766 18.00 7.1744e-01 1.3897e-01 6.5585e-03 Fomin:2010ei +6 12 5.766 18.00 7.0769e-01 1.2479e-01 6.2868e-03 Fomin:2010ei +6 12 5.766 18.00 6.9820e-01 1.1448e-01 6.1455e-03 Fomin:2010ei +6 12 5.766 18.00 6.8894e-01 9.9249e-02 5.7397e-03 Fomin:2010ei +6 12 5.766 18.00 6.7994e-01 9.3518e-02 5.6291e-03 Fomin:2010ei +6 12 5.766 18.00 6.7118e-01 7.1369e-02 4.9846e-03 Fomin:2010ei +6 12 5.766 18.00 6.6262e-01 6.1549e-02 4.6930e-03 Fomin:2010ei +6 12 5.766 18.00 6.5429e-01 6.6501e-02 4.9985e-03 Fomin:2010ei +6 12 5.766 18.00 6.4618e-01 4.6530e-02 4.1953e-03 Fomin:2010ei +6 12 5.766 18.00 6.3823e-01 4.4652e-02 4.1458e-03 Fomin:2010ei +6 12 5.766 18.00 6.3051e-01 3.9887e-02 3.9884e-03 Fomin:2010ei +6 12 5.766 18.00 6.2297e-01 3.6122e-02 3.7864e-03 Fomin:2010ei +6 12 5.766 18.00 6.1558e-01 2.4418e-02 3.1519e-03 Fomin:2010ei +6 12 5.766 18.00 6.0839e-01 2.5029e-02 3.2308e-03 Fomin:2010ei +6 12 5.766 18.00 6.0137e-01 2.0738e-02 2.9926e-03 Fomin:2010ei +6 12 5.766 18.00 5.9448e-01 2.1512e-02 3.0116e-03 Fomin:2010ei +6 12 5.766 18.00 5.8777e-01 1.9818e-02 2.9870e-03 Fomin:2010ei +6 12 5.766 18.00 5.8121e-01 1.5788e-02 2.6676e-03 Fomin:2010ei +6 12 5.766 18.00 5.7478e-01 1.7101e-02 2.8492e-03 Fomin:2010ei +6 12 5.766 18.00 5.6851e-01 1.3098e-02 2.5192e-03 Fomin:2010ei +6 12 5.766 18.00 5.6237e-01 1.1157e-02 2.3244e-03 Fomin:2010ei +6 12 5.766 18.00 5.5634e-01 1.0403e-02 2.2680e-03 Fomin:2010ei +6 12 5.766 18.00 5.5046e-01 1.2690e-02 2.4870e-03 Fomin:2010ei +6 12 5.766 18.00 5.4471e-01 8.9061e-03 2.1566e-03 Fomin:2010ei +6 12 5.766 18.00 5.3905e-01 6.3169e-03 1.8181e-03 Fomin:2010ei +6 12 5.766 18.00 5.3353e-01 6.2884e-03 1.8099e-03 Fomin:2010ei +6 12 5.766 18.00 5.2812e-01 7.1497e-03 1.9779e-03 Fomin:2010ei +6 12 5.766 18.00 5.2280e-01 6.7852e-03 1.9529e-03 Fomin:2010ei +6 12 5.766 18.00 5.1761e-01 3.2412e-03 1.4292e-03 Fomin:2010ei +6 12 5.766 18.00 5.1251e-01 3.7923e-03 1.5323e-03 Fomin:2010ei +6 12 5.766 18.00 5.0751e-01 3.1853e-03 1.4046e-03 Fomin:2010ei +6 12 5.766 18.00 5.0261e-01 4.5620e-03 1.7108e-03 Fomin:2010ei +6 12 5.766 18.00 4.9308e-01 1.6891e-03 1.1261e-03 Fomin:2010ei +6 12 5.766 18.00 4.8845e-01 2.2971e-03 1.2841e-03 Fomin:2010ei +6 12 5.766 18.00 4.8391e-01 2.9273e-03 1.4341e-03 Fomin:2010ei +6 12 5.766 18.00 4.7945e-01 1.8308e-03 1.2205e-03 Fomin:2010ei +6 12 5.766 18.00 4.7507e-01 1.8301e-03 1.2201e-03 Fomin:2010ei +6 12 5.766 18.00 4.7078e-01 2.3939e-03 1.3382e-03 Fomin:2010ei +6 12 5.766 18.00 4.6655e-01 6.0780e-04 8.5955e-04 Fomin:2010ei +6 12 5.766 18.00 4.6241e-01 3.2048e-03 1.5701e-03 Fomin:2010ei +6 12 5.766 18.00 4.5433e-01 6.2209e-04 8.7976e-04 Fomin:2010ei +6 12 5.766 18.00 4.5040e-01 6.6632e-04 9.4230e-04 Fomin:2010ei +6 12 5.766 18.00 4.4273e-01 1.3016e-03 1.1272e-03 Fomin:2010ei +6 12 5.766 18.00 4.3171e-01 1.3495e-03 1.1687e-03 Fomin:2010ei +6 12 5.766 18.00 4.2816e-01 6.8892e-04 9.7427e-04 Fomin:2010ei +6 12 5.766 18.00 4.2123e-01 7.0111e-04 9.9151e-04 Fomin:2010ei +6 12 5.766 18.00 4.1785e-01 7.1296e-04 1.0083e-03 Fomin:2010ei +6 12 5.766 18.00 4.0485e-01 2.2829e-03 1.5219e-03 Fomin:2010ei +6 12 5.766 18.00 3.9262e-01 7.7228e-04 1.0922e-03 Fomin:2010ei +6 12 5.766 18.00 3.8968e-01 8.1222e-04 1.1486e-03 Fomin:2010ei +6 12 5.766 22.00 2.9858e+00 1.1154e+02 1.9416e-01 Fomin:2010ei +6 12 5.766 22.00 2.8750e+00 9.9950e+01 1.7080e-01 Fomin:2010ei +6 12 5.766 22.00 2.7722e+00 8.9828e+01 1.6889e-01 Fomin:2010ei +6 12 5.766 22.00 2.6761e+00 7.9769e+01 1.8158e-01 Fomin:2010ei +6 12 5.766 22.00 2.5868e+00 7.0708e+01 9.7967e-02 Fomin:2010ei +6 12 5.766 22.00 2.5032e+00 6.2284e+01 9.3564e-02 Fomin:2010ei +6 12 5.766 22.00 2.4247e+00 5.3309e+01 8.4105e-02 Fomin:2010ei +6 12 5.766 22.00 2.3511e+00 4.5815e+01 8.0762e-02 Fomin:2010ei +6 12 5.766 22.00 2.2819e+00 3.9388e+01 7.7530e-02 Fomin:2010ei +6 12 5.766 22.00 2.2164e+00 3.2964e+01 7.3145e-02 Fomin:2010ei +6 12 5.766 22.00 2.1548e+00 2.8050e+01 7.4189e-02 Fomin:2010ei +6 12 5.766 22.00 2.0965e+00 2.3245e+01 4.2602e-02 Fomin:2010ei +6 12 5.766 22.00 2.0411e+00 2.0109e+01 3.8673e-02 Fomin:2010ei +6 12 5.766 22.00 1.9887e+00 1.7322e+01 3.8217e-02 Fomin:2010ei +6 12 5.766 22.00 1.9389e+00 1.4620e+01 3.4005e-02 Fomin:2010ei +6 12 5.766 22.00 1.8915e+00 1.2707e+01 3.2587e-02 Fomin:2010ei +6 12 5.766 22.00 1.8464e+00 1.0873e+01 3.1015e-02 Fomin:2010ei +6 12 5.766 22.00 1.8034e+00 9.2300e+00 2.9265e-02 Fomin:2010ei +6 12 5.766 22.00 1.7623e+00 7.7514e+00 2.7500e-02 Fomin:2010ei +6 12 5.766 22.00 1.7231e+00 6.5788e+00 2.6013e-02 Fomin:2010ei +6 12 5.766 22.00 1.6856e+00 5.3424e+00 2.4024e-02 Fomin:2010ei +6 12 5.766 22.00 1.6496e+00 4.4013e+00 2.2372e-02 Fomin:2010ei +6 12 5.766 22.00 1.6152e+00 3.5270e+00 2.0548e-02 Fomin:2010ei +6 12 5.766 22.00 1.5823e+00 2.7966e+00 1.8770e-02 Fomin:2010ei +6 12 5.766 22.00 1.5505e+00 2.1878e+00 1.7061e-02 Fomin:2010ei +6 12 5.766 22.00 1.5201e+00 1.6821e+00 1.0339e-02 Fomin:2010ei +6 12 5.766 22.00 1.4908e+00 1.2867e+00 9.0159e-03 Fomin:2010ei +6 12 5.766 22.00 1.4626e+00 1.0132e+00 8.0535e-03 Fomin:2010ei +6 12 5.766 22.00 1.4355e+00 7.5247e-01 7.0285e-03 Fomin:2010ei +6 12 5.766 22.00 1.4094e+00 5.8809e-01 6.3210e-03 Fomin:2010ei +6 12 5.766 22.00 1.3842e+00 4.6160e-01 6.2858e-03 Fomin:2010ei +6 12 5.766 22.00 1.3599e+00 3.7365e-01 5.7486e-03 Fomin:2010ei +6 12 5.766 22.00 1.3364e+00 2.9707e-01 5.2287e-03 Fomin:2010ei +6 12 5.766 22.00 1.3137e+00 2.4533e-01 4.8507e-03 Fomin:2010ei +6 12 5.766 22.00 1.2918e+00 1.8602e-01 4.2485e-03 Fomin:2010ei +6 12 5.766 22.00 1.2706e+00 1.5043e-01 3.8971e-03 Fomin:2010ei +6 12 5.766 22.00 1.2500e+00 1.1964e-01 3.5370e-03 Fomin:2010ei +6 12 5.766 22.00 1.2302e+00 9.5252e-02 3.2001e-03 Fomin:2010ei +6 12 5.766 22.00 1.2110e+00 7.7586e-02 2.9429e-03 Fomin:2010ei +6 12 5.766 22.00 1.1923e+00 6.4148e-02 2.7157e-03 Fomin:2010ei +6 12 5.766 22.00 1.1742e+00 5.5130e-02 2.5484e-03 Fomin:2010ei +6 12 5.766 22.00 1.1567e+00 4.3140e-02 2.2800e-03 Fomin:2010ei +6 12 5.766 22.00 1.1396e+00 3.5220e-02 2.0899e-03 Fomin:2010ei +6 12 5.766 22.00 1.1231e+00 3.0535e-02 1.9792e-03 Fomin:2010ei +6 12 5.766 22.00 1.1071e+00 2.7009e-02 1.8910e-03 Fomin:2010ei +6 12 5.766 22.00 1.0914e+00 2.3896e-02 1.8012e-03 Fomin:2010ei +6 12 5.766 22.00 1.0763e+00 1.8230e-02 1.5806e-03 Fomin:2010ei +6 12 5.766 22.00 1.0615e+00 1.5408e-02 1.4826e-03 Fomin:2010ei +6 12 5.766 22.00 1.0471e+00 1.3793e-02 1.4302e-03 Fomin:2010ei +6 12 5.766 22.00 1.0332e+00 9.9112e-03 1.2107e-03 Fomin:2010ei +6 12 5.766 22.00 1.0196e+00 7.5849e-03 1.0834e-03 Fomin:2010ei +6 12 5.766 22.00 1.0063e+00 7.3284e-03 1.0803e-03 Fomin:2010ei +6 12 5.766 22.00 9.9340e-01 4.6357e-03 8.7551e-04 Fomin:2010ei +6 12 5.766 22.00 9.8082e-01 6.4440e-03 1.0450e-03 Fomin:2010ei +6 12 5.766 22.00 9.6853e-01 4.7641e-03 9.1626e-04 Fomin:2010ei +6 12 5.766 22.00 9.5657e-01 4.1371e-03 8.6190e-04 Fomin:2010ei +6 12 5.766 22.00 9.4491e-01 2.3004e-03 6.6210e-04 Fomin:2010ei +6 12 5.766 22.00 9.3349e-01 2.8680e-03 7.3906e-04 Fomin:2010ei +6 12 5.766 22.00 9.2238e-01 1.6983e-03 5.9670e-04 Fomin:2010ei +6 12 5.766 22.00 9.1153e-01 2.4512e-03 7.0550e-04 Fomin:2010ei +6 12 5.766 22.00 9.0090e-01 1.7324e-03 6.0871e-04 Fomin:2010ei +6 12 5.766 22.00 8.9055e-01 5.9509e-04 3.9673e-04 Fomin:2010ei +6 12 5.766 22.00 8.8043e-01 8.0944e-04 4.5249e-04 Fomin:2010ei +6 12 5.766 22.00 8.7051e-01 4.1697e-04 3.6111e-04 Fomin:2010ei +6 12 5.766 22.00 8.6084e-01 8.3650e-04 4.6761e-04 Fomin:2010ei +6 12 5.766 22.00 8.5138e-01 8.6425e-04 4.8313e-04 Fomin:2010ei +6 12 5.766 22.00 8.4210e-01 6.4945e-04 4.3297e-04 Fomin:2010ei +6 12 5.766 22.00 8.3304e-01 6.6554e-04 4.4369e-04 Fomin:2010ei +6 12 5.766 22.00 8.2418e-01 4.5041e-04 3.9007e-04 Fomin:2010ei +6 12 5.766 22.00 8.1548e-01 4.6088e-04 3.9914e-04 Fomin:2010ei +6 12 5.766 22.00 8.0699e-01 4.7644e-04 4.1261e-04 Fomin:2010ei +6 12 5.766 22.00 7.9867e-01 4.8674e-04 4.2153e-04 Fomin:2010ei +6 12 5.766 22.00 7.9050e-01 4.9940e-04 4.3249e-04 Fomin:2010ei +6 12 5.766 22.00 7.7470e-01 5.9482e-04 5.1513e-04 Fomin:2010ei +6 12 5.766 22.00 7.6700e-01 6.7884e-04 5.8789e-04 Fomin:2010ei +6 12 5.766 22.00 7.5949e-01 3.8013e-04 5.3759e-04 Fomin:2010ei +6 12 5.766 22.00 7.5212e-01 4.0826e-04 5.7738e-04 Fomin:2010ei +6 12 5.766 22.00 7.1069e-01 1.0118e-03 1.4310e-03 Fomin:2010ei +6 12 5.766 22.00 7.0421e-01 1.1925e-03 1.6864e-03 Fomin:2010ei +6 12 5.766 26.00 3.2448e+00 4.2437e+01 7.6571e-02 Fomin:2010ei +6 12 5.766 26.00 3.1496e+00 3.7218e+01 6.3801e-02 Fomin:2010ei +6 12 5.766 26.00 3.0601e+00 3.1966e+01 5.9882e-02 Fomin:2010ei +6 12 5.766 26.00 2.9756e+00 2.7492e+01 5.8525e-02 Fomin:2010ei +6 12 5.766 26.00 2.8953e+00 2.3738e+01 6.3794e-02 Fomin:2010ei +6 12 5.766 26.00 2.8195e+00 1.9845e+01 2.8539e-02 Fomin:2010ei +6 12 5.766 26.00 2.7476e+00 1.6644e+01 2.5747e-02 Fomin:2010ei +6 12 5.766 26.00 2.6790e+00 1.3955e+01 2.3600e-02 Fomin:2010ei +6 12 5.766 26.00 2.6140e+00 1.1338e+01 2.1736e-02 Fomin:2010ei +6 12 5.766 26.00 2.5521e+00 9.1864e+00 2.0015e-02 Fomin:2010ei +6 12 5.766 26.00 2.4928e+00 7.5344e+00 1.8738e-02 Fomin:2010ei +6 12 5.766 26.00 2.4364e+00 6.1767e+00 1.8504e-02 Fomin:2010ei +6 12 5.766 26.00 2.3825e+00 4.9535e+00 1.0594e-02 Fomin:2010ei +6 12 5.766 26.00 2.3308e+00 4.1116e+00 9.4249e-03 Fomin:2010ei +6 12 5.766 26.00 2.2814e+00 3.3595e+00 9.0376e-03 Fomin:2010ei +6 12 5.766 26.00 2.2341e+00 2.7423e+00 8.0063e-03 Fomin:2010ei +6 12 5.766 26.00 2.1886e+00 2.2324e+00 7.3852e-03 Fomin:2010ei +6 12 5.766 26.00 2.1450e+00 1.8028e+00 6.8129e-03 Fomin:2010ei +6 12 5.766 26.00 2.1031e+00 1.4224e+00 6.1861e-03 Fomin:2010ei +6 12 5.766 26.00 2.0627e+00 1.1052e+00 5.5546e-03 Fomin:2010ei +6 12 5.766 26.00 2.0239e+00 8.4955e-01 4.9627e-03 Fomin:2010ei +6 12 5.766 26.00 1.9866e+00 6.4896e-01 4.4465e-03 Fomin:2010ei +6 12 5.766 26.00 1.9505e+00 4.8320e-01 3.9259e-03 Fomin:2010ei +6 12 5.766 26.00 1.9158e+00 3.5672e-01 3.4344e-03 Fomin:2010ei +6 12 5.766 26.00 1.8823e+00 2.7114e-01 3.0800e-03 Fomin:2010ei +6 12 5.766 26.00 1.8499e+00 1.9464e-01 2.8105e-03 Fomin:2010ei +6 12 5.766 26.00 1.8187e+00 1.4744e-01 1.9286e-03 Fomin:2010ei +6 12 5.766 26.00 1.7885e+00 1.1035e-01 1.7018e-03 Fomin:2010ei +6 12 5.766 26.00 1.7592e+00 7.9346e-02 1.4748e-03 Fomin:2010ei +6 12 5.766 26.00 1.7309e+00 6.2400e-02 1.5819e-03 Fomin:2010ei +6 12 5.766 26.00 1.7035e+00 5.0177e-02 1.4020e-03 Fomin:2010ei +6 12 5.766 26.00 1.6769e+00 3.7714e-02 1.2288e-03 Fomin:2010ei +6 12 5.766 26.00 1.6512e+00 2.9720e-02 1.1145e-03 Fomin:2010ei +6 12 5.766 26.00 1.6263e+00 2.0928e-02 9.4740e-04 Fomin:2010ei +6 12 5.766 26.00 1.6020e+00 1.7591e-02 8.7955e-04 Fomin:2010ei +6 12 5.766 26.00 1.5785e+00 1.3936e-02 7.9410e-04 Fomin:2010ei +6 12 5.766 26.00 1.5557e+00 9.6023e-03 6.6899e-04 Fomin:2010ei +6 12 5.766 26.00 1.5335e+00 8.2386e-03 6.3187e-04 Fomin:2010ei +6 12 5.766 26.00 1.5120e+00 6.6855e-03 5.7323e-04 Fomin:2010ei +6 12 5.766 26.00 1.4910e+00 5.0031e-03 5.0280e-04 Fomin:2010ei +6 12 5.766 26.00 1.4706e+00 4.0199e-03 4.6107e-04 Fomin:2010ei +6 12 5.766 26.00 1.4508e+00 3.2959e-03 4.2194e-04 Fomin:2010ei +6 12 5.766 26.00 1.4315e+00 3.4978e-03 4.4062e-04 Fomin:2010ei +6 12 5.766 26.00 1.4127e+00 2.4014e-03 3.7044e-04 Fomin:2010ei +6 12 5.766 26.00 1.3944e+00 1.7054e-03 3.1651e-04 Fomin:2010ei +6 12 5.766 26.00 1.3766e+00 1.3912e-03 2.8984e-04 Fomin:2010ei +6 12 5.766 26.00 1.3592e+00 1.7418e-03 3.2897e-04 Fomin:2010ei +6 12 5.766 26.00 1.3422e+00 8.5294e-04 2.3596e-04 Fomin:2010ei +6 12 5.766 26.00 1.3257e+00 5.0864e-04 1.9074e-04 Fomin:2010ei +6 12 5.766 26.00 1.3095e+00 7.1738e-04 2.2592e-04 Fomin:2010ei +6 12 5.766 26.00 1.2938e+00 4.6664e-04 1.8855e-04 Fomin:2010ei +6 12 5.766 26.00 1.2784e+00 2.0604e-04 1.3736e-04 Fomin:2010ei +6 12 5.766 26.00 1.2634e+00 1.3958e-04 1.2087e-04 Fomin:2010ei +6 12 5.766 26.00 1.2488e+00 1.4394e-04 1.2465e-04 Fomin:2010ei +6 12 5.766 26.00 1.2344e+00 4.4208e-04 1.9493e-04 Fomin:2010ei +6 12 5.766 26.00 1.2204e+00 1.5128e-04 1.3101e-04 Fomin:2010ei +6 12 5.766 26.00 1.1934e+00 1.5634e-04 1.3539e-04 Fomin:2010ei +6 12 5.766 26.00 1.1306e+00 1.1767e-04 1.6641e-04 Fomin:2010ei +6 12 5.766 32.00 3.6288e+00 1.3513e+01 2.2261e-02 Fomin:2010ei +6 12 5.766 32.00 3.5492e+00 1.1216e+01 1.8109e-02 Fomin:2010ei +6 12 5.766 32.00 3.4727e+00 9.3301e+00 1.6853e-02 Fomin:2010ei +6 12 5.766 32.00 3.3997e+00 7.5957e+00 1.5842e-02 Fomin:2010ei +6 12 5.766 32.00 3.3297e+00 6.2864e+00 9.7686e-03 Fomin:2010ei +6 12 5.766 32.00 3.2623e+00 5.1138e+00 8.9903e-03 Fomin:2010ei +6 12 5.766 32.00 3.1978e+00 4.0498e+00 7.4569e-03 Fomin:2010ei +6 12 5.766 32.00 3.1358e+00 3.2086e+00 6.7579e-03 Fomin:2010ei +6 12 5.766 32.00 3.0760e+00 2.5021e+00 6.0910e-03 Fomin:2010ei +6 12 5.766 32.00 3.0185e+00 1.9442e+00 5.4966e-03 Fomin:2010ei +6 12 5.766 32.00 2.9632e+00 1.5173e+00 5.2420e-03 Fomin:2010ei +6 12 5.766 32.00 2.9097e+00 1.1796e+00 4.3408e-03 Fomin:2010ei +6 12 5.766 32.00 2.8583e+00 9.3559e-01 5.6746e-03 Fomin:2010ei +6 12 5.766 32.00 2.8087e+00 7.1512e-01 4.5996e-03 Fomin:2010ei +6 12 5.766 32.00 2.7606e+00 5.4766e-01 3.9790e-03 Fomin:2010ei +6 12 5.766 32.00 2.7142e+00 4.1931e-01 3.5497e-03 Fomin:2010ei +6 12 5.766 32.00 2.6694e+00 3.1130e-01 3.1057e-03 Fomin:2010ei +6 12 5.766 32.00 2.6259e+00 2.3243e-01 2.7380e-03 Fomin:2010ei +6 12 5.766 32.00 2.5840e+00 1.6911e-01 2.3772e-03 Fomin:2010ei +6 12 5.766 32.00 2.5433e+00 1.2168e-01 2.0578e-03 Fomin:2010ei +6 12 5.766 32.00 2.5038e+00 8.2795e-02 1.7283e-03 Fomin:2010ei +6 12 5.766 32.00 2.4657e+00 6.1852e-02 1.6397e-03 Fomin:2010ei +6 12 5.766 32.00 2.4286e+00 4.5648e-02 1.0285e-03 Fomin:2010ei +6 12 5.766 32.00 2.3926e+00 3.0727e-02 8.4659e-04 Fomin:2010ei +6 12 5.766 32.00 2.3577e+00 2.4401e-02 8.8221e-04 Fomin:2010ei +6 12 5.766 32.00 2.3238e+00 1.6402e-02 7.0067e-04 Fomin:2010ei +6 12 5.766 32.00 2.2908e+00 1.2018e-02 6.0544e-04 Fomin:2010ei +6 12 5.766 32.00 2.2588e+00 9.1216e-03 5.3108e-04 Fomin:2010ei +6 12 5.766 32.00 2.2277e+00 6.3312e-03 4.5223e-04 Fomin:2010ei +6 12 5.766 32.00 2.1973e+00 4.3762e-03 3.8090e-04 Fomin:2010ei +6 12 5.766 32.00 2.1679e+00 3.0851e-03 3.2339e-04 Fomin:2010ei +6 12 5.766 32.00 2.1392e+00 2.9712e-03 3.2418e-04 Fomin:2010ei +6 12 5.766 32.00 2.1112e+00 1.7932e-03 2.5354e-04 Fomin:2010ei +6 12 5.766 32.00 2.0840e+00 1.2317e-03 2.1432e-04 Fomin:2010ei +6 12 5.766 32.00 2.0574e+00 1.2332e-03 2.1790e-04 Fomin:2010ei +6 12 5.766 32.00 2.0315e+00 9.6260e-04 1.9633e-04 Fomin:2010ei +6 12 5.766 32.00 2.0063e+00 1.1095e-03 2.1339e-04 Fomin:2010ei +6 12 5.766 32.00 1.9817e+00 5.3182e-04 1.5308e-04 Fomin:2010ei +6 12 5.766 32.00 1.9577e+00 4.2010e-04 1.3933e-04 Fomin:2010ei +6 12 5.766 32.00 1.9342e+00 2.9955e-04 1.2104e-04 Fomin:2010ei +6 12 5.766 32.00 1.9114e+00 1.3473e-04 8.9820e-05 Fomin:2010ei +6 12 5.766 32.00 1.8890e+00 1.0039e-04 8.6938e-05 Fomin:2010ei +6 12 5.766 32.00 1.8672e+00 1.1880e-04 1.0288e-04 Fomin:2010ei +6 12 5.766 32.00 1.8250e+00 8.6575e-05 1.2243e-04 Fomin:2010ei +6 12 5.766 32.00 1.8046e+00 1.1173e-04 1.5800e-04 Fomin:2010ei +6 12 5.766 40.00 4.7252e+00 1.8260e+01 4.3909e-02 Fomin:2010ei +6 12 5.766 40.00 4.6372e+00 1.6194e+01 3.0798e-02 Fomin:2010ei +6 12 5.766 40.00 4.5524e+00 1.3884e+01 2.2183e-02 Fomin:2010ei +6 12 5.766 40.00 4.4704e+00 1.2019e+01 2.0251e-02 Fomin:2010ei +6 12 5.766 40.00 4.3916e+00 1.0315e+01 1.9610e-02 Fomin:2010ei +6 12 5.766 40.00 4.3155e+00 8.5810e+00 1.5507e-02 Fomin:2010ei +6 12 5.766 40.00 4.2417e+00 7.2354e+00 1.2354e-02 Fomin:2010ei +6 12 5.766 40.00 4.1707e+00 5.9965e+00 1.1464e-02 Fomin:2010ei +6 12 5.766 40.00 4.1019e+00 4.9109e+00 9.8557e-03 Fomin:2010ei +6 12 5.766 40.00 4.0353e+00 3.9983e+00 1.1510e-02 Fomin:2010ei +6 12 5.766 40.00 3.9709e+00 3.2162e+00 1.0119e-02 Fomin:2010ei +6 12 5.766 40.00 3.9086e+00 2.5516e+00 9.1648e-03 Fomin:2010ei +6 12 5.766 40.00 3.8480e+00 2.0073e+00 9.0220e-03 Fomin:2010ei +6 12 5.766 40.00 3.7894e+00 1.5833e+00 5.1967e-03 Fomin:2010ei +6 12 5.766 40.00 3.7326e+00 1.2288e+00 4.7028e-03 Fomin:2010ei +6 12 5.766 40.00 3.6773e+00 9.2892e-01 4.0928e-03 Fomin:2010ei +6 12 5.766 40.00 3.6238e+00 6.9334e-01 3.6008e-03 Fomin:2010ei +6 12 5.766 40.00 3.5718e+00 5.1792e-01 3.1561e-03 Fomin:2010ei +6 12 5.766 40.00 3.5211e+00 3.9158e-01 3.0070e-03 Fomin:2010ei +6 12 5.766 40.00 3.4720e+00 2.9165e-01 2.0784e-03 Fomin:2010ei +6 12 5.766 40.00 3.4243e+00 2.1248e-01 2.1085e-03 Fomin:2010ei +6 12 5.766 40.00 3.3777e+00 1.5682e-01 1.7835e-03 Fomin:2010ei +6 12 5.766 40.00 3.3324e+00 1.0805e-01 1.5155e-03 Fomin:2010ei +6 12 5.766 40.00 3.2884e+00 7.7139e-02 1.2926e-03 Fomin:2010ei +6 12 5.766 40.00 3.2454e+00 5.4870e-02 1.0935e-03 Fomin:2010ei +6 12 5.766 40.00 3.2037e+00 3.8589e-02 9.3129e-04 Fomin:2010ei +6 12 5.766 40.00 3.1630e+00 2.6578e-02 8.2739e-04 Fomin:2010ei +6 12 5.766 40.00 3.1232e+00 1.8786e-02 6.2212e-04 Fomin:2010ei +6 12 5.766 40.00 3.0845e+00 1.3089e-02 5.2202e-04 Fomin:2010ei +6 12 5.766 40.00 3.0467e+00 8.3993e-03 5.3678e-04 Fomin:2010ei +6 12 5.766 40.00 3.0098e+00 5.4747e-03 4.2237e-04 Fomin:2010ei +6 12 5.766 40.00 2.9738e+00 3.8246e-03 3.5207e-04 Fomin:2010ei +6 12 5.766 40.00 2.9387e+00 2.2255e-03 2.8168e-04 Fomin:2010ei +6 12 5.766 40.00 2.9044e+00 2.0132e-03 2.6209e-04 Fomin:2010ei +6 12 5.766 40.00 2.8709e+00 1.2816e-03 2.2399e-04 Fomin:2010ei +6 12 5.766 40.00 2.8381e+00 1.0476e-03 1.9443e-04 Fomin:2010ei +6 12 5.766 40.00 2.8061e+00 5.3516e-04 1.4271e-04 Fomin:2010ei +6 12 5.766 40.00 2.7748e+00 5.1434e-04 1.4229e-04 Fomin:2010ei +6 12 5.766 40.00 2.7442e+00 1.7769e-04 1.2206e-04 Fomin:2010ei +6 12 5.766 40.00 2.7142e+00 1.9849e-04 9.7241e-05 Fomin:2010ei +6 12 5.766 40.00 2.6849e+00 1.8559e-04 1.0375e-04 Fomin:2010ei +6 12 5.766 40.00 2.6282e+00 7.7292e-05 1.0931e-04 Fomin:2010ei +6 12 5.766 50.00 4.9731e+00 8.7143e+00 5.0462e-02 Fomin:2010ei +6 12 5.766 50.00 4.9089e+00 7.5890e+00 3.7068e-02 Fomin:2010ei +6 12 5.766 50.00 4.8462e+00 6.3798e+00 2.4008e-02 Fomin:2010ei +6 12 5.766 50.00 4.7852e+00 5.4278e+00 2.1599e-02 Fomin:2010ei +6 12 5.766 50.00 4.7257e+00 4.5143e+00 2.0398e-02 Fomin:2010ei +6 12 5.766 50.00 4.6675e+00 3.6620e+00 1.2016e-02 Fomin:2010ei +6 12 5.766 50.00 4.6109e+00 2.9873e+00 9.8872e-03 Fomin:2010ei +6 12 5.766 50.00 4.5556e+00 2.4053e+00 8.9741e-03 Fomin:2010ei +6 12 5.766 50.00 4.5015e+00 1.9092e+00 7.6442e-03 Fomin:2010ei +6 12 5.766 50.00 4.4488e+00 1.5157e+00 9.0158e-03 Fomin:2010ei +6 12 5.766 50.00 4.3973e+00 1.1496e+00 7.9369e-03 Fomin:2010ei +6 12 5.766 50.00 4.3469e+00 8.9707e-01 7.2348e-03 Fomin:2010ei +6 12 5.766 50.00 4.2978e+00 6.9312e-01 4.5029e-03 Fomin:2010ei +6 12 5.766 50.00 4.2497e+00 5.3602e-01 4.0800e-03 Fomin:2010ei +6 12 5.766 50.00 4.2026e+00 3.9202e-01 3.4965e-03 Fomin:2010ei +6 12 5.766 50.00 4.1566e+00 2.8107e-01 2.9858e-03 Fomin:2010ei +6 12 5.766 50.00 4.1117e+00 1.9897e-01 2.5707e-03 Fomin:2010ei +6 12 5.766 50.00 4.0675e+00 1.5190e-01 1.8075e-03 Fomin:2010ei +6 12 5.766 50.00 4.0245e+00 1.0740e-01 1.7744e-03 Fomin:2010ei +6 12 5.766 50.00 3.9823e+00 7.4475e-02 1.3822e-03 Fomin:2010ei +6 12 5.766 50.00 3.9409e+00 5.2883e-02 1.1419e-03 Fomin:2010ei +6 12 5.766 50.00 3.9005e+00 3.6467e-02 1.0001e-03 Fomin:2010ei +6 12 5.766 50.00 3.8609e+00 2.4695e-02 8.6412e-04 Fomin:2010ei +6 12 5.766 50.00 3.8219e+00 1.5708e-02 6.7622e-04 Fomin:2010ei +6 12 5.766 50.00 3.7839e+00 1.0189e-02 5.1476e-04 Fomin:2010ei +6 12 5.766 50.00 3.7466e+00 8.0087e-03 4.3952e-04 Fomin:2010ei +6 12 5.766 50.00 3.7099e+00 5.0803e-03 4.8478e-04 Fomin:2010ei +6 12 5.766 50.00 3.6741e+00 4.2622e-03 3.4917e-04 Fomin:2010ei +6 12 5.766 50.00 3.6389e+00 2.6694e-03 2.7830e-04 Fomin:2010ei +6 12 5.766 50.00 3.6043e+00 1.7491e-03 2.2768e-04 Fomin:2010ei +6 12 5.766 50.00 3.5704e+00 8.7977e-04 3.5127e-04 Fomin:2010ei +6 12 5.766 50.00 3.5372e+00 6.0316e-04 1.3820e-04 Fomin:2010ei +6 12 5.766 50.00 3.5045e+00 6.1238e-04 1.4032e-04 Fomin:2010ei +6 12 5.766 50.00 3.4725e+00 3.0087e-04 1.0572e-04 Fomin:2010ei +6 12 5.766 50.00 3.4410e+00 8.6418e-05 7.4840e-05 Fomin:2010ei diff --git a/data/eA/VirginiaArchive/Raw/16O.dat b/data/eA/VirginiaArchive/Raw/16O.dat new file mode 100644 index 0000000..fe9ab80 --- /dev/null +++ b/data/eA/VirginiaArchive/Raw/16O.dat @@ -0,0 +1,126 @@ + 8 16 0.7000 32.0 0.0131 1.110e+04 1.414e+03 Anghinolfi:1996vm + 8 16 0.7000 32.0 0.0639 3.926e+04 2.946e+03 Anghinolfi:1996vm + 8 16 0.7000 32.0 0.1132 5.246e+04 3.417e+03 Anghinolfi:1996vm + 8 16 0.7000 32.0 0.1632 2.230e+04 2.356e+03 Anghinolfi:1996vm + 8 16 0.7000 32.0 0.2127 1.511e+04 1.885e+03 Anghinolfi:1996vm + 8 16 0.7000 32.0 0.2634 1.275e+04 1.767e+03 Anghinolfi:1996vm + 8 16 0.7000 32.0 0.3127 1.593e+04 2.121e+03 Anghinolfi:1996vm + 8 16 0.7000 32.0 0.3617 1.605e+04 2.238e+03 Anghinolfi:1996vm + 8 16 0.7000 32.0 0.4136 1.723e+04 2.356e+03 Anghinolfi:1996vm + 8 16 0.7000 32.0 0.4609 1.511e+04 2.710e+03 Anghinolfi:1996vm + 8 16 0.737 37.10 0.005 1.145274e+03 5.437932e+01 O'Connell:1987ag + 8 16 0.737 37.10 0.015 2.072565e+03 9.286002e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.025 4.294244e+03 1.720724e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.045 1.069533e+04 6.362957e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.055 1.362179e+04 7.386101e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.065 1.566595e+04 8.562046e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.085 2.359134e+04 4.783858e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.095 2.620867e+04 5.286609e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.105 2.736528e+04 4.896991e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.115 2.676651e+04 1.077763e+03 O'Connell:1987ag + 8 16 0.737 37.10 0.125 2.750357e+04 6.717801e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.135 2.864351e+04 8.384742e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.145 2.334026e+04 7.864340e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.165 2.054571e+04 6.587918e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.175 1.620420e+04 4.157587e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.195 1.189352e+04 6.028586e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.205 9.845611e+03 5.369455e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.215 9.780346e+03 5.247376e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.225 9.684979e+03 5.524420e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.235 9.465869e+03 5.286224e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.245 7.550561e+03 5.051374e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.255 8.699222e+03 4.518011e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.265 9.082392e+03 4.542263e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.275 8.347293e+03 4.661163e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.285 1.053541e+04 5.947030e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.295 9.777702e+03 4.146686e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.305 1.155415e+04 5.196829e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.315 1.090209e+04 5.096803e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.325 1.054513e+04 5.257814e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.335 1.156878e+04 5.789788e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.345 1.160804e+04 4.127202e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.365 1.277601e+04 5.222418e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.375 1.211411e+04 7.427255e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.385 1.209115e+04 5.704618e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.405 1.169767e+04 4.996077e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.415 1.184870e+04 5.668907e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.425 1.087115e+04 5.057672e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.435 1.125201e+04 8.026966e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.445 1.056200e+04 5.826770e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.455 1.064251e+04 8.006067e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.465 1.028915e+04 4.160326e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.475 9.250337e+03 6.439489e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.485 8.978261e+03 8.670644e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.495 7.948388e+03 4.155895e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.505 8.269516e+03 5.469043e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.515 8.277872e+03 5.741224e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.525 8.099373e+03 6.452941e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.545 8.073712e+03 8.653318e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.565 4.407392e+03 9.898168e+02 O'Connell:1987ag + 8 16 0.737 37.10 0.595 6.908552e+03 2.205562e+03 O'Connell:1987ag + 8 16 0.737 37.10 0.605 7.510988e+03 1.602130e+03 O'Connell:1987ag + 8 16 0.737 37.10 0.615 7.673268e+03 1.399119e+03 O'Connell:1987ag + 8 16 0.737 37.10 0.625 5.116644e+03 2.015953e+03 O'Connell:1987ag + 8 16 0.8800 32.0 0.0129 2.568e+03 2.177e+03 Anghinolfi:1996vm + 8 16 0.8800 32.0 0.0616 1.345e+04 1.837e+03 Anghinolfi:1996vm + 8 16 0.8800 32.0 0.1121 2.692e+04 1.633e+03 Anghinolfi:1996vm + 8 16 0.8800 32.0 0.1622 2.522e+04 1.224e+03 Anghinolfi:1996vm + 8 16 0.8800 32.0 0.2121 1.372e+04 1.292e+03 Anghinolfi:1996vm + 8 16 0.8800 32.0 0.2625 1.094e+04 1.088e+03 Anghinolfi:1996vm + 8 16 0.8800 32.0 0.3121 1.080e+04 9.523e+02 Anghinolfi:1996vm + 8 16 0.8800 32.0 0.3615 1.236e+04 1.088e+03 Anghinolfi:1996vm + 8 16 0.8800 32.0 0.4116 1.345e+04 1.156e+03 Anghinolfi:1996vm + 8 16 0.8800 32.0 0.4624 9.099e+03 1.156e+03 Anghinolfi:1996vm + 8 16 0.8800 32.0 0.5100 8.350e+03 1.088e+03 Anghinolfi:1996vm + 8 16 0.8800 32.0 0.5616 6.105e+03 1.020e+03 Anghinolfi:1996vm + 8 16 0.8800 32.0 0.6121 5.289e+03 1.224e+03 Anghinolfi:1996vm + 8 16 1.0800 32.0 0.0644 2.464e+03 4.361e+02 Anghinolfi:1996vm + 8 16 1.0800 32.0 0.1108 7.464e+03 6.395e+02 Anghinolfi:1996vm + 8 16 1.0800 32.0 0.1618 1.310e+04 8.721e+02 Anghinolfi:1996vm + 8 16 1.0800 32.0 0.2136 1.331e+04 8.721e+02 Anghinolfi:1996vm + 8 16 1.0800 32.0 0.2617 8.801e+03 6.686e+02 Anghinolfi:1996vm + 8 16 1.0800 32.0 0.3137 6.359e+03 6.686e+02 Anghinolfi:1996vm + 8 16 1.0800 32.0 0.3622 8.103e+03 6.977e+02 Anghinolfi:1996vm + 8 16 1.0800 32.0 0.4097 9.498e+03 7.558e+02 Anghinolfi:1996vm + 8 16 1.0800 32.0 0.4606 7.725e+03 7.558e+02 Anghinolfi:1996vm + 8 16 1.0800 32.0 0.5117 7.725e+03 6.977e+02 Anghinolfi:1996vm + 8 16 1.0800 32.0 0.5611 6.853e+03 6.977e+02 Anghinolfi:1996vm + 8 16 1.0800 32.0 0.6104 5.458e+03 6.105e+02 Anghinolfi:1996vm + 8 16 1.0800 32.0 0.6593 4.673e+03 6.686e+02 Anghinolfi:1996vm + 8 16 1.0800 32.0 0.7380 4.702e+03 7.267e+02 Anghinolfi:1996vm + 8 16 1.2000 32.0 0.0371 1.401e+02 1.353e+02 Anghinolfi:1996vm + 8 16 1.2000 32.0 0.0880 1.551e+03 2.512e+02 Anghinolfi:1996vm + 8 16 1.2000 32.0 0.1385 4.372e+03 4.251e+02 Anghinolfi:1996vm + 8 16 1.2000 32.0 0.1887 8.546e+03 5.604e+02 Anghinolfi:1996vm + 8 16 1.2000 32.0 0.2394 8.121e+03 5.990e+02 Anghinolfi:1996vm + 8 16 1.2000 32.0 0.2883 7.039e+03 5.024e+02 Anghinolfi:1996vm + 8 16 1.2000 32.0 0.3381 5.589e+03 5.024e+02 Anghinolfi:1996vm + 8 16 1.2000 32.0 0.3885 5.396e+03 4.831e+02 Anghinolfi:1996vm + 8 16 1.2000 32.0 0.4357 5.570e+03 5.024e+02 Anghinolfi:1996vm + 8 16 1.2000 32.0 0.4885 7.676e+03 5.604e+02 Anghinolfi:1996vm + 8 16 1.2000 32.0 0.5395 5.377e+03 5.217e+02 Anghinolfi:1996vm + 8 16 1.2000 32.0 0.5902 4.758e+03 4.638e+02 Anghinolfi:1996vm + 8 16 1.2000 32.0 0.6383 5.280e+03 5.024e+02 Anghinolfi:1996vm + 8 16 1.2000 32.0 0.6857 4.527e+03 4.831e+02 Anghinolfi:1996vm + 8 16 1.2000 32.0 0.7389 4.121e+03 4.058e+02 Anghinolfi:1996vm + 8 16 1.2000 32.0 0.7867 3.947e+03 4.251e+02 Anghinolfi:1996vm + 8 16 1.2000 32.0 0.8428 4.681e+03 4.831e+02 Anghinolfi:1996vm + 8 16 1.5000 32.0 0.1380 2.873e+02 6.094e+01 Anghinolfi:1996vm + 8 16 1.5000 32.0 0.1859 1.280e+03 1.219e+02 Anghinolfi:1996vm + 8 16 1.5000 32.0 0.2356 2.203e+03 1.567e+02 Anghinolfi:1996vm + 8 16 1.5000 32.0 0.2850 3.187e+03 2.002e+02 Anghinolfi:1996vm + 8 16 1.5000 32.0 0.3365 2.734e+03 1.828e+02 Anghinolfi:1996vm + 8 16 1.5000 32.0 0.3871 2.804e+03 1.828e+02 Anghinolfi:1996vm + 8 16 1.5000 32.0 0.4360 2.307e+03 1.654e+02 Anghinolfi:1996vm + 8 16 1.5000 32.0 0.4847 2.508e+03 1.567e+02 Anghinolfi:1996vm + 8 16 1.5000 32.0 0.5356 2.429e+03 1.654e+02 Anghinolfi:1996vm + 8 16 1.5000 32.0 0.5856 2.481e+03 1.654e+02 Anghinolfi:1996vm + 8 16 1.5000 32.0 0.6344 2.455e+03 1.654e+02 Anghinolfi:1996vm + 8 16 1.5000 32.0 0.6850 2.063e+03 1.480e+02 Anghinolfi:1996vm + 8 16 1.5000 32.0 0.7373 2.264e+03 1.654e+02 Anghinolfi:1996vm + 8 16 1.5000 32.0 0.7879 2.098e+03 1.654e+02 Anghinolfi:1996vm + 8 16 1.5000 32.0 0.8399 2.098e+03 1.567e+02 Anghinolfi:1996vm + 8 16 1.5000 32.0 0.8863 2.368e+03 1.480e+02 Anghinolfi:1996vm + 8 16 1.5000 32.0 0.9376 2.298e+03 1.654e+02 Anghinolfi:1996vm + 8 16 1.5000 32.0 0.9901 2.516e+03 1.654e+02 Anghinolfi:1996vm + 8 16 1.5000 32.0 1.0362 2.577e+03 1.741e+02 Anghinolfi:1996vm diff --git a/data/eA/VirginiaArchive/Raw/ToFHiCL.sh b/data/eA/VirginiaArchive/Raw/ToFHiCL.sh new file mode 100755 index 0000000..dbe4047 --- /dev/null +++ b/data/eA/VirginiaArchive/Raw/ToFHiCL.sh @@ -0,0 +1,73 @@ +#!/bin/bash + +INPUT=${1} +OUTPUT=${2} + +if [ ! -e ${INPUT} ]; then + echo "Cannot find input file: \"${INPUT}\"." + exit 1 +fi + +if [ -z ${OUTPUT} ]; then + OUTPUT=/dev/stdout +fi + + +CURR_HASH="" + +echo "datasets: [ " > ${OUTPUT} + +while IFS= read -r LINE +do + + #Tidy line a bit + LINE=$(echo ${LINE} | sed "s/^\s\+//g" | sed "s/\s\+/ /g") + #Get CITE + CITE=$(echo ${LINE} | cut -d " " -f 8) + AUTHOR=$(echo ${CITE} | cut -d ":" -f 1) + YEAR=$(echo ${CITE} | cut -d ":" -f 2 | cut -c1-4) + TARGET_A=$(echo ${LINE} | cut -d " " -f 2) + TARGET_Z=$(echo ${LINE} | cut -d " " -f 1) + EIN=$(echo ${LINE} | cut -d " " -f 3) + ANGOUT=$(echo ${LINE} | cut -d " " -f 4) + + ELOSS=$(echo ${LINE} | cut -d " " -f 5) + XSEC=$(echo ${LINE} | cut -d " " -f 6) + XSECErr=$(echo ${LINE} | cut -d " " -f 7) + + DATASETHASH=${CITE}_${TARGET_A}_${TARGET_Z}_${EIN}_${ANGOUT} + + ISNEW=0 + ISFIRST=0 + if [ -z ${CURR_HASH} ]; then + CURR_HASH=${DATASETHASH} + ISNEW=1 + ISFIRST=1 + elif [ ${DATASETHASH} != ${CURR_HASH} ]; then + CURR_HASH=${DATASETHASH} + ISNEW=1 + ISFIRST=0 + fi + + if [ ${ISNEW} == 1 ]; then + echo "New data set = ${AUTHOR}, ${YEAR} on Z = ${TARGET_Z}, EIN = ${EIN}, ANGOUT = ${ANGOUT}." + if [ ${ISFIRST} != 1 ]; then + echo -e "\t\t]" >> ${OUTPUT} + echo -e "\t}," >> ${OUTPUT} + fi + echo -e "\t{" >> ${OUTPUT} + echo -e "\t\tAuthor: \"${AUTHOR}\"" >> ${OUTPUT} + echo -e "\t\tYear: \"${YEAR}\"" >> ${OUTPUT} + echo -e "\t\tCitation: \"${CITE}\"" >> ${OUTPUT} + echo -e "\t\tTarget: [${TARGET_Z}, ${TARGET_A}]" >> ${OUTPUT} + echo -e "\t\tEIn: ${EIN}" >> ${OUTPUT} + echo -e "\t\tAngOut: ${ANGOUT}" >> ${OUTPUT} + echo -e "\t\tData: [" >> ${OUTPUT} + fi + echo -e "\t\t\t[ ${ELOSS}, ${XSEC}, ${XSECErr} ]," >> ${OUTPUT} + +done < ${INPUT} + +echo -e "\t\t]" >> ${OUTPUT} +echo -e "\t}," >> ${OUTPUT} +echo -e "]" >> ${OUTPUT} diff --git a/data/nuA/Nuclear/T2K/CC1Pi/CMakeLists.txt b/data/nuA/Nuclear/T2K/CC1Pi/CMakeLists.txt new file mode 100644 index 0000000..5e69dbf --- /dev/null +++ b/data/nuA/Nuclear/T2K/CC1Pi/CMakeLists.txt @@ -0,0 +1,3 @@ +SET(DATA_INSTALL_DIR ${DATA_INSTALL_DIR}/CC1Pi) + +add_subdirectory(Pip_CH_xsec_nu) diff --git a/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/CMakeLists.txt b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/CMakeLists.txt new file mode 100644 index 0000000..ad426ce --- /dev/null +++ b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/CMakeLists.txt @@ -0,0 +1,5 @@ +SET(DATA_INSTALL_DIR ${DATA_INSTALL_DIR}/CC1Pip_CH_xsec_nu) + +FILE(GLOB DATA_FILES *.root) + +install(FILES ${DATA_FILES} DESTINATION ${DATA_INSTALL_DIR}) diff --git a/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/MomentumPion.root b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/MomentumPion.root new file mode 100644 index 0000000..b47e5a8 Binary files /dev/null and b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/MomentumPion.root differ diff --git a/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/MomentumPion.txt b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/MomentumPion.txt new file mode 100644 index 0000000..678fd80 --- /dev/null +++ b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/MomentumPion.txt @@ -0,0 +1,184 @@ + + Variable : Momentum_pion (GeV) + +(Low end - Up end ) (GeV) cross-section (10^{-38}cm2/GeV/Nucleon) +--------------------------------------------------------------------------------------- +Bin 0 (0.0000,0.2000) 0.0322 +Bin 1 (0.2000,0.3000) 0.1133 +Bin 2 (0.3000,0.4000) 0.0979 +Bin 3 (0.4000,0.5000) 0.0552 +Bin 4 (0.5000,0.6000) 0.0329 +Bin 5 (0.6000,0.7000) 0.0182 +Bin 6 (0.7000,0.8000) 0.0164 +Bin 7 (0.8000,0.9000) 0.0146 +Bin 8 (0.9000,1.0000) 0.0107 +Bin 9 (1.0000,1.1000) 0.0103 +Bin 10 (1.1000,1.2000) 0.0102 +Bin 11 (1.2000,1.3000) 0.0082 +Bin 12 (1.3000,1.4000) 0.0050 +Bin 13 (1.4000,1.6000) 0.0043 +Bin 14 (1.6000,2.0000) 0.0021 +Bin 15 (2.0000,3.0000) 0.0013 +Bin 16 (3.0000,15.0000) 0.0001 +---------------------------------------------------------------------------------------- + + Covariance matrix + +(bin1-bin2) Cov(bin1,bin2) [= Cov(bin2,bin1)] +---------------------------------------------------------------------------------------- + + ( 0-0 ) 0.00025742 + ( 0-1 ) 0.00044177 + ( 0-2 ) 0.00021643 + ( 0-3 ) 0.00012093 + ( 0-4 ) 0.00007565 + ( 0-5 ) 0.00004334 + ( 0-6 ) 0.00003825 + ( 0-7 ) 0.00003113 + ( 0-8 ) 0.00002540 + ( 0-9 ) 0.00002340 + ( 0-10 ) 0.00002229 + ( 0-11 ) 0.00001811 + ( 0-12 ) 0.00001323 + ( 0-13 ) 0.00001236 + ( 0-14 ) 0.00000895 + ( 0-15 ) 0.00000450 + ( 0-16 ) 0.00000032 + ( 1-1 ) 0.00109701 + ( 1-2 ) 0.00050478 + ( 1-3 ) 0.00026115 + ( 1-4 ) 0.00016197 + ( 1-5 ) 0.00009815 + ( 1-6 ) 0.00008905 + ( 1-7 ) 0.00007268 + ( 1-8 ) 0.00005803 + ( 1-9 ) 0.00005465 + ( 1-10 ) 0.00005414 + ( 1-11 ) 0.00004486 + ( 1-12 ) 0.00003219 + ( 1-13 ) 0.00003090 + ( 1-14 ) 0.00002213 + ( 1-15 ) 0.00001092 + ( 1-16 ) 0.00000075 + ( 2-2 ) 0.00038075 + ( 2-3 ) 0.00020255 + ( 2-4 ) 0.00012507 + ( 2-5 ) 0.00007649 + ( 2-6 ) 0.00007052 + ( 2-7 ) 0.00005703 + ( 2-8 ) 0.00004560 + ( 2-9 ) 0.00004171 + ( 2-10 ) 0.00004124 + ( 2-11 ) 0.00003390 + ( 2-12 ) 0.00002404 + ( 2-13 ) 0.00002223 + ( 2-14 ) 0.00001484 + ( 2-15 ) 0.00000746 + ( 2-16 ) 0.00000050 + ( 3-3 ) 0.00014639 + ( 3-4 ) 0.00008776 + ( 3-5 ) 0.00005136 + ( 3-6 ) 0.00004617 + ( 3-7 ) 0.00003615 + ( 3-8 ) 0.00002870 + ( 3-9 ) 0.00002560 + ( 3-10 ) 0.00002514 + ( 3-11 ) 0.00002085 + ( 3-12 ) 0.00001431 + ( 3-13 ) 0.00001275 + ( 3-14 ) 0.00000800 + ( 3-15 ) 0.00000409 + ( 3-16 ) 0.00000028 + ( 4-4 ) 0.00007383 + ( 4-5 ) 0.00004221 + ( 4-6 ) 0.00003450 + ( 4-7 ) 0.00002653 + ( 4-8 ) 0.00002096 + ( 4-9 ) 0.00001829 + ( 4-10 ) 0.00001726 + ( 4-11 ) 0.00001435 + ( 4-12 ) 0.00000981 + ( 4-13 ) 0.00000845 + ( 4-14 ) 0.00000478 + ( 4-15 ) 0.00000257 + ( 4-16 ) 0.00000018 + ( 5-5 ) 0.00003302 + ( 5-6 ) 0.00002597 + ( 5-7 ) 0.00001857 + ( 5-8 ) 0.00001449 + ( 5-9 ) 0.00001213 + ( 5-10 ) 0.00001114 + ( 5-11 ) 0.00000905 + ( 5-12 ) 0.00000613 + ( 5-13 ) 0.00000496 + ( 5-14 ) 0.00000258 + ( 5-15 ) 0.00000155 + ( 5-16 ) 0.00000011 + ( 6-6 ) 0.00002747 + ( 6-7 ) 0.00001951 + ( 6-8 ) 0.00001433 + ( 6-9 ) 0.00001219 + ( 6-10 ) 0.00001137 + ( 6-11 ) 0.00000929 + ( 6-12 ) 0.00000628 + ( 6-13 ) 0.00000538 + ( 6-14 ) 0.00000305 + ( 6-15 ) 0.00000166 + ( 6-16 ) 0.00000011 + ( 7-7 ) 0.00001952 + ( 7-8 ) 0.00001352 + ( 7-9 ) 0.00001079 + ( 7-10 ) 0.00000979 + ( 7-11 ) 0.00000801 + ( 7-12 ) 0.00000541 + ( 7-13 ) 0.00000476 + ( 7-14 ) 0.00000269 + ( 7-15 ) 0.00000143 + ( 7-16 ) 0.00000009 + ( 8-8 ) 0.00001162 + ( 8-9 ) 0.00000970 + ( 8-10 ) 0.00000851 + ( 8-11 ) 0.00000682 + ( 8-12 ) 0.00000471 + ( 8-13 ) 0.00000429 + ( 8-14 ) 0.00000252 + ( 8-15 ) 0.00000125 + ( 8-16 ) 0.00000008 + ( 9-9 ) 0.00000999 + ( 9-10 ) 0.00000892 + ( 9-11 ) 0.00000712 + ( 9-12 ) 0.00000495 + ( 9-13 ) 0.00000482 + ( 9-14 ) 0.00000313 + ( 9-15 ) 0.00000140 + ( 9-16 ) 0.00000008 + ( 10-10 ) 0.00000988 + ( 10-11 ) 0.00000818 + ( 10-12 ) 0.00000554 + ( 10-13 ) 0.00000520 + ( 10-14 ) 0.00000341 + ( 10-15 ) 0.00000143 + ( 10-16 ) 0.00000008 + ( 11-11 ) 0.00000771 + ( 11-12 ) 0.00000525 + ( 11-13 ) 0.00000492 + ( 11-14 ) 0.00000328 + ( 11-15 ) 0.00000131 + ( 11-16 ) 0.00000007 + ( 12-12 ) 0.00000428 + ( 12-13 ) 0.00000421 + ( 12-14 ) 0.00000286 + ( 12-15 ) 0.00000108 + ( 12-16 ) 0.00000006 + ( 13-13 ) 0.00000488 + ( 13-14 ) 0.00000351 + ( 13-15 ) 0.00000125 + ( 13-16 ) 0.00000006 + ( 14-14 ) 0.00000305 + ( 14-15 ) 0.00000108 + ( 14-16 ) 0.00000005 + ( 15-15 ) 0.00000051 + ( 15-16 ) 0.00000003 + ( 16-16 ) 0.00000000 +---------------------------------------------------------------------------------------- + diff --git a/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/PmuThetamu.root b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/PmuThetamu.root new file mode 100644 index 0000000..5eb5bdd Binary files /dev/null and b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/PmuThetamu.root differ diff --git a/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/PmuThetamu.txt b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/PmuThetamu.txt new file mode 100644 index 0000000..f0d18d0 --- /dev/null +++ b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/PmuThetamu.txt @@ -0,0 +1,244 @@ + + Variable : p_mu theta_mu + +Cos (Low end-Up end) Mom (Low end-Up end) GeV cross-section 10^{-38}cm2/GeV/Nucleon +--------------------------------------------------------------------------------------- +Bin 0 (0.0000,0.8000) (0.0000,0.4000) 0.1004 +Bin 1 (0.0000,0.8000) (0.4000,1.2000) 0.0233 +Bin 2 (0.0000,0.8000) (1.2000,1.6000) 0.0017 +Bin 3 (0.0000,0.8000) (1.6000,2.0000) 0.0004 +Bin 4 (0.0000,0.8000) (2.0000,15.0000) 0.0000 +Bin 5 (0.8000,0.8500) (0.0000,0.4000) 0.1175 +Bin 6 (0.8000,0.8500) (0.4000,1.2000) 0.1062 +Bin 7 (0.8000,0.8500) (1.2000,1.6000) 0.0182 +Bin 8 (0.8000,0.8500) (1.6000,2.0000) 0.0043 +Bin 9 (0.8000,0.8500) (2.0000,15.0000) 0.0000 +Bin 10 (0.8500,0.9000) (0.0000,0.4000) 0.0998 +Bin 11 (0.8500,0.9000) (0.4000,1.2000) 0.1343 +Bin 12 (0.8500,0.9000) (1.2000,1.6000) 0.0415 +Bin 13 (0.8500,0.9000) (1.6000,2.0000) 0.0114 +Bin 14 (0.8500,0.9000) (2.0000,15.0000) 0.0000 +Bin 15 (0.9000,1.0000) (0.0000,0.4000) 0.1145 +Bin 16 (0.9000,1.0000) (0.4000,1.2000) 0.1413 +Bin 17 (0.9000,1.0000) (1.2000,1.6000) 0.1202 +Bin 18 (0.9000,1.0000) (1.6000,2.0000) 0.1007 +Bin 19 (0.9000,1.0000) (2.0000,15.0000) 0.0140 +---------------------------------------------------------------------------------------- + + Covariance matrix + +(bin1-bin2) Cov(bin1,bin2) [= Cov(bin2,bin1)] +---------------------------------------------------------------------------------------- + + ( 0-0 ) 0.0005666501 + ( 0-1 ) 0.0005686983 + ( 0-2 ) 0.0005103095 + ( 0-3 ) 0.0005338387 + ( 0-4 ) 0.0000902192 + ( 0-5 ) 0.0003452594 + ( 0-6 ) 0.0004299629 + ( 0-7 ) 0.0004411195 + ( 0-8 ) 0.0000077690 + ( 0-9 ) 0.0000744048 + ( 0-10 ) 0.0001425246 + ( 0-11 ) 0.0003744206 + ( 0-12 ) 0.0000019880 + ( 0-13 ) 0.0000186993 + ( 0-14 ) 0.0000526413 + ( 0-15 ) 0.0003187756 + ( 0-16 ) 0.0000000100 + ( 0-17 ) 0.0000000422 + ( 0-18 ) 0.0000011576 + ( 0-19 ) 0.0000462853 + ( 1-1 ) 0.0009526706 + ( 1-2 ) 0.0006600224 + ( 1-3 ) 0.0006030986 + ( 1-4 ) 0.0001031060 + ( 1-5 ) 0.0004118135 + ( 1-6 ) 0.0005013412 + ( 1-7 ) 0.0005253508 + ( 1-8 ) 0.0000092039 + ( 1-9 ) 0.0000936286 + ( 1-10 ) 0.0001691692 + ( 1-11 ) 0.0004353796 + ( 1-12 ) 0.0000025182 + ( 1-13 ) 0.0000253229 + ( 1-14 ) 0.0000670219 + ( 1-15 ) 0.0003677954 + ( 1-16 ) 0.0000000123 + ( 1-17 ) 0.0000001411 + ( 1-18 ) 0.0000014346 + ( 1-19 ) 0.0000545252 + ( 2-2 ) 0.0008167382 + ( 2-3 ) 0.0006346576 + ( 2-4 ) 0.0000928845 + ( 2-5 ) 0.0003565603 + ( 2-6 ) 0.0004752307 + ( 2-7 ) 0.0004861377 + ( 2-8 ) 0.0000083624 + ( 2-9 ) 0.0000929873 + ( 2-10 ) 0.0001626229 + ( 2-11 ) 0.0004038681 + ( 2-12 ) 0.0000020398 + ( 2-13 ) 0.0000239370 + ( 2-14 ) 0.0000646321 + ( 2-15 ) 0.0003482652 + ( 2-16 ) 0.0000000094 + ( 2-17 ) 0.0000001508 + ( 2-18 ) 0.0000014976 + ( 2-19 ) 0.0000494646 + ( 3-3 ) 0.0009090564 + ( 3-4 ) 0.0001001871 + ( 3-5 ) 0.0003974689 + ( 3-6 ) 0.0005277231 + ( 3-7 ) 0.0005636140 + ( 3-8 ) 0.0000082616 + ( 3-9 ) 0.0000900370 + ( 3-10 ) 0.0001835398 + ( 3-11 ) 0.0004683568 + ( 3-12 ) 0.0000021445 + ( 3-13 ) 0.0000222478 + ( 3-14 ) 0.0000713213 + ( 3-15 ) 0.0004095885 + ( 3-16 ) 0.0000000101 + ( 3-17 ) -0.0000000100 + ( 3-18 ) 0.0000014909 + ( 3-19 ) 0.0000561390 + ( 4-4 ) 0.0000262635 + ( 4-5 ) 0.0000879958 + ( 4-6 ) 0.0001045915 + ( 4-7 ) 0.0001058880 + ( 4-8 ) 0.0000025257 + ( 4-9 ) 0.0000241173 + ( 4-10 ) 0.0000381947 + ( 4-11 ) 0.0000887736 + ( 4-12 ) 0.0000006183 + ( 4-13 ) 0.0000079510 + ( 4-14 ) 0.0000197338 + ( 4-15 ) 0.0000777699 + ( 4-16 ) 0.0000000036 + ( 4-17 ) 0.0000000706 + ( 4-18 ) 0.0000005831 + ( 4-19 ) 0.0000120574 + ( 5-5 ) 0.0005124229 + ( 5-6 ) 0.0004582615 + ( 5-7 ) 0.0004396641 + ( 5-8 ) 0.0000085306 + ( 5-9 ) 0.0001110136 + ( 5-10 ) 0.0001557185 + ( 5-11 ) 0.0003669045 + ( 5-12 ) 0.0000021566 + ( 5-13 ) 0.0000340846 + ( 5-14 ) 0.0000695727 + ( 5-15 ) 0.0003203564 + ( 5-16 ) 0.0000000138 + ( 5-17 ) 0.0000002800 + ( 5-18 ) 0.0000017090 + ( 5-19 ) 0.0000484742 + ( 6-6 ) 0.0007498285 + ( 6-7 ) 0.0005724277 + ( 6-8 ) 0.0000094604 + ( 6-9 ) 0.0001108240 + ( 6-10 ) 0.0002146363 + ( 6-11 ) 0.0004685564 + ( 6-12 ) 0.0000023533 + ( 6-13 ) 0.0000337459 + ( 6-14 ) 0.0000796033 + ( 6-15 ) 0.0004034379 + ( 6-16 ) 0.0000000131 + ( 6-17 ) 0.0000002866 + ( 6-18 ) 0.0000017176 + ( 6-19 ) 0.0000599575 + ( 7-7 ) 0.0006808361 + ( 7-8 ) 0.0000098310 + ( 7-9 ) 0.0001067350 + ( 7-10 ) 0.0001995776 + ( 7-11 ) 0.0004939694 + ( 7-12 ) 0.0000025445 + ( 7-13 ) 0.0000315475 + ( 7-14 ) 0.0000844284 + ( 7-15 ) 0.0004166798 + ( 7-16 ) 0.0000000145 + ( 7-17 ) 0.0000002355 + ( 7-18 ) 0.0000019627 + ( 7-19 ) 0.0000610722 + ( 8-8 ) 0.0000008523 + ( 8-9 ) 0.0000035144 + ( 8-10 ) 0.0000041586 + ( 8-11 ) 0.0000079261 + ( 8-12 ) 0.0000001840 + ( 8-13 ) 0.0000013560 + ( 8-14 ) 0.0000030671 + ( 8-15 ) 0.0000074010 + ( 8-16 ) 0.0000000013 + ( 8-17 ) 0.0000000208 + ( 8-18 ) 0.0000001472 + ( 8-19 ) 0.0000013361 + ( 9-9 ) 0.0001270294 + ( 9-10 ) 0.0000588923 + ( 9-11 ) 0.0000887266 + ( 9-12 ) 0.0000010689 + ( 9-13 ) 0.0000365389 + ( 9-14 ) 0.0000476800 + ( 9-15 ) 0.0000836867 + ( 9-16 ) 0.0000000066 + ( 9-17 ) 0.0000005111 + ( 9-18 ) 0.0000020389 + ( 9-19 ) 0.0000162138 + ( 10-10 ) 0.0001885256 + ( 10-11 ) 0.0001734856 + ( 10-12 ) 0.0000011919 + ( 10-13 ) 0.0000192385 + ( 10-14 ) 0.0000691699 + ( 10-15 ) 0.0001563459 + ( 10-16 ) 0.0000000067 + ( 10-17 ) 0.0000001822 + ( 10-18 ) 0.0000017787 + ( 10-19 ) 0.0000236055 + ( 11-11 ) 0.0005476729 + ( 11-12 ) 0.0000021589 + ( 11-13 ) 0.0000249483 + ( 11-14 ) 0.0000732101 + ( 11-15 ) 0.0003973613 + ( 11-16 ) 0.0000000119 + ( 11-17 ) 0.0000001797 + ( 11-18 ) 0.0000019774 + ( 11-19 ) 0.0000519585 + ( 12-12 ) 0.0000000810 + ( 12-13 ) 0.0000005620 + ( 12-14 ) 0.0000010464 + ( 12-15 ) 0.0000019127 + ( 12-16 ) 0.0000000005 + ( 12-17 ) 0.0000000104 + ( 12-18 ) 0.0000000585 + ( 12-19 ) 0.0000003503 + ( 13-13 ) 0.0000290034 + ( 13-14 ) 0.0000215253 + ( 13-15 ) 0.0000267870 + ( 13-16 ) 0.0000000032 + ( 13-17 ) 0.0000004370 + ( 13-18 ) 0.0000009273 + ( 13-19 ) 0.0000059893 + ( 14-14 ) 0.0001028494 + ( 14-15 ) 0.0000700266 + ( 14-16 ) 0.0000000068 + ( 14-17 ) 0.0000003461 + ( 14-18 ) 0.0000034968 + ( 14-19 ) 0.0000141327 + ( 15-15 ) 0.0004168317 + ( 15-16 ) 0.0000000112 + ( 15-17 ) 0.0000001791 + ( 15-18 ) 0.0000019472 + ( 15-19 ) 0.0000507654 + ( 16-16 ) 0.0000000000 + ( 16-17 ) 0.0000000000 + ( 16-18 ) 0.0000000000 + ( 16-19 ) 0.0000000023 + ( 17-17 ) 0.0000000221 + ( 17-18 ) 0.0000000103 + ( 17-19 ) 0.0000000536 + ( 18-18 ) 0.0000001294 + ( 18-19 ) 0.0000005010 + ( 19-19 ) 0.0000095819 +---------------------------------------------------------------------------------------- + diff --git a/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/Q2.root b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/Q2.root new file mode 100644 index 0000000..58e8bcb Binary files /dev/null and b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/Q2.root differ diff --git a/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/Q2.txt b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/Q2.txt new file mode 100644 index 0000000..7b6bb34 --- /dev/null +++ b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/Q2.txt @@ -0,0 +1,166 @@ + + Variable : Q2 (GeV2) + +(Low end - Up end ) (GeV2) cross-section (10^{-38}cm2/GeV2/Nucleon) +--------------------------------------------------------------------------------------- +Bin 0 (0.0000,0.1000) 0.0654 +Bin 1 (0.1000,0.2000) 0.0693 +Bin 2 (0.2000,0.3000) 0.0643 +Bin 3 (0.3000,0.4000) 0.0511 +Bin 4 (0.4000,0.5000) 0.0380 +Bin 5 (0.5000,0.6000) 0.0331 +Bin 6 (0.6000,0.7000) 0.0257 +Bin 7 (0.7000,0.8000) 0.0169 +Bin 8 (0.8000,0.9000) 0.0118 +Bin 9 (0.9000,1.0000) 0.0091 +Bin 10 (1.0000,1.2000) 0.0067 +Bin 11 (1.2000,1.4000) 0.0053 +Bin 12 (1.4000,1.6000) 0.0038 +Bin 13 (1.6000,1.8000) 0.0030 +Bin 14 (1.8000,2.0000) 0.0022 +Bin 15 (2.0000,3.3000) 0.0008 +---------------------------------------------------------------------------------------- + + Covariance matrix + +(bin1-bin2) Cov(bin1,bin2) [= Cov(bin2,bin1)] +---------------------------------------------------------------------------------------- + + ( 0-0 ) 0.00021423 + ( 0-1 ) 0.00018968 + ( 0-2 ) 0.00016073 + ( 0-3 ) 0.00012758 + ( 0-4 ) 0.00009625 + ( 0-5 ) 0.00008277 + ( 0-6 ) 0.00006519 + ( 0-7 ) 0.00004784 + ( 0-8 ) 0.00003549 + ( 0-9 ) 0.00002957 + ( 0-10 ) 0.00002330 + ( 0-11 ) 0.00001893 + ( 0-12 ) 0.00001445 + ( 0-13 ) 0.00001238 + ( 0-14 ) 0.00000976 + ( 0-15 ) 0.00000465 + ( 1-1 ) 0.00024190 + ( 1-2 ) 0.00019118 + ( 1-3 ) 0.00014710 + ( 1-4 ) 0.00010846 + ( 1-5 ) 0.00009261 + ( 1-6 ) 0.00007173 + ( 1-7 ) 0.00005271 + ( 1-8 ) 0.00003889 + ( 1-9 ) 0.00003244 + ( 1-10 ) 0.00002575 + ( 1-11 ) 0.00002133 + ( 1-12 ) 0.00001606 + ( 1-13 ) 0.00001387 + ( 1-14 ) 0.00001080 + ( 1-15 ) 0.00000525 + ( 2-2 ) 0.00018773 + ( 2-3 ) 0.00014367 + ( 2-4 ) 0.00010201 + ( 2-5 ) 0.00008628 + ( 2-6 ) 0.00006694 + ( 2-7 ) 0.00004931 + ( 2-8 ) 0.00003627 + ( 2-9 ) 0.00003046 + ( 2-10 ) 0.00002429 + ( 2-11 ) 0.00002031 + ( 2-12 ) 0.00001529 + ( 2-13 ) 0.00001340 + ( 2-14 ) 0.00001049 + ( 2-15 ) 0.00000523 + ( 3-3 ) 0.00012674 + ( 3-4 ) 0.00009028 + ( 3-5 ) 0.00007519 + ( 3-6 ) 0.00005759 + ( 3-7 ) 0.00004205 + ( 3-8 ) 0.00003097 + ( 3-9 ) 0.00002582 + ( 3-10 ) 0.00002074 + ( 3-11 ) 0.00001732 + ( 3-12 ) 0.00001310 + ( 3-13 ) 0.00001156 + ( 3-14 ) 0.00000919 + ( 3-15 ) 0.00000468 + ( 4-4 ) 0.00007242 + ( 4-5 ) 0.00006044 + ( 4-6 ) 0.00004592 + ( 4-7 ) 0.00003299 + ( 4-8 ) 0.00002420 + ( 4-9 ) 0.00002000 + ( 4-10 ) 0.00001597 + ( 4-11 ) 0.00001345 + ( 4-12 ) 0.00001020 + ( 4-13 ) 0.00000911 + ( 4-14 ) 0.00000727 + ( 4-15 ) 0.00000374 + ( 5-5 ) 0.00005521 + ( 5-6 ) 0.00004267 + ( 5-7 ) 0.00003048 + ( 5-8 ) 0.00002212 + ( 5-9 ) 0.00001801 + ( 5-10 ) 0.00001432 + ( 5-11 ) 0.00001208 + ( 5-12 ) 0.00000919 + ( 5-13 ) 0.00000823 + ( 5-14 ) 0.00000656 + ( 5-15 ) 0.00000339 + ( 6-6 ) 0.00003580 + ( 6-7 ) 0.00002554 + ( 6-8 ) 0.00001847 + ( 6-9 ) 0.00001493 + ( 6-10 ) 0.00001187 + ( 6-11 ) 0.00000999 + ( 6-12 ) 0.00000752 + ( 6-13 ) 0.00000677 + ( 6-14 ) 0.00000537 + ( 6-15 ) 0.00000275 + ( 7-7 ) 0.00002050 + ( 7-8 ) 0.00001476 + ( 7-9 ) 0.00001221 + ( 7-10 ) 0.00000962 + ( 7-11 ) 0.00000804 + ( 7-12 ) 0.00000599 + ( 7-13 ) 0.00000545 + ( 7-14 ) 0.00000428 + ( 7-15 ) 0.00000221 + ( 8-8 ) 0.00001193 + ( 8-9 ) 0.00000972 + ( 8-10 ) 0.00000757 + ( 8-11 ) 0.00000613 + ( 8-12 ) 0.00000459 + ( 8-13 ) 0.00000409 + ( 8-14 ) 0.00000323 + ( 8-15 ) 0.00000165 + ( 9-9 ) 0.00000872 + ( 9-10 ) 0.00000671 + ( 9-11 ) 0.00000549 + ( 9-12 ) 0.00000400 + ( 9-13 ) 0.00000356 + ( 9-14 ) 0.00000277 + ( 9-15 ) 0.00000142 + ( 10-10 ) 0.00000570 + ( 10-11 ) 0.00000466 + ( 10-12 ) 0.00000343 + ( 10-13 ) 0.00000307 + ( 10-14 ) 0.00000239 + ( 10-15 ) 0.00000123 + ( 11-11 ) 0.00000422 + ( 11-12 ) 0.00000311 + ( 11-13 ) 0.00000284 + ( 11-14 ) 0.00000223 + ( 11-15 ) 0.00000119 + ( 12-12 ) 0.00000255 + ( 12-13 ) 0.00000231 + ( 12-14 ) 0.00000186 + ( 12-15 ) 0.00000099 + ( 13-13 ) 0.00000237 + ( 13-14 ) 0.00000184 + ( 13-15 ) 0.00000101 + ( 14-14 ) 0.00000160 + ( 14-15 ) 0.00000090 + ( 15-15 ) 0.00000056 +---------------------------------------------------------------------------------------- + diff --git a/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/Thetapimu.root b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/Thetapimu.root new file mode 100644 index 0000000..a11fd49 Binary files /dev/null and b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/Thetapimu.root differ diff --git a/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/Thetapimu.txt b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/Thetapimu.txt new file mode 100644 index 0000000..96fbcbe --- /dev/null +++ b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/Thetapimu.txt @@ -0,0 +1,166 @@ + + Variable : Theta (pi,mu) (rads) + +(Low end - Up end ) (rads) cross-section (10^{-38}cm2/rad/Nucleon) +--------------------------------------------------------------------------------------- +Bin 0 (0.0000,0.1000) 0.0039 +Bin 1 (0.1000,0.2000) 0.0096 +Bin 2 (0.2000,0.3000) 0.0160 +Bin 3 (0.3000,0.4000) 0.0223 +Bin 4 (0.4000,0.5000) 0.0259 +Bin 5 (0.5000,0.6000) 0.0295 +Bin 6 (0.6000,0.7000) 0.0313 +Bin 7 (0.7000,0.8000) 0.0351 +Bin 8 (0.8000,0.9000) 0.0321 +Bin 9 (0.9000,1.0000) 0.0298 +Bin 10 (1.0000,1.2000) 0.0299 +Bin 11 (1.2000,1.4000) 0.0318 +Bin 12 (1.4000,1.6000) 0.0194 +Bin 13 (1.6000,1.8000) 0.0104 +Bin 14 (1.8000,2.0000) 0.0041 +Bin 15 (2.0000,3.1415) 0.0014 +---------------------------------------------------------------------------------------- + + Covariance matrix + +(bin1-bin2) Cov(bin1,bin2) [= Cov(bin2,bin1)] +---------------------------------------------------------------------------------------- + + ( 1-1 ) 0.00000300 + ( 1-2 ) 0.00000318 + ( 1-3 ) 0.00000354 + ( 1-4 ) 0.00000445 + ( 1-5 ) 0.00000525 + ( 1-6 ) 0.00000586 + ( 1-7 ) 0.00000624 + ( 1-8 ) 0.00000664 + ( 1-9 ) 0.00000638 + ( 1-10 ) 0.00000605 + ( 1-11 ) 0.00000618 + ( 1-12 ) 0.00000585 + ( 1-13 ) 0.00000372 + ( 1-14 ) 0.00000200 + ( 1-15 ) 0.00000076 + ( 1-16 ) 0.00000015 + ( 2-2 ) 0.00001147 + ( 2-3 ) 0.00001106 + ( 2-4 ) 0.00001296 + ( 2-5 ) 0.00001519 + ( 2-6 ) 0.00001628 + ( 2-7 ) 0.00001794 + ( 2-8 ) 0.00001923 + ( 2-9 ) 0.00001788 + ( 2-10 ) 0.00001756 + ( 2-11 ) 0.00001734 + ( 2-12 ) 0.00001527 + ( 2-13 ) 0.00000981 + ( 2-14 ) 0.00000496 + ( 2-15 ) 0.00000210 + ( 2-16 ) 0.00000059 + ( 3-3 ) 0.00002394 + ( 3-4 ) 0.00002256 + ( 3-5 ) 0.00002509 + ( 3-6 ) 0.00002699 + ( 3-7 ) 0.00003013 + ( 3-8 ) 0.00003102 + ( 3-9 ) 0.00002961 + ( 3-10 ) 0.00002758 + ( 3-11 ) 0.00002691 + ( 3-12 ) 0.00002406 + ( 3-13 ) 0.00001500 + ( 3-14 ) 0.00000804 + ( 3-15 ) 0.00000315 + ( 3-16 ) 0.00000080 + ( 4-4 ) 0.00003734 + ( 4-5 ) 0.00003513 + ( 4-6 ) 0.00003568 + ( 4-7 ) 0.00003954 + ( 4-8 ) 0.00004162 + ( 4-9 ) 0.00003923 + ( 4-10 ) 0.00003625 + ( 4-11 ) 0.00003509 + ( 4-12 ) 0.00003260 + ( 4-13 ) 0.00002040 + ( 4-14 ) 0.00001046 + ( 4-15 ) 0.00000414 + ( 4-16 ) 0.00000115 + ( 5-5 ) 0.00005177 + ( 5-6 ) 0.00004526 + ( 5-7 ) 0.00004765 + ( 5-8 ) 0.00005024 + ( 5-9 ) 0.00004699 + ( 5-10 ) 0.00004413 + ( 5-11 ) 0.00004270 + ( 5-12 ) 0.00003915 + ( 5-13 ) 0.00002479 + ( 5-14 ) 0.00001289 + ( 5-15 ) 0.00000496 + ( 5-16 ) 0.00000136 + ( 6-6 ) 0.00005906 + ( 6-7 ) 0.00005358 + ( 6-8 ) 0.00005466 + ( 6-9 ) 0.00005176 + ( 6-10 ) 0.00004726 + ( 6-11 ) 0.00004622 + ( 6-12 ) 0.00004236 + ( 6-13 ) 0.00002692 + ( 6-14 ) 0.00001421 + ( 6-15 ) 0.00000577 + ( 6-16 ) 0.00000141 + ( 7-7 ) 0.00007188 + ( 7-8 ) 0.00006461 + ( 7-9 ) 0.00005849 + ( 7-10 ) 0.00005310 + ( 7-11 ) 0.00005241 + ( 7-12 ) 0.00004771 + ( 7-13 ) 0.00003023 + ( 7-14 ) 0.00001546 + ( 7-15 ) 0.00000652 + ( 7-16 ) 0.00000157 + ( 8-8 ) 0.00008295 + ( 8-9 ) 0.00006546 + ( 8-10 ) 0.00005810 + ( 8-11 ) 0.00005815 + ( 8-12 ) 0.00005356 + ( 8-13 ) 0.00003414 + ( 8-14 ) 0.00001733 + ( 8-15 ) 0.00000717 + ( 8-16 ) 0.00000174 + ( 9-9 ) 0.00007636 + ( 9-10 ) 0.00005787 + ( 9-11 ) 0.00005499 + ( 9-12 ) 0.00005147 + ( 9-13 ) 0.00003291 + ( 9-14 ) 0.00001688 + ( 9-15 ) 0.00000733 + ( 9-16 ) 0.00000166 + ( 10-10 ) 0.00006983 + ( 10-11 ) 0.00005616 + ( 10-12 ) 0.00004833 + ( 10-13 ) 0.00003118 + ( 10-14 ) 0.00001639 + ( 10-15 ) 0.00000714 + ( 10-16 ) 0.00000165 + ( 11-11 ) 0.00006693 + ( 11-12 ) 0.00005218 + ( 11-13 ) 0.00003290 + ( 11-14 ) 0.00001702 + ( 11-15 ) 0.00000726 + ( 11-16 ) 0.00000157 + ( 12-12 ) 0.00006748 + ( 12-13 ) 0.00003475 + ( 12-14 ) 0.00001690 + ( 12-15 ) 0.00000707 + ( 12-16 ) 0.00000160 + ( 13-13 ) 0.00003325 + ( 13-14 ) 0.00001299 + ( 13-15 ) 0.00000500 + ( 13-16 ) 0.00000103 + ( 14-14 ) 0.00001326 + ( 14-15 ) 0.00000304 + ( 14-16 ) 0.00000054 + ( 15-15 ) 0.00000504 + ( 15-16 ) 0.00000039 + ( 16-16 ) 0.00000064 +---------------------------------------------------------------------------------------- + diff --git a/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/Thetapion.root b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/Thetapion.root new file mode 100644 index 0000000..9a4c115 Binary files /dev/null and b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/Thetapion.root differ diff --git a/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/Thetapion.txt b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/Thetapion.txt new file mode 100644 index 0000000..a2f6ca2 --- /dev/null +++ b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/Thetapion.txt @@ -0,0 +1,118 @@ + + Variable : Theta_pion (rad) + +(Low end - Up end ) (rad) cross-section (10^{-38}cm2/rad/Nucleon) +--------------------------------------------------------------------------------------- +Bin 0 (0.0000,0.1000) 0.0111 +Bin 1 (0.1000,0.2000) 0.0187 +Bin 2 (0.2000,0.3000) 0.0338 +Bin 3 (0.3000,0.4000) 0.0480 +Bin 4 (0.4000,0.5000) 0.0431 +Bin 5 (0.5000,0.6000) 0.0517 +Bin 6 (0.6000,0.7000) 0.0473 +Bin 7 (0.7000,0.8000) 0.0340 +Bin 8 (0.8000,0.9000) 0.0333 +Bin 9 (0.9000,1.0000) 0.0312 +Bin 10 (1.0000,1.2000) 0.0216 +Bin 11 (1.2000,1.4000) 0.0178 +Bin 12 (1.4000,3.1415) 0.0013 +---------------------------------------------------------------------------------------- + + Covariance matrix + +(bin1-bin2) Cov(bin1,bin2) [= Cov(bin2,bin1)] +---------------------------------------------------------------------------------------- + + ( 0-0 ) 0.00002172 + ( 0-1 ) 0.00002430 + ( 0-2 ) 0.00002696 + ( 0-3 ) 0.00003337 + ( 0-4 ) 0.00003079 + ( 0-5 ) 0.00003312 + ( 0-6 ) 0.00002957 + ( 0-7 ) 0.00002266 + ( 0-8 ) 0.00002138 + ( 0-9 ) 0.00001937 + ( 0-10 ) 0.00001515 + ( 0-11 ) 0.00001401 + ( 0-12 ) 0.00000117 + ( 1-1 ) 0.00005862 + ( 1-2 ) 0.00005504 + ( 1-3 ) 0.00006442 + ( 1-4 ) 0.00005963 + ( 1-5 ) 0.00006369 + ( 1-6 ) 0.00005710 + ( 1-7 ) 0.00004586 + ( 1-8 ) 0.00004401 + ( 1-9 ) 0.00004036 + ( 1-10 ) 0.00003014 + ( 1-11 ) 0.00002675 + ( 1-12 ) 0.00000220 + ( 2-2 ) 0.00008754 + ( 2-3 ) 0.00008892 + ( 2-4 ) 0.00008083 + ( 2-5 ) 0.00008640 + ( 2-6 ) 0.00007711 + ( 2-7 ) 0.00006260 + ( 2-8 ) 0.00006143 + ( 2-9 ) 0.00005505 + ( 2-10 ) 0.00004030 + ( 2-11 ) 0.00003421 + ( 2-12 ) 0.00000277 + ( 3-3 ) 0.00013540 + ( 3-4 ) 0.00010860 + ( 3-5 ) 0.00011292 + ( 3-6 ) 0.00010387 + ( 3-7 ) 0.00008113 + ( 3-8 ) 0.00007977 + ( 3-9 ) 0.00007120 + ( 3-10 ) 0.00005329 + ( 3-11 ) 0.00004479 + ( 3-12 ) 0.00000370 + ( 4-4 ) 0.00011936 + ( 4-5 ) 0.00011004 + ( 4-6 ) 0.00009835 + ( 4-7 ) 0.00007740 + ( 4-8 ) 0.00007642 + ( 4-9 ) 0.00006871 + ( 4-10 ) 0.00005100 + ( 4-11 ) 0.00004172 + ( 4-12 ) 0.00000337 + ( 5-5 ) 0.00014181 + ( 5-6 ) 0.00011018 + ( 5-7 ) 0.00008384 + ( 5-8 ) 0.00008141 + ( 5-9 ) 0.00007384 + ( 5-10 ) 0.00005519 + ( 5-11 ) 0.00004808 + ( 5-12 ) 0.00000369 + ( 6-6 ) 0.00012355 + ( 6-7 ) 0.00008184 + ( 6-8 ) 0.00007513 + ( 6-9 ) 0.00006766 + ( 6-10 ) 0.00005024 + ( 6-11 ) 0.00004274 + ( 6-12 ) 0.00000342 + ( 7-7 ) 0.00008216 + ( 7-8 ) 0.00006588 + ( 7-9 ) 0.00005505 + ( 7-10 ) 0.00004114 + ( 7-11 ) 0.00003449 + ( 7-12 ) 0.00000274 + ( 8-8 ) 0.00008376 + ( 8-9 ) 0.00005940 + ( 8-10 ) 0.00004156 + ( 8-11 ) 0.00003395 + ( 8-12 ) 0.00000261 + ( 9-9 ) 0.00007216 + ( 9-10 ) 0.00004037 + ( 9-11 ) 0.00003235 + ( 9-12 ) 0.00000254 + ( 10-10 ) 0.00004131 + ( 10-11 ) 0.00002616 + ( 10-12 ) 0.00000199 + ( 11-11 ) 0.00003700 + ( 11-12 ) 0.00000201 + ( 12-12 ) 0.00000016 +---------------------------------------------------------------------------------------- + diff --git a/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/datarelease_v1.tar b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/datarelease_v1.tar new file mode 100644 index 0000000..f983de9 Binary files /dev/null and b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/datarelease_v1.tar differ diff --git a/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/phi_adler.root b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/phi_adler.root new file mode 100644 index 0000000..4b977b7 Binary files /dev/null and b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/phi_adler.root differ diff --git a/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/phi_adler.txt b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/phi_adler.txt new file mode 100644 index 0000000..4f866c8 --- /dev/null +++ b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/phi_adler.txt @@ -0,0 +1,166 @@ + + Variable : Phi_Adler (rads) + +(Low end - Up end ) (rads) cross-section (10^{-38}cm2/rad/Nucleon) +--------------------------------------------------------------------------------------- +Bin 0 (-3.1415,-2.8000) 0.0070 +Bin 1 (-2.8000,-2.4000) 0.0060 +Bin 2 (-2.4000,-2.0000) 0.0071 +Bin 3 (-2.0000,-1.6000) 0.0063 +Bin 4 (-1.6000,-1.2000) 0.0071 +Bin 5 (-1.2000,-0.8000) 0.0079 +Bin 6 (-0.8000,-0.4000) 0.0077 +Bin 7 (-0.4000,0.0000) 0.0084 +Bin 8 (0.0000,0.4000) 0.0085 +Bin 9 (0.4000,0.8000) 0.0094 +Bin 10 (0.8000,1.2000) 0.0070 +Bin 11 (1.2000,1.6000) 0.0055 +Bin 12 (1.6000,2.0000) 0.0060 +Bin 13 (2.0000,2.4000) 0.0040 +Bin 14 (2.4000,2.8000) 0.0046 +Bin 15 (2.8000,3.1415) 0.0081 +---------------------------------------------------------------------------------------- + + Covariance matrix + +(bin1-bin2) Cov(bin1,bin2) [= Cov(bin2,bin1)] +---------------------------------------------------------------------------------------- + + ( 0-0 ) 0.00000420 + ( 0-1 ) 0.00000276 + ( 0-2 ) 0.00000270 + ( 0-3 ) 0.00000236 + ( 0-4 ) 0.00000255 + ( 0-5 ) 0.00000259 + ( 0-6 ) 0.00000266 + ( 0-7 ) 0.00000277 + ( 0-8 ) 0.00000286 + ( 0-9 ) 0.00000305 + ( 0-10 ) 0.00000232 + ( 0-11 ) 0.00000202 + ( 0-12 ) 0.00000228 + ( 0-13 ) 0.00000169 + ( 0-14 ) 0.00000217 + ( 0-15 ) 0.00000396 + ( 1-1 ) 0.00000295 + ( 1-2 ) 0.00000262 + ( 1-3 ) 0.00000223 + ( 1-4 ) 0.00000225 + ( 1-5 ) 0.00000236 + ( 1-6 ) 0.00000233 + ( 1-7 ) 0.00000241 + ( 1-8 ) 0.00000246 + ( 1-9 ) 0.00000264 + ( 1-10 ) 0.00000202 + ( 1-11 ) 0.00000172 + ( 1-12 ) 0.00000195 + ( 1-13 ) 0.00000142 + ( 1-14 ) 0.00000179 + ( 1-15 ) 0.00000298 + ( 2-2 ) 0.00000357 + ( 2-3 ) 0.00000288 + ( 2-4 ) 0.00000273 + ( 2-5 ) 0.00000283 + ( 2-6 ) 0.00000283 + ( 2-7 ) 0.00000292 + ( 2-8 ) 0.00000295 + ( 2-9 ) 0.00000315 + ( 2-10 ) 0.00000245 + ( 2-11 ) 0.00000216 + ( 2-12 ) 0.00000234 + ( 2-13 ) 0.00000168 + ( 2-14 ) 0.00000201 + ( 2-15 ) 0.00000320 + ( 3-3 ) 0.00000339 + ( 3-4 ) 0.00000295 + ( 3-5 ) 0.00000288 + ( 3-6 ) 0.00000298 + ( 3-7 ) 0.00000310 + ( 3-8 ) 0.00000314 + ( 3-9 ) 0.00000322 + ( 3-10 ) 0.00000251 + ( 3-11 ) 0.00000217 + ( 3-12 ) 0.00000230 + ( 3-13 ) 0.00000171 + ( 3-14 ) 0.00000193 + ( 3-15 ) 0.00000294 + ( 4-4 ) 0.00000384 + ( 4-5 ) 0.00000333 + ( 4-6 ) 0.00000327 + ( 4-7 ) 0.00000344 + ( 4-8 ) 0.00000346 + ( 4-9 ) 0.00000355 + ( 4-10 ) 0.00000276 + ( 4-11 ) 0.00000233 + ( 4-12 ) 0.00000242 + ( 4-13 ) 0.00000180 + ( 4-14 ) 0.00000202 + ( 4-15 ) 0.00000303 + ( 5-5 ) 0.00000419 + ( 5-6 ) 0.00000365 + ( 5-7 ) 0.00000370 + ( 5-8 ) 0.00000374 + ( 5-9 ) 0.00000379 + ( 5-10 ) 0.00000294 + ( 5-11 ) 0.00000244 + ( 5-12 ) 0.00000252 + ( 5-13 ) 0.00000187 + ( 5-14 ) 0.00000208 + ( 5-15 ) 0.00000312 + ( 6-6 ) 0.00000469 + ( 6-7 ) 0.00000419 + ( 6-8 ) 0.00000403 + ( 6-9 ) 0.00000408 + ( 6-10 ) 0.00000315 + ( 6-11 ) 0.00000264 + ( 6-12 ) 0.00000269 + ( 6-13 ) 0.00000202 + ( 6-14 ) 0.00000211 + ( 6-15 ) 0.00000307 + ( 7-7 ) 0.00000559 + ( 7-8 ) 0.00000463 + ( 7-9 ) 0.00000447 + ( 7-10 ) 0.00000337 + ( 7-11 ) 0.00000284 + ( 7-12 ) 0.00000288 + ( 7-13 ) 0.00000215 + ( 7-14 ) 0.00000223 + ( 7-15 ) 0.00000324 + ( 8-8 ) 0.00000569 + ( 8-9 ) 0.00000476 + ( 8-10 ) 0.00000348 + ( 8-11 ) 0.00000283 + ( 8-12 ) 0.00000288 + ( 8-13 ) 0.00000217 + ( 8-14 ) 0.00000228 + ( 8-15 ) 0.00000330 + ( 9-9 ) 0.00000600 + ( 9-10 ) 0.00000376 + ( 9-11 ) 0.00000291 + ( 9-12 ) 0.00000301 + ( 9-13 ) 0.00000224 + ( 9-14 ) 0.00000238 + ( 9-15 ) 0.00000347 + ( 10-10 ) 0.00000371 + ( 10-11 ) 0.00000250 + ( 10-12 ) 0.00000241 + ( 10-13 ) 0.00000178 + ( 10-14 ) 0.00000185 + ( 10-15 ) 0.00000268 + ( 11-11 ) 0.00000266 + ( 11-12 ) 0.00000230 + ( 11-13 ) 0.00000155 + ( 11-14 ) 0.00000164 + ( 11-15 ) 0.00000237 + ( 12-12 ) 0.00000297 + ( 12-13 ) 0.00000183 + ( 12-14 ) 0.00000182 + ( 12-15 ) 0.00000271 + ( 13-13 ) 0.00000166 + ( 13-14 ) 0.00000152 + ( 13-15 ) 0.00000200 + ( 14-14 ) 0.00000221 + ( 14-15 ) 0.00000283 + ( 15-15 ) 0.00000574 +---------------------------------------------------------------------------------------- + diff --git a/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/theta_adler.root b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/theta_adler.root new file mode 100644 index 0000000..2d06469 Binary files /dev/null and b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/theta_adler.root differ diff --git a/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/theta_adler.txt b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/theta_adler.txt new file mode 100644 index 0000000..833f650 --- /dev/null +++ b/data/nuA/Nuclear/T2K/CC1Pi/Pip_CH_xsec_nu/theta_adler.txt @@ -0,0 +1,244 @@ + + Variable : Theta_Adler (rads) + +(Low end - Up end ) (rads) cross-section (10^{-38}cm2/rad/Nucleon) +--------------------------------------------------------------------------------------- +Bin 0 (-1.0000,-0.9000) 0.0003 +Bin 1 (-0.9000,-0.8000) -0.0008 +Bin 2 (-0.8000,-0.7000) -0.0004 +Bin 3 (-0.7000,-0.6000) 0.0007 +Bin 4 (-0.6000,-0.5000) -0.0003 +Bin 5 (-0.5000,-0.4000) 0.0048 +Bin 6 (-0.4000,-0.3000) 0.0133 +Bin 7 (-0.3000,-0.2000) 0.0152 +Bin 8 (-0.2000,-0.1000) 0.0155 +Bin 9 (-0.1000,0.0000) 0.0177 +Bin 10 (0.0000,0.1000) 0.0248 +Bin 11 (0.1000,0.2000) 0.0260 +Bin 12 (0.2000,0.3000) 0.0290 +Bin 13 (0.3000,0.4000) 0.0284 +Bin 14 (0.4000,0.5000) 0.0355 +Bin 15 (0.5000,0.6000) 0.0379 +Bin 16 (0.6000,0.7000) 0.0374 +Bin 17 (0.7000,0.8000) 0.0358 +Bin 18 (0.8000,0.9000) 0.0331 +Bin 19 (0.9000,1.0000) 0.0607 +---------------------------------------------------------------------------------------- + + Covariance matrix + +(bin1-bin2) Cov(bin1,bin2) [= Cov(bin2,bin1)] +---------------------------------------------------------------------------------------- + + ( 0-0 ) 0.00000003 + ( 0-1 ) 0.00000002 + ( 0-2 ) 0.00000004 + ( 0-3 ) 0.00000018 + ( 0-4 ) 0.00000011 + ( 0-5 ) 0.00000020 + ( 0-6 ) 0.00000036 + ( 0-7 ) 0.00000036 + ( 0-8 ) 0.00000035 + ( 0-9 ) 0.00000041 + ( 0-10 ) 0.00000045 + ( 0-11 ) 0.00000042 + ( 0-12 ) 0.00000047 + ( 0-13 ) 0.00000044 + ( 0-14 ) 0.00000046 + ( 0-15 ) 0.00000047 + ( 0-16 ) 0.00000051 + ( 0-17 ) 0.00000055 + ( 0-18 ) 0.00000063 + ( 0-19 ) 0.00000085 + ( 1-1 ) 0.00000103 + ( 1-2 ) 0.00000084 + ( 1-3 ) 0.00000266 + ( 1-4 ) 0.00000085 + ( 1-5 ) 0.00000110 + ( 1-6 ) 0.00000185 + ( 1-7 ) 0.00000200 + ( 1-8 ) 0.00000204 + ( 1-9 ) 0.00000187 + ( 1-10 ) 0.00000222 + ( 1-11 ) 0.00000160 + ( 1-12 ) 0.00000150 + ( 1-13 ) 0.00000133 + ( 1-14 ) 0.00000131 + ( 1-15 ) 0.00000153 + ( 1-16 ) 0.00000138 + ( 1-17 ) 0.00000162 + ( 1-18 ) 0.00000170 + ( 1-19 ) 0.00000231 + ( 2-2 ) 0.00000141 + ( 2-3 ) 0.00000327 + ( 2-4 ) 0.00000127 + ( 2-5 ) 0.00000176 + ( 2-6 ) 0.00000277 + ( 2-7 ) 0.00000283 + ( 2-8 ) 0.00000277 + ( 2-9 ) 0.00000272 + ( 2-10 ) 0.00000328 + ( 2-11 ) 0.00000271 + ( 2-12 ) 0.00000266 + ( 2-13 ) 0.00000246 + ( 2-14 ) 0.00000251 + ( 2-15 ) 0.00000288 + ( 2-16 ) 0.00000279 + ( 2-17 ) 0.00000294 + ( 2-18 ) 0.00000323 + ( 2-19 ) 0.00000469 + ( 3-3 ) 0.00002023 + ( 3-4 ) 0.00000536 + ( 3-5 ) 0.00000917 + ( 3-6 ) 0.00001527 + ( 3-7 ) 0.00001551 + ( 3-8 ) 0.00001625 + ( 3-9 ) 0.00001479 + ( 3-10 ) 0.00001851 + ( 3-11 ) 0.00001557 + ( 3-12 ) 0.00001545 + ( 3-13 ) 0.00001464 + ( 3-14 ) 0.00001603 + ( 3-15 ) 0.00001726 + ( 3-16 ) 0.00001654 + ( 3-17 ) 0.00001788 + ( 3-18 ) 0.00001912 + ( 3-19 ) 0.00002859 + ( 4-4 ) 0.00000452 + ( 4-5 ) 0.00000479 + ( 4-6 ) 0.00000516 + ( 4-7 ) 0.00000507 + ( 4-8 ) 0.00000516 + ( 4-9 ) 0.00000494 + ( 4-10 ) 0.00000565 + ( 4-11 ) 0.00000500 + ( 4-12 ) 0.00000492 + ( 4-13 ) 0.00000480 + ( 4-14 ) 0.00000499 + ( 4-15 ) 0.00000520 + ( 4-16 ) 0.00000530 + ( 4-17 ) 0.00000583 + ( 4-18 ) 0.00000688 + ( 4-19 ) 0.00000948 + ( 5-5 ) 0.00001092 + ( 5-6 ) 0.00001296 + ( 5-7 ) 0.00001284 + ( 5-8 ) 0.00001175 + ( 5-9 ) 0.00001118 + ( 5-10 ) 0.00001387 + ( 5-11 ) 0.00001281 + ( 5-12 ) 0.00001270 + ( 5-13 ) 0.00001236 + ( 5-14 ) 0.00001314 + ( 5-15 ) 0.00001447 + ( 5-16 ) 0.00001444 + ( 5-17 ) 0.00001496 + ( 5-18 ) 0.00001608 + ( 5-19 ) 0.00002378 + ( 6-6 ) 0.00002681 + ( 6-7 ) 0.00002543 + ( 6-8 ) 0.00002282 + ( 6-9 ) 0.00002108 + ( 6-10 ) 0.00002719 + ( 6-11 ) 0.00002378 + ( 6-12 ) 0.00002483 + ( 6-13 ) 0.00002319 + ( 6-14 ) 0.00002618 + ( 6-15 ) 0.00002843 + ( 6-16 ) 0.00002772 + ( 6-17 ) 0.00002863 + ( 6-18 ) 0.00002847 + ( 6-19 ) 0.00004488 + ( 7-7 ) 0.00002874 + ( 7-8 ) 0.00002610 + ( 7-9 ) 0.00002343 + ( 7-10 ) 0.00002931 + ( 7-11 ) 0.00002611 + ( 7-12 ) 0.00002670 + ( 7-13 ) 0.00002522 + ( 7-14 ) 0.00002782 + ( 7-15 ) 0.00003043 + ( 7-16 ) 0.00002976 + ( 7-17 ) 0.00003096 + ( 7-18 ) 0.00003099 + ( 7-19 ) 0.00004912 + ( 8-8 ) 0.00002830 + ( 8-9 ) 0.00002615 + ( 8-10 ) 0.00003024 + ( 8-11 ) 0.00002671 + ( 8-12 ) 0.00002731 + ( 8-13 ) 0.00002592 + ( 8-14 ) 0.00002917 + ( 8-15 ) 0.00003156 + ( 8-16 ) 0.00003121 + ( 8-17 ) 0.00003237 + ( 8-18 ) 0.00003258 + ( 8-19 ) 0.00005198 + ( 9-9 ) 0.00002967 + ( 9-10 ) 0.00003342 + ( 9-11 ) 0.00002841 + ( 9-12 ) 0.00002879 + ( 9-13 ) 0.00002692 + ( 9-14 ) 0.00003028 + ( 9-15 ) 0.00003259 + ( 9-16 ) 0.00003219 + ( 9-17 ) 0.00003345 + ( 9-18 ) 0.00003438 + ( 9-19 ) 0.00005416 + ( 10-10 ) 0.00004464 + ( 10-11 ) 0.00003844 + ( 10-12 ) 0.00003755 + ( 10-13 ) 0.00003459 + ( 10-14 ) 0.00003924 + ( 10-15 ) 0.00004232 + ( 10-16 ) 0.00004126 + ( 10-17 ) 0.00004235 + ( 10-18 ) 0.00004275 + ( 10-19 ) 0.00006888 + ( 11-11 ) 0.00003967 + ( 11-12 ) 0.00003847 + ( 11-13 ) 0.00003431 + ( 11-14 ) 0.00003817 + ( 11-15 ) 0.00004112 + ( 11-16 ) 0.00004053 + ( 11-17 ) 0.00004111 + ( 11-18 ) 0.00004188 + ( 11-19 ) 0.00006713 + ( 12-12 ) 0.00004369 + ( 12-13 ) 0.00003819 + ( 12-14 ) 0.00004157 + ( 12-15 ) 0.00004389 + ( 12-16 ) 0.00004346 + ( 12-17 ) 0.00004392 + ( 12-18 ) 0.00004400 + ( 12-19 ) 0.00007083 + ( 13-13 ) 0.00003996 + ( 13-14 ) 0.00004284 + ( 13-15 ) 0.00004386 + ( 13-16 ) 0.00004288 + ( 13-17 ) 0.00004314 + ( 13-18 ) 0.00004312 + ( 13-19 ) 0.00006950 + ( 14-14 ) 0.00005629 + ( 14-15 ) 0.00005574 + ( 14-16 ) 0.00005208 + ( 14-17 ) 0.00005119 + ( 14-18 ) 0.00005072 + ( 14-19 ) 0.00008344 + ( 15-15 ) 0.00006577 + ( 15-16 ) 0.00006012 + ( 15-17 ) 0.00005626 + ( 15-18 ) 0.00005516 + ( 15-19 ) 0.00009104 + ( 16-16 ) 0.00006609 + ( 16-17 ) 0.00006111 + ( 16-18 ) 0.00005678 + ( 16-19 ) 0.00009200 + ( 17-17 ) 0.00006786 + ( 17-18 ) 0.00006217 + ( 17-19 ) 0.00009420 + ( 18-18 ) 0.00007251 + ( 18-19 ) 0.00010122 + ( 19-19 ) 0.00019005 +---------------------------------------------------------------------------------------- + diff --git a/doc_old/Doxyfile.in b/doc_old/Doxyfile.in deleted file mode 100644 index 56901f3..0000000 --- a/doc_old/Doxyfile.in +++ /dev/null @@ -1,1519 +0,0 @@ -# Doxyfile 1.6.1 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project -# -# All text after a hash (#) is considered a comment and will be ignored -# The format is: -# TAG = value [value, ...] -# For lists items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (" ") - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all -# text before the first occurrence of this tag. Doxygen uses libiconv (or the -# iconv built into libc) for the transcoding. See -# http://www.gnu.org/software/libiconv for the list of possible encodings. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded -# by quotes) that should identify the project. - -PROJECT_NAME = "NUISANCE" - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. -# This could be handy for archiving the generated documentation or -# if some version control system is used. - -PROJECT_NUMBER = "@NUISANCE_VERSION_STRING@" - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) -# base path where the generated documentation will be put. -# If a relative path is entered, it will be relative to the location -# where doxygen was started. If left blank the current directory will be used. - -OUTPUT_DIRECTORY = - -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create -# 4096 sub-directories (in 2 levels) under the output directory of each output -# format and will distribute the generated files over these directories. -# Enabling this option can be useful when feeding doxygen a huge amount of -# source files, where putting all generated files in the same directory would -# otherwise cause performance problems for the file system. - -CREATE_SUBDIRS = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# The default language is English, other supported languages are: -# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, -# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, -# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English -# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, -# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, -# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. - -OUTPUT_LANGUAGE = English - -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will -# include brief member descriptions after the members that are listed in -# the file and class documentation (similar to JavaDoc). -# Set to NO to disable this. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend -# the brief description of a member or function before the detailed description. -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator -# that is used to form the text in various listings. Each string -# in this list, if found as the leading text of the brief description, will be -# stripped from the text and the result after processing the whole list, is -# used as the annotated text. Otherwise, the brief description is used as-is. -# If left blank, the following values are used ("$name" is automatically -# replaced with the name of the entity): "The $name class" "The $name widget" -# "The $name file" "is" "provides" "specifies" "contains" -# "represents" "a" "an" "the" - -ABBREVIATE_BRIEF = - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# Doxygen will generate a detailed section even if there is only a brief -# description. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full -# path before files name in the file list and in the header files. If set -# to NO the shortest path that makes the file name unique will be used. - -FULL_PATH_NAMES = YES - -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag -# can be used to strip a user-defined part of the path. Stripping is -# only done if one of the specified strings matches the left-hand part of -# the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the -# path to strip. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of -# the path mentioned in the documentation of a class, which tells -# the reader which header file to include in order to use a class. -# If left blank only the name of the header file containing the class -# definition is used. Otherwise one should specify the include paths that -# are normally passed to the compiler using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter -# (but less readable) file names. This can be useful is your file systems -# doesn't support long names like on DOS, Mac, or CD-ROM. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen -# will interpret the first line (until the first dot) of a JavaDoc-style -# comment as the brief description. If set to NO, the JavaDoc -# comments will behave just like regular Qt-style comments -# (thus requiring an explicit @brief command for a brief description.) - -JAVADOC_AUTOBRIEF = NO - -# If the QT_AUTOBRIEF tag is set to YES then Doxygen will -# interpret the first line (until the first dot) of a Qt-style -# comment as the brief description. If set to NO, the comments -# will behave just like regular Qt-style comments (thus requiring -# an explicit \brief command for a brief description.) - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen -# treat a multi-line C++ special comment block (i.e. a block of //! or /// -# comments) as a brief description. This used to be the default behaviour. -# The new default is to treat a multi-line C++ comment block as a detailed -# description. Set this tag to YES if you prefer the old behaviour instead. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented -# member inherits the documentation from any documented member that it -# re-implements. - -INHERIT_DOCS = NO - -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce -# a new page for each member. If set to NO, the documentation of a member will -# be part of the file/class/namespace that contains it. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. -# Doxygen uses this value to replace tabs by spaces in code fragments. - -TAB_SIZE = 4 - -# This tag can be used to specify a number of aliases that acts -# as commands in the documentation. An alias has the form "name=value". -# For example adding "sideeffect=\par Side Effects:\n" will allow you to -# put the command \sideeffect (or @sideeffect) in the documentation, which -# will result in a user-defined paragraph with heading "Side Effects:". -# You can put \n's in the value part of an alias to insert newlines. - -ALIASES = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C -# sources only. Doxygen will then generate output that is more tailored for C. -# For instance, some of the names that are used will be different. The list -# of all members will be omitted, etc. - -OPTIMIZE_OUTPUT_FOR_C = YES - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java -# sources only. Doxygen will then generate output that is more tailored for -# Java. For instance, namespaces will be presented as packages, qualified -# scopes will look different, etc. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources only. Doxygen will then generate output that is more tailored for -# Fortran. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for -# VHDL. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Doxygen selects the parser to use depending on the extension of the files it parses. -# With this tag you can assign which parser to use for a given extension. -# Doxygen has a built-in mapping, but you can override or extend it using this tag. -# The format is ext=language, where ext is a file extension, and language is one of -# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP, -# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat -# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran), -# use: inc=Fortran f=C. Note that for custom extensions you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. - -EXTENSION_MAPPING = - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should -# set this tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. -# func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. - -BUILTIN_STL_SUPPORT = YES - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. -# Doxygen will parse them like normal C++ but will assume all classes use public -# instead of private inheritance when no explicit protection keyword is present. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate getter -# and setter methods for a property. Setting this option to YES (the default) -# will make doxygen to replace the get and set methods by a property in the -# documentation. This will only work if the methods are indeed getting or -# setting a simple type. If this is not the case, or you want to show the -# methods anyway, you should set this option to NO. - -IDL_PROPERTY_SUPPORT = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. - -DISTRIBUTE_GROUP_DOC = NO - -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of -# the same type (for instance a group of public functions) to be put as a -# subgroup of that type (e.g. under the Public Functions section). Set it to -# NO to prevent subgrouping. Alternatively, this can be done per class using -# the \nosubgrouping command. - -SUBGROUPING = YES - -# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum -# is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically -# be useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. - -TYPEDEF_HIDES_STRUCT = NO - -# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to -# determine which symbols to keep in memory and which to flush to disk. -# When the cache is full, less often used symbols will be written to disk. -# For small to medium size projects (<1000 input files) the default value is -# probably good enough. For larger projects a too small cache size can cause -# doxygen to be busy swapping symbols to and from disk most of the time -# causing a significant performance penality. -# If the system has enough physical memory increasing the cache will improve the -# performance by keeping more symbols in memory. Note that the value works on -# a logarithmic scale so increasing the size by one will rougly double the -# memory usage. The cache size is given by this formula: -# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, -# corresponding to a cache size of 2^16 = 65536 symbols - -SYMBOL_CACHE_SIZE = 0 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. -# Private class members and static file members will be hidden unless -# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES - -EXTRACT_ALL = YES - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class -# will be included in the documentation. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_STATIC tag is set to YES all static members of a file -# will be included in the documentation. - -EXTRACT_STATIC = NO - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) -# defined locally in source files will be included in the documentation. -# If set to NO only classes defined in header files are included. - -EXTRACT_LOCAL_CLASSES = NO - -# This flag is only useful for Objective-C code. When set to YES local -# methods, which are defined in the implementation section but not in -# the interface are included in the documentation. -# If set to NO (the default) only methods in the interface are included. - -EXTRACT_LOCAL_METHODS = YES - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base -# name of the file that contains the anonymous namespace. By default -# anonymous namespace are hidden. - -EXTRACT_ANON_NSPACES = YES - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all -# undocumented members of documented classes, files or namespaces. -# If set to NO (the default) these members will be included in the -# various overviews, but no documentation section is generated. -# This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. -# If set to NO (the default) these classes will be included in the various -# overviews. This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all -# friend (class|struct|union) declarations. -# If set to NO (the default) these declarations will be included in the -# documentation. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any -# documentation blocks found inside the body of a function. -# If set to NO (the default) these blocks will be appended to the -# function's detailed documentation block. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation -# that is typed after a \internal command is included. If the tag is set -# to NO (the default) then the documentation will be excluded. -# Set it to YES to include the internal documentation. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate -# file names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. - -CASE_SENSE_NAMES = YES - -# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen -# will show members with their full class and namespace scopes in the -# documentation. If set to YES the scope will be hidden. - -HIDE_SCOPE_NAMES = NO - -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen -# will put a list of the files that are included by a file in the documentation -# of that file. - -SHOW_INCLUDE_FILES = NO - -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] -# is inserted in the documentation for inline members. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen -# will sort the (detailed) documentation of file and class members -# alphabetically by member name. If set to NO the members will appear in -# declaration order. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the -# brief documentation of file, namespace and class members alphabetically -# by member name. If set to NO (the default) the members will appear in -# declaration order. - -SORT_BRIEF_DOCS = NO - -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the (brief and detailed) documentation of class members so that constructors and destructors are listed first. If set to NO (the default) the constructors will appear in the respective orders defined by SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. - -SORT_MEMBERS_CTORS_1ST = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the -# hierarchy of group names into alphabetical order. If set to NO (the default) -# the group names will appear in their defined order. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be -# sorted by fully-qualified names, including namespaces. If set to -# NO (the default), the class list will be sorted only by class name, -# not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the -# alphabetical list. - -SORT_BY_SCOPE_NAME = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or -# disable (NO) the todo list. This list is created by putting \todo -# commands in the documentation. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or -# disable (NO) the test list. This list is created by putting \test -# commands in the documentation. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or -# disable (NO) the bug list. This list is created by putting \bug -# commands in the documentation. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or -# disable (NO) the deprecated list. This list is created by putting -# \deprecated commands in the documentation. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional -# documentation sections, marked by \if sectionname ... \endif. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines -# the initial value of a variable or define consists of for it to appear in -# the documentation. If the initializer consists of more lines than specified -# here it will be hidden. Use a value of 0 to hide initializers completely. -# The appearance of the initializer of individual variables and defines in the -# documentation can be controlled using \showinitializer or \hideinitializer -# command in the documentation regardless of this setting. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated -# at the bottom of the documentation of classes and structs. If set to YES the -# list will mention the files that were used to generate the documentation. - -SHOW_USED_FILES = YES - -# If the sources in your project are distributed over multiple directories -# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy -# in the documentation. The default is NO. - -SHOW_DIRECTORIES = NO - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. -# This will remove the Files entry from the Quick Index and from the -# Folder Tree View (if specified). The default is YES. - -SHOW_FILES = YES - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the -# Namespaces page. -# This will remove the Namespaces entry from the Quick Index -# and from the Folder Tree View (if specified). The default is YES. - -SHOW_NAMESPACES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command , where is the value of -# the FILE_VERSION_FILTER tag, and is the name of an input file -# provided by doxygen. Whatever the program writes to standard output -# is used as the file version. See the manual for examples. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by -# doxygen. The layout file controls the global structure of the generated output files -# in an output format independent way. The create the layout file that represents -# doxygen's defaults, run doxygen with the -l option. You can optionally specify a -# file name after the option, if omitted DoxygenLayout.xml will be used as the name -# of the layout file. - -LAYOUT_FILE = - -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated -# by doxygen. Possible values are YES and NO. If left blank NO is used. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated by doxygen. Possible values are YES and NO. If left blank -# NO is used. - -WARNINGS = YES - -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will -# automatically be disabled. - -WARN_IF_UNDOCUMENTED = YES - -# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some -# parameters in a documented function, or documenting parameters that -# don't exist or using markup commands wrongly. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be abled to get warnings for -# functions that are documented, but have no documentation for their parameters -# or return value. If set to NO (the default) doxygen will only warn about -# wrong or incomplete parameter documentation, but not about the absence of -# documentation. - -WARN_NO_PARAMDOC = NO - -# The WARN_FORMAT tag determines the format of the warning messages that -# doxygen can produce. The string should contain the $file, $line, and $text -# tags, which will be replaced by the file and line number from which the -# warning originated and the warning text. Optionally the format may contain -# $version, which will be replaced by the version of the file (if it could -# be obtained via FILE_VERSION_FILTER) - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning -# and error messages should be written. If left blank the output is written -# to stderr. - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag can be used to specify the files and/or directories that contain -# documented source files. You may enter file names like "myfile.cpp" or -# directories like "/usr/src/myproject". Separate the files or directories -# with spaces. - -INPUT = @CMAKE_SOURCE_DIR@/src/ @CMAKE_SOURCE_DIR@/doc/ - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is -# also the default input encoding. Doxygen uses libiconv (or the iconv built -# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for -# the list of possible encodings. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank the following patterns are tested: -# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx -# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 - -FILE_PATTERNS = *.dox *.cxx *.h *.md - -# The RECURSIVE tag can be used to turn specify whether or not subdirectories -# should be searched for input files as well. Possible values are YES and NO. -# If left blank NO is used. - -RECURSIVE = YES - -# The EXCLUDE tag can be used to specify files and/or directories that should -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. - -EXCLUDE = src/ANL src/ArgoNeuT src/BEBC src/BNL src/Devel src/Electron src/FNAL src/GGM src/K2K src/MCStudies src/MINERvA src/MiniBooNE src/SciBooNE src/T2K - -# The EXCLUDE_SYMLINKS tag can be used select whether or not files or -# directories that are symbolic links (a Unix filesystem feature) are excluded -# from the input. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. Note that the wildcards are matched -# against the file with absolute path, so to exclude all test directories -# for example use the pattern */test/* - -EXCLUDE_PATTERNS = *ROOT_DICT* - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or -# directories that contain example code fragments that are included (see -# the \include command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank all files are included. - -EXAMPLE_PATTERNS = - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude -# commands irrespective of the value of the RECURSIVE tag. -# Possible values are YES and NO. If left blank NO is used. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or -# directories that contain image that are included in the documentation (see -# the \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command , where -# is the value of the INPUT_FILTER tag, and is the name of an -# input file. Doxygen will then use the output that the filter program writes -# to standard output. -# If FILTER_PATTERNS is specified, this tag will be -# ignored. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. -# Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. -# The filters are a list of the form: -# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further -# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER -# is applied to all files. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will be used to filter the input files when producing source -# files to browse (i.e. when SOURCE_BROWSER is set to YES). - -FILTER_SOURCE_FILES = NO - -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will -# be generated. Documented entities will be cross-referenced with these sources. -# Note: To get rid of all source code in the generated output, make sure also -# VERBATIM_HEADERS is set to NO. - -SOURCE_BROWSER = NO - -# Setting the INLINE_SOURCES tag to YES will include the body -# of functions and classes directly in the documentation. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct -# doxygen to hide any special comment blocks from generated source code -# fragments. Normal C and C++ comments will always remain visible. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES -# then for each documented function all documented -# functions referencing it will be listed. - -REFERENCED_BY_RELATION = NO - -# If the REFERENCES_RELATION tag is set to YES -# then for each documented function all documented entities -# called/used by that function will be listed. - -REFERENCES_RELATION = NO - -# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) -# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from -# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will -# link to the source code. -# Otherwise they will link to the documentation. - -REFERENCES_LINK_SOURCE = YES - -# If the USE_HTAGS tag is set to YES then the references to source code -# will point to the HTML generated by the htags(1) tool instead of doxygen -# built-in source browser. The htags tool is part of GNU's global source -# tagging system (see http://www.gnu.org/software/global/global.html). You -# will need version 4.8.6 or higher. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen -# will generate a verbatim copy of the header file for each class for -# which an include is specified. Set to NO to disable this. - -VERBATIM_HEADERS = YES - -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index -# of all compounds will be generated. Enable this if the project -# contains a lot of classes, structs, unions or interfaces. - -ALPHABETICAL_INDEX = NO - -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns -# in which this list will be split (can be a number in the range [1..20]) - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all -# classes will be put under the same header in the alphabetical index. -# The IGNORE_PREFIX tag can be used to specify one or more prefixes that -# should be ignored while generating the index headers. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will -# generate HTML output. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `html' will be used as the default path. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for -# each generated HTML page (for example: .htm,.php,.asp). If it is left blank -# doxygen will generate files with .html extension. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a personal HTML header for -# each generated HTML page. If it is left blank doxygen will generate a -# standard header. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a personal HTML footer for -# each generated HTML page. If it is left blank doxygen will generate a -# standard footer. - -HTML_FOOTER = - -# If the HTML_TIMESTAMP tag is set to YES then the generated HTML -# documentation will contain the timesstamp. - -HTML_TIMESTAMP = NO - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading -# style sheet that is used by each HTML page. It can be used to -# fine-tune the look of the HTML output. If the tag is left blank doxygen -# will generate a default style sheet. Note that doxygen will try to copy -# the style sheet file to the HTML output directory, so don't put your own -# stylesheet in the HTML output directory as well, or it will be erased! - -HTML_STYLESHEET = - -# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, -# files or namespaces will be aligned in HTML using tables. If set to -# NO a bullet list will be used. - -HTML_ALIGN_MEMBERS = YES - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. For this to work a browser that supports -# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox -# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). - -HTML_DYNAMIC_SECTIONS = NO - -# If the GENERATE_DOCSET tag is set to YES, additional index files -# will be generated that can be used as input for Apple's Xcode 3 -# integrated development environment, introduced with OSX 10.5 (Leopard). -# To create a documentation set, doxygen will generate a Makefile in the -# HTML output directory. Running make will produce the docset in that -# directory and running "make install" will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find -# it at startup. -# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information. - -GENERATE_DOCSET = NO - -# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the -# feed. A documentation feed provides an umbrella under which multiple -# documentation sets from a single provider (such as a company or product suite) -# can be grouped. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that -# should uniquely identify the documentation set bundle. This should be a -# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen -# will append .docset to the name. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# If the GENERATE_HTMLHELP tag is set to YES, additional index files -# will be generated that can be used as input for tools like the -# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) -# of the generated HTML documentation. - -GENERATE_HTMLHELP = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can -# be used to specify the file name of the resulting .chm file. You -# can add a path in front of the file if the result should not be -# written to the html output directory. - -CHM_FILE = - -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can -# be used to specify the location (absolute path including file name) of -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run -# the HTML help compiler on the generated index.hhp. - -HHC_LOCATION = - -# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag -# controls if a separate .chi index file is generated (YES) or that -# it should be included in the master .chm file (NO). - -GENERATE_CHI = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING -# is used to encode HtmlHelp index (hhk), content (hhc) and project file -# content. - -CHM_INDEX_ENCODING = - -# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag -# controls whether a binary table of contents is generated (YES) or a -# normal table of contents (NO) in the .chm file. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members -# to the contents of the HTML help documentation and to the tree view. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER -# are set, an additional index file will be generated that can be used as input for -# Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated -# HTML documentation. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can -# be used to specify the file name of the resulting .qch file. -# The path specified is relative to the HTML output folder. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating -# Qt Help Project output. For more information please see -# http://doc.trolltech.com/qthelpproject.html#namespace - -QHP_NAMESPACE = - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating -# Qt Help Project output. For more information please see -# http://doc.trolltech.com/qthelpproject.html#virtual-folders - -QHP_VIRTUAL_FOLDER = doc - -# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add. -# For more information please see -# http://doc.trolltech.com/qthelpproject.html#custom-filters - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see -# Qt Help Project / Custom Filters. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's -# filter section matches. -# Qt Help Project / Filter Attributes. - -QHP_SECT_FILTER_ATTRS = - -# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can -# be used to specify the location of Qt's qhelpgenerator. -# If non-empty doxygen will try to run qhelpgenerator on the generated -# .qhp file. - -QHG_LOCATION = - -# The DISABLE_INDEX tag can be used to turn on/off the condensed index at -# top of each HTML page. The value NO (the default) enables the index and -# the value YES disables it. - -DISABLE_INDEX = NO - -# This tag can be used to set the number of enum values (range [1..20]) -# that doxygen will group on one line in the generated HTML documentation. - -ENUM_VALUES_PER_LINE = 4 - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. -# If the tag value is set to YES, a side panel will be generated -# containing a tree-like index structure (just like the one that -# is generated for HTML Help). For this to work a browser that supports -# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). -# Windows users are probably better off using the HTML help feature. - -GENERATE_TREEVIEW = NO - -# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, -# and Class Hierarchy pages using a tree view instead of an ordered list. - -USE_INLINE_TREES = NO - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be -# used to set the initial width (in pixels) of the frame in which the tree -# is shown. - -TREEVIEW_WIDTH = 250 - -# Use this tag to change the font size of Latex formulas included -# as images in the HTML documentation. The default is 10. Note that -# when you change the font size after a successful doxygen run you need -# to manually remove any form_*.png images from the HTML output directory -# to force them to be regenerated. - -FORMULA_FONTSIZE = 10 - -# When the SEARCHENGINE tag is enable doxygen will generate a search box for the HTML output. The underlying search engine uses javascript -# and DHTML and should work on any modern browser. Note that when using HTML help (GENERATE_HTMLHELP) or Qt help (GENERATE_QHP) -# there is already a search function so this one should typically -# be disabled. - -SEARCHENGINE = YES - -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- - -# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will -# generate Latex output. - -GENERATE_LATEX = YES - -# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `latex' will be used as the default path. - -LATEX_OUTPUT = latex - -# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be -# invoked. If left blank `latex' will be used as the default command name. - -LATEX_CMD_NAME = latex - -# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to -# generate index for LaTeX. If left blank `makeindex' will be used as the -# default command name. - -MAKEINDEX_CMD_NAME = makeindex - -# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact -# LaTeX documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_LATEX = YES - -# The PAPER_TYPE tag can be used to set the paper type that is used -# by the printer. Possible values are: a4, a4wide, letter, legal and -# executive. If left blank a4wide will be used. - -PAPER_TYPE = a4wide - -# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX -# packages that should be included in the LaTeX output. - -EXTRA_PACKAGES = - -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for -# the generated latex document. The header should contain everything until -# the first chapter. If it is left blank doxygen will generate a -# standard header. Notice: only use this tag if you know what you are doing! - -LATEX_HEADER = - -# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated -# is prepared for conversion to pdf (using ps2pdf). The pdf file will -# contain links (just like the HTML output) instead of page references -# This makes the output suitable for online browsing using a pdf viewer. - -PDF_HYPERLINKS = YES - -# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of -# plain latex in the generated Makefile. Set this option to YES to get a -# higher quality PDF documentation. - -USE_PDFLATEX = YES - -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. -# command to the generated LaTeX files. This will instruct LaTeX to keep -# running if errors occur, instead of asking the user for help. -# This option is also used when generating formulas in HTML. - -LATEX_BATCHMODE = NO - -# If LATEX_HIDE_INDICES is set to YES then doxygen will not -# include the index chapters (such as File Index, Compound Index, etc.) -# in the output. - -LATEX_HIDE_INDICES = NO - -# If LATEX_SOURCE_CODE is set to YES then doxygen will include source code with syntax highlighting in the LaTeX output. Note that which sources are shown also depends on other settings such as SOURCE_BROWSER. - -LATEX_SOURCE_CODE = NO - -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- - -# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output -# The RTF output is optimized for Word 97 and may not look very pretty with -# other RTF readers or editors. - -GENERATE_RTF = NO - -# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `rtf' will be used as the default path. - -RTF_OUTPUT = rtf - -# If the COMPACT_RTF tag is set to YES Doxygen generates more compact -# RTF documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_RTF = NO - -# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated -# will contain hyperlink fields. The RTF file will -# contain links (just like the HTML output) instead of page references. -# This makes the output suitable for online browsing using WORD or other -# programs which support those fields. -# Note: wordpad (write) and others do not support links. - -RTF_HYPERLINKS = NO - -# Load stylesheet definitions from file. Syntax is similar to doxygen's -# config file, i.e. a series of assignments. You only have to provide -# replacements, missing definitions are set to their default value. - -RTF_STYLESHEET_FILE = - -# Set optional variables used in the generation of an rtf document. -# Syntax is similar to doxygen's config file. - -RTF_EXTENSIONS_FILE = - -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- - -# If the GENERATE_MAN tag is set to YES (the default) Doxygen will -# generate man pages - -GENERATE_MAN = NO - -# The MAN_OUTPUT tag is used to specify where the man pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `man' will be used as the default path. - -MAN_OUTPUT = man - -# The MAN_EXTENSION tag determines the extension that is added to -# the generated man pages (default is the subroutine's section .3) - -MAN_EXTENSION = .3 - -# If the MAN_LINKS tag is set to YES and Doxygen generates man output, -# then it will generate one additional man file for each entity -# documented in the real man page(s). These additional files -# only source the real man page, but without them the man command -# would be unable to find the correct page. The default is NO. - -MAN_LINKS = NO - -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- - -# If the GENERATE_XML tag is set to YES Doxygen will -# generate an XML file that captures the structure of -# the code including all documentation. - -GENERATE_XML = NO - -# The XML_OUTPUT tag is used to specify where the XML pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `xml' will be used as the default path. - -XML_OUTPUT = xml - -# The XML_SCHEMA tag can be used to specify an XML schema, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_SCHEMA = - -# The XML_DTD tag can be used to specify an XML DTD, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_DTD = - -# If the XML_PROGRAMLISTING tag is set to YES Doxygen will -# dump the program listings (including syntax highlighting -# and cross-referencing information) to the XML output. Note that -# enabling this will significantly increase the size of the XML output. - -XML_PROGRAMLISTING = YES - -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- - -# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will -# generate an AutoGen Definitions (see autogen.sf.net) file -# that captures the structure of the code including all -# documentation. Note that this feature is still experimental -# and incomplete at the moment. - -GENERATE_AUTOGEN_DEF = NO - -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- - -# If the GENERATE_PERLMOD tag is set to YES Doxygen will -# generate a Perl module file that captures the structure of -# the code including all documentation. Note that this -# feature is still experimental and incomplete at the -# moment. - -GENERATE_PERLMOD = NO - -# If the PERLMOD_LATEX tag is set to YES Doxygen will generate -# the necessary Makefile rules, Perl scripts and LaTeX code to be able -# to generate PDF and DVI output from the Perl module output. - -PERLMOD_LATEX = NO - -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be -# nicely formatted so it can be parsed by a human reader. -# This is useful -# if you want to understand what is going on. -# On the other hand, if this -# tag is set to NO the size of the Perl module output will be much smaller -# and Perl will parse it just the same. - -PERLMOD_PRETTY = YES - -# The names of the make variables in the generated doxyrules.make file -# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. -# This is useful so different doxyrules.make files included by the same -# Makefile don't overwrite each other's variables. - -PERLMOD_MAKEVAR_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- - -# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will -# evaluate all C-preprocessor directives found in the sources and include -# files. - -ENABLE_PREPROCESSING = YES - -# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro -# names in the source code. If set to NO (the default) only conditional -# compilation will be performed. Macro expansion can be done in a controlled -# way by setting EXPAND_ONLY_PREDEF to YES. - -MACRO_EXPANSION = NO - -# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES -# then the macro expansion is limited to the macros specified with the -# PREDEFINED and EXPAND_AS_DEFINED tags. - -EXPAND_ONLY_PREDEF = NO - -# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files -# in the INCLUDE_PATH (see below) will be search if a #include is found. - -SEARCH_INCLUDES = YES - -# The INCLUDE_PATH tag can be used to specify one or more directories that -# contain include files that are not input files but should be processed by -# the preprocessor. - -INCLUDE_PATH = ./ - -# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard -# patterns (like *.h and *.hpp) to filter out the header-files in the -# directories. If left blank, the patterns specified with FILE_PATTERNS will -# be used. - -INCLUDE_FILE_PATTERNS = - -# The PREDEFINED tag can be used to specify one or more macro names that -# are defined before the preprocessor is started (similar to the -D option of -# gcc). The argument of the tag is a list of macros of the form: name -# or name=definition (no spaces). If the definition and the = are -# omitted =1 is assumed. To prevent a macro definition from being -# undefined via #undef or recursively expanded use the := operator -# instead of the = operator. - -PREDEFINED = - -# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then -# this tag can be used to specify a list of macro names that should be expanded. -# The macro definition that is found in the sources will be used. -# Use the PREDEFINED tag if you want to use a different macro definition. - -EXPAND_AS_DEFINED = - -# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then -# doxygen's preprocessor will remove all function-like macros that are alone -# on a line, have an all uppercase name, and do not end with a semicolon. Such -# function macros are typically used for boiler-plate code, and will confuse -# the parser if not removed. - -SKIP_FUNCTION_MACROS = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- - -# The TAGFILES option can be used to specify one or more tagfiles. -# Optionally an initial location of the external documentation -# can be added for each tagfile. The format of a tag file without -# this location is as follows: -# -# TAGFILES = file1 file2 ... -# Adding location for the tag files is done as follows: -# -# TAGFILES = file1=loc1 "file2 = loc2" ... -# where "loc1" and "loc2" can be relative or absolute paths or -# URLs. If a location is present for each tag, the installdox tool -# does not have to be run to correct the links. -# Note that each tag file must have a unique name -# (where the name does NOT include the path) -# If a tag file is not located in the directory in which doxygen -# is run, you must also specify the path to the tagfile here. - -TAGFILES = - -# When a file name is specified after GENERATE_TAGFILE, doxygen will create -# a tag file that is based on the input files it reads. - -GENERATE_TAGFILE = - -# If the ALLEXTERNALS tag is set to YES all external classes will be listed -# in the class index. If set to NO only the inherited external classes -# will be listed. - -ALLEXTERNALS = NO - -# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed -# in the modules index. If set to NO, only the current project's groups will -# be listed. - -EXTERNAL_GROUPS = YES - -# The PERL_PATH should be the absolute path and name of the perl script -# interpreter (i.e. the result of `which perl'). - -PERL_PATH = /usr/bin/perl - -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- - -# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will -# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base -# or super classes. Setting the tag to NO turns the diagrams off. Note that -# this option is superseded by the HAVE_DOT option below. This is only a -# fallback. It is recommended to install and use dot, since it yields more -# powerful graphs. - -CLASS_DIAGRAMS = YES - -# You can define message sequence charts within doxygen comments using the \msc -# command. Doxygen will then run the mscgen tool (see -# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the -# documentation. The MSCGEN_PATH tag allows you to specify the directory where -# the mscgen tool resides. If left empty the tool is assumed to be found in the -# default search path. - -MSCGEN_PATH = - -# If set to YES, the inheritance and collaboration graphs will hide -# inheritance and usage relations if the target is undocumented -# or is not a class. - -HIDE_UNDOC_RELATIONS = YES - -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is -# available from the path. This tool is part of Graphviz, a graph visualization -# toolkit from AT&T and Lucent Bell Labs. The other options in this section -# have no effect if this option is set to NO (the default) - -HAVE_DOT = NO - -# By default doxygen will write a font called FreeSans.ttf to the output -# directory and reference it in all dot files that doxygen generates. This -# font does not include all possible unicode characters however, so when you need -# these (or just want a differently looking font) you can specify the font name -# using DOT_FONTNAME. You need need to make sure dot is able to find the font, -# which can be done by putting it in a standard location or by setting the -# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory -# containing the font. - -DOT_FONTNAME = FreeSans - -# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. -# The default size is 10pt. - -DOT_FONTSIZE = 10 - -# By default doxygen will tell dot to use the output directory to look for the -# FreeSans.ttf font (which doxygen will put there itself). If you specify a -# different font using DOT_FONTNAME you can set the path where dot -# can find it using this tag. - -DOT_FONTPATH = - -# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect inheritance relations. Setting this tag to YES will force the -# the CLASS_DIAGRAMS tag to NO. - -CLASS_GRAPH = YES - -# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect implementation dependencies (inheritance, containment, and -# class references variables) of the class with other documented classes. - -COLLABORATION_GRAPH = YES - -# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for groups, showing the direct groups dependencies - -GROUP_GRAPHS = YES - -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and -# collaboration diagrams in a style similar to the OMG's Unified Modeling -# Language. - -UML_LOOK = NO - -# If set to YES, the inheritance and collaboration graphs will show the -# relations between templates and their instances. - -TEMPLATE_RELATIONS = NO - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT -# tags are set to YES then doxygen will generate a graph for each documented -# file showing the direct and indirect include dependencies of the file with -# other documented files. - -INCLUDE_GRAPH = YES - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and -# HAVE_DOT tags are set to YES then doxygen will generate a graph for each -# documented header file showing the documented files that directly or -# indirectly include this file. - -INCLUDED_BY_GRAPH = YES - -# If the CALL_GRAPH and HAVE_DOT options are set to YES then -# doxygen will generate a call dependency graph for every global function -# or class method. Note that enabling this option will significantly increase -# the time of a run. So in most cases it will be better to enable call graphs -# for selected functions only using the \callgraph command. - -CALL_GRAPH = NO - -# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then -# doxygen will generate a caller dependency graph for every global function -# or class method. Note that enabling this option will significantly increase -# the time of a run. So in most cases it will be better to enable caller -# graphs for selected functions only using the \callergraph command. - -CALLER_GRAPH = NO - -# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen -# will graphical hierarchy of all classes instead of a textual one. - -GRAPHICAL_HIERARCHY = YES - -# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES -# then doxygen will show the dependencies a directory has on other directories -# in a graphical way. The dependency relations are determined by the #include -# relations between the files in the directories. - -DIRECTORY_GRAPH = YES - -# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. Possible values are png, jpg, or gif -# If left blank png will be used. - -DOT_IMAGE_FORMAT = png - -# The tag DOT_PATH can be used to specify the path where the dot tool can be -# found. If left blank, it is assumed the dot tool can be found in the path. - -DOT_PATH = - -# The DOTFILE_DIRS tag can be used to specify one or more directories that -# contain dot files that are included in the documentation (see the -# \dotfile command). - -DOTFILE_DIRS = - -# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of -# nodes that will be shown in the graph. If the number of nodes in a graph -# becomes larger than this value, doxygen will truncate the graph, which is -# visualized by representing a node as a red box. Note that doxygen if the -# number of direct children of the root node in a graph is already larger than -# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note -# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. - -DOT_GRAPH_MAX_NODES = 50 - -# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the -# graphs generated by dot. A depth value of 3 means that only nodes reachable -# from the root by following a path via at most 3 edges will be shown. Nodes -# that lay further from the root node will be omitted. Note that setting this -# option to 1 or 2 may greatly reduce the computation time needed for large -# code bases. Also note that the size of a graph can be further restricted by -# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. - -MAX_DOT_GRAPH_DEPTH = 0 - -# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent -# background. This is disabled by default, because dot on Windows does not -# seem to support this out of the box. Warning: Depending on the platform used, -# enabling this option may lead to badly anti-aliased labels on the edges of -# a graph (i.e. they become hard to read). - -DOT_TRANSPARENT = NO - -# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output -# files in one run (i.e. multiple -o and -T options on the command line). This -# makes dot run faster, but since only newer versions of dot (>1.8.10) -# support this, this feature is disabled by default. - -DOT_MULTI_TARGETS = NO - -# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will -# generate a legend page explaining the meaning of the various boxes and -# arrows in the dot generated graphs. - -GENERATE_LEGEND = YES - -# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will -# remove the intermediate dot files that are used to generate -# the various graphs. - -DOT_CLEANUP = YES diff --git a/doc_old/addingsamples.dox b/doc_old/addingsamples.dox deleted file mode 100644 index d6d7ffd..0000000 --- a/doc_old/addingsamples.dox +++ /dev/null @@ -1,101 +0,0 @@ -/*! - \page addingsamples Adding New Data Samples - -\section addingsamples_newclass Defining a new class - -\section addingsamples_required Required Definitions - -\subsection addingsamples_initial Initial Setup (Constructor) - -\subsection addingsamples_fillevent Filling Event Variables - -\subsection addingsamples_signal Signal Definition - - -\section addingsamples_optional Optional Extras - -There are a handful of default plots which are automatically saved by the base classes, but sometimes it is necessary to save extra plots or perform calculations differently for some measurements. Doing so can get a bit awkward because handful of additional function overrides need to be written. The template classes contain each of the functions that would need to be overriden if you want to save an extra plot which is updated at each stage in the fit. - - -\subsection addingsamples_customplot Adding a custom plot -An example of changes to a measurement to include an additional plot "mcHist_custom" are shown below. - - -Header File -\code -class TemplateMeasurement { - - public: - void IsSignal(); - void FillEventVariables() - void Write(); - void ScaleEvents(); - void ApplyNormScale(); - void FillHistograms(); - - private: - double custom_VAR; - TH1D* mcHist_custom; -} -#endif -\endcode - -Source File -\code -TemplateMeasurement::TemplateMeasurement(std::string name, std::string type){ - - /* - Required Constructor part of the measurement goes here. - */ - - // Define new MCHIST - mcHist_custom = new TH1D((this->measurementName+"_MC_CUSTOM").c_str(), (this->measurementName+"_MC_CUSTOM").c_str(), 20, 0.0, 100.0); -}; - -isSignal(){ - return true; -} - -FillEventVariables(){ - X_VAR = Enu; - - // Fill our custom variable however we want - custom_VAR = Enu*100.0; -} - -FillHistograms(){ - Measurement1D::ScaleEvents(); - - // Fill the weight and custom_VAR for this histogram - if (Signal){ - mcHist_custom->Fill(custom_VAR, Weight); - } -} - -ScaleEvents(){ - Measurement1D::ScaleEvents(); - - // Scale Factor is used to scale from binned events to a cross-section - // See other classes and Measurement1D/2D for examples of this - mcHist_custom->Scale(this->scaleFactor, "width"); -} - -ApplyNormScale(double norm){ - Measurement1D::ApplyNormScale(norm); - - if (norm > 0.0) mcHist_custom->Scale(1.0 / norm); - else mcHist_custom->Scale(0.0); -} - -Write(std::string drawOpt){ - Measurement1D::Write(drawOpt); - - mcHist_custom->Write(); -} - -\endcode - -- Notice that apart from the already required definitions if you override any of the other functions you need to make sure you call the base classes as these are required during fit iterations to update mcHist. If you don't the fitter will die a sad death. -- The GetChi2 functions can also be overriden if required if custom calculations are required or extra handling is needed before the plots are put into the chi2 calculation. - -*/ \ No newline at end of file diff --git a/doc_old/building.dox b/doc_old/building.dox deleted file mode 100644 index f599945..0000000 --- a/doc_old/building.dox +++ /dev/null @@ -1,122 +0,0 @@ -/*! -\page building Building the fitter -DEPRECATED. WE USE CMAKE NOW! - -The build structure is setup so that the fitter can be built against differeing combinations of the MC Generators and associated RW libraries. - - -\section buildsteps Build Steps - -The following steps below should result in a successful build: - -1. Start in the external fitter top level directory. - \code $ cd ~/t2krep/NIWG/externalDataFitter/ \endcode - -2. Copy the environemnt setup script to current directory. - \code $ cp ./make/example_env.sh ./extfitter_env.sh \endcode -2. Copy the configuratin script to top level directory - \code $ cp ./make/example_config.sh ./extfitter_config.sh \endcode -3. Edit extfitter_config.sh to enable/disable the required custom build variables. If you don't want to build against a generator don't worry about setting up its variables or dependencies just leave them blank. The code below is an example of the NIWG and NEUT dependences. - -\code -# Default builds just against NEUT + NIWG + T2KRW -$NUISANCE/configure \ - --disable-t2kreweight \ - --enable-neut \ - --with-cern=$CERN_ROOT \ - --enable-niwg \ - --disable-genie \ - --disable-nuwro \ - --disable-nuwro-reweight -\endcode - -4. Edit "extfitter_env.sh" to include all dependencies that are required by the build options. If you don't want to build against a generator don't worry about setting up its variables or dependencies just leave them blank. The code below is an example of the NIWG and NEUT dependences. - -\code - -#-------------------- -# Fitter Requirements -#-------------------- - -# ROOT Dependency -export ROOTSYS="/home/stowell/software/root/" - -# dependency on NIWG_DATA will eventually be removed -export NIWG_DATA="/home/stowell/t2krep/NIWG/external_data/" #path to external data - -# ------------------------- -# Generator/RW requirements -# ------------------------- - -#GENIE -export GENIE="" #/path/to/genie/ - -# NUWRO -export NUWRO="" # /path/to/nuwro - -# Neut -export NEUT="/home/stowell/t2krep/NIWG/neut/branches/neut_5.3.4_v1r25/" #/path/to/neut - -# NIWG -export NIWGREWEIGHT="/home/stowell/t2krep/GlobalAnalysisTools/NIWGReWeight/head/" #/path/to/niwgreweight - -# T2K RW Stuff -export T2KREWEIGHT="" # path to t2krew - -#------------------- -# Other Dependencies -#------------------- - -# Cern LIB (Required by NEUT and T2KREW) -export CERN="/home/stowell/software/CERNLIB" -export CERN_LEVEL=2005 -\endcode - -5. Run configure script -\code $ source ./extfitter_config.sh \endcode - -6. If configure is successful and has the correct compile flags -\code - -Your input configuration options were: --disable-t2kreweight --enable-neut --with-cern=/home/stowell/software/CERNLIB/2005 - --enable-niwg --disable-genie --disable-nuwro --disable-nuwro-reweight - -The /home/stowell/t2krep/NIWG/externalDataFitter/head/make/Make.config file has been succesfully generated! -The following config options were set: -NUISANCE_OPTION_ENABLE_T2KREWEIGHT=NO -NUISANCE_OPTION_ENABLE_GENIE=NO -NUISANCE_OPTION_ENABLE_NEUT=YES -NUISANCE_OPTION_ENABLE_NIWG=YES -NUISANCE_OPTION_ENABLE_OAANALYSIS=NO -NUISANCE_OPTION_WITH_OAANALYSIS_LIB= -NUISANCE_OPTION_WITH_PYTHIA6_LIB= -NUISANCE_OPTION_WITH_LHAPDF_INC= -NUISANCE_OPTION_WITH_LHAPDF_LIB= -NUISANCE_OPTION_WITH_LIBXML2_INC= -NUISANCE_OPTION_WITH_LIBXML2_LIB= -NUISANCE_OPTION_WITH_LOG4CPP_INC= -NUISANCE_OPTION_WITH_LOG4CPP_LIB= -NUISANCE_OPTION_WITH_CERN=/home/stowell/software/CERNLIB/2005 -NUISANCE_OPTION_ENABLE_DYLIBVERSION=YES -NUISANCE_OPTION_WITH_CXX_DEBUG_FLAG= -NUISANCE_OPTION_WITH_CXX_OPTIMIZ_FLAG=-O2 -NUISANCE_OPTION_WITH_NUWRO=NO -NUISANCE_OPTION_WITH_NUWRO_REWEIGHT=NO - -*** To continue building T2KReWeight type: gmake -\endcode -Then you are good to finally build -\code -$ make clean && make all -\endcode - - -\section extrabuildnotes Extra build notes - -- The dependcies are especially awkward for GENIE so be carefful where each of them are pointing. -- Building against GENIE currently makes the fitter "Fake" its memory useage when running on scheduling systems. I think this is because the large LHAPDF files are opened at the start and stored in the swapspace even though next to none of that memory is actually accessed by the RW functions. Building without genie if you don't need it resolves this. -- If building against T2KReWeight the configuration options provided for the fitter need to match what you used in T2KRW. e.g. If you build T2KRW with GENIE you must also do it here, otherwise the build will freak out. -- If developing only a single module you can get away with building only in that submodule src folder to save time once the full compilation has been performed. - - -*/ diff --git a/doc_old/mainpage.dox b/doc_old/mainpage.dox deleted file mode 100644 index 0aaded1..0000000 --- a/doc_old/mainpage.dox +++ /dev/null @@ -1,26 +0,0 @@ -/*! \mainpage The NIWG External Cross-section Data Fitter - - The NIWG fitter framework is setup to allow easy comparison of cross-section MC predictions to published datasets made external to T2K. The tools are setup to allow free model parameters to be tuned to given datasets and converge on a reliable set of best fit cross-section results given a range of selected datasets. - -Currently the fitter supports inputs in the following forms (more detail is given in the relevant subsections listed below): - - NEUT - - NuWro - - GENIE - - Fixed Histograms - - Event-by-event reweighting splines - - Bin-by-bin reweighting splines - -Fitting requires a set of input files generated for the samples being fitter and a pre-made parameter card listing dials to be fitted. More information on this can be found in \ref runningfits - -The following related pages contain more detailed documentation: - - \ref building - - \ref tutorial - - \ref statisticalmethods - - \ref samplelist - - \ref inputconvertor - - \ref addingsamples - - \ref fakedatastudies - - \ref configoptions - - \ref validation -*/ - diff --git a/doc_old/samplelist.dox b/doc_old/samplelist.dox deleted file mode 100644 index 91a15d4..0000000 --- a/doc_old/samplelist.dox +++ /dev/null @@ -1,25 +0,0 @@ -/*! -\page samplelist Full list of availble samples. - -ANL_CCQE_XSec_1DEnu_nu ANL/ANL_CCQE_XSec_1DEnu_nu.h ANL CCQE 1DEnu on Free Neutrons -ANL_CCQE_Evt_1DQ2_nu ANL/ANL_CCQE_Evt_1DQ2_nu.h ANL CCQE 1DQ2 on Free Neutrons - - - - - - - - - - - - - - - - - -
Sample Name (for card file)Src LocationBrief
ANL Measurements --------
"ANL_CCQE_Evt_1DQ2_nu" ANL/ANL_CCQE_Evt_1DQ2_nu.h See "ANL_CCQE_Evt_1DQ2_PRL31"
"ANL_CCQE_Evt_1DQ2_PRL31" ANL/ANL_CCQE_Evt_1DQ2_nu.h ANL CCQE 1DEnu on Free Neutrons (PRL.31.3404)
"ANL_CCQE_Evt_1DQ2_PRD16" ANL/ANL_CCQE_Evt_1DQ2_nu.h ANL CCQE 1DEnu on Free Neutrons (PRL.00.0000)
"ANL_CCQE_Evt_1DQ2_PRD84" ANL/ANL_CCQE_Evt_1DQ2_nu.h ANL CCQE 1DEnu on Free Neutrons (PRL.00.0000)
BNL Measurements --------
FNAL Measurements --------
BEBC Measurements --------
K2K Measurements --------
T2K Measurements --------
MINERvA Measurements --------
"MINERvA_CCQE_XSec_1DQ2_nu" MINERvA/MINERvA_CCQE_XSec_1DQ2_nu.h CCQE Corrected Measurement on CH
MiniBooNE Measurements --------
- -*/ \ No newline at end of file diff --git a/doc_old/statisticalmethods.dox b/doc_old/statisticalmethods.dox deleted file mode 100644 index 26d548e..0000000 --- a/doc_old/statisticalmethods.dox +++ /dev/null @@ -1,56 +0,0 @@ -/*! -\page statisticalmethods Statistical Methods - - -Currently by default the fitter uses a Pearsons \chi^{2} minimization method to calculate the best fit model prediction and it's errors. At each stage in the fit the MC sample is updated given some parameter choice and a test statistic calculated. ROOT's Math Minimizer libraries are used to converge on the best choice of parameters that produce the minimum \chi^{2}. It is important to point out that this method can result in local minimums appearing to be the best fit prediction, more detail is given on this in the fit routines section. - -\section statisticalmethods_metrix Test Statistic - -The \chi^{2} definition varies from sample to sample given the fit options provided in the fit card file and the compatible fit types for that sample. - -Below are the calculations and code example from StatUtils that produces the \chi^{2} test statistic. The fitter translates 2D histograms into 1D histograms using provided bin mapping functions. - -- Uncorrelated \chi^{2} Calculation -Uses just the uncorrelated bin errors from the bin errors. - -\code -Double_t StatUtils::GetChi2FromDiag(TH1D* data, TH1D* mc, TH1I* mask); -\endcode - -- Correlated chi2 Calculation -Uses just the uncorrelated bin errors from the bin errors. -Note: For the MiniBooNE datasets the uncorrelated bin errors give the shape-only error for th -at bin. - -\code -Double_t StatUtils::GetChi2FromCov(TH1D* data, TH1D* mc, TMatrixDSym* invcov, TH1I* mask); -\endcode - - -- Event rate Chi2 Calculation -Uses histograms where bin contents are just event rate entries. Handles binmoial distribution. - -\code -Double_t StatUtils::GetChi2FromEventRate(TH1D* data, TH1D* mc, TH1I* mask); -\endcode - - -- There are a few placeholders in StatUtils that allow different likelihood calculations to be added if required. - - -\section statisticalmethods_err Errors -The errors are determined by variations in the parameters away from the best fit point that increase the test statistic by some error limit. The error limit is defined in FCN's UP command, which is set to 1.0 Default for \chi^{2} fits. We assume gaussian errors in the fit which results in symetric error bands, there is no support at the moment to use MINOS to determine assymetric errors as this increases the time taken to perform the fit. - - -\section statisticalmethods_pull Pull Terms -Results from other fits can be included in the 'chi2 calculation by adding penalty terms and allowing those parameteres to float. This assumes gaussian distributions of those parameters which is sometimes not ideal. For example the FSI parameters are non-gaussian so instead there is an option to include a chi2 response from pion nucleon fits by the FSI task force. - - -\section statisticalmethods_pgof PGoF Calculations -The purpose of PGoF Fits is to evaluate disagreements between datasets within the confines of the mdoel being tested. - - - - - -*/ \ No newline at end of file diff --git a/doc_old/tutorial.dox b/doc_old/tutorial.dox deleted file mode 100644 index 2ca5afd..0000000 --- a/doc_old/tutorial.dox +++ /dev/null @@ -1,26 +0,0 @@ -/*! -\page tutorial Fitter Tutorials - -There are multiple ways to run the fitter depending on what outputs are needed. The following descriptions will guide you through relatively simple fits. Please feel free to email me if there is something undocumented here that you need to use the fitter for and I will try my best to add documentation. - - -\section tutlist Tutorials - - -- \ref tutorial_inputs -- \ref tutorial_dialtuning -- \ref tutorial_fitroutines -- \ref tutorial_binsplines -- \ref tutorial_eventsplines -- \ref tutorial_comparisons -- \ref tutorial_prevresults -- \ref tutorial_configoptions -- \ref tutorial_plottinglimits -- \ref tutorial_pullterms -- \ref tutorial_plottingerrors -- \ref tutorial_pgof -- \ref tutorial_binmasking -- \ref tutorial_fakedatastudies -- \ref tutorial_parrallel - -*/ \ No newline at end of file diff --git a/doc_old/tutorial_dialtuning.dox b/doc_old/tutorial_dialtuning.dox deleted file mode 100644 index 100637c..0000000 --- a/doc_old/tutorial_dialtuning.dox +++ /dev/null @@ -1,108 +0,0 @@ -/*! - \page tutorial_dialtuning Dial Tuning - -The main purpose of the fitter is to allow ReWeight dials to be quickly tuned to datasets. In this tutorial -we go through how to include dials in a simple fit and define their state. - -\section tutorial_dialtuning_parcard Extending the Fit Card -First, copy the fit card from the previous tutorial using the sample definition given there. - -Now we want to add in a NEUT ReWeight dials, so a quick grep of the NEUT systematics file will return what the dial names are. -Below is a shortened output. Some dials (especially ones that are discontinous) cannot be used with the fitter so check what little -notes there are inside the RW functions themselves when including new dials. - -\code -$ grep case $NEUT_REWEIGHT/NSyst.h -case ( kXSecTwkDial_NormNCEL ) : return "NormNCEL"; break; -//case ( kXSecTwkDial_NormNCELenu ) : return "NormNCELenu"; break; -case ( kXSecTwkDial_MaNCEL ) : return "MaNCEL"; break; -case ( kXSecTwkDial_MaNCELshape ) : return "MaNCELshape"; break; -case ( kXSecTwkDial_1overMaNCEL2 ) : return "1overMaNCEL2"; break; -case ( kXSecTwkDial_AxlFFNCEL ) : return "AxlFFNCEL"; break; -case ( kXSecTwkDial_VecFFNCEL ) : return "VecFFNCEL"; break; -//case ( kXSecTwkDial_VecFFNCELshape ) : return "VecFFNCELshape"; break; -//case ( kXSecTwkDial_EtaNCEL ) : return "EtaNCEL"; break; -case ( kXSecTwkDial_NormCCQE ) : return "NormCCQE"; break; -//case ( kXSecTwkDial_NormCCQEenu ) : return "NormCCQEenu"; break; -case ( kXSecTwkDial_MaCCQE ) : return "MaCCQE"; break; -\endcode - -So lets say we want to include two modifications to the MC. Firstly, we want to scale down the CCQE normalisation by a fixed 10%. Then we want to vary the axial mass freely in the fit between 0.8 and 1.4 GeV and try to converge on a best fit for this dial. To figure out what values we need to include in the card file we must determine the 1-sigma uncertainty on these parameters. - -Again a grep will do the trick for the 1-sigma uncertainty: -\code -$ grep NormCCQE $NEUT_REWEIGHT/NSystUncertainty.cc - this->SetUncertainty( kXSecTwkDial_NormCCQE, 0.15, 0.15); - -$ grep NormCCQE $NEUT_REWEIGHT/NSystUncertainty.cc - this->SetUncertainty( kXSecTwkDial_MaCCQE, 0.165289256, 0.165289256); -\endcode - -Unfortunately the default values for these parameters is a bit more akward to find. These are given in each of the RW objects in the NEUT_REWEIGHT folder. For the purpose of this excerices we just explicitly state them here. -\code -Nominal MaCCQE = 1.21 GeV/c^2 -Nominal NormCCQE = 1.0 -\endcode - - -We must then convert the true values we have for the nominal and limits into 1-sigma dial values using the following equation. -\code -true.value = nominal.value * ( 1.0 + sig.err * dial.value) - -dial.value = ( (true.value / nominal.value) - 1.0 ) / sig.err -\endcode - -To finally include these dials the following lines should be added to the fit card with the neut_parameter identifier. - -\code -# ident --------- Parameter --- Nom. ---- Low. ---- Upp. --- Stp. --- State ---- -neut_parameter NormCCQE -0.10 -1.00 1.00 1.0 FIX -neut_parameter MaCCQE 0.00 -2.11 0.98 1.0 FREE -\endcode - -Alternative parameter types can be supplied for each of the different generators. These are: -- neut_parameter -> NEUT -- nuwro_parameter -> NuWro (Make sure you have built with NuWro AND NuWroReWeight) -- genie_parameter -> GENIE -- niwg_parameter -> NIWG -- custom_parameter -> Custom dials that can be added to FitWeight if required. Currently a placeholder. - - -The nominal value should always be within the lower and upper limits otherwise ROOT's minimizer libraries will complain. The step size seems to currently be ignored by most of the libraries but it is used by the PlotLimits and GridScan function so it is best to choose something reasonable just to be safe. - -\section tutorial_dialtuning_absolute Using absolute dial values - -There has recently been a modification to FitBase to allow dials to be shown in the fit card in terms of true values provided a conversion function is given in the card file contained in FitBase. -If you want to use this method, you should also provide the state "ABS" in the card file. So for example the MaCCQE dial line would become. - -\code -# ident --------- Parameter --- Nom. ---- Low. ---- Upp. --- Stp. --- State ---- -neut_parameter MaCCQE 0.0 0.8 1.4 0.4 FREE/ABS -\endcode - -Alternative parameter types can be supplied for each of the different generators. These are: -- neut_parameter -> NEUT -- nuwro_parameter -> NuWro (Make sure you have built with NuWro AND NuWroReWeight) -- genie_parameter -> GENIE -- niwg_parameter -> NIWG -- custom_parameter -> Custom dials that can be added to FitWeight if required. Currently a placeholder. - - -\section tutorial_dialtuning_runfit Running the Fit -Once you have written the fit card it should be as simple as running the minimizer again. - -\code -ExtFit_minimizer.exe -c fittertutorial2.card -o fittertutorial2.root -\endcode - -The finished fit should produce the following output table for each parameter involved. - - - -The specified output root file should also contain MC histograms for the best fit point. - - - -There are cases where strong parameter correlations and bumpy chi2 spaces will mean the fit has problems converging. As a general guide fitting 4 parameters will usually take around 400 reconfigures. If it takes significantly longer than this (3x) then you may be having trouble. Alternative fit routines are available to try and fix problems like this. See \ref tutorial_fitroutines for more information. - -*/ \ No newline at end of file diff --git a/doc_old/tutorial_inputs.dox b/doc_old/tutorial_inputs.dox deleted file mode 100644 index 54433b2..0000000 --- a/doc_old/tutorial_inputs.dox +++ /dev/null @@ -1,149 +0,0 @@ -/*! - \page tutorial_inputs Fitting Input Card - - -To determine what samples need to be loaded and the location of the event files to be read the fitter parses a premade input fit card which contains everything piece of information for the fit. -This tutorial details how to load a simple sample of events from each of the generators and compare them against each other. - -\section fitcards The Fit Card - -For this very simple case so all that is required in the fit card is a single line to read in which sample we want to plot. For a list of samples see \ref samplelist. -We want a set of Monte Carlo events to make the data/MC comparison so first you will need to generate this in Neut and NuWro seperately. No explicit tutorial is given for this, but please see \ref generators for tips on what generator output format the events need to be in. - -Once we have a set of events create a fit card "fittertutorial1.card" in the current directory and include the "MiniBooNE_CCQE_XSec_1DQ2_nu" sample as follows. - -\code -# Identifier - Sample Name ----------------- Type - Events File Name ------------------- Normalisation -sample MiniBooNE_CCQE_XSec_1DQ2_nu FIX /path/to/miniboone_ccqe_events.root 1.0 -\endcode - -- The "sample" argument lets the fitter know we want to include a new sample in this fit. Multiple samples can be included if required assuming they are uncorrelated by creating multiple sample lines in the fit card. - -- The Sample Name is a simple string identifier that lets the fitter know which dataset comparison should be performed, for a list of samples see \ref samplelist. - -- The sample Type is used to specify any other options required to describe how this sample is handled. Common examples are "FIX - fix this samples overall normalisation", "SHAPE - normalise MC to data before doing calculations", "DIAG - use only uncorrelated bin errors", "NORM - Add a normalisation penalty term to the fit". Some samples have extra possible fit types so it is worth checking the doxygen documentation for a sample before using it. - -- The events file name is just simply the directory to the MC events you want to use for this fit. In the case of joint datasets that require multiple input MC files, the path to each can be provided in this field by passing a semi-colon seperated list, e.g. "/path/to/miniboone_ccqe_events1.root;/path/to/miniboone_ccqe_events2.root". - -- The normalisation term is used to float the overall normalisation of this sample. The fitter will complain and scale the samples to 0.0 if you forget to include this! - - -\section fittingrun Running a Fit -Once we have a sample card produced it is possible to run a default Migrad fit by passing this fit card to the minimizer. - -\code -ExtFit_minimizer.exe -c fittertutorial1.card -o fittertutorial1_output.root -\endcode - -Since we have not included any MC ReWeight dials to be minimized yet this should run relatively quickly, requiring only a single reconfigure. -The final output should look as follows: -\code -[LOG Fitter]: Making the minimizerFCN -[LOG Minmzr]: Initializing Samples -[LOG Minmzr]: MINERvA_CCQE_XSec_1DQ2_nu -[LOG Fitter]: Running Routine: Migrad -[LOG Fitter]: Fixed Param: MINERvA_CCQE_XSec_1DQ2_nu_norm -[LOG Fitter]: Setup Minimizer: 1(NDim) 0(NFree) -[LOG Minmzr]: Reconfiguring all samples in series -[LOG Minmzr]: Iteration = 1 -[LOG Minmzr]: Time taken for this reconfigure: 40 -[LOG Fitter]: Current Stat = 47.8123 -[LOG Fitter]: Minimizer State: -[LOG Fitter]: # Parameter = Value +- Error Units (Sigma Variation) -[LOG Fitter]: 0 . MINERvA_CCQE_XSec_1DQ2_nu_norm = 1 Frac. (Fixed) - -[LOG Fitter]: Running Routine: FixAtLim -[LOG Fitter]: Minimizer State: -[LOG Fitter]: # Parameter = Value +- Error Units (Sigma Variation) -[LOG Fitter]: 0 . MINERvA_CCQE_XSec_1DQ2_nu_norm = 1 Frac. (Fixed) - -Error in : matrix not positive definite -Error in : matrix not positive definite -[LOG Fitter]: Saving current FCN predictions -[LOG Minmzr]: Reconfiguring all samples in series -[LOG Minmzr]: Iteration = 1 -[LOG Minmzr]: Time taken for this reconfigure: 39 -[LOG Minmzr]: Writing each of the data classes: -------------------------------------- -Minimizer Complete. -------------------------------------- -\endcode - -- Note: The error messages about TDecompChol correspond to problems where teh minimizer didn't actually produce a good covariance matrix. This can happen if the fit fails, but also if you are fitting with 1 or 0 free parameters. If that is the case don't worry too much about it. - -\section analysing Analysing the Output - -The root file produced then contains the results from the fit. To list the contents run: - -\code -root -l fittertutorial1_output.root -root[1]: _file0->ls(); -TFile** fittertutorial1_output.root - TFile* fittertutorial1_output.root - KEY: TTree fit_result;1 fit_result - KEY: TH1D fit_dials;1 fit_dials - KEY: TH1D start_dials;1 start_dials - KEY: TH1D min_dials;1 min_dials - KEY: TH1D max_dials;1 max_dials - KEY: TH1D fit_status;1 fit_status - KEY: TH2D covariance;1 covariance - KEY: TH2D correlation;1 correlation - KEY: TH2D decomposition;1 decomposition - KEY: TH1D MINERvA_CCQE_XSec_1DQ2_nu_data;1 MINERvA_CCQE_XSec_1DQ2_nu_data - KEY: TH1D MINERvA_CCQE_XSec_1DQ2_nu_MC;1 47.812 - KEY: TH1D MINERvA_CCQE_XSec_1DQ2_nu_MC_FINE;1 MINERvA_CCQE_XSec_1DQ2_nu_MC_FINE - KEY: TH1D MINERvA_CCQE_XSec_1DQ2_nu_FLUX;1 MINERvA_CCQE_XSec_1DQ2_nu - KEY: TH1D MINERvA_CCQE_XSec_1DQ2_nu_EVT;1 MINERvA_CCQE_XSec_1DQ2_nu_EVT - KEY: THStack MINERvA_CCQE_XSec_1DQ2_nu_MC_PDG;1 MINERvA_CCQE_XSec_1DQ2_nu_MC_PDG - KEY: TH1D MINERvA_CCQE_XSec_1DQ2_nu_MC_RATIO;1 47.812 - KEY: TH1D MINERvA_CCQE_XSec_1DQ2_nu_data_RATIO;1 MINERvA_CCQE_XSec_1DQ2_nu_data - KEY: TH1D MINERvA_CCQE_XSec_1DQ2_nu_MC_SHAPE;1 47.812 - KEY: TH1D MINERvA_CCQE_XSec_1DQ2_nu_MC_SHAPE_RATIO;1 47.812 - KEY: TH1D MINERvA_CCQE_XSec_1DQ2_nu_data_SHAPE_RATIO;1 MINERvA_CCQE_XSec_1DQ2_nu_data - KEY: TH1D sample_xsecs_MC;1 sample_xsecs_MC - KEY: TH1D sample_xsecs_data;1 sample_xsecs_data - -root[2]: fit_result->Show(0); -======> EVENT:0 - parameter_names = (vector*)0x1aa80e0 - parameter_values = (vector*)0x1aa93b0 - parameter_errors = (vector*)0x1aa9b40 - parameter_min = (vector*)0x1aa9f30 - parameter_max = (vector*)0x1aaa2f0 - parameter_start = (vector*)0x1aaa6b0 - parameter_fix = (vector*)0x1aaacb0 - parameter_startfix = (vector*)0x1aab690 - CHI2 = 47.8123 - NDOF = 8 - NBINS = 8 - NDIM = 1 - NFREE = 0 -\endcode - -Each of the following plots are added to every output file following a minimization fit. -- fit_results -> A TTree containing each of the dial names, values, limits, etc. The best fit chi2 point and number of fit degrees of freedom is given in this tree. -- fit_dials -> Best fit results and fit errors for each dial in units of 1-sigam variation. Dials with 0.0 bin errors are fixed. -- start_dials -> Nominal values for these fit parameters in units of 1-sigma variation. -- min_dials -> Mnimium limit for each dial in units of 1-sigma variation. (If a dial is fit very close to the limit within fit error... worry) -- max_dials -> Maximum limit for each dial in units of 1-sigma variation. (If a dial is fit very close to the limit within fit error... worry) -- fit_status -> Plot of some variables from the fit, mostly unimportant. -- covariance -> Fit result covariance that the ROOT minimizer gives out. -- correlation -> Correlation matrix form the fit -- decomposition -> Decomposed covariance matrix from the fit, useful for fake data studies and producing error bands for correlated parameters.. - -The following plots are specific to a given fit depending on what samples where included. The structure is generally the same, and the sample identifier used in the fit card will correspond to which sample made these plots. By default the following distributions should be created, but whether they are saved is determined by the configuration option "drawOpts" given in the config file. - -- MiniBooNE_CCQE_XSec_1DQ2_data -> Data distribution for the sample that was loaded in the fit. -- MiniBooNE_CCQE_XSec_1DQ2_MC -> Best fit MC distribution after the fit has been ran. Titles on these plots give the best fit Chi2 for that single sample which is useful when running joint fits. Error bands show the statistical errors only for the MC prediction. -- MiniBooNE_CCQE_XSec_1DQ2_MC_Fine -> Finely binned MC distribution at best fit (Can sometimes disagree with coarse MC histogram because of scaling factors..) -- MiniBooNE_CCQE_XSec_1DQ2_MC_Shape -> MC plot normalised to match the data normalisation -- MiniBooNE_CCQE_XSec_1DQ2_data_Ratio -> Data/MC Ratio Plot -- MiniBooNE_CCQE_XSec_1DQ2_MC_Ratio -> Baseline for Data/MC Ratio (Unity) -- MiniBooNE_CCQE_XSec_1DQ2_data_Shape_Ratio -> Data/MC Ratio where the MC is normalised to match the dataset before the ratio is calculated. - -*/ - - - - - diff --git a/event_gen/nuwro/ArgoNeuT/ArgoNeut_nu.params b/event_gen/nuwro/ArgoNeuT/ArgoNeut_nu.params deleted file mode 100644 index 78a8857..0000000 --- a/event_gen/nuwro/ArgoNeuT/ArgoNeut_nu.params +++ /dev/null @@ -1,132 +0,0 @@ -random_seed = 0 -number_of_events = 250000 -number_of_test_events = 1000000 -save_test_events = 0 -OutputEvtHistogram = 1 -user_events = 0 -user_params = -beam_type = 0 -beam_energy = 0 50E3 8.0E3 4.2E4 6.9E4 6.9E4 2.8E4 8.9E3 4.7E3 3.3E3 2.4E3 1.9E3 1.6E3 1.2E3 1.1E3 8.3E2 6.8E2 5.6E2 4.8E2 3.7E2 3.1E2 2.6E2 0.3E2 0.3E2 0.3E2 0.3E2 0.3E2 12.2 12.2 12.2 12.2 12.2 5.8 5.8 5.8 5.8 5.8 2.8 2.8 2.8 2.8 2.8 1.5 1.5 1.5 1.5 1.5 0.88 0.88 0.88 0.88 0.88 -beam_particle = 14 -beam_direction = 0 0 1 -beam_content = -beam_folder = flux -beam_file = 1 -beam_file_first = 1 -beam_file_limit = 0 -beam_weighted = 0 -beam_offset = 0 0 0 -beam_placement = 0 -beam_test_only = 0 -target_type = 0 -nucleus_p = 18 -nucleus_n = 22 -nucleus_E_b = 34 -nucleus_kf = 220 -target_content = -geo_file = target/ND280_v9r7p5.root -geo_name = ND280Geometry_v9r7p5 -geo_volume = -geo_o = 0 0 0 -geo_d = 2000 2000 5000 -nucleus_target = 2 -nucleus_model = 1 -nucleus_LFGkfScale = 1 -dyn_qel_cc = 1 -dyn_qel_nc = 1 -dyn_res_cc = 1 -dyn_res_nc = 1 -dyn_dis_cc = 1 -dyn_dis_nc = 1 -dyn_coh_cc = 1 -dyn_coh_nc = 1 -dyn_mec_cc = 0 -dyn_mec_nc = 0 -qel_kinematics = 0 -qel_vector_ff_set = 2 -bba07_AEp1 = 1 -bba07_AEp2 = 0.9927 -bba07_AEp3 = 0.9898 -bba07_AEp4 = 0.9975 -bba07_AEp5 = 0.9812 -bba07_AEp6 = 0.934 -bba07_AEp7 = 1 -bba07_AMp1 = 1 -bba07_AMp2 = 1.0011 -bba07_AMp3 = 0.9992 -bba07_AMp4 = 0.9974 -bba07_AMp5 = 1.001 -bba07_AMp6 = 1.0003 -bba07_AMp7 = 1 -bba07_AEn1 = 1 -bba07_AEn2 = 1.011 -bba07_AEn3 = 1.1392 -bba07_AEn4 = 1.0203 -bba07_AEn5 = 1.1093 -bba07_AEn6 = 1.5429 -bba07_AEn7 = 0.9706 -bba07_AMn1 = 1 -bba07_AMn2 = 0.9958 -bba07_AMn3 = 0.9877 -bba07_AMn4 = 1.0193 -bba07_AMn5 = 1.035 -bba07_AMn6 = 0.9164 -bba07_AMn7 = 0.73 -bba07_AAx1 = 1 -bba07_AAx2 = 0.9958 -bba07_AAx3 = 0.9877 -bba07_AAx4 = 1.0193 -bba07_AAx5 = 1.035 -bba07_AAx6 = 0.9164 -bba07_AAx7 = 0.73 -qel_axial_ff_set = 1 -qel_rpa = 0 -qel_strange = 1 -qel_strangeEM = 0 -delta_s = -0.15 -qel_cc_vector_mass = 1000 -qel_cc_axial_mass = 1200 -qel_nc_axial_mass = 1350 -qel_s_axial_mass = 1200 -qel_axial_2comp_gamma = 0.15 -qel_axial_2comp_alpha = 2 -qel_axial_3comp_theta = 0.15 -qel_axial_3comp_beta = 2 -flux_correction = 0 -sf_method = 0 -sf_pb = 0 -cc_smoothing = 0 -delta_FF_set = 1 -pion_axial_mass = 0.94 -pion_C5A = 1.19 -SPPBkgScale = 0 -delta_angular = 0 -spp_precision = 500 -res_dis_cut = 1600 -bkgrscaling = 0 -coh_mass_correction = 1 -coh_new = 1 -coh_kind = 2 -mec_kind = 1 -mec_ratio_pp = 0.9 -mec_ratio_ppp = 0.8 -mec_central_motion = 100 -mec_back_to_back_smearing = 0.15 -mec_pb_trials = 25 -MEC_pauli_blocking = 1 -MEC_cm_direction = 0 -kaskada_on = 1 -kaskada_w = 7 -kaskada_redo = 0 -kaskada_writeall = 0 -kaskada_newangle = 0 -formation_zone = fz -tau = 8 -formation_length = 1 -first_step = 1 -step = 0.2 -xsec = 1 -pauli_blocking = 1 -mixed_order = 1 -rmin = 1 -rmax = 1 diff --git a/event_gen/nuwro/ND280/ND280_CH_FHC.params b/event_gen/nuwro/ND280/ND280_CH_FHC.params deleted file mode 100644 index 22b3124..0000000 --- a/event_gen/nuwro/ND280/ND280_CH_FHC.params +++ /dev/null @@ -1,136 +0,0 @@ -random_seed = 0 -number_of_events = 50000 -number_of_test_events = 1000000 -save_test_events = 0 -OutputEvtHistogram = 1 -user_events = 0 -user_params = -beam_type = 1 -beam_energy =1000 -beam_particle = 14 -beam_direction = 0 0 1 -beam_content = 14 92.8% 50 9450 38571.4 82467.5 134286 208016 291786 389464 496786 601825 747946 945238 1.09036e+06 1.13119e+06 1.07349e+06 915000 676786 455000 293571 194048 141464 110714 91904.8 78285.7 68015.9 60918.4 53954.1 48452.4 43035.7 39365.1 35754 33992.3 32251.3 30510.2 28769.1 27028.1 25287 24085.1 22989.6 21894.1 20798.6 19703 18607.5 17512 16416.5 15321 14266.5 13917.1 13567.6 13218.1 12868.7 12519.2 12169.7 11820.3 11470.8 11121.4 10771.9 10507.9 10260.8 10013.6 9766.52 9519.39 9272.26 9025.14 8778.01 8530.88 8308.78 8206.78 8104.78 8002.77 7900.77 7798.77 7696.77 7594.77 7492.77 7390.76 7288.76 7196.35 7105.94 7015.53 6925.12 6834.71 6744.3 6653.89 6563.47 6473.06 6382.65 6245.64 6098.92 5952.2 5805.48 5658.75 5512.03 5365.31 5218.59 5071.87 4925.15 4787.18 4651.05 4514.91 4378.77 4242.63 4106.49 3970.35 3834.22 3698.08 3561.94 3425.8 3289.66 3153.53 3017.39 2881.25 2767.77 2704.64 2641.51 2578.38 2515.25 2452.12 2389 2325.87 2262.74 2199.61 2136.48 2073.35 2010.22 1947.09 1883.97 1820.84 1757.71 1694.58 1631.45 1568.32 1524.02 1489.62 1455.22 1420.82 1386.42 1352.02 1317.63 1283.23 1248.83 1214.43 1180.03 1145.63 1111.24 1076.84 1042.44 1008.04 973.643 939.245 904.847 870.448 847.568 830.749 813.93 797.111 780.292 763.473 746.654 729.835 713.016 696.197 679.377 662.558 645.739 628.92 612.101 595.282 578.463 561.644 544.825 528.006 514.286 502.196 490.106 478.017 465.927 453.837 441.748 429.658 417.568 405.478 393.389 381.299 369.209 357.12 345.03 332.94 320.85 308.761 296.671 -beam_content += -14 5.9% 50 9450 30264.9 34305.2 34028.6 30703.8 26975.1 27044.5 27369.6 27746.9 28126.5 27779.2 27413.1 26882.3 26331.1 24512 22578 20644.1 18710.1 17191.8 15675.9 14695.9 13768.4 12933.3 12098.2 11433.4 10770.2 9830.67 8891.1 8107.64 7336.35 6880.7 6439.43 6213.76 5990.46 5520.28 5050.11 4809.09 4587.31 4365.54 4143.76 3868.78 3592.18 3381.59 3171.36 2938.91 2705.28 2495.05 2284.81 2307.97 2341.74 2375.5 2270.61 2164.19 2057.77 1951.34 1840.22 1728.04 1615.85 1503.66 1491 1494.39 1497.78 1482.94 1388.2 1293.45 1198.71 1138.77 1134.57 1130.36 1126.16 1108.57 1048.01 987.446 926.886 869.666 845.929 822.193 798.457 774.72 749.48 724.151 698.822 673.492 648.163 622.833 597.859 583.501 569.143 554.785 540.427 526.068 511.71 497.352 482.994 468.636 454.31 443.006 431.702 420.398 409.093 397.789 386.485 375.181 363.877 352.572 341.268 329.964 318.66 307.355 296.051 285.453 278.819 272.185 265.551 258.917 252.283 245.648 239.014 232.38 225.746 219.112 212.478 205.844 199.21 192.575 185.941 179.307 172.673 166.039 159.405 152.771 147.274 143.367 139.46 135.554 131.647 127.741 123.834 119.928 116.021 112.114 108.208 104.301 100.395 96.4881 92.5816 88.675 84.7684 80.8618 76.9553 73.0487 70.0752 68.666 67.2567 65.8475 64.4382 63.029 61.6197 60.2105 58.8012 57.392 55.9827 54.5735 53.1642 51.755 50.3457 48.9365 47.5272 46.118 44.7087 43.2995 42.5277 42.0615 41.5953 41.129 40.6628 40.1966 39.7303 39.2641 38.7979 38.3316 37.8654 37.3991 36.9329 36.4667 36.0004 35.5342 35.068 34.6017 34.1355 -beam_content += 12 1.1% 50 9450 682.68 1614.26 2547.81 3539.18 4497.06 4879.09 5261.12 5389.59 5493.08 5447.68 5400.58 5199.56 4992.35 4603.48 4214.62 3951.77 3690.69 3362.89 3035.08 2856.57 2678.66 2405.14 2135.59 1982.91 1833.19 1734.37 1635.54 1523.59 1411.2 1357.52 1304.49 1222.73 1139.13 1093.73 1048.33 1030.99 1015.27 983.975 952.147 928.287 904.697 897.463 890.229 866.417 841.434 820.08 798.725 782.205 766.49 750.775 731.959 712.76 693.561 674.362 651.394 627.623 603.851 580.08 558.781 537.857 516.933 496.01 477.714 460.207 442.699 425.192 409.079 393.749 378.419 363.089 352.524 342.774 333.024 323.273 310.985 297.728 284.472 271.215 259.332 251.523 243.713 235.904 228.094 220.285 212.476 204.683 197.583 190.483 183.383 176.282 169.182 162.082 154.982 147.882 140.782 135.001 131.267 127.533 123.799 120.065 116.331 112.597 108.863 105.129 101.396 97.6616 93.9277 90.1938 86.4599 82.7259 79.3897 77.2714 75.1531 73.0348 70.9164 68.7981 66.6798 64.5615 62.4431 60.3248 58.2065 56.0882 53.9698 51.8515 49.7332 47.6149 45.4965 43.3782 41.2599 39.1416 37.3594 36.4119 35.4644 34.5169 33.5694 32.6219 31.6744 30.7269 29.7794 28.8319 27.8844 26.9369 25.9894 25.042 24.0945 23.147 22.1995 21.252 20.3045 19.357 18.4095 17.8893 17.38 16.8706 16.3612 15.8519 15.3425 14.8332 14.3238 13.8145 13.3051 12.7958 12.2864 11.7771 11.2677 10.7583 10.249 9.73964 9.23028 8.72093 8.34094 8.18991 8.03887 7.88783 7.73679 7.58575 7.43471 7.28368 7.13264 6.9816 6.83056 6.67952 6.52848 6.37745 6.22641 6.07537 5.92433 5.77329 5.62226 -beam_content += -12 0.2% 50 9450 69.169 148.438 227.629 291.149 353.265 382.617 411.969 463.842 510.51 499.004 487.645 486.89 486.136 481.116 475.782 511.634 539.866 479.616 419.964 403.28 387.281 387.244 385.393 358.873 333.381 317.574 302.12 312.118 322.116 311.572 299.771 291.411 283.23 276.741 270.206 260.333 250.926 252.401 252.375 231.908 213.194 211.007 208.89 211.879 214.122 198.952 184.749 183.703 182.657 181.116 175.558 169.999 164.44 159.004 155.67 152.336 149.002 145.669 142.772 139.884 136.996 134.108 130.574 126.825 123.076 119.326 113.526 107.593 101.661 95.7284 94.1626 93.803 93.4434 93.0838 90.1456 87.1387 84.1318 81.1249 78.5051 76.3185 74.1319 71.9453 69.7588 67.5722 65.3856 63.899 62.4974 61.0958 59.6942 58.2926 56.891 55.4894 54.0878 52.6862 51.2846 49.8847 48.4864 47.0881 45.6899 44.2916 42.8933 41.4951 40.0968 38.6985 37.3003 35.902 34.5037 33.1055 31.7072 30.3089 29.547 28.8139 28.0808 27.3477 26.6146 25.8816 25.1485 24.4154 23.6823 22.9492 22.2161 21.483 20.7499 20.0168 19.2837 18.5506 17.8175 17.0844 16.3513 15.6873 15.2732 14.8591 14.445 14.031 13.6169 13.2028 12.7887 12.3747 11.9606 11.5465 11.1324 10.7184 10.3043 9.89021 9.47614 9.06206 8.64799 8.23391 7.81984 7.40576 7.17193 6.98789 6.80385 6.61981 6.43577 6.25173 6.06769 5.88365 5.69961 5.51557 5.33153 5.14749 4.96345 4.77941 4.59537 4.41133 4.22728 4.04324 3.8592 3.68106 3.63326 3.58546 3.53767 3.48987 3.44207 3.39427 3.34647 3.29868 3.25088 3.20308 3.15528 3.10748 3.05968 3.01189 2.96409 2.91629 2.86849 2.82069 2.77289 -beam_folder = flux -beam_file = 1 -beam_file_first = 1 -beam_file_limit = 0 -beam_weighted = 0 -beam_offset = 0 0 0 -beam_placement = 0 -beam_test_only = 0 -target_type = 1 -nucleus_p = 6 -nucleus_n = 6 -nucleus_E_b = 34 -nucleus_kf = 220 -target_content = 1 0 1x 0 0 0 -target_content += 6 6 1x 27 220 2 -geo_file = target/ND280_v9r7p5.root -geo_name = ND280Geometry_v9r7p5 -geo_volume = -geo_o = 0 0 0 -geo_d = 2000 2000 5000 -nucleus_target = 2 -nucleus_model = 1 -nucleus_LFGkfScale = 1 -dyn_qel_cc = 1 -dyn_qel_nc = 0 -dyn_res_cc = 1 -dyn_res_nc = 0 -dyn_dis_cc = 1 -dyn_dis_nc = 0 -dyn_coh_cc = 0 -dyn_coh_nc = 0 -dyn_mec_cc = 1 -dyn_mec_nc = 0 -qel_kinematics = 0 -qel_vector_ff_set = 2 -bba07_AEp1 = 1 -bba07_AEp2 = 0.9927 -bba07_AEp3 = 0.9898 -bba07_AEp4 = 0.9975 -bba07_AEp5 = 0.9812 -bba07_AEp6 = 0.934 -bba07_AEp7 = 1 -bba07_AMp1 = 1 -bba07_AMp2 = 1.0011 -bba07_AMp3 = 0.9992 -bba07_AMp4 = 0.9974 -bba07_AMp5 = 1.001 -bba07_AMp6 = 1.0003 -bba07_AMp7 = 1 -bba07_AEn1 = 1 -bba07_AEn2 = 1.011 -bba07_AEn3 = 1.1392 -bba07_AEn4 = 1.0203 -bba07_AEn5 = 1.1093 -bba07_AEn6 = 1.5429 -bba07_AEn7 = 0.9706 -bba07_AMn1 = 1 -bba07_AMn2 = 0.9958 -bba07_AMn3 = 0.9877 -bba07_AMn4 = 1.0193 -bba07_AMn5 = 1.035 -bba07_AMn6 = 0.9164 -bba07_AMn7 = 0.73 -bba07_AAx1 = 1 -bba07_AAx2 = 0.9958 -bba07_AAx3 = 0.9877 -bba07_AAx4 = 1.0193 -bba07_AAx5 = 1.035 -bba07_AAx6 = 0.9164 -bba07_AAx7 = 0.73 -qel_axial_ff_set = 1 -qel_rpa = 0 -qel_strange = 1 -qel_strangeEM = 0 -delta_s = -0.15 -qel_cc_vector_mass = 1000 -qel_cc_axial_mass = 1200 -qel_nc_axial_mass = 1350 -qel_s_axial_mass = 1200 -qel_axial_2comp_gamma = 0.15 -qel_axial_2comp_alpha = 2 -qel_axial_3comp_theta = 0.15 -qel_axial_3comp_beta = 2 -flux_correction = 0 -sf_method = 0 -sf_pb = 0 -cc_smoothing = 0 -delta_FF_set = 1 -pion_axial_mass = 0.94 -pion_C5A = 1.19 -SPPBkgScale = 0 -delta_angular = 0 -spp_precision = 500 -res_dis_cut = 1600 -bkgrscaling = 0 -coh_mass_correction = 1 -coh_new = 1 -coh_kind = 2 -mec_kind = 3 -mec_ratio_pp = 0.6 -mec_ratio_ppp = 0.8 -mec_central_motion = 0 -mec_back_to_back_smearing = 0 -mec_pb_trials = 25 -MEC_pauli_blocking = 1 -MEC_cm_direction = 0 -kaskada_on = 1 -kaskada_w = 7 -kaskada_redo = 0 -kaskada_writeall = 0 -kaskada_newangle = 0 -formation_zone = fz -tau = 8 -formation_length = 1 -first_step = 1 -step = 0.2 -xsec = 1 -pauli_blocking = 1 -mixed_order = 1 -rmin = 1 -rmax = 1 diff --git a/examples/cint/plottingcint.C b/examples/cint/plottingcint.C deleted file mode 100644 index 9952957..0000000 --- a/examples/cint/plottingcint.C +++ /dev/null @@ -1,304 +0,0 @@ -plottingcint(int nstart=0, int nwidth=-1, int ident=0){ - - // Test Use of External Fitter Libraries within CINT to handle generators. - // Should allow for faster sample prototyping and for additional plots to be made. - // P. Stowell - gROOT->ProcessLine(".X LoadFitLibraries_CINT.C"); - FitPar::Config().SetParI("MAXEVENTS",-1); // Global Overrides - - // Setup the RW Engine - FitWeight* rw = new FitWeight("FitWeight_Upper"); - int kNEUTDial = 0; - int kNIWGDial = 1; - int kNuwroDial = 2; // -> Note: Make ENUM DEF in FitBase - int kGENIEDial = 3; - rw->IncludeDial("kNuwro_Ma_CCQE", kNuwroDial, -2.0); - rw->Reconfigure(); - - // Setup the Input File (Using Convertor) - InputHandler* input = new InputHandler("nuwro_input", "NUWRO:simulation.root" ); - - // Inputhandler works a little bit like a TTree. We get a pointer the custom event - // and then we call readevent. - FitEvent* evt = input->GetEventPointer(); - int nevents = input->GetNEvents(); - - // Start Event Loop - for (int i = 0; i < nevents; i++){ - - input->ReadEvent(i); - if (i % 10000 == 0) std::cout<<"Processed "<CalcWeight( evt ); - // -- END - - mode = evt->Mode; - - - // SIGNAL DEFINITION - // -- START - // DEFINE THESE BY LOOKING AT PARTICLES - signal = -1; // OTHER CRAP - - - nmuons = 0; - npions = 0; - npionplus = 0; - npionneut = 0; - npionminus = 0; - nprotons = 0; - nelectrons = 0; - npositrons = 0; - nother = 0; - nneutrons = 0; - - - for (int j = 0; j < evt->Npart(); j++){ - - // Only get particles that are alive at the end - if (!evt->PartInfo(j)->fIsAlive) continue; - if (evt->PartInfo(j)->fStatus != 0) continue; - - int p_PID = evt->PartInfo(j)->fPID; - - if (p_PID == -211 || - p_PID == 211 || - p_PID == 111) npions += 1; - - - if (p_PID == -211) npionminus += 1; - if (p_PID == 211) npionplus += 1; - if (p_PID == 111) npionneut += 1; - else if (p_PID == 2212) nprotons += 1; - else if (p_PID == 11) nelectrons += 1; - else if (p_PID == -11) npositrons += 1; - else if (p_PID == 2112) nneutrons += 1; - else if (p_PID == 13) nmuons+=1; - else if (p_PID != -211 && - p_PID != 211 && - p_PID != 111 && - p_PID != 2212 && - p_PID != 11 && - p_PID != -11 && - p_PID != 2112 && - p_PID != 13) nother += 1; - - } - - // Define Signal Now - if (nmuons > 0 && npions == 0) signal = 0; // CC0PI - else if (nmuons > 0 && npions == 1) signal = 1; // CC1PI - else if (nmuons > 0) signal = 2; // CCOTHER - else signal = -1; - - if (signal == -1) continue; // SKIP NON CC SIGNALS - // -- END - - - // Fill Variables - - double theta_mu, t_mom_mu, l_mom_mu, theta_p, t_mom_p, l_mom_p, theta_n, theta_pip, theta_pin, theta_pim, Mmu, Mp, Mn, Mpip, Mpin, Mpim, R_l, R_t, KEp_max; - TVector3* three_mom_mu = NULL; - TVector3* three_mom_p = NULL; - TLorentzVector* q = NULL; - - TVector3* mu = NULL; - Mmu = kUnassigned; - Mp = kUnassigned; - Mn = kUnassigned; - Mpip = kUnassigned; - Mpin = kUnassigned; - Mpim = kUnassigned; - TEnu = kUnassigned; - TEmu = kUnassigned; - TEp = kUnassigned; - TEn = kUnassigned; - TEpip = kUnassigned; - TEpin = 0; - TEpim = kUnassigned; - Pmu = kUnassigned; - Pp = kUnassigned; - Pn = kUnassigned; - Ppip = kUnassigned; - Ppin = kUnassigned; - Ppim = kUnassigned; - cos_theta_mu = kUnassigned; - cos_theta_p = kUnassigned; - cos_theta_n = kUnassigned; - cos_theta_pip = kUnassigned; - cos_theta_pin = kUnassigned; - cos_theta_pim = kUnassigned; - KEp = 0; - KEn = 0; - KEpip = kUnassigned; - KEpin = kUnassigned; - KEpim = kUnassigned; - q0 = kUnassigned; - q3 = kUnassigned; - E_QE = kUnassigned; - Q2 = kUnassigned; - Ehad_true = kUnassigned; - Ehad_reco = kUnassigned; - MN = kUnassigned; - TEpip_tot = 0; - TEpim_tot = 0; - KEpip_tot = 0; - KEpim_tot = 0; - KEp_tot = 0; - KEn_tot = 0; - KEp_max = 0; - TEpin_tot = 0; - float Mne = 0.939; // Used later - float Mpr = 0.938; // USed later, hard coded for simplicity - - - // -- START - TLorentzVector q_temp = TLorentzVector(); - for (int j = 0; j < evt->Npart(); j++){ - - // Only get particles that are alive at the end - if (!evt->PartInfo(j)->fIsAlive) continue; - if (evt->PartInfo(j)->fStatus != 0) continue; - - int pdg_part = evt->PartInfo(j)->fPID; - TLorentzVector p_part = (evt->PartInfo(j)->fP); - TLorentzVector p_neut = (evt->PartInfo(0)->fP); - - if (pdg_part == 13){ - mu = &(p_part.Vect()); - Mmu = p_part.Mag()/1000.0; - TEmu = p_part.E()/1000.0; - Pmu = p_part.Vect().Mag()/1000.0; - theta_mu = p_part.Vect().Angle(p_neut.Vect()); - cos_theta_mu = cos(theta_mu); - if (TEmu != kUnassigned) KEmu = TEmu - Mmu; - three_mom_mu = &(p_part.Vect()); - t_mom_mu = sqrt((three_mom_mu->X())**2 + (three_mom_mu->Y())**2); - l_mom_mu = three_mom_mu->Z(); - q_temp = (p_part -p_neut); // Used for q0 and q3 - q = &q_temp; - } - - else if (pdg_part == 2212){ - Mp = p_part.Mag()/1000.0; - TEp = p_part.E()/1000.0; - Pp = p_part.Vect().Mag()/1000.0; - theta_p = p_part.Vect().Angle(p_neut.Vect()); - cos_theta_p = cos(theta_p); - if (TEp != kUnassigned){ - KEp = TEp - Mp; - } - else (KEp = 0); - KEp_tot += KEp; - if (KEp > KEp_max) KEp_max = KEp; - three_mom_p = &p_part.Vect(); - t_mom_p = sqrt((three_mom_p->X())**2 + (three_mom_p->Y())**2); - l_mom_p = three_mom_p->Z(); - } - - else if (pdg_part == 2112){ - Mn = p_part.Mag()/1000.0; - TEn = p_part.E()/1000.0; - Pn = p_part.Vect().Mag()/1000.0; - theta_n = p_part.Vect().Angle(p_neut.Vect()); - cos_theta_n = cos(theta_n); - if (TEn != kUnassigned){ - KEn = TEn - Mn; - KEn_tot += KEn; - } - } - else if (pdg_part == 211){ - Mpip = p_part.Mag()/1000.0; - Ppip = p_part.Vect().Mag()/1000.0; - TEpip = p_part.E()/1000.0; - TEpip_tot += TEpip; - theta_pip = p_part.Vect().Angle(p_neut.Vect()); - cos_theta_pip[0] = cos(theta_pip); - if (TEpip != kUnassigned){ - KEpip = TEpip - Mpip; - } - else (KEpip = 0); - KEpip_tot += KEpip; - } - else if (pdg_part == 111){ - Mpin = p_part.Mag()/1000.0; - TEpin = p_part.E()/1000.0; - Ppin = p_part.Vect().Mag()/1000.0; - theta_pin = p_part.Vect().Angle(p_neut.Vect()); - cos_theta_pin = cos(theta_pin); - if (TEpin != kUnassigned){ - KEpin = TEpin - Mpin; - } - else (KEpin = 0); - TEpin_tot += TEpin; - } - else if (pdg_part == -211){ - Mpim = p_part.Mag()/1000.0; - TEpim = p_part.E()/1000.0; - TEpim_tot += TEpim; - Ppim = p_part.Vect().Mag()/1000.0; - theta_pim = p_part.Vect().Angle(p_neut.Vect()); - cos_theta_pim = cos(theta_pim); - if (TEpim != kUnassigned){ - KEpim = TEpim - Mpim; - } - else (KEpim = 0); - KEpim_tot += KEpim; - } - - } - - if (!mu) continue; // If no muon found skip the event - - TEnu = p_neut.E()/1000.0; // Total Energy of the neutrino - - // Calculate q0 and q3 using the muon as is the most accurate - q0 = q->E()/1000.0; - q3 = q->Vect().Mag()/1000.0; - - - // Get Q2 from event (Q2 = -q2) - Q2 = -1.0 * (q->Mag2())/1000000.0; - - // Find the total energy of the end state hadrons - // True - Ehad_true = KEp_tot + KEn_tot + TEpip_tot + TEpin_tot + TEpim_tot; - // False - Ehad_reco = KEp_tot + KEpip_tot + KEpim_tot + TEpin_tot; - - // Average nucleon mass - MN = (Mpr + Mne)/2.0; - - - // Plot Q2 for different interaction modes - float Eb = 0.034; - Q2_qel_p = (Mne - Eb)**2 - Mpr**2 + 2*(Mne - Eb)*(KEp_max + Mpr - Mne + Eb); - Q2_qel_mu = -Mmu**2 + 2*TEnu*(TEmu - sqrt(TEmu**2 - Mmu**2)*cos_theta_mu); - Q2_dis_mu = 4*TEnu*TEmu*(sin(theta_mu/2))**2; - - // Sorting out the transverse stuff - if (three_mom_p != kUnassigned){ - transverse = (t_mom_mu + t_mom_p); - - R_l = l_mom_mu + l_mom_p; - R_t = t_mom_mu + t_mom_p; - Rt_Rl = R_t / R_l; - } - - // -- END - - // Final Fill - myTree->Fill(); - } - - - // Save the TTree - myTree->Write(); - outFile->Close(); - - exit(-1); - -} - diff --git a/examples/comparisons/neut_comp.card b/examples/comparisons/neut_comp.card deleted file mode 100644 index 5fac0b8..0000000 --- a/examples/comparisons/neut_comp.card +++ /dev/null @@ -1,2 +0,0 @@ - -sample MINERvA_CCQE_XSec_1DQ2_nu_20deg FIX NEUT:/path/to/file.root 1.00 \ No newline at end of file diff --git a/examples/comparisons/nuiscomp_setups.card b/examples/comparisons/nuiscomp_setups.card deleted file mode 100644 index 657c684..0000000 --- a/examples/comparisons/nuiscomp_setups.card +++ /dev/null @@ -1,17 +0,0 @@ -# CONFIG Setup -# ------ conf_par_name - value -#config MAXEVENTS 10000 - - -# PARAMETER Setup -# -------------- name ----------- nom -- [STATE] -nuwro_parameter kNuwro_Ma_CCQE -nuwro_parameter kNuwro_MECNorm 0.2 -nuwro_parameter kNuwro_RESNorm 1.0 FIX - -# Sample List -# ----- SAMPLE_ID ---------------- INTYPE:/path/to/inputfile ---------------------------- [STATE] --- [NORM] -sample ANL_CCQE_Evt_1DQ2_nu NUWRO:~/t2krep/NIWG/umb_nuwro/runs/runanlneutron.root -sample BNL_CCQE_Evt_1DQ2_nu NUWRO:~/t2krep/NIWG/umb_nuwro/runs/runanlneutron.root Q2CORR -sample ANL_CCQE_XSec_1DEnu_nu NUWRO:~/t2krep/NIWG/umb_nuwro/runs/runanlneutron.root DEFAULT 0.99 - diff --git a/examples/comparisons/pittsburgh_comp.card b/examples/comparisons/pittsburgh_comp.card deleted file mode 100644 index 3f8edbc..0000000 --- a/examples/comparisons/pittsburgh_comp.card +++ /dev/null @@ -1,67 +0,0 @@ -# ALL SAMPLES VALID FOR PITTSBURGH FILES - -# INPUT FILE should be replaced by the inputs -# Examples are: -# NEUT:/path/to/root/file -# NUWRO:/path/to/root/file -# GENIE:/path/to/root/file -# GIBUU:/path/to/root/file -# NUANCE:/path/to/root/file -# JOINT:/path/to/root/file # Make a txt file listing multiple input files for JOINT inputs - -# MINERvA Samples -sample MINERvA_CC0pi_XSec_1DEe_nue FIX INPUTFILE 1.00 -sample MINERvA_CC0pi_XSec_1DQ2_nue FIX INPUTFILE 1.00 -sample MINERvA_CC0pi_XSec_1DQ2_nu_proton FIX INPUTFILE 1.00 - -sample MINERvA_CC0pi_XSec_1DThetae_nue FIX INPUTFILE 1.00 - -sample MINERvA_CC1pi0_XSec_1Dppi0_antinu FIX INPUTFILE 1.00 -sample MINERvA_CC1pi0_XSec_1Dth_antinu FIX INPUTFILE 1.00 - -sample MINERvA_CC1pip_XSec_1Dth_20deg_nu FIX INPUTFILE 1.00 -sample MINERvA_CC1pip_XSec_1Dth_nu FIX INPUTFILE 1.00 -sample MINERvA_CC1pip_XSec_1DTpi_20deg_nu FIX INPUTFILE 1.00 -sample MINERvA_CC1pip_XSec_1DTpi_nu FIX INPUTFILE 1.00 - -sample MINERvA_CCinc_XSec_2DEavq3_nu FIX INPUTFILE 1.00 - -sample MINERvA_CCNpip_XSec_1Dth_20deg_nu FIX INPUTFILE 1.00 -sample MINERvA_CCNpip_XSec_1Dth_nu FIX INPUTFILE 1.00 -sample MINERvA_CCNpip_XSec_1DTpi_20deg_nu FIX INPUTFILE 1.00 -sample MINERvA_CCNpip_XSec_1DTpi_nu FIX INPUTFILE 1.00 - -sample MINERvA_CCQE_XSec_1DQ2_antinu_20deg_newflux FIX INPUTFILE 1.00 -sample MINERvA_CCQE_XSec_1DQ2_nu_20deg_newflux FIX INPUTFILE 1.00 - -# MiniBooNE Samples -sample MiniBooNE_CC1pi0_XSec_1Dcosmu_nu FIX INPUTFILE 1.00 -sample MiniBooNE_CC1pi0_XSec_1Dcospi0_nu FIX INPUTFILE 1.00 -sample MiniBooNE_CC1pi0_XSec_1DEnu_nu FIX INPUTFILE 1.00 -sample MiniBooNE_CC1pi0_XSec_1Dppi0_nu FIX INPUTFILE 1.00 -sample MiniBooNE_CC1pi0_XSec_1DQ2_nu FIX INPUTFILE 1.00 -sample MiniBooNE_CC1pi0_XSec_1DTu_nu FIX INPUTFILE 1.00 - -sample MiniBooNE_CC1pip_XSec_1DEnu_nu FIX INPUTFILE 1.00 -sample MiniBooNE_CC1pip_XSec_1DQ2_nu FIX INPUTFILE 1.00 -sample MiniBooNE_CC1pip_XSec_1DTpi_nu FIX INPUTFILE 1.00 -sample MiniBooNE_CC1pip_XSec_1DTu_nu FIX INPUTFILE 1.00 -sample MiniBooNE_CC1pip_XSec_2DQ2Enu_nu FIX INPUTFILE 1.00 -sample MiniBooNE_CC1pip_XSec_2DTpiCospi_nu FIX INPUTFILE 1.00 -sample MiniBooNE_CC1pip_XSec_2DTpiEnu_nu FIX INPUTFILE 1.00 -sample MiniBooNE_CC1pip_XSec_2DTuCosmu_nu FIX INPUTFILE 1.00 -sample MiniBooNE_CC1pip_XSec_2DTuEnu_nu FIX INPUTFILE 1.00 - -sample MiniBooNE_CCQE_XSec_1DQ2_antinu FIX INPUTFILE 1.00 -sample MiniBooNE_CCQE_XSec_1DQ2_nu FIX INPUTFILE 1.00 -sample MiniBooNE_CCQE_XSec_2DTcos_antinu FIX INPUTFILE 1.00 -sample MiniBooNE_CCQE_XSec_2DTcos_nu FIX INPUTFILE 1.00 - -sample MiniBooNE_CCQELike_XSec_1DQ2_antinu FIX INPUTFILE 1.00 -sample MiniBooNE_CCQELike_XSec_1DQ2_nu FIX INPUTFILE 1.00 -sample MiniBooNE_CCQELike_XSec_2DTcos_antinu FIX INPUTFILE 1.00 -sample MiniBooNE_CCQELike_XSec_2DTcos_nu FIX INPUTFILE 1.00 - - -#T2K Samples -sample T2K_CC0pi_XSec_2DPcos_nu FIX INPUTFILE 1.00 \ No newline at end of file diff --git a/freshbuild.sh b/freshbuild.sh deleted file mode 100644 index 3c8fc92..0000000 --- a/freshbuild.sh +++ /dev/null @@ -1,5 +0,0 @@ -mkdir build -cd ./build -cmake -DUSE_NUWRO=0 -DUSE_NIWG=0 -DUSE_NEUT=1 -DUSE_GENIE=0 -DUSE_T2K=0 -DUSE_GiBUU=0 -DUSE_NUANCE=0 -DUSE_MINIMIZER=false ../ -make clean && make -j8 -cd - diff --git a/parameters/config.xml b/parameters/config.xml deleted file mode 100644 index 3feb65d..0000000 --- a/parameters/config.xml +++ /dev/null @@ -1,202 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/parameters/dial_conversion.card b/parameters/dial_conversion.card deleted file mode 100644 index 0227a07..0000000 --- a/parameters/dial_conversion.card +++ /dev/null @@ -1,38 +0,0 @@ -# par Name Units Nominal FracErr ConvFunc -neut_parameter MaCCQE GeV 1.21*(1.0+x*0.16) -neut_parameter MaNFFRES GeV 0.95*(1.0+x*0.157894737) -neut_parameter CA5RES x 1.01*(1.0+x*0.247524752) -neut_parameter BgSclRES x 1.30*(1.0+x*0.153846154) - -neut_parameter FrAbs_pi x 1.1*(1.0+x*0.5) -neut_parameter FrInelLow_pi x 1*(1.0+x*0.5) -neut_parameter FrInelHigh_pi x 1.8*(1.0+x*0.3) -neut_parameter FrPiProd_pi x 1*(1.0+x*0.5) -neut_parameter FrCExLow_pi x 1*(1.0+x*0.5) -neut_parameter FrCExHigh_pi x 1.8*(1.0+x*0.3) - -niwg_parameter NIWGMEC_Norm_C12 % 100.0*(1.0+x) -niwg_parameter VecFFCCQE MDLQE x -niwg_parameter CCQEFermiSurfMom MeV 217*(1.0+x*0.15) - -t2k_parameter NIWG2014a_pF_C12 MeV 217*(1.0+x*0.073733) -t2k_parameter NIWG2014a_pF_O16 MeV 225*(1.0+x*0.071111) -t2k_parameter NIWGMEC_PDDWeight_C12 x 0.5*(1.0+x*1.0) -t2k_parameter NIWGMEC_PDDWeight_O16 x 0.5*(1.0+x*1.0) - -t2k_parameter NXSec_MaCCQE GeV 1.21*(1.0+x*0.165289256) - -t2k_parameter NXSec_MaNFFRES GeV 0.95*(1.0+x*0.157894737) -t2k_parameter NXSec_CA5RES x 1.01*(1.0+x*0.247524752) -t2k_parameter NXSec_BgSclCCRES x 1.30*(1.0+x*0.153846154) - -t2k_parameter NIWG_Effective_rpaCCQE_A x 1.0*(1.0 + x*0.1) -t2k_parameter NIWG_Effective_rpaCCQE_B x 1.0*(1.0 + x*0.1) -t2k_parameter NIWG_Effective_rpaCCQE_C x 1.0*(1.0 + x*0.1) -t2k_parameter NIWG_Effective_rpaCCQE_D x 1.0*(1.0 + x*0.1) -t2k_parameter NIWG_Effective_rpaCCQE_U x 1.0*(1.0 + x*0.1) - -nuwro_parameter kNuwro_Ma_CCQE MeV 1200*(1.0+x*0.160) -nuwro_parameter kNuwro_MaRES GeV 0.940*(1.0+x*0.1) -nuwro_parameter kNuwro_CA5 x 1.19*(1.0+x*0.1) -nuwro_parameter kNuwro_SPPBkgScale x 1.0*(1.0+x*0.26) diff --git a/parameters/fitter.config.dat b/parameters/fitter.config.dat deleted file mode 100644 index e8ab1ba..0000000 --- a/parameters/fitter.config.dat +++ /dev/null @@ -1,158 +0,0 @@ -# ###################################################### -# NUISANCE CONFIGURATION OPTIONS -# This file is read in by default at runtime -# If you want to override on a case by case bases use -q at runtime -# ###################################################### - -# MAIN Configs -# ###################################################### - -# Logger goes from -# 1 Quiet -# 2 Fitter -# 3 Samples -# 4 Reconfigure Loops -# 5 Every Event print out (SHOUT) -# -1 DEBUGGING -config verbosity 2 -config VERBOSITY 2 - -# ERROR goes from -# 0 NONE -# 1 FATAL -# 2 WARN -config ERROR 2 - -# Input Configs -# ###################################################### - -# Default Requirements file for the externalDataFitter Package -# MAX Events : -1 is no cut. Events will be scaled automatically to give good xsec predictions. -config input.maxevents -1 -config MAXEVENTS -1 -config input.MAXEVENTS -1 - -# Turn on/off event manager -# EventManager enables us to only loop number of events once for multiple projections of the same measurements -# e.g. MiniBooNE CC1pi+ Q2 and MiniBooNE CC1pi+ Tmu would ordinarily require 2 reconfigures, but with this enabled it requires only one -config input.eventmanager 0 -config EventManager 0 - -# Event Directories -# Can setup default directories and use @EVENT_DIR/path to link to it -config EVENT_DIR /data2/stowell/NIWG/ -config NEUT_EVENT_DIR /data2/stowell/NIWG/neut/fit_samples_neut5.3.3/ -config GENIE_EVENT_DIR /data2/stowell/NIWG/genie/fit_samples_R.2.10.0/ -config NUWRO_EVENT_DIR /data2/stowell/NIWG/nuwro/fit_samples/ -config GIBUU_EVENT_DIR /data/GIBUU/DIR/ - -# In PrepareGENIE the reconstructed splines can be saved into the file -config save_genie_splines 1 - -# In InputHandler the option to regenerate NuWro flux/xsec plots is available -# Going to move this to its own app soon -config input.regen_nuwro_plots 0 - -# DEVEL CONFIG OPTION, don't touch! -config cachesize 0 - -# ReWeighting Configuration Options -# ###################################################### - -# Set absolute twkdial for parameters -config params.setabstwk 0 - -# Convert Dials in output statements using dial conversion card -config convert_dials 0 - -# Make RW Calculations be quiet -condif params.silentweighting 0 - -# Vetos can be used to specify RW dials NOT to be loaded in -# Useful if one specific one has an issue -config FitWeight.fNIWGRW_veto '' -config FitWeight.fNuwroRW_veto '' -config FitWeight.fNeutRW_veto '' -config FitWeight.fGenieRW_veto '' - - -# Output Options -# ###################################################### - -# Save Nominal prediction with all rw engines at default -config savenominal 0 - -# Save prefit with values at starting values -config saveprefit 0 - -# Here's the full list of drawing options -# See src/FitBase/Measurement1D::Write for more info -#config drawopts DATA/MC/EVT/FINE/RATIO/MODES/SHAPE/RESIDUAL/MATRIX/FLUX/MASK/MAP -#config drawopts DATA/MC -config drawopts DATA/MC/EVT/FINE/RATIO/MODES/SHAPE/FLUX/XSEC/MASK/COV/INCOV/DECOMP/CANVPDG/CANVMC - -# Save the shape scaling applied with option SHAPE into the main MC hist -config saveshapescaling 0 - -# Set style of 1D output histograms -config linecolour 1 -config linestyle 1 -config linewidth 1 - -# For GenericFlux -config isLiteMode 0 - -# Statistical Options -# ###################################################### - -# Add MC Statistical error to likelihoods -config statutils.addmcerror 0 - -# NUISMIN Configurations -# ###################################################### - -config minimizer.maxcalls 1000000 -config minimizer.maxiterations 1000000 -config minimizer.tolerance 0.001 - -# Number of events required in low stats routines -config minimizer.lowstatevents 25000 - - -# Error band generator configs -# ###################################################### - -# For -f ErrorBands creates error bands for given measurements -# How many throws do we want (The higher the better precision) -config error_throws 250 - -# Are we throwing uniform or according to Gaussian? -# Only use uniform if wanting to study the limits of a dial. -config error_uniform 0 - - -# Other Individual Case Configs -# ###################################################### - -# Covariance throw options for fake data studies with MiniBooNE data. -config thrown_covariance FULL -config throw_mc_stat 0.0 -config throw_diag_syst 0 -config throw_corr_syst 0 -config throw_mc_stat 0 - -# Apply a shift to the muon momentum before calculation of Q2 -config muon_momentum_shift 0.0 -config muon_momentum_throw 0 - -# MINERvA Specific Configs -config MINERvA_XSec_CCinc_2DEavq3_nu.hadron_cut 0 -config MINERvA_CCinc_XSec_2DEavq3_nu.useq3true 0 -config Modes.split_PN_NN 0 - -# SciBooNE specific -config SciBarDensity 1.04 -#config SciBarDensity 2.00 -config SciBarRecoDist 10.0 -config PenetratingMuonEnergy 1.4 -config NumRangeSteps 50 diff --git a/profiling/runprofiler.sh b/profiling/runprofiler.sh deleted file mode 100755 index e442037..0000000 --- a/profiling/runprofiler.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/env sh - -# Read Inputs -PROFILEOUT=$1 -PROGRAM=$(which $2) -ARGUMENTS=${@:3} -PPROF=$NUISANCE/build/Ext/src/gperftools/src/pprof - -# Log -echo "Profiling : $PROGRAM" -echo "Saving to : $CPUPROFILE" -echo "Running : $PROGRAM $ARGUMENTS" - -# Run PROFILING -echo "" -CPUPROFILE=$PROFILEOUT $2 $ARGUMENTS - -# Make PDF + TXT -echo "" -echo "Building outputs" -$PPROF --pdf $PROGRAM $PROFILEOUT > ${PROFILEOUT}.pdf -$PPROF --text $PROGRAM $PROFILEOUT > ${PROFILEOUT}.txt diff --git a/scripts_old/dumpgenieconfig.py b/scripts_old/dumpgenieconfig.py deleted file mode 100644 index b5c98c3..0000000 --- a/scripts_old/dumpgenieconfig.py +++ /dev/null @@ -1,35 +0,0 @@ -from ROOT import TFile, TFolder, TObjString -import sys - -def PrintKey(obj, indent): - splitkey = obj.GetName().split(";") - keydict = {} - for val in reversed(splitkey): - splitval = val.split(":") - if (len(splitval) < 2): splitval = val.split("=") - keydict[splitval[0].strip()] = ''.join(splitval[1:]).strip() - - print indent, keydict - -def ExpandKeys(keydir, indent): - for obj in keydir.GetListOfFolders(): - if "TFolder" in str(type(obj)): - print indent, obj.GetName() - ExpandKeys(obj, indent + " -> ") - if "TObjString" in str(type(obj)): - PrintKey(obj, indent ) - -def ExpandGlobalList(keydir): - for obj in keydir.GetListOfFolders(): - if str(obj.GetName()) != "GlobalParameterList": continue - print "GLOBAL : ", obj.GetName() - ExpandKeys(obj,"GLOBAL : ") - -if __name__=="__main__": - - myfile = TFile(sys.argv[1],"READ") - configs = myfile.Get("gconfig") - ExpandKeys(configs,"") - - print "\n# Global List #\n" - ExpandGlobalList(configs) diff --git a/scripts_old/maketarball.sh b/scripts_old/maketarball.sh deleted file mode 100644 index 2cda989..0000000 --- a/scripts_old/maketarball.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh -nuiscomp=$(which nuiscomp) -binfolder=$(dirname $nuiscomp) -echo $binfolder -allfiles="" -for file in $(find $binfolder/ -type f -perm /a+x -exec ldd {} \; | \grep so | sed -e '/^[^\t]/ d' | sed -e 's/\t//' | sed -e 's/.*=..//' | sed -e 's/ (0.*)//' | sort | uniq -c | sort -n); -do - if [[ "$file" == "/usr/lib"* || "$file" == "/lib"* ]] - then - continue - fi - if [ -e $file ] - then - echo $file - allfiles="$allfiles $file" - fi -done -mkdir nuisance_reqs -mkdir ./nuisance_reqs/lib/ -mkdir ./nuisance_reqs/bin/ -cp -v $allfiles ./nuisance_reqs/lib/ -cp -v $binfolder/../lib/ ./nuisance_reqs/lib/ -cp -r $NUISANCE/data/ ./nuisance_reqs/data/ -cp -r $NUISANCE/parameters/ ./nuisance_reqs/parameters/ -cp -r $binfolder/* ./nuisance_reqs/bin/ -echo "#!/bin/sh" > ./nuisance_reqs/setup.sh -echo 'export NUISANCE=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )' >> ./nuisance_reqs/setup.sh -echo 'export PATH=$NUISANCE/bin:$PATH' >> ./nuisance_reqs/setup.sh -echo 'export LD_LIBRARY_PATH=$NUISANCE/lib:$LD_LIBRARY_PATH' >> ./nuisance_reqs/setup.sh -#GZIP=-9 -#tar -zcf ./nuisance_reqs.tar.gz ./nuisance_reqs/ -#rm -rf ./nuisance_reqs \ No newline at end of file diff --git a/scripts_old/nuiscardgen b/scripts_old/nuiscardgen deleted file mode 100755 index 3f79138..0000000 --- a/scripts_old/nuiscardgen +++ /dev/null @@ -1,819 +0,0 @@ -#!/bin/bash - -parse_bool () { - if [[ "${1}" == "true" ]] || [[ "${1}" == "TRUE" ]] || [[ "${1}" == "True" ]]\ - || [[ "${1}" == "t" ]] || [[ "${1}" == "T" ]] || [[ "${1}" == "y" ]]\ - || [[ "${1}" == "yes" ]] || [[ "${1}" == "Yes" ]] || [[ "${1}" == "1" ]] - then - ISTRUE=1 - return 0 - fi - if [[ "${1}" == "false" ]] || [[ "${1}" == "FALSE" ]]\ - || [[ "${1}" == "False" ]] || [[ "${1}" == "f" ]] || [[ "${1}" == "F" ]]\ - || [[ "${1}" == "n" ]] || [[ "${1}" == "no" ]] || [[ "${1}" == "No" ]]\ - || [[ "${1}" == "0" ]]; then - ISTRUE=0 - return 0 - fi - - echo "[WARN]: Failed to parse \"${1}\" as a boolean value" - ISTRUE=-1 -} - -#Pass "Message to print" "default:y/n" -ask_bool (){ - ISTRUE=-1 - while [[ "${ISTRUE}" -lt "0" ]]; do - echo -n "${1}" - read INTERBOOL - if [[ ! "${INTERBOOL}" ]]; then - parse_bool ${2} - else - parse_bool ${INTERBOOL} - fi - done -} - -check_exist (){ - if [[ "${1}" ]] && [[ -e "${1}" ]]; then - FILE_EXISTS=1 - return 0 - fi - if [[ ! "${1}" ]]; then - FILE_EXISTS=-1 - else - echo -n "[WARN]: File \"${1}\" does not exist, please enter another file or" - echo " leave blank to ignore sample." - FILE_EXISTS=0 - fi -} - -select_gen (){ - if [[ ! "${1}" ]]; then - echo "[INFO]: Assuming input files are from the NEUT Generator" - GEN="NEUT" - GEN_TAG="NEUT:" - elif [[ "${1}" == "NEUT" ]] || [[ "${1}" == "neut" ]]\ - || [[ "${1}" == "Neut" ]]; then - GEN="NEUT" - GEN_TAG="NEUT:" - elif [[ "${1}" == "GENIE" ]] || [[ "${1}" == "genie" ]]\ - || [[ "${1}" == "Genie" ]]; then - GEN="GENIE" - GEN_TAG="GENIE:" - elif [[ "${1}" == "NUWRO" ]] || [[ "${1}" == "Nuwro" ]]\ - || [[ "${1}" == "NuWro" ]] || [[ "${1}" == "nuwro" ]]; then - GEN="NUWRO" - GEN_TAG="NUWRO:" - elif [[ "${1}" == "GIBUU" ]] || [[ "${1}" == "GiBUU" ]]\ - || [[ "${1}" == "Gibuu" ]] || [[ "${1}" == "gibuu" ]]; then - GEN="GiBUU" - GEN_TAG="GiBUU:" - elif [[ "${1}" == "NUANCE" ]] || [[ "${1}" == "Nuance" ]]\ - || [[ "${1}" == "nuance" ]]; then - GEN="NUANCE" - GEN_TAG="NUANCE:" - else - echo "[ERROR]: Unknown generator ${1}." - exit 1 - fi - -} - -echo "Welcome to the NUISANCE interactive card builder." - -## Generator -echo -e -n "Which generator are you interested in? [NEUT]/GENIE/NUWRO/GIBUU/NUANCE? " -read GENNAME -select_gen ${GENNAME} - -## Interesting species -ask_bool "Are you interested in muon neutrino beam modes (FHC/PP/FC) [y]/n? " "y" -DO_NU=${ISTRUE} - -ask_bool "Are you interested in muon anti-neutrino beam modes (RHC/NP/RC) y/[n]? " "n" -DO_NUB=${ISTRUE} - -## Interesting Topologies -ask_bool "Are you interested in QE-like samples [y]/n? " "y" -DO_QEL=${ISTRUE} - -ask_bool "Are you interested in CCPi samples [y]/n? " "y" -DO_PIPROD=${ISTRUE} - -ask_bool "Are you interested in CCInclusive samples y/[n]? " "n" -DO_CCINC=${ISTRUE} - -ask_bool "Are you interested in NC samples y/[n]? " "n" -DO_NC=${ISTRUE} - -ask_bool "Are you interested in bubble chamber samples [y]/n? " "y" -DO_BUBBLE=${ISTRUE} - -ask_bool "Are you interested in nuclear-target samples [y]/n? " "y" -DO_NUCLEAR=${ISTRUE} -## Interesting Targets - -## Only offer most-up-to-date results -ask_bool "Are you interested in only the most up-to-date results [y]/n? " "y" -DO_OLD=${ISTRUE} - -# echo "GEN_TAG: ${GEN_TAG}" -# echo "GEN_TAG: ${GEN_TAG}" -# echo "DO_NU: ${DO_NU}" -# echo "DO_NUB: ${DO_NUB}" -# echo "DO_QEL: ${DO_QEL}" -# echo "DO_PIPROD: ${DO_PIPROD}" -# echo "DO_CCINC: ${DO_CCINC}" -# echo "DO_NC: ${DO_NC}" -# echo "DO_BUBBLE: ${DO_BUBBLE}" -# echo "DO_NUCLEAR: ${DO_NUCLEAR}" -# echo "DO_OLD: ${DO_OLD}" - -## Check set up -if [[ "${DO_NU}" == "0" ]] && [[ "${DO_NUB}" == "0" ]]; then - echo -n "[ERROR]: Not using neutrino or anti-neutrino mode beams, no samples" - echo " will be selected." - exit 1 -fi -if [[ "${DO_QEL}" == "0" ]] && [[ "${DO_PIPROD}" == "0" ]] && [[ "${DO_CCINC}" == "0" ]] && [[ "${DO_NC}" == "0" ]]; then - echo -n "[ERROR]: Not using any interaction topologies, no samples" - echo " will be selected." - exit 1 -fi -if [[ "${DO_BUBBLE}" == "0" ]] && [[ "${DO_NUCLEAR}" == "0" ]]; then - echo -n "[ERROR]: Not using any target type, no samples" - echo " will be selected." - exit 1 -fi - -if [[ "${DO_QEL}" == "0" ]]; then QEL_PREFIX="#"; else QEL_PREFIX=""; fi -if [[ "${DO_PIPROD}" == "0" ]]; then PIPROD_PREFIX="#"; else PIPROD_PREFIX=""; fi -if [[ "${DO_CCINC}" == "0" ]]; then CCINC_PREFIX="#"; else CCINC_PREFIX=""; fi -if [[ "${DO_NC}" == "0" ]]; then NC_PREFIX="#"; else NC_PREFIX=""; fi -if [[ "${DO_OLD}" == "0" ]]; then OLD_PREFIX="#"; else OLD_PREFIX=""; fi - -OUTPUTCARDFILE="generated.card" -echo "" > ${OUTPUTCARDFILE} - -ANL_NUMU_FILELOC="_ANL_NUMU_INPUT_FILE_" -NUMU_PREFIX="#" -if [[ "${DO_BUBBLE}" == "1" ]] && [[ "${DO_NU}" == "1" ]] && ( [[ "${DO_QEL}" == "1" ]] || [[ "${DO_PIPROD}" == "1" ]] ); then - FILE_EXISTS=0 - while [[ ${FILE_EXISTS} == 0 ]]; do - echo -e -n "Please specify the location of the ANL muon neutrino mode input vector /path/to/file.root (leave blank to ignore this experiment)?\n" - read -e VECT_LOC - check_exist ${VECT_LOC} - done - if [[ ! "${VECT_LOC}" ]]; then - NUMU_PREFIX="#" - else - ANL_NUMU_FILELOC=${VECT_LOC} - NUMU_PREFIX="" - fi -fi - -echo -e "\n#### ANL" >> ${OUTPUTCARDFILE} -echo -e "### QE-like\n" >> ${OUTPUTCARDFILE} - -echo "${NUMU_PREFIX}${QEL_PREFIX}sample ANL_CCQE_XSec_1DEnu_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${QEL_PREFIX}${OLD_PREFIX}sample ANL_CCQE_XSec_1DEnu_nu_PRL31 ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${QEL_PREFIX}${OLD_PREFIX}sample ANL_CCQE_XSec_1DEnu_nu_PRD16 ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${QEL_PREFIX}sample ANL_CCQE_Evt_1DQ2_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${QEL_PREFIX}${OLD_PREFIX}sample ANL_CCQE_Evt_1DQ2_nu_PRL31 ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${QEL_PREFIX}${OLD_PREFIX}sample ANL_CCQE_Evt_1DQ2_nu_PRD16 ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} - - -echo -e "\n### 1Pi\n" >> ${OUTPUTCARDFILE} - -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC1ppip_XSec_1DEnu_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC1ppip_XSec_1DQ2_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC1ppip_Evt_1DQ2_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC1ppip_Evt_1Dppi_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC1ppip_Evt_1Dthpr_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC1ppip_Evt_1DcosmuStar_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC1ppip_Evt_1DcosthAdler_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC1ppip_Evt_1Dphi_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC1npip_XSec_1DEnu_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC1npip_Evt_1DQ2_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC1npip_Evt_1Dppi_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC1npip_Evt_1DcosmuStar_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC1pi0_XSec_1DEnu_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC1pi0_Evt_1DQ2_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC1pi0_Evt_1DcosmuStar_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} - -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_NC1npip_Evt_1Dppi_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_NC1ppim_XSec_1DEnu_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_NC1ppim_Evt_1DcosmuStar_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} - -echo -e "\n### 2Pi\n" >> ${OUTPUTCARDFILE} - -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC2pi_1pim1pip_XSec_1DEnu_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC2pi_1pim1pip_Evt_1Dpmu_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC2pi_1pim1pip_Evt_1Dppip_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC2pi_1pim1pip_Evt_1Dppim_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC2pi_1pim1pip_Evt_1Dpprot_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC2pi_1pip1pip_XSec_1DEnu_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC2pi_1pip1pip_Evt_1Dpmu_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC2pi_1pip1pip_Evt_1Dpneut_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC2pi_1pip1pip_Evt_1DppipHigh_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC2pi_1pip1pip_Evt_1DppipLow_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC2pi_1pip1pi0_XSec_1DEnu_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC2pi_1pip1pi0_Evt_1Dpmu_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC2pi_1pip1pi0_Evt_1Dppip_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC2pi_1pip1pi0_Evt_1Dppi0_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample ANL_CC2pi_1pip1pi0_Evt_1Dpprot_nu ${GEN_TAG}${ANL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} - - -BNL_NUMU_FILELOC="_BNL_NUMU_INPUT_FILE_" -NUMU_PREFIX="#" -if [[ "${DO_BUBBLE}" == "1" ]] && [[ "${DO_NU}" == "1" ]] && ( [[ "${DO_QEL}" == "1" ]] || [[ "${DO_PIPROD}" == "1" ]] ); then - FILE_EXISTS=0 - while [[ ${FILE_EXISTS} == 0 ]]; do - echo -e -n "Please specify the location of the BNL muon neutrino mode input vector /path/to/file.root (leave blank to ignore this experiment)?\n" - read -e VECT_LOC - check_exist ${VECT_LOC} - done - if [[ ! "${VECT_LOC}" ]]; then - NUMU_PREFIX="#" - else - BNL_NUMU_FILELOC=${VECT_LOC} - NUMU_PREFIX="" - fi -fi - -echo -e "\n#### BNL" >> ${OUTPUTCARDFILE} -echo -e "### QE-like\n" >> ${OUTPUTCARDFILE} - -echo "${NUMU_PREFIX}${QEL_PREFIX}sample BNL_CCQE_XSec_1DEnu_nu ${GEN_TAG}${BNL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${QEL_PREFIX}sample BNL_CCQE_Evt_1DQ2_nu ${GEN_TAG}${BNL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} - - -echo -e "\n### 1Pi\n" >> ${OUTPUTCARDFILE} - -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample BNL_CC1ppip_XSec_1DEnu_nu ${GEN_TAG}${BNL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample BNL_CC1ppip_Evt_1DQ2_nu ${GEN_TAG}${BNL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample BNL_CC1ppip_Evt_1DcosthAdler_nu ${GEN_TAG}${BNL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample BNL_CC1ppip_Evt_1Dphi_nu ${GEN_TAG}${BNL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample BNL_CC1npip_XSec_1DEnu_nu ${GEN_TAG}${BNL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample BNL_CC1npip_Evt_1DQ2_nu ${GEN_TAG}${BNL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample BNL_CC1pi0_XSec_1DEnu_nu ${GEN_TAG}${BNL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample BNL_CC1pi0_Evt_1DQ2_nu ${GEN_TAG}${BNL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} - -FNAL_NUMU_FILELOC="_FNAL_NUMU_INPUT_FILE_" -NUMU_PREFIX="#" -if [[ "${DO_BUBBLE}" == "1" ]] && [[ "${DO_NU}" == "1" ]] && ( [[ "${DO_QEL}" == "1" ]] || [[ "${DO_PIPROD}" == "1" ]] ); then - FILE_EXISTS=0 - while [[ ${FILE_EXISTS} == 0 ]]; do - echo -e -n "Please specify the location of the FNAL muon neutrino mode input vector /path/to/file.root (leave blank to ignore this experiment)?\n" - read -e VECT_LOC - check_exist ${VECT_LOC} - done - if [[ ! "${VECT_LOC}" ]]; then - NUMU_PREFIX="#" - else - FNAL_NUMU_FILELOC=${VECT_LOC} - NUMU_PREFIX="" - fi -fi - -echo -e "\n#### FNAL" >> ${OUTPUTCARDFILE} -echo -e "### QE-like\n" >> ${OUTPUTCARDFILE} - -echo "${NUMU_PREFIX}${QEL_PREFIX}sample FNAL_CCQE_Evt_1DQ2_nu ${GEN_TAG}${FNAL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} - -echo -e "\n### 1Pi" >> ${OUTPUTCARDFILE} -echo -e "## numu\n" >> ${OUTPUTCARDFILE} - -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample FNAL_CC1ppip_XSec_1DEnu_nu ${GEN_TAG}${FNAL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample FNAL_CC1ppip_XSec_1DQ2_nu ${GEN_TAG}${FNAL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample FNAL_CC1ppip_Evt_1DQ2_nu ${GEN_TAG}${FNAL_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} - -FNAL_NUMUB_FILELOC="_FNAL_NUMUB_INPUT_FILE_" -NUMUB_PREFIX="#" -if [[ "${DO_BUBBLE}" == "1" ]] && [[ "${DO_NUB}" == "1" ]] && [[ "${DO_PIPROD}" == "1" ]]; then - FILE_EXISTS=0 - while [[ ${FILE_EXISTS} == 0 ]]; do - echo -e -n "Please specify the location of the FNAL muon anti-neutrino mode input vector /path/to/file.root (leave blank to ignore this experiment)?\n" - read -e VECT_LOC - check_exist ${VECT_LOC} - done - if [[ ! "${VECT_LOC}" ]]; then - NUMUB_PREFIX="#" - else - FNAL_NUMUB_FILELOC=${VECT_LOC} - NUMUB_PREFIX="#" - fi -fi - -echo -e "\n## numubar\n" >> ${OUTPUTCARDFILE} - -echo "${NUMUB_PREFIX}${PIPROD_PREFIX}sample FNAL_CC1ppim_XSec_1DEnu_antinu ${GEN_TAG}${FNAL_NUMUB_FILELOC}" >> ${OUTPUTCARDFILE} - -BEBC_NUMU_FILELOC="_BEBC_NUMU_INPUT_FILE_" -NUMU_PREFIX="#" -if [[ "${DO_BUBBLE}" == "1" ]] && [[ "${DO_NU}" == "1" ]] && ( [[ "${DO_QEL}" == "1" ]] || [[ "${DO_PIPROD}" == "1" ]] ); then - FILE_EXISTS=0 - while [[ ${FILE_EXISTS} == 0 ]]; do - echo -e -n "Please specify the location of the BEBC muon neutrino mode input vector /path/to/file.root (leave blank to ignore this experiment)?\n" - read -e VECT_LOC - check_exist ${VECT_LOC} - done - if [[ ! "${VECT_LOC}" ]]; then - NUMU_PREFIX="#" - else - BEBC_NUMU_FILELOC=${VECT_LOC} - NUMU_PREFIX="" - fi -fi - -echo -e "\n#### BEBC" >> ${OUTPUTCARDFILE} -echo -e "### QE-like\n" >> ${OUTPUTCARDFILE} - -echo "${NUMU_PREFIX}${QEL_PREFIX}sample BEBC_CCQE_XSec_1DQ2_nu ${GEN_TAG}${BEBC_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} - -echo -e "\n### 1Pi" >> ${OUTPUTCARDFILE} -echo -e "## numu\n" >> ${OUTPUTCARDFILE} - -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample BEBC_CC1ppip_XSec_1DEnu_nu ${GEN_TAG}${BEBC_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample BEBC_CC1ppip_XSec_1DQ2_nu ${GEN_TAG}${BEBC_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample BEBC_CC1npip_XSec_1DEnu_nu ${GEN_TAG}${BEBC_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample BEBC_CC1npip_XSec_1DQ2_nu ${GEN_TAG}${BEBC_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample BEBC_CC1pi0_XSec_1DEnu_nu ${GEN_TAG}${BEBC_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample BEBC_CC1pi0_XSec_1DQ2_nu ${GEN_TAG}${BEBC_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} - -BEBC_NUMUB_FILELOC="_BEBC_NUMUB_INPUT_FILE_" -NUMUB_PREFIX="#" -if [[ "${DO_BUBBLE}" == "1" ]] && [[ "${DO_NUB}" == "1" ]] && [[ "${DO_PIPROD}" == "1" ]]; then - FILE_EXISTS=0 - while [[ ${FILE_EXISTS} == 0 ]]; do - echo -e -n "Please specify the location of the BEBC muon anti-neutrino mode input vector /path/to/file.root (leave blank to ignore this experiment)?\n" - read -e VECT_LOC - check_exist ${VECT_LOC} - done - if [[ ! "${VECT_LOC}" ]]; then - NUMUB_PREFIX="#" - else - BEBC_NUMUB_FILELOC=${VECT_LOC} - NUMUB_PREFIX="" - fi -fi - -echo -e "\n## numubar\n" >> ${OUTPUTCARDFILE} - -echo "${NUMUB_PREFIX}${PIPROD_PREFIX}sample BEBC_CC1npim_XSec_1DEnu_antinu ${GEN_TAG}${BEBC_NUMUB_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMUB_PREFIX}${PIPROD_PREFIX}sample BEBC_CC1npim_XSec_1DQ2_antinu ${GEN_TAG}${BEBC_NUMUB_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMUB_PREFIX}${PIPROD_PREFIX}sample BEBC_CC1ppim_XSec_1DEnu_antinu ${GEN_TAG}${BEBC_NUMUB_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMUB_PREFIX}${PIPROD_PREFIX}sample BEBC_CC1ppim_XSec_1DQ2_antinu ${GEN_TAG}${BEBC_NUMUB_FILELOC}" >> ${OUTPUTCARDFILE} - - -GGM_NUMU_FILELOC="_GGM_NUMU_INPUT_FILE_" -NUMU_PREFIX="#" -if [[ "${DO_BUBBLE}" == "1" ]] && [[ "${DO_NU}" == "1" ]] && [[ "${DO_PIPROD}" == "1" ]]; then - FILE_EXISTS=0 - while [[ ${FILE_EXISTS} == 0 ]]; do - echo -e -n "Please specify the location of the Gargarmelle muon neutrino mode input vector /path/to/file.root (leave blank to ignore this experiment)?\n" - read -e VECT_LOC - check_exist ${VECT_LOC} - done - if [[ ! "${VECT_LOC}" ]]; then - NUMU_PREFIX="#" - else - GGM_NUMU_FILELOC=${VECT_LOC} - NUMU_PREFIX="" - fi -fi - -echo -e "\n#### Gargarmelle" >> ${OUTPUTCARDFILE} -echo -e "### 1Pi\n" >> ${OUTPUTCARDFILE} - -echo "${NUMU_PREFIX}${QEL_PREFIX}sample GGM_CC1ppip_XSec_1DEnu_nu ${GEN_TAG}${GGM_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${QEL_PREFIX}sample GGM_CC1ppip_Evt_1DQ2_nu ${GEN_TAG}${GGM_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} - - -################## Nuclear - -ARGONEUT_NUMU_FILELOC="_ARGONEUT_NUMU_INPUT_FILE_" -NUMU_PREFIX="#" -if [[ "${DO_NUCLEAR}" == "1" ]] && [[ "${DO_NU}" == "1" ]] && [[ "${DO_CCINC}" == "1" ]]; then - FILE_EXISTS=0 - while [[ ${FILE_EXISTS} == 0 ]]; do - echo -e -n "Please specify the location of the ArgoNeuT muon neutrino mode input vector /path/to/file.root (leave blank to ignore this experiment)?\n" - read -e VECT_LOC - check_exist ${VECT_LOC} - done - if [[ ! "${VECT_LOC}" ]]; then - NUMU_PREFIX="#" - else - ARGONEUT_NUMU_FILELOC=${VECT_LOC} - NUMU_PREFIX="" - fi -fi - -echo -e "\n#### ArgoNeuT" >> ${OUTPUTCARDFILE} -echo "### CCINC" >> ${OUTPUTCARDFILE} -echo -e "## numu\n" >> ${OUTPUTCARDFILE} - -echo "${NUMU_PREFIX}${CCINC_PREFIX}sample ArgoNeuT_CCInc_XSec_1Dpmu_nu ${GEN_TAG}${ARGONEUT_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${CCINC_PREFIX}sample ArgoNeuT_CCInc_XSec_1Dthetamu_nu ${GEN_TAG}${ARGONEUT_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} - - -ARGONEUT_NUMUB_FILELOC="_ARGONEUT_NUMUB_INPUT_FILE_" -NUMUB_PREFIX="#" -if [[ "${DO_NUCLEAR}" == "1" ]] && [[ "${DO_NUB}" == "1" ]] && [[ "${DO_CCINC}" == "1" ]]; then - FILE_EXISTS=0 - while [[ ${FILE_EXISTS} == 0 ]]; do - echo -e -n "Please specify the location of the ArgoNeuT muon anti-neutrino mode input vector /path/to/file.root (leave blank to ignore this experiment)?\n" - read -e VECT_LOC - check_exist ${VECT_LOC} - done - if [[ ! "${VECT_LOC}" ]]; then - NUMUB_PREFIX="#" - else - ARGONEUT_NUMUB_FILELOC=${VECT_LOC} - NUMUB_PREFIX="" - fi -fi - -echo -e "\n## numubar\n" >> ${OUTPUTCARDFILE} - -echo "${NUMUB_PREFIX}${CCINC_PREFIX}sample ArgoNeuT_CCInc_XSec_1Dpmu_antinu ${GEN_TAG}${ARGONEUT_NUMUB_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMUB_PREFIX}${CCINC_PREFIX}sample ArgoNeuT_CCInc_XSec_1Dthetamu_antinu ${GEN_TAG}${ARGONEUT_NUMUB_FILELOC}" >> ${OUTPUTCARDFILE} - - - -MB_NUMU_FILELOC="_MB_NUMU_INPUT_FILE_" -NUMU_PREFIX="#" -if [[ "${DO_NUCLEAR}" == "1" ]] && [[ "${DO_NU}" == "1" ]] && ( [[ "${DO_QEL}" == "1" ]] || [[ "${DO_PIPROD}" == "1" ]] || [[ "${DO_NC}" == "1" ]] ); then - FILE_EXISTS=0 - while [[ ${FILE_EXISTS} == 0 ]]; do - echo -e -n "Please specify the location of the MiniBooNE muon neutrino mode input vector /path/to/file.root (leave blank to ignore this experiment)?\n" - read -e VECT_LOC - check_exist ${VECT_LOC} - done - if [[ ! "${VECT_LOC}" ]]; then - NUMU_PREFIX="#" - else - MB_NUMU_FILELOC=${VECT_LOC} - NUMU_PREFIX="" - fi -fi - -echo -e "\n#### MiniBooNE" >> ${OUTPUTCARDFILE} -echo "### QE-like" >> ${OUTPUTCARDFILE} -echo -e "## numu\n" >> ${OUTPUTCARDFILE} - -INP_VECT_COMMAND="${GEN_TAG}${MB_NUMU_FILELOC}" -MB_NUMUB_IN_NUMU_FILELOC="_MB_NUMUB_IN_NUMU_INPUT_FILE_" -NUMU_JOINT_PREFIX="#" -if [[ "${MB_NUMU_FILELOC}" != "_MB_NUMU_INPUT_FILE_" ]] && ( [[ "${GEN}" == "NEUT" ]] || [[ "${GEN}" == "GENIE" ]] ); then - FILE_EXISTS=0 - while [[ ${FILE_EXISTS} == 0 ]]; do - echo -e -n "For MiniBooNE CCQE(-like) samples when using NEUT or GENIE you " - echo -n "need to specify an input vector containing events generated with " - echo -n "the muon anti-neutrino contamination in the neutrino mode beam. " - echo -n "Where does it live? /path/to/file.root (leave blank to ignore this experiment)?\n" - read -e VECT_LOC - check_exist ${VECT_LOC} - done - if [[ ! "${VECT_LOC}" ]]; then - NUMU_JOINT_PREFIX="#" - else - MB_NUMUB_IN_NUMU_FILELOC=${VECT_LOC} - NUMU_JOINT_PREFIX="" - fi - INP_VECT_COMMAND="${GEN_TAG}(${MB_NUMU_FILELOC},${MB_NUMUB_IN_NUMU_FILELOC})" -elif [[ "${MB_NUMU_FILELOC}" != "_MB_NUMU_INPUT_FILE_" ]] && ( [[ "${GEN}" == "NUWRO" ]] || [[ "${GEN}" == "GIBUU" ]] ); then - NUMU_JOINT_PREFIX="" -fi - -echo "${NUMU_JOINT_PREFIX}${QEL_PREFIX}sample MiniBooNE_CCQE_XSec_1DQ2_nu ${INP_VECT_COMMAND}" >> ${OUTPUTCARDFILE} -echo "${NUMU_JOINT_PREFIX}${QEL_PREFIX}sample MiniBooNE_CCQELike_XSec_1DQ2_nu ${INP_VECT_COMMAND}" >> ${OUTPUTCARDFILE} -echo "${NUMU_JOINT_PREFIX}${QEL_PREFIX}sample MiniBooNE_CCQE_XSec_2DTcos_nu ${INP_VECT_COMMAND}" >> ${OUTPUTCARDFILE} -echo "${NUMU_JOINT_PREFIX}${QEL_PREFIX}sample MiniBooNE_CCQELike_XSec_2DTcos_nu ${INP_VECT_COMMAND}" >> ${OUTPUTCARDFILE} - - -MB_NUMUB_FILELOC="_MB_NUMUB_INPUT_FILE_" -NUMUB_PREFIX="#" -if [[ "${DO_NUCLEAR}" == "1" ]] && [[ "${DO_NUB}" == "1" ]] && ( [[ "${DO_QEL}" == "1" ]] || [[ "${DO_PIPROD}" == "1" ]] ); then - FILE_EXISTS=0 - while [[ ${FILE_EXISTS} == 0 ]]; do - echo -e -n "Please specify the location of the MiniBooNE muon anti-neutrino mode input vector /path/to/file.root (leave blank to ignore this experiment)?\n" - read -e VECT_LOC - check_exist ${VECT_LOC} - done - if [[ ! "${VECT_LOC}" ]]; then - NUMUB_PREFIX="#" - else - MB_NUMUB_FILELOC=${VECT_LOC} - NUMUB_PREFIX="" - fi -fi - -echo -e "\n## numubar\n" >> ${OUTPUTCARDFILE} - -INP_VECT_COMMAND="${GEN_TAG}${MB_NUMUB_FILELOC}" -MB_NUMU_IN_NUMUB_FILELOC="_MB_NUMU_IN_NUMUB_INPUT_FILE_" -NUMUB_JOINT_PREFIX="#" -if [[ "${MB_NUMUB_FILELOC}" != "_MB_NUMUB_INPUT_FILE_" ]] && ( [[ "${GEN}" == "NEUT" ]] || [[ "${GEN}" == "GENIE" ]] ); then - FILE_EXISTS=0 - while [[ ${FILE_EXISTS} == 0 ]]; do - echo -e -n "For MiniBooNE CCQE(-like) samples when using NEUT or GENIE you " - echo -n "need to specify an input vector containing events generated with " - echo -n "the muon neutrino contamination in the anti-neutrino mode beam. " - echo -n "Where does it live? /path/to/file.root (leave blank to ignore this experiment)?\n" - read -e VECT_LOC - check_exist ${VECT_LOC} - done - if [[ ! "${VECT_LOC}" ]]; then - NUMUB_JOINT_PREFIX="#" - else - MB_NUMU_IN_NUMUB_FILELOC=${VECT_LOC} - NUMUB_JOINT_PREFIX="" - fi - INP_VECT_COMMAND="${GEN_TAG}(${MB_NUMUB_FILELOC},${MB_NUMU_IN_NUMUB_FILELOC})" -elif [[ "${MB_NUMUB_FILELOC}" != "_MB_NUMUB_INPUT_FILE_" ]] && ( [[ "${GEN}" == "NUWRO" ]] || [[ "${GEN}" == "GIBUU" ]] ); then - NUMUB_JOINT_PREFIX="" -fi - -echo "${NUMUB_JOINT_PREFIX}${QEL_PREFIX}sample MiniBooNE_CCQE_XSec_1DQ2_antinu ${INP_VECT_COMMAND}" >> ${OUTPUTCARDFILE} -echo "${NUMUB_JOINT_PREFIX}${QEL_PREFIX}sample MiniBooNE_CCQELike_XSec_1DQ2_antinu ${INP_VECT_COMMAND}" >> ${OUTPUTCARDFILE} -echo "${NUMUB_JOINT_PREFIX}${QEL_PREFIX}sample MiniBooNE_CCQE_XSec_2DTcos_antinu ${INP_VECT_COMMAND}" >> ${OUTPUTCARDFILE} -echo "${NUMUB_JOINT_PREFIX}${QEL_PREFIX}sample MiniBooNE_CCQELike_XSec_2DTcos_antinu ${INP_VECT_COMMAND}" >> ${OUTPUTCARDFILE} - -echo -e "\n### CC1Pi\n" >> ${OUTPUTCARDFILE} - -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MiniBooNE_CC1pip_XSec_1DEnu_nu ${GEN_TAG}${MB_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MiniBooNE_CC1pip_XSec_1DQ2_nu ${GEN_TAG}${MB_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MiniBooNE_CC1pip_XSec_1DTpi_nu ${GEN_TAG}${MB_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MiniBooNE_CC1pip_XSec_1DTu_nu ${GEN_TAG}${MB_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MiniBooNE_CC1pip_XSec_2DQ2Enu_nu ${GEN_TAG}${MB_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MiniBooNE_CC1pip_XSec_2DTpiCospi_nu ${GEN_TAG}${MB_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MiniBooNE_CC1pip_XSec_2DTpiEnu_nu ${GEN_TAG}${MB_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MiniBooNE_CC1pip_XSec_2DTuCosmu_nu ${GEN_TAG}${MB_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MiniBooNE_CC1pip_XSec_2DTuEnu_nu ${GEN_TAG}${MB_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MiniBooNE_CC1pi0_XSec_1DEnu_nu ${GEN_TAG}${MB_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MiniBooNE_CC1pi0_XSec_1DQ2_nu ${GEN_TAG}${MB_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MiniBooNE_CC1pi0_XSec_1DTu_nu ${GEN_TAG}${MB_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MiniBooNE_CC1pi0_XSec_1Dcosmu_nu ${GEN_TAG}${MB_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MiniBooNE_CC1pi0_XSec_1Dcospi0_nu ${GEN_TAG}${MB_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MiniBooNE_CC1pi0_XSec_1Dppi0_nu ${GEN_TAG}${MB_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} - -echo -e "\n### NCEL\n" >> ${OUTPUTCARDFILE} - -echo "#{NUMU_PREFIX}${QEL_PREFIX}${NC_PREFIX}sample MiniBooNE_NCEL_XSec_Treco_nu ${GEN_TAG}${MB_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} - - - - -MIN_NUMU_FILELOC="_MIN_NUMU_INPUT_FILE_" -NUMU_PREFIX="#" -if [[ "${DO_NUCLEAR}" == "1" ]] && [[ "${DO_NU}" == "1" ]] && ( [[ "${DO_QEL}" == "1" ]] || [[ "${DO_PIPROD}" == "1" ]] || [[ "${DO_CCINC}" == "1" ]] ); then - FILE_EXISTS=0 - while [[ ${FILE_EXISTS} == 0 ]]; do - echo -e -n "Please specify the location of the MINERvA muon neutrino mode input vector /path/to/file.root (leave blank to ignore this experiment)?\n" - read -e VECT_LOC - check_exist ${VECT_LOC} - done - if [[ ! "${VECT_LOC}" ]]; then - NUMU_PREFIX="#" - else - MIN_NUMU_FILELOC=${VECT_LOC} - NUMU_PREFIX="" - fi -fi - -echo -e "\n#### MINERvA" >> ${OUTPUTCARDFILE} -echo "### QE-like" >> ${OUTPUTCARDFILE} -echo -e "## numu\n" >> ${OUTPUTCARDFILE} - -echo "${NUMU_PREFIX}${QEL_PREFIX}sample MINERvA_CCQE_XSec_1DQ2_nu ${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${QEL_PREFIX}sample MINERvA_CCQE_XSec_1DQ2_nu_20deg ${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${QEL_PREFIX}${OLD_PREFIX}sample MINERvA_CCQE_XSec_1DQ2_nu_oldflux ${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${QEL_PREFIX}${OLD_PREFIX}sample MINERvA_CCQE_XSec_1DQ2_nu_20deg_oldflux ${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${QEL_PREFIX}sample MINERvA_CC0pi_XSec_1DQ2_nu_proton ${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} - -echo -e "\n## nue\n" >> ${OUTPUTCARDFILE} -NUE_PREFIX="#" -echo "${NUE_PREFIX}${QEL_PREFIX}sample MINERvA_CC0pi_XSec_1DEe_nue ${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUE_PREFIX}${QEL_PREFIX}sample MINERvA_CC0pi_XSec_1DQ2_nue ${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUE_PREFIX}${QEL_PREFIX}sample MINERvA_CC0pi_XSec_1DThetae_nue ${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} - - -MIN_NUMUB_FILELOC="_MIN_NUMUB_INPUT_FILE_" -NUMUB_PREFIX="#" -if [[ "${DO_NUCLEAR}" == "1" ]] && [[ "${DO_NUB}" == "1" ]] && ( [[ "${DO_QEL}" == "1" ]] || [[ "${DO_PIPROD}" == "1" ]] ); then - FILE_EXISTS=0 - while [[ ${FILE_EXISTS} == 0 ]]; do - echo -e -n "Please specify the location of the MINERvA muon anti-neutrino mode input vector /path/to/file.root (leave blank to ignore this experiment)?\n" - read -e VECT_LOC - check_exist ${VECT_LOC} - done - if [[ ! "${VECT_LOC}" ]]; then - NUMUB_PREFIX="#" - else - MIN_NUMUB_FILELOC=${VECT_LOC} - NUMUB_PREFIX="" - fi -fi - -echo -e "\n## numubar\n" >> ${OUTPUTCARDFILE} - -echo "${NUMUB_PREFIX}${QEL_PREFIX}sample MINERvA_CCQE_XSec_1DQ2_antinu ${GEN_TAG}${MIN_NUMUB_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMUB_PREFIX}${QEL_PREFIX}sample MINERvA_CCQE_XSec_1DQ2_antinu_20deg ${GEN_TAG}${MIN_NUMUB_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMUB_PREFIX}${QEL_PREFIX}${OLD_PREFIX}sample MINERvA_CCQE_XSec_1DQ2_antinu_oldflux ${GEN_TAG}${MIN_NUMUB_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMUB_PREFIX}${QEL_PREFIX}${OLD_PREFIX}sample MINERvA_CCQE_XSec_1DQ2_antinu_20deg_oldflux ${GEN_TAG}${MIN_NUMUB_FILELOC}" >> ${OUTPUTCARDFILE} - -echo -e "\n## numu+numubar\n" >> ${OUTPUTCARDFILE} - -echo "${NUMU_PREFIX}${NUMUB_PREFIX}${QEL_PREFIX}sample MINERvA_CCQE_XSec_1DQ2_joint ${GEN_TAG}${MIN_NUMUB_FILELOC};${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${NUMUB_PREFIX}${QEL_PREFIX}sample MINERvA_CCQE_XSec_1DQ2_joint_20deg ${GEN_TAG}${MIN_NUMUB_FILELOC};${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${NUMUB_PREFIX}${QEL_PREFIX}${OLD_PREFIX}sample MINERvA_CCQE_XSec_1DQ2_joint_oldflux ${GEN_TAG}${MIN_NUMUB_FILELOC};${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${NUMUB_PREFIX}${QEL_PREFIX}${OLD_PREFIX}sample MINERvA_CCQE_XSec_1DQ2_joint_20deg_oldflux ${GEN_TAG}${MIN_NUMUB_FILELOC};${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} - -echo -e "\n### CC1Pi" >> ${OUTPUTCARDFILE} -echo -e "## numu\n" >> ${OUTPUTCARDFILE} - -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MINERvA_CC1pip_XSec_1DTpi_nu_20deg ${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MINERvA_CC1pip_XSec_1DTpi_nu ${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MINERvA_CC1pip_XSec_1Dth_nu_20deg ${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MINERvA_CC1pip_XSec_1Dth_nu ${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} - - -echo -e "\n## numubar\n" >> ${OUTPUTCARDFILE} - -echo "${NUMUB_PREFIX}${PIPROD_PREFIX}sample MINERvA_CC1pi0_XSec_1Dth_antinu ${GEN_TAG}${MIN_NUMUB_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMUB_PREFIX}${PIPROD_PREFIX}sample MINERvA_CC1pi0_XSec_1Dppi0_antinu_2015 ${GEN_TAG}${MIN_NUMUB_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMUB_PREFIX}${PIPROD_PREFIX}sample MINERvA_CC1pi0_XSec_1DTpi0_antinu_2016 ${GEN_TAG}${MIN_NUMUB_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMUB_PREFIX}${PIPROD_PREFIX}sample MINERvA_CC1pi0_XSec_1DQ2_antinu ${GEN_TAG}${MIN_NUMUB_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMUB_PREFIX}${PIPROD_PREFIX}sample MINERvA_CC1pi0_XSec_1Dthmu_antinu ${GEN_TAG}${MIN_NUMUB_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMUB_PREFIX}${PIPROD_PREFIX}sample MINERvA_CC1pi0_XSec_1Dpmu_antinu ${GEN_TAG}${MIN_NUMUB_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMUB_PREFIX}${PIPROD_PREFIX}sample MINERvA_CC1pi0_XSec_1DEnu_antinu ${GEN_TAG}${MIN_NUMUB_FILELOC}" >> ${OUTPUTCARDFILE} - -echo -e "\n### CCNPi" >> ${OUTPUTCARDFILE} -echo -e "#Full phase space\n" >> ${OUTPUTCARDFILE} - -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MINERvA_CCNpip_XSec_1Dth_nu_2016 ${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MINERvA_CCNpip_XSec_1DTpi_nu_2016 ${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}${OLD_PREFIX}sample MINERvA_CCNpip_XSec_1Dth_nu_2015 ${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}${OLD_PREFIX}sample MINERvA_CCNpip_XSec_1DTpi_nu_2015 ${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} - -echo -e "\n#Fiducial\n" >> ${OUTPUTCARDFILE} - -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MINERvA_CCNpip_XSec_1Dth_nu_20deg_2016 ${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MINERvA_CCNpip_XSec_1DTpi_nu_20deg_2016 ${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}${OLD_PREFIX}sample MINERvA_CCNpip_XSec_1Dth_nu_20deg_2015 ${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}${OLD_PREFIX}sample MINERvA_CCNpip_XSec_1DTpi_nu_20deg_2015 ${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} - -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MINERvA_CCNpip_XSec_1Dthmu_nu ${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MINERvA_CCNpip_XSec_1Dpmu_nu ${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MINERvA_CCNpip_XSec_1DQ2_nu ${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample MINERvA_CCNpip_XSec_1DEnu_nu ${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} - -echo -e "\n### CCInc\n" >> ${OUTPUTCARDFILE} - -DO_MINERVA_RATIOS=0 -if [[ "${MIN_NUMUB_FILELOC}" != "_MIN_NUMUB_INPUT_FILE_" ]] && [[ "${DO_NUCLEAR}" == "1" ]]; then - echo -e -n "Are you interested in looking at the MINERvA target ratio samples y/[n]? " - read MIN_RATIO - if [[ ! "${MIN_RATIO}" ]]; then - echo "[INFO]: Assuming No" - MIN_RATIO="n" - fi - parse_bool ${MIN_RATIO} - DO_MINERVA_RATIOS=${ISTRUE} -fi - -MIN_NUMU_FE_FILELOC="_MIN_NUMU_FE_INPUT_FILE_" -NUMU_FE_PREFIX="#" -if [[ "${DO_MINERVA_RATIOS}" == "1" ]] && [[ "${DO_NUCLEAR}" == "1" ]] && [[ "${DO_NU}" == "1" ]] && [[ "${DO_CCINC}" == "1" ]]; then - FILE_EXISTS=0 - while [[ ${FILE_EXISTS} == 0 ]]; do - echo -e -n "Please specify the location of the MINERvA iron-target muon neutrino mode input vector /path/to/file.root (leave blank to ignore this experiment)?\n" - read -e VECT_LOC - check_exist ${VECT_LOC} - done - if [[ ! "${VECT_LOC}" ]]; then - NUMU_FE_PREFIX="#" - else - MIN_NUMU_FE_FILELOC=${VECT_LOC} - NUMU_FE_PREFIX="" - fi -fi - -MIN_NUMU_PB_FILELOC="_MIN_NUMU_PB_INPUT_FILE_" -NUMU_PB_PREFIX="#" -if [[ "${DO_MINERVA_RATIOS}" == "1" ]] && [[ "${DO_NUCLEAR}" == "1" ]] && [[ "${DO_NU}" == "1" ]] && [[ "${DO_CCINC}" == "1" ]]; then - FILE_EXISTS=0 - while [[ ${FILE_EXISTS} == 0 ]]; do - echo -e -n "Please specify the location of the MINERvA lead-target muon neutrino mode input vector /path/to/file.root (leave blank to ignore this experiment)?\n" - read -e VECT_LOC - check_exist ${VECT_LOC} - done - if [[ ! "${VECT_LOC}" ]]; then - NUMU_PB_PREFIX="#" - else - MIN_NUMU_PB_FILELOC=${VECT_LOC} - NUMU_PB_PREFIX="" - fi -fi - -MIN_NUMU_C_FILELOC="_MIN_NUMU_C_INPUT_FILE_" -NUMU_C_PREFIX="#" -if [[ "${DO_MINERVA_RATIOS}" == "1" ]] && [[ "${DO_NUCLEAR}" == "1" ]] && [[ "${DO_NU}" == "1" ]] && [[ "${DO_CCINC}" == "1" ]]; then - FILE_EXISTS=0 - while [[ ${FILE_EXISTS} == 0 ]]; do - echo -e -n "Please specify the location of the MINERvA C12-target muon neutrino mode input vector /path/to/file.root (leave blank to ignore this experiment)?\n" - read -e VECT_LOC - check_exist ${VECT_LOC} - - ## Issue a warning if a separate C12-target file is not presented. - if [[ "${VECT_LOC}" == "${MIN_NUMU_FILELOC}" ]]; then - echo -e -n "[WARNING]: Your C12-target and main CH-target MINERvA input vectors are the same file. This will result in fully correlated uncertainties, would you like to continue? " - read CONT - parse_bool ${CONT} - if [[ "${ISTRUE}" != "1" ]]; then - FILE_EXISTS=0 - fi - fi - done - - if [[ ! "${VECT_LOC}" ]]; then - NUMU_C_PREFIX="#" - else - MIN_NUMU_C_FILELOC=${VECT_LOC} - NUMU_C_PREFIX="" - fi -fi - -echo "${NUMU_PREFIX}${CCINC_PREFIX}sample MINERvA_CCinc_XSec_2DEavq3_nu ${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} - -echo -e "\n## Target ratios\n" >> ${OUTPUTCARDFILE} - -echo "${NUMU_C_PREFIX}${CCINC_PREFIX}sample MINERvA_CCinc_XSec_1Dx_ratio_C12_CH ${GEN_TAG}${MIN_NUMU_C_FILELOC};${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_FE_PREFIX}${CCINC_PREFIX}sample MINERvA_CCinc_XSec_1Dx_ratio_Fe56_CH ${GEN_TAG}${MIN_NUMU_FE_FILELOC};${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PB_PREFIX}${CCINC_PREFIX}sample MINERvA_CCinc_XSec_1Dx_ratio_Pb208_CH ${GEN_TAG}${MIN_NUMU_PB_FILELOC};${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_C_PREFIX}${CCINC_PREFIX}sample MINERvA_CCinc_XSec_1DEnu_ratio_C12_CH ${GEN_TAG}${MIN_NUMU_C_FILELOC};${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_FE_PREFIX}${CCINC_PREFIX}sample MINERvA_CCinc_XSec_1DEnu_ratio_Fe56_CH ${GEN_TAG}${MIN_NUMU_FE_FILELOC};${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PB_PREFIX}${CCINC_PREFIX}sample MINERvA_CCinc_XSec_1DEnu_ratio_Pb208_CH ${GEN_TAG}${MIN_NUMU_PB_FILELOC};${GEN_TAG}${MIN_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} - - -T2K_NUMU_FILELOC="_T2K_NUMU_INPUT_FILE_" -NUMU_PREFIX="#" -if [[ "${DO_NUCLEAR}" == "1" ]] && [[ "${DO_NU}" == "1" ]] && ( [[ "${DO_QEL}" == "1" ]] || [[ "${DO_PIPROD}" == "1" ]] ); then - FILE_EXISTS=0 - while [[ ${FILE_EXISTS} == 0 ]]; do - echo -e -n "Please specify the location of the T2K muon neutrino mode input vector /path/to/file.root (leave blank to ignore this experiment)?\n" - read -e VECT_LOC - check_exist ${VECT_LOC} - done - if [[ ! "${VECT_LOC}" ]]; then - NUMU_PREFIX="#" - else - T2K_NUMU_FILELOC=${VECT_LOC} - NUMU_PREFIX="" - fi -fi - -echo -e "\n#### T2K" >> ${OUTPUTCARDFILE} -echo -e "### QE-like\n" >> ${OUTPUTCARDFILE} - -echo "#${NUMU_PREFIX}${QEL_PREFIX}sample T2K_CC0pi_XSec_2DPcos_nu_I ${GEN_TAG}${T2K_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${QEL_PREFIX}sample T2K_CC0pi_XSec_2DPcos_nu_II ${GEN_TAG}${T2K_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${QEL_PREFIX}sample T2K_CC0pinp_STV_XSec_1Ddpt_nu ${GEN_TAG}${T2K_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} - -echo -e "\n### CC1Pi\n" >> ${OUTPUTCARDFILE} - -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample T2K_CC1pip_CH_XSec_1Dpmu_nu ${GEN_TAG}${T2K_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample T2K_CC1pip_CH_XSec_1Dppi_nu ${GEN_TAG}${T2K_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample T2K_CC1pip_CH_XSec_1DQ2_nu ${GEN_TAG}${T2K_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample T2K_CC1pip_CH_XSec_1Dq3_nu ${GEN_TAG}${T2K_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample T2K_CC1pip_CH_XSec_1Dthmupi_nu ${GEN_TAG}${T2K_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample T2K_CC1pip_CH_XSec_1Dthpi_nu ${GEN_TAG}${T2K_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample T2K_CC1pip_CH_XSec_1Dthq3pi_nu ${GEN_TAG}${T2K_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} -echo "${NUMU_PREFIX}${PIPROD_PREFIX}sample T2K_CC1pip_CH_XSec_1DWrec_nu ${GEN_TAG}${T2K_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} - - -K2K_NUMU_FILELOC="_K2K_NUMU_INPUT_FILE_" -NUMU_PREFIX="#" -if [[ "${DO_NUCLEAR}" == "1" ]] && [[ "${DO_NU}" == "1" ]] && [[ "${DO_NC}" == "1" ]] && [[ "${DO_PIPROD}" == "1" ]]; then - FILE_EXISTS=0 - while [[ ${FILE_EXISTS} == 0 ]]; do - echo -e -n "Please specify the location of the K2K muon neutrino mode input vector /path/to/file.root (leave blank to ignore this experiment)?\n" - read -e VECT_LOC - check_exist ${VECT_LOC} - done - if [[ ! "${VECT_LOC}" ]]; then - NUMU_PREFIX="#" - else - K2K_NUMU_FILELOC=${VECT_LOC} - NUMU_PREFIX="" - fi -fi - -echo -e "\n#### K2K" >> ${OUTPUTCARDFILE} -echo -e "### NCPi\n" >> ${OUTPUTCARDFILE} - -echo "${NUMU_PREFIX}${PIPROD_PREFIX}${NC_PREFIX}sample K2K_NC1pi0_Evt_1Dppi0_nu ${GEN_TAG}${T2K_NUMU_FILELOC}" >> ${OUTPUTCARDFILE} - -echo "[INFO]: Your card has been written to ${OUTPUTCARDFILE}" diff --git a/scripts_old/nuissamples b/scripts_old/nuissamples deleted file mode 100755 index 7721fe5..0000000 --- a/scripts_old/nuissamples +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -for line in $(grep compare $NUISANCE/src/FCN/SampleList.cxx); do - if [[ $line != *"compare"* ]]; then - continue - fi - line=${line//\!name\.compare\(/} - line=${line//\(/} - line=${line//\)/} - line=${line//\"/} - line=${line//\{} - - if [[ $line != *"$1"* ]]; - then - continue - fi - - echo ${2}${line}${3} -done diff --git a/scripts_old/plotlimitdist.py b/scripts_old/plotlimitdist.py deleted file mode 100644 index cbb6134..0000000 --- a/scripts_old/plotlimitdist.py +++ /dev/null @@ -1,178 +0,0 @@ -from ROOT import * -from array import array -import sys - -def GetUID(name): - return name.replace("_" + name.split("_")[-1],"") -def GetValue(name): - return float(name.split("_")[-1]) - - -colorlist = [kGreen,kRed, kBlue, kOrange] - -infile = TFile(sys.argv[1], "READ") -alllimitdir = infile.Get("Limits") - -# Make starting legend -leg = TLegend(0.1,0.1,0.9,0.9) -alluidstyles = {} -alllines = [] - -c1 = TCanvas("c1","c1",1000,600) - -for dirkey in alllimitdir.GetListOfKeys(): - if dirkey.GetName() == "nominal": - linedata = TLine(0.1,0.1,0.9,0.9) - linedata.SetLineColor(kBlack) - leg.AddEntry(linedata, "DATA", "l") - alllines.append(linedata) - - linemc = TLine(0.1,0.1,0.9,0.9) - linemc.SetLineColor(kGreen) - leg.AddEntry(linemc, "Nominal MC", "l") - alllines.append(linemc) - alluidstyles["nominal"] = kGreen - - else: - uid = GetUID(dirkey.GetName()) - if uid not in alluidstyles: - alluidstyles[uid] = colorlist[len(alluidstyles)] - line = TLine(0.1,0.1,0.9,0.9) - line.SetLineColor( alluidstyles[uid] ) - leg.AddEntry(line, uid, "l") - alllines.append(line) - -leg.Draw() -gPad.Update() -c1.SaveAs("limitplots.pdf(") -gStyle.SetOptTitle(1) -c1.Clear() -c1.Divide(3,1) - -# Get Nominal -nomdir = infile.Get("Limits/nominal") -for plotkey in nomdir.GetListOfKeys(): - - # Only get data - if (not plotkey.GetName().endswith("_data")): continue - - # Get Plots - data = nomdir.Get(plotkey.GetName()) - datashape = nomdir.Get(plotkey.GetName()).Clone() - mc = nomdir.Get(plotkey.GetName().replace("data","MC")) - mcshape = nomdir.Get(plotkey.GetName().replace("data","MC_SHAPE")) - - if not data or not mc: continue - - # Draw nominal and data - c1.cd(1) - data.GetYaxis().SetRangeUser(0.0, data.GetMaximum()*1.5) - data.SetLineColor(kBlack) - data.SetLineWidth(3) - data.Draw("E1") - mc.SetLineColor(kGreen) - mc.SetLineWidth(3) - mc.Draw("SAME HIST") - alllimitmc = [] - - c1.cd(2) - datashape.GetYaxis().SetRangeUser(0.0, data.GetMaximum()*1.5) - datashape.SetLineColor(kBlack) - datashape.SetLineWidth(3) - datashape.SetTitle(datashape.GetName() + "_SHAPE") - datashape.Draw("E1") - mcshape.SetLineWidth(3) - mcshape.SetLineColor(kGreen) - mcshape.Draw("SAME HIST") - - likelihoodvals = {} - maxlike = 0.0 - minlike = 1.E9 - - - - # Loop through and get limit plots - for dirkey in alllimitdir.GetListOfKeys(): - if dirkey.GetName() == "nominal": continue - limitdir = alllimitdir.Get(dirkey.GetName()) - limitmc = limitdir.Get(plotkey.GetName().replace("_data","_MC")).Clone() - limitmcshape = limitdir.Get(plotkey.GetName().replace("_data","_MC_SHAPE")).Clone() - - print "Getting from key:", limitdir, limitmc - uid = GetUID(dirkey.GetName()) - if uid not in likelihoodvals: - likelihoodvals[uid] = [] - - limitmc.SetLineColor( alluidstyles[uid] ) - limitmc.SetLineWidth(1) - - limitmcshape.SetLineColor( alluidstyles[uid] ) - limitmcshape.SetLineWidth(1) - - c1.cd(1) - limitmc.Draw("SAME HIST C") - alllimitmc.append(limitmc) - - c1.cd(2) - limitmcshape.Draw("SAME HIST C") - alllimitmc.append(limitmcshape) - - xval = float(GetValue(dirkey.GetName())) - yval = float(limitmc.GetTitle()) - likelihoodvals[uid].append([xval,yval]) - - maxlike = max([maxlike, (float(limitmc.GetTitle()))]) - minlike = min([minlike, (float(limitmc.GetTitle()))]) - - - - #likelihoodvals["nominal"] = [[-1000, minlike], -# [1000, minlike]] -# alluidstyles["nominal"] = kGreen -# likelihoodvals["nominal2"] = [[1000, minlike+1.00], -# [-1000, minlike+1.00]] -# alluidstyles["nominal2"] = kGreen -# likelihoodvals["nominal3"] = [[-1000, minlike+7.82], -# [1000, minlike+7.82]] -# alluidstyles["nominal3"] = kGreen - - # Make like hist - c1.cd(3) - dif = (maxlike - minlike)/10.0 - allgr = [] - for i, uid in enumerate(sorted(likelihoodvals)): - print i, uid - xvals = [] - yvals = [] - for valset in sorted(likelihoodvals[uid]): - xvals.append(valset[0]) - yvals.append(valset[1]) - - - gr = TGraph(len(xvals), array('f',xvals), array('f',yvals)) - gr.SetTitle("Likelihood Scan about Nominal") - gr.SetLineColor( alluidstyles[uid] ) - - if "nominal" in uid: - gr.SetMarkerStyle(20) - gr.SetMarkerColor(kGreen) - if i == 0: - gr.Draw("APL") - else: gr.Draw("SAME PL") - - gr.GetYaxis().SetRangeUser(minlike - dif, maxlike + dif) - allgr.append(gr) - - c1.Update() - c1.SaveAs("limitplots.pdf") - -c1.SaveAs("limitplots.pdf)") - - - - - - - - - diff --git a/scripts_old/plotnuiscomp.py b/scripts_old/plotnuiscomp.py deleted file mode 100644 index 13369a1..0000000 --- a/scripts_old/plotnuiscomp.py +++ /dev/null @@ -1,175 +0,0 @@ -from ROOT import * -import os -import sys - - -gColorList = [kRed, kGreen, kBlue, kYellow, kOrange, kBlack] - -def DrawDataMC(keyname, filelist): - - # Extract Data - data = None - for readfile in filelist: - print keyname - data = readfile[0].Get(keyname) - if not data: continue - break - - if not data: - print "Data not found for : ", keyname - sys.exit(-1) - - # Main Data Formatting - data.SetTitle(keyname) - data.SetLineColor(kBlack) - data.SetLineWidth(2) - - # Extract MC - singlemclist = [] - singledatalist = [] - for i, mcfile in enumerate(allfiles): - - print mcfile[0] - # Extract individual MC - mckey = keyname.replace("_data","_MC") - singlemc = mcfile[0].Get(mckey) - if singlemc: - - singlemc = singlemc.Clone(mcfile[1]+"_MC") - singlemc.SetLineColor( gColorList[i] ) - singlemc.SetLineWidth(2) - singlemc.SetTitle( mcfile[1] + " (" + str(singlemc.GetTitle().strip()) + ") " ) - - singlemclist.append(singlemc.Clone()) - del singlemc - - # Extra individual data (optional) - singledata = mcfile[0].Get(keyname) - if singledata: - - singledata = singledata.Clone(mcfile[1] + "_DATA") - singledata.SetLineColor( kBlack ) - singledata.SetLineWidth(2) - singledata.SetTitle( "^-> Saved Data" ) - - singledatalist.append(singledata.Clone()) - del singledata - - - # Assign Ranges - miny = 99999.9 - maxy = 0.0 - for i in range(data.GetNbinsX()): - miny = min([data.GetBinContent(i+1) - data.GetBinError(i+1),miny]) - maxy = max([data.GetBinContent(i+1) + data.GetBinError(i+1),maxy]) - for singlemc in singlemclist: - miny = min([singlemc.GetMinimum(),miny]) - maxy = max([singlemc.GetMaximum(),maxy]) - for singledata in singledatalist: - miny = min([singledata.GetMinimum(),miny]) - maxy = max([singledata.GetMaximum(),maxy]) - widthy = maxy - miny - - # Assign Ranges to data - if "1D" in keyname: data.GetYaxis().SetRangeUser( miny - 0.1*widthy, maxy + 0.3*widthy) - elif "2D" in keyname: data.GetZaxis().SetRangeUser( miny - 0.1*widthy, maxy + 0.3*widthy) - - # Draw Plots 1D - if "1D" in keyname: - data.Draw("E1") - for mc in singlemclist: - mc.Draw("SAME HIST") - - # Draw Plots 2D - elif "2D" in keyname: - data.Draw("E1") - for mc in singlemclist: - mc.Draw("SAME LEGO") - - # Build Legend - leg = gPad.BuildLegend(0.45,0.65,0.8,0.85) - leg.SetFillStyle(0) - leg.SetFillColorAlpha(0,0.0) - leg.SetBorderSize(0) - - gStyle.SetOptTitle(1) - gPad.SetGridx(0) - gPad.SetGridy(0) - gPad.Update() - - singlemclist.append(data) - return singlemclist - - -if __name__=="__main__": - c1 = TCanvas("c1","c1",210*4,297*4) - c1.cd() - - - # Make filelist - allfiles = [] - - for i in xrange(2, len(sys.argv)): - print "Reading ", i, sys.argv[i] - - # split by comma - splitname = sys.argv[i].split(",") - - # Get First - if (os.path.isfile(splitname[0])): - - # Get File - newfile = (TFile(splitname[0],"READ")) - if not newfile: - print "File is not a ROOT file : ", splitname[0] - sys.exit() - - # Set Name - name = splitname[0].replace(".root","") - if len(splitname) > 1: - name = splitname[1] - - allfiles.append([newfile, name]) - - - print allfiles - - # Parse Unique Keys - uniquekeys = [] - for readfile in allfiles: - for readkey in readfile[0].GetListOfKeys(): - if not (readkey.GetName().endswith("_data")): continue - if readkey.GetName() not in uniquekeys: uniquekeys.append(readkey.GetName()) - - print uniquekeys - - # Setup First Page - leg = TLegend(0.1,0.1,0.9,0.9) - for i, readfile in enumerate(allfiles): - hist = TH1D(readfile[1],readfile[1],1,0,1) - hist.SetLineColor(gColorList[i % len(gColorList)]) - hist.SetLineWidth(2) - - leg.AddEntry(hist, readfile[1], "l") - - leg.Draw() - gPad.Update() - - - outputfile = sys.argv[1] - c1.Print(outputfile + "(") - - - # Loop through unique keys - for readkey in uniquekeys: - - # Draw - datamclist = DrawDataMC(readkey, allfiles) - - # Save - c1.Print(outputfile) - - # Now save the legend again to close... - leg.Draw() - gPad.Update() - gPad.Print(outputfile + ")") diff --git a/scripts_old/plotnuismin.py b/scripts_old/plotnuismin.py deleted file mode 100644 index 1ef01c7..0000000 --- a/scripts_old/plotnuismin.py +++ /dev/null @@ -1,273 +0,0 @@ -from ROOT import * -import os -import sys - - -gColorList = [kRed, kGreen, kBlue, kYellow, kOrange, kBlack] - -def DrawDataMC(keyname, filelist): - - # Extract Data - data = None - for readfile in filelist: - print keyname - data = readfile[0].Get(keyname) - if not data: continue - break - - if not data: - print "Data not found for : ", keyname - sys.exit(-1) - - # Main Data Formatting - data.SetTitle(keyname) - data.SetLineColor(kBlack) - data.SetLineWidth(2) - - # Extract MC - singlemclist = [] - singledatalist = [] - for i, mcfile in enumerate(allfiles): - - print mcfile[0] - # Extract individual MC - mckey = keyname.replace("_data","_MC") - singlemc = mcfile[0].Get(mckey) - if singlemc: - - singlemc = singlemc.Clone(mcfile[1]+"_MC") - singlemc.SetLineColor( gColorList[i] ) - singlemc.SetLineWidth(2) - singlemc.SetTitle( mcfile[1] + " (" + str(singlemc.GetTitle().strip()) + ") " ) - - singlemclist.append(singlemc.Clone()) - del singlemc - - # Extra individual data (optional) - singledata = mcfile[0].Get(keyname) - if singledata: - - singledata = singledata.Clone(mcfile[1] + "_DATA") - singledata.SetLineColor( kBlack ) - singledata.SetLineWidth(2) - singledata.SetTitle( "^-> Saved Data" ) - - singledatalist.append(singledata.Clone()) - del singledata - - - # Assign Ranges - miny = 99999.9 - maxy = 0.0 - for i in range(data.GetNbinsX()): - miny = min([data.GetBinContent(i+1) - data.GetBinError(i+1),miny]) - maxy = max([data.GetBinContent(i+1) + data.GetBinError(i+1),maxy]) - for singlemc in singlemclist: - miny = min([singlemc.GetMinimum(),miny]) - maxy = max([singlemc.GetMaximum(),maxy]) - for singledata in singledatalist: - miny = min([singledata.GetMinimum(),miny]) - maxy = max([singledata.GetMaximum(),maxy]) - widthy = maxy - miny - - # Assign Ranges to data - if "1D" in keyname: data.GetYaxis().SetRangeUser( miny - 0.1*widthy, maxy + 0.3*widthy) - elif "2D" in keyname: data.GetZaxis().SetRangeUser( miny - 0.1*widthy, maxy + 0.3*widthy) - - # Draw Plots 1D - if "1D" in keyname: - data.Draw("E1") - for mc in singlemclist: - mc.Draw("SAME HIST") - - # Draw Plots 2D - elif "2D" in keyname: - data.Draw("E1") - for mc in singlemclist: - mc.Draw("SAME LEGO") - - # Build Legend - leg = gPad.BuildLegend(0.45,0.65,0.8,0.85) - leg.SetFillStyle(0) - leg.SetFillColorAlpha(0,0.0) - leg.SetBorderSize(0) - - gStyle.SetOptTitle(1) - gPad.SetGridx(0) - gPad.SetGridy(0) - gPad.Update() - - singlemclist.append(data) - return singlemclist - -def DrawFitDialsPlot(allfiles): - - singlemclist = [] - singlelimitlist = [] - for i, mcfile in enumerate(allfiles): - - singlemc = mcfile[0].Get("fit_dials") - if not singlemc: continue - - # Setup fit result - singlemc = singlemc.Clone(mcfile[1]+"_FIT") - singlemc.SetLineColor( gColorList[i] ) - singlemc.SetFillColorAlpha( gColorList[i], 0.3 ) - singlemc.SetLineWidth(2) - singlemc.SetTitle( mcfile[1] ) - - singlemclist.append(singlemc.Clone()) - del singlemc - - # Setup Limits - singlestart = mcfile[0].Get("start_dials") - singlemin = mcfile[0].Get("min_dials") - singlemax = mcfile[0].Get("max_dials") - - print singlestart, singlemin, singlemax - - singlestart.SetLineColor(gColorList[i]) - singlestart.SetLineWidth(1) - singlestart.SetLineStyle(7) - singlelimitlist.append(singlestart.Clone()) - - singlemin.SetLineColor(gColorList[i]) - singlemin.SetLineWidth(2) - singlemin.SetLineStyle(5) - singlelimitlist.append(singlemin.Clone()) - - singlemax.SetLineColor(gColorList[i]) - singlemax.SetLineWidth(2) - singlemax.SetLineStyle(5) - singlelimitlist.append(singlemax.Clone()) - - - # Assign Ranges - miny = 99999.9 - maxy = 0.0 - - for singlemc in singlemclist: - miny = min([singlemc.GetMinimum(),miny]) - maxy = max([singlemc.GetMaximum(),maxy]) - for singlelimit in singlelimitlist: - miny = min([singlelimit.GetMinimum(),miny]) - maxy = max([singlelimit.GetMaximum(),maxy]) - - widthy = maxy - miny - - # Assign Ranges to data - data = singlemclist[0] - data.GetYaxis().SetRangeUser( miny - 0.1*widthy, maxy + 0.3*widthy) - - # Draw our limits - for i, mc in enumerate(singlemclist): - if i == 0: mc.Draw("E2") - else: mc.Draw("SAME E2") - - leg = gPad.BuildLegend(0.7,0.8,1.0,1.0) - - - for limit in singlelimitlist: - limit.Draw("SAME HIST") - - for mc in singlemclist: - mc.Draw("SAME E2") - - startline = TLine(0.6,0.6,0.8,0.8) - limitline = TLine(0.6,0.6,0.8,0.8) - startline.SetLineStyle(7) - limitline.SetLineStyle(5) - leg.AddEntry(startline, "Start", "l") - leg.AddEntry(limitline, "Limits", "l") - - linehists = [] - for mc in singlemclist: - mcline = mc.Clone() - mcline.SetFillStyle(0) - mcline.Draw("SAME HIST") - linehists.append(mcline) - - leg.Draw("SAME") - gPad.Update() - - - return [singlemclist, singlelimitlist, linehists, leg] - - - - - -if __name__=="__main__": - c1 = TCanvas("c1","c1",800,600) - c1.cd() - - - # Make filelist - allfiles = [] - - for i in xrange(2, len(sys.argv)): - print "Reading ", i, sys.argv[i] - - # split by comma - splitname = sys.argv[i].split(",") - - # Get First - if (os.path.isfile(splitname[0])): - - # Get File - newfile = (TFile(splitname[0],"READ")) - if not newfile: - print "File is not a ROOT file : ", splitname[0] - sys.exit() - - # Set Name - name = splitname[0].replace(".root","") - if len(splitname) > 1: - name = splitname[1] - - allfiles.append([newfile, name]) - - - print allfiles - - # Parse Unique Keys - uniquekeys = [] - for readfile in allfiles: - for readkey in readfile[0].GetListOfKeys(): - if not (readkey.GetName().endswith("_data")): continue - if readkey.GetName() not in uniquekeys: uniquekeys.append(readkey.GetName()) - - print uniquekeys - - # Setup First Page - leg = TLegend(0.1,0.1,0.9,0.9) - for i, readfile in enumerate(allfiles): - hist = TH1D(readfile[1],readfile[1],1,0,1) - hist.SetLineColor(gColorList[i % len(gColorList)]) - hist.SetLineWidth(2) - - leg.AddEntry(hist, readfile[1], "l") - - leg.Draw() - gPad.Update() - - - outputfile = sys.argv[1] - c1.Print(outputfile + "(") - - plotlist = DrawFitDialsPlot(allfiles) - c1.Print(outputfile) - - # Loop through unique keys - for readkey in uniquekeys: - - # Draw - datamclist = DrawDataMC(readkey, allfiles) - - # Save - c1.Print(outputfile) - - # Now save the legend again to close... - leg.Draw() - gPad.Update() - gPad.Print(outputfile + ")") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 68b52bd..fb3dbfe 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,19 +1,21 @@ add_subdirectory(config) add_subdirectory(event) add_subdirectory(exception) add_subdirectory(generator) add_subdirectory(input) add_subdirectory(parameters) add_subdirectory(persistency) add_subdirectory(plugins) add_subdirectory(samples) add_subdirectory(utility) add_subdirectory(variation) SET(INuADataComparisons_List ${INuADataComparisons_List} PARENT_SCOPE) SET(INuADataComparisons_FHiCL ${INuADataComparisons_FHiCL} PARENT_SCOPE) +SET(IeADataComparisons_List ${IeADataComparisons_List} PARENT_SCOPE) +SET(IeADataComparisons_FHiCL ${IeADataComparisons_FHiCL} PARENT_SCOPE) SET(GENERATOR_DEPENDENT_TARGETS ${GENERATOR_DEPENDENT_TARGETS} PARENT_SCOPE) add_subdirectory(tests) add_subdirectory(app) diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index 34feffb..3e13ba0 100644 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -1,15 +1,15 @@ -SET(APPS nuissamples nuiscomp nuisevsum nuisstudy) +SET(APPS nuissamples nuiscomp nuisevsum nuisstudy nuisflat) foreach(a ${APPS}) add_executable(${a} ${a}.cxx) target_link_libraries(${a} -Wl,--no-as-needed nuis_event nuis_input nuis_generator_utility nuis_utility_experimental nuis_utility nuis_config nuis_persistency nuis_plugins nuis_params nuis_variation) target_link_libraries(${a} ${GENERATOR_DEPENDENT_TARGETS} -Wl,--as-needed) target_link_libraries(${a} ${NUISANCE_LINK_DIRS}) target_link_libraries(${a} ${NUISANCE_DEPEND_LIBS}) if(NOT "${CMAKE_LINK_FLAGS}" STREQUAL "") set_target_properties(${a} PROPERTIES LINK_FLAGS ${CMAKE_LINK_FLAGS}) endif() install(TARGETS ${a} DESTINATION bin) endforeach() diff --git a/src/app/nuiscomp.cxx b/src/app/nuiscomp.cxx index ff37d81..9ef81b1 100644 --- a/src/app/nuiscomp.cxx +++ b/src/app/nuiscomp.cxx @@ -1,58 +1,122 @@ #include "config/GlobalConfiguration.hxx" -#include "input/IInputHandler.hxx" +#include "input/InputManager.hxx" #include "event/MinimalEvent.hxx" #include "samples/IDataComparison.hxx" #include "plugins/Instantiate.hxx" #include "exception/exception.hxx" #include "persistency/ROOTOutput.hxx" +#include "variation/WeightManager.hxx" + +#include "utility/StringUtility.hxx" + #include "fhiclcpp/make_ParameterSet.h" #include NEW_NUIS_EXCEPT(invalid_cli_arguments); +void SayUsage(char const *argv[]) { + std::cout << "[USAGE]: " << argv[0] + << "\n" + "\t-c : FHiCL file containing study " + "configuration. \n" + "\t-s : FHiCL key of a single sample " + "to run from the -c argument. \n" + "\t-o : Default output stream name " + "override, if unspecified mode will be 'CREATE'. \n" + << std::endl; +} + +std::string fhicl_file = ""; +std::string named_sample = ""; +std::string default_stream_override = ""; + +void handleOpts(int argc, char const *argv[]) { + int opt = 1; + while (opt < argc) { + if ((std::string(argv[opt]) == "-?") || + (std::string(argv[opt]) == "--help")) { + SayUsage(argv); + exit(0); + } else if (std::string(argv[opt]) == "-c") { + fhicl_file = argv[++opt]; + } else if (std::string(argv[opt]) == "-s") { + named_sample = argv[++opt]; + } else if (std::string(argv[opt]) == "-o") { + default_stream_override = argv[++opt]; + } else { + std::cout << "[ERROR]: Unknown option: " << argv[opt] << std::endl; + SayUsage(argv); + exit(1); + } + opt++; + } +} + int main(int argc, char const *argv[]) { nuis::config::EnsureConfigurationRead("nuis.global.config.fcl"); nuis::config::EnsureConfigurationRead("nuis.datacomparisons.fcl"); - if (argc != 2 || (std::string(argv[1]) == "-?") || - (std::string(argv[1]) == "--help")) { - throw invalid_cli_arguments() - << "[ERROR]: Expected to be passed a single FHiCL file name or " - "absolute or relative path. N.B. Files in the local directory must " - "be fully qualified like \"$ " - << argv[0] << " ./myconf.fcl\"."; + handleOpts(argc, argv); + + if (!fhicl_file.size()) { + SayUsage(argv); + throw invalid_cli_arguments(); } - nuis::config::EnsureConfigurationRead(argv[1]); + nuis::config::EnsureConfigurationRead(fhicl_file); - size_t NMax = nuis::config::GetDocument().get( - "nmax", std::numeric_limits::max()); + if (default_stream_override.size()) { + std::vector split = + nuis::utility::split(default_stream_override, ":"); + std::string open_mode = (split.size() > 1) ? split[1] : "CREATE"; - for (fhicl::ParameterSet const &samp_config : - nuis::config::GetDocument().get>( - "samples")) { + nuis::persistency::NewStream("default", split[0], open_mode); + } + + fhicl::ParameterSet const &global_config = nuis::config::GetDocument(); + size_t NMax = + global_config.get("nmax", std::numeric_limits::max()); + + std::vector samples; + if (named_sample.size()) { + samples.push_back(global_config.get(named_sample)); + } else { + samples = global_config.get>("samples"); + } + + if (global_config.has_key("weight_engines")) { + for (fhicl::ParameterSet const &we_ps : + global_config.get>( + "weight_engines")) { + nuis::variation::WeightManager::Get().EnsureWeightProviderLoaded(we_ps); + } + nuis::variation::WeightManager::Get().ReconfigureWeightEngines(); + } + + for (fhicl::ParameterSet const &samp_config : samples) { std::cout << "[INFO]: Reading sample: " << samp_config.get("name") << std::endl; nuis::plugins::plugin_traits::unique_ptr_t sample = nuis::plugins::Instantiate( samp_config.get("name")); sample->Initialize(samp_config); sample->ProcessSample(NMax); - std::cout << "[INFO]:\t Sample GOF = " << sample->GetGOF() << " / " - << sample->GetNDOGuess() << std::endl; sample->Write(); + + // Ensures no re-use of samples but cleans up the memory. + nuis::input::InputManager::Get().Clear(); } nuis::persistency::CloseOpenTFiles(); } diff --git a/src/app/nuisflat.cxx b/src/app/nuisflat.cxx new file mode 100644 index 0000000..5d36dad --- /dev/null +++ b/src/app/nuisflat.cxx @@ -0,0 +1,83 @@ +#include "config/GlobalConfiguration.hxx" + +#include "input/IInputHandler.hxx" + +#include "event/MinimalEvent.hxx" + +#include "samples/IEventProcessor.hxx" + +#include "plugins/Instantiate.hxx" + +#include "persistency/ROOTOutput.hxx" + +#include "exception/exception.hxx" + +#include "fhiclcpp/make_ParameterSet.h" +#include "string_parsers/from_string.hxx" + +#include + +NEW_NUIS_EXCEPT(invalid_cli_arguments); + +size_t NMax = std::numeric_limits::max(); +std::string input_file; +std::string input_type; + +void SayUsage(char const *argv[]) { + std::cout << "[USAGE]: " << argv[0] + << "\n" + "\t-i : Input file passed to named " + "IInputHandler instance \n" + "\t-H : Name of IInputHandler subclass " + "capable of reading NUISANCE events from the argument of -i.\n" + "\t-n : Maximum number of events to " + "read. Will read entire input file by default.\n" + << std::endl; +} + +void handleOpts(int argc, char const *argv[]) { + int opt = 1; + while (opt < argc) { + if ((std::string(argv[opt]) == "-?") || + (std::string(argv[opt]) == "--help")) { + SayUsage(argv); + exit(0); + } else if (std::string(argv[opt]) == "-i") { + input_file = argv[++opt]; + } else if (std::string(argv[opt]) == "-H") { + input_type = argv[++opt]; + } else if (std::string(argv[opt]) == "-n") { + NMax = fhicl::string_parsers::str2T(argv[++opt]); + } else { + std::cout << "[ERROR]: Unknown option: " << argv[opt] << std::endl; + SayUsage(argv); + exit(1); + } + opt++; + } +} + +int main(int argc, char const *argv[]) { + nuis::config::EnsureConfigurationRead("nuis.global.config.fcl"); + + handleOpts(argc, argv); + + if (!input_type.length() || !input_file.length()) { + SayUsage(argv); + throw invalid_cli_arguments() + << "[ERROR]: Require both -i and -H cli options to be passed."; + } + + fhicl::ParameterSet sample_config; + + sample_config.put("input_type", input_type); + sample_config.put("file", input_file); + + nuis::plugins::plugin_traits::unique_ptr_t VerboseEventSummary = + nuis::plugins::Instantiate("EventSummary_ECTJune2019"); + + VerboseEventSummary->Initialize(sample_config); + VerboseEventSummary->ProcessSample(NMax); + + nuis::persistency::CloseOpenTFiles(); +} diff --git a/src/app/nuissamples.cxx b/src/app/nuissamples.cxx index 4be6a8f..1f53d36 100644 --- a/src/app/nuissamples.cxx +++ b/src/app/nuissamples.cxx @@ -1,156 +1,210 @@ #include "config/GlobalConfiguration.hxx" #include "input/IInputHandler.hxx" #include "plugins/Instantiate.hxx" #include "samples/IDataComparison.hxx" #include "utility/StringUtility.hxx" #include #include #include #include std::string name_search_term = ".*"; bool strict_name_regex = false; std::string target_search_term = ".*"; bool strict_target_regex = false; +std::string flux_search_term = ".*"; +bool strict_flux_regex = false; + +std::string signal_search_term = ".*"; +bool strict_signal_regex = false; + std::string year_search_term = ".*"; std::string config_out_filename = ""; bool NameOnly = false; void SayUsage(char const *argv[]) { - std::cout << "[USAGE]: " << argv[0] - << "\n" - "\t-n,-N,-t,-T,-y : Filters known IDataComparisons by " - "the search term \n" - "\t (-n: Name, -t: Target, -y: Year). Capitalized versions \n" - "\t filter on exact match.\n" - "\t-o : Dump example sample configuration " - "file for matching \n" - "\t samples.\n" - "\t--name-only : Only write out matching sample " - "names. \n" - "\t (Still applies all search terms)\n" << std::endl; - + std::cout + << "[USAGE]: " << argv[0] + << "\n" + "\t-n,-N,-t,-T,-y, -s, -S, -f, -F : Filters known \n" + "\t IDataComparisons by the search term \n" + "\t (-n: Name, -t: Target, -y: Year, -s: Signal, -f Flux).\n" + "\t Capitalized versions filter on exact match.\n" + "\t-o : Dump example sample configuration " + "file for matching \n" + "\t samples.\n" + "\t--name-only : Only write out matching sample " + "names. \n" + "\t (Still applies all search terms)\n" + << std::endl; } void handleOpts(int argc, char const *argv[]) { int opt = 1; while (opt < argc) { if ((std::string(argv[opt]) == "-?") || (std::string(argv[opt]) == "--help")) { SayUsage(argv); exit(0); } else if (std::string(argv[opt]) == "-n") { name_search_term = argv[++opt]; } else if (std::string(argv[opt]) == "-N") { strict_name_regex = true; name_search_term = argv[++opt]; } else if (std::string(argv[opt]) == "-t") { target_search_term = argv[++opt]; } else if (std::string(argv[opt]) == "-T") { strict_target_regex = true; target_search_term = argv[++opt]; + } else if (std::string(argv[opt]) == "-s") { + signal_search_term = argv[++opt]; + } else if (std::string(argv[opt]) == "-S") { + strict_signal_regex = true; + signal_search_term = argv[++opt]; + } else if (std::string(argv[opt]) == "-f") { + flux_search_term = argv[++opt]; + } else if (std::string(argv[opt]) == "-F") { + strict_flux_regex = true; + flux_search_term = argv[++opt]; } else if (std::string(argv[opt]) == "-y") { year_search_term = argv[++opt]; } else if (std::string(argv[opt]) == "-o") { config_out_filename = argv[++opt]; } else if (std::string(argv[opt]) == "--name-only") { NameOnly = true; } else { std::cout << "[ERROR]: Unknown option: " << argv[opt] << std::endl; SayUsage(argv); exit(1); } opt++; } } NEW_NUIS_EXCEPT(invalid_output_file); int main(int argc, char const *argv[]) { nuis::config::EnsureConfigurationRead("nuis.global.config.fcl"); nuis::config::EnsureConfigurationRead("nuis.datacomparisons.fcl"); handleOpts(argc, argv); std::regex rpattern_name(strict_name_regex ? name_search_term : std::string(".*") + name_search_term + ".*"); std::regex rpattern_target( strict_target_regex ? target_search_term : std::string(".*") + target_search_term + ".*"); + std::regex rpattern_flux(strict_flux_regex + ? flux_search_term + : std::string(".*") + flux_search_term + ".*"); + std::regex rpattern_signal( + strict_signal_regex ? signal_search_term + : std::string(".*") + signal_search_term + ".*"); std::regex rpattern_year(std::string(".*") + year_search_term + ".*"); std::vector example_sample_configs; for (std::string const &comparison_set_key : nuis::config::GetDocument() .get("data_comparisons") .get_names()) { for (std::string const &sample_name : nuis::config::GetDocument().get>( std::string("data_comparisons.") + comparison_set_key)) { if (!std::regex_match(sample_name, rpattern_name)) { continue; } - nuis::plugins::plugin_traits::unique_ptr_t sample = - nuis::plugins::Instantiate(sample_name); - - if (!std::regex_match(sample->GetTargetMaterial(), rpattern_target)) { - continue; + fhicl::ParameterSet sample_global_config = + nuis::config::GetDocument().get( + std::string("global.sample_configuration.") + sample_name, + fhicl::ParameterSet{}); + + std::vector::unique_ptr_t> + samples; + + // If a single sample can produce multiple comparisons this can be used to + // report them as separate samples in the nuissamples list + if (sample_global_config.has_key("sub_samples")) { + for (fhicl::ParameterSet const &ss_ps : + sample_global_config.get>( + "sub_samples")) { + samples.push_back( + nuis::plugins::Instantiate(sample_name)); + samples.back()->Initialize(ss_ps); + } + } else { + samples.push_back( + nuis::plugins::Instantiate(sample_name)); } - if (!std::regex_match(sample->GetYear(), rpattern_year)) { - continue; - } - - std::cout << sample->Name() << std::endl; - if (!NameOnly) { - std::cout << "\tJournal: " << sample->GetJournalReference() - << std::endl; - std::cout << "\tDOI: " << sample->GetDOI() << std::endl; - std::cout << "\tYear: " << sample->GetYear() << std::endl; - std::cout << "\tTarget: " << sample->GetTargetMaterial() << std::endl; - std::cout << "\tFlux: " << sample->GetFluxDescription() << std::endl; - std::cout << "\tSignal: " << sample->GetSignalDescription() - << std::endl; - std::cout << "\tDocs: \n" - << nuis::utility::indent_apply_width( - sample->GetDocumentation(), 10) - << std::endl; - std::cout << "\tExample_Config: {\n" - << nuis::utility::indent_apply_width( - sample->GetExampleConfiguration().to_indented_string(), - 12) - << "\n\t}\n" - << std::endl; + for (auto &sample : samples) { + if (!std::regex_match(sample->GetTargetMaterial(), rpattern_target)) { + continue; + } + + if (!std::regex_match(sample->GetFluxDescription(), rpattern_flux)) { + continue; + } + + if (!std::regex_match(sample->GetSignalDescription(), + rpattern_signal)) { + continue; + } + + if (!std::regex_match(sample->GetYear(), rpattern_year)) { + continue; + } + + std::cout << sample->Name() << std::endl; + if (!NameOnly) { + std::cout << "\tJournal: " << sample->GetJournalReference() + << std::endl; + std::cout << "\tDOI: " << sample->GetDOI() << std::endl; + std::cout << "\tYear: " << sample->GetYear() << std::endl; + std::cout << "\tTarget: " << sample->GetTargetMaterial() << std::endl; + std::cout << "\tFlux: " << sample->GetFluxDescription() << std::endl; + std::cout << "\tSignal: " << sample->GetSignalDescription() + << std::endl; + std::cout << "\tDocs: \n" + << nuis::utility::indent_apply_width( + sample->GetDocumentation(), 10) + << std::endl; + std::cout + << "\tExample_Config: {\n" + << nuis::utility::indent_apply_width( + sample->GetExampleConfiguration().to_indented_string(), 12) + << "\n\t}\n" + << std::endl; + } + + example_sample_configs.push_back(sample->GetExampleConfiguration()); } - - example_sample_configs.push_back(sample->GetExampleConfiguration()); } } if (config_out_filename.length()) { std::ofstream out_file(config_out_filename); if (!out_file) { throw invalid_output_file() << "[ERROR]: Failed to open output file: " << std::quoted(config_out_filename); } fhicl::ParameterSet example_config; example_config.put("samples", example_sample_configs); out_file << example_config.to_indented_string(); } } diff --git a/src/app/nuisstudy.cxx b/src/app/nuisstudy.cxx index 5d1d199..23e5e12 100644 --- a/src/app/nuisstudy.cxx +++ b/src/app/nuisstudy.cxx @@ -1,112 +1,122 @@ #include "config/GlobalConfiguration.hxx" #include "input/InputManager.hxx" #include "event/MinimalEvent.hxx" #include "samples/IEventProcessor.hxx" #include "plugins/Instantiate.hxx" #include "exception/exception.hxx" #include "persistency/ROOTOutput.hxx" +#include "variation/WeightManager.hxx" + #include "utility/StringUtility.hxx" #include "fhiclcpp/make_ParameterSet.h" #include NEW_NUIS_EXCEPT(invalid_cli_arguments); void SayUsage(char const *argv[]) { std::cout << "[USAGE]: " << argv[0] << "\n" "\t-c : FHiCL file containing study " "configuration. \n" "\t-s : FHiCL key of a single sample " "to run from the -c argument. \n" "\t-o : Default output stream name " "override, if unspecified mode will be 'CREATE'. \n" << std::endl; } std::string fhicl_file = ""; std::string named_sample = ""; std::string default_stream_override = ""; void handleOpts(int argc, char const *argv[]) { int opt = 1; while (opt < argc) { if ((std::string(argv[opt]) == "-?") || (std::string(argv[opt]) == "--help")) { SayUsage(argv); exit(0); } else if (std::string(argv[opt]) == "-c") { fhicl_file = argv[++opt]; } else if (std::string(argv[opt]) == "-s") { named_sample = argv[++opt]; } else if (std::string(argv[opt]) == "-o") { default_stream_override = argv[++opt]; } else { std::cout << "[ERROR]: Unknown option: " << argv[opt] << std::endl; SayUsage(argv); exit(1); } opt++; } } int main(int argc, char const *argv[]) { nuis::config::EnsureConfigurationRead("nuis.global.config.fcl"); nuis::config::EnsureConfigurationRead("nuis.datacomparisons.fcl"); handleOpts(argc, argv); if (!fhicl_file.size()) { SayUsage(argv); throw invalid_cli_arguments(); } nuis::config::EnsureConfigurationRead(fhicl_file); if (default_stream_override.size()) { std::vector split = nuis::utility::split(default_stream_override, ":"); std::string open_mode = (split.size() > 1) ? split[1] : "CREATE"; nuis::persistency::NewStream("default", split[0], open_mode); } - size_t NMax = nuis::config::GetDocument().get( - "nmax", std::numeric_limits::max()); + fhicl::ParameterSet const &global_config = nuis::config::GetDocument(); + size_t NMax = + global_config.get("nmax", std::numeric_limits::max()); std::vector samples; if (named_sample.size()) { - samples.push_back( - nuis::config::GetDocument().get(named_sample)); + samples.push_back(global_config.get(named_sample)); } else { - samples = nuis::config::GetDocument().get>( - "samples"); + samples = global_config.get>("samples"); + } + + if (global_config.has_key("weight_engines")) { + for (fhicl::ParameterSet const &we_ps : + global_config.get>( + "weight_engines")) { + nuis::variation::WeightManager::Get().EnsureWeightProviderLoaded(we_ps); + } + nuis::variation::WeightManager::Get().ReconfigureWeightEngines(); } for (fhicl::ParameterSet const &samp_config : samples) { std::cout << "[INFO]: Reading sample: " << samp_config.get("name") << std::endl; nuis::plugins::plugin_traits::unique_ptr_t sample = nuis::plugins::Instantiate( samp_config.get("name")); sample->Initialize(samp_config); sample->ProcessSample(NMax); sample->Write(); // Ensures no re-use of samples but cleans up the memory. nuis::input::InputManager::Get().Clear(); } nuis::persistency::CloseOpenTFiles(); } diff --git a/src/event/FullEvent.cxx b/src/event/FullEvent.cxx index c058989..caad56a 100644 --- a/src/event/FullEvent.cxx +++ b/src/event/FullEvent.cxx @@ -1,54 +1,55 @@ #include "event/FullEvent.hxx" namespace nuis { namespace event { FullEvent::FullEvent() : MinimalEvent() { for (size_t status_it = 0; status_it < static_cast(Particle::Status_t::kNParticleStatus); ++status_it) { ParticleStack.push_back({static_cast(status_it), {}}); } } FullEvent::FullEvent(FullEvent &&other) : MinimalEvent(std::move(other)), ParticleStack(std::move(other.ParticleStack)) {} FullEvent &FullEvent::operator=(FullEvent &&other) { MinimalEvent::operator=(std::move(other)); ParticleStack = std::move(other.ParticleStack); return *this; } FullEvent FullEvent::Clone() const { FullEvent clone; clone.MinimalEvent::operator=(MinimalEvent::Clone()); clone.ParticleStack = ParticleStack; return clone; } void FullEvent::ClearParticleStack() { for (auto &status_stack : ParticleStack) { status_stack.particles.clear(); } } std::string FullEvent::to_string() const { std::stringstream ss(""); ss << "Event: Interaction mode = " << mode << ", probe: { PDG: " << probe_pdg << ", Energy: " << probe_E << " MeV }." << std::endl; for (auto &status_stack : ParticleStack) { ss << "\t[" << status_stack.status << "]" << std::endl; for (Particle const &part : status_stack.particles) { ss << "\t\t{ PDG: " << part.pdg << ", P3: [ " << part.P4[0] << ", " << part.P4[1] << ", " << part.P4[2] << "], E: " << part.P4[3] - << ", M: " << part.P4.M() << " }" << std::endl; + << ", ang: " << part.P4.Theta() << ", M: " << part.P4.M() << " }" + << std::endl; } } ss << std::endl; return ss.str(); } } // namespace event } // namespace nuis diff --git a/src/generator/variation/NEUTWeightEngine.cxx b/src/generator/variation/NEUTWeightEngine.cxx index e2b6db6..a8baff8 100644 --- a/src/generator/variation/NEUTWeightEngine.cxx +++ b/src/generator/variation/NEUTWeightEngine.cxx @@ -1,120 +1,121 @@ #include "generator/variation/NEUTWeightEngine.hxx" #include "generator/variation/FillNEUTCommons.hxx" #include "fhiclcpp/ParameterSet.h" #include "event/MinimalEvent.hxx" // NEUT Engine includes #include "NReWeight.h" #include "NReWeightCasc.h" #include "NReWeightNuXSecCCQE.h" #include "NReWeightNuXSecCCRES.h" #include "NReWeightNuXSecCOH.h" #include "NReWeightNuXSecDIS.h" #include "NReWeightNuXSecNC.h" #include "NReWeightNuXSecNCEL.h" #include "NReWeightNuXSecNCRES.h" #include "NReWeightNuXSecRES.h" #include "NReWeightNuclPiless.h" #include "NSystUncertainty.h" #include using namespace nuis; using namespace nuis::params; using namespace nuis::event; void NEUTWeightEngine::Initialize(fhicl::ParameterSet const &ps) { fNeutRW = std::make_unique(); TDirectory *dir = gDirectory; fNeutRW->AdoptWghtCalc("xsec_ccqe", new neut::rew::NReWeightNuXSecCCQE); fNeutRW->AdoptWghtCalc("xsec_res", new neut::rew::NReWeightNuXSecRES); fNeutRW->AdoptWghtCalc("xsec_ccres", new neut::rew::NReWeightNuXSecCCRES); fNeutRW->AdoptWghtCalc("xsec_coh", new neut::rew::NReWeightNuXSecCOH); fNeutRW->AdoptWghtCalc("xsec_dis", new neut::rew::NReWeightNuXSecDIS); fNeutRW->AdoptWghtCalc("xsec_ncel", new neut::rew::NReWeightNuXSecNCEL); fNeutRW->AdoptWghtCalc("xsec_nc", new neut::rew::NReWeightNuXSecNC); fNeutRW->AdoptWghtCalc("xsec_ncres", new neut::rew::NReWeightNuXSecNCRES); fNeutRW->AdoptWghtCalc("nucl_casc", new neut::rew::NReWeightCasc); fNeutRW->AdoptWghtCalc("nucl_piless", new neut::rew::NReWeightNuclPiless); dir->cd(); for (fhicl::ParameterSet param_ps : ps.get>("parameters")) { param_ps.put("type", GetName()); std::string const ¶m_name = param_ps.get("name"); NEUTSystParam nsp; nsp.nsyst = neut::rew::NSyst::FromString(param_name); if (nsp.nsyst == neut::rew::kNullSystematic) { throw invalid_NEUT_syst_name() << "[ERROR]: NReWeight failed to parse " << std::quoted(param_name) << " as a NEUT dial."; } fNeutRW->Systematics().Init(nsp.nsyst); nsp.pid = ParameterManager::Get().EnsureParameterRegistered(param_ps); fNEUTSysts.push_back(nsp); } Reconfigure(); } void NEUTWeightEngine::Reconfigure() { for (NEUTSystParam const &nsp : fNEUTSysts) { double val = ParameterManager::Get().GetParameterValue(nsp.pid); fNeutRW->Systematics().Set(nsp.nsyst, val); } fNeutRW->Reconfigure(); } double NEUTWeightEngine::GetEventWeight(nuis::event::MinimalEvent const &ev) { NeutVect const *nv = static_cast(ev.fGenEvent); if (!nv) { return 1.0; } NEUTUtils::FillNeutCommons(nv); return fNeutRW->CalcWeight(); } std::string NEUTWeightEngine::GetName() { return "NEUTWeightEngine"; } std::string NEUTWeightEngine::GetDocumentation() { return ""; } fhicl::ParameterSet NEUTWeightEngine::GetExampleConfiguration() { fhicl::ParameterSet ps; - ps.put("weight_engine_name", GetName()); + ps.put("name", GetName()); + ps.put("use_LMCPiBar_BgScl",false); fhicl::ParameterSet dial_maqe; - dial_maqe.put("name", "MAQE"); + dial_maqe.put("name", "MaCCQE"); dial_maqe.put("start", 0); dial_maqe.put("min", -3); dial_maqe.put("max", 3); dial_maqe.put("step", 0.1); fhicl::ParameterSet dial_mares; dial_mares.put("name", "MARES"); dial_mares.put("start", 0); dial_mares.put("min", -3); dial_mares.put("max", 3); dial_mares.put("step", 0.1); ps.put>( "parameters", std::vector{{dial_maqe, dial_mares}}); return ps; } -GeneratorManager::Generator_id_t NEUTWeightEngine::GetGeneratorId(){ +GeneratorManager::Generator_id_t NEUTWeightEngine::GetGeneratorId() { return GeneratorManager::Get().EnsureGeneratorRegistered("NEUT"); } DECLARE_PLUGIN(IWeightProvider, NEUTWeightEngine); diff --git a/src/parameters/ParameterManager.cxx b/src/parameters/ParameterManager.cxx index 4f39e47..330e5d5 100644 --- a/src/parameters/ParameterManager.cxx +++ b/src/parameters/ParameterManager.cxx @@ -1,146 +1,146 @@ #include "parameters/ParameterManager.hxx" #include "fhiclcpp/ParameterSet.h" namespace nuis { namespace params { ParameterManager::NamedParameter::NamedParameter() : name(""), type(""), value(kDefaultValue), start(kDefaultValue), min(kDefaultValue), max(kDefaultValue), step(kDefaultValue), Penalty([](double) -> double { return 0; }) {} ParameterManager::NamedParameter::NamedParameter(NamedParameter &&other) : name(std::move(other.name)), type(std::move(other.type)), value(other.value), start(other.start), min(other.min), max(other.max), step(other.step), Penalty(std::move(other.Penalty)) {} ParameterManager *ParameterManager::_global_inst = nullptr; ParameterManager::ParameterManager() : locked(false) {} ParameterManager &ParameterManager::Get() { if (!_global_inst) { _global_inst = new ParameterManager(); } return *_global_inst; } void ParameterManager::ValidateParamId(paramId_t pid) { if (pid >= Parameters.size()) { throw invalid_parameter_id() << "[ERROR]: Passed parameter id " << pid << ", but the ParameterManager only knows about " << Parameters.size() << " parameters."; } } void ParameterManager::LockParameterList() { locked = true; } void ParameterManager::UnlockParameterList() { locked = false; } paramId_t ParameterManager::EnsureParameterRegistered(fhicl::ParameterSet const &ps) { if (locked) { throw parameter_list_is_locked() << "[ERROR]: Attempted to register parameter: " << ps.to_string() << " when global ParameterManager was locked in state: " << StateString(); } NamedParameter np; np.name = ps.get("name"); np.type = ps.get("type"); paramId_t pid = GetParameterId(np.name, np.type); if (pid != kParamUnhandled) { return pid; } np.start = ps.get("start"); np.value = np.start; np.min = ps.get("min", kDefaultLimit); np.max = ps.get("max", kDefaultLimit); - np.step = ps.get("step"); + np.step = ps.get("step", 1); pid = Parameters.size(); Parameters.emplace_back(std::move(np)); return pid; } paramId_t ParameterManager::GetParameterId(std::string const &name, std::string const &type) { paramId_t pid = kParamUnhandled; for (size_t p_it = 0; p_it < Parameters.size(); ++p_it) { if (name != Parameters[p_it].name) { continue; } if (type.size() && (type != Parameters[p_it].type)) { continue; } // matches search, check if it is the first to match the search. if (pid != kParamUnhandled) { throw ambiguous_parameter_specified() << "[ERROR]: When searching for parameter by name-only, found at " "least two matching parameters: { PID: " << pid << ", name: " << Parameters[pid].name << ", type: " << Parameters[pid].type << " } and { PID: " << p_it << ", name: " << Parameters[p_it].name << ", type: " << Parameters[p_it].type << " }"; } pid = p_it; } return pid; } void ParameterManager::SetParameterValue(paramId_t pid, double val) { ValidateParamId(pid); if (!IsValidParameterValue(pid, val)) { throw param_value_out_of_bounds() << "[ERROR]: Attempting to set parameter { PID: " << pid << ", name: " << Parameters[pid].name << ", type: " << Parameters[pid].type << " } to " << val << ", but this is out of the allowed range [" << ((Parameters[pid].min == kDefaultLimit) ? "unbounded" : std::to_string(Parameters[pid].min)) << "," << ((Parameters[pid].max == kDefaultLimit) ? "unbounded" : std::to_string(Parameters[pid].max)) << "]"; } Parameters[pid].value = val; } double ParameterManager::GetParameterValue(paramId_t pid) { ValidateParamId(pid); return Parameters[pid].value; } double ParameterManager::GetParameterStep(paramId_t pid) { ValidateParamId(pid); return Parameters[pid].step; } double ParameterManager::GetParameterStart(paramId_t pid) { ValidateParamId(pid); return Parameters[pid].start; } double ParameterManager::GetParameterMin(paramId_t pid) { ValidateParamId(pid); return Parameters[pid].min; } double ParameterManager::GetParameterMax(paramId_t pid) { ValidateParamId(pid); return Parameters[pid].max; } bool ParameterManager::IsValidParameterValue(paramId_t pid, double val) { ValidateParamId(pid); return ( ((Parameters[pid].min == kDefaultLimit) || (Parameters[pid].min < val)) && ((Parameters[pid].max == kDefaultLimit) || (Parameters[pid].max > val))); } std::string ParameterManager::StateString() { return "Parameter Manager state:"; } } // namespace params } // namespace nuis diff --git a/src/persistency/ROOTOutput.hxx b/src/persistency/ROOTOutput.hxx index f88da22..2f1c650 100644 --- a/src/persistency/ROOTOutput.hxx +++ b/src/persistency/ROOTOutput.hxx @@ -1,80 +1,80 @@ -#ifndef PERSITENCY_ROOTOUTPUT_HXX_SEEN -#define PERSITENCY_ROOTOUTPUT_HXX_SEEN +#pragma once #include "exception/exception.hxx" +#include "utility/ROOTUtility.hxx" + #include "TFile.h" #include #include #include namespace nuis { namespace persistency { NEW_NUIS_EXCEPT(WriteToOutputFile_nullptr); /// Will get/open a TFile that is described in the global config /// /// The named streams will be used to configure the file name and open mode from /// the global config element persistency.: {file: output.root opts: /// CREATE} std::unique_ptr &GetOutputFile(std::string const &name = "default"); void NewStream(std::string const &name = "default", std::string file_name = "default.nuis.root", std::string opts = "CREATE"); template inline void WriteToOutputFile(T *object, std::string const &object_name, std::string dir_name = "", std::string const &file_name = "default") { if (!object) { throw WriteToOutputFile_nullptr(); } TDirectory *ogdir = gDirectory; std::unique_ptr &f = GetOutputFile(file_name); TDirectory *d = f.get(); while (dir_name.length()) { size_t next_slash = dir_name.find_first_of('/'); - std::string next_dir = dir_name.substr(0, next_slash); + std::string next_dir = + utility::SanitizeROOTObjectName(dir_name.substr(0, next_slash)); if (next_slash != std::string::npos) { dir_name = dir_name.substr(next_slash + 1); } else { dir_name = ""; } TDirectory *nd = d->GetDirectory(next_dir.c_str()); if (!nd) { nd = d->mkdir(next_dir.c_str()); } nd->cd(); d = nd; } - d->cd(); - object->Write(object_name.c_str(), TObject::kOverwrite); + d->WriteTObject(object, utility::SanitizeROOTObjectName(object_name).c_str(), + "overwrite"); if (ogdir) { ogdir->cd(); } } template inline void WriteToOutputFile(std::unique_ptr &object, std::string const &object_name, std::string dir_name = "", std::string const &file_name = "default") { return WriteToOutputFile(object.get(), object_name, dir_name, file_name); } void CloseOpenTFiles(); } // namespace persistency } // namespace nuis - -#endif diff --git a/src/plugins/Instantiate.hxx b/src/plugins/Instantiate.hxx index f4ce598..f5301a1 100644 --- a/src/plugins/Instantiate.hxx +++ b/src/plugins/Instantiate.hxx @@ -1,253 +1,252 @@ // Copyright 2018 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 . *******************************************************************************/ #pragma once #include "plugins/NamedSO.hxx" #include "plugins/traits.hxx" #include "config/GlobalConfiguration.hxx" #include "utility/FileSystemUtility.hxx" #include "utility/StringUtility.hxx" #include "exception/exception.hxx" #include "fhiclcpp/ParameterSet.h" #include "string_parsers/to_string.hxx" // linux #include #include #include #include #include #include #include // #define DEBUG_INSTANTIATE namespace nuis { namespace plugins { extern std::vector LoadedSharedObjects; NEW_NUIS_EXCEPT(failed_to_find_instantiator); NEW_NUIS_EXCEPT(malformed_plugin_interface); NEW_NUIS_EXCEPT(failed_to_load_so); typedef void *(*inst_fcn)(); typedef void (*dltr_fcn)(void *); template struct PluginInstantiator { std::string FQ_so_path; std::string Base_classname; std::string Classname; void *dllib; inst_fcn Instantiator; dltr_fcn Deleter; PluginInstantiator() : FQ_so_path(""), Base_classname(""), Classname(""), dllib(nullptr), Instantiator(nullptr), Deleter(nullptr) {} PluginInstantiator(PluginInstantiator const &) = delete; PluginInstantiator(PluginInstantiator &&other) { FQ_so_path = std::move(other.FQ_so_path); Base_classname = std::move(other.Base_classname); Classname = std::move(other.Classname); dllib = other.dllib; Instantiator = other.Instantiator; Deleter = other.Deleter; other.FQ_so_path = ""; other.Base_classname = ""; other.Classname = ""; other.dllib = nullptr; other.Instantiator = nullptr; other.Deleter = nullptr; } typename plugin_traits::unique_ptr_t Instantiate() { T *inst = reinterpret_cast((*Instantiator)()); dltr_fcn dltr = Deleter; std::string cln = Classname; std::function deleter = [=](T *inst) { #ifdef DEBUG_INSTANTIATE std::cout << "[INFO]: Deleting instance of " << cln << " with " << (void *)dltr << std::endl; #endif (*dltr)(inst); }; return typename plugin_traits::unique_ptr_t(inst, deleter); } }; NamedSO &GetSharedObject(std::string const &FQPath) { for (NamedSO &so : LoadedSharedObjects) { if (so.name == FQPath) { return so; } } NamedSO so; so.name = FQPath; so.dllib = dlopen(FQPath.c_str(), RTLD_NOW | RTLD_GLOBAL); char const *dlerr_cstr = dlerror(); std::string dlerr; if (dlerr_cstr) { dlerr = dlerr_cstr; } if (dlerr.length()) { throw failed_to_load_so() << "[INFO]: Failed to load shared object: " << FQPath << " with dlerror: " << dlerr; } else { #ifdef DEBUG_INSTANTIATE std::cout << "[INFO]: Loaded shared object " << FQPath << std::endl; #endif } LoadedSharedObjects.push_back(std::move(so)); return LoadedSharedObjects.back(); } template typename plugin_traits::unique_ptr_t Instantiate(std::string const &classname) { static std::vector> LoadedPlugins; + for (PluginInstantiator &plugin : LoadedPlugins) { + if ((plugin.Base_classname == plugin_traits::interface_name()) && + (plugin.Classname == classname)) { +#ifdef DEBUG_INSTANTIATE + std::cout << "[INFO]: Using already loaded PluginInstantiator" + << std::endl; +#endif + return plugin.Instantiate(); + } + } + fhicl::ParameterSet const &plugins = config::GetDocument().get("plugins"); fhicl::ParameterSet const &search_paths = plugins.get("search_paths"); std::vector plugin_search_dirs; // Look for plugin search paths in sequence elements of the // plugins.search_paths table for (std::string const &key : search_paths.get_names()) { if (!search_paths.is_key_to_sequence(key)) { continue; } for (std::string const &path : search_paths.get>(key)) { plugin_search_dirs.push_back(path); } } for (std::string path : plugin_search_dirs) { path = utility::EnsureTrailingSlash(path); for (std::string const &so_name : utility::GetMatchingFiles(path, ".*\\.so")) { - for (PluginInstantiator &plugin : LoadedPlugins) { - if (plugin.FQ_so_path == (path + so_name) && - (plugin.Base_classname == plugin_traits::interface_name()) && - (plugin.Classname == classname)) { -#ifdef DEBUG_INSTANTIATE - std::cout << "[INFO]: Using already loaded PluginInstantiator" - << std::endl; -#endif - return plugin.Instantiate(); - } - } - PluginInstantiator plugin; plugin.FQ_so_path = path + so_name; plugin.Base_classname = plugin_traits::interface_name(); plugin.Classname = classname; plugin.dllib = GetSharedObject(plugin.FQ_so_path).dllib; char const *dlerr_cstr = nullptr; std::string dlerr(""); plugin.Instantiator = reinterpret_cast(dlsym( plugin.dllib, plugin_traits::instantiator_function_name(classname).c_str())); dlerr_cstr = dlerror(); if (dlerr_cstr) { dlerr = dlerr_cstr; } if (dlerr_cstr) { #ifdef DEBUG_INSTANTIATE std::cout << "[INFO]: Failed to load appropriate instantiator method: " << plugin_traits::instantiator_function_name(classname) << " from shared object " << plugin.FQ_so_path << std::endl; #endif continue; } else { #ifdef DEBUG_INSTANTIATE std::cout << "[INFO]: Loaded instantiator method: " << plugin_traits::instantiator_function_name(classname) << " from shared object " << plugin.FQ_so_path << std::endl; #endif } plugin.Deleter = reinterpret_cast( dlsym(plugin.dllib, plugin_traits::deleter_function_name(classname).c_str())); dlerr_cstr = dlerror(); if (dlerr_cstr) { dlerr = dlerr_cstr; } if (dlerr_cstr) { throw malformed_plugin_interface() << "[ERROR]: Failed to load appropriate deleter method: " << plugin_traits::deleter_function_name(classname) << " from shared object " << plugin.FQ_so_path << " with error: " << std::quoted(dlerr); } else { #ifdef DEBUG_INSTANTIATE std::cout << "[INFO]: Loaded deleter method: " << plugin_traits::deleter_function_name(classname) << " from shared object " << plugin.FQ_so_path << std::endl; #endif } #ifdef DEBUG_INSTANTIATE std::cout << "[INFO]: Checking if shared object " << std::quoted(plugin.FQ_so_path) << " knows how to instantiate class " << std::quoted(classname) << " via interface " << std::quoted(plugin_traits::interface_name()) << std::endl; #endif LoadedPlugins.push_back(std::move(plugin)); return LoadedPlugins.back().Instantiate(); } } throw failed_to_find_instantiator() << "[ERROR]: Failed to find instantiator for classname: " << std::quoted(classname) << " using interface " << std::quoted(plugin_traits::interface_name()) << " from configured search paths: " << fhicl::string_parsers::T2Str>( plugin_search_dirs); } } // namespace plugins } // namespace nuis diff --git a/src/samples/CMakeLists.txt b/src/samples/CMakeLists.txt index c1a9654..279e235 100644 --- a/src/samples/CMakeLists.txt +++ b/src/samples/CMakeLists.txt @@ -1,25 +1,37 @@ set(samples_header_files IEventProcessor.hxx IDataComparison.hxx SimpleDataComparison.hxx MultiDataComparison.hxx SimpleMCStudy.hxx) install(FILES ${samples_header_files} DESTINATION include/samples) add_subdirectory(MCTools) add_subdirectory(nuA) +add_subdirectory(eA) cmessage(DEBUG "INuADataComparisons: ${INuADataComparisons}") SET(INuADataComparisons_List) -if(NOT IDataComparisons STREQUAL "") +if(NOT INuADataComparisons STREQUAL "") string(REPLACE ";" ", " INuADataComparisons_List "${INuADataComparisons}") endif() - cmessage(DEBUG "INuADataComparisons_List: ${INuADataComparisons_List}") SET(INuADataComparisons_List ${INuADataComparisons_List} PARENT_SCOPE) SET(INuADataComparisons_FHiCL ${INuADataComparisons_FHiCL} PARENT_SCOPE) + +cmessage(DEBUG "IeADataComparisons: ${IeADataComparisons}") + +SET(IeADataComparisons_List) +if(NOT IeADataComparisons STREQUAL "") + string(REPLACE ";" ", " IeADataComparisons_List "${IeADataComparisons}") +endif() +cmessage(DEBUG "IeADataComparisons_List: ${IeADataComparisons_List}") + + +SET(IeADataComparisons_List ${IeADataComparisons_List} PARENT_SCOPE) +SET(IeADataComparisons_FHiCL ${IeADataComparisons_FHiCL} PARENT_SCOPE) diff --git a/src/samples/MCTools/EventSummary_ECTJune2019.cxx b/src/samples/MCTools/EventSummary_ECTJune2019.cxx index d029fc5..6472385 100644 --- a/src/samples/MCTools/EventSummary_ECTJune2019.cxx +++ b/src/samples/MCTools/EventSummary_ECTJune2019.cxx @@ -1,311 +1,317 @@ // Copyright 2018 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 . *******************************************************************************/ //******************************************************************** #include "samples/SimpleMCStudy.hxx" +#include "variation/WeightManager.hxx" + #include "utility/EventTopologyUtility.hxx" #include "utility/FullEventUtility.hxx" #include "utility/InteractionChannelUtility.hxx" #include "utility/KinematicUtility.hxx" #include "utility/PDGCodeUtility.hxx" #include "utility/ROOTUtility.hxx" #include "utility/experimental/MINERvAUtility.hxx" #include "utility/experimental/T2KUtility.hxx" #include "persistency/ROOTOutput.hxx" using namespace nuis::event; using namespace nuis::utility; +using namespace nuis::variation; class EventSummary_ECTJune2019 : public SimpleMCStudy { TreeFile EvSumTree; struct EvSum { double e_nu; int pdg_nu; double e_fslep; double costheta_fslep; int pdg_fslep; double e_hmfsproton; double costheta_hmfsproton; double e_hmfspi; double costheta_hmfspi; int pdg_hmfspi; double dpt; double dat; double dphit; double dpt_mnv; double dat_mnv; double dphit_mnv; double pn_mnv; double q0; double q3; double dpn; double EAvailProxy; double Q2; double W_rec; int mode; int NFSPip; int NFSPim; int NFSPi0; int NFSProton; int NFSNeutron; int NFSGamma; int NFSKaon; int NFSOther; bool isCC; bool isQE; bool isQEL; bool is2p2h; bool isNucleonSPP; bool isCoh; bool isMultiPi; bool isDIS; bool isOtherChannel; bool is0Pi; bool is1Pi; bool isNPi; bool isOtherTopo; bool isT2K0Pi; bool isT2K1Pip_CH; bool isT2K_STV; bool isMINERvA0Pi; bool isMINERvA1CPi; bool isMINERvA1Pi0; bool isMINERvALowRecoil; bool isMINERvASTV; double xsweight; + double rwweight; }; EvSum es; public: EventSummary_ECTJune2019() { ReadGlobalConfigDefaults(); } void SetBranchAddresses() { EvSumTree->Branch("e_nu", &es.e_nu, "e_nu/D"); EvSumTree->Branch("pdg_nu", &es.pdg_nu, "pdg_nu/I"); EvSumTree->Branch("e_fslep", &es.e_fslep, "e_fslep/D"); EvSumTree->Branch("costheta_fslep", &es.costheta_fslep, "costheta_fslep/D"); EvSumTree->Branch("pdg_fslep", &es.pdg_fslep, "pdg_fslep/I"); EvSumTree->Branch("e_hmfsproton", &es.e_hmfsproton, "e_hmfsproton/D"); EvSumTree->Branch("costheta_hmfsproton", &es.costheta_hmfsproton, "costheta_hmfsproton/D"); EvSumTree->Branch("e_hmfspi", &es.e_hmfspi, "e_hmfspi/D"); EvSumTree->Branch("costheta_hmfspi", &es.costheta_hmfspi, "costheta_hmfspi/D"); EvSumTree->Branch("pdg_hmfspi", &es.pdg_hmfspi, "pdg_hmfspi/I"); EvSumTree->Branch("dpt", &es.dpt, "dpt/D"); EvSumTree->Branch("dat", &es.dat, "dat/D"); EvSumTree->Branch("dphit", &es.dphit, "dphit/D"); EvSumTree->Branch("dpt_mnv", &es.dpt_mnv, "dpt_mnv/D"); EvSumTree->Branch("dat_mnv", &es.dat_mnv, "dat_mnv/D"); EvSumTree->Branch("dphit_mnv", &es.dphit_mnv, "dphit_mnv/D"); EvSumTree->Branch("pn_mnv", &es.pn_mnv, "pn_mnv/D"); EvSumTree->Branch("q0", &es.q0, "q0/D"); EvSumTree->Branch("q3", &es.q3, "q3/D"); EvSumTree->Branch("EAvailProxy", &es.EAvailProxy, "EAvailProxy/D"); EvSumTree->Branch("Q2", &es.Q2, "Q2/D"); EvSumTree->Branch("W_rec", &es.W_rec, "W_rec/D"); EvSumTree->Branch("mode", &es.mode, "mode/I"); EvSumTree->Branch("NFSPip", &es.NFSPip, "NFSPip/I"); EvSumTree->Branch("NFSPim", &es.NFSPim, "NFSPim/I"); EvSumTree->Branch("NFSPi0", &es.NFSPi0, "NFSPi0/I"); EvSumTree->Branch("NFSProton", &es.NFSProton, "NFSProton/I"); EvSumTree->Branch("NFSNeutron", &es.NFSNeutron, "NFSNeutron/I"); EvSumTree->Branch("NFSGamma", &es.NFSGamma, "NFSGamma/I"); EvSumTree->Branch("NFSKaon", &es.NFSKaon, "NFSKaon/I"); EvSumTree->Branch("NFSOther", &es.NFSOther, "NFSOther/I"); EvSumTree->Branch("isCC", &es.isCC, "isCC/O"); EvSumTree->Branch("isQE", &es.isQE, "isQE/O"); EvSumTree->Branch("isQEL", &es.isQEL, "isQEL/O"); EvSumTree->Branch("is2p2h", &es.is2p2h, "is2p2h/O"); EvSumTree->Branch("isNucleonSPP", &es.isNucleonSPP, "isNucleonSPP/O"); EvSumTree->Branch("isCoh", &es.isCoh, "isCoh/O"); EvSumTree->Branch("isMultiPi", &es.isMultiPi, "isMultiPi/O"); EvSumTree->Branch("isDIS", &es.isDIS, "isDIS/O"); EvSumTree->Branch("isOtherChannel", &es.isOtherChannel, "isOtherChannel/O"); EvSumTree->Branch("is0Pi", &es.is0Pi, "is0Pi/O"); EvSumTree->Branch("is1Pi", &es.is1Pi, "is1Pi/O"); EvSumTree->Branch("isNPi", &es.isNPi, "isNPi/O"); EvSumTree->Branch("isOtherTopo", &es.isOtherTopo, "isOtherTopo/O"); EvSumTree->Branch("isT2K0Pi", &es.isT2K0Pi, "isT2K0Pi/O"); EvSumTree->Branch("isT2K1Pip_CH", &es.isT2K1Pip_CH, "isT2K1Pip_CH/O"); EvSumTree->Branch("isT2K_STV", &es.isT2K_STV, "isT2K_STV/O"); EvSumTree->Branch("isMINERvA0Pi", &es.isMINERvA0Pi, "isMINERvA0Pi/O"); EvSumTree->Branch("isMINERvA1CPi", &es.isMINERvA1CPi, "isMINERvA1CPi/O"); EvSumTree->Branch("isMINERvA1Pi0", &es.isMINERvA1Pi0, "isMINERvA1Pi0/O"); EvSumTree->Branch("isMINERvALowRecoil", &es.isMINERvALowRecoil, "isMINERvALowRecoil/O"); EvSumTree->Branch("isMINERvASTV", &es.isMINERvASTV, "isMINERvASTV/O"); EvSumTree->Branch("xsweight", &es.xsweight, "xsweight/D"); + EvSumTree->Branch("rwweight", &es.rwweight, "rwweight/D"); } void Initialize(fhicl::ParameterSet const &instance_sample_configuration) { // Perform any per-sample configuration in the base class SimpleMCStudy::Initialize(instance_sample_configuration); EvSumTree = AddNewTTreeToFile(nuis::persistency::GetOutputFile().get(), "ECTEvSumTree", write_directory); SetBranchAddresses(); //! Here you do whatever you want to do on a per-event basis. //! This method will be run for every event given by the input handler, the //! weight allows differential xsecs to be plotted easily and also contains //! any requested reweightable parameter variations. ProcessEventFunction = [&](nuis::event::FullEvent const &ev, double weight) -> void { Particle ISNu = GetHMISNeutralLepton(ev); if (!ISNu) { return; } Particle FSLep = GetHMFSLepton(ev); if (!FSLep) { return; } es.e_nu = ISNu.E(); es.pdg_nu = ISNu.pdg; es.e_fslep = FSLep.E(); es.costheta_fslep = FSLep.CosTheta(); es.pdg_fslep = FSLep.pdg; Particle FSPi = GetHMFSPion(ev); if (!FSPi) { es.e_hmfspi = 0; es.costheta_hmfspi = 0; es.pdg_hmfspi = 0; } else { es.e_hmfspi = FSPi.E(); es.costheta_hmfspi = FSPi.CosTheta(); es.pdg_hmfspi = FSPi.pdg; } Particle FSProton = GetHMFSProton(ev); if (!FSProton) { es.e_hmfsproton = 0; es.costheta_hmfsproton = 0; } else { es.e_hmfsproton = FSProton.E(); es.costheta_hmfsproton = FSProton.CosTheta(); } es.dpt = GetDeltaPT_CC0PiN(ev, ISNu.pdg).Mag(); es.dat = GetDeltaPhiT_CC0PiN(ev, ISNu.pdg); es.dphit = GetDeltaAlphaT_CC0PiN(ev, ISNu.pdg); es.dpt_mnv = mnv::GetDeltaPT_CC0PiN_mnv(ev).Mag(); es.dat_mnv = mnv::GetDeltaAlphaT_CC0PiN_mnv(ev); es.dphit_mnv = mnv::GetDeltaPhiT_CC0PiN_mnv(ev); es.pn_mnv = mnv::GetNeutronMomentumReco_CC0PiN_mnv(ev); es.EAvailProxy = GetEAvailProxy(ev); TLorentzVector EMTransfer_lep = GetEnergyMomentumTransfer(ev); es.Q2 = -EMTransfer_lep.Mag2(); es.q0 = EMTransfer_lep.E(); es.q3 = EMTransfer_lep.Vect().Mag(); es.W_rec = GetNeutrinoWRec(ev); es.mode = ChannelToInt(ev.mode); es.NFSPip = GetNParticles(ev, {pdgcodes::kPiPlus}); es.NFSPim = GetNParticles(ev, {pdgcodes::kPiMinus}); es.NFSPi0 = GetNParticles(ev, {pdgcodes::kPi0}); es.NFSProton = GetNParticles(ev, {pdgcodes::kProton}); es.NFSNeutron = GetNParticles(ev, {pdgcodes::kNeutron}); es.NFSGamma = GetNParticles(ev, {pdgcodes::kGamma}); es.NFSKaon = GetNParticles(ev, pdgcodes::Kaons); es.NFSOther = GetNFSOthers(ev) - (es.NFSGamma + es.NFSKaon); es.isCC = IsCC(ev.mode); es.isQE = IsQE(ev.mode); es.isQEL = IsQEL(ev.mode); es.is2p2h = Is2p2h(ev.mode); es.isNucleonSPP = IsNucleonSPP(ev.mode); es.isCoh = IsCoh(ev.mode); es.isMultiPi = IsMultiPi(ev.mode); es.isDIS = IsDIS(ev.mode); es.isOtherChannel = !(es.isQE || es.isQEL || es.is2p2h || es.isNucleonSPP || es.isCoh || es.isMultiPi || es.isDIS); size_t NPi = GetNFSPions(ev); size_t NOthers = GetNFSOthers(ev); es.is0Pi = (NPi == 0) && (!NOthers); es.is1Pi = (NPi == 1) && (!NOthers); es.isNPi = (NPi > 1) && (!NOthers); es.isOtherTopo = NOthers; es.isT2K0Pi = t2k::IsCC0Pi_NumProtons(ev).first; // Don't care about n protons es.isT2K1Pip_CH = t2k::IsCC1Pip_CH_RecPi(ev); es.isT2K_STV = t2k::IsCC0Pi_STV(ev); es.isMINERvA0Pi = mnv::IsCC0Pi_NumProtons(ev).first; // Don't care about n protons es.isMINERvA1CPi = mnv::IsCC1CPi_2017(ev); es.isMINERvA1Pi0 = mnv::IsCC1Pi0_2016(ev); es.isMINERvALowRecoil = mnv::IsCCIncLowRecoil(ev); es.isMINERvASTV = mnv::IsCC0PiNp_STV(ev); es.xsweight = weight; + es.rwweight = WeightManager::Get().GetEventWeight(ev); EvSumTree->Fill(); }; } std::string Name() { return "EventSummary_ECTJune2019"; } //! Here you can write any custom histograms to TTrees that your sample has //! been handling. void Write() {} }; //! These declarations allow your class to be loaded dynamically by NUISANCE DECLARE_PLUGIN(IEventProcessor, EventSummary_ECTJune2019); diff --git a/src/samples/MultiDataComparison.hxx b/src/samples/MultiDataComparison.hxx index cb9472c..86b495c 100644 --- a/src/samples/MultiDataComparison.hxx +++ b/src/samples/MultiDataComparison.hxx @@ -1,231 +1,233 @@ // Copyright 2018 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 . *******************************************************************************/ #pragma once #include "samples/IDataComparison.hxx" #include "event/FullEvent.hxx" #include "input/InputManager.hxx" #include "persistency/ROOTOutput.hxx" #include "utility/FileSystemUtility.hxx" #include "utility/HistogramUtility.hxx" #include "utility/KinematicUtility.hxx" #include "utility/ROOTUtility.hxx" #include "utility/StatsUtility.hxx" #include #include #include #include #include -///Wraps multiple projections of the same signal selection +/// Wraps multiple projections of the same signal selection class MultiDataComparison : public IDataComparison { NEW_NUIS_EXCEPT(invalid_MultiDataComparison_initialization); NEW_NUIS_EXCEPT(MultiDataComparison_already_finalized); protected: std::string fName; nuis::input::InputManager::Input_id_t fIH_id; - std::string write_directory; + std::string fWrite_directory; size_t NMaxSample_override; std::string fJournalReference; std::string fDOI; std::string fYear; std::string fTargetMaterial; std::string fFluxDescription; std::string fSignalDescription; std::function IsSigFunc; std::vector>> Comparisons; nuis::utility::KinematicRange energy_cut; public: MultiDataComparison(std::string name) { fName = std::move(name); fIH_id = std::numeric_limits::max(); - write_directory = ""; + fWrite_directory = ""; NMaxSample_override = std::numeric_limits::max(); fJournalReference = ""; fDOI = ""; fYear = ""; fTargetMaterial = ""; fFluxDescription = ""; fSignalDescription = ""; energy_cut = nuis::utility::KinematicRange{ std::numeric_limits::max(), std::numeric_limits::max()}; } std::string Name() { return fName; } fhicl::ParameterSet fGlobalConfig; fhicl::ParameterSet fInstanceConfig; void ReadGlobalConfigDefaults() { fGlobalConfig = nuis::config::GetDocument().get( std::string("global.sample_configuration.") + Name(), fhicl::ParameterSet()); if (!fJournalReference.length()) { fJournalReference = fGlobalConfig.get("journal_reference", "Not yet published"); } if (!fDOI.length()) { fDOI = fGlobalConfig.get("DOI", "Unknown DOI"); } if (!fYear.length()) { fYear = fGlobalConfig.get("year", "Unknown year"); } if (!fTargetMaterial.length()) { fTargetMaterial = fGlobalConfig.get( "target_material", "Unknown target material"); } if (!fFluxDescription.length()) { fFluxDescription = fGlobalConfig.get("flux_description", "Unknown flux"); } if (!fSignalDescription.length()) { fSignalDescription = fGlobalConfig.get("signal_description", "Unknown Signal"); } if ((energy_cut.first == std::numeric_limits::max()) && (fGlobalConfig.has_key("enu_range"))) { energy_cut = fGlobalConfig.get>("enu_range"); } } virtual std::string GetJournalReference() { return fJournalReference; } virtual std::string GetDOI() { return fDOI; } virtual std::string GetYear() { return fYear; } virtual std::string GetTargetMaterial() { return fTargetMaterial; } virtual std::string GetFluxDescription() { return fFluxDescription; } virtual std::string GetSignalDescription() { return fSignalDescription; } void Initialize(fhicl::ParameterSet const &instance_sample_configuration) { fInstanceConfig = instance_sample_configuration; SetSampleVerbosity(fInstanceConfig.get( "verbosity", nuis::config::GetDocument().get( "global.sample.verbosity_default", "Reticent"))); ReadGlobalConfigDefaults(); if (fInstanceConfig.has_key("verbosity")) { SetSampleVerbosity(fInstanceConfig.get("verbosity")); } NMaxSample_override = fInstanceConfig.get("nmax", std::numeric_limits::max()); - write_directory = - fInstanceConfig.get("write_directory", Name()); + if (!fWrite_directory.size()) { + fWrite_directory = + fInstanceConfig.get("write_directory", Name()); + } } void ProcessSample(size_t nmax = std::numeric_limits::max()) { if (fIH_id == std::numeric_limits::max()) { fIH_id = nuis::input::InputManager::Get().EnsureInputLoaded(fInstanceConfig); } IInputHandler const &IH = nuis::input::InputManager::Get().GetInputHandler(fIH_id); nmax = std::min(NMaxSample_override, nmax); size_t NEvsToProcess = std::min(nmax, IH.GetNEvents()); double nmax_scaling = double(IH.GetNEvents()) / double(NEvsToProcess); size_t NToShout = NEvsToProcess / 10; IEventProcessor_INFO("Sample " << std::quoted(Name()) << " processing " << NEvsToProcess << " events."); IInputHandler::ev_index_t ev_idx = 0; size_t NSig = 0; while (ev_idx < NEvsToProcess) { bool is_sig = false; nuis::event::FullEvent const &fev = IH.GetFullEvent(ev_idx); if (NToShout && !(ev_idx % NToShout)) { IEventProcessor_INFO("\tProcessed " << ev_idx << "/" << NEvsToProcess << " events."); } if (IsSigFunc(fev)) { NSig++; for (auto &comp : Comparisons) { comp.second->ProcessSignalEvent(fev, IH.GetEventWeight(ev_idx) * nmax_scaling); } } ev_idx++; } IEventProcessor_INFO("\t" << NSig << "/" << NEvsToProcess << " events passed selection."); } void Write() {} double GetGOF() { double totGOF = 0; for (auto const &comp : Comparisons) { double sGOF = comp.second->GetGOF(); if (sGOF != std::numeric_limits::max()) { totGOF += sGOF; } else { std::cout << "[WARN]: Projection \"" << comp.first << "\" of sample " << Name() << " produced bad GOF." << std::endl; } } return totGOF; } double GetNDOGuess() { size_t totNDOGuess = 0; for (auto const &comp : Comparisons) { totNDOGuess += comp.second->GetNDOGuess(); } return totNDOGuess; } fhicl::ParameterSet GetExampleConfiguration() { fhicl::ParameterSet exps; exps.put("name", Name()); exps.put("input_type", "NuWro/NEUT/GENIE"); exps.put("file", "input_events.root"); exps.put("write_directory", Name()); return exps; } }; diff --git a/src/samples/SimpleDataComparison.hxx b/src/samples/SimpleDataComparison.hxx index fbfb548..1af61a4 100644 --- a/src/samples/SimpleDataComparison.hxx +++ b/src/samples/SimpleDataComparison.hxx @@ -1,493 +1,497 @@ // Copyright 2018 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 . *******************************************************************************/ #pragma once #include "samples/IDataComparison.hxx" #include "event/FullEvent.hxx" #include "input/InputManager.hxx" #include "persistency/ROOTOutput.hxx" #include "utility/FileSystemUtility.hxx" #include "utility/HistogramUtility.hxx" #include "utility/KinematicUtility.hxx" #include "utility/ROOTUtility.hxx" #include "utility/StatsUtility.hxx" #include #include #include #include #include template ::type> class SimpleDataComparison : public IDataComparison { NEW_NUIS_EXCEPT(invalid_SimpleDataComparison_initialization); NEW_NUIS_EXCEPT(SimpleDataComparison_already_finalized); public: static size_t const NDim = nd; - std::string write_directory; + std::string fWrite_directory; protected: using HistType = HT; using TH_Help = typename nuis::utility::TH_Helper; nuis::input::InputManager::Input_id_t fIH_id; std::string fName; size_t NMaxSample_override; int fIsShapeOnly; int fIsFluxUnfolded; std::vector fSignalCache; std::vector> fProjectionCache; bool fUseCache; bool fModeHists; std::string fDataInputDescriptor; std::unique_ptr fData; std::string fMaskInputDescriptor; std::unique_ptr fMask; std::string fCovarianceInputDescriptor; std::unique_ptr fCovariance; std::unique_ptr fPrediction; std::map> fPrediction_modes; std::unique_ptr fPrediction_xsec; std::unique_ptr fPrediction_shape; std::unique_ptr fPrediction_comparison; bool fComparisonFinalized; std::string fJournalReference; std::string fDOI; std::string fYear; std::string fTargetMaterial; std::string fFluxDescription; std::string fSignalDescription; nuis::utility::KinematicRange energy_cut; std::function IsSigFunc; // If assigned by subclass will be called on for all events, bool signifies // whether the event was selected. std::function ProcessExtraFunc; public: std::function(nuis::event::FullEvent const &)> CompProjFunc; SimpleDataComparison(std::string name) { fName = std::move(name); fIH_id = std::numeric_limits::max(); fUseCache = false; - write_directory = ""; + fWrite_directory = ""; NMaxSample_override = std::numeric_limits::max(); fDataInputDescriptor = ""; fData = nullptr; fMaskInputDescriptor = ""; fMask = nullptr; fCovarianceInputDescriptor = ""; fCovariance = nullptr; fPrediction = nullptr; fPrediction_xsec = nullptr; fPrediction_shape = nullptr; fPrediction_comparison = nullptr; fComparisonFinalized = false; IsSigFunc = [](nuis::event::FullEvent const &) -> bool { return true; }; CompProjFunc = [](nuis::event::FullEvent const &) -> std::array { std::array arr; for (NumericT &el : arr) { el = 0; } return arr; }; ProcessExtraFunc = std::function(); fJournalReference = ""; fDOI = ""; fYear = ""; fTargetMaterial = ""; fFluxDescription = ""; fSignalDescription = ""; fIsShapeOnly = -1; fIsFluxUnfolded = -1; energy_cut = nuis::utility::KinematicRange{ std::numeric_limits::max(), std::numeric_limits::max()}; } std::string Name() { return fName; } void SetUseCache(bool uc = true) { fUseCache = uc; if (!uc) { fSignalCache.resize(0); fProjectionCache.resize(0); } } fhicl::ParameterSet fGlobalConfig; fhicl::ParameterSet fInstanceConfig; void ReadGlobalConfigDefaults() { fGlobalConfig = nuis::config::GetDocument().get( std::string("global.sample_configuration.") + Name(), fhicl::ParameterSet()); if (!fJournalReference.length()) { fJournalReference = fGlobalConfig.get("journal_reference", "Not yet published"); } if (!fDOI.length()) { fDOI = fGlobalConfig.get("DOI", "Unknown DOI"); } if (!fYear.length()) { fYear = fGlobalConfig.get("year", "Unknown year"); } if (!fTargetMaterial.length()) { fTargetMaterial = fGlobalConfig.get( "target_material", "Unknown target material"); } if (!fFluxDescription.length()) { fFluxDescription = fGlobalConfig.get("flux_description", "Unknown flux"); } if (!fSignalDescription.length()) { fSignalDescription = fGlobalConfig.get("signal_description", "Unknown Signal"); } if (fIsShapeOnly == -1) { fIsShapeOnly = fGlobalConfig.get("shape_only", false); } if (fIsFluxUnfolded == -1) { fIsFluxUnfolded = fGlobalConfig.get("flux_unfolded", false); } if ((energy_cut.first == std::numeric_limits::max()) && (fGlobalConfig.has_key("enu_range"))) { energy_cut = fGlobalConfig.get>("enu_range"); } } virtual std::string GetJournalReference() { return fJournalReference; } virtual std::string GetDOI() { return fDOI; } virtual std::string GetYear() { return fYear; } virtual std::string GetTargetMaterial() { return fTargetMaterial; } virtual std::string GetFluxDescription() { return fFluxDescription; } virtual std::string GetSignalDescription() { return fSignalDescription; } void SetShapeOnly(bool iso) { fIsShapeOnly = iso; } void SetFluxUnfolded(bool ifo) { fIsFluxUnfolded = ifo; } void SetData(std::string const &data_descriptor) { fDataInputDescriptor = data_descriptor; } void SetMask(std::string const &mask_descriptor) { fMaskInputDescriptor = mask_descriptor; } void SetCovariance(std::string const &cov_descriptor) { fCovarianceInputDescriptor = cov_descriptor; } virtual void FillProjection(std::array const &proj, NumericT event_weight) { TH_Help::Fill(fPrediction, proj, event_weight); } virtual void FillModeProjection(std::array const &proj, NumericT event_weight, nuis::event::Channel_t mode) { if (!fPrediction_modes.count(mode)) { std::stringstream ss; ss << "Prediction_" << mode; fPrediction_modes[mode] = nuis::utility::Clone(fPrediction, true, ss.str()); } TH_Help::Fill(fPrediction_modes[mode], proj, event_weight); } virtual void ProcessSignalEvent(nuis::event::FullEvent const &fev, double weight = 1) { auto const &proj = CompProjFunc(fev); FillProjection(proj, weight); if (fModeHists) { FillModeProjection(proj, weight, fev.mode); } } virtual void FinalizeComparison() { if (fComparisonFinalized) { throw SimpleDataComparison_already_finalized() << "[ERROR]: Attempted to re-finalize a comparison for " "SimpleDataComparison: " << std::quoted(Name()); } fPrediction_xsec = nuis::utility::Clone(fPrediction, false, "Prediction_xsec"); TH_Help::Scale(fPrediction_xsec, 1.0, "width"); if (fModeHists) { for (auto &mh : fPrediction_modes) { TH_Help::Scale(mh.second, 1.0, "width"); } } // If we have a flux cut if (energy_cut.first != std::numeric_limits::max()) { IInputHandler const &IH = nuis::input::InputManager::Get().GetInputHandler(fIH_id); TH_Help::Scale(fPrediction_xsec, IH.GetXSecScaleFactor(energy_cut)); } fPrediction_shape = nuis::utility::Clone(fPrediction_xsec, false, "Prediction_shape"); if (fData) { TH_Help::Scale(fPrediction_shape, TH_Help::Integral(fData, "width") / TH_Help::Integral(fPrediction_shape, "width")); } else { IEventProcessor_WARN( "When Finalizing comparison, no Data histogram available."); } if (fIsFluxUnfolded) { // fPrediction_comparison } else if (fIsShapeOnly) { fPrediction_comparison = nuis::utility::Clone(fPrediction_shape, false, "Prediction_comparison"); } else { fPrediction_comparison = nuis::utility::Clone(fPrediction_xsec, false, "Prediction_comparison"); } fComparisonFinalized = true; } void Initialize(fhicl::ParameterSet const &instance_sample_configuration) { fInstanceConfig = instance_sample_configuration; SetSampleVerbosity(fInstanceConfig.get( "verbosity", nuis::config::GetDocument().get( "global.sample.verbosity_default", "Reticent"))); ReadGlobalConfigDefaults(); - if (fInstanceConfig.has_key("fake_data")) { - fData = nuis::utility::GetHistogram( - fInstanceConfig.get("fake_data_histogram")); - } else if (!fGlobalConfig.get("has_data", true) || - !fInstanceConfig.get("has_data", true)) { - // Explicitly not expecting data - } else { - if (!fDataInputDescriptor.length()) { - if (!fGlobalConfig.has_key("data_descriptor")) { - throw invalid_SimpleDataComparison_initialization() - << "[ERROR]: SimpleDataComparison::Initialize for " - "IDataComparison: " - << std::quoted(Name()) - << " failed as no input data was set by a call to " - "SimpleDataComparison::SetData and no data_descriptor for " - "this SimpleDataComparison could be found in the global " - "configuration."; + if (!fData) { // If data hasn't been set externally. + if (fInstanceConfig.has_key("fake_data")) { + fData = nuis::utility::GetHistogram( + fInstanceConfig.get("fake_data_histogram")); + } else if (!fGlobalConfig.get("has_data", true) || + !fInstanceConfig.get("has_data", true)) { + // Explicitly not expecting data + } else { + if (!fDataInputDescriptor.length()) { + if (!fGlobalConfig.has_key("data_descriptor")) { + throw invalid_SimpleDataComparison_initialization() + << "[ERROR]: SimpleDataComparison::Initialize for " + "IDataComparison: " + << std::quoted(Name()) + << " failed as no input data was set by a call to " + "SimpleDataComparison::SetData and no data_descriptor for " + "this SimpleDataComparison could be found in the global " + "configuration."; + } + fDataInputDescriptor = + fGlobalConfig.get("data_descriptor"); } - fDataInputDescriptor = - fGlobalConfig.get("data_descriptor"); + fData = nuis::utility::GetHistogram(fDataInputDescriptor); } - fData = nuis::utility::GetHistogram(fDataInputDescriptor); } if (!fPrediction) { if (!fData) { throw invalid_SimpleDataComparison_initialization() << "[ERROR]: SimpleDataComparison::Initialize for " "IDataComparison: " << std::quoted(Name()) << " failed. As `has_data: false` was set in the configuration " "(global: " << (!fGlobalConfig.get("has_data", true)) << ", instance: " << !fInstanceConfig.get("has_data", true) << "), the instance constructor must supply the fPrediction " "binning, and it wasn't."; } fPrediction = nuis::utility::Clone(fData, true, "Prediction"); } if (fCovarianceInputDescriptor.length()) { fCovariance = nuis::utility::GetHistogram(fCovarianceInputDescriptor); } else if (fGlobalConfig.has_key("covariance_descriptor")) { fCovariance = nuis::utility::GetHistogram( fGlobalConfig.get("covariance_descriptor")); } if (fMaskInputDescriptor.length()) { fMask = nuis::utility::GetHistogram(fMaskInputDescriptor); } else if (fGlobalConfig.has_key("mask_descriptor")) { fMask = nuis::utility::GetHistogram( fGlobalConfig.get("mask_descriptor")); } if (fInstanceConfig.has_key("verbosity")) { SetSampleVerbosity(fInstanceConfig.get("verbosity")); } fModeHists = fInstanceConfig.get("write_mode_hists", false); NMaxSample_override = fInstanceConfig.get("nmax", std::numeric_limits::max()); - write_directory = - fInstanceConfig.get("write_directory", Name()); + if (!fWrite_directory.size()) { // Can be set by subclass + fWrite_directory = + fInstanceConfig.get("write_directory", Name()); + } } void ProcessSample(size_t nmax = std::numeric_limits::max()) { if (fIH_id == std::numeric_limits::max()) { fIH_id = nuis::input::InputManager::Get().EnsureInputLoaded(fInstanceConfig); } IInputHandler const &IH = nuis::input::InputManager::Get().GetInputHandler(fIH_id); nmax = std::min(NMaxSample_override, nmax); size_t NEvsToProcess = std::min(nmax, IH.GetNEvents()); double nmax_scaling = double(IH.GetNEvents()) / double(NEvsToProcess); size_t NToShout = NEvsToProcess / 10; IEventProcessor_INFO("Sample " << std::quoted(Name()) << " processing " << NEvsToProcess << " events."); IInputHandler::ev_index_t ev_idx = 0; bool DetermineSignalEvents = !fSignalCache.size() || !fUseCache; nuis::utility::Clear(*fPrediction); fComparisonFinalized = false; size_t cache_ctr = 0; while (ev_idx < NEvsToProcess) { bool is_sig = false; std::array proj; if (DetermineSignalEvents) { nuis::event::FullEvent const &fev = IH.GetFullEvent(ev_idx); is_sig = IsSigFunc(fev); fSignalCache.push_back(is_sig); if (is_sig) { proj = CompProjFunc(fev); fProjectionCache.push_back(proj); } if (ProcessExtraFunc) { ProcessExtraFunc(fev, is_sig, IH.GetEventWeight(ev_idx) * nmax_scaling); } if (fModeHists && is_sig) { FillModeProjection(proj, IH.GetEventWeight(ev_idx) * nmax_scaling, fev.mode); } } else { is_sig = fSignalCache[ev_idx]; proj = fProjectionCache[cache_ctr++]; } if (NToShout && !(ev_idx % NToShout)) { IEventProcessor_INFO("\tProcessed " << ev_idx << "/" << NEvsToProcess << " events."); } if (is_sig) { FillProjection(proj, IH.GetEventWeight(ev_idx) * nmax_scaling); } ev_idx++; } IEventProcessor_INFO("\t" << fProjectionCache.size() << "/" << NEvsToProcess << " events passed selection."); } void Write() { if (!fComparisonFinalized) { FinalizeComparison(); } nuis::persistency::WriteToOutputFile( - fPrediction_comparison, "Prediction", write_directory); + fPrediction_comparison, "Prediction", fWrite_directory); if (fModeHists) { for (auto &mh : fPrediction_modes) { nuis::persistency::WriteToOutputFile( - mh.second, mh.second->GetName(), write_directory); + mh.second, mh.second->GetName(), fWrite_directory); } } nuis::persistency::WriteToOutputFile( - fPrediction_xsec, "Prediction_xsec", write_directory); + fPrediction_xsec, "Prediction_xsec", fWrite_directory); if (fData) { nuis::persistency::WriteToOutputFile(fData, "Data", - write_directory); + fWrite_directory); nuis::persistency::WriteToOutputFile( - fPrediction_shape, "Prediction_shape", write_directory); + fPrediction_shape, "Prediction_shape", fWrite_directory); } } double GetGOF() { if (!fComparisonFinalized) { FinalizeComparison(); } if (fData && fPrediction_comparison) { return nuis::utility::GetChi2(fData, fPrediction_comparison); } else return std::numeric_limits::max(); } double GetNDOGuess() { if (fData) { return TH_Help::Nbins(fData); } return 0; } fhicl::ParameterSet GetExampleConfiguration() { fhicl::ParameterSet exps; exps.put("name", Name()); exps.put("input_type", "NuWro/NEUT/GENIE"); exps.put("file", "input_events.root"); exps.put("write_directory", Name()); return exps; } }; typedef SimpleDataComparison<1, double, TH1D> SimpleDataComparison_1D; typedef SimpleDataComparison<2, double, TH2D> SimpleDataComparison_2D; typedef SimpleDataComparison<1, float, TH1F> SimpleDataComparison_1F; typedef SimpleDataComparison<2, float, TH2F> SimpleDataComparison_2F; typedef SimpleDataComparison<2, double, TH2Poly> SimpleDataComparison_2DPoly; diff --git a/src/samples/eA/CMakeLists.txt b/src/samples/eA/CMakeLists.txt new file mode 100644 index 0000000..37b55f0 --- /dev/null +++ b/src/samples/eA/CMakeLists.txt @@ -0,0 +1,4 @@ +add_subdirectory(VirginiaArchive) + +SET(IeADataComparisons ${IeADataComparisons} PARENT_SCOPE) +SET(IeADataComparisons_FHiCL ${IeADataComparisons_FHiCL} PARENT_SCOPE) diff --git a/src/samples/eA/VirginiaArchive/CMakeLists.txt b/src/samples/eA/VirginiaArchive/CMakeLists.txt new file mode 100644 index 0000000..564698b --- /dev/null +++ b/src/samples/eA/VirginiaArchive/CMakeLists.txt @@ -0,0 +1,28 @@ +SET(SAMPLES + VirginiaQEArchive) + +foreach(S ${SAMPLES}) + LIST(APPEND IeADataComparisons ${S}) + LIST(APPEND SAMPLES_src ${S}.cxx) +endforeach() + +LIST(APPEND IeADataComparisons_FHiCL VirginiaQEArchive.sample.config.fcl) +add_library(VirginiaQEArchiveDataComparisons SHARED ${SAMPLES_src}) +target_link_libraries(VirginiaQEArchiveDataComparisons + nuis_event nuis_input nuis_config nuis_persistency) + +add_executable(DumpSampleFHiCL DumpSampleFHiCL.cxx) +target_link_libraries(DumpSampleFHiCL -Wl,--no-as-needed nuis_event nuis_input nuis_generator_utility nuis_utility_experimental nuis_utility nuis_config nuis_persistency nuis_plugins nuis_params nuis_variation) +target_link_libraries(DumpSampleFHiCL ${GENERATOR_DEPENDENT_TARGETS} -Wl,--as-needed) +target_link_libraries(DumpSampleFHiCL ${NUISANCE_LINK_DIRS}) +target_link_libraries(DumpSampleFHiCL ${NUISANCE_DEPEND_LIBS}) +if(NOT "${CMAKE_LINK_FLAGS}" STREQUAL "") + set_target_properties(DumpSampleFHiCL PROPERTIES LINK_FLAGS ${CMAKE_LINK_FLAGS}) +endif() + +install(TARGETS VirginiaQEArchiveDataComparisons DESTINATION plugins) + +install(FILES VirginiaQEArchive.sample.config.fcl DESTINATION fcl) + +SET(IeADataComparisons ${IeADataComparisons} PARENT_SCOPE) +SET(IeADataComparisons_FHiCL ${IeADataComparisons_FHiCL} PARENT_SCOPE) diff --git a/src/samples/eA/VirginiaArchive/DumpSampleFHiCL.cxx b/src/samples/eA/VirginiaArchive/DumpSampleFHiCL.cxx new file mode 100644 index 0000000..c2dfe19 --- /dev/null +++ b/src/samples/eA/VirginiaArchive/DumpSampleFHiCL.cxx @@ -0,0 +1,43 @@ +#include "config/GlobalConfiguration.hxx" + +#include "utility/experimental/VirginiaQEArchiveUtility.hxx" + +#include "utility/PDGCodeUtility.hxx" + +#include "fhiclcpp/ParameterSet.h" + +#include + +using namespace nuis::utility; +using namespace nuis::utility::VQE; +int main() { + nuis::config::EnsureConfigurationRead("nuis.global.config.fcl"); + + auto const &veqe = VirginiaQEArchiveInterface::Get(); + + fhicl::ParameterSet ps; + + ps.put("shape_only", false); + ps.put("flux_unfolded", false); + + std::vector sub_samples; + + for (size_t it = 0; it < veqe.GetNDatasets(); ++it) { + + auto const &ds = veqe.GetDataset(it); + + fhicl::ParameterSet ss; + ss.put("TargetZ", GetZ(ds.TargetPDG)); + ss.put("EIn_GeV", ds.EIn_GeV); + ss.put("Angle_Deg", ds.Angle_Deg); + ss.put("Author", ds.Author); + ss.put("Year", ds.Year); + + sub_samples.push_back(ss); + } + + ps.put>("sub_samples", sub_samples); + + std::cout << "global.sample_configuration.VirginiaQEArchive: { " + << ps.to_indented_string() << " }" << std::endl; +} diff --git a/src/samples/eA/VirginiaArchive/VirginiaQEArchive.cxx b/src/samples/eA/VirginiaArchive/VirginiaQEArchive.cxx new file mode 100644 index 0000000..71900f5 --- /dev/null +++ b/src/samples/eA/VirginiaArchive/VirginiaQEArchive.cxx @@ -0,0 +1,345 @@ +// Copyright 2018 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 . + *******************************************************************************/ + +//******************************************************************** + +#include "samples/SimpleDataComparison.hxx" + +#include "utility/FullEventUtility.hxx" +#include "utility/HistogramUtility.hxx" +#include "utility/KinematicUtility.hxx" +#include "utility/PDGCodeUtility.hxx" +#include "utility/PhaseSpaceRestriction.hxx" +#include "utility/StringUtility.hxx" +#include "utility/UnitsUtility.hxx" + +#include "utility/experimental/VirginiaQEArchiveUtility.hxx" + +#include "TCanvas.h" +#include "TLatex.h" + +using namespace nuis::event; +using namespace nuis::utility; +using namespace nuis::utility::VQE; + +class VirginiaQEArchive : public SimpleDataComparison_1D { + +public: + NEW_NUIS_EXCEPT(invalid_dataset_specifier); + NEW_NUIS_EXCEPT(ambiguous_dataset_specifier); + + std::vector> fDataGraphs; + std::vector fAngleCuts; + std::vector fPredictions; + std::vector fDatasets; + size_t fNDataSets; + std::string fPrint; + + SimpleParticlePhaseSpaceRestriction fEin_ps; + + VirginiaQEArchive() : SimpleDataComparison_1D("VirginiaQEArchive") { + ReadGlobalConfigDefaults(); + } + + std::string GetDocumentation() { return ""; } + fhicl::ParameterSet GetExampleConfiguration() { + fhicl::ParameterSet exps = + SimpleDataComparison_1D::GetExampleConfiguration(); + + exps.put("TargetZ", ""); + exps.put("EIn_GeV", ""); + exps.put("Angle_Deg", ""); + exps.put("Author", "!Optional: Filter by author name"); + exps.put("Year", "!Optional: Filter by year"); + exps.put("require_unique", + "!Optional: require only a single dataset match."); + + return exps; + } + + void Initialize(fhicl::ParameterSet const &instance_sample_configuration) { + + fhicl::ParameterSet inst_paramset = instance_sample_configuration; + + size_t TargetZ = inst_paramset.get("TargetZ"); + double EIn_GeV = inst_paramset.get("EIn_GeV"); + double Angle_Deg = inst_paramset.get("Angle_Deg", -1); + + fPrint = inst_paramset.get("print", ""); + + // For ease of use we may want to template the filename + std::string file_template = inst_paramset.get("file"); + + file_template = str_replace(file_template, "%E", + inst_paramset.get("EIn_GeV")); + + if (Angle_Deg != -1) { + file_template = str_replace(file_template, "%A", + inst_paramset.get("Angle_Deg")); + } + inst_paramset.put_or_replace("file", file_template); + + std::string Author = inst_paramset.get("Author", ""); + size_t Year = inst_paramset.get("Year", 0); + + auto const &veqe = VirginiaQEArchiveInterface::Get(); + + bool require_unique = inst_paramset.get("require_unique", false); + + auto const &datasetids = + veqe.GetMatchingDatasets(TargetZ, EIn_GeV, Angle_Deg, Author, Year); + + fNDataSets = datasetids.size(); + + if (!fNDataSets) { + invalid_dataset_specifier err; + err << "When searching VirginiaQE archive with: {" + " TargetZ: " + << TargetZ << " EIn_GeV: " << EIn_GeV; + if (Angle_Deg > 0) { + err << " Angle_Deg: " << Angle_Deg; + } + if (Author.size()) { + err << " Author: \"" << Author << "\""; + } + if (Year) { + err << " Year: " << Year; + } + err << "}, matched " << fNDataSets + << " datasets, but required at least 1."; + throw err; + } + + if (require_unique && (fNDataSets != 1)) { + ambiguous_dataset_specifier err; + err << "When searching VirginiaQE archive with: {" + " TargetZ: " + << TargetZ << " EIn_GeV: " << EIn_GeV; + if (Angle_Deg > 0) { + err << " Angle_Deg: " << Angle_Deg; + } + if (Author.size()) { + err << " Author: \"" << Author << "\""; + } + if (Year) { + err << " Year: " << Year; + } + err << " }, matched " << fNDataSets + << " datasets, but required exactly 1 match because " + "\"require_unique\" was set."; + throw err; + } + + auto const &dataset = veqe.GetDataset(datasetids.front()); + + double Angle_Bite_Deg = inst_paramset.get("Angle_Bite_Deg", 1); + + // If we have multiple matching datasets + for (size_t id : datasetids) { + auto const &ds = veqe.GetDataset(id); + fDatasets.push_back(ds); + + fDataGraphs.push_back(std::move(BuildTGraph(ds.Datapoints))); + fDataGraphs.back()->SetName(ds.Citation.c_str()); + + fAngleCuts.push_back(SimpleParticlePhaseSpaceRestriction::Theta_deg( + Angle_Deg - 0.5 * Angle_Bite_Deg - 1E-5, + Angle_Deg + 0.5 * Angle_Bite_Deg + 1E-5)); + + if (inst_paramset.has_key("prediction_hist")) { + fPredictions.push_back(BuildHistFromFHiCL( + inst_paramset.get("prediction_hist"))); + } else { // Use a default binning + fPredictions.push_back(std::make_unique( + (std::string("MCPrediction_") + ds.Citation).c_str(), + ";#nu (GeV); Count", 100, 0, EIn_GeV)); + } + fPredictions.back()->SetDirectory(nullptr); + + // It wants a prediction + if (!fPrediction) { + fPrediction = Clone(fPredictions.back()); + } + } + + // Set the properties for the relevant dataset + fJournalReference = dataset.Citation; + fYear = std::to_string(dataset.Year); + fTargetMaterial = std::string("Z = ") + + std::to_string(GetZ(dataset.TargetPDG)) + + ", A = " + std::to_string(GetA(dataset.TargetPDG)); + fFluxDescription = std::to_string(dataset.EIn_GeV) + " GeV"; + fSignalDescription = "Theta e\' = " + std::to_string(dataset.Angle_Deg); + + fWrite_directory = + "VirginiaQEArchive_E=" + std::to_string(dataset.EIn_GeV) + "_A" + + std::to_string(dataset.Angle_Deg); + + SimpleDataComparison_1D::Initialize(inst_paramset); + + bool force_electron_probe = + inst_paramset.get("force_electron_probe", true); + bool force_nu_probe_CC = inst_paramset.get("force_nu_probe_CC", true); + bool force_nu_probe_NC = inst_paramset.get("force_nu_probe_NC", true); + + fEin_ps = SimpleParticlePhaseSpaceRestriction::Energy( + (EIn_GeV / kGeV) - 1E-5, (EIn_GeV / kGeV) + 1E-5); + + IsSigFunc = [=](FullEvent const &fev) -> bool { + Particle ISProbe; + + if (force_electron_probe) { + ISProbe = GetHMISChargedLepton(fev); + if (!ISProbe) { + return false; + } + if (ISProbe.pdg != pdgcodes::kElectron) { + return false; + } + } else if (force_nu_probe_CC || force_nu_probe_NC) { + ISProbe = GetHMISNeutralLepton(fev); + if (!ISProbe) { + return false; + } + } else { + ISProbe = GetHMISLepton(fev); + if (!ISProbe) { + return false; + } + } + + Particle FSLepton; + if (force_electron_probe) { + FSLepton = GetHMFSChargedLepton(fev); + if (!FSLepton) { + return false; + } + if (FSLepton.pdg != pdgcodes::kElectron) { + return false; + } + } else if (force_nu_probe_CC) { + FSLepton = GetHMFSChargedLepton(fev); + if (!FSLepton) { + return false; + } + if (FSLepton.pdg != GetChargedLeptonPDG(ISProbe.pdg)) { + return false; + } + } else if (force_nu_probe_NC) { + FSLepton = GetHMFSNeutralLepton(fev); + if (!FSLepton) { + return false; + } + if (FSLepton.pdg != ISProbe.pdg) { + return false; + } + } else { + FSLepton = GetHMFSLepton(fev); + if (!FSLepton) { + return false; + } + } + + if (!fEin_ps.Inside(ISProbe)) { + return false; + } + + return true; + }; + + // Dummy function as we want to use the ProcessExtra to fill local histos + // keyed by angle. + CompProjFunc = [](FullEvent const &fev) -> std::array { + return {0}; + }; + + // Here is where the magic happens + ProcessExtraFunc = [&](FullEvent const &fev, bool isSig, double weight) { + if (!isSig) { + return; + } + + Particle ISProbe = GetHMISLepton(fev); + Particle FSLepton = GetHMFSLepton(fev); + + for (size_t ds_it = 0; ds_it < fNDataSets; ++ds_it) { + if (fAngleCuts[ds_it].Inside(FSLepton)) { + TH_Help::Fill(fPredictions[ds_it], + {(ISProbe.E() - FSLepton.E()) * kGeV}, weight); + } + } + }; + } + + void FinalizeComparison() {} + + void Write() { + + bool doprint = fPrint.size(); + std::string print_name = fPrint; + bool print_open = + fPrint.size() && fInstanceConfig.get("print_open", false); + bool print_closed = + fPrint.size() && fInstanceConfig.get("print_closed", false); + + TCanvas c1; + if (print_open) { + c1.Print((fPrint + "[").c_str()); + } + + for (size_t i = 0; i < fNDataSets; ++i) { + auto &g = fDataGraphs[i]; + auto &h = fPredictions[i]; + + nuis::persistency::WriteToOutputFile(g, g->GetName(), fWrite_directory); + + PeakScale(g, 1); + + nuis::persistency::WriteToOutputFile( + g, std::string(g->GetName()) + "_peaknorm", fWrite_directory); + + nuis::persistency::WriteToOutputFile(h, h->GetName(), fWrite_directory); + + PeakScale(h, 1); + + nuis::persistency::WriteToOutputFile( + h, std::string(h->GetName()) + "_peaknorm", fWrite_directory); + + if (doprint) { + h->Draw("CHIST"); + g->Draw("PL"); + + TLatex lat; + lat.DrawLatexNDC(0.3, 0.95, + (fDatasets[i].Citation + + " E_{in} = " + std::to_string(fDatasets[i].EIn_GeV) + + ", Theta = " + std::to_string(fDatasets[i].Angle_Deg)) + .c_str()); + + c1.Print(print_name.c_str()); + } + } + if (print_closed) { + c1.Print((fPrint + "]").c_str()); + } + } +}; + +DECLARE_PLUGIN(IDataComparison, VirginiaQEArchive); +DECLARE_PLUGIN(IEventProcessor, VirginiaQEArchive); diff --git a/src/samples/eA/VirginiaArchive/VirginiaQEArchive.sample.config.fcl b/src/samples/eA/VirginiaArchive/VirginiaQEArchive.sample.config.fcl new file mode 100644 index 0000000..6559423 --- /dev/null +++ b/src/samples/eA/VirginiaArchive/VirginiaQEArchive.sample.config.fcl @@ -0,0 +1,512 @@ +global.sample_configuration.VirginiaQEArchive: { + flux_unfolded: false + shape_only: false + # This is so that the base class doesn't panic at not having histograms. + has_data: false + sub_samples: [ + { + Angle_Deg: 36 + Author: Barreau + EIn_GeV: 0.16 + TargetZ: 6 + Year: 1983 + }, + { + Angle_Deg: 60 + Author: Barreau + EIn_GeV: 0.161 + TargetZ: 6 + Year: 1983 + }, + { + Angle_Deg: 36 + Author: Barreau + EIn_GeV: 0.2 + TargetZ: 6 + Year: 1983 + }, + { + Angle_Deg: 60 + Author: Barreau + EIn_GeV: 0.2 + TargetZ: 6 + Year: 1983 + }, + { + Angle_Deg: 36 + Author: Barreau + EIn_GeV: 0.24 + TargetZ: 6 + Year: 1983 + }, + { + Angle_Deg: 60 + Author: Barreau + EIn_GeV: 0.24 + TargetZ: 6 + Year: 1983 + }, + { + Angle_Deg: 60 + Author: Barreau + EIn_GeV: 0.28 + TargetZ: 6 + Year: 1983 + }, + { + Angle_Deg: 36 + Author: Barreau + EIn_GeV: 0.32 + TargetZ: 6 + Year: 1983 + }, + { + Angle_Deg: 60 + Author: Barreau + EIn_GeV: 0.32 + TargetZ: 6 + Year: 1983 + }, + { + Angle_Deg: 60 + Author: Barreau + EIn_GeV: 0.361 + TargetZ: 6 + Year: 1983 + }, + { + Angle_Deg: 36 + Author: Barreau + EIn_GeV: 0.4 + TargetZ: 6 + Year: 1983 + }, + { + Angle_Deg: 60 + Author: Barreau + EIn_GeV: 0.401 + TargetZ: 6 + Year: 1983 + }, + { + Angle_Deg: 60 + Author: Barreau + EIn_GeV: 0.44 + TargetZ: 6 + Year: 1983 + }, + { + Angle_Deg: 36 + Author: Barreau + EIn_GeV: 0.48 + TargetZ: 6 + Year: 1983 + }, + { + Angle_Deg: 60 + Author: Barreau + EIn_GeV: 0.48 + TargetZ: 6 + Year: 1983 + }, + { + Angle_Deg: 60 + Author: Whitney + EIn_GeV: 0.5 + TargetZ: 6 + Year: 1974 + }, + { + Angle_Deg: 60 + Author: Barreau + EIn_GeV: 0.519 + TargetZ: 6 + Year: 1983 + }, + { + Angle_Deg: 36 + Author: Barreau + EIn_GeV: 0.56 + TargetZ: 6 + Year: 1983 + }, + { + Angle_Deg: 60 + Author: Barreau + EIn_GeV: 0.56 + TargetZ: 6 + Year: 1983 + }, + { + Angle_Deg: 145 + Author: Barreau + EIn_GeV: 0.56 + TargetZ: 6 + Year: 1983 + }, + { + Angle_Deg: 36 + Author: Barreau + EIn_GeV: 0.62 + TargetZ: 6 + Year: 1983 + }, + { + Angle_Deg: 60 + Author: Barreau + EIn_GeV: 0.62 + TargetZ: 6 + Year: 1983 + }, + { + Angle_Deg: 36 + Author: Barreau + EIn_GeV: 0.68 + TargetZ: 6 + Year: 1983 + }, + { + Angle_Deg: 60 + Author: Barreau + EIn_GeV: 0.68 + TargetZ: 6 + Year: 1983 + }, + { + Angle_Deg: 37.1 + Author: "O'Connell" + EIn_GeV: 0.73 + TargetZ: 6 + Year: 1987 + }, + { + Angle_Deg: 37.5 + Author: Sealock + EIn_GeV: 0.961 + TargetZ: 6 + Year: 1989 + }, + { + Angle_Deg: 37.5 + Author: Sealock + EIn_GeV: 1.108 + TargetZ: 6 + Year: 1989 + }, + { + Angle_Deg: 37.5 + Author: Sealock + EIn_GeV: 1.299 + TargetZ: 6 + Year: 1989 + }, + { + Angle_Deg: 11.95 + Author: Baran + EIn_GeV: 1.3 + TargetZ: 6 + Year: 1988 + }, + { + Angle_Deg: 13.54 + Author: Baran + EIn_GeV: 1.3 + TargetZ: 6 + Year: 1988 + }, + { + Angle_Deg: 11.95 + Author: Baran + EIn_GeV: 1.5 + TargetZ: 6 + Year: 1988 + }, + { + Angle_Deg: 13.54 + Author: Baran + EIn_GeV: 1.5 + TargetZ: 6 + Year: 1988 + }, + { + Angle_Deg: 37.5 + Author: Sealock + EIn_GeV: 1.501 + TargetZ: 6 + Year: 1989 + }, + { + Angle_Deg: 11.95 + Author: Baran + EIn_GeV: 1.65 + TargetZ: 6 + Year: 1988 + }, + { + Angle_Deg: 13.54 + Author: Baran + EIn_GeV: 1.65 + TargetZ: 6 + Year: 1988 + }, + { + Angle_Deg: 16 + Author: Bagdasaryan + EIn_GeV: 1.93 + TargetZ: 6 + Year: 1988 + }, + { + Angle_Deg: 18 + Author: Bagdasaryan + EIn_GeV: 1.93 + TargetZ: 6 + Year: 1988 + }, + { + Angle_Deg: 15 + Author: Zeller + EIn_GeV: 2 + TargetZ: 6 + Year: 1973 + }, + { + Angle_Deg: 35.51 + Author: Arrington + EIn_GeV: 2.015 + TargetZ: 6 + Year: 1995 + }, + { + Angle_Deg: 15.022 + Author: Day + EIn_GeV: 2.02 + TargetZ: 6 + Year: 1993 + }, + { + Angle_Deg: 20.016 + Author: Day + EIn_GeV: 2.02 + TargetZ: 6 + Year: 1993 + }, + { + Angle_Deg: 16 + Author: Bagdasaryan + EIn_GeV: 2.13 + TargetZ: 6 + Year: 1988 + }, + { + Angle_Deg: 18 + Author: Bagdasaryan + EIn_GeV: 2.13 + TargetZ: 6 + Year: 1988 + }, + { + Angle_Deg: 15 + Author: Zeller + EIn_GeV: 2.5 + TargetZ: 6 + Year: 1973 + }, + { + Angle_Deg: 15 + Author: Zeller + EIn_GeV: 2.7 + TargetZ: 6 + Year: 1973 + }, + { + Angle_Deg: 47.68 + Author: Arrington + EIn_GeV: 3.188 + TargetZ: 6 + Year: 1995 + }, + { + Angle_Deg: 16.02 + Author: Day + EIn_GeV: 3.595 + TargetZ: 6 + Year: 1993 + }, + { + Angle_Deg: 20.016 + Author: Day + EIn_GeV: 3.595 + TargetZ: 6 + Year: 1993 + }, + { + Angle_Deg: 25.012 + Author: Day + EIn_GeV: 3.595 + TargetZ: 6 + Year: 1993 + }, + { + Angle_Deg: 30.01 + Author: Day + EIn_GeV: 3.595 + TargetZ: 6 + Year: 1993 + }, + { + Angle_Deg: 16.02 + Author: Day + EIn_GeV: 3.605 + TargetZ: 6 + Year: 1993 + }, + { + Angle_Deg: 15 + Author: Arrington + EIn_GeV: 4.045 + TargetZ: 6 + Year: 1998 + }, + { + Angle_Deg: 23 + Author: Arrington + EIn_GeV: 4.045 + TargetZ: 6 + Year: 1998 + }, + { + Angle_Deg: 30 + Author: Arrington + EIn_GeV: 4.045 + TargetZ: 6 + Year: 1998 + }, + { + Angle_Deg: 37 + Author: Arrington + EIn_GeV: 4.045 + TargetZ: 6 + Year: 1998 + }, + { + Angle_Deg: 45 + Author: Arrington + EIn_GeV: 4.045 + TargetZ: 6 + Year: 1998 + }, + { + Angle_Deg: 55 + Author: Arrington + EIn_GeV: 4.045 + TargetZ: 6 + Year: 1998 + }, + { + Angle_Deg: 74 + Author: Arrington + EIn_GeV: 4.045 + TargetZ: 6 + Year: 1998 + }, + { + Angle_Deg: 53.389 + Author: Arrington + EIn_GeV: 4.212 + TargetZ: 6 + Year: 1995 + }, + { + Angle_Deg: 56.639 + Author: Arrington + EIn_GeV: 5.12 + TargetZ: 6 + Year: 1995 + }, + { + Angle_Deg: 18 + Author: Fomin + EIn_GeV: 5.766 + TargetZ: 6 + Year: 2010 + }, + { + Angle_Deg: 22 + Author: Fomin + EIn_GeV: 5.766 + TargetZ: 6 + Year: 2010 + }, + { + Angle_Deg: 26 + Author: Fomin + EIn_GeV: 5.766 + TargetZ: 6 + Year: 2010 + }, + { + Angle_Deg: 32 + Author: Fomin + EIn_GeV: 5.766 + TargetZ: 6 + Year: 2010 + }, + { + Angle_Deg: 40 + Author: Fomin + EIn_GeV: 5.766 + TargetZ: 6 + Year: 2010 + }, + { + Angle_Deg: 50 + Author: Fomin + EIn_GeV: 5.766 + TargetZ: 6 + Year: 2010 + }, + { + Angle_Deg: 32 + Author: Anghinolfi + EIn_GeV: 0.7 + TargetZ: 8 + Year: 1996 + }, + { + Angle_Deg: 37.1 + Author: "O'Connell" + EIn_GeV: 0.737 + TargetZ: 8 + Year: 1987 + }, + { + Angle_Deg: 32 + Author: Anghinolfi + EIn_GeV: 0.88 + TargetZ: 8 + Year: 1996 + }, + { + Angle_Deg: 32 + Author: Anghinolfi + EIn_GeV: 1.08 + TargetZ: 8 + Year: 1996 + }, + { + Angle_Deg: 32 + Author: Anghinolfi + EIn_GeV: 1.2 + TargetZ: 8 + Year: 1996 + }, + { + Angle_Deg: 32 + Author: Anghinolfi + EIn_GeV: 1.5 + TargetZ: 8 + Year: 1996 + } + ] +} diff --git a/src/samples/nuA/BubbleChamber/ANL/ANL_CCQE_Evt_1DQ2_nu.cxx b/src/samples/nuA/BubbleChamber/ANL/ANL_CCQE_Evt_1DQ2_nu.cxx index 86d1a6d..de2b415 100644 --- a/src/samples/nuA/BubbleChamber/ANL/ANL_CCQE_Evt_1DQ2_nu.cxx +++ b/src/samples/nuA/BubbleChamber/ANL/ANL_CCQE_Evt_1DQ2_nu.cxx @@ -1,189 +1,189 @@ // Copyright 2018 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 . *******************************************************************************/ //******************************************************************** #include "samples/SimpleDataComparison.hxx" #include "utility/FullEventUtility.hxx" #include "utility/KinematicUtility.hxx" #include "utility/PDGCodeUtility.hxx" using namespace nuis::event; using namespace nuis::utility; class ANL_CCQE_Evt_1DQ2_nu : public SimpleDataComparison_1D { public: NEW_NUIS_EXCEPT(invalid_publication_specifier); enum Publication { kPRL31, kPRD16, kPRD26 }; Publication Pub; std::string Pub_str; bool UseD2Corr; std::unique_ptr fD2CorrHist; std::unique_ptr fPrediction_Uncorr; ANL_CCQE_Evt_1DQ2_nu() : SimpleDataComparison_1D("ANL_CCQE_Evt_1DQ2_nu"), Pub(kPRD26), Pub_str(""), UseD2Corr(false), fD2CorrHist(nullptr) { ReadGlobalConfigDefaults(); } std::string GetDocumentation() { return "Can specify \"publication: \", where is one of [ PRL31, " "PRD16, PRD26 ] to clarify a publication for comparison. Defaults " "to PRD26.\n" "Can enable deuterium Q2 correction by specifying " "\"use_D2_correction: true\""; } fhicl::ParameterSet GetExampleConfiguration() { fhicl::ParameterSet exps = SimpleDataComparison_1D::GetExampleConfiguration(); exps.put("publication", "PRD26"); exps.put("use_D2_correction", false); return exps; } void Initialize(fhicl::ParameterSet const &instance_sample_configuration) { std::string publication = instance_sample_configuration.get("publication", "PRD26"); if (publication == "PRL31") { Pub = kPRL31; } else if (publication == "PRD16") { Pub = kPRD16; } else if (publication == "PRD26") { Pub = kPRD26; } else { throw invalid_publication_specifier() << "[ERROR]: Found unexpected publication specifier " << std::quoted(publication) << ". Expected one of [ PRL31, PRD16, PRD26 ]"; } switch (Pub) { case kPRL31: { Pub_str = "PRL31_844"; energy_cut = std::pair{0, 3E3}; IEventProcessor_INFO( "Sample " << Name() << " specialized for publication: " << Pub_str); break; } case kPRD16: { Pub_str = "PRD16_3103"; energy_cut = std::pair{0, 6E3}; IEventProcessor_INFO( "Sample " << Name() << " specialized for publication: " << Pub_str); break; } case kPRD26: { Pub_str = "PRD26_537"; energy_cut = std::pair{0, 6E3}; IEventProcessor_INFO( "Sample " << Name() << " specialized for publication: " << Pub_str); break; } } fhicl::ParameterSet const &global_sample_configuration = nuis::config::GetDocument().get( std::string("global.sample_configuration.") + Name(), fhicl::ParameterSet()); SetData(GetDataDir() + "nuA/BubbleChamber/ANL/CCQE/ANL_CCQE_Data_" + Pub_str + ".root;ANL_1DQ2_Data"); SimpleDataComparison_1D::Initialize(instance_sample_configuration); UseD2Corr = instance_sample_configuration.get( "use_D2_correction", global_sample_configuration.get("use_D2_correction", false)); if (UseD2Corr) { fD2CorrHist = nuis::utility::GetHistogram( GetDataDir() + "nuA/BubbleChamber/ANL/CCQE/" "ANL_CCQE_Data_PRL31_844.root;ANL_1DQ2_Correction"); fPrediction_Uncorr = Clone(fPrediction, true); } // Signal selection function IsSigFunc = [&](FullEvent const &fev) -> bool { if (fev.mode != Channel_t::kCCQE) { return false; } Particle ISNumu = GetHMISNeutralLepton(fev); if (!ISNumu) { return false; } if (ISNumu.pdg != pdgcodes::kNuMu) { return false; } if (!energy_cut.IsInRange(ISNumu.P4.E())) { return false; } double Q2 = GetNeutrinoQ2QERec(fev, 0); if (Q2 <= 0) { return false; } return true; }; // 1D Projection function CompProjFunc = [](FullEvent const &fev) -> std::array { return {GetNeutrinoQ2QERec(fev, 0)}; }; } // Used to apply D2 correction if requested virtual void FillProjection(std::array const &proj, double event_weight) { if (UseD2Corr) { TH_Help::Fill(fPrediction_Uncorr, proj, event_weight); event_weight *= fD2CorrHist->Interpolate(proj[0]); } TH_Help::Fill(fPrediction, proj, event_weight); } void FinalizeComparison() { SimpleDataComparison_1D::FinalizeComparison(); if (UseD2Corr) { fPrediction_Uncorr->Scale(1.0, "width"); } } void Write() { SimpleDataComparison_1D::Write(); if (UseD2Corr) { nuis::persistency::WriteToOutputFile( - fPrediction_Uncorr, "Prediction_Uncorr", write_directory); + fPrediction_Uncorr, "Prediction_Uncorr", fWrite_directory); } } }; DECLARE_PLUGIN(IDataComparison, ANL_CCQE_Evt_1DQ2_nu); DECLARE_PLUGIN(IEventProcessor, ANL_CCQE_Evt_1DQ2_nu); diff --git a/src/samples/nuA/Nuclear/MINERvA/CC0Pi/MINERvA_CC0PiNProt_CH_xsec_STV_nu.cxx b/src/samples/nuA/Nuclear/MINERvA/CC0Pi/MINERvA_CC0PiNProt_CH_xsec_STV_nu.cxx index c47538c..9f35d78 100644 --- a/src/samples/nuA/Nuclear/MINERvA/CC0Pi/MINERvA_CC0PiNProt_CH_xsec_STV_nu.cxx +++ b/src/samples/nuA/Nuclear/MINERvA/CC0Pi/MINERvA_CC0PiNProt_CH_xsec_STV_nu.cxx @@ -1,190 +1,190 @@ // Copyright 2018 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 . *******************************************************************************/ //******************************************************************** #include "samples/MultiDataComparison.hxx" #include "samples/SimpleDataComparison.hxx" #include "utility/EventTopologyUtility.hxx" #include "utility/FullEventUtility.hxx" #include "utility/KinematicUtility.hxx" #include "utility/PDGCodeUtility.hxx" #include "utility/experimental/MINERvAUtility.hxx" using namespace nuis::event; using namespace nuis::utility; class MINERvA_CC0PiNProt_CH_xsec_STV_nu : public MultiDataComparison { public: MINERvA_CC0PiNProt_CH_xsec_STV_nu() : MultiDataComparison("MINERvA_CC0PiNProt_CH_xsec_STV_nu") { ReadGlobalConfigDefaults(); } void Initialize(fhicl::ParameterSet const &instance_sample_configuration) { // Perform any per-sample configuration in the base class MultiDataComparison::Initialize(instance_sample_configuration); std::unique_ptr DPT( new SimpleDataComparison_1D("MINERvA_CC0PiNProt_CH_xsec_STV_nu:dpt")); DPT->SetData(GetDataDir() + "nuA/Nuclear/MINERvA/CC0Pi/NProt_CH_xsec_STV_nu/" "MINERvA_1805.05486.root;dpt"); DPT->Initialize( instance_sample_configuration.get("dpt", {})); DPT->CompProjFunc = [](FullEvent const &fev) -> std::array { return {mnv::GetDeltaPT_CC0PiN_mnv(fev).Mag() * 1E-3}; }; std::unique_ptr DAT(new SimpleDataComparison_1D( "MINERvA_CC0PiNProt_CH_xsec_STV_nu:dalphat")); DAT->SetData(GetDataDir() + "nuA/Nuclear/MINERvA/CC0Pi/NProt_CH_xsec_STV_nu/" "MINERvA_1805.05486.root;dalphat"); DAT->Initialize( instance_sample_configuration.get("dat", {})); DAT->CompProjFunc = [](FullEvent const &fev) -> std::array { return {mnv::GetDeltaAlphaT_CC0PiN_mnv(fev)}; }; std::unique_ptr DPhiT( new SimpleDataComparison_1D("MINERvA_CC0PiNProt_CH_xsec_STV_nu:dphit")); DPhiT->SetData(GetDataDir() + "nuA/Nuclear/MINERvA/CC0Pi/NProt_CH_xsec_STV_nu/" "MINERvA_1805.05486.root;dphit"); DPhiT->Initialize( instance_sample_configuration.get("dphit", {})); DPhiT->CompProjFunc = [](FullEvent const &fev) -> std::array { return {mnv::GetDeltaPhiT_CC0PiN_mnv(fev)}; }; std::unique_ptr MuMom(new SimpleDataComparison_1D( "MINERvA_CC0PiNProt_CH_xsec_STV_nu:muonmomentum")); MuMom->SetData(GetDataDir() + "nuA/Nuclear/MINERvA/CC0Pi/NProt_CH_xsec_STV_nu/" "MINERvA_1805.05486.root;muonmomentum"); MuMom->Initialize(instance_sample_configuration.get( "muonmomentum", {})); MuMom->CompProjFunc = [](FullEvent const &fev) -> std::array { return {GetHMFSChargedLepton(fev).P() * 1E-3}; }; std::unique_ptr MuTheta( new SimpleDataComparison_1D( "MINERvA_CC0PiNProt_CH_xsec_STV_nu:muontheta")); MuTheta->SetData(GetDataDir() + "nuA/Nuclear/MINERvA/CC0Pi/NProt_CH_xsec_STV_nu/" "MINERvA_1805.05486.root;muontheta"); MuTheta->Initialize(instance_sample_configuration.get( "muontheta", {})); MuTheta->CompProjFunc = [](FullEvent const &fev) -> std::array { return {GetHMFSChargedLepton(fev).Theta_deg()}; }; std::unique_ptr ProtonMom( new SimpleDataComparison_1D( "MINERvA_CC0PiNProt_CH_xsec_STV_nu:protonmomentum")); ProtonMom->SetData(GetDataDir() + "nuA/Nuclear/MINERvA/CC0Pi/NProt_CH_xsec_STV_nu/" "MINERvA_1805.05486.root;protonmomentum"); ProtonMom->Initialize( instance_sample_configuration.get("protonmomentum", {})); ProtonMom->CompProjFunc = [](FullEvent const &fev) -> std::array { return {GetHMFSProtonInPhaseSpace(fev, mnv::CC0PiNProt_ProtonPS).P() * 1E-3}; }; std::unique_ptr ProtonTheta( new SimpleDataComparison_1D( "MINERvA_CC0PiNProt_CH_xsec_STV_nu:protontheta")); ProtonTheta->SetData(GetDataDir() + "nuA/Nuclear/MINERvA/CC0Pi/NProt_CH_xsec_STV_nu/" "MINERvA_1805.05486.root;protontheta"); ProtonTheta->Initialize( instance_sample_configuration.get("protontheta", {})); ProtonTheta->CompProjFunc = [](FullEvent const &fev) -> std::array { return { GetHMFSProtonInPhaseSpace(fev, mnv::CC0PiNProt_ProtonPS).Theta_deg()}; }; std::unique_ptr NeutronMomReco( new SimpleDataComparison_1D( "MINERvA_CC0PiNProt_CH_xsec_STV_nu:neutronmomentum")); NeutronMomReco->SetData(GetDataDir() + "nuA/Nuclear/MINERvA/CC0Pi/NProt_CH_xsec_STV_nu/" "MINERvA_1805.05486.root;neutronmomentum"); NeutronMomReco->Initialize( instance_sample_configuration.get( "neutronmomentum", {})); NeutronMomReco->CompProjFunc = [](FullEvent const &fev) -> std::array { return {mnv::GetNeutronMomentumReco_CC0PiN_mnv(fev)*1E-3}; }; - std::string wd_stub = write_directory.size() ? write_directory + "/" : ""; - DPT->write_directory = wd_stub + "dpt"; - DAT->write_directory = wd_stub + "dat"; - DPhiT->write_directory = wd_stub + "dphit"; - MuMom->write_directory = wd_stub + "muonmomentum"; - MuTheta->write_directory = wd_stub + "muontheta"; - ProtonMom->write_directory = wd_stub + "protonmomentum"; - ProtonTheta->write_directory = wd_stub + "protontheta"; - NeutronMomReco->write_directory = wd_stub + "neutronmomentum"; + std::string wd_stub = fWrite_directory.size() ? fWrite_directory + "/" : ""; + DPT->fWrite_directory = wd_stub + "dpt"; + DAT->fWrite_directory = wd_stub + "dat"; + DPhiT->fWrite_directory = wd_stub + "dphit"; + MuMom->fWrite_directory = wd_stub + "muonmomentum"; + MuTheta->fWrite_directory = wd_stub + "muontheta"; + ProtonMom->fWrite_directory = wd_stub + "protonmomentum"; + ProtonTheta->fWrite_directory = wd_stub + "protontheta"; + NeutronMomReco->fWrite_directory = wd_stub + "neutronmomentum"; Comparisons.emplace_back("dpt", std::move(DPT)); Comparisons.emplace_back("dat", std::move(DAT)); Comparisons.emplace_back("dphit", std::move(DPhiT)); Comparisons.emplace_back("muonmomentum", std::move(MuMom)); Comparisons.emplace_back("muontheta", std::move(MuTheta)); Comparisons.emplace_back("protonmomentum", std::move(ProtonMom)); Comparisons.emplace_back("protontheta", std::move(ProtonTheta)); Comparisons.emplace_back("neutronmomentum", std::move(NeutronMomReco)); //! Define your event signal here. IsSigFunc = [](FullEvent const &fev) -> bool { // Is numuCC if (GetNParticles(fev, {pdgcodes::kMu}) != 1) { return false; } return mnv::IsCC0PiNp_STV(fev); }; } //! Here you can write any custom histograms to TTrees that your sample has //! been handling. void Write() { for (auto &comp : Comparisons) { comp.second->Write(); } } }; //! These declarations allow your class to be loaded dynamically by NUISANCE DECLARE_PLUGIN(IDataComparison, MINERvA_CC0PiNProt_CH_xsec_STV_nu); DECLARE_PLUGIN(IEventProcessor, MINERvA_CC0PiNProt_CH_xsec_STV_nu); diff --git a/src/samples/nuA/Nuclear/T2K/CC0Pi/T2K_CC0PiNProt_CH_xsec_STV_nu.cxx b/src/samples/nuA/Nuclear/T2K/CC0Pi/T2K_CC0PiNProt_CH_xsec_STV_nu.cxx index 968bbd9..24c397f 100644 --- a/src/samples/nuA/Nuclear/T2K/CC0Pi/T2K_CC0PiNProt_CH_xsec_STV_nu.cxx +++ b/src/samples/nuA/Nuclear/T2K/CC0Pi/T2K_CC0PiNProt_CH_xsec_STV_nu.cxx @@ -1,113 +1,113 @@ // Copyright 2018 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 . *******************************************************************************/ //******************************************************************** #include "samples/MultiDataComparison.hxx" #include "samples/SimpleDataComparison.hxx" #include "utility/EventTopologyUtility.hxx" #include "utility/FullEventUtility.hxx" #include "utility/KinematicUtility.hxx" #include "utility/PDGCodeUtility.hxx" #include "utility/experimental/T2KUtility.hxx" using namespace nuis::event; using namespace nuis::utility; class T2K_CC0PiNProt_CH_xsec_STV_nu : public MultiDataComparison { public: T2K_CC0PiNProt_CH_xsec_STV_nu() : MultiDataComparison("T2K_CC0PiNProt_CH_xsec_STV_nu") { ReadGlobalConfigDefaults(); } void Initialize(fhicl::ParameterSet const &instance_sample_configuration) { // Perform any per-sample configuration in the base class MultiDataComparison::Initialize(instance_sample_configuration); std::unique_ptr DPT( new SimpleDataComparison_1D("T2K_CC0PiNProt_CH_xsec_STV_nu:dpt")); DPT->SetData( GetDataDir() + "nuA/Nuclear/T2K/CC0Pi/NProt_CH_xsec_STV_nu/dptResults.root;Result"); DPT->Initialize( instance_sample_configuration.get("dpt", {})); DPT->CompProjFunc = [](FullEvent const &fev) -> std::array { return {GetDeltaPT_CC0PiN(fev).Mag() * 1E-3}; }; std::unique_ptr DAT( new SimpleDataComparison_1D("T2K_CC0PiNProt_CH_xsec_STV_nu:dat")); DAT->SetData( GetDataDir() + "nuA/Nuclear/T2K/CC0Pi/NProt_CH_xsec_STV_nu/datResults.root;Result"); DAT->Initialize( instance_sample_configuration.get("dat", {})); DAT->CompProjFunc = [](FullEvent const &fev) -> std::array { return {GetDeltaAlphaT_CC0PiN(fev)}; }; std::unique_ptr DPhiT( new SimpleDataComparison_1D("T2K_CC0PiNProt_CH_xsec_STV_nu:dphit")); DPhiT->SetData( GetDataDir() + "nuA/Nuclear/T2K/CC0Pi/NProt_CH_xsec_STV_nu/dphitResults.root;Result"); DPhiT->Initialize( instance_sample_configuration.get("dphit", {})); DPhiT->CompProjFunc = [](FullEvent const &fev) -> std::array { return {GetDeltaPhiT_CC0PiN(fev)}; }; - std::string wd_stub = write_directory.size() ? write_directory + "/" : ""; - DPT->write_directory = wd_stub + "dpt"; - DAT->write_directory = wd_stub + "dat"; - DPhiT->write_directory = wd_stub + "dphit"; + std::string wd_stub = fWrite_directory.size() ? fWrite_directory + "/" : ""; + DPT->fWrite_directory = wd_stub + "dpt"; + DAT->fWrite_directory = wd_stub + "dat"; + DPhiT->fWrite_directory = wd_stub + "dphit"; Comparisons.emplace_back("dpt", std::move(DPT)); Comparisons.emplace_back("dat", std::move(DAT)); Comparisons.emplace_back("dphit", std::move(DPhiT)); //! Define your event signal here. IsSigFunc = [](FullEvent const &fev) -> bool { // Is numuCC if (GetNParticles(fev, {pdgcodes::kMu}) != 1) { return false; } return t2k::IsCC0Pi_STV(fev); }; } //! Here you can write any custom histograms to TTrees that your sample has //! been handling. void Write() { for (auto &comp : Comparisons) { comp.second->Write(); } } }; //! These declarations allow your class to be loaded dynamically by NUISANCE DECLARE_PLUGIN(IDataComparison, T2K_CC0PiNProt_CH_xsec_STV_nu); DECLARE_PLUGIN(IEventProcessor, T2K_CC0PiNProt_CH_xsec_STV_nu); diff --git a/src/samples/nuA/Nuclear/T2K/CC0Pi/T2K_CC0Pi_H2O_xsec_2Dpcthetamu_numubar.cxx b/src/samples/nuA/Nuclear/T2K/CC0Pi/T2K_CC0Pi_H2O_xsec_2Dpcthetamu_numubar.cxx index 1aab8d6..545deae 100644 --- a/src/samples/nuA/Nuclear/T2K/CC0Pi/T2K_CC0Pi_H2O_xsec_2Dpcthetamu_numubar.cxx +++ b/src/samples/nuA/Nuclear/T2K/CC0Pi/T2K_CC0Pi_H2O_xsec_2Dpcthetamu_numubar.cxx @@ -1,183 +1,183 @@ // Copyright 2018 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 . *******************************************************************************/ //******************************************************************** #include "samples/SimpleDataComparison.hxx" #include "utility/EventTopologyUtility.hxx" #include "utility/FullEventUtility.hxx" #include "utility/KinematicUtility.hxx" #include "utility/PDGCodeUtility.hxx" using namespace nuis::event; using namespace nuis::utility; class T2K_CC0Pi_H2O_xsec_2Dpcthetamu_numubar : public SimpleDataComparison_2DPoly { std::unique_ptr fPrediction_pmu; std::unique_ptr fPrediction_ctheta; std::unique_ptr fPrediction_fine; std::unique_ptr fPrediction_unscale; public: T2K_CC0Pi_H2O_xsec_2Dpcthetamu_numubar() : SimpleDataComparison_2DPoly("T2K_CC0Pi_H2O_xsec_2Dpcthetamu_numubar") { ReadGlobalConfigDefaults(); } std::string GetDocumentation() { return ""; } fhicl::ParameterSet GetExampleConfiguration() { fhicl::ParameterSet exps = SimpleDataComparison_2DPoly::GetExampleConfiguration(); return exps; } void Initialize(fhicl::ParameterSet const &instance_sample_configuration) { SetData( GetDataDir() + "nuA/Nuclear/T2K/CC0Pi/H2O_xsec_2Dpmuthetamu_numubar.root;datapoly"); fPrediction_fine = std::unique_ptr( new TH2D("fPrediction_fine", ";#it{p}_{#mu} " "(MeV/#it{c});cos(#theta_{#mu});d^{2}#sigma/" "d#it{p}_{#mu}dcos(#theta_{#mu}) (cm^{2} MeV^{-1} A^{-1})", 100, 0, 3000, 50, 0.84, 1)); fPrediction_pmu = std::unique_ptr(new TH1D("fPrediction_pmu", ";#it{p}_{#mu} " "(MeV/#it{c});d#sigma/" "d#it{p}_{#mu} (cm^{2} MeV^{-1} A^{-1})", 100, 0, 3000)); fPrediction_ctheta = std::unique_ptr(new TH1D("fPrediction_ctheta", ";cos(#theta_{#mu});d#sigma/" "ddcos(#theta_{#mu}) (cm^{2} A^{-1})", 50, 0.84, 1)); SimpleDataComparison_2DPoly::Initialize(instance_sample_configuration); fPrediction_unscale = nuis::utility::Clone(fPrediction, false, "Prediction_unscale"); // Signal selection function IsSigFunc = [](FullEvent const &fev) -> bool { if (!IsCC0Pi(fev)) { return false; } Particle ISNumuBar = GetHMISParticle(fev, {pdgcodes::kNuMuBar}); if (!ISNumuBar) { return false; } Particle FSMuPlus = GetHMFSParticle(fev, {pdgcodes::kMuPlus}); if (!FSMuPlus) { return false; } if (FSMuPlus.CosTheta() < 0.84) { return false; } return true; }; // 1D Projection function CompProjFunc = [](FullEvent const &fev) -> std::array { Particle FSMuPlus = GetHMFSParticle(fev, {pdgcodes::kMuPlus}); return {FSMuPlus.P(), FSMuPlus.CosTheta()}; }; ProcessExtraFunc = [&](FullEvent const &fev, bool isSel, double weight) { if (isSel) { Particle FSMuPlus = GetHMFSParticle(fev, {pdgcodes::kMuPlus}); TH_Helper::Fill(fPrediction_fine, {FSMuPlus.P(), FSMuPlus.CosTheta()}, weight); TH_Help::Fill(fPrediction_unscale, {FSMuPlus.P(), FSMuPlus.CosTheta()}); } Particle ISNumuBar = GetHMISParticle(fev, {pdgcodes::kNuMuBar}); if (!ISNumuBar) { return; } Particle FSMuPlus = GetHMFSParticle(fev, {pdgcodes::kMuPlus}); if (!FSMuPlus) { return; } TH_Helper::Fill(fPrediction_pmu, {FSMuPlus.P()}, weight); TH_Helper::Fill(fPrediction_ctheta, {FSMuPlus.CosTheta()}, weight); }; } void Write() { SimpleDataComparison_2DPoly::Write(); nuis::persistency::WriteToOutputFile( - fPrediction_fine, "Prediction_fine", write_directory); + fPrediction_fine, "Prediction_fine", fWrite_directory); nuis::persistency::WriteToOutputFile( - fPrediction_pmu, "fPrediction_pmu", write_directory); + fPrediction_pmu, "fPrediction_pmu", fWrite_directory); nuis::persistency::WriteToOutputFile( - fPrediction_ctheta, "fPrediction_ctheta", write_directory); + fPrediction_ctheta, "fPrediction_ctheta", fWrite_directory); nuis::persistency::WriteToOutputFile( - fPrediction_unscale, "Prediction_unscale", write_directory); + fPrediction_unscale, "Prediction_unscale", fWrite_directory); static std::vector> const binning = { {// Slice_0 YPolyBinSpec(450, 0.85), YPolyBinSpec(450, 0.95)}, {// Slice_1 YPolyBinSpec(550, 0.86), YPolyBinSpec(550, 0.93), YPolyBinSpec(550, 0.97)}, {// Slice_2 YPolyBinSpec(700, 0.89), YPolyBinSpec(700, 0.94), YPolyBinSpec(700, 0.98)}, {// Slice_3 YPolyBinSpec(900, 0.91), YPolyBinSpec(900, 0.95), YPolyBinSpec(900, 0.98)}, {// Slice_4 YPolyBinSpec(1200, 0.92), YPolyBinSpec(1200, 0.96), YPolyBinSpec(1200, 0.98)}, {// Slice_4 YPolyBinSpec(1600, 0.93), YPolyBinSpec(1600, 0.97), YPolyBinSpec(1600, 0.99)}, {// Slice_5 YPolyBinSpec(2500, 0.96), YPolyBinSpec(2500, 0.99)}, }; for (auto &slice : GetTH2PolySlices(fData, binning)) { nuis::persistency::WriteToOutputFile(slice, slice->GetName(), - write_directory); + fWrite_directory); } for (auto &slice : GetTH2PolySlices(fPrediction_xsec, binning)) { nuis::persistency::WriteToOutputFile(slice, slice->GetName(), - write_directory); + fWrite_directory); } } }; DECLARE_PLUGIN(IDataComparison, T2K_CC0Pi_H2O_xsec_2Dpcthetamu_numubar); DECLARE_PLUGIN(IEventProcessor, T2K_CC0Pi_H2O_xsec_2Dpcthetamu_numubar); diff --git a/src/samples/nuA/Nuclear/T2K/CC1Pi/T2K_CC1Pip_CH_xsec_muproj_nu.cxx b/src/samples/nuA/Nuclear/T2K/CC1Pi/T2K_CC1Pip_CH_xsec_muproj_nu.cxx index f9fa284..a546994 100644 --- a/src/samples/nuA/Nuclear/T2K/CC1Pi/T2K_CC1Pip_CH_xsec_muproj_nu.cxx +++ b/src/samples/nuA/Nuclear/T2K/CC1Pi/T2K_CC1Pip_CH_xsec_muproj_nu.cxx @@ -1,95 +1,95 @@ // Copyright 2018 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 . *******************************************************************************/ //******************************************************************** #include "samples/MultiDataComparison.hxx" #include "samples/SimpleDataComparison.hxx" #include "utility/EventTopologyUtility.hxx" #include "utility/FullEventUtility.hxx" #include "utility/KinematicUtility.hxx" #include "utility/PDGCodeUtility.hxx" #include "utility/experimental/T2KUtility.hxx" using namespace nuis::event; using namespace nuis::utility; class T2K_CC1Pip_CH_xsec_muproj_nu : public MultiDataComparison { public: T2K_CC1Pip_CH_xsec_muproj_nu() : MultiDataComparison("T2K_CC1Pip_CH_xsec_muproj_nu") { ReadGlobalConfigDefaults(); } enum distribution { kMomentumPion, kPmuThetamu, kPhi_adler, kQ2, kTheta_adler, kThetapimu, kThetapion }; void Initialize(fhicl::ParameterSet const &instance_sample_configuration) { // Perform any per-sample configuration in the base class MultiDataComparison::Initialize(instance_sample_configuration); // PmuThetamu.root // MomentumPion.root Thetapimu.root // MomentumPion.txt Q2.root Thetapimu.txt // phi_adler.root Q2.txt Thetapion.root // phi_adler.txt theta_adler.root Thetapion.txt std::unique_ptr MomentumPion( new SimpleDataComparison_1D("T2K_CC1Pip_CH_xsec_muproj_nu:MomentumPion")); MomentumPion->SetData( GetDataDir() + "nuA/Nuclear/T2K/CC0Pi/NProt_CH_xsec_STV_nu/MomentumPion.root;Momentum_pion (GeV)"); MomentumPion->Initialize( instance_sample_configuration.get("MomentumPion", {})); MomentumPion->CompProjFunc = [](FullEvent const &fev) -> std::array { return {GetHMFSParticle(fev,{pdgcodes::kPiPlus}).P() * 1E-3}; }; - std::string wd_stub = write_directory.size() ? write_directory + "/" : ""; - MomentumPion->write_directory = wd_stub + "MomentumPion"; + std::string wd_stub = fWrite_directory.size() ? fWrite_directory + "/" : ""; + MomentumPion->fWrite_directory = wd_stub + "MomentumPion"; Comparisons.emplace_back("MomentumPion", std::move(MomentumPion)); //! Define your event signal here. IsSigFunc = [](FullEvent const &fev) -> bool { // Is numuCC if (GetNParticles(fev, {pdgcodes::kMu}) != 1) { return false; } return t2k::IsCC1Pip_CH_MichTag(fev); }; } //! Here you can write any custom histograms to TTrees that your sample has //! been handling. void Write() { for (auto &comp : Comparisons) { comp.second->Write(); } } }; //! These declarations allow your class to be loaded dynamically by NUISANCE DECLARE_PLUGIN(IDataComparison, T2K_CC1Pip_CH_xsec_muproj_nu); DECLARE_PLUGIN(IEventProcessor, T2K_CC1Pip_CH_xsec_muproj_nu); diff --git a/src/samples/nuA/Nuclear/T2K/CC1Pi/T2K_CC1Pip_CH_xsec_piproj_nu.cxx b/src/samples/nuA/Nuclear/T2K/CC1Pi/T2K_CC1Pip_CH_xsec_piproj_nu.cxx index a0b5121..6273951 100644 --- a/src/samples/nuA/Nuclear/T2K/CC1Pi/T2K_CC1Pip_CH_xsec_piproj_nu.cxx +++ b/src/samples/nuA/Nuclear/T2K/CC1Pi/T2K_CC1Pip_CH_xsec_piproj_nu.cxx @@ -1,95 +1,95 @@ // Copyright 2018 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 . *******************************************************************************/ //******************************************************************** #include "samples/MultiDataComparison.hxx" #include "samples/SimpleDataComparison.hxx" #include "utility/EventTopologyUtility.hxx" #include "utility/FullEventUtility.hxx" #include "utility/KinematicUtility.hxx" #include "utility/PDGCodeUtility.hxx" #include "utility/experimental/T2KUtility.hxx" using namespace nuis::event; using namespace nuis::utility; class T2K_CC1Pip_CH_xsec_piproj_nu : public MultiDataComparison { public: T2K_CC1Pip_CH_xsec_piproj_nu() : MultiDataComparison("T2K_CC1Pip_CH_xsec_piproj_nu") { ReadGlobalConfigDefaults(); } enum distribution { kMomentumPion, kPmuThetamu, kPhi_adler, kQ2, kTheta_adler, kThetapimu, kThetapion }; void Initialize(fhicl::ParameterSet const &instance_sample_configuration) { // Perform any per-sample configuration in the base class MultiDataComparison::Initialize(instance_sample_configuration); // PmuThetamu.root // MomentumPion.root Thetapimu.root // MomentumPion.txt Q2.root Thetapimu.txt // phi_adler.root Q2.txt Thetapion.root // phi_adler.txt theta_adler.root Thetapion.txt std::unique_ptr MomentumPion( new SimpleDataComparison_1D("T2K_CC1Pip_CH_xsec_piproj_nu:MomentumPion")); MomentumPion->SetData( GetDataDir() + "nuA/Nuclear/T2K/CC0Pi/NProt_CH_xsec_STV_nu/MomentumPion.root;Momentum_pion (GeV)"); MomentumPion->Initialize( instance_sample_configuration.get("MomentumPion", {})); MomentumPion->CompProjFunc = [](FullEvent const &fev) -> std::array { return {GetHMFSParticle(fev,{pdgcodes::kPiPlus}).P() * 1E-3}; }; - std::string wd_stub = write_directory.size() ? write_directory + "/" : ""; - MomentumPion->write_directory = wd_stub + "MomentumPion"; + std::string wd_stub = fWrite_directory.size() ? fWrite_directory + "/" : ""; + MomentumPion->fWrite_directory = wd_stub + "MomentumPion"; Comparisons.emplace_back("MomentumPion", std::move(MomentumPion)); //! Define your event signal here. IsSigFunc = [](FullEvent const &fev) -> bool { // Is numuCC if (GetNParticles(fev, {pdgcodes::kMu}) != 1) { return false; } return t2k::IsCC1Pip_CH_RecPi(fev); }; } //! Here you can write any custom histograms to TTrees that your sample has //! been handling. void Write() { for (auto &comp : Comparisons) { comp.second->Write(); } } }; //! These declarations allow your class to be loaded dynamically by NUISANCE DECLARE_PLUGIN(IDataComparison, T2K_CC1Pip_CH_xsec_piproj_nu); DECLARE_PLUGIN(IEventProcessor, T2K_CC1Pip_CH_xsec_piproj_nu); diff --git a/src/utility/CMakeLists.txt b/src/utility/CMakeLists.txt index 8024eba..eb78233 100644 --- a/src/utility/CMakeLists.txt +++ b/src/utility/CMakeLists.txt @@ -1,32 +1,33 @@ set(utility_implementation_files FileSystemUtility.cxx FullEventUtility.cxx KinematicUtility.cxx PDGCodeUtility.cxx StringUtility.cxx EventTopologyUtility.cxx HistogramUtility.cxx PhaseSpaceRestriction.cxx) set(utility_header_files FileSystemUtility.hxx FullEventUtility.hxx InteractionChannelUtility.hxx KinematicUtility.hxx PDGCodeUtility.hxx ROOTUtility.hxx HistogramUtility.hxx StringUtility.hxx TerminalUtility.hxx StatsUtility.hxx EventTopologyUtility.hxx - PhaseSpaceRestriction.cxx) + PhaseSpaceRestriction.hxx + UnitsUtility.hxx) add_library(nuis_utility SHARED ${utility_implementation_files}) target_link_libraries(nuis_utility) install(TARGETS nuis_utility DESTINATION lib) install(FILES ${utility_header_files} DESTINATION include/utility) add_subdirectory(experimental) diff --git a/src/utility/FullEventUtility.cxx b/src/utility/FullEventUtility.cxx index 2dc3c74..9259e82 100644 --- a/src/utility/FullEventUtility.cxx +++ b/src/utility/FullEventUtility.cxx @@ -1,297 +1,312 @@ #include "utility/FullEventUtility.hxx" #include "event/FullEvent.hxx" #include "utility/PDGCodeUtility.hxx" #include "utility/PhaseSpaceRestriction.hxx" using namespace nuis::event; namespace nuis { namespace utility { event::Particle GetHMParticle(std::vector const &parts) { if (parts.size()) { return event::Particle(); } return *std::max_element( parts.begin(), parts.end(), [](event::Particle const &l, event::Particle const &r) { return l.P() < r.P(); }); } std::vector GetParticles(FullEvent const &ev, std::vector const &pdgs, Particle::Status_t status, bool include_matching_pdg) { std::vector selected_particles; for (auto const &parts : ev.ParticleStack) { if (parts.status != status) { continue; } for (Particle const &part : parts.particles) { bool matched_pdg = false; for (PDG_t pdg : pdgs) { matched_pdg = matched_pdg || (part.pdg == pdg); } bool keep = ((include_matching_pdg && matched_pdg) || (!include_matching_pdg && !matched_pdg)); if (!keep) { continue; } selected_particles.push_back(part); } } return selected_particles; } std::vector const &GetISParticles(FullEvent const &ev) { return ev .ParticleStack[static_cast( Particle::Status_t::kPrimaryInitialState)] .particles; } std::vector const &GetPrimaryFSParticles(FullEvent const &ev) { return ev .ParticleStack[static_cast( Particle::Status_t::kPrimaryFinalState)] .particles; } std::vector const &GetNuclearLeavingParticles(FullEvent const &ev) { return ev .ParticleStack[static_cast(Particle::Status_t::kNuclearLeaving)] .particles; } Particle GetHMParticle(FullEvent const &ev, std::vector const &pdgs, Particle::Status_t status, bool include_matching_pdg) { Particle HMParticle; for (auto const &parts : ev.ParticleStack) { if (parts.status != status) { continue; } for (Particle const &part : parts.particles) { bool matched_pdg = false; for (PDG_t pdg : pdgs) { matched_pdg = matched_pdg || (part.pdg == pdg); } bool keep = ((include_matching_pdg && matched_pdg) || (!include_matching_pdg && !matched_pdg)); if (!keep) { continue; } if (part.P() > HMParticle.P()) { HMParticle = part; } } } return HMParticle; } event::Particle GetHMISParticle(event::FullEvent const &ev, std::vector const &pdgs) { return GetHMParticle(ev, pdgs, Particle::Status_t::kPrimaryInitialState); } event::Particle GetHMFSParticle(event::FullEvent const &ev, std::vector const &pdgs) { return GetHMParticle(ev, pdgs); } std::vector GetFSChargedLeptons(FullEvent const &ev) { return GetParticles(ev, pdgcodes::ChargedLeptons); } std::vector GetFSNeutralLeptons(FullEvent const &ev) { return GetParticles(ev, pdgcodes::NeutralLeptons); } std::vector GetISNeutralLeptons(FullEvent const &ev) { return GetParticles(ev, pdgcodes::NeutralLeptons, Particle::Status_t::kPrimaryInitialState); } std::vector GetFSChargedPions(FullEvent const &ev) { return GetParticles(ev, pdgcodes::ChargedPions); } std::vector GetFSNeutralPions(FullEvent const &ev) { return GetParticles(ev, pdgcodes::NeutralPions); } std::vector GetFSPions(FullEvent const &ev) { return GetParticles(ev, pdgcodes::Pions); } std::vector GetFSProtons(FullEvent const &ev) { return GetParticles(ev, pdgcodes::Protons); } std::vector GetFSNeutrons(FullEvent const &ev) { return GetParticles(ev, pdgcodes::Neutron); } std::vector GetFSNucleons(FullEvent const &ev) { return GetParticles(ev, pdgcodes::Nucleons); } std::vector GetFSOthers(FullEvent const &ev) { return GetParticles(ev, pdgcodes::CommonParticles, Particle::Status_t::kNuclearLeaving, false); } Particle GetHMFSChargedLepton(FullEvent const &ev) { return GetHMParticle(ev, pdgcodes::ChargedLeptons); } Particle GetHMFSNeutralLepton(FullEvent const &ev) { return GetHMParticle(ev, pdgcodes::NeutralLeptons); } Particle GetHMFSLepton(event::FullEvent const &ev) { return GetHMParticle(ev, pdgcodes::Leptons); } Particle GetHMISNeutralLepton(FullEvent const &ev) { return GetHMParticle(ev, pdgcodes::NeutralLeptons, Particle::Status_t::kPrimaryInitialState); } +Particle GetHMISChargedLepton(FullEvent const &ev) { + return GetHMParticle(ev, pdgcodes::ChargedLeptons, + Particle::Status_t::kPrimaryInitialState); +} +Particle GetHMISLepton(event::FullEvent const &ev) { + return GetHMParticle(ev, pdgcodes::Leptons, + Particle::Status_t::kPrimaryInitialState); +} Particle GetHMFSChargedPion(FullEvent const &ev) { return GetHMParticle(ev, pdgcodes::ChargedPions); } Particle GetHMFSNeutralPion(FullEvent const &ev) { return GetHMParticle(ev, pdgcodes::NeutralPions); } Particle GetHMFSPion(FullEvent const &ev) { return GetHMParticle(ev, pdgcodes::Pions); } Particle GetHMFSProton(FullEvent const &ev) { return GetHMParticle(ev, pdgcodes::Protons); } Particle GetHMFSNeutron(FullEvent const &ev) { return GetHMParticle(ev, pdgcodes::Neutron); } Particle GetHMFSNucleon(FullEvent const &ev) { return GetHMParticle(ev, pdgcodes::Nucleons); } Particle GetHMFSOther(FullEvent const &ev) { return GetHMParticle(ev, pdgcodes::CommonParticles, Particle::Status_t::kNuclearLeaving, false); } Particle GetHMParticleInPhaseSpace(FullEvent const &ev, std::vector const &pdgs, IParticlePhaseSpaceRestriction const &ps, Particle::Status_t status, bool include_matching_pdg) { Particle HMParticle; for (auto const &parts : ev.ParticleStack) { if (parts.status != status) { continue; } for (Particle const &part : parts.particles) { if (!ps.Inside(part)) { continue; } bool matched_pdg = false; for (PDG_t pdg : pdgs) { matched_pdg = matched_pdg || (part.pdg == pdg); } bool keep = ((include_matching_pdg && matched_pdg) || (!include_matching_pdg && !matched_pdg)); if (!keep) { continue; } if (part.P() > HMParticle.P()) { HMParticle = part; } } } return HMParticle; } Particle GetHMFSProtonInPhaseSpace(FullEvent const &ev, IParticlePhaseSpaceRestriction const &ps) { return GetHMParticleInPhaseSpace(ev, pdgcodes::Protons, ps); } size_t GetNParticles(FullEvent const &ev, std::vector const &pdgs, Particle::Status_t status, bool include_matching_pdg) { size_t N = 0; for (auto const &parts : ev.ParticleStack) { if (parts.status != status) { continue; } for (Particle const &part : parts.particles) { bool matched_pdg = false; for (PDG_t pdg : pdgs) { matched_pdg = matched_pdg || (part.pdg == pdg); } bool keep = ((include_matching_pdg && matched_pdg) || (!include_matching_pdg && !matched_pdg)); if (!keep) { continue; } N++; } } return N; } size_t GetNParticlesInPhaseSpace(FullEvent const &ev, std::vector const &pdgs, IParticlePhaseSpaceRestriction const &ps, Particle::Status_t status, bool include_matching_pdg) { size_t N = 0; for (auto const &parts : ev.ParticleStack) { if (parts.status != status) { continue; } for (Particle const &part : parts.particles) { if (!ps.Inside(part)) { continue; } bool matched_pdg = false; for (PDG_t pdg : pdgs) { matched_pdg = matched_pdg || (part.pdg == pdg); } bool keep = ((include_matching_pdg && matched_pdg) || (!include_matching_pdg && !matched_pdg)); if (!keep) { continue; } N++; } } return N; } size_t GetNFSChargedLeptons(FullEvent const &ev) { return GetNParticles(ev, pdgcodes::ChargedLeptons); } size_t GetNFSNeutralLeptons(FullEvent const &ev) { return GetNParticles(ev, pdgcodes::NeutralLeptons); } size_t GetNFSLeptons(FullEvent const &ev) { return GetNParticles(ev, pdgcodes::Leptons); } size_t GetNISNeutralLeptons(FullEvent const &ev) { return GetNParticles(ev, pdgcodes::NeutralLeptons, Particle::Status_t::kPrimaryInitialState); } +size_t GetNISElectrons(FullEvent const &ev) { + return GetNParticles(ev, + { + pdgcodes::kElectron, + }, + Particle::Status_t::kPrimaryInitialState); +} size_t GetNFSChargedPions(FullEvent const &ev) { return GetNParticles(ev, pdgcodes::ChargedPions); } size_t GetNFSNeutralPions(FullEvent const &ev) { return GetNParticles(ev, pdgcodes::NeutralPions); } size_t GetNFSPions(FullEvent const &ev) { return GetNParticles(ev, pdgcodes::Pions); } size_t GetNFSProtons(FullEvent const &ev) { return GetNParticles(ev, pdgcodes::Protons); } size_t GetNFSNeutrons(FullEvent const &ev) { return GetNParticles(ev, pdgcodes::Neutron); } size_t GetNFSNucleons(FullEvent const &ev) { return GetNParticles(ev, pdgcodes::Nucleons); } size_t GetNFSOthers(FullEvent const &ev) { return GetNParticles(ev, pdgcodes::CommonParticles, Particle::Status_t::kNuclearLeaving, false); } } // namespace utility } // namespace nuis diff --git a/src/utility/FullEventUtility.hxx b/src/utility/FullEventUtility.hxx index 3b32390..130e374 100644 --- a/src/utility/FullEventUtility.hxx +++ b/src/utility/FullEventUtility.hxx @@ -1,124 +1,127 @@ // Copyright 2018 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 . *******************************************************************************/ #pragma once #include "event/Particle.hxx" #include "event/types.hxx" #include namespace nuis { namespace event { class FullEvent; } // namespace event } // namespace nuis namespace nuis { namespace utility { class IParticlePhaseSpaceRestriction; event::Particle GetHMParticle(std::vector); std::vector GetParticles(event::FullEvent const &, std::vector const &, event::Particle::Status_t status = event::Particle::Status_t::kNuclearLeaving, bool include_matching_pdg = true); std::vector const &GetISParticles(event::FullEvent const &); std::vector const & GetPrimaryFSParticles(event::FullEvent const &); std::vector const & GetNuclearLeavingParticles(event::FullEvent const &); event::Particle GetHMParticle(event::FullEvent const &, std::vector const &, event::Particle::Status_t status = event::Particle::Status_t::kNuclearLeaving, bool include_matching_pdg = true); event::Particle GetHMISParticle(event::FullEvent const &, std::vector const &); event::Particle GetHMFSParticle(event::FullEvent const &, std::vector const &); ///***********Getters that include copies std::vector GetFSChargedLeptons(event::FullEvent const &); std::vector GetFSNeutralLeptons(event::FullEvent const &); std::vector GetISNeutralLeptons(event::FullEvent const &); std::vector GetFSChargedPions(event::FullEvent const &); std::vector GetFSNeutralPions(event::FullEvent const &); std::vector GetFSPions(event::FullEvent const &); std::vector GetFSProtons(event::FullEvent const &); std::vector GetFSNeutrons(event::FullEvent const &); std::vector GetFSNucleons(event::FullEvent const &); std::vector GetFSOthers(event::FullEvent const &); event::Particle GetHMFSChargedLepton(event::FullEvent const &); event::Particle GetHMFSNeutralLepton(event::FullEvent const &); event::Particle GetHMFSLepton(event::FullEvent const &); +event::Particle GetHMISChargedLepton(event::FullEvent const &); event::Particle GetHMISNeutralLepton(event::FullEvent const &); +event::Particle GetHMISLepton(event::FullEvent const &); event::Particle GetHMFSChargedPion(event::FullEvent const &); event::Particle GetHMFSNeutralPion(event::FullEvent const &); event::Particle GetHMFSPion(event::FullEvent const &); event::Particle GetHMFSProton(event::FullEvent const &); event::Particle GetHMFSNeutron(event::FullEvent const &); event::Particle GetHMFSNucleon(event::FullEvent const &); event::Particle GetHMFSOther(event::FullEvent const &); event::Particle GetHMParticleInPhaseSpace(event::FullEvent const &ev, std::vector const &pdgs, IParticlePhaseSpaceRestriction const &ps, event::Particle::Status_t status = event::Particle::Status_t::kNuclearLeaving, bool include_matching_pdg = true); event::Particle GetHMFSProtonInPhaseSpace(event::FullEvent const &ev, IParticlePhaseSpaceRestriction const &ps); ///***********Counters requiring no copies size_t GetNParticles(event::FullEvent const &ev, std::vector const &pdgs, event::Particle::Status_t status = event::Particle::Status_t::kNuclearLeaving, bool include_matching_pdg = true); size_t GetNParticlesInPhaseSpace(event::FullEvent const &ev, std::vector const &pdgs, IParticlePhaseSpaceRestriction const &ps, event::Particle::Status_t status = event::Particle::Status_t::kNuclearLeaving, bool include_matching_pdg = true); size_t GetNFSChargedLeptons(event::FullEvent const &ev); size_t GetNFSNeutralLeptons(event::FullEvent const &ev); size_t GetNFSLeptons(event::FullEvent const &ev); size_t GetNISNeutralLeptons(event::FullEvent const &ev); +size_t GetNISElectrons(event::FullEvent const &ev); size_t GetNFSChargedPions(event::FullEvent const &ev); size_t GetNFSNeutralPions(event::FullEvent const &ev); size_t GetNFSPions(event::FullEvent const &ev); size_t GetNFSProtons(event::FullEvent const &ev); size_t GetNFSNeutrons(event::FullEvent const &ev); size_t GetNFSNucleons(event::FullEvent const &ev); size_t GetNFSOthers(event::FullEvent const &ev); } // namespace utility } // namespace nuis diff --git a/src/utility/HistogramUtility.cxx b/src/utility/HistogramUtility.cxx index 0528485..0448c12 100644 --- a/src/utility/HistogramUtility.cxx +++ b/src/utility/HistogramUtility.cxx @@ -1,154 +1,153 @@ #include "utility/HistogramUtility.hxx" #include #include namespace nuis { namespace utility { bool IsFlowBin(TAxis const &ax, Int_t bin_it) { return ((bin_it <= 0) || (bin_it >= (ax.GetNbins() + 1))); } bool IsInHistogramRange(TAxis const &ax, double v) { Int_t bin_it = ax.FindFixBin(v); return !IsFlowBin(ax, bin_it); } NEW_NUIS_EXCEPT(invalid_TH2Poly); NEW_NUIS_EXCEPT(invalid_PolyBinSpecifierList); std::vector> GetTH2PolySlices( std::unique_ptr &hinp, std::vector> const &BinsSpecifiers) { std::vector> slices; size_t sl_it = 0; for (auto &slice_spec : BinsSpecifiers) { std::vector Binning; std::vector BinContent; std::vector BinError; bool UseXAxis = false; size_t bin_ctr = 0; for (auto poly_bin_spec : slice_spec) { Int_t bin_it = hinp->FindBin(poly_bin_spec.X, poly_bin_spec.Y); if (bin_it < 1) { std::cout << "[WARN]: When searching for matching bin: { X: " << poly_bin_spec.X << ", Y: " << poly_bin_spec.Y << "} got flow bin: " << bin_it << std::endl; continue; } TH2PolyBin *poly_bin = dynamic_cast(hinp->GetBins()->At(bin_it - 1)); if (!bin_ctr) { UseXAxis = poly_bin_spec.UseXAxis; } else if (UseXAxis != poly_bin_spec.UseXAxis) { throw invalid_PolyBinSpecifierList() << "[ERROR]: For slice: " << sl_it << " of TH2Poly: " << std::quoted(hinp->GetName()) << " bin specifier: " << bin_ctr << " was set to use the " << (poly_bin_spec.UseXAxis ? "X" : "Y") << " axis as the dependent axis of the slice, but previous bins " "were set to use the " << (poly_bin_spec.UseXAxis ? "X" : "Y") << " axis."; } if ((poly_bin_spec.X < poly_bin->GetXMin()) || (poly_bin_spec.X >= poly_bin->GetXMax()) || (poly_bin_spec.Y < poly_bin->GetYMin()) || (poly_bin_spec.Y >= poly_bin->GetYMax())) { std::cout << "[WARN]: Found bin doesn't seem to contain expected point: { X: " << poly_bin_spec.X << ", Y: " << poly_bin_spec.Y << "}, got bin_it = " << bin_it << " which had x_low: " << poly_bin->GetXMin() << ", and x_up: " << poly_bin->GetXMax() << ", y_low: " << poly_bin->GetYMin() << ", y_up: " << poly_bin->GetYMax() << std::endl; } double low = UseXAxis ? poly_bin->GetXMin() : poly_bin->GetYMin(); double up = UseXAxis ? poly_bin->GetXMax() : poly_bin->GetYMax(); if (!Binning.size()) { // Add low edge Binning.push_back(low); } else if (std::abs(Binning.back() - low) > (std::numeric_limits::epsilon() * 1E2)) { BinContent.push_back(0); BinError.push_back(0); Binning.push_back(low); } BinContent.push_back(hinp->GetBinContent(bin_it)); BinError.push_back(hinp->GetBinError(bin_it)); Binning.push_back(up); } slices.emplace_back(new TH1D( (std::string(hinp->GetName()) + "_slice" + std::to_string(sl_it++)) .c_str(), (std::string(";") + (UseXAxis ? hinp->GetXaxis() : hinp->GetYaxis())->GetTitle() + ";" + hinp->GetZaxis()->GetTitle()) .c_str(), Binning.size() - 1, Binning.data())); for (size_t bin_it = 0; bin_it < BinContent.size(); ++bin_it) { slices.back()->SetBinContent(bin_it + 1, BinContent[bin_it]); slices.back()->SetBinError(bin_it + 1, BinError[bin_it]); } } return slices; } void SliceNorm(std::unique_ptr &hist, bool AlongY, char const *opt) { std::string opt_str = opt; std::transform(opt_str.begin(), opt_str.end(), opt_str.begin(), ::tolower); bool width = (opt_str.find("width") != std::string::npos); for (int slice_it = 0; slice_it < (AlongY ? hist->GetXaxis() : hist->GetYaxis())->GetNbins(); ++slice_it) { int xl = AlongY ? slice_it + 1 : 1; int xu = AlongY ? slice_it + 1 : hist->GetXaxis()->GetNbins(); int yl = AlongY ? 1 : slice_it + 1; int yu = AlongY ? hist->GetYaxis()->GetNbins() : slice_it + 1; double integral = hist->Integral(xl, xu, yl, yu, opt); if (integral <= 0) { continue; } - double integ_check= 0; + double integ_check = 0; for (int bin_it = 0; bin_it < (AlongY ? hist->GetYaxis() : hist->GetXaxis())->GetNbins(); ++bin_it) { double s = 1.0 / integral; if (width) { if (AlongY) { s /= (hist->GetXaxis()->GetBinWidth(slice_it + 1) * hist->GetYaxis()->GetBinWidth(bin_it + 1)); } else { s /= (hist->GetYaxis()->GetBinWidth(slice_it + 1) * hist->GetXaxis()->GetBinWidth(bin_it + 1)); } } if (AlongY) { hist->SetBinContent(slice_it + 1, bin_it + 1, hist->GetBinContent(slice_it + 1, bin_it + 1) * s); hist->SetBinError(slice_it + 1, bin_it + 1, - hist->GetBinError(slice_it + 1, bin_it + 1) * s); + hist->GetBinError(slice_it + 1, bin_it + 1) * s); } else { hist->SetBinContent(bin_it + 1, slice_it + 1, hist->GetBinContent(bin_it + 1, slice_it + 1) * s); hist->SetBinError(bin_it + 1, slice_it + 1, - hist->GetBinError(bin_it + 1, slice_it + 1) * s); + hist->GetBinError(bin_it + 1, slice_it + 1) * s); } } - } } } // namespace utility } // namespace nuis diff --git a/src/utility/HistogramUtility.hxx b/src/utility/HistogramUtility.hxx index 9e038df..9df041c 100644 --- a/src/utility/HistogramUtility.hxx +++ b/src/utility/HistogramUtility.hxx @@ -1,480 +1,510 @@ // Copyright 2018 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 . *******************************************************************************/ #pragma once #include "utility/ROOTUtility.hxx" #include "exception/exception.hxx" #include "string_parsers/from_string.hxx" #include "fhiclcpp/ParameterSet.h" #include "TAxis.h" #include "TH1D.h" #include "TH1F.h" #include "TH2D.h" #include "TH2F.h" #include "TH2Poly.h" #include #include #include #include namespace nuis { namespace utility { NEW_NUIS_EXCEPT(unimplemented_GetHistogram_method); NEW_NUIS_EXCEPT(invalid_histogram_descriptor); NEW_NUIS_EXCEPT(invalid_histogram_name); NEW_NUIS_EXCEPT(failed_to_clone); bool IsFlowBin(TAxis const &ax, Int_t bin_it); bool IsInHistogramRange(TAxis const &ax, double v); template struct HType_traits {}; template <> struct HType_traits { using type = TH1; static size_t const NDim = 1; using NumericT = double; static std::string name() { return "TH1"; } }; template <> struct HType_traits { using type = TH1D; static size_t const NDim = 1; using NumericT = double; static std::string name() { return "TH1D"; } }; template <> struct HType_traits { using type = TH1F; static size_t const NDim = 1; using NumericT = float; static std::string name() { return "TH1F"; } }; template <> struct HType_traits { using type = TH2; static size_t const NDim = 2; using NumericT = double; static std::string name() { return "TH2"; } }; template <> struct HType_traits { using type = TH2D; static size_t const NDim = 2; using NumericT = double; static std::string name() { return "TH2D"; } }; template <> struct HType_traits { using type = TH2F; static size_t const NDim = 2; using NumericT = float; static std::string name() { return "TH2F"; } }; template <> struct HType_traits { using type = TH2Poly; static size_t const NDim = 0; using NumericT = double; static std::string name() { return "TH2Poly"; } }; template struct HType_Helper {}; template <> struct HType_Helper<1, void> { using type = TH1; static size_t const NDim = HType_traits::NDim; using NumericT = HType_traits::NumericT; static std::string name() { return HType_traits::name(); } }; template <> struct HType_Helper<1, double> { using type = TH1D; static size_t const NDim = HType_traits::NDim; using NumericT = HType_traits::NumericT; static std::string name() { return HType_traits::name(); } }; template <> struct HType_Helper<1, float> { using type = TH1F; static size_t const NDim = HType_traits::NDim; using NumericT = HType_traits::NumericT; static std::string name() { return HType_traits::name(); } }; template <> struct HType_Helper<2, void> { using type = TH2; static size_t const NDim = HType_traits::NDim; using NumericT = HType_traits::NumericT; static std::string name() { return HType_traits::name(); } }; template <> struct HType_Helper<2, double> { using type = TH2D; static size_t const NDim = HType_traits::NDim; using NumericT = HType_traits::NumericT; static std::string name() { return HType_traits::name(); } }; template <> struct HType_Helper<2, float> { using type = TH2F; static size_t const NDim = HType_traits::NDim; using NumericT = HType_traits::NumericT; static std::string name() { return HType_traits::name(); } }; template struct TH_Helper {}; template struct TH_Helper::NDim == 1>::type> { static size_t const NDim = HType_traits::NDim; using NumericT = typename HType_traits::NumericT; static std::string name() { return HType_traits::name(); } static Int_t NbinsIncludeFlow(HT const &h) { return h.GetXaxis()->GetNbins() + 2; } static Int_t Nbins(HT const &h) { return h.GetXaxis()->GetNbins(); } static bool IsFlowBin(HT const &h, Int_t bin_it) { return nuis::utility::IsFlowBin(*h.GetXaxis(), bin_it); } static void Fill(HT &h, std::array const &v, double w = 1) { h.Fill(v[0], w); } static void Scale(HT &h, NumericT SF, char const *opt = "") { h.Scale(SF, opt); } static double Integral(HT const &h, char const *opt = "") { return h.Integral(opt); } static Int_t NbinsIncludeFlow(std::unique_ptr const &h) { return NbinsIncludeFlow(*h); } static Int_t Nbins(std::unique_ptr const &h) { return Nbins(*h); } static bool IsFlowBin(std::unique_ptr const &h, Int_t bin_it) { return IsFlowBin(*h, bin_it); } static void Fill(std::unique_ptr &h, std::array const &v, double w = 1) { Fill(*h, v, w); } static void Scale(std::unique_ptr &h, NumericT SF, char const *opt = "") { Scale(*h, SF, opt); } static double Integral(std::unique_ptr const &h, char const *opt = "") { return Integral(*h, opt); } }; template struct TH_Helper::NDim == 2>::type> { static size_t const NDim = HType_traits::NDim; using NumericT = typename HType_traits::NumericT; static std::string name() { return HType_traits::name(); } // TH2 *************************************************************** static Int_t NbinsIncludeFlow(HT const &h) { return (h.GetXaxis()->GetNbins() + 2) * (h.GetYaxis()->GetNbins() + 2); } static Int_t Nbins(HT const &h) { return (h.GetXaxis()->GetNbins()) * (h.GetYaxis()->GetNbins()); } static bool IsFlowBin(HT const &h, Int_t xbin_it, Int_t ybin_it) { return nuis::utility::IsFlowBin(*h.GetXaxis(), xbin_it) || nuis::utility::IsFlowBin(*h.GetYaxis(), ybin_it); } static void Fill(HT &h, std::array const &v, double w = 1) { h.Fill(v[0], v[1], w); } static void Scale(HT &h, NumericT SF, char const *opt = "") { h.Scale(SF, opt); } static double Integral(HT const &h, char const *opt = "") { return h.Integral(opt); } static Int_t NbinsIncludeFlow(std::unique_ptr const &h) { return NbinsIncludeFlow(*h); } static Int_t Nbins(std::unique_ptr const &h) { return Nbins(*h); } static bool IsFlowBin(std::unique_ptr const &h, Int_t xbin_it, Int_t ybin_it) { return IsFlowBin(*h, xbin_it, ybin_it); } static void Fill(std::unique_ptr &h, std::array const &v, double w = 1) { Fill(*h, v, w); } static void Scale(std::unique_ptr &h, NumericT SF, char const *opt = "") { Scale(*h, SF, opt); } static double Integral(std::unique_ptr const &h, char const *opt = "") { return Integral(*h, opt); } }; template struct TH_Helper< HT, typename std::enable_if::value>::type> { static size_t const NDim = 2; using NumericT = typename HType_traits::NumericT; static std::string name() { return HType_traits::name(); } // TH2Poly *************************************************************** static Int_t NbinsIncludeFlow(HT const &h) { return h.GetNumberOfBins() + 9; } static Int_t Nbins(HT const &h) { return h.GetNumberOfBins(); } static bool IsFlowBin(HT const &h, Int_t bin_it) { return (bin_it < 0); } static void Fill(HT &h, std::array const &v, double w = 1) { h.Fill(v[0], v[1], w); } static void Scale(HT &h, NumericT SF, char const *opt = "") { bool width = (std::string(opt).find("width") != std::string::npos); size_t nbins = Nbins(h); for (size_t bin_it = 0; bin_it < nbins; ++bin_it) { double bin_area = 1; if (width) { TH2PolyBin *poly_bin = dynamic_cast(h.GetBins()->At(bin_it)); bin_area = poly_bin->GetArea(); } h.SetBinContent(bin_it + 1, h.GetBinContent(bin_it + 1) * (SF / bin_area)); h.SetBinError(bin_it + 1, h.GetBinError(bin_it + 1) * (SF / bin_area)); } } static double Integral(HT &h, char const *opt = "") { bool width = (std::string(opt).find("width") != std::string::npos); size_t nbins = Nbins(h); double integral = 0; for (size_t bin_it = 0; bin_it < nbins; ++bin_it) { double bin_area = 1; if (width) { TH2PolyBin *poly_bin = dynamic_cast(h.GetBins()->At(bin_it)); bin_area = poly_bin->GetArea(); } integral += h.GetBinContent(bin_it + 1) * bin_area; } return integral; } static Int_t NbinsIncludeFlow(std::unique_ptr const &h) { return NbinsIncludeFlow(*h); } static Int_t Nbins(std::unique_ptr const &h) { return Nbins(*h); } static bool IsFlowBin(std::unique_ptr const &h, Int_t bin_it) { return IsFlowBin(*h, bin_it); } static void Fill(std::unique_ptr &h, std::array const &v, double w = 1) { Fill(*h, v, w); } static void Scale(std::unique_ptr &h, NumericT SF, char const *opt = "") { Scale(*h, SF, opt); } static double Integral(std::unique_ptr &h, char const *opt = "") { return Integral(*h, opt); } }; template void Clear(typename std::enable_if::NDim != 0, HT>::type &h) { for (Int_t bin_it = 0; bin_it < TH_Helper::NbinsIncludeFlow(h); ++bin_it) { h.SetBinContent(bin_it, 0); h.SetBinError(bin_it, 0); } } template void Clear( typename std::enable_if::value, HT>::type &h) { h.ClearBinContents(); } template inline std::unique_ptr Clone(HT const &source, bool clear = false, std::string const &clone_name = "") { std::unique_ptr target(dynamic_cast( source.Clone(clone_name.size() ? clone_name.c_str() : ""))); if (!target) { throw failed_to_clone() << "[ERROR]: Failed to clone a " << TH_Helper::name() << "."; } target->SetDirectory(nullptr); if (clear) { Clear(*target); } return target; } template inline std::unique_ptr Clone(std::unique_ptr const &source, bool clear = false, std::string const &clone_name = "") { return Clone(*source, clear, clone_name); } template inline std::unique_ptr GetHistogramFromROOTFile(TFile_ptr &f, std::string const &hname, bool ThrowIfMissing = true) { TObject *obj = f->Get(hname.c_str()); if (!obj) { if (ThrowIfMissing) { throw invalid_histogram_name() << "[ERROR]: Failed to get " << TH_Helper::name() << " named " << std::quoted(hname) << " from input file " << std::quoted(f->GetName()); } else { return nullptr; } } if (std::string(obj->ClassName()) == "TList") { obj = static_cast(obj)->At(0); } HT *h = dynamic_cast(obj); if (!h) { if (ThrowIfMissing) { throw invalid_histogram_name() << "[ERROR]: Failed to cast " << std::quoted(hname) << " to " << TH_Helper::name() << " from input file " << std::quoted(f->GetName()); } else { return nullptr; } } std::unique_ptr clone = Clone(*h); return clone; } template inline std::unique_ptr GetHistogramFromROOTFile(std::string const &fname, std::string const &hname, bool ThrowIfMissing = true) { TFile_ptr temp = CheckOpenTFile(fname, "READ"); return GetHistogramFromROOTFile(temp, hname, ThrowIfMissing); } template std::unique_ptr GetHistogram(std::string const &input_descriptor) { std::vector split_descriptor = fhicl::string_parsers::ParseToVect(input_descriptor, ";", true, true); if (split_descriptor.size() == 1) { // assume text throw unimplemented_GetHistogram_method(); } else if (split_descriptor.size() == 2) { return GetHistogramFromROOTFile(split_descriptor[0], split_descriptor[1]); } else { throw invalid_histogram_descriptor() << "[ERROR]: Failed to parse histogram descriptor: " << std::quoted(input_descriptor) << " as an input histogram (Text/ROOT)."; } } struct PolyBinSpecifier { double X, Y; bool UseXAxis; }; constexpr PolyBinSpecifier XPolyBinSpec(double X, double Y) { return PolyBinSpecifier{X + std::numeric_limits::epsilon() * 1E2, Y + std::numeric_limits::epsilon() * 1E2, true}; } constexpr PolyBinSpecifier YPolyBinSpec(double X, double Y) { return PolyBinSpecifier{X + std::numeric_limits::epsilon() * 1E2, Y + std::numeric_limits::epsilon() * 1E2, false}; } std::vector> GetTH2PolySlices( std::unique_ptr &hinp, std::vector> const &BinsSpecifiers); template inline typename std::enable_if::NDim == 1, - std::unique_ptr>::type + std::unique_ptr>::type BuildHistFromFHiCL(fhicl::ParameterSet const &ps) { std::array xaxis = ps.get>("xaxis_descriptor"); - std::unique_ptr rtn = std::make_unique( + std::unique_ptr rtn = std::make_unique( ps.get("name", "").c_str(), ps.get("title", "").c_str(), xaxis[0], xaxis[1], xaxis[2]); rtn->SetDirectory(nullptr); return rtn; } template inline typename std::enable_if::NDim == 2, - std::unique_ptr>::type + std::unique_ptr>::type BuildHistFromFHiCL(fhicl::ParameterSet const &ps) { std::array xaxis = ps.get>("xaxis_descriptor"); std::array yaxis = ps.get>("yaxis_descriptor"); - std::unique_ptr rtn = - std::make_unique(ps.get("name", "").c_str(), - ps.get("title", "").c_str(), xaxis[0], - xaxis[1], xaxis[2], yaxis[0], yaxis[1], yaxis[2]); + std::unique_ptr rtn = + std::make_unique(ps.get("name", "").c_str(), + ps.get("title", "").c_str(), xaxis[0], + xaxis[1], xaxis[2], yaxis[0], yaxis[1], yaxis[2]); rtn->SetDirectory(nullptr); return rtn; } static bool const kYSlice = true; static bool const kXSlice = false; void SliceNorm(std::unique_ptr &hist, bool AlongY = kYSlice, char const *opt = ""); +template +inline void PeakScale(std::unique_ptr &hist, double sf) { + Int_t mb = hist->GetMaximumBin(); + double max = hist->GetBinContent(mb); + hist->Scale(sf / max); +} + +template <> inline void PeakScale(std::unique_ptr &g, double sf) { + size_t n = g->GetN(); + double max = -std::numeric_limits::max(); + for (size_t i = 0; i < n; ++i) { + double x, y; + g->GetPoint(i, x, y); + max = std::max(max, y); + } + + for (size_t i = 0; i < n; ++i) { + double x, y; + g->GetPoint(i, x, y); + g->SetPoint(i, x, y * (sf / max)); + + TGraphErrors *ge = dynamic_cast(g.get()); + if (ge) { + double ex = ge->GetErrorX(i); + double ey = ge->GetErrorY(i); + ge->SetPointError(i, ex, ey * (sf / max)); + } + } +} + } // namespace utility } // namespace nuis diff --git a/src/utility/PDGCodeUtility.cxx b/src/utility/PDGCodeUtility.cxx index d2d7e4b..968f9d7 100644 --- a/src/utility/PDGCodeUtility.cxx +++ b/src/utility/PDGCodeUtility.cxx @@ -1,128 +1,144 @@ #include "utility/PDGCodeUtility.hxx" #include #include using namespace nuis::event; using namespace nuis::utility::pdgcodes; using namespace nuis::utility::pdgmasses; namespace nuis { namespace utility { static std::map const PDGMasses{ {kNuMu, kNuMuMass_MeV}, {kNuMuBar, kNuMuBarMass_MeV}, {kMu, kMuMass_MeV}, {kMuPlus, kMuPlusMass_MeV}, {kNue, kNueMass_MeV}, {kNueBar, kNueBarMass_MeV}, {kPiPlus, kPiPlusMass_MeV}, {kPiMinus, kPiMinusMass_MeV}, {kPi0, kPi0Mass_MeV}, {kProton, kNeutronMass_MeV}, {kNeutron, kProtonMass_MeV}}; double GetPDGMass(PDG_t pdg) { if (PDGMasses.find(pdg) == PDGMasses.end()) { throw unhandled_pdg_code() << "[ERROR]: Unknown mass for particle with PDG code: " << pdg << ", please add it to src/utility/PDGCodeUtility.cxx:PDGMasses"; } return PDGMasses.at(pdg); } NEW_NUIS_EXCEPT(invalid_MatterType); +NEW_NUIS_EXCEPT(invalid_neutral_lepton_pdg); +NEW_NUIS_EXCEPT(invalid_charged_lepton_pdg); bool IsInPDGList(PDG_t pdg, std::vector const &MatterList, std::vector const &AntiMatterList, MatterType type) { switch (type) { case kMatter: { return std::count(MatterList.begin(), MatterList.end(), pdg); } case kMatterAntimatter: { return std::count(MatterList.begin(), MatterList.end(), pdg) || std::count(AntiMatterList.begin(), AntiMatterList.end(), pdg); } case kAntimatter: { return std::count(AntiMatterList.begin(), AntiMatterList.end(), pdg); } default: { throw invalid_MatterType(); } } } bool IsNeutralLepton(PDG_t pdg, MatterType type) { return IsInPDGList(pdg, NeutralLeptons_matter, NeutralLeptons_antimatter, type); } bool IsChargedLepton(PDG_t pdg, MatterType type) { return IsInPDGList(pdg, ChargedLeptons_matter, ChargedLeptons_antimatter, type); } +PDG_t GetChargedLeptonPDG(PDG_t pdg) { + if (!IsNeutralLepton(pdg)) { + throw invalid_neutral_lepton_pdg() + << std::to_string(pdg) << " is not a neutral lepton PDG code."; + } + return pdg + (IsMatter(pdg) ? -1 : 1); +} +PDG_t GetNeutralLeptonPDG(PDG_t pdg) { + if (!IsNeutralLepton(pdg)) { + throw invalid_charged_lepton_pdg() + << std::to_string(pdg) << " is not a neutral lepton PDG code."; + } + return pdg + (IsMatter(pdg) ? 1 : -1); +} bool IsProton(PDG_t pdg, MatterType type) { return IsInPDGList(pdg, Proton_matter, Proton_antimatter, type); } bool IsNeutron(PDG_t pdg) { return pdg == Neutron[0]; } bool IsChargedPion(PDG_t pdg) { return std::count(ChargedPions.begin(), ChargedPions.end(), pdg); } bool IsNeutralPion(PDG_t pdg) { return (pdg == kPi0); } bool IsPositivePion(PDG_t pdg) { return (pdg == kPiPlus); } bool IsNegativePion(PDG_t pdg) { return (pdg == kPiMinus); } bool IsPion(PDG_t pdg) { return std::count(Pions.begin(), Pions.end(), pdg); } bool IsChargedKaon(PDG_t pdg) { return std::count(ChargedKaons.begin(), ChargedKaons.end(), pdg); } bool IsNeutralKaon(PDG_t pdg) { return std::count(NeutralKaons.begin(), NeutralKaons.end(), pdg); } bool IsPositiveKaon(PDG_t pdg) { return (pdg == kKPlus); } bool IsNegativeKaon(PDG_t pdg) { return (pdg == kKMinus); } bool IsKaon(PDG_t pdg) { return std::count(Kaons.begin(), Kaons.end(), pdg); } bool IsGamma(PDG_t pdg) { return (pdg == kGamma); } bool IsOther(PDG_t pdg) { return !std::count(CommonParticles.begin(), CommonParticles.end(), pdg); } bool IsMatter(PDG_t pdg) { // Special cases switch (pdg) { case kPiPlus: { return true; } case kPiMinus: { return true; } case kPi0: { return true; } case kNeutron: { return true; } } return (pdg > 0); } bool IsAntiMatter(PDG_t pdg) { // Special cases switch (pdg) { case kPiPlus: { return true; } case kPiMinus: { return true; } case kPi0: { return true; } case kNeutron: { return true; } } return (pdg < 0); } -bool IsNuclearPDG(event::PDG_t pdg) { return (pdg > 1000000000); } +bool IsNuclearPDG(PDG_t pdg) { return (pdg > 1000000000); } PDG_t MakeNuclearPDG(size_t A, size_t Z) { - return 1000 * Z + 10 * A + 1000000000; + return (10000 * Z) + (10 * A) + 1000000000; } size_t GetA(PDG_t pdg) { return ((pdg / 10) % 1000); } -size_t GetZ(PDG_t pdg) { return ((pdg / 1000) % 1000); } +size_t GetZ(PDG_t pdg) { return ((pdg / 10000) % 1000); } } // namespace utility } // namespace nuis diff --git a/src/utility/PDGCodeUtility.hxx b/src/utility/PDGCodeUtility.hxx index 26e0307..76620a3 100644 --- a/src/utility/PDGCodeUtility.hxx +++ b/src/utility/PDGCodeUtility.hxx @@ -1,157 +1,161 @@ // Copyright 2018 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 . *******************************************************************************/ #pragma once #include "event/types.hxx" #include "exception/exception.hxx" #include namespace nuis { namespace utility { namespace pdgcodes { NEW_NUIS_EXCEPT(unhandled_pdg_code); enum MatterType { kMatter = 1, kMatterAntimatter = 0, kAntimatter = -1 }; static event::PDG_t const kDefault = 0; static event::PDG_t const kNuMu = 14; static event::PDG_t const kNuMuBar = -14; static event::PDG_t const kMu = 13; static event::PDG_t const kMuPlus = -13; static event::PDG_t const kElectron = 11; static event::PDG_t const kPositron = -11; static event::PDG_t const kNue = 12; static event::PDG_t const kNueBar = -12; static event::PDG_t const kPiPlus = 211; static event::PDG_t const kPiMinus = -211; static event::PDG_t const kPi0 = 111; static event::PDG_t const kK0Long = 130; static event::PDG_t const kK0Short = 130; static event::PDG_t const kK0 = 311; static event::PDG_t const kKPlus = 321; static event::PDG_t const kKMinus = -321; static event::PDG_t const kProton = 2212; static event::PDG_t const kNeutron = 2112; static event::PDG_t const kGamma = 22; static std::vector const ChargedLeptons{kElectron, kMu, 15, kPositron, kMuPlus, -15}; static std::vector const ChargedLeptons_matter{kElectron, kMu, 15}; static std::vector const ChargedLeptons_antimatter{kPositron, kMuPlus, -15}; static std::vector const NeutralLeptons{kNue, kNuMu, 16, kNueBar, kNuMuBar, -16}; static std::vector const NeutralLeptons_matter{kNue, kNuMu, 16}; static std::vector const NeutralLeptons_antimatter{kNueBar, kNuMuBar, -16}; static std::vector const Leptons{ kElectron, kMu, 15, kPositron, kMuPlus, -15, kNue, kNuMu, 16, kNueBar, kNuMuBar, -16}; static std::vector const ChargedPions{kPiPlus, kPiMinus}; static std::vector const NeutralPions{kPi0}; static std::vector const Pions{kPiPlus, kPiMinus, kPi0}; static std::vector const ChargedKaons{kKPlus, kKMinus}; static std::vector const NeutralKaons{kK0, kK0Long, kK0Short}; static std::vector const Kaons{kKPlus, kKMinus, kK0, kK0Long, kK0Short}; static std::vector const Protons{kProton, -kProton}; static std::vector const Proton_matter{kProton}; static std::vector const Proton_antimatter{-kProton}; static std::vector const Neutron{kNeutron}; static std::vector const Nucleons{kProton, kNeutron, -kProton}; static std::vector const Nucleons_matter{kProton, kNeutron}; static std::vector const Nucleons_antimatter{-kProton, kNeutron}; static std::vector const CommonParticles{ kElectron, kMu, 15, kPositron, kMuPlus, -15, kNue, kNuMu, 16, kNueBar, kNuMuBar, -16, kPiPlus, kPiMinus, kPi0, kProton, kNeutron}; } // namespace pdgcodes namespace pdgmasses { static double const kNuMuMass_MeV = 0; static double const kNuMuBarMass_MeV = 0; static double const kMuMass_MeV = 105.65; static double const kMuPlusMass_MeV = 105.65; static double const kNueMass_MeV = 0; static double const kNueBarMass_MeV = 0; static double const kPiPlusMass_MeV = 139.57; static double const kPiMinusMass_MeV = 139.57; static double const kPi0Mass_MeV = 134.97; static double const kNeutronMass_MeV = 939.56; static double const kProtonMass_MeV = 938.27; static double const kNucleonAverageMass_MeV = 938.27; } // namespace pdgmasses double GetPDGMass(event::PDG_t); bool IsInPDGList(event::PDG_t pdg, std::vector const &MatterList, std::vector const &AntiMatterList, pdgcodes::MatterType type = pdgcodes::kMatterAntimatter); bool IsNeutralLepton(event::PDG_t pdg, pdgcodes::MatterType type = pdgcodes::kMatterAntimatter); bool IsChargedLepton(event::PDG_t pdg, pdgcodes::MatterType type = pdgcodes::kMatterAntimatter); + +event::PDG_t GetChargedLeptonPDG(event::PDG_t pdg); +event::PDG_t GetNeutralLeptonPDG(event::PDG_t pdg); + bool IsProton(event::PDG_t pdg, pdgcodes::MatterType type = pdgcodes::kMatterAntimatter); bool IsNeutron(event::PDG_t pdg); bool IsChargedPion(event::PDG_t pdg); bool IsPositivePion(event::PDG_t pdg); bool IsNegativePion(event::PDG_t pdg); bool IsNeutralPion(event::PDG_t pdg); bool IsPion(event::PDG_t pdg); bool IsChargedKaon(event::PDG_t pdg); bool IsPositiveKaon(event::PDG_t pdg); bool IsNegativeKaon(event::PDG_t pdg); bool IsNeutralKaon(event::PDG_t pdg); bool IsKaon(event::PDG_t pdg); bool IsGamma(event::PDG_t pdg); bool IsOther(event::PDG_t pdg); bool IsMatter(event::PDG_t pdg); bool IsAntiMatter(event::PDG_t pdg); bool IsNuclearPDG(event::PDG_t pdg); event::PDG_t MakeNuclearPDG(size_t A, size_t Z); size_t GetA(event::PDG_t); size_t GetZ(event::PDG_t); } // namespace utility } // namespace nuis diff --git a/src/utility/PhaseSpaceRestriction.cxx b/src/utility/PhaseSpaceRestriction.cxx index fd3571b..04c22f9 100644 --- a/src/utility/PhaseSpaceRestriction.cxx +++ b/src/utility/PhaseSpaceRestriction.cxx @@ -1,37 +1,39 @@ // Copyright 2018 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 . *******************************************************************************/ #include "utility/PhaseSpaceRestriction.hxx" #include "event/Particle.hxx" +#include + namespace nuis { namespace utility { bool SimpleParticlePhaseSpaceRestriction::Inside( nuis::event::Particle const &part) const { double ep = IsERange ? part.E() : part.P(); double ct = part.CosTheta(); if (!EMomRange.IsInRange(ep) || !CosThetaRange.IsInRange(ct)) { return false; } return true; } } // namespace utility } // namespace nuis diff --git a/src/utility/ROOTUtility.hxx b/src/utility/ROOTUtility.hxx index 2099789..6712147 100644 --- a/src/utility/ROOTUtility.hxx +++ b/src/utility/ROOTUtility.hxx @@ -1,181 +1,201 @@ // Copyright 2018 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 . *******************************************************************************/ #ifndef UTILITY_ROOTUTILITY_HXX_SEEN #define UTILITY_ROOTUTILITY_HXX_SEEN #include "exception/exception.hxx" #include "TFile.h" +#include "TGraph.h" +#include "TGraphErrors.h" #include "TTree.h" #include #include #include #include namespace nuis { namespace utility { NEW_NUIS_EXCEPT(failed_to_open_TFile); NEW_NUIS_EXCEPT(failed_to_get_TTree); NEW_NUIS_EXCEPT(WriteToTFile_nullptr); +NEW_NUIS_EXCEPT(InvalidDataColumns); inline void CloseTFile(TFile *f = nullptr) { if (f) { std::cout << "[INFO]: Shutting TFile: " << f->GetName() << ", " << f << std::endl; f->Close(); } delete f; } using TFile_ptr = std::unique_ptr; inline TFile_ptr make_unique_TFile(TFile *f) { return TFile_ptr(f, &CloseTFile); } inline TFile_ptr CheckOpenTFile(std::string const &fname, char const *opts = "") { TDirectory *ogDir = gDirectory; TFile *inpF = new TFile(fname.c_str(), opts); if (!inpF || !inpF->IsOpen()) { throw failed_to_open_TFile() << "[ERROR]: Couldn't open input file: " << std::quoted(fname); } if (ogDir) { ogDir->cd(); } return make_unique_TFile(inpF); } struct TreeFile { TFile_ptr file; TTree *tree; bool file_owned; TreeFile() : file(make_unique_TFile(nullptr)), tree(nullptr), file_owned(false) {} TreeFile(TreeFile const &other) = delete; TreeFile &operator=(TreeFile &&other) { file = std::move(other.file); tree = other.tree; file_owned = other.file_owned; other.file = nullptr; other.tree = nullptr; other.file_owned = false; return *this; } TreeFile(TreeFile &&other) : file(std::move(other.file)), tree(other.tree), file_owned(other.file_owned) { other.file = nullptr; other.tree = nullptr; other.file_owned = false; } TTree *operator->() { return tree; } ~TreeFile() { if (!file_owned) { file.release(); } } }; inline TreeFile CheckGetTTree(TFile *file, std::string const &tname) { TreeFile tf; tf.file = make_unique_TFile(file); tf.tree = dynamic_cast(tf.file->Get(tname.c_str())); tf.file_owned = false; if (!tf.tree) { throw failed_to_get_TTree() << "[ERROR]: Failed to get TTree named: " << std::quoted(tname) << " from TFile: " << std::quoted(file->GetName()); } std::cout << "[INFO]: Opened TFile: " << file->GetName() << ", " << file << std::endl; return tf; } inline TreeFile CheckGetTTree(std::string const &fname, std::string const &tname, char const *opts = "") { TreeFile tf = CheckGetTTree(CheckOpenTFile(fname, opts).release(), tname); tf.file_owned = true; return tf; } inline TreeFile MakeNewTTree(std::string const &fname, std::string const &tname, char const *opts = "") { TreeFile tf; tf.file = CheckOpenTFile(fname, opts); tf.tree = new TTree(tname.c_str(), ""); tf.tree->SetDirectory(tf.file.get()); tf.file_owned = true; return tf; } inline TreeFile AddNewTTreeToFile(TFile *f, std::string const &tname, std::string const &dirname = "") { TreeFile tf; // This is pretty dumb... tf.file = make_unique_TFile(f); tf.tree = new TTree(tname.c_str(), ""); if (dirname.size()) { TDirectory *dir = tf.file->GetDirectory(dirname.c_str()); if (!dir) { dir = tf.file->mkdir(dirname.c_str()); } tf.tree->SetDirectory(dir); } else { tf.tree->SetDirectory(tf.file.get()); } tf.file_owned = false; return tf; } inline std::string SanitizeROOTObjectName(std::string name) { return name; } inline void WriteToTFile(TFile_ptr &tf, TObject *object, std::string const &object_name) { if (!object) { throw WriteToTFile_nullptr(); } TDirectory *ogdir = gDirectory; - tf->cd(); - object->Write(object_name.c_str(), TObject::kOverwrite); + tf->WriteTObject(object, SanitizeROOTObjectName(object_name).c_str(), + "overwrite"); if (ogdir) { ogdir->cd(); } } +template +std::unique_ptr BuildTGraph(std::vector> const &data) { + if (N < 1) { + throw InvalidDataColumns() << "Expected to be passed at least 1 column of " + "data to build TGraph out of."; + } + std::unique_ptr g((N > 2) ? static_cast(new TGraphErrors()) + : new TGraph()); + for (size_t i = 0; i < data.size(); ++i) { + g->SetPoint(i, (N > 1) ? data[i][0] : i, (N > 1) ? data[i][1] : data[i][0]); + if (N > 2) { + static_cast(g.get())->SetPointError(i, 0, data[i][2]); + } + } + return g; +} + } // namespace utility } // namespace nuis #endif diff --git a/src/utility/StringUtility.cxx b/src/utility/StringUtility.cxx index 5b4161d..01d9363 100644 --- a/src/utility/StringUtility.cxx +++ b/src/utility/StringUtility.cxx @@ -1,165 +1,191 @@ #include "exception/exception.hxx" #include "utility/StringUtility.hxx" #include "string_parsers/from_string.hxx" #include "string_parsers/utility.hxx" #include #include #include namespace nuis { namespace utility { NEW_NUIS_EXCEPT(unexpected_empty_string); std::string EnsureTrailingSlash(std::string str) { if (!str.size()) { throw unexpected_empty_string(); } if (str.back() != '/') { return str + '/'; } return str; } std::string parseCode(std::regex_constants::error_type etype) { switch (etype) { case std::regex_constants::error_collate: return "error_collate: invalid collating element request"; case std::regex_constants::error_ctype: return "error_ctype: invalid character class"; case std::regex_constants::error_escape: return "error_escape: invalid escape character or trailing escape"; case std::regex_constants::error_backref: return "error_backref: invalid back reference"; case std::regex_constants::error_brack: return "error_brack: mismatched bracket([ or ])"; case std::regex_constants::error_paren: return "error_paren: mismatched parentheses(( or ))"; case std::regex_constants::error_brace: return "error_brace: mismatched brace({ or })"; case std::regex_constants::error_badbrace: return "error_badbrace: invalid range inside a { }"; case std::regex_constants::error_range: return "erro_range: invalid character range(e.g., [z-a])"; case std::regex_constants::error_space: return "error_space: insufficient memory to handle this regular expression"; case std::regex_constants::error_badrepeat: return "error_badrepeat: a repetition character (*, ?, +, or {) was not " "preceded by a valid regular expression"; case std::regex_constants::error_complexity: return "error_complexity: the requested match is too complex"; case std::regex_constants::error_stack: return "error_stack: insufficient memory to evaluate a match"; default: return ""; } } std::string DeGlobPattern(std::string const &pattern) { std::stringstream ss(""); size_t next_asterisk = pattern.find_first_of('*'); size_t next_to_add = 0; bool modified = false; while (next_asterisk != std::string::npos) { if ((pattern[next_asterisk - 1] != ']') && // Try to allow valid uses of an asterisk without a preceding. (pattern[next_asterisk - 1] != '.')) { modified = true; // Add a . ss << pattern.substr(next_to_add, next_asterisk - next_to_add) << ".*"; next_to_add = next_asterisk + 1; if (next_to_add >= pattern.size()) { next_to_add = std::string::npos; } } next_asterisk = pattern.find_first_of('*', next_asterisk + 1); } if (next_to_add != std::string::npos) { ss << pattern.substr(next_to_add); } if (modified) { std::cout << "[INFO]: DeGlobified input pattern: " << pattern << " to std::regex_friendly: " << ss.str() << std::endl; } return ss.str(); } // #define DEBUG_INDENT_APPLY_WIDTH std::string indent_apply_width(std::string input, size_t indent, size_t width) { std::stringstream output_stream; std::string indent_string(indent, ' '); if (width) { width--; } if (width <= indent) { return input; } #ifdef DEBUG_INDENT_APPLY_WIDTH std::cout << "[IDEBUG]: Indenting and forcing width on: " << std::quoted(input) << ", width = " << width << ", indent = " << indent << std::endl; #endif while (input.length()) { #ifdef DEBUG_INDENT_APPLY_WIDTH std::cout << "[DEBUG]\tRemaining string: " << std::quoted(input) << ", width = " << width << ", indent = " << indent << std::endl; #endif if (input.length() < width - indent) { #ifdef DEBUG_INDENT_APPLY_WIDTH std::cout << "[DEBUG]\tRemaining string is less than allowed width " << std::quoted(input) << std::endl; #endif output_stream << indent_string << input << std::endl; break; } size_t last_ws = input.find_last_of(" ", width - indent); size_t first_nl = input.find_first_of("\n"); #ifdef DEBUG_INDENT_APPLY_WIDTH std::cout << "[DEBUG]: last_ws = " << last_ws << ", first_nl = " << first_nl << std::endl; #endif size_t next_split = std::min(last_ws, first_nl); #ifdef DEBUG_INDENT_APPLY_WIDTH std::cout << "[DEBUG]: Found split at " << next_split << std::endl; #endif if (next_split == std::string::npos) { next_split = std::min(width - indent, input.length()); } std::string next_line = input.substr(0, next_split); fhicl::string_parsers::trim(next_line); #ifdef DEBUG_INDENT_APPLY_WIDTH std::cout << "[DEBUG]: Streaming " << std::quoted(next_line) << std::endl; #endif output_stream << indent_string << next_line << std::endl; input = input.substr(next_split + 1); } return output_stream.str(); } std::vector split(std::string const &str, std::string const &delim) { return fhicl::string_parsers::ParseToVect(str, delim, false, true); } std::vector split(std::string const &str, std::vector const &delims) { return fhicl::string_parsers::ParseToVect(str, delims, false, true); } +std::string str_replace(std::string const &inp, std::string const &from, + std::string const &to) { + std::stringstream ss(""); + + size_t nextOccurence = 0; + size_t prevOccurence = 0; + bool AtEnd = false; + while (!AtEnd) { + nextOccurence = inp.find(from, prevOccurence); + if (nextOccurence == std::string::npos) { + if (prevOccurence == inp.length()) { + break; + } + AtEnd = true; + } + if ((nextOccurence != prevOccurence) || (nextOccurence == 0)) { + ss << inp.substr(prevOccurence, (nextOccurence - prevOccurence)); + if (!AtEnd) { + ss << to; + } + } + prevOccurence = nextOccurence + from.size(); + } + return ss.str(); +} + } // namespace utility } // namespace nuis diff --git a/src/utility/StringUtility.hxx b/src/utility/StringUtility.hxx index 7249c6e..81edca7 100644 --- a/src/utility/StringUtility.hxx +++ b/src/utility/StringUtility.hxx @@ -1,43 +1,46 @@ // Copyright 2018 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 . *******************************************************************************/ #pragma once #include "utility/TerminalUtility.hxx" +#include #include #include -#include namespace nuis { namespace utility { std::string EnsureTrailingSlash(std::string str); std::string parseCode(std::regex_constants::error_type etype); std::string DeGlobPattern(std::string const &pattern); std::string indent_apply_width(std::string, size_t indent = 0, size_t width = GetWindowWidth()); std::vector split(std::string const &str, std::string const &delim); std::vector split(std::string const &str, std::vector const &delims); + +std::string str_replace(std::string const &inp, std::string const &from, + std::string const &to); } // namespace utility } // namespace nuis diff --git a/src/utility/UnitsUtility.hxx b/src/utility/UnitsUtility.hxx new file mode 100644 index 0000000..4d21325 --- /dev/null +++ b/src/utility/UnitsUtility.hxx @@ -0,0 +1,13 @@ +#pragma once + +namespace nuis { + namespace utility { + //Internal units are in MeV. + + static double const kGeV = 1E-3; + static double const kMeV = 1; + + static double const kRadToDeg = (90.0/acos(0)); + static double const kDegToRad = 1.0/kRadToDeg; + } +} diff --git a/src/utility/experimental/CMakeLists.txt b/src/utility/experimental/CMakeLists.txt index 248876f..a0d0b0f 100644 --- a/src/utility/experimental/CMakeLists.txt +++ b/src/utility/experimental/CMakeLists.txt @@ -1,16 +1,18 @@ set(utility_experimental_implementation_files T2KUtility.cxx MINERvAUtility.cxx + VirginiaQEArchiveUtility.cxx ) set(utility_experimental_header_files T2KUtility.hxx MINERvAUtility.hxx + VirginiaQEArchiveUtility.hxx ) add_library(nuis_utility_experimental SHARED ${utility_experimental_implementation_files}) target_link_libraries(nuis_utility_experimental) install(TARGETS nuis_utility_experimental DESTINATION lib) install(FILES ${utility_experimental_header_files} DESTINATION include/utility/experimental) diff --git a/src/utility/experimental/VirginiaQEArchiveUtility.cxx b/src/utility/experimental/VirginiaQEArchiveUtility.cxx new file mode 100644 index 0000000..9ae3d00 --- /dev/null +++ b/src/utility/experimental/VirginiaQEArchiveUtility.cxx @@ -0,0 +1,105 @@ +#include "utility/experimental/VirginiaQEArchiveUtility.hxx" + +#include "utility/FileSystemUtility.hxx" +#include "utility/PDGCodeUtility.hxx" + +#include "fhiclcpp/ParameterSet.h" +#include "fhiclcpp/make_ParameterSet.h" + +#include + +namespace nuis { +namespace utility { +namespace VQE { + +VirginiaQEArchiveInterface *VirginiaQEArchiveInterface::_global_inst = nullptr; + +VirginiaQEArchiveInterface::VirginiaQEArchiveInterface() { + std::string const &dd = GetDataDir(); + Populate(std::vector{dd + "eA/VirginiaArchive/12C.fcl", + dd + "eA/VirginiaArchive/16O.fcl"}); +} + +void VirginiaQEArchiveInterface::Populate( + std::vector fcl_databases) { + std::cout << "[INFO]: Populating Virginia QE archive database..." + << std::endl; + for (std::string const &dbname : fcl_databases) { + auto const &db = fhicl::make_ParameterSet(dbname); + size_t ctr = 0; + for (auto const &ds_ps : + db.get>("datasets")) { + Dataset ds; + ds.Author = ds_ps.get("Author"); + ds.Year = ds_ps.get("Year"); + ds.Citation = ds_ps.get("Citation"); + auto const &ZA = ds_ps.get>("Target"); + ds.TargetPDG = MakeNuclearPDG(ZA[1], ZA[0]); + ds.EIn_GeV = ds_ps.get("EIn"); + ds.Angle_Deg = ds_ps.get("AngOut"); + ds.Datapoints = ds_ps.get>>("Data"); + data.push_back(ds); + } + } + std::cout << "[INFO]: Done!" << std::endl; +} + +VirginiaQEArchiveInterface &VirginiaQEArchiveInterface::Get() { + if (!_global_inst) { + _global_inst = new VirginiaQEArchiveInterface(); + } + return *_global_inst; +} + +std::vector +VirginiaQEArchiveInterface::GetMatchingDatasets_ZE(size_t Z, + double E_GeV) const { + size_t NDatasets = data.size(); + std::vector rtn; + + for (DsId_t it = 0; it < NDatasets; ++it) { + Dataset const &ds = data[it]; + if (GetZ(ds.TargetPDG) != Z) { + continue; + } + if (fabs(ds.EIn_GeV - E_GeV) > 1E-5) { + continue; + } + rtn.push_back(it); + } + + return rtn; +} +std::vector +VirginiaQEArchiveInterface::GetMatchingDatasets(size_t Z, double E_GeV, + double Theta_deg, + std::string Author, + size_t Year) const { + + std::vector match = GetMatchingDatasets_ZE(Z, E_GeV); + + size_t NDatasets = match.size(); + std::vector rtn; + + for (size_t it = 0; it < NDatasets; ++it) { + Dataset const &ds = data[match[it]]; + + if ((ds.Angle_Deg > 0) && (fabs(ds.Angle_Deg - Theta_deg) > 1E-5)) { + continue; + } + + if (Author.size() && (ds.Author != Author)) { + continue; + } + if (Year && (ds.Year != Year)) { + continue; + } + rtn.push_back(match[it]); + } + + return rtn; +} + +} // namespace VQE +} // namespace utility +} // namespace nuis diff --git a/src/utility/experimental/VirginiaQEArchiveUtility.hxx b/src/utility/experimental/VirginiaQEArchiveUtility.hxx new file mode 100644 index 0000000..c5edc10 --- /dev/null +++ b/src/utility/experimental/VirginiaQEArchiveUtility.hxx @@ -0,0 +1,58 @@ +#pragma once + +#include "exception/exception.hxx" + +#include +#include +#include + +namespace nuis { +namespace utility { +namespace VQE { +class VirginiaQEArchiveInterface { +public: + struct Dataset { + std::string Author; + size_t Year; + std::string Citation; + size_t TargetPDG; + double EIn_GeV; + double Angle_Deg; + std::vector> Datapoints; + }; + +private: + VirginiaQEArchiveInterface(); + NEW_NUIS_EXCEPT(InvalidVirginiaQEDatasetReq); + + std::vector data; + + void Populate(std::vector fcl_databases); + + static VirginiaQEArchiveInterface *_global_inst; + +public: + static VirginiaQEArchiveInterface &Get(); + + using DsId_t = size_t; + + std::vector GetMatchingDatasets_ZE(size_t Z, double E_GeV) const; + + std::vector GetMatchingDatasets(size_t Z, double E_GeV, + double Theta_deg = -1, + std::string Author = "", + size_t Year = 0) const; + + size_t GetNDatasets() const { return data.size(); } + Dataset const &GetDataset(DsId_t it) const { + if (it >= GetNDatasets()) { + throw InvalidVirginiaQEDatasetReq() + << "Requested dataset with ID " << it << ", but only have " + << GetNDatasets() << " datasets."; + } + return data[it]; + } +}; +} // namespace VQE +} // namespace utility +} // namespace nuis diff --git a/src/variation/WeightManager.cxx b/src/variation/WeightManager.cxx index e64e259..6742f7e 100644 --- a/src/variation/WeightManager.cxx +++ b/src/variation/WeightManager.cxx @@ -1,50 +1,60 @@ #include "variation/WeightManager.hxx" #include "fhiclcpp/ParameterSet.h" #include "plugins/Instantiate.hxx" namespace nuis { namespace variation { WeightManager::NamedWeightProvider::NamedWeightProvider( std::string const &_name, plugins::plugin_traits::unique_ptr_t &&_handler) : name(_name), handler(std::move(_handler)) {} WeightManager::NamedWeightProvider::NamedWeightProvider( NamedWeightProvider &&other) : name(std::move(other.name)), handler(std::move(other.handler)) {} WeightManager *WeightManager::_global_inst = nullptr; WeightManager::WeightManager() {} WeightManager &WeightManager::Get() { if (!_global_inst) { _global_inst = new WeightManager(); } return *_global_inst; } WeightManager::WeightProv_id_t WeightManager::EnsureWeightProviderLoaded(fhicl::ParameterSet const &ps) { - std::string const &prov_name = ps.get("weight_engine_name"); + std::string const &prov_name = ps.get("name"); for (size_t i = 0; i < WeightEngines.size(); ++i) { if (WeightEngines[i].name == prov_name) { return i; } } WeightProv_id_t wid = WeightEngines.size(); WeightEngines.emplace_back( prov_name, nuis::plugins::Instantiate(prov_name)); WeightEngines.back().handler->Initialize(ps); return wid; } -double WeightManager::GetEventWeight(nuis::event::MinimalEvent const &) { - return 1; +double WeightManager::GetEventWeight(nuis::event::MinimalEvent const & me) { + double w = 1; + for (auto &we : WeightEngines) { + w *= we.handler->GetEventWeight(me); + } + return w; +} + +void WeightManager::ReconfigureWeightEngines() { + for (auto &we : WeightEngines) { + we.handler->Reconfigure(); + } } } // namespace variation } // namespace nuis diff --git a/validation/nightly-test/README b/validation/nightly-test/README deleted file mode 100644 index 7c50ea4..0000000 --- a/validation/nightly-test/README +++ /dev/null @@ -1,16 +0,0 @@ - - -This set of quick and dirty scripts run rolling validations of a given nuisance branch if run-nightly-test is setup -to run at midnight with a cronjob - -To setup, the xml files in base-comparisons-1 need to be edited to point to the correct input files, and the generator -setup script needs to be pointed to all external libraries. - -run-nightly-test will checkout the branch, build it, run any comparisons, then clean and tar up the used branch code. - -When first setting up, a stable bench mark should be created by running create-benchmark.sh - - - - - diff --git a/validation/nightly-test/base-comparisons-1/build-script.sh b/validation/nightly-test/base-comparisons-1/build-script.sh deleted file mode 100644 index 3df1c79..0000000 --- a/validation/nightly-test/base-comparisons-1/build-script.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# Checkout nuisance -git clone http://nuisance.hepforge.org/git/nuisance.git - -# Setup Generators -source $PWD/generator-setup.sh - -# Build NUISANCE -mkdir nuisance/build/ -cd nuisance/build/ -cmake ../ -DUSE_NEUT=1 -DUSE_GENIE=1 -DUSE_NUWRO=1 -DBUILD_GEVGEN=0 -make -j6 -make install -source Linux/setup.sh -cd ../../ -pwd -echo "Finished building" - - - - - diff --git a/validation/nightly-test/base-comparisons-1/clean-script.sh b/validation/nightly-test/base-comparisons-1/clean-script.sh deleted file mode 100644 index 56aa3a5..0000000 --- a/validation/nightly-test/base-comparisons-1/clean-script.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -rm -rf nuisance/build/ -export GZIP=-9 -tar -czvf nuisance_code.tar.gz ./nuisance/ -rm -rf nuisance/ diff --git a/validation/nightly-test/base-comparisons-1/create-bench.sh b/validation/nightly-test/base-comparisons-1/create-bench.sh deleted file mode 100644 index 70d711c..0000000 --- a/validation/nightly-test/base-comparisons-1/create-bench.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -source build-script.sh -source run-nuisance.sh -source clean-script.sh - -ln -sf $PWD/ $PWD/../base-benchmark/ \ No newline at end of file diff --git a/validation/nightly-test/base-comparisons-1/generator-setup.sh b/validation/nightly-test/base-comparisons-1/generator-setup.sh deleted file mode 100644 index 27b1cd0..0000000 --- a/validation/nightly-test/base-comparisons-1/generator-setup.sh +++ /dev/null @@ -1,127 +0,0 @@ -# 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 . -################################################################################ - -#!/bin/sh -if ! [[ ":$PATH:" == *":/home/stowell/t2krep/NIWG/nuisance/branches/master_refactor/master/builds/default/Linux/bin:"* ]]; then - export PATH=/home/stowell/t2krep/NIWG/nuisance/branches/master_refactor/master/builds/default/Linux/bin:$PATH -fi - -if ! [[ ":$LD_LIBRARY_PATH:" == *":/home/stowell/t2krep/NIWG/nuisance/branches/master_refactor/master/builds/default/Linux/lib:"* ]]; then - export LD_LIBRARY_PATH=/home/stowell/t2krep/NIWG/nuisance/branches/master_refactor/master/builds/default/Linux/lib:$LD_LIBRARY_PATH -fi - -if [[ ! "${ROOTSYS}" ]]; then - echo "[INFO]: Sourcing ROOT from: /usr/local/t2k-software/ROOT-NUISANCE/root" - source "/usr/local/t2k-software/ROOT-NUISANCE/root/bin/thisroot.sh" -fi - - -if [[ "1" != "0" ]]; then - echo "[INFO]: Adding NEUT library paths to the environment." - export NEUT_ROOT=/data/stowell/NIWG/neut/branches/neut_5.3.6_freenucleonCCQE - export CERN=/usr/local/t2k-software/cern/ - export CERN_LEVEL=2005 - if ! [[ ":$LD_LIBRARY_PATH:" == *":${NEUT_ROOT}/lib/Linux_pc:"* ]]; then - export LD_LIBRARY_PATH=${NEUT_ROOT}/lib/Linux_pc:$LD_LIBRARY_PATH - fi - if ! [[ ":$LD_LIBRARY_PATH:" == *":${NEUT_ROOT}/src/reweight:"* ]]; then - export LD_LIBRARY_PATH=${NEUT_ROOT}/src/reweight:$LD_LIBRARY_PATH - fi -fi - -if [[ "1" != "0" ]]; then - echo "[INFO]: Adding NuWro library paths to the environment." - export NUWRO="/usr/local/t2k-software/NuWro-v12" - if ! [[ ":$LD_LIBRARY_PATH:" == *":/usr/local/t2k-software/NuWro-v12/build/Linux/lib:"* ]]; then - export LD_LIBRARY_PATH=/usr/local/t2k-software/NuWro-v12/build/Linux/lib:$LD_LIBRARY_PATH - fi -fi - -if [[ "TRUE" != "0" ]]; then - echo "[INFO]: Adding PYTHIA6 library paths to the environment." - export PYTHIA6="/usr/local/t2k-software/pythia6" - if ! [[ ":$LD_LIBRARY_PATH:" == *":/usr/local/t2k-software/pythia6:"* ]]; then - export LD_LIBRARY_PATH=/usr/local/t2k-software/pythia6:$LD_LIBRARY_PATH - fi -fi - -if [[ "1" != "0" ]]; then - echo "[INFO]: Adding GENIE paths to the environment." - - export GENIE="/data/stowell/NIWG/genie/branches/R-2_12_6" - - export LHAPDF_LIB="/usr/local/t2k-software/lhapdf/lib/" - export LHAPDF_INC="/usr/local/t2k-software/lhapdf/include/" - - export LIBXML2_LIB="/usr/lib/" - export LIBXML2_INC="/usr/include/libxml2/libxml/" - - export LOG4CPP_LIB="/usr/local/t2k-software/log4cpp/src/.libs" - export LOG4CPP_INC="/usr/local/t2k-software/log4cpp/include" - - export LHAPATH="/usr/local/t2k-software/lhapdf/share/lhapdf/PDFsets" - - if ! [[ ":$LD_LIBRARY_PATH:" == *":/data/stowell/NIWG/genie/branches/R-2_12_6/lib:"* ]]; then - export LD_LIBRARY_PATH=/data/stowell/NIWG/genie/branches/R-2_12_6/lib:$LD_LIBRARY_PATH - fi - - if ! [[ ":$LD_LIBRARY_PATH:" == *":/usr/local/t2k-software/lhapdf/lib/:"* ]]; then - export LD_LIBRARY_PATH=/usr/local/t2k-software/lhapdf/lib/:$LD_LIBRARY_PATH - fi - - if ! [[ ":$LD_LIBRARY_PATH:" == *":/usr/lib/:"* ]]; then - export LD_LIBRARY_PATH=/usr/lib/:$LD_LIBRARY_PATH - fi - - if ! [[ ":$LD_LIBRARY_PATH:" == *":/usr/local/t2k-software/log4cpp/src/.libs:"* ]]; then - export LD_LIBRARY_PATH=/usr/local/t2k-software/log4cpp/src/.libs:$LD_LIBRARY_PATH - fi -fi - -if [[ "0" != "0" ]]; then - echo "[INFO]: Adding NIWG paths to the environment." - export NIWG= - export NIWGREWEIGHT_INPUTS=/inputs - if ! [[ ":$LD_LIBRARY_PATH:" == *"::"* ]]; then - export LD_LIBRARY_PATH=${NIWG}:${LD_LIBRARY_PATH} - fi - -fi - -if [[ "0" != "0" ]]; then - echo "[INFO]: Adding T2K paths to the environment." - export T2KREWEIGHT= - if ! [[ ":$LD_LIBRARY_PATH:" == *":/lib:"* ]]; then - export LD_LIBRARY_PATH=${T2KREWEIGHT}/lib:${LD_LIBRARY_PATH} - fi -fi - -if [[ "0" != "0" ]]; then - echo "[INFO]: Sourcing GiBUU tools." - source /home/stowell/t2krep/NIWG/nuisance/branches/master_refactor/master/builds/default/GiBUUTools/src/GiBUUTools-build/Linux/setup.sh -fi - -source $GENIE/genie_prereq.sh - -source $GENIE/genie_setup.sh - - - - - diff --git a/validation/nightly-test/base-comparisons-1/genie_allsamples.xml b/validation/nightly-test/base-comparisons-1/genie_allsamples.xml deleted file mode 100644 index a8eac6e..0000000 --- a/validation/nightly-test/base-comparisons-1/genie_allsamples.xml +++ /dev/null @@ -1,268 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/validation/nightly-test/base-comparisons-1/neut_allsamples.xml b/validation/nightly-test/base-comparisons-1/neut_allsamples.xml deleted file mode 100644 index 2fa6700..0000000 --- a/validation/nightly-test/base-comparisons-1/neut_allsamples.xml +++ /dev/null @@ -1,268 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/validation/nightly-test/base-comparisons-1/nuwro_allsamples.xml b/validation/nightly-test/base-comparisons-1/nuwro_allsamples.xml deleted file mode 100644 index 7bd479c..0000000 --- a/validation/nightly-test/base-comparisons-1/nuwro_allsamples.xml +++ /dev/null @@ -1,266 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/validation/nightly-test/base-comparisons-1/run-nuisance.sh b/validation/nightly-test/base-comparisons-1/run-nuisance.sh deleted file mode 100644 index 9ef7fc1..0000000 --- a/validation/nightly-test/base-comparisons-1/run-nuisance.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -# Setup NUISANCE -source nuisance/build/Linux/setup.sh - -# Run NUISANCE comparison scripts -for obj in ./*allsamples.xml -do - nuiscomp -c $obj -o ${obj/.xml/.root} -done - -wait -echo "Done running nuisance" \ No newline at end of file diff --git a/validation/nightly-test/base-comparisons-1/run-test.sh b/validation/nightly-test/base-comparisons-1/run-test.sh deleted file mode 100644 index 358fa6d..0000000 --- a/validation/nightly-test/base-comparisons-1/run-test.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -source build-script.sh -source run-nuisance.sh -source run-validate-nuiscomp.sh -source clean-script.sh \ No newline at end of file diff --git a/validation/nightly-test/base-comparisons-1/run-validate-nuiscomp.sh b/validation/nightly-test/base-comparisons-1/run-validate-nuiscomp.sh deleted file mode 100644 index 5086d66..0000000 --- a/validation/nightly-test/base-comparisons-1/run-validate-nuiscomp.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -for obj in genie neut nuwro -do - python validate-nuiscomp.py $PWD/../base-benchmark/${obj}_allsamples.root $PWD/${obj}_allsamples.root ${obj}_nuiscomp -b & -done -wait diff --git a/validation/nightly-test/base-comparisons-1/validate-nuiscomp.py b/validation/nightly-test/base-comparisons-1/validate-nuiscomp.py deleted file mode 100644 index 95922df..0000000 --- a/validation/nightly-test/base-comparisons-1/validate-nuiscomp.py +++ /dev/null @@ -1,87 +0,0 @@ -from ROOT import * -import sys - -print "Reading Infile_NEW :",sys.argv[1] -infile_new = TFile(sys.argv[1],"READ") -print "Reading infile bench :",sys.argv[2] -infile_bench = TFile(sys.argv[2],"READ") -print "Reading outfile :",sys.argv[3] -outfile = sys.argv[3] - -c1 = TCanvas("c1","c1",900,300) -c1.Divide(3,1) - - -totalcount = 0 -errorcount = 0 - -keylist = infile_new.GetListOfKeys() -# Get N Valid Keys -nkeys = 0 -for obj in keylist: - hist_new = infile_new.Get(obj.GetName()) - if "TH1D" in str(type(hist_new)): - nkeys += 1 - - -for obj in keylist: - - hist_new = infile_new.Get(obj.GetName()) - hist_bench = infile_bench.Get(obj.GetName()) - - if hist_new and not hist_bench: - print "ERROR: Cannot find bench mark plot for : ",obj.GetName() - hist_bench = hist_new.Clone("newbench") - hist_bench.Reset() - - if "TH1D" in str(type(hist_new)): - - hist_dif = hist_new.Clone("dif") - hist_dif.Add(hist_bench,-1.0) - - hist_bench.SetLineColor(kBlack) - hist_bench.SetLineWidth(3) - hist_new.SetLineColor(kGreen) - hist_dif.SetLineColor(kRed) - gStyle.SetOptTitle(1) - - c1.cd(1) - hist_bench.SetTitle(obj.GetName()) - hist_bench.Draw() - hist_new.Draw("SAME") - - c1.cd(2) - hist_new.SetTitle("Latest") - hist_new.Draw() - - c1.cd(3) - hist_dif.SetTitle("Difference : " + str(hist_dif.Integral())) - hist_dif.Draw() - - c1.Update() - - tolerance = 1E-4 - if (fabs(hist_dif.Integral()) > tolerance): - print "ERROR: Difference found for: ", obj.GetName() - - errorsave = outfile + "_errors.pdf" - if errorcount == 0: errorsave += "(" - c1.SaveAs(errorsave) - errorcount+=1 - - totalsave = outfile + "_total.pdf" - if totalcount == 0: totalsave += "(" - - c1.SaveAs(totalsave) - totalcount+=1 - - -leg = TLegend(0.1,0.1,0.9,0.9) -blank = TLine(0.0,0.0,1.0,1.0) -leg.AddEntry(blank,"End of Plots","") -c1.cd() -leg.Draw() -if totalcount > 0: c1.SaveAs(totalsave + ")") -if errorcount > 0: c1.SaveAs(errorsave + ")") - - diff --git a/validation/nightly-test/create-benchmark.sh b/validation/nightly-test/create-benchmark.sh deleted file mode 100644 index 58d0ba7..0000000 --- a/validation/nightly-test/create-benchmark.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -# Get Date -DATE=`date +%Y-%m-%d_%H-%M-%S` -echo $DATE - -# Make new folder -mkdir nightly-test-${DATE} -cd nightly-test-${DATE} - -# Copy scripts -cp ../base-comparisons-1/* ./ - -# Run NUISANCE -source create-bench.sh >> ../nightly-test-log-${DATE}.txt 2>&1 - - - - diff --git a/validation/nightly-test/run-nightly-test.sh b/validation/nightly-test/run-nightly-test.sh deleted file mode 100644 index a14f85d..0000000 --- a/validation/nightly-test/run-nightly-test.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -# Get Date -DATE=`date +%Y-%m-%d_%H-%M-%S` -echo $DATE - -# Make new folder -mkdir nightly-test-${DATE} -cd nightly-test-${DATE} - -# Copy scripts -cp ../base-comparisons-1/* ./ - -# Run NUISANCE -source run-test.sh >> ../nightly-test-log-${DATE}.txt 2>&1 - - - -