8 #include <boost/property_tree/ptree.hpp> 9 #include <boost/property_tree/xml_parser.hpp> 19 using boost::property_tree::ptree;
22 read_xml(filename,top,2);
24 ptree& binsPIP = top.get_child(
"bins.MIPP_Numi_pip");
28 double aux_pzmin,aux_pzmax,aux_ptmin,aux_ptmax;
30 for(; it!=binsPIP.end(); ++it){
36 std::stringstream ss1(pz_string);
37 std::stringstream ss2(pt_string);
38 ss1 >> aux_pzmin >> aux_pzmax;
39 ss2 >> aux_ptmin >> aux_ptmax;
49 using boost::property_tree::ptree;
52 read_xml(filename,top,2);
54 ptree& binsPIM = top.get_child(
"bins.MIPP_Numi_pim");
57 double aux_pzmin,aux_pzmax,aux_ptmin,aux_ptmax;
59 for(; it!=binsPIM.end(); ++it){
65 std::stringstream ss1(pz_string);
66 std::stringstream ss2(pt_string);
67 ss1 >> aux_pzmin >> aux_pzmax;
68 ss2 >> aux_ptmin >> aux_ptmax;
78 using boost::property_tree::ptree;
81 read_xml(filename,top,2);
83 ptree& binsK_PI = top.get_child(
"bins.MIPP_Numi_k_pi");
87 double aux_pzmin,aux_pzmax,aux_ptmin,aux_ptmax;
89 for(; it!=binsK_PI.end(); ++it){
93 std::stringstream ss1(pz_string);
94 std::stringstream ss2(pt_string);
95 ss1 >> aux_pzmin >> aux_pzmax;
96 ss2 >> aux_ptmin >> aux_ptmax;
112 for(
int ii=0;ii<
size;++ii){
121 for(
int ii=0;ii<
size;++ii){
128 if(pdgcode==321 || pdgcode==-321 || pdgcode==130 || pdgcode==310){
130 for(
int ii=0;ii<
size;++ii){
141 if(
pip_data_pzmin.size()==0)
throw std::runtime_error(
"MIPPNumiYieldsBins has not been initialized!!");
145 if(
pip_data_pzmin.size()==0)
throw std::runtime_error(
"MIPPNumiYieldsBins has not been initialized!!");
149 if(
k_pi_data_pzmin.size()==0)
throw std::runtime_error(
"MIPPNumiYieldsBins has not been initialized!!");
void k_pi_data_from_xml(const char *filename)
Read a xml kaons over pions file name to parse the bins.
void pim_data_from_xml(const char *filename)
Read a xml pim file name to parse the bins.
std::vector< double > k_pi_data_ptmin
std::vector< double > pim_data_pzmax
int GetNbins_pim_MIPPNuMI()
std::vector< double > pim_data_ptmax
decltype(auto) constexpr size(T &&obj)
ADL-aware version of std::size.
std::vector< double > pim_data_pzmin
std::vector< double > pip_data_pzmax
std::vector< double > pip_data_ptmin
std::vector< double > k_pi_data_ptmax
std::vector< double > pim_data_ptmin
int GetNbins_pip_MIPPNuMI()
int BinID(double pz, double pt, int pdgcode)
Return the Bin ID for this data.
A class to manage the bin definitions for MIPP Numi Yields.
std::vector< double > k_pi_data_pzmax
static MIPPNumiYieldsBins * getInstance()
std::vector< double > k_pi_data_pzmin
std::vector< double > pip_data_ptmax
static MIPPNumiYieldsBins * instance
void pip_data_from_xml(const char *filename)
Read a xml pip file name to parse the bins.
int GetNbins_K_MIPPNuMI()
std::vector< double > pip_data_pzmin