Import Geant4 10.7.0 source tree

This commit is contained in:
Gabriele Cosmo
2020-12-04 12:30:43 +01:00
parent 67ba86d073
commit dab42d2018
3770 changed files with 226369 additions and 286486 deletions
+183 -183
View File
@@ -29,7 +29,7 @@ namespace tools {
namespace xml {
class aidas {
public:
public:
//tree,out,verbose,path.
typedef raxml_out (*reader)(tree&,std::ostream&,bool,void*);
typedef std::map<std::string,reader> readers;
@@ -38,7 +38,7 @@ public:
{
add_default_readers();
}
virtual ~aidas(){
virtual ~aidas(){
m_objects.clear(); //it may delete histos, etc...
}
protected:
@@ -212,26 +212,26 @@ protected:
static raxml_out read_dps(tree& a_tree,std::ostream& a_out,bool a_verbose,void*) {
std::string sname;
a_tree.attribute_value(s_name(),sname);
if(a_verbose) {
a_out << "tools::xml::aidas::read_dps :"
a_out << "tools::xml::aidas::read_dps :"
<< " with name " << sout(sname)
<< "..." << std::endl;
}
std::string spath;
a_tree.attribute_value(s_path(),spath);
std::string stitle;
a_tree.attribute_value(s_title(),stitle);
// Booking parameters :
unsigned int dim = 0;
if(!a_tree.attribute_value(s_dimension(),dim)) return raxml_out();
// Create a BatchLab::DataPointSet :
histo::dps* dps = new histo::dps(stitle,dim);
// Data sub items :
{looper _for(a_tree);
while(tree* _tree = _for.next_tree()) {
@@ -245,12 +245,12 @@ protected:
std::string sclass = histo::dps::s_class();
if(a_verbose) {
a_out << "tools::xml::aidas::read_dps :"
a_out << "tools::xml::aidas::read_dps :"
<< " with name " << sout(sname)
<< " and title " << sout(stitle)
<< " done." << std::endl;
}
return raxml_out(hdl,sclass,spath,sname);
}
@@ -263,9 +263,9 @@ public: //used in BatchLab::XML_DataReader.
std::string sname;
a_tree.attribute_value(s_name(),sname);
if(a_verbose) {
a_out << "tools::xml::aidas::read_histo :"
a_out << "tools::xml::aidas::read_histo :"
<< " with name " << sout(sname)
<< "..." << std::endl;
}
@@ -275,13 +275,13 @@ public: //used in BatchLab::XML_DataReader.
std::string stitle;
a_tree.attribute_value(s_title(),stitle);
// Booking parameters :
std::vector<bn_t> bins(a_dim);
std::vector<double> mns(a_dim);
std::vector<double> mxs(a_dim);
std::vector< std::vector<double> > edges(a_dim);
// Jump in subitems to find axes items :
int not_found = -1;
unsigned int found = 0;
@@ -314,7 +314,7 @@ public: //used in BatchLab::XML_DataReader.
if(edges[iaxis].size()<=2) return raxml_out();
}
}
// Create a native histogram :
base_handle* hdl = 0;
@@ -330,7 +330,7 @@ public: //used in BatchLab::XML_DataReader.
// Sub items :
pd_data hd = histo->get_histo_data();
if(hd.m_bin_number<=0) {delete histo;return raxml_out();}
if(hd.m_bin_number<=0) {delete histo;return raxml_out();}
{looper _for(a_tree);
while(tree* _tree = _for.next_tree()) {
@@ -358,7 +358,7 @@ public: //used in BatchLab::XML_DataReader.
}
pd_data hd = histo->get_histo_data();
if(hd.m_bin_number<=0) {delete histo;return raxml_out();}
if(hd.m_bin_number<=0) {delete histo;return raxml_out();}
{looper _for(a_tree);
while(tree* _tree = _for.next_tree()) {
@@ -386,7 +386,7 @@ public: //used in BatchLab::XML_DataReader.
}
pd_data hd(histo->dac());
if(hd.m_bin_number<=0) {delete histo;return raxml_out();}
if(hd.m_bin_number<=0) {delete histo;return raxml_out();}
{looper _for(a_tree);
while(tree* _tree = _for.next_tree()) {
@@ -413,7 +413,7 @@ public: //used in BatchLab::XML_DataReader.
}
pd_data hd(histo->dac());
if(hd.m_bin_number<=0) {delete histo;return raxml_out();}
if(hd.m_bin_number<=0) {delete histo;return raxml_out();}
{looper _for(a_tree);
while(tree* _tree = _for.next_tree()) {
@@ -442,7 +442,7 @@ public: //used in BatchLab::XML_DataReader.
}
pd_data hd(histo->dac());
if(hd.m_bin_number<=0) {delete histo;return raxml_out();}
if(hd.m_bin_number<=0) {delete histo;return raxml_out();}
{looper _for(a_tree);
while(tree* _tree = _for.next_tree()) {
@@ -466,12 +466,12 @@ public: //used in BatchLab::XML_DataReader.
if(!hdl) return raxml_out();
if(a_verbose) {
a_out << "tools::xml::aidas::read_histo :"
a_out << "tools::xml::aidas::read_histo :"
<< " with name " << sout(sname)
<< " and title " << sout(stitle)
<< " done." << std::endl;
}
return raxml_out(hdl,sclass,spath,sname);
}
@@ -481,7 +481,7 @@ public: //used in BatchLab::XML_DataReader.
a_tree.attribute_value(s_name(),sname);
if(a_verbose) {
a_out << "tools::xml::aidas::read_cloud :"
a_out << "tools::xml::aidas::read_cloud :"
<< " name " << sout(sname)
<< "..." << std::endl;
}
@@ -517,7 +517,7 @@ public: //used in BatchLab::XML_DataReader.
return raxml_out();
}
}}
hdl = new handle<histo::c1d>(cloud);
sclass = histo::c1d::s_class();
@@ -533,7 +533,7 @@ public: //used in BatchLab::XML_DataReader.
return raxml_out();
}
}}
hdl = new handle<histo::c2d>(cloud);
sclass = histo::c2d::s_class();
@@ -549,15 +549,15 @@ public: //used in BatchLab::XML_DataReader.
return raxml_out();
}
}}
hdl = new handle<histo::c3d>(cloud);
sclass = histo::c3d::s_class();
}
if(!hdl) return raxml_out();
if(a_verbose) {
a_out << "tools::xml::aidas::read_cloud :"
a_out << "tools::xml::aidas::read_cloud :"
<< " with name " << sout(sname)
<< " and title " << sout(stitle)
<< " done." << std::endl;
@@ -572,7 +572,7 @@ protected:
/// read histo ////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
static bool read_axis(
tree& a_tree
tree& a_tree
,unsigned int a_dim
,int& aAxis
,bn_t& aNumberOfBins
@@ -589,27 +589,27 @@ protected:
aMax = 0;
aEdges.clear();
aVariableBins = false;
const std::string& tagName = a_tree.tag_name();
std::string svalue;
if(tagName==s_axis()) {
{bn_t ival;
if(!a_tree.attribute_value(s_numberOfBins(),svalue)) return false;
if(!to<bn_t>(svalue,ival)) return false;
aNumberOfBins = ival;}
if(!a_tree.attribute_value(s_min(),svalue)) return false;
if(!to<double>(svalue,aMin)) return false;
if(!a_tree.attribute_value(s_max(),svalue)) return false;
if(!to<double>(svalue,aMax)) return false;
if(!a_tree.attribute_value(s_direction(),svalue)) return false;
if(!axis_index(a_dim,svalue,aAxis)) return false;
aEdges.push_back(aMin);
{looper _for(a_tree);
@@ -627,9 +627,9 @@ protected:
if(aVariableBins) { // Variable bins histo.
if(aEdges.size()!=aNumberOfBins+1) return false;
}
}
}
return true;
}
static bool to_double(const std::string& a_s,double& a_v,std::ostream& a_out,const std::string& a_what) {
@@ -646,20 +646,20 @@ protected:
static bool read_bins(tree& a_tree,pd_data& aData,std::ostream& a_out,bool a_is_prof){
const std::string& tagName = a_tree.tag_name();
std::string svalue;
if(tagName==s_annotation()) { //FIXME
return true;
} else if(tagName=="statistics") {
if(!a_tree.attribute_value(s_entries(),svalue)) return false;
//unsigned int ival;
//if(!to<unsigned int>(svalue,ival)) return false;
// aData.fEntries = ival;
unsigned int found = 0;
{looper _for(a_tree);
@@ -669,31 +669,31 @@ protected:
double mean,rms;
if(!_elem->attribute_value(s_mean(),svalue)) return false;
if(!to<double>(svalue,mean)) return false;
if(!_elem->attribute_value(s_rms(),svalue)) return false;
if(!to<double>(svalue,rms)) return false;
if(!_elem->attribute_value(s_direction(),svalue)) return false;
int iaxis;
if(!axis_index(aData.m_dimension,svalue,iaxis)) return false;
//aData.m_axes[iaxis].fSxw = mean; //Temporarily put mean on fSxw.
//aData.m_axes[iaxis].fSx2w = rms; //Temporarily put mean on fSx2w.
found++;
}
}}
if(found!=aData.m_dimension) return false;
return true;
} else if(tagName==s_axis()) {
return true;
}
}
unsigned int dimension = 0;
if(tagName==s_data1d()) {
dimension = 1;
@@ -702,21 +702,21 @@ protected:
} else if(tagName==s_data3d()) {
dimension = 3;
}
if(dimension) {
if(dimension!=aData.m_dimension) return false;
std::string sbin;
sprintf(sbin,32,"bin%dd",dimension);
{looper _for(a_tree);
while(element* _elem = _for.next_element()) {
if(_elem->name()==sbin) {
std::vector<int> is(dimension);
unsigned int entries = 0;
double height = 0;
double error = 0;
@@ -729,7 +729,7 @@ protected:
double weightedRmsY = 0;
double weightedRmsZ = 0;
double rms = 0;
// Required :
if(!_elem->attribute_value(s_entries(),svalue)) {
a_out << "tools::xml::aidas::read_bins :"
@@ -739,13 +739,13 @@ protected:
return false;
}
if(!to<unsigned int>(svalue,entries)) {
a_out << "tools::xml::aidas::read_bins :"
<< " problem converting a entries attribute to an unsigned int."
a_out << "tools::xml::aidas::read_bins :"
<< " problem converting a entries attribute to an unsigned int."
<< " Value was " << sout(svalue) << "."
<< std::endl;
return false;
}
// Optional :
bool height_given;
if(_elem->attribute_value(s_height(),svalue)) { //FIXME : optional ?
@@ -753,13 +753,13 @@ protected:
height_given = true;
} else { // no "height".
// It is assumed that at fill time the weight
// argument "w" had always been 1.
// argument "w" had always been 1.
// w = 1
// sw = entries*1 = entries
height = double(entries);
height_given = false;
}
if(_elem->attribute_value(s_error(),svalue)) { //FIXME : optional ?
if(!to_double(svalue,error,a_out,s_error())) return false;
} else { // no "error"
@@ -778,18 +778,18 @@ protected:
}
} else {
// It is assumed that at fill time the weight
// argument "w" had always been 1.
// argument "w" had always been 1.
// w = 1
// sw2 = entries*(w*w) = entries;
// error = sqrt(sw2) = sqrt(entries);
error = ::sqrt(::fabs(double(entries)));
}
}
if(_elem->attribute_value(s_rms(),svalue)) {
if(!to_double(svalue,rms,a_out,s_rms())) return false;
}
if(dimension==1) {
if(_elem->attribute_value(s_weightedMean(),svalue)) {
if(!to_double(svalue,weightedMean,a_out,s_weightedMean())) return false;
@@ -830,7 +830,7 @@ protected:
if(!to_double(svalue,weightedRmsZ,a_out,s_weightedRmsZ())) return false;
}
}
{for(unsigned int index=0;index<dimension;index++) {
std::string s = "binNum";
if(dimension!=1) {
@@ -839,7 +839,7 @@ protected:
else if(index==2) s += "Z";
}
if(!_elem->attribute_value(s,svalue)) {
a_out << "tools::xml::aidas::read_bins :"
a_out << "tools::xml::aidas::read_bins :"
<< " a <bin1d> has no " << s << std::endl;
return false;
}
@@ -850,90 +850,90 @@ protected:
} else {
int ival = 0;
if(!to<int>(svalue,ival)) {
a_out << "tools::xml::aidas::read_bins :"
<< " problem converting binNum to an int."
a_out << "tools::xml::aidas::read_bins :"
<< " problem converting binNum to an int."
<< " Value was " << sout(svalue) << "."
<< std::endl;
return false;
}
int ibin = ival;
if( (ibin<0) || (ibin>=(int)aData.m_axes[index].bins()) ) {
a_out << "tools::xml::aidas::read_bins :"
<< " a binNum is out of range."
if( (ibin<0) || (ibin>=(int)aData.m_axes[index].bins()) ) {
a_out << "tools::xml::aidas::read_bins :"
<< " a binNum is out of range."
<< std::endl;
return false;
}
is[index] = ibin;
}
}}
// If we are here, then we have a valid bin :
bn_t offset;
histo::get_offset(aData.m_axes,is,offset);
aData.m_bin_entries[offset] = entries;
if(!a_is_prof) {
// From histo::base_histo, we have :
// height = sw
// error = sqrt(sw)
// weightedMean = sxw/sw
// weightedRms = sqrt(fabs(sx2w/sw - (sxw/sw)**2))
double sw = height;
aData.m_bin_Sw[offset] = sw;
aData.m_bin_Sw2[offset] = error * error;
if(dimension==1) {
aData.m_bin_Sxw[offset][0] = weightedMean * sw;
aData.m_bin_Sx2w[offset][0] =
aData.m_bin_Sx2w[offset][0] =
(weightedRms * weightedRms + weightedMean * weightedMean) * sw;
} else if(dimension==2){
// X
aData.m_bin_Sxw[offset][0] = weightedMeanX * sw;
aData.m_bin_Sx2w[offset][0] =
aData.m_bin_Sx2w[offset][0] =
(weightedRmsX*weightedRmsX + weightedMeanX*weightedMeanX) * sw;
// Y :
aData.m_bin_Sxw[offset][1] = weightedMeanY * sw;
aData.m_bin_Sx2w[offset][1] =
aData.m_bin_Sx2w[offset][1] =
(weightedRmsY*weightedRmsY + weightedMeanY*weightedMeanY) * sw;
} else if(dimension==3){
// X
aData.m_bin_Sxw[offset][0] = weightedMeanX * sw;
aData.m_bin_Sx2w[offset][0] =
aData.m_bin_Sx2w[offset][0] =
(weightedRmsX*weightedRmsX + weightedMeanX*weightedMeanX) * sw;
// Y :
aData.m_bin_Sxw[offset][1] = weightedMeanY * sw;
aData.m_bin_Sx2w[offset][1] =
aData.m_bin_Sx2w[offset][1] =
(weightedRmsY*weightedRmsY + weightedMeanY*weightedMeanY) * sw;
// Z :
aData.m_bin_Sxw[offset][2] = weightedMeanZ * sw;
aData.m_bin_Sx2w[offset][2] =
aData.m_bin_Sx2w[offset][2] =
(weightedRmsZ*weightedRmsZ + weightedMeanZ*weightedMeanZ) * sw;
}
} else { // Profile :
// bin writing is :
// " height=" << sout(aObj.bin_height(aIndex))
// " error=" << sout(aObj.bin_error(aIndex))
// " weightedMean=" << sout(aObj.bin_mean(aIndex))
// " rms=" << sout(aObj.bin_rms_value(aIndex))
// " weightedRms=" << sout(bin_rms(aIndex));
// From inlib profile, we have :
// height = svw / sw
// error = sqrt(fabs(sv2w/sw - (svw/sw)**2))/sqrt(sw)
// rms = sqrt(fabs(sv2w/sw - (svw/sw)**2))
// weightedMean = sxw/sw
// weightedRms = sqrt(fabs(sx2w/sw - (sxw/sw)**2))
// Then :
// sw = (rms/error)**2
// svw = sw * height
// sv2w = sw * (rms**2 + height**2)
// sxw = weightedMean * sw
// sx2w = (weightedRms*weightedRms+weightedMean*weightedMean) * sw;
double sw = 0;
if(error==0) {
// sv2w/sw = (svw/sw)**2
@@ -950,19 +950,19 @@ protected:
aData.m_bin_Sw2[offset] = 0; //FIXME
if(dimension==1) {
aData.m_bin_Sxw[offset][0] = weightedMean * sw;
aData.m_bin_Sx2w[offset][0] =
aData.m_bin_Sx2w[offset][0] =
(weightedRms * weightedRms + weightedMean * weightedMean) * sw;
} else if(dimension==2){
aData.m_bin_Sxw[offset][0] = weightedMeanX * sw;
aData.m_bin_Sxw[offset][1] = weightedMeanY * sw;
aData.m_bin_Sx2w[offset][0] =
aData.m_bin_Sx2w[offset][0] =
(weightedRmsX*weightedRmsX + weightedMeanX*weightedMeanX) * sw;
aData.m_bin_Sx2w[offset][1] =
aData.m_bin_Sx2w[offset][1] =
(weightedRmsY*weightedRmsY + weightedMeanY*weightedMeanY) * sw;
}
aData.m_bin_Svw[offset] = sw * height;
aData.m_bin_Sv2w[offset] = sw * (rms * rms + height * height);
}
}
}}
@@ -1030,10 +1030,10 @@ protected:
std::vector<colbook>& a_booking,
std::ostream& a_out){
a_found = false;
a_booking.clear();
a_booking.clear();
const std::string& tag_name = a_tree.tag_name();
if(tag_name=="columns") {
{looper _for(a_tree);
@@ -1042,14 +1042,14 @@ protected:
if(_elem->name()=="column") {
std::string stype;
if(!_elem->attribute_value(s_type(),stype)) {
a_out << "tools::xml::aidas::read_ntu_columns :"
a_out << "tools::xml::aidas::read_ntu_columns :"
<< " atb type missing on <column>"
<< std::endl;
return false;
}
std::string sname;
if(!_elem->attribute_value(s_name(),sname)) {
a_out << "tools::xml::aidas::read_ntu_columns :"
a_out << "tools::xml::aidas::read_ntu_columns :"
<< " atb name missing on <column>"
<< std::endl;
return false;
@@ -1068,34 +1068,34 @@ protected:
}}
a_found = true;
}
}
return true;
}
static bool read_ntu_rows(tree& a_tree,
aida::base_ntu& a_ntu,
bool& a_found,
std::ostream& a_out){
a_found = false;
const std::string& tag_name = a_tree.tag_name();
if(tag_name==s_annotation()) { //FIXME
return true;
} else if(tag_name==s_columns()) {
return true;
} else if(tag_name==s_rows()) {
// Sub items :
{looper _for(a_tree);
while(tree* _tree = _for.next_tree()) {
if(!read_ntu_rows(*_tree,a_ntu,a_found,a_out)) {
a_out << "tools::xml::aidas::read_ntu_rows :"
a_out << "tools::xml::aidas::read_ntu_rows :"
<< " sub read_ntu_rows failed."
<< std::endl;
return false;
@@ -1104,11 +1104,11 @@ protected:
}}
a_found = true;
return true;
} else if(tag_name==s_row()) {
const std::vector<aida::base_col*>& cols = a_ntu.columns();
std::vector<unsigned int> intus;
@@ -1122,7 +1122,7 @@ protected:
}
index++;
}}
std::string svalue;
{unsigned int icol = 0;
@@ -1132,28 +1132,28 @@ protected:
if(_elem->name()==s_entry()) {
if(!_elem->attribute_value(s_value(),svalue)) {
a_out << "tools::xml::aidas::read_ntu_rows :"
a_out << "tools::xml::aidas::read_ntu_rows :"
<< " can't get \"value\" attribute." << std::endl;
return false;
}
if(icol>=inot_ntus.size()) {
a_out << "tools::xml::aidas::read_ntu_rows :"
a_out << "tools::xml::aidas::read_ntu_rows :"
<< " too much <entry>." << std::endl;
return false;
}
if(inot_ntus[icol]>=cols.size()) {
a_out << "tools::xml::aidas::read_ntu_rows :"
a_out << "tools::xml::aidas::read_ntu_rows :"
<< " too much <entry>." << std::endl;
return false;
}
aida::base_col* bcol = cols[inot_ntus[icol]];
aida::aida_base_col* abcol =
aida::aida_base_col* abcol =
safe_cast<aida::base_col,aida::aida_base_col>(*bcol);
if(!abcol->s_fill(svalue)) {
a_out << "tools::xml::aidas::read_ntu_rows :"
a_out << "tools::xml::aidas::read_ntu_rows :"
<< " can't get \"value\" attribute." << std::endl;
return false;
}
@@ -1161,7 +1161,7 @@ protected:
}
}}}
// Sub items (entryITuple) :
{unsigned int icol = 0;
@@ -1172,31 +1172,31 @@ protected:
if( (_tag_name==s_entryITuple()) || //aida.dtd spec.
(_tag_name==s_entryTuple()) ){ //backward comp.
if(icol>=intus.size()) {
a_out << "tools::xml::aidas::read_ntu_rows :"
a_out << "tools::xml::aidas::read_ntu_rows :"
<< " too much <entry>." << std::endl;
return false;
}
}
if(intus[icol]>=cols.size()) {
a_out << "tools::xml::aidas::read_ntu_rows :"
a_out << "tools::xml::aidas::read_ntu_rows :"
<< " too much <entry>." << std::endl;
return false;
}
}
aida::base_col* bcol = cols[intus[icol]];
aida::aida_col_ntu* col_ntu = safe_cast<aida::base_col,aida::aida_col_ntu>(*bcol);
if(!col_ntu) {
a_out << "tools::xml::aidas::read_ntu_rows :"
<< " can't cast to bcol_ntu."
a_out << "tools::xml::aidas::read_ntu_rows :"
<< " can't cast to bcol_ntu."
<< std::endl;
return false;
}
aida::base_ntu* ntu = col_ntu->get_to_fill();
if(!ntu) {
a_out << "tools::xml::aidas::read_ntu_rows :"
<< " get_to_fill() returned null."
a_out << "tools::xml::aidas::read_ntu_rows :"
<< " get_to_fill() returned null."
<< std::endl;
return false;
}
}
{looper _for2(*_tree);
while(tree* _tree2 = _for2.next_tree()) {
@@ -1208,30 +1208,30 @@ protected:
}
}}}
if(!a_ntu.add_row()) {
a_out << "tools::xml::aidas::read_ntu_rows :"
a_out << "tools::xml::aidas::read_ntu_rows :"
<< " can't add row to ntuple."
<< std::endl;
return false;
}
return true;
}
a_out << "tools::xml::aidas::read_ntu_rows :"
a_out << "tools::xml::aidas::read_ntu_rows :"
<< " unknown item class " << sout(tag_name) << std::endl;
return false;
}
static raxml_out read_ntu(tree& a_tree,std::ostream& a_out,bool a_verbose,void*){
std::string sname;
a_tree.attribute_value(s_name(),sname);
if(a_verbose) {
a_out << "tools::xml::aidas::read_ntu :"
a_out << "tools::xml::aidas::read_ntu :"
<< " with name " << sout(sname)
<< "..." << std::endl;
}
@@ -1241,12 +1241,12 @@ protected:
std::string stitle;
a_tree.attribute_value(s_title(),stitle);
//FIXME annotation
// Booking parameters :
std::vector<colbook> booking;
// Jump in subitems to find columns items :
bool found = false;
@@ -1257,12 +1257,12 @@ protected:
}}
if(!found) {
a_out << "tools::xml::aidas::read_ntu :"
a_out << "tools::xml::aidas::read_ntu :"
<< " for ntuple name " << sout(sname)
<< " unable to read columns..." << std::endl;
return raxml_out();
}
// Create a aida::ntuple :
aida::ntuple* ntu = new aida::ntuple(a_out,stitle);
{tools_vforcit(colbook,booking,it) {
@@ -1277,7 +1277,7 @@ protected:
}}
if(!ntu->columns().size()) { //??? we could have an empty ntu !
a_out << "tools::xml::aidas::read_ntu :"
a_out << "tools::xml::aidas::read_ntu :"
<< " for ntuple name " << sout(sname)
<< " unable to create a aida::ntuple." << std::endl;
delete ntu;
@@ -1291,7 +1291,7 @@ protected:
while(tree* _tree = _for.next_tree()) {
if(!read_ntu_rows(*_tree,*ntu,found,a_out)) {
a_out << "tools::xml::aidas::read_ntu :"
a_out << "tools::xml::aidas::read_ntu :"
<< " for ntuple name " << sout(sname)
<< " unable to read rows." << std::endl;
delete ntu;
@@ -1300,13 +1300,13 @@ protected:
if(found) break;
}}
if(a_verbose) {
a_out << "tools::xml::aidas::read_ntu :"
a_out << "tools::xml::aidas::read_ntu :"
<< " name " << sout(sname)
<< " done." << std::endl;
}
std::string sclass = aida::ntuple::s_class();
return raxml_out(new handle<aida::ntuple>(ntu),sclass,spath,sname);
}
@@ -1325,9 +1325,9 @@ protected:
if(tagName==s_annotation()) { //FIXME
return true;
} else if(tagName==s_entries1d()) {
{looper _for(a_tree);
while(element* _elem = _for.next_element()) {
if(_elem->name()==s_entry1d()) {
@@ -1341,9 +1341,9 @@ protected:
}
}}
return true;
} else if(tagName==s_histogram1d()) {
raxml_out ro = read_h1d(a_tree,a_out,a_verbose,0);
if(ro.cls()==histo::h1d::s_class()) {
histo::h1d* h = (histo::h1d*)ro.object();
@@ -1353,26 +1353,26 @@ protected:
}
}
return true;
}
return false;
}
static bool read_cloud_data(tree& a_tree,
histo::c2d& aCloud,
bool a_verbose,
std::ostream& a_out){
const std::string& tagName = a_tree.tag_name();
std::string svalue;
if(tagName==s_annotation()) { //FIXME
return true;
} else if(tagName==s_entries2d()) {
{looper _for(a_tree);
while(element* _elem = _for.next_element()) {
if(_elem->name()==s_entry2d()) {
@@ -1388,9 +1388,9 @@ protected:
}
}}
return true;
} else if(tagName==s_histogram2d()) {
raxml_out ro = read_h2d(a_tree,a_out,a_verbose,0);
if(ro.cls()==histo::h2d::s_class()) {
histo::h2d* h = (histo::h2d*)ro.object();
@@ -1400,9 +1400,9 @@ protected:
}
}
return true;
}
return false;
}
@@ -1411,15 +1411,15 @@ protected:
bool a_verbose,
std::ostream& a_out){
const std::string& tagName = a_tree.tag_name();
std::string svalue;
if(tagName==s_annotation()) { //FIXME
return true;
} else if(tagName==s_entries3d()) {
{looper _for(a_tree);
while(element* _elem = _for.next_element()) {
if(_elem->name()==s_entry3d()) {
@@ -1437,9 +1437,9 @@ protected:
}
}}
return true;
} else if(tagName==s_histogram3d()) {
raxml_out ro = read_h3d(a_tree,a_out,a_verbose,0);
if(ro.cls()==histo::h3d::s_class()) {
histo::h3d* h = (histo::h3d*)ro.object();
@@ -1449,25 +1449,25 @@ protected:
}
}
return true;
}
return false;
}
static bool read_dps_data(tree& a_tree,histo::dps& a_dps){
const std::string& tagName = a_tree.tag_name();
std::string svalue;
if(tagName==s_annotation()) { //FIXME
return true;
} else if(tagName==s_dataPoint()) {
histo::data_point& point = a_dps.add_point();
unsigned int coord = 0;
{looper _for(a_tree);
@@ -1484,19 +1484,19 @@ protected:
if(_elem->attribute_value(s_errorMinus(),svalue)) {
if(!to<double>(svalue,errorMinus)) return false;
}
histo::measurement& m = point.coordinate(coord);
m.set_value(value);
m.set_error_plus(errorPlus);
m.set_error_minus(errorMinus);
coord++;
}
}}
return true;
}
return false;
}
@@ -43,7 +43,7 @@ public:
mem::increment(s_class().c_str());
#endif
m_name = a_name;
m_atbs = a_atbs;
m_atbs = a_atbs;
m_value = a_value;
}
virtual ~element(){
@@ -58,7 +58,7 @@ public:
mem::increment(s_class().c_str());
#endif
m_name = a_from.m_name;
m_atbs = a_from.m_atbs;
m_atbs = a_from.m_atbs;
m_value = a_from.m_value;
}
element& operator=(const element& a_from) {
@@ -102,7 +102,7 @@ public:
return to<T>(sv,a_value);
}
bool set_attribute_value(const std::string& a_atb,const std::string& a_value) {
tools_vforit(atb,m_atbs,it) {
if((*it).first==a_atb) {
@@ -120,7 +120,7 @@ public:
for(it=m_atbs.begin();it!=m_atbs.end();) {
if((*it).first==a_atb) {
it = m_atbs.erase(it);
} else {
} else {
++it;
}
}
@@ -133,7 +133,7 @@ public:
}
replace_(m_value,a_old,a_new);
}
protected:
std::string m_name;
std::vector<atb> m_atbs;
@@ -62,7 +62,7 @@ public:
tools::mem::increment(s_class().c_str());
#endif
}
virtual ~loader(){
delete m_compressed_reader;
clear();
@@ -137,7 +137,7 @@ public:
if(m_current) m_current->set_file(a_file);
return true;
}
bool load_string(const std::string& a_string){
clear();
if(!parse_buffer(a_string.size(),a_string.c_str(),
@@ -149,7 +149,7 @@ public:
}
return true;
}
bool load_buffer(size_t aSize,const char* aBuffer){
clear();
if(!parse_buffer(aSize,aBuffer,
@@ -161,7 +161,7 @@ public:
}
return true;
}
const tools::xml::tree* top_item() const {return m_current;}
tools::xml::tree* top_item(){return m_current;}
@@ -175,11 +175,11 @@ public:
}
return false;
}
protected:
protected:
void clear(){
// In case of problem, deleting m_current is not sufficient.
delete m_top;
delete m_top;
m_top = 0;
m_current = 0;
}
@@ -213,11 +213,11 @@ protected:
size_t len = tools::mn<size_t>(l,BUFSIZ); //BUFSIZ in cstdio
done = len < BUFSIZ ? 1 : 0;
if(XML_Parse(_parser, buf, (int)len, done)==XML_STATUS_ERROR) {
m_out << "parse_buffer :"
<< " " << XML_ErrorString(XML_GetErrorCode(_parser))
<< " at line " << (int)XML_GetCurrentLineNumber(_parser)
m_out << "parse_buffer :"
<< " " << XML_ErrorString(XML_GetErrorCode(_parser))
<< " at line " << (int)XML_GetCurrentLineNumber(_parser)
<< " at byte index " << (int)XML_GetCurrentByteIndex(_parser)
<< std::endl;
<< std::endl;
{XML_Index pos = XML_GetCurrentByteIndex(_parser);
XML_Index pmn = tools::mx<XML_Index>(pos-10,0);
XML_Index pmx = tools::mn<XML_Index>(pos+10,XML_Index(aSize)-1);
@@ -239,20 +239,20 @@ protected:
XML_ParserFree(_parser);
return true;
}
bool parse_file(const std::string& a_file,
XML_StartElementHandler a_start,XML_EndElementHandler a_end,
void* a_tag,bool a_compressed){
if(m_verbose) {
m_out << "parse_file :"
m_out << "parse_file :"
<< " parse file " << tools::sout(a_file) << "..." << std::endl;
}
m_errors = 0;
bool use_zlib = false;
if(a_compressed) {
if(m_verbose) {
m_out << "parse_file :"
m_out << "parse_file :"
<< " uncompress requested for file "
<< tools::sout(a_file) << "."
<< std::endl;
@@ -289,11 +289,11 @@ protected:
<< " can't open file " << a_file << std::endl;
if(delete_freader) delete freader;
return false;
}
}
m_depth = 0;
m_abort = false;
#ifdef TOOLS_MEM
XML_Memory_Handling_Suite mem;
mem.malloc_fcn = xml_malloc;
@@ -309,8 +309,8 @@ protected:
XML_SetCharacterDataHandler(_parser,(XML_CharacterDataHandler)character_data_handler);
//XML_SetProcessingInstructionHandler(_parser,
// processingInstructionHandler);
//char buf[1024 * BUFSIZ];
char buf[BUFSIZ];
int done = 0;
@@ -324,9 +324,9 @@ protected:
}
done = len < sizeof(buf) ? 1 : 0;
if(XML_Parse(_parser, buf, (int)len, done)==XML_STATUS_ERROR) {
m_out << "parse_file :"
m_out << "parse_file :"
<< " in file " << tools::sout(a_file)
<< " " << XML_ErrorString(XML_GetErrorCode(_parser))
<< " " << XML_ErrorString(XML_GetErrorCode(_parser))
<< " at line " << (int)XML_GetCurrentLineNumber(_parser)
<< std::endl;
XML_ParserFree(_parser);
@@ -344,7 +344,7 @@ protected:
XML_ParserFree(_parser);
freader->close();
if(m_verbose) {
m_out << "parse_file :"
m_out << "parse_file :"
<< " parse file " << tools::sout(a_file) << " done." << std::endl;
}
if(delete_freader) delete freader;
@@ -363,7 +363,7 @@ protected:
s[count] = *p;
count++;
}
}
}
if(count) {
s.resize(count);
This->m_value += s;
@@ -373,139 +373,139 @@ protected:
static void start_element(void* aUserData,const XML_Char* a_name,const XML_Char** a_atbs){
loader* This = (loader*)aUserData;
if(This->m_abort) return; //Do nothing.
This->m_depth++;
This->m_value = "";
std::string name = a_name; //Can't be empty
if(This->is_tag(name)) {
if(!This->m_current) {
if(This->m_depth==1) {
// Ok. Head.
} else {
This->m_out << "start_element :"
This->m_out << "start_element :"
<< " no tag with a depth of " << This->m_depth
<< std::endl;
<< std::endl;
This->m_abort = true;
return;
}
} else {
int delta = This->m_current->depth() - This->m_depth;
if(delta>=1) {
This->m_out << "start_element :"
<< " for element " << tools::sout(name)
This->m_out << "start_element :"
<< " for element " << tools::sout(name)
<< " tag with a delta depth of " << delta
<< std::endl;
<< std::endl;
This->m_abort = true;
return;
}
}
std::vector<tools::xml::tree::atb> atbs;
{const XML_Char** a_atts = a_atbs;
while((*a_atts)&&(*(a_atts+1))) {
atbs.push_back(tools::xml::tree::atb(*a_atts,*(a_atts+1)));
a_atts+=2;
}}
tools::xml::tree* parent = This->m_current;
tools::xml::tree* _tree = This->m_factory.create(name,atbs,parent);
if(!_tree) {
This->m_out << "start_element :"
<< " can't create a tree for tag " << tools::sout(name)
<< std::endl;
This->m_out << "start_element :"
<< " can't create a tree for tag " << tools::sout(name)
<< std::endl;
This->m_abort = true;
return;
}
//out << "start_element :" << std::endl;
//_tree->print_xml(*(This->m_printer),"debug : ");
if(parent) parent->add_child(_tree);
/*
if(This->m_current && !This->m_current->parent()) {
This->m_out << "start_element :"
This->m_out << "start_element :"
<< " warning : current tree without parent."
<< " Potential mem leak."
<< std::endl;
<< std::endl;
}
*/
This->m_current = _tree;
_tree->set_depth(This->m_depth); // Internal only.
if(!This->m_top) This->m_top = _tree;
} else {
if(!This->m_current) {
// Can't be in a non-tag without a tag !
This->m_out << "start_element :"
<< " for element " << tools::sout(name)
This->m_out << "start_element :"
<< " for element " << tools::sout(name)
<< " non-tag without some parent tag."
<< std::endl;
<< std::endl;
This->m_abort = true;
return;
} else {
int delta = This->m_depth - This->m_current->depth();
if(delta>1) {
This->m_out << "start_element :"
<< " for element " << tools::sout(name)
This->m_out << "start_element :"
<< " for element " << tools::sout(name)
<< " grand child of a tag."
<< std::endl;
<< std::endl;
This->m_abort = true;
return;
} else if(delta==1) { //ok
This->m_atbs.clear();
{const XML_Char** a_atts = a_atbs;
while((*a_atts)&&(*(a_atts+1))) {
This->m_atbs.push_back(tools::xml::tree::atb(*a_atts,*(a_atts+1)));
a_atts+=2;
}}
} else {
This->m_out << "start_element :"
<< " for element " << tools::sout(name)
This->m_out << "start_element :"
<< " for element " << tools::sout(name)
<< " non-tag with a delta depth of " << delta
<< std::endl;
<< std::endl;
This->m_abort = true;
return;
}
}
}
}
static void end_element(void* aUserData,const XML_Char* a_name){
loader* This = (loader*)aUserData;
if(This->m_abort) return; //Do nothing.
if(This->m_current) {
tools::xml::tree* tr = This->m_current;
int delta = This->m_depth - tr->depth();
if(delta==0) { //Back to a tag :
tools::xml::tree* parent = tr->parent();
bool keep = false;
bool cont = This->visit_end_element(*tr,keep);
if(keep) {
if(parent) {
/*
if(!This->m_current->parent()) {
This->m_out << "end_element :"
This->m_out << "end_element :"
<< " warning : current tree without parent (1)."
<< " Potential mem leak."
<< std::endl;
@@ -516,16 +516,16 @@ protected:
} else {
//FIXME : the top could be recreated !
if(This->m_top==tr) This->m_top = 0;
if(parent) {
parent->remove_child(tr); //delete the tr
} else {
delete tr;
}
/*
if(!This->m_current->parent()) {
This->m_out << "end_element :"
This->m_out << "end_element :"
<< " warning : current tree without parent (2)."
<< " Potential mem leak."
<< std::endl;
@@ -534,28 +534,28 @@ protected:
This->m_current = parent; //parent could be 0 : ok.
}
if(!cont) This->m_abort = true;
} else if(delta==1) { //Back to a child of tag :
//FIXME : correct m_value ? (Can we pick the one of a sub item ?)
tr->add_element(std::string(a_name),This->m_atbs,This->m_value);
tr->add_element(std::string(a_name),This->m_atbs,This->m_value);
//This->m_value = "";
} else {
This->m_out << "end_element :"
<< " problem for element " << tools::sout(std::string(a_name))
This->m_out << "end_element :"
<< " problem for element " << tools::sout(std::string(a_name))
<< " : delta depth of " << delta
<< std::endl;
<< std::endl;
This->m_abort = true;
}
}
This->m_depth--;
}
@@ -36,7 +36,7 @@ public:
const sg::cmaps_t& cmaps() const {return m_cmaps;}
sg::cmaps_t& cmaps() {return m_cmaps;}
typedef std::pair<std::string,std::string> style_item_t;
typedef std::vector<style_item_t> style_t;
typedef std::pair<std::string,style_t> named_style_t;
@@ -118,7 +118,7 @@ public:
std::map<std::string,style_t>::const_iterator it = m_styles.find(a_style);
if(it==m_styles.end()) {a_v.clear();return false;}
const style_t& sty = (*it).second;
if(!find(sty,a_key,a_v)) {a_v.clear();return false;}
if(!find(sty,a_key,a_v)) {a_v.clear();return false;}
return true;
}
*/
@@ -143,7 +143,7 @@ public:
<< " in style " << sout(a_msg) << "."
<< " can't convert " << sout(_s) << " to value."
<< std::endl;
return false;
return false;
}
a_v = v;
return true;
@@ -229,7 +229,7 @@ public:
<< " in style " << sout(a_msg) << "."
<< " can't convert " << sout(s) << " to bool."
<< std::endl;
return false;
return false;
}
a_v = v;
return true;
@@ -255,7 +255,7 @@ public:
// for plotter :
template <class T> //T = [style,text_style,line_style]
bool res_sg_style(const std::string& a_style,T& a_sg_style) const {
bool res_sg_style(const std::string& a_style,T& a_sg_style) const {
//NOTE : a_sg_style is changed according to what is found.
// Then it is not fully reset by this method.
const style_t* sty = find_style(a_style);
@@ -373,7 +373,7 @@ inline void load_style(styles& a_styles,const tree& a_tree) {
<< " <style> without name."
<< std::endl;
return;
}
}
styles::style_t sty;
@@ -389,7 +389,7 @@ inline void load_style(styles& a_styles,const tree& a_tree) {
<< " <copy> without from."
<< std::endl;
return;
}
}
const styles::style_t* csty = a_styles.find_style(from);
if(!csty) {
@@ -406,7 +406,7 @@ inline void load_style(styles& a_styles,const tree& a_tree) {
}
}}
if(sty.size()) a_styles.add_style(name,sty);
}
@@ -418,7 +418,7 @@ inline void load_plotter_style(styles& a_styles,const tree& a_tree) {
<< " <plotter_style> without name."
<< std::endl;
return;
}
}
{styles::style_t sty;
sty.push_back(styles::style_item_t("tag","plotter_style"));
@@ -435,7 +435,7 @@ inline void load_plotter_style(styles& a_styles,const tree& a_tree) {
<< " <copy> without from."
<< std::endl;
return;
}
}
const styles::style_t* csty = a_styles.find_style(from);
if(!csty) {
@@ -490,7 +490,7 @@ inline void load_plotter_style(styles& a_styles,const tree& a_tree) {
<< std::endl;
return;
}
{styles::style_t sty;
{looper _for2(*_tree);
@@ -503,7 +503,7 @@ inline void load_plotter_style(styles& a_styles,const tree& a_tree) {
<< " <copy> without from."
<< std::endl;
return;
}
}
const styles::style_t* csty = a_styles.find_style(from);
if(!csty) {
a_styles.out() << "tools::sg::gui_viewer::load_plotter_style : (2) :"
@@ -535,7 +535,7 @@ inline void load_plotter_style(styles& a_styles,const tree& a_tree) {
inline bool scan_style_tree(styles& a_styles,const tree& a_tree) {
if(a_tree.tag_name()!="styles") return false;
// look for aliases :
{looper _for(a_tree);
while(element* _elem = _for.next_element()) {
@@ -556,14 +556,14 @@ inline bool scan_style_tree(styles& a_styles,const tree& a_tree) {
while(tree* _tree = _for.next_tree()) {
const std::string& tag = _tree->tag_name();
if(tag=="style") {
if(tag=="style") {
load_style(a_styles,*_tree);
} else if(tag=="plotter_style") {
} else if(tag=="plotter_style") {
load_plotter_style(a_styles,*_tree);
}
}}
return true;
}
}}
+85 -85
View File
@@ -25,11 +25,11 @@ namespace xml {
// ...
// <element atb1="" atb2="" ...> value </element>
// ...
// </tree>
// </tree>
//
// tree.attribute_value(<name>,s)
// tree.attribute_value(<name>,s)
// retrieve the value of atb <name> of a <tag>
// tree.attribute_value(<element>,<name>,s)
// tree.attribute_value(<element>,<name>,s)
// retrieve the value of an atb <name> of a <element> of a <tree>
//
@@ -108,7 +108,7 @@ public:
/// attributes ////////////////////////////////////////
///////////////////////////////////////////////////////
const std::vector<atb>& attributes() const {return m_atbs;}
void add_attribute(const std::string& a_name,const std::string& a_value){
// No check is done about an existing a_name.
m_atbs.push_back(atb(a_name,a_value));
@@ -123,10 +123,10 @@ public:
}
void set_attributes(const std::vector<atb>& a_atbs) {
m_atbs = a_atbs;
m_atbs = a_atbs;
}
const std::string& tag_name() const {return m_tag_name;}
bool attribute_value(const std::string& a_atb,std::string& a_value) const {
a_value.clear();
size_t linen = m_atbs.size();
@@ -138,7 +138,7 @@ public:
}
return false;
}
template <class T>
bool attribute_value(const std::string& a_atb,T& a_value) const {
std::string sv;
@@ -151,7 +151,7 @@ public:
for(it=m_atbs.begin();it!=m_atbs.end();) {
if((*it).first==a_atb) {
it = m_atbs.erase(it);
} else {
} else {
++it;
}
}
@@ -169,14 +169,14 @@ public:
}
return false; //Not found.
}
///////////////////////////////////////////////////////
/// elements //////////////////////////////////////////
///////////////////////////////////////////////////////
void add_element(const std::string& a_name,const std::vector<atb>& a_atbs,const std::string& a_value){
m_childs.push_back(new element(a_name,a_atbs,a_value));
}
bool element_value(const std::string& a_name,std::string& a_value) const {
tools_lforcit(ielem*,m_childs,it) {
if(element* _elem = id_cast<ielem,element>(*(*it))) {
@@ -193,32 +193,32 @@ public:
/*
//NOTE : print is a Python keyword.
void dump(std::ostream& a_out){
a_out << "dump :"
a_out << "dump :"
<< " -----> " << this << " parent : " << m_parent << std::endl;
a_out << " data1 : " << m_data_1
<< " data2 : " << m_data_2
a_out << " data1 : " << m_data_1
<< " data2 : " << m_data_2
<< " dataInt : " << m_data_int
<< std::endl;
{size_t atbn = m_atbs.size();
for(size_t index=0;index<atbn;index++) {
a_out << " attribute : " << sout(m_atbs[index].first) << " "
a_out << " attribute : " << sout(m_atbs[index].first) << " "
<< sout(m_atbs[index].second) << std::endl;
}}
{tools_lforit(element*,m_elems,it) {
a_out << " element : \"" << (*it)->name() << "\" \""
a_out << " element : \"" << (*it)->name() << "\" \""
<< (*it)->value() << "\"" << std::endl;
}}
{tools_lforit(tree*,m_children,it) {
(*it)->dump(a_out);
}}
}
const std::list<element*>& elements() const {return m_elems;}
*/
*/
bool element_atb_value(const std::string& a_elem,const std::string& a_atb,std::string& a_value) const {
a_value.clear();
@@ -231,7 +231,7 @@ public:
}
return false;
}
template <class T>
bool element_atb_value(const std::string& a_elem,const std::string& a_atb,T& a_value) const {
std::string sv;
@@ -289,7 +289,7 @@ public:
const_cast<tree*>(this)->post_execute(check_item,&visitor);
return visitor.m_status;
}
class empty_visitor {
public:
empty_visitor(std::ostream& a_out)
@@ -298,24 +298,24 @@ public:
std::ostream& f_out;
bool m_status;
};
void post_execute(exec_func a_function,void* a_tag) {
if(!a_function) return;
if(!a_function(*this,a_tag)) return;
tools_lforcit(ielem*,m_childs,it) {
if(tree* _tree = id_cast<ielem,tree>(*(*it))) {
_tree->post_execute(a_function,a_tag);
}
}
}
static bool check_item(tree& a_tree,void* a_tag){
empty_visitor* visitor = (empty_visitor*)a_tag;
{const std::vector<atb>& atbs = a_tree.attributes();
size_t atbn = atbs.size();
size_t atbn = atbs.size();
for(size_t index=0;index<atbn;index++) {
const std::string& _atb = atbs[index].first;
const std::string& atbv = atbs[index].second;
@@ -327,11 +327,11 @@ public:
visitor->m_status = false;
}
}}
{tools_lforcit(ielem*,a_tree.m_childs,it) {
if(element* _elem = id_cast<ielem,element>(*(*it))) {
const std::vector<atb>& atbs = _elem->attributes();
size_t atbn = atbs.size();
size_t atbn = atbs.size();
for(size_t index=0;index<atbn;index++) {
const std::string& _atb = atbs[index].first;
const std::string& atbv = atbs[index].second;
@@ -344,10 +344,10 @@ public:
}
}
}}}
return true;
}
static void collect_by_tag(tree& a_tree,const std::string& a_tag,std::vector<tree*>& a_items) {
if(a_tree.tag_name()==a_tag) a_items.push_back(&a_tree);
tools_lforcit(ielem*,a_tree.m_childs,it) {
@@ -370,12 +370,12 @@ public:
static void unique(std::vector<tree*>& a_items) {
std::vector<tree*> items2;
tools_vforcit(tree*,a_items,it) {
std::string name;
if(!(*it)->attribute_value("name",name)) continue;
if(name.empty()) continue;
bool found = false;
{tools_vforit(tree*,items2,it2) {
std::string name2;
@@ -383,13 +383,13 @@ public:
if(name2==name) {
found = true;
break;
}
}
}}
if(!found) {
items2.push_back(*it);
}
}
a_items = items2;
}
@@ -401,7 +401,7 @@ public:
break;
}
}}
// Look children :
tools_lforcit(ielem*,m_childs,it) {
if(tree* _tree = id_cast<ielem,tree>(*(*it))) {
@@ -410,7 +410,7 @@ public:
}}
return 0;
}
tree* find_item_with_tag(const std::string& a_tag,
const std::string& a_name) const {
if(a_tag==tag_name()) {
@@ -418,7 +418,7 @@ public:
attribute_value("name",s);
if(a_name==s) return const_cast<tree*>(this);
}
// Look children :
tools_lforcit(ielem*,m_childs,it) {
if(tree* _tree = id_cast<ielem,tree>(*(*it))) {
@@ -427,7 +427,7 @@ public:
}}
return 0;
}
void remove_elements(const std::string& a_name){
// TOOLS_STL : to be checked :
std::list<ielem*>::iterator it;
@@ -444,7 +444,7 @@ public:
}
}
}
void add_child(tree* a_tree) {m_childs.push_back(a_tree);}
tree* create_copy(tree* a_parent) {
@@ -452,12 +452,12 @@ public:
if(!itemML) return 0;
itemML->m_atbs = m_atbs;
//FIXME : m_save
{tools_lforcit(ielem*,m_childs,it) {
if(element* _elem = id_cast<ielem,element>(*(*it))) {
itemML->m_childs.push_back(new element(*_elem));
}}}
{tools_lforcit(ielem*,m_childs,it) {
if(tree* _tree = id_cast<ielem,tree>(*(*it))) {
//FIXME : could we have mismatch parent/child ?
@@ -468,10 +468,10 @@ public:
}
itemML->add_child(obj);
}}}
return itemML;
}
bool copy(const tree& a_from,
copy_what a_what = copy_all,
bool a_clear = true){
@@ -481,7 +481,7 @@ public:
if(a_clear) m_atbs.clear();
tools_vforcit(atb,a_from.m_atbs,it) m_atbs.push_back(*it);
}
if((a_what==copy_all)||(a_what==copy_elements)) {
if(a_clear) delete_sub_elems();
tools_lforcit(ielem*,a_from.m_childs,it) {
@@ -490,9 +490,9 @@ public:
}
}
}
if((a_what==copy_all)||(a_what==copy_children)) {
if(a_clear) delete_sub_trees();
if(a_clear) delete_sub_trees();
tools_lforcit(ielem*,a_from.m_childs,it) {
if(tree* _tree = id_cast<ielem,tree>(*(*it))) {
//FIXME : could we have mismatch parent/child ?
@@ -506,13 +506,13 @@ public:
}
}
}
//FIXME : m_save
return true;
}
void replace(const std::string& a_old,const std::string& a_new) {
// Used by the obuild template system.
{size_t atbn = m_atbs.size();
@@ -520,7 +520,7 @@ public:
std::string& value = m_atbs[index].second;
replace_(value,a_old,a_new);
}}
tools_lforit(ielem*,m_childs,it) {
if(tree* _tree = id_cast<ielem,tree>(*(*it))) {
_tree->replace(a_old,a_new);
@@ -561,21 +561,21 @@ public:
if(tree* _tree = id_cast<ielem,tree>(*(*it))) {
_tree->post_execute_backward(a_function,a_tag);
}
}
}
if(!a_function(*this,a_tag)) return;
}
tree* find_by_attribute(const std::string& a_atb,const std::string& a_value,
bool a_up_down = true,bool a_left_right = true) const {
if(a_up_down) {
std::string s;
attribute_value(a_atb,s);
if(s==a_value) return const_cast<tree*>(this);
if(a_left_right) {
tools_lforcit(ielem*,m_childs,it) {
if(tree* _tree = id_cast<ielem,tree>(*(*it))) {
tree* itemML =
tree* itemML =
_tree->find_by_attribute(a_atb,a_value,a_up_down,a_left_right);
if(itemML) return itemML;
}
@@ -584,7 +584,7 @@ public:
std::list<ielem*>::const_reverse_iterator it;
for(it=m_childs.rbegin();it!=m_childs.rend();++it) {
if(tree* _tree = id_cast<ielem,tree>(*(*it))) {
tree* itemML =
tree* itemML =
_tree->find_by_attribute(a_atb,a_value,a_up_down,a_left_right);
if(itemML) return itemML;
}}
@@ -593,7 +593,7 @@ public:
if(a_left_right) {
tools_lforcit(ielem*,m_childs,it) {
if(tree* _tree = id_cast<ielem,tree>(*(*it))) {
tree* itemML =
tree* itemML =
_tree->find_by_attribute(a_atb,a_value,a_up_down,a_left_right);
if(itemML) return itemML;
}}
@@ -601,20 +601,20 @@ public:
std::list<ielem*>::const_reverse_iterator it;
for(it=m_childs.rbegin();it!=m_childs.rend();++it) {
if(tree* _tree = id_cast<ielem,tree>(*(*it))) {
tree* itemML =
tree* itemML =
_tree->find_by_attribute(a_atb,a_value,a_up_down,a_left_right);
if(itemML) return itemML;
}}
}
std::string s;
attribute_value(a_atb,s);
if(s==a_value) return const_cast<tree*>(this);
}
return 0;
}
void dump_xml(std::ostream& a_out,const std::string& a_spaces = "") {
// begin tag :
@@ -625,14 +625,14 @@ public:
<< sout(m_atbs[index].second);
}}
a_out << ">" << std::endl;
{tools_lforcit(ielem*,m_childs,it) {
if(element* _elem = id_cast<ielem,element>(*(*it))) {
const std::vector<atb>& atbs = _elem->attributes();
bool isCallback = false;
a_out << a_spaces << " <" << _elem->name();
size_t atbn = atbs.size();
for(size_t index=0;index<atbn;index++) {
@@ -664,7 +664,7 @@ public:
a_out << "</" << _elem->name() << ">" << std::endl;
}
}}}
// End tag :
a_out << a_spaces << "</" << m_tag_name << ">" << std::endl;
}
@@ -691,7 +691,7 @@ public:
if(index==a_index) {
_elem->set_attribute_value(a_atb,a_value);
return true;
} else {
} else {
index++;
}
}
@@ -726,7 +726,7 @@ public:
}}
return false; //no replacement done.
}
// used in OnX/Widget.
virtual void* cast(const std::string& a_class) const {
if(void* p = cmp_cast<tree>(this,a_class)) {return p;}
@@ -743,7 +743,7 @@ public:
}
}}
}
void delete_element(element* a_element) {
tools_lforit(ielem*,m_childs,it) {
if(element* _elem = id_cast<ielem,element>(*(*it))) {
@@ -766,7 +766,7 @@ public:
}
}
}
void delete_sub_elems(){
std::list<ielem*>::iterator it;
for(it=m_childs.begin();it!=m_childs.end();) {
@@ -789,7 +789,7 @@ public:
}}
return 0;
}
bool element_value_boolean(const std::string& a_name,bool& a_value) const {
std::string value;
if(!element_value(a_name,value)) return false;
@@ -804,7 +804,7 @@ public:
std::string slabel;
if(_tree->element_value("label",slabel)) {
// Try to find a same label in the same level :
const tree* item =
const tree* item =
a_old.find_by_element_in_same_level("label",slabel);
if(item) {
bool sopened;
@@ -816,11 +816,11 @@ public:
}
}}
}
//////////////////////////////////////////////////
/// end osc //////////////////////////////////////
//////////////////////////////////////////////////
///////////////////////////////////////////////////////
/// sub trees /////////////////////////////////////////
///////////////////////////////////////////////////////
@@ -828,7 +828,7 @@ public:
tree* parent() const {return m_parent;}
void set_parent(tree* a_parent) {m_parent = a_parent;}
unsigned int number_of_trees() const {
unsigned int number = 0;
tools_lforcit(ielem*,m_childs,it) {
@@ -851,7 +851,7 @@ public:
if(m_children.empty()) return false;
return ( (*(m_children.begin()))==&a_tree) ? true : false;
}
bool is_last_child(const tree& a_tree) {
if(m_children.empty()) return false;
return ( m_children.back()==&a_tree) ? true : false;
@@ -914,22 +914,22 @@ public:
bool save_flag() const {return m_save;}
void set_file(const std::string& a_file) {m_file = a_file;}
const std::string& file() const {return m_file;}
protected:
void clear(){
m_atbs.clear();
// TOOLS_STL : no std::list::erase.
//{std::list<tree*>::iterator it;
// for(it=m_children.begin();
// it!=m_children.end();
// it = m_children.erase(it))
// it = m_children.erase(it))
// delete (*it);}
//
//{std::list<element*>::iterator it;
// for(it=m_elems.begin();it!=m_elems.end();it = m_elems.erase(it))
// for(it=m_elems.begin();it!=m_elems.end();it = m_elems.erase(it))
// delete (*it);}
while(!m_childs.empty()) {
ielem* item = m_childs.front();
m_childs.remove(item);
@@ -973,14 +973,14 @@ public:
if(_tree) {m_it++;return _tree;}
}
return 0;
}
}
element* next_element() {
for(;m_it!=m_end;++m_it) {
element* _elem = id_cast<ielem,element>(*(*m_it));
if(_elem) {m_it++;return _elem;}
}
return 0;
}
}
protected:
std::list<ielem*>::const_iterator m_it;
std::list<ielem*>::const_iterator m_end;
@@ -18,19 +18,19 @@
<style name="title_box_style"/>
<style name="inner_frame_style"/>
<style name="grid_style"/>
<style name="x_axis.line_style"/>
<style name="x_axis.ticks_style"/>
<style name="x_axis.labels_style"/>
<style name="x_axis.mag_style"/>
<style name="x_axis.title_style"/>
<style name="y_axis.line_style"/>
<style name="y_axis.ticks_style"/>
<style name="y_axis.labels_style"/>
<style name="y_axis.mag_style"/>
<style name="y_axis.title_style"/>
<style name="z_axis.line_style"/>
<style name="z_axis.ticks_style"/>
<style name="z_axis.labels_style"/>
@@ -70,7 +70,7 @@
<!-- <style name="wall_style"><visible>false</visible></style> -->
<style name="grid_style">
<visible>false</visible>
<!-- <color>white</color> ???? -->
<!-- <color>white</color> ???? -->
</style>
<!-- plot title done with the title_box (and not plotter title). -->
@@ -82,7 +82,8 @@
<back_color>ROOT/grey19</back_color>
<back_shadow>0.015</back_shadow> <!-- % of width -->
<color>black</color>
<font>arialbd.ttf</font>
<!-- <font>arialbd.ttf</font> -->
<font>roboto_bold.ttf</font>
<front_face>cw</front_face>
<smoothing>true</smoothing>
</style>
@@ -95,7 +96,8 @@
<back_color>ROOT/grey19</back_color>
<back_shadow>0.015</back_shadow> <!-- % of width -->
<color>black</color>
<font>arialbd.ttf</font>
<!-- <font>arialbd.ttf</font> -->
<font>roboto_bold.ttf</font>
<front_face>cw</front_face>
<smoothing>true</smoothing>
<modeling>ROOT</modeling> <!-- to have histo name as info title. -->
@@ -127,10 +129,11 @@
<color>black</color>
<line_width>1</line_width>
</style>
<style name="x_axis.labels_style">
<style name="x_axis.labels_style">
<color>black</color>
<scale>0.6</scale> <!-- To have a good matching with ROOT text size -->
<font>arialbd.ttf</font> <!-- ROOT_62 -->
<!-- <font>arialbd.ttf</font> --> <!-- ROOT_62 -->
<font>roboto_bold.ttf</font>
<front_face>cw</front_face>
<smoothing>true</smoothing>
</style>
@@ -138,14 +141,16 @@
<visible>true</visible>
<color>black</color>
<scale>0.6</scale>
<font>arialbd.ttf</font> <!-- ROOT_62 -->
<!-- <font>arialbd.ttf</font> --> <!-- ROOT_62 -->
<font>roboto_bold.ttf</font>
<front_face>cw</front_face>
<smoothing>true</smoothing>
</style>
<style name="x_axis.mag_style">
<color>black</color>
<scale>0.6</scale>
<font>arialbd.ttf</font> <!-- ROOT_62 -->
<!-- <font>arialbd.ttf</font> --> <!-- ROOT_62 -->
<font>roboto_bold.ttf</font>
<front_face>cw</front_face>
<smoothing>true</smoothing>
</style>
@@ -169,10 +174,11 @@
<color>black</color>
<line_width>1</line_width>
</style>
<style name="y_axis.labels_style">
<style name="y_axis.labels_style">
<color>black</color>
<scale>0.6</scale>
<font>arialbd.ttf</font> <!-- ROOT_62 -->
<!-- <font>arialbd.ttf</font> --> <!-- ROOT_62 -->
<font>roboto_bold.ttf</font>
<front_face>cw</front_face>
<smoothing>true</smoothing>
</style>
@@ -180,14 +186,16 @@
<visible>true</visible>
<color>black</color>
<scale>0.6</scale>
<font>arialbd.ttf</font> <!-- ROOT_62 -->
<!-- <font>arialbd.ttf</font> --> <!-- ROOT_62 -->
<font>roboto_bold.ttf</font>
<front_face>cw</front_face>
<smoothing>true</smoothing>
</style>
<style name="y_axis.mag_style">
<color>black</color>
<scale>0.6</scale>
<font>arialbd.ttf</font> <!-- ROOT_62 -->
<!-- <font>arialbd.ttf</font> --> <!-- ROOT_62 -->
<font>roboto_bold.ttf</font>
<front_face>cw</front_face>
<smoothing>true</smoothing>
</style>
@@ -204,7 +212,7 @@
<color>black</color>
<line_width>1</line_width>
</style>
<style name="z_axis.labels_style">
<style name="z_axis.labels_style">
<color>black</color>
<scale>0.6</scale>
</style>
@@ -236,10 +244,11 @@
<color>black</color>
<line_width>1</line_width>
</style>
<style name="colormap_axis.labels_style">
<style name="colormap_axis.labels_style">
<color>black</color>
<scale>0.6</scale>
<font>arialbd.ttf</font> <!-- ROOT_62 -->
<!-- <font>arialbd.ttf</font> --> <!-- ROOT_62 -->
<font>roboto_bold.ttf</font>
<front_face>cw</front_face>
<smoothing>true</smoothing>
</style>
@@ -247,14 +256,16 @@
<visible>true</visible>
<color>black</color>
<scale>0.6</scale>
<font>arialbd.ttf</font> <!-- ROOT_62 -->
<!-- <font>arialbd.ttf</font> --> <!-- ROOT_62 -->
<font>roboto_bold.ttf</font>
<front_face>cw</front_face>
<smoothing>true</smoothing>
</style>
<style name="colormap_axis.mag_style">
<color>black</color>
<scale>0.6</scale>
<font>arialbd.ttf</font> <!-- ROOT_62 -->
<!-- <font>arialbd.ttf</font> --> <!-- ROOT_62 -->
<font>roboto_bold.ttf</font>
<front_face>cw</front_face>
<smoothing>true</smoothing>
</style>
@@ -313,46 +324,53 @@
<style name="title_style">
<visible>true</visible>
<font>helvetica.ttf</font>
<!-- <font>helvetica.ttf</font> -->
<font>lato_regular.ttf</font>
<front_face>cw</front_face>
<smoothing>true</smoothing>
</style>
<style name="x_axis.title_style">
<visible>true</visible>
<font>helvetica.ttf</font>
<!-- <font>helvetica.ttf</font> -->
<font>lato_regular.ttf</font>
<front_face>cw</front_face>
<smoothing>true</smoothing>
</style>
<style name="x_axis.labels_style">
<style name="x_axis.labels_style">
<color>black</color>
<font>helvetica.ttf</font>
<!-- <font>helvetica.ttf</font> -->
<font>lato_regular.ttf</font>
<front_face>cw</front_face>
<smoothing>true</smoothing>
</style>
<style name="y_axis.title_style">
<visible>true</visible>
<font>helvetica.ttf</font>
<!-- <font>helvetica.ttf</font> -->
<font>lato_regular.ttf</font>
<front_face>cw</front_face>
<smoothing>true</smoothing>
</style>
<style name="y_axis.labels_style">
<style name="y_axis.labels_style">
<color>black</color>
<font>helvetica.ttf</font>
<!-- <font>helvetica.ttf</font> -->
<font>lato_regular.ttf</font>
<front_face>cw</front_face>
<smoothing>true</smoothing>
</style>
<style name="z_axis.title_style">
<visible>true</visible>
<font>helvetica.ttf</font>
<!-- <font>helvetica.ttf</font> -->
<font>lato_regular.ttf</font>
<front_face>cw</front_face>
<smoothing>true</smoothing>
</style>
<style name="z_axis.labels_style">
<style name="z_axis.labels_style">
<color>black</color>
<font>helvetica.ttf</font>
<!-- <font>helvetica.ttf</font> -->
<font>lato_regular.ttf</font>
<front_face>cw</front_face>
<smoothing>true</smoothing>
</style>
@@ -0,0 +1,811 @@
#ifndef wrap_viewplot_fonts_google_style
#define wrap_viewplot_fonts_google_style
//
// This file had been produced automatically
// by the inlib/wrap program from the file :
// viewplot_fonts_google.style
//
inline const char** viewplot_fonts_google_style(unsigned int& a_linen){
static const char _0[] = "<styles>";
static const char _1[] = "";
static const char _2[] = " <!-- //////////////////////////////////////////////// -->";
static const char _3[] = " <!-- /// scene : //////////////////////////////////// -->";
static const char _4[] = " <!-- //////////////////////////////////////////////// -->";
static const char _5[] = " <style name=@@double_quote@@scene@@double_quote@@>";
static const char _6[] = " <screen_color>white</screen_color>";
static const char _7[] = " </style>";
static const char _8[] = "";
static const char _9[] = " <!-- //////////////////////////////////////////////// -->";
static const char _10[] = " <!-- /// plotter : ////////////////////////////////// -->";
static const char _11[] = " <!-- //////////////////////////////////////////////// -->";
static const char _12[] = " <plotter_style name=@@double_quote@@inlib_default@@double_quote@@>";
static const char _13[] = " <!-- Placeholder for default customization. -->";
static const char _14[] = " <style name=@@double_quote@@background_style@@double_quote@@/>";
static const char _15[] = " <style name=@@double_quote@@title_style@@double_quote@@/>";
static const char _16[] = " <style name=@@double_quote@@infos_style@@double_quote@@/>";
static const char _17[] = " <style name=@@double_quote@@title_box_style@@double_quote@@/>";
static const char _18[] = " <style name=@@double_quote@@inner_frame_style@@double_quote@@/>";
static const char _19[] = " <style name=@@double_quote@@grid_style@@double_quote@@/>";
static const char _20[] = "";
static const char _21[] = " <style name=@@double_quote@@x_axis.line_style@@double_quote@@/>";
static const char _22[] = " <style name=@@double_quote@@x_axis.ticks_style@@double_quote@@/>";
static const char _23[] = " <style name=@@double_quote@@x_axis.labels_style@@double_quote@@/>";
static const char _24[] = " <style name=@@double_quote@@x_axis.mag_style@@double_quote@@/>";
static const char _25[] = " <style name=@@double_quote@@x_axis.title_style@@double_quote@@/>";
static const char _26[] = "";
static const char _27[] = " <style name=@@double_quote@@y_axis.line_style@@double_quote@@/>";
static const char _28[] = " <style name=@@double_quote@@y_axis.ticks_style@@double_quote@@/>";
static const char _29[] = " <style name=@@double_quote@@y_axis.labels_style@@double_quote@@/>";
static const char _30[] = " <style name=@@double_quote@@y_axis.mag_style@@double_quote@@/>";
static const char _31[] = " <style name=@@double_quote@@y_axis.title_style@@double_quote@@/>";
static const char _32[] = "";
static const char _33[] = " <style name=@@double_quote@@z_axis.line_style@@double_quote@@/>";
static const char _34[] = " <style name=@@double_quote@@z_axis.ticks_style@@double_quote@@/>";
static const char _35[] = " <style name=@@double_quote@@z_axis.labels_style@@double_quote@@/>";
static const char _36[] = " <style name=@@double_quote@@z_axis.mag_style@@double_quote@@/>";
static const char _37[] = " <style name=@@double_quote@@z_axis.title_style@@double_quote@@/>";
static const char _38[] = "";
static const char _39[] = " <style name=@@double_quote@@colormap_axis@@double_quote@@>";
static const char _40[] = " <label_to_axis>0.01</label_to_axis>";
static const char _41[] = " </style>";
static const char _42[] = " <style name=@@double_quote@@colormap_axis.line_style@@double_quote@@/>";
static const char _43[] = " <style name=@@double_quote@@colormap_axis.ticks_style@@double_quote@@/>";
static const char _44[] = " <style name=@@double_quote@@colormap_axis.labels_style@@double_quote@@/>";
static const char _45[] = " <style name=@@double_quote@@colormap_axis.mag_style@@double_quote@@/>";
static const char _46[] = " <style name=@@double_quote@@colormap_axis.title_style@@double_quote@@/>";
static const char _47[] = "";
static const char _48[] = " <style name=@@double_quote@@bins_style.0@@double_quote@@/>";
static const char _49[] = " <style name=@@double_quote@@errors_style.0@@double_quote@@/>";
static const char _50[] = " <style name=@@double_quote@@points_style.0@@double_quote@@/>";
static const char _51[] = " <style name=@@double_quote@@func_style.0@@double_quote@@/>";
static const char _52[] = " </plotter_style>";
static const char _53[] = "";
static const char _54[] = " <plotter_style name=@@double_quote@@ROOT_default@@double_quote@@>";
static const char _55[] = " <value_top_margin>0.05</value_top_margin>";
static const char _56[] = " <bottom_margin>0.1</bottom_margin>";
static const char _57[] = " <top_margin>0.1</top_margin>";
static const char _58[] = " <left_margin>0.1</left_margin>";
static const char _59[] = " <right_margin>0.1</right_margin>";
static const char _60[] = "";
static const char _61[] = " <style name=@@double_quote@@background_style@@double_quote@@>";
static const char _62[] = " <visible>true</visible>";
static const char _63[] = "<!-- <back_color>ROOT/grey19</back_color> -->";
static const char _64[] = " <!-- border : -->";
static const char _65[] = " <color>black</color>";
static const char _66[] = " <line_width>0.003</line_width> <!-- 0 = no border. In % of width -->";
static const char _67[] = " </style>";
static const char _68[] = "";
static const char _69[] = "<!-- <style name=@@double_quote@@wall_style@@double_quote@@><visible>false</visible></style> -->";
static const char _70[] = " <style name=@@double_quote@@grid_style@@double_quote@@>";
static const char _71[] = " <visible>false</visible>";
static const char _72[] = "<!-- <color>white</color> ???? -->";
static const char _73[] = " </style>";
static const char _74[] = "";
static const char _75[] = " <!-- plot title done with the title_box (and not plotter title). -->";
static const char _76[] = " <style name=@@double_quote@@title_style@@double_quote@@>";
static const char _77[] = " <visible>false</visible>";
static const char _78[] = " </style>";
static const char _79[] = " <style name=@@double_quote@@title_box_style@@double_quote@@>";
static const char _80[] = " <visible>true</visible>";
static const char _81[] = " <back_color>ROOT/grey19</back_color>";
static const char _82[] = " <back_shadow>0.015</back_shadow> <!-- % of width -->";
static const char _83[] = " <color>black</color>";
static const char _84[] = " <!-- <font>arialbd.ttf</font> -->";
static const char _85[] = " <font>roboto_bold.ttf</font>";
static const char _86[] = " <front_face>cw</front_face>";
static const char _87[] = " <smoothing>true</smoothing>";
static const char _88[] = " </style>";
static const char _89[] = "";
static const char _90[] = " <infos_width>0.35</infos_width>";
static const char _91[] = " <infos_x_margin>0.01</infos_x_margin> <!-- from right border. -->";
static const char _92[] = " <infos_y_margin>0.005</infos_y_margin> <!-- from top border. -->";
static const char _93[] = " <style name=@@double_quote@@infos_style@@double_quote@@>";
static const char _94[] = " <visible>true</visible>";
static const char _95[] = " <back_color>ROOT/grey19</back_color>";
static const char _96[] = " <back_shadow>0.015</back_shadow> <!-- % of width -->";
static const char _97[] = " <color>black</color>";
static const char _98[] = " <!-- <font>arialbd.ttf</font> -->";
static const char _99[] = " <font>roboto_bold.ttf</font>";
static const char _100[] = " <front_face>cw</front_face>";
static const char _101[] = " <smoothing>true</smoothing>";
static const char _102[] = " <modeling>ROOT</modeling> <!-- to have histo name as info title. -->";
static const char _103[] = " </style>";
static const char _104[] = "";
static const char _105[] = " <style name=@@double_quote@@inner_frame_style@@double_quote@@>";
static const char _106[] = " <visible>true</visible>";
static const char _107[] = " <color>black</color>";
static const char _108[] = " <line_width>1</line_width>";
static const char _109[] = " <!-- <line_pattern>solid</line_pattern> -->";
static const char _110[] = " </style>";
static const char _111[] = "";
static const char _112[] = " <style name=@@double_quote@@x_axis@@double_quote@@>";
static const char _113[] = " <modeling>hplot</modeling>";
static const char _114[] = " <divisions>510</divisions>";
static const char _115[] = " <title_hjust>right</title_hjust>";
static const char _116[] = " <label_to_axis>0.005</label_to_axis>";
static const char _117[] = " <label_height>0.04</label_height>";
static const char _118[] = " <tick_length>0.03</tick_length>";
static const char _119[] = " <title_to_axis>0.05</title_to_axis> <!-- YLAB = 0.05 -->";
static const char _120[] = " <title_height>0.04</title_height>";
static const char _121[] = " <is_log>false</is_log>";
static const char _122[] = " </style>";
static const char _123[] = " <style name=@@double_quote@@x_axis.line_style@@double_quote@@>";
static const char _124[] = " <color>black</color>";
static const char _125[] = " <line_width>1</line_width>";
static const char _126[] = " </style>";
static const char _127[] = " <style name=@@double_quote@@x_axis.ticks_style@@double_quote@@>";
static const char _128[] = " <color>black</color>";
static const char _129[] = " <line_width>1</line_width>";
static const char _130[] = " </style>";
static const char _131[] = " <style name=@@double_quote@@x_axis.labels_style@@double_quote@@>";
static const char _132[] = " <color>black</color>";
static const char _133[] = " <scale>0.6</scale> <!-- To have a good matching with ROOT text size -->";
static const char _134[] = " <!-- <font>arialbd.ttf</font> --> <!-- ROOT_62 -->";
static const char _135[] = " <font>roboto_bold.ttf</font>";
static const char _136[] = " <front_face>cw</front_face>";
static const char _137[] = " <smoothing>true</smoothing>";
static const char _138[] = " </style>";
static const char _139[] = " <style name=@@double_quote@@x_axis.title_style@@double_quote@@>";
static const char _140[] = " <visible>true</visible>";
static const char _141[] = " <color>black</color>";
static const char _142[] = " <scale>0.6</scale>";
static const char _143[] = " <!-- <font>arialbd.ttf</font> --> <!-- ROOT_62 -->";
static const char _144[] = " <font>roboto_bold.ttf</font>";
static const char _145[] = " <front_face>cw</front_face>";
static const char _146[] = " <smoothing>true</smoothing>";
static const char _147[] = " </style>";
static const char _148[] = " <style name=@@double_quote@@x_axis.mag_style@@double_quote@@>";
static const char _149[] = " <color>black</color>";
static const char _150[] = " <scale>0.6</scale>";
static const char _151[] = " <!-- <font>arialbd.ttf</font> --> <!-- ROOT_62 -->";
static const char _152[] = " <font>roboto_bold.ttf</font>";
static const char _153[] = " <front_face>cw</front_face>";
static const char _154[] = " <smoothing>true</smoothing>";
static const char _155[] = " </style>";
static const char _156[] = "";
static const char _157[] = " <style name=@@double_quote@@y_axis@@double_quote@@>";
static const char _158[] = " <modeling>hplot</modeling>";
static const char _159[] = " <divisions>510</divisions>";
static const char _160[] = " <title_hjust>right</title_hjust>";
static const char _161[] = " <label_to_axis>0.005</label_to_axis>";
static const char _162[] = " <label_height>0.04</label_height>";
static const char _163[] = " <tick_length>0.03</tick_length>";
static const char _164[] = " <title_to_axis>0.07</title_to_axis> <!-- XLAB = 0.07 -->";
static const char _165[] = " <title_height>0.04</title_height>";
static const char _166[] = " <is_log>false</is_log>";
static const char _167[] = " </style>";
static const char _168[] = " <style name=@@double_quote@@y_axis.line_style@@double_quote@@>";
static const char _169[] = " <color>black</color>";
static const char _170[] = " <line_width>1</line_width>";
static const char _171[] = " </style>";
static const char _172[] = " <style name=@@double_quote@@y_axis.ticks_style@@double_quote@@>";
static const char _173[] = " <color>black</color>";
static const char _174[] = " <line_width>1</line_width>";
static const char _175[] = " </style>";
static const char _176[] = " <style name=@@double_quote@@y_axis.labels_style@@double_quote@@>";
static const char _177[] = " <color>black</color>";
static const char _178[] = " <scale>0.6</scale>";
static const char _179[] = " <!-- <font>arialbd.ttf</font> --> <!-- ROOT_62 -->";
static const char _180[] = " <font>roboto_bold.ttf</font>";
static const char _181[] = " <front_face>cw</front_face>";
static const char _182[] = " <smoothing>true</smoothing>";
static const char _183[] = " </style>";
static const char _184[] = " <style name=@@double_quote@@y_axis.title_style@@double_quote@@>";
static const char _185[] = " <visible>true</visible>";
static const char _186[] = " <color>black</color>";
static const char _187[] = " <scale>0.6</scale>";
static const char _188[] = " <!-- <font>arialbd.ttf</font> --> <!-- ROOT_62 -->";
static const char _189[] = " <font>roboto_bold.ttf</font>";
static const char _190[] = " <front_face>cw</front_face>";
static const char _191[] = " <smoothing>true</smoothing>";
static const char _192[] = " </style>";
static const char _193[] = " <style name=@@double_quote@@y_axis.mag_style@@double_quote@@>";
static const char _194[] = " <color>black</color>";
static const char _195[] = " <scale>0.6</scale>";
static const char _196[] = " <!-- <font>arialbd.ttf</font> --> <!-- ROOT_62 -->";
static const char _197[] = " <font>roboto_bold.ttf</font>";
static const char _198[] = " <front_face>cw</front_face>";
static const char _199[] = " <smoothing>true</smoothing>";
static const char _200[] = " </style>";
static const char _201[] = "";
static const char _202[] = " <style name=@@double_quote@@z_axis@@double_quote@@>";
static const char _203[] = " <modeling>hplot</modeling>";
static const char _204[] = " <is_log>false</is_log>";
static const char _205[] = " </style>";
static const char _206[] = " <style name=@@double_quote@@z_axis.line_style@@double_quote@@>";
static const char _207[] = " <color>black</color>";
static const char _208[] = " <line_width>1</line_width>";
static const char _209[] = " </style>";
static const char _210[] = " <style name=@@double_quote@@z_axis.ticks_style@@double_quote@@>";
static const char _211[] = " <color>black</color>";
static const char _212[] = " <line_width>1</line_width>";
static const char _213[] = " </style>";
static const char _214[] = " <style name=@@double_quote@@z_axis.labels_style@@double_quote@@>";
static const char _215[] = " <color>black</color>";
static const char _216[] = " <scale>0.6</scale>";
static const char _217[] = " </style>";
static const char _218[] = " <style name=@@double_quote@@z_axis.title_style@@double_quote@@>";
static const char _219[] = " <color>black</color>";
static const char _220[] = " <scale>0.6</scale>";
static const char _221[] = " </style>";
static const char _222[] = " <style name=@@double_quote@@z_axis.mag_style@@double_quote@@>";
static const char _223[] = " <color>black</color>";
static const char _224[] = " <scale>0.6</scale>";
static const char _225[] = " </style>";
static const char _226[] = "";
static const char _227[] = " <style name=@@double_quote@@colormap_axis@@double_quote@@>";
static const char _228[] = " <modeling>hplot</modeling>";
static const char _229[] = " <divisions>510</divisions>";
static const char _230[] = " <title_hjust>right</title_hjust>";
static const char _231[] = " <label_to_axis>0.005</label_to_axis>";
static const char _232[] = " <label_height>0.04</label_height>";
static const char _233[] = " <tick_length>0.03</tick_length>";
static const char _234[] = " <title_to_axis>0.07</title_to_axis> <!-- XLAB = 0.07 -->";
static const char _235[] = " <title_height>0.04</title_height>";
static const char _236[] = " <is_log>false</is_log>";
static const char _237[] = " </style>";
static const char _238[] = " <style name=@@double_quote@@colormap_axis.line_style@@double_quote@@>";
static const char _239[] = " <color>black</color>";
static const char _240[] = " <line_width>1</line_width>";
static const char _241[] = " </style>";
static const char _242[] = " <style name=@@double_quote@@colormap_axis.ticks_style@@double_quote@@>";
static const char _243[] = " <color>black</color>";
static const char _244[] = " <line_width>1</line_width>";
static const char _245[] = " </style>";
static const char _246[] = " <style name=@@double_quote@@colormap_axis.labels_style@@double_quote@@>";
static const char _247[] = " <color>black</color>";
static const char _248[] = " <scale>0.6</scale>";
static const char _249[] = " <!-- <font>arialbd.ttf</font> --> <!-- ROOT_62 -->";
static const char _250[] = " <font>roboto_bold.ttf</font>";
static const char _251[] = " <front_face>cw</front_face>";
static const char _252[] = " <smoothing>true</smoothing>";
static const char _253[] = " </style>";
static const char _254[] = " <style name=@@double_quote@@colormap_axis.title_style@@double_quote@@>";
static const char _255[] = " <visible>true</visible>";
static const char _256[] = " <color>black</color>";
static const char _257[] = " <scale>0.6</scale>";
static const char _258[] = " <!-- <font>arialbd.ttf</font> --> <!-- ROOT_62 -->";
static const char _259[] = " <font>roboto_bold.ttf</font>";
static const char _260[] = " <front_face>cw</front_face>";
static const char _261[] = " <smoothing>true</smoothing>";
static const char _262[] = " </style>";
static const char _263[] = " <style name=@@double_quote@@colormap_axis.mag_style@@double_quote@@>";
static const char _264[] = " <color>black</color>";
static const char _265[] = " <scale>0.6</scale>";
static const char _266[] = " <!-- <font>arialbd.ttf</font> --> <!-- ROOT_62 -->";
static const char _267[] = " <font>roboto_bold.ttf</font>";
static const char _268[] = " <front_face>cw</front_face>";
static const char _269[] = " <smoothing>true</smoothing>";
static const char _270[] = " </style>";
static const char _271[] = "";
static const char _272[] = "";
static const char _273[] = " <style name=@@double_quote@@bins_style.0@@double_quote@@>";
static const char _274[] = " <modeling>top_lines</modeling>";
static const char _275[] = " <color>black</color>";
static const char _276[] = " <line_width>1</line_width>";
static const char _277[] = " <!-- <line_pattern>solid</line_pattern> -->";
static const char _278[] = " </style>";
static const char _279[] = "";
static const char _280[] = " <style name=@@double_quote@@func_style.0@@double_quote@@>";
static const char _281[] = " <modeling>top_lines</modeling>";
static const char _282[] = " <color>black</color>";
static const char _283[] = " <line_width>3</line_width>";
static const char _284[] = " <!-- <line_pattern>solid</line_pattern> -->";
static const char _285[] = " </style>";
static const char _286[] = " </plotter_style>";
static const char _287[] = "";
static const char _288[] = " <plotter_style name=@@double_quote@@hippodraw@@double_quote@@>";
static const char _289[] = " <value_top_margin>0.05</value_top_margin>";
static const char _290[] = " <bottom_margin>0.12</bottom_margin>";
static const char _291[] = " <top_margin>0.16</top_margin>";
static const char _292[] = " <left_margin>0.16</left_margin>";
static const char _293[] = " <right_margin>0.16</right_margin>";
static const char _294[] = " <title_to_axis>0.1</title_to_axis>";
static const char _295[] = " <title_height>0.03</title_height>";
static const char _296[] = "";
static const char _297[] = "<!-- <style name=@@double_quote@@wall_style@@double_quote@@><visible>false</visible></style> -->";
static const char _298[] = " <style name=@@double_quote@@grid_style@@double_quote@@>";
static const char _299[] = " <visible>false</visible>";
static const char _300[] = " </style>";
static const char _301[] = "";
static const char _302[] = " <style name=@@double_quote@@inner_frame_style@@double_quote@@>";
static const char _303[] = " <visible>true</visible>";
static const char _304[] = " </style>";
static const char _305[] = "";
static const char _306[] = " <style name=@@double_quote@@infos_style@@double_quote@@>";
static const char _307[] = " <visible>false</visible>";
static const char _308[] = " </style>";
static const char _309[] = "";
static const char _310[] = " <style name=@@double_quote@@x_axis@@double_quote@@>";
static const char _311[] = " <title_hjust>center</title_hjust>";
static const char _312[] = " <title_to_axis>0.07</title_to_axis>";
static const char _313[] = " <title_height>0.035</title_height>";
static const char _314[] = " <label_to_axis>0.015</label_to_axis>";
static const char _315[] = " <label_height>0.02625</label_height> <!-- 0.0175F * 1.5F -->";
static const char _316[] = " </style>";
static const char _317[] = " <style name=@@double_quote@@y_axis@@double_quote@@>";
static const char _318[] = " <title_hjust>center</title_hjust>";
static const char _319[] = " <title_to_axis>0.2</title_to_axis>";
static const char _320[] = " <title_height>0.035</title_height>";
static const char _321[] = " <label_height>0.02625</label_height> <!-- 0.0175F * 1.5F -->";
static const char _322[] = " </style>";
static const char _323[] = "";
static const char _324[] = " <style name=@@double_quote@@title_style@@double_quote@@>";
static const char _325[] = " <visible>true</visible>";
static const char _326[] = " <!-- <font>helvetica.ttf</font> -->";
static const char _327[] = " <font>lato_regular.ttf</font>";
static const char _328[] = " <front_face>cw</front_face>";
static const char _329[] = " <smoothing>true</smoothing>";
static const char _330[] = " </style>";
static const char _331[] = "";
static const char _332[] = " <style name=@@double_quote@@x_axis.title_style@@double_quote@@>";
static const char _333[] = " <visible>true</visible>";
static const char _334[] = " <!-- <font>helvetica.ttf</font> -->";
static const char _335[] = " <font>lato_regular.ttf</font>";
static const char _336[] = " <front_face>cw</front_face>";
static const char _337[] = " <smoothing>true</smoothing>";
static const char _338[] = " </style>";
static const char _339[] = " <style name=@@double_quote@@x_axis.labels_style@@double_quote@@>";
static const char _340[] = " <color>black</color>";
static const char _341[] = " <!-- <font>helvetica.ttf</font> -->";
static const char _342[] = " <font>lato_regular.ttf</font>";
static const char _343[] = " <front_face>cw</front_face>";
static const char _344[] = " <smoothing>true</smoothing>";
static const char _345[] = " </style>";
static const char _346[] = "";
static const char _347[] = " <style name=@@double_quote@@y_axis.title_style@@double_quote@@>";
static const char _348[] = " <visible>true</visible>";
static const char _349[] = " <!-- <font>helvetica.ttf</font> -->";
static const char _350[] = " <font>lato_regular.ttf</font>";
static const char _351[] = " <front_face>cw</front_face>";
static const char _352[] = " <smoothing>true</smoothing>";
static const char _353[] = " </style>";
static const char _354[] = " <style name=@@double_quote@@y_axis.labels_style@@double_quote@@>";
static const char _355[] = " <color>black</color>";
static const char _356[] = " <!-- <font>helvetica.ttf</font> -->";
static const char _357[] = " <font>lato_regular.ttf</font>";
static const char _358[] = " <front_face>cw</front_face>";
static const char _359[] = " <smoothing>true</smoothing>";
static const char _360[] = " </style>";
static const char _361[] = "";
static const char _362[] = " <style name=@@double_quote@@z_axis.title_style@@double_quote@@>";
static const char _363[] = " <visible>true</visible>";
static const char _364[] = " <!-- <font>helvetica.ttf</font> -->";
static const char _365[] = " <font>lato_regular.ttf</font>";
static const char _366[] = " <front_face>cw</front_face>";
static const char _367[] = " <smoothing>true</smoothing>";
static const char _368[] = " </style>";
static const char _369[] = " <style name=@@double_quote@@z_axis.labels_style@@double_quote@@>";
static const char _370[] = " <color>black</color>";
static const char _371[] = " <!-- <font>helvetica.ttf</font> -->";
static const char _372[] = " <font>lato_regular.ttf</font>";
static const char _373[] = " <front_face>cw</front_face>";
static const char _374[] = " <smoothing>true</smoothing>";
static const char _375[] = " </style>";
static const char _376[] = "";
static const char _377[] = " <style name=@@double_quote@@errors_style.0@@double_quote@@>";
static const char _378[] = " <visible>false</visible>";
static const char _379[] = " </style>";
static const char _380[] = "";
static const char _381[] = " <style name=@@double_quote@@bins_style.0@@double_quote@@>";
static const char _382[] = " <modeling>top_lines</modeling>";
static const char _383[] = " <color>black</color>";
static const char _384[] = " <line_width>1</line_width>";
static const char _385[] = " <!-- <line_pattern>solid</line_pattern> -->";
static const char _386[] = " </style>";
static const char _387[] = "";
static const char _388[] = " <style name=@@double_quote@@func_style.0@@double_quote@@>";
static const char _389[] = " <modeling>top_lines</modeling>";
static const char _390[] = " <color>black</color>";
static const char _391[] = " <line_width>1</line_width>";
static const char _392[] = " <!-- <line_pattern>solid</line_pattern> -->";
static const char _393[] = " </style>";
static const char _394[] = " </plotter_style>";
static const char _395[] = "";
static const char _396[] = "</styles>";
static const char* _lines[] = {
_0
,_1
,_2
,_3
,_4
,_5
,_6
,_7
,_8
,_9
,_10
,_11
,_12
,_13
,_14
,_15
,_16
,_17
,_18
,_19
,_20
,_21
,_22
,_23
,_24
,_25
,_26
,_27
,_28
,_29
,_30
,_31
,_32
,_33
,_34
,_35
,_36
,_37
,_38
,_39
,_40
,_41
,_42
,_43
,_44
,_45
,_46
,_47
,_48
,_49
,_50
,_51
,_52
,_53
,_54
,_55
,_56
,_57
,_58
,_59
,_60
,_61
,_62
,_63
,_64
,_65
,_66
,_67
,_68
,_69
,_70
,_71
,_72
,_73
,_74
,_75
,_76
,_77
,_78
,_79
,_80
,_81
,_82
,_83
,_84
,_85
,_86
,_87
,_88
,_89
,_90
,_91
,_92
,_93
,_94
,_95
,_96
,_97
,_98
,_99
,_100
,_101
,_102
,_103
,_104
,_105
,_106
,_107
,_108
,_109
,_110
,_111
,_112
,_113
,_114
,_115
,_116
,_117
,_118
,_119
,_120
,_121
,_122
,_123
,_124
,_125
,_126
,_127
,_128
,_129
,_130
,_131
,_132
,_133
,_134
,_135
,_136
,_137
,_138
,_139
,_140
,_141
,_142
,_143
,_144
,_145
,_146
,_147
,_148
,_149
,_150
,_151
,_152
,_153
,_154
,_155
,_156
,_157
,_158
,_159
,_160
,_161
,_162
,_163
,_164
,_165
,_166
,_167
,_168
,_169
,_170
,_171
,_172
,_173
,_174
,_175
,_176
,_177
,_178
,_179
,_180
,_181
,_182
,_183
,_184
,_185
,_186
,_187
,_188
,_189
,_190
,_191
,_192
,_193
,_194
,_195
,_196
,_197
,_198
,_199
,_200
,_201
,_202
,_203
,_204
,_205
,_206
,_207
,_208
,_209
,_210
,_211
,_212
,_213
,_214
,_215
,_216
,_217
,_218
,_219
,_220
,_221
,_222
,_223
,_224
,_225
,_226
,_227
,_228
,_229
,_230
,_231
,_232
,_233
,_234
,_235
,_236
,_237
,_238
,_239
,_240
,_241
,_242
,_243
,_244
,_245
,_246
,_247
,_248
,_249
,_250
,_251
,_252
,_253
,_254
,_255
,_256
,_257
,_258
,_259
,_260
,_261
,_262
,_263
,_264
,_265
,_266
,_267
,_268
,_269
,_270
,_271
,_272
,_273
,_274
,_275
,_276
,_277
,_278
,_279
,_280
,_281
,_282
,_283
,_284
,_285
,_286
,_287
,_288
,_289
,_290
,_291
,_292
,_293
,_294
,_295
,_296
,_297
,_298
,_299
,_300
,_301
,_302
,_303
,_304
,_305
,_306
,_307
,_308
,_309
,_310
,_311
,_312
,_313
,_314
,_315
,_316
,_317
,_318
,_319
,_320
,_321
,_322
,_323
,_324
,_325
,_326
,_327
,_328
,_329
,_330
,_331
,_332
,_333
,_334
,_335
,_336
,_337
,_338
,_339
,_340
,_341
,_342
,_343
,_344
,_345
,_346
,_347
,_348
,_349
,_350
,_351
,_352
,_353
,_354
,_355
,_356
,_357
,_358
,_359
,_360
,_361
,_362
,_363
,_364
,_365
,_366
,_367
,_368
,_369
,_370
,_371
,_372
,_373
,_374
,_375
,_376
,_377
,_378
,_379
,_380
,_381
,_382
,_383
,_384
,_385
,_386
,_387
,_388
,_389
,_390
,_391
,_392
,_393
,_394
,_395
,_396
};
a_linen = 397;
return _lines;
}
#endif
@@ -1,775 +0,0 @@
#ifndef wrap_viewplot_style
#define wrap_viewplot_style
//
// This file had been produced automatically
// by the inlib/wrap program from the file :
// viewplot.style
//
inline const char** viewplot_style(unsigned int& a_linen){
static const char _0[] = "<styles>";
static const char _1[] = "";
static const char _2[] = " <!-- //////////////////////////////////////////////// -->";
static const char _3[] = " <!-- /// scene : //////////////////////////////////// -->";
static const char _4[] = " <!-- //////////////////////////////////////////////// -->";
static const char _5[] = " <style name=@@double_quote@@scene@@double_quote@@>";
static const char _6[] = " <screen_color>white</screen_color>";
static const char _7[] = " </style>";
static const char _8[] = "";
static const char _9[] = " <!-- //////////////////////////////////////////////// -->";
static const char _10[] = " <!-- /// plotter : ////////////////////////////////// -->";
static const char _11[] = " <!-- //////////////////////////////////////////////// -->";
static const char _12[] = " <plotter_style name=@@double_quote@@inlib_default@@double_quote@@>";
static const char _13[] = " <!-- Placeholder for default customization. -->";
static const char _14[] = " <style name=@@double_quote@@background_style@@double_quote@@/>";
static const char _15[] = " <style name=@@double_quote@@title_style@@double_quote@@/>";
static const char _16[] = " <style name=@@double_quote@@infos_style@@double_quote@@/>";
static const char _17[] = " <style name=@@double_quote@@title_box_style@@double_quote@@/>";
static const char _18[] = " <style name=@@double_quote@@inner_frame_style@@double_quote@@/>";
static const char _19[] = " <style name=@@double_quote@@grid_style@@double_quote@@/>";
static const char _20[] = " ";
static const char _21[] = " <style name=@@double_quote@@x_axis.line_style@@double_quote@@/>";
static const char _22[] = " <style name=@@double_quote@@x_axis.ticks_style@@double_quote@@/>";
static const char _23[] = " <style name=@@double_quote@@x_axis.labels_style@@double_quote@@/>";
static const char _24[] = " <style name=@@double_quote@@x_axis.mag_style@@double_quote@@/>";
static const char _25[] = " <style name=@@double_quote@@x_axis.title_style@@double_quote@@/>";
static const char _26[] = " ";
static const char _27[] = " <style name=@@double_quote@@y_axis.line_style@@double_quote@@/>";
static const char _28[] = " <style name=@@double_quote@@y_axis.ticks_style@@double_quote@@/>";
static const char _29[] = " <style name=@@double_quote@@y_axis.labels_style@@double_quote@@/>";
static const char _30[] = " <style name=@@double_quote@@y_axis.mag_style@@double_quote@@/>";
static const char _31[] = " <style name=@@double_quote@@y_axis.title_style@@double_quote@@/>";
static const char _32[] = " ";
static const char _33[] = " <style name=@@double_quote@@z_axis.line_style@@double_quote@@/>";
static const char _34[] = " <style name=@@double_quote@@z_axis.ticks_style@@double_quote@@/>";
static const char _35[] = " <style name=@@double_quote@@z_axis.labels_style@@double_quote@@/>";
static const char _36[] = " <style name=@@double_quote@@z_axis.mag_style@@double_quote@@/>";
static const char _37[] = " <style name=@@double_quote@@z_axis.title_style@@double_quote@@/>";
static const char _38[] = "";
static const char _39[] = " <style name=@@double_quote@@colormap_axis@@double_quote@@>";
static const char _40[] = " <label_to_axis>0.01</label_to_axis>";
static const char _41[] = " </style>";
static const char _42[] = " <style name=@@double_quote@@colormap_axis.line_style@@double_quote@@/>";
static const char _43[] = " <style name=@@double_quote@@colormap_axis.ticks_style@@double_quote@@/>";
static const char _44[] = " <style name=@@double_quote@@colormap_axis.labels_style@@double_quote@@/>";
static const char _45[] = " <style name=@@double_quote@@colormap_axis.mag_style@@double_quote@@/>";
static const char _46[] = " <style name=@@double_quote@@colormap_axis.title_style@@double_quote@@/>";
static const char _47[] = "";
static const char _48[] = " <style name=@@double_quote@@bins_style.0@@double_quote@@/>";
static const char _49[] = " <style name=@@double_quote@@errors_style.0@@double_quote@@/>";
static const char _50[] = " <style name=@@double_quote@@points_style.0@@double_quote@@/>";
static const char _51[] = " <style name=@@double_quote@@func_style.0@@double_quote@@/>";
static const char _52[] = " </plotter_style>";
static const char _53[] = "";
static const char _54[] = " <plotter_style name=@@double_quote@@ROOT_default@@double_quote@@>";
static const char _55[] = " <value_top_margin>0.05</value_top_margin>";
static const char _56[] = " <bottom_margin>0.1</bottom_margin>";
static const char _57[] = " <top_margin>0.1</top_margin>";
static const char _58[] = " <left_margin>0.1</left_margin>";
static const char _59[] = " <right_margin>0.1</right_margin>";
static const char _60[] = "";
static const char _61[] = " <style name=@@double_quote@@background_style@@double_quote@@>";
static const char _62[] = " <visible>true</visible>";
static const char _63[] = "<!-- <back_color>ROOT/grey19</back_color> -->";
static const char _64[] = " <!-- border : -->";
static const char _65[] = " <color>black</color>";
static const char _66[] = " <line_width>0.003</line_width> <!-- 0 = no border. In % of width -->";
static const char _67[] = " </style>";
static const char _68[] = "";
static const char _69[] = "<!-- <style name=@@double_quote@@wall_style@@double_quote@@><visible>false</visible></style> -->";
static const char _70[] = " <style name=@@double_quote@@grid_style@@double_quote@@>";
static const char _71[] = " <visible>false</visible>";
static const char _72[] = "<!-- <color>white</color> ???? --> ";
static const char _73[] = " </style>";
static const char _74[] = "";
static const char _75[] = " <!-- plot title done with the title_box (and not plotter title). -->";
static const char _76[] = " <style name=@@double_quote@@title_style@@double_quote@@>";
static const char _77[] = " <visible>false</visible>";
static const char _78[] = " </style>";
static const char _79[] = " <style name=@@double_quote@@title_box_style@@double_quote@@>";
static const char _80[] = " <visible>true</visible>";
static const char _81[] = " <back_color>ROOT/grey19</back_color>";
static const char _82[] = " <back_shadow>0.015</back_shadow> <!-- % of width -->";
static const char _83[] = " <color>black</color>";
static const char _84[] = " <font>arialbd.ttf</font>";
static const char _85[] = " <front_face>cw</front_face>";
static const char _86[] = " <smoothing>true</smoothing>";
static const char _87[] = " </style>";
static const char _88[] = "";
static const char _89[] = " <infos_width>0.35</infos_width>";
static const char _90[] = " <infos_x_margin>0.01</infos_x_margin> <!-- from right border. -->";
static const char _91[] = " <infos_y_margin>0.005</infos_y_margin> <!-- from top border. -->";
static const char _92[] = " <style name=@@double_quote@@infos_style@@double_quote@@>";
static const char _93[] = " <visible>true</visible>";
static const char _94[] = " <back_color>ROOT/grey19</back_color>";
static const char _95[] = " <back_shadow>0.015</back_shadow> <!-- % of width -->";
static const char _96[] = " <color>black</color>";
static const char _97[] = " <font>arialbd.ttf</font>";
static const char _98[] = " <front_face>cw</front_face>";
static const char _99[] = " <smoothing>true</smoothing>";
static const char _100[] = " <modeling>ROOT</modeling> <!-- to have histo name as info title. -->";
static const char _101[] = " </style>";
static const char _102[] = "";
static const char _103[] = " <style name=@@double_quote@@inner_frame_style@@double_quote@@>";
static const char _104[] = " <visible>true</visible>";
static const char _105[] = " <color>black</color>";
static const char _106[] = " <line_width>1</line_width>";
static const char _107[] = " <!-- <line_pattern>solid</line_pattern> -->";
static const char _108[] = " </style>";
static const char _109[] = "";
static const char _110[] = " <style name=@@double_quote@@x_axis@@double_quote@@>";
static const char _111[] = " <modeling>hplot</modeling>";
static const char _112[] = " <divisions>510</divisions>";
static const char _113[] = " <title_hjust>right</title_hjust>";
static const char _114[] = " <label_to_axis>0.005</label_to_axis>";
static const char _115[] = " <label_height>0.04</label_height>";
static const char _116[] = " <tick_length>0.03</tick_length>";
static const char _117[] = " <title_to_axis>0.05</title_to_axis> <!-- YLAB = 0.05 -->";
static const char _118[] = " <title_height>0.04</title_height>";
static const char _119[] = " <is_log>false</is_log>";
static const char _120[] = " </style>";
static const char _121[] = " <style name=@@double_quote@@x_axis.line_style@@double_quote@@>";
static const char _122[] = " <color>black</color>";
static const char _123[] = " <line_width>1</line_width>";
static const char _124[] = " </style>";
static const char _125[] = " <style name=@@double_quote@@x_axis.ticks_style@@double_quote@@>";
static const char _126[] = " <color>black</color>";
static const char _127[] = " <line_width>1</line_width>";
static const char _128[] = " </style>";
static const char _129[] = " <style name=@@double_quote@@x_axis.labels_style@@double_quote@@> ";
static const char _130[] = " <color>black</color>";
static const char _131[] = " <scale>0.6</scale> <!-- To have a good matching with ROOT text size -->";
static const char _132[] = " <font>arialbd.ttf</font> <!-- ROOT_62 -->";
static const char _133[] = " <front_face>cw</front_face>";
static const char _134[] = " <smoothing>true</smoothing>";
static const char _135[] = " </style>";
static const char _136[] = " <style name=@@double_quote@@x_axis.title_style@@double_quote@@>";
static const char _137[] = " <visible>true</visible>";
static const char _138[] = " <color>black</color>";
static const char _139[] = " <scale>0.6</scale>";
static const char _140[] = " <font>arialbd.ttf</font> <!-- ROOT_62 -->";
static const char _141[] = " <front_face>cw</front_face>";
static const char _142[] = " <smoothing>true</smoothing>";
static const char _143[] = " </style>";
static const char _144[] = " <style name=@@double_quote@@x_axis.mag_style@@double_quote@@>";
static const char _145[] = " <color>black</color>";
static const char _146[] = " <scale>0.6</scale>";
static const char _147[] = " <font>arialbd.ttf</font> <!-- ROOT_62 -->";
static const char _148[] = " <front_face>cw</front_face>";
static const char _149[] = " <smoothing>true</smoothing>";
static const char _150[] = " </style>";
static const char _151[] = "";
static const char _152[] = " <style name=@@double_quote@@y_axis@@double_quote@@>";
static const char _153[] = " <modeling>hplot</modeling>";
static const char _154[] = " <divisions>510</divisions>";
static const char _155[] = " <title_hjust>right</title_hjust>";
static const char _156[] = " <label_to_axis>0.005</label_to_axis>";
static const char _157[] = " <label_height>0.04</label_height>";
static const char _158[] = " <tick_length>0.03</tick_length>";
static const char _159[] = " <title_to_axis>0.07</title_to_axis> <!-- XLAB = 0.07 -->";
static const char _160[] = " <title_height>0.04</title_height>";
static const char _161[] = " <is_log>false</is_log>";
static const char _162[] = " </style>";
static const char _163[] = " <style name=@@double_quote@@y_axis.line_style@@double_quote@@>";
static const char _164[] = " <color>black</color>";
static const char _165[] = " <line_width>1</line_width>";
static const char _166[] = " </style>";
static const char _167[] = " <style name=@@double_quote@@y_axis.ticks_style@@double_quote@@>";
static const char _168[] = " <color>black</color>";
static const char _169[] = " <line_width>1</line_width>";
static const char _170[] = " </style>";
static const char _171[] = " <style name=@@double_quote@@y_axis.labels_style@@double_quote@@> ";
static const char _172[] = " <color>black</color>";
static const char _173[] = " <scale>0.6</scale>";
static const char _174[] = " <font>arialbd.ttf</font> <!-- ROOT_62 -->";
static const char _175[] = " <front_face>cw</front_face>";
static const char _176[] = " <smoothing>true</smoothing>";
static const char _177[] = " </style>";
static const char _178[] = " <style name=@@double_quote@@y_axis.title_style@@double_quote@@>";
static const char _179[] = " <visible>true</visible>";
static const char _180[] = " <color>black</color>";
static const char _181[] = " <scale>0.6</scale>";
static const char _182[] = " <font>arialbd.ttf</font> <!-- ROOT_62 -->";
static const char _183[] = " <front_face>cw</front_face>";
static const char _184[] = " <smoothing>true</smoothing>";
static const char _185[] = " </style>";
static const char _186[] = " <style name=@@double_quote@@y_axis.mag_style@@double_quote@@>";
static const char _187[] = " <color>black</color>";
static const char _188[] = " <scale>0.6</scale>";
static const char _189[] = " <font>arialbd.ttf</font> <!-- ROOT_62 -->";
static const char _190[] = " <front_face>cw</front_face>";
static const char _191[] = " <smoothing>true</smoothing>";
static const char _192[] = " </style>";
static const char _193[] = "";
static const char _194[] = " <style name=@@double_quote@@z_axis@@double_quote@@>";
static const char _195[] = " <modeling>hplot</modeling>";
static const char _196[] = " <is_log>false</is_log>";
static const char _197[] = " </style>";
static const char _198[] = " <style name=@@double_quote@@z_axis.line_style@@double_quote@@>";
static const char _199[] = " <color>black</color>";
static const char _200[] = " <line_width>1</line_width>";
static const char _201[] = " </style>";
static const char _202[] = " <style name=@@double_quote@@z_axis.ticks_style@@double_quote@@>";
static const char _203[] = " <color>black</color>";
static const char _204[] = " <line_width>1</line_width>";
static const char _205[] = " </style>";
static const char _206[] = " <style name=@@double_quote@@z_axis.labels_style@@double_quote@@> ";
static const char _207[] = " <color>black</color>";
static const char _208[] = " <scale>0.6</scale>";
static const char _209[] = " </style>";
static const char _210[] = " <style name=@@double_quote@@z_axis.title_style@@double_quote@@>";
static const char _211[] = " <color>black</color>";
static const char _212[] = " <scale>0.6</scale>";
static const char _213[] = " </style>";
static const char _214[] = " <style name=@@double_quote@@z_axis.mag_style@@double_quote@@>";
static const char _215[] = " <color>black</color>";
static const char _216[] = " <scale>0.6</scale>";
static const char _217[] = " </style>";
static const char _218[] = "";
static const char _219[] = " <style name=@@double_quote@@colormap_axis@@double_quote@@>";
static const char _220[] = " <modeling>hplot</modeling>";
static const char _221[] = " <divisions>510</divisions>";
static const char _222[] = " <title_hjust>right</title_hjust>";
static const char _223[] = " <label_to_axis>0.005</label_to_axis>";
static const char _224[] = " <label_height>0.04</label_height>";
static const char _225[] = " <tick_length>0.03</tick_length>";
static const char _226[] = " <title_to_axis>0.07</title_to_axis> <!-- XLAB = 0.07 -->";
static const char _227[] = " <title_height>0.04</title_height>";
static const char _228[] = " <is_log>false</is_log>";
static const char _229[] = " </style>";
static const char _230[] = " <style name=@@double_quote@@colormap_axis.line_style@@double_quote@@>";
static const char _231[] = " <color>black</color>";
static const char _232[] = " <line_width>1</line_width>";
static const char _233[] = " </style>";
static const char _234[] = " <style name=@@double_quote@@colormap_axis.ticks_style@@double_quote@@>";
static const char _235[] = " <color>black</color>";
static const char _236[] = " <line_width>1</line_width>";
static const char _237[] = " </style>";
static const char _238[] = " <style name=@@double_quote@@colormap_axis.labels_style@@double_quote@@> ";
static const char _239[] = " <color>black</color>";
static const char _240[] = " <scale>0.6</scale>";
static const char _241[] = " <font>arialbd.ttf</font> <!-- ROOT_62 -->";
static const char _242[] = " <front_face>cw</front_face>";
static const char _243[] = " <smoothing>true</smoothing>";
static const char _244[] = " </style>";
static const char _245[] = " <style name=@@double_quote@@colormap_axis.title_style@@double_quote@@>";
static const char _246[] = " <visible>true</visible>";
static const char _247[] = " <color>black</color>";
static const char _248[] = " <scale>0.6</scale>";
static const char _249[] = " <font>arialbd.ttf</font> <!-- ROOT_62 -->";
static const char _250[] = " <front_face>cw</front_face>";
static const char _251[] = " <smoothing>true</smoothing>";
static const char _252[] = " </style>";
static const char _253[] = " <style name=@@double_quote@@colormap_axis.mag_style@@double_quote@@>";
static const char _254[] = " <color>black</color>";
static const char _255[] = " <scale>0.6</scale>";
static const char _256[] = " <font>arialbd.ttf</font> <!-- ROOT_62 -->";
static const char _257[] = " <front_face>cw</front_face>";
static const char _258[] = " <smoothing>true</smoothing>";
static const char _259[] = " </style>";
static const char _260[] = "";
static const char _261[] = "";
static const char _262[] = " <style name=@@double_quote@@bins_style.0@@double_quote@@>";
static const char _263[] = " <modeling>top_lines</modeling>";
static const char _264[] = " <color>black</color>";
static const char _265[] = " <line_width>1</line_width>";
static const char _266[] = " <!-- <line_pattern>solid</line_pattern> -->";
static const char _267[] = " </style>";
static const char _268[] = "";
static const char _269[] = " <style name=@@double_quote@@func_style.0@@double_quote@@>";
static const char _270[] = " <modeling>top_lines</modeling>";
static const char _271[] = " <color>black</color>";
static const char _272[] = " <line_width>3</line_width>";
static const char _273[] = " <!-- <line_pattern>solid</line_pattern> -->";
static const char _274[] = " </style>";
static const char _275[] = " </plotter_style>";
static const char _276[] = "";
static const char _277[] = " <plotter_style name=@@double_quote@@hippodraw@@double_quote@@>";
static const char _278[] = " <value_top_margin>0.05</value_top_margin>";
static const char _279[] = " <bottom_margin>0.12</bottom_margin>";
static const char _280[] = " <top_margin>0.16</top_margin>";
static const char _281[] = " <left_margin>0.16</left_margin>";
static const char _282[] = " <right_margin>0.16</right_margin>";
static const char _283[] = " <title_to_axis>0.1</title_to_axis>";
static const char _284[] = " <title_height>0.03</title_height>";
static const char _285[] = "";
static const char _286[] = "<!-- <style name=@@double_quote@@wall_style@@double_quote@@><visible>false</visible></style> -->";
static const char _287[] = " <style name=@@double_quote@@grid_style@@double_quote@@>";
static const char _288[] = " <visible>false</visible>";
static const char _289[] = " </style>";
static const char _290[] = "";
static const char _291[] = " <style name=@@double_quote@@inner_frame_style@@double_quote@@>";
static const char _292[] = " <visible>true</visible>";
static const char _293[] = " </style>";
static const char _294[] = "";
static const char _295[] = " <style name=@@double_quote@@infos_style@@double_quote@@>";
static const char _296[] = " <visible>false</visible>";
static const char _297[] = " </style>";
static const char _298[] = "";
static const char _299[] = " <style name=@@double_quote@@x_axis@@double_quote@@>";
static const char _300[] = " <title_hjust>center</title_hjust>";
static const char _301[] = " <title_to_axis>0.07</title_to_axis>";
static const char _302[] = " <title_height>0.035</title_height>";
static const char _303[] = " <label_to_axis>0.015</label_to_axis>";
static const char _304[] = " <label_height>0.02625</label_height> <!-- 0.0175F * 1.5F -->";
static const char _305[] = " </style>";
static const char _306[] = " <style name=@@double_quote@@y_axis@@double_quote@@>";
static const char _307[] = " <title_hjust>center</title_hjust>";
static const char _308[] = " <title_to_axis>0.2</title_to_axis>";
static const char _309[] = " <title_height>0.035</title_height>";
static const char _310[] = " <label_height>0.02625</label_height> <!-- 0.0175F * 1.5F -->";
static const char _311[] = " </style>";
static const char _312[] = "";
static const char _313[] = " <style name=@@double_quote@@title_style@@double_quote@@>";
static const char _314[] = " <visible>true</visible>";
static const char _315[] = " <font>helvetica.ttf</font>";
static const char _316[] = " <front_face>cw</front_face>";
static const char _317[] = " <smoothing>true</smoothing>";
static const char _318[] = " </style>";
static const char _319[] = "";
static const char _320[] = " <style name=@@double_quote@@x_axis.title_style@@double_quote@@>";
static const char _321[] = " <visible>true</visible>";
static const char _322[] = " <font>helvetica.ttf</font>";
static const char _323[] = " <front_face>cw</front_face>";
static const char _324[] = " <smoothing>true</smoothing>";
static const char _325[] = " </style>";
static const char _326[] = " <style name=@@double_quote@@x_axis.labels_style@@double_quote@@> ";
static const char _327[] = " <color>black</color>";
static const char _328[] = " <font>helvetica.ttf</font>";
static const char _329[] = " <front_face>cw</front_face>";
static const char _330[] = " <smoothing>true</smoothing>";
static const char _331[] = " </style>";
static const char _332[] = "";
static const char _333[] = " <style name=@@double_quote@@y_axis.title_style@@double_quote@@>";
static const char _334[] = " <visible>true</visible>";
static const char _335[] = " <font>helvetica.ttf</font>";
static const char _336[] = " <front_face>cw</front_face>";
static const char _337[] = " <smoothing>true</smoothing>";
static const char _338[] = " </style>";
static const char _339[] = " <style name=@@double_quote@@y_axis.labels_style@@double_quote@@> ";
static const char _340[] = " <color>black</color>";
static const char _341[] = " <font>helvetica.ttf</font>";
static const char _342[] = " <front_face>cw</front_face>";
static const char _343[] = " <smoothing>true</smoothing>";
static const char _344[] = " </style>";
static const char _345[] = "";
static const char _346[] = " <style name=@@double_quote@@z_axis.title_style@@double_quote@@>";
static const char _347[] = " <visible>true</visible>";
static const char _348[] = " <font>helvetica.ttf</font>";
static const char _349[] = " <front_face>cw</front_face>";
static const char _350[] = " <smoothing>true</smoothing>";
static const char _351[] = " </style>";
static const char _352[] = " <style name=@@double_quote@@z_axis.labels_style@@double_quote@@> ";
static const char _353[] = " <color>black</color>";
static const char _354[] = " <font>helvetica.ttf</font>";
static const char _355[] = " <front_face>cw</front_face>";
static const char _356[] = " <smoothing>true</smoothing>";
static const char _357[] = " </style>";
static const char _358[] = "";
static const char _359[] = " <style name=@@double_quote@@errors_style.0@@double_quote@@>";
static const char _360[] = " <visible>false</visible>";
static const char _361[] = " </style>";
static const char _362[] = "";
static const char _363[] = " <style name=@@double_quote@@bins_style.0@@double_quote@@>";
static const char _364[] = " <modeling>top_lines</modeling>";
static const char _365[] = " <color>black</color>";
static const char _366[] = " <line_width>1</line_width>";
static const char _367[] = " <!-- <line_pattern>solid</line_pattern> -->";
static const char _368[] = " </style>";
static const char _369[] = "";
static const char _370[] = " <style name=@@double_quote@@func_style.0@@double_quote@@>";
static const char _371[] = " <modeling>top_lines</modeling>";
static const char _372[] = " <color>black</color>";
static const char _373[] = " <line_width>1</line_width>";
static const char _374[] = " <!-- <line_pattern>solid</line_pattern> -->";
static const char _375[] = " </style>";
static const char _376[] = " </plotter_style>";
static const char _377[] = "";
static const char _378[] = "</styles>";
static const char* _lines[] = {
_0
,_1
,_2
,_3
,_4
,_5
,_6
,_7
,_8
,_9
,_10
,_11
,_12
,_13
,_14
,_15
,_16
,_17
,_18
,_19
,_20
,_21
,_22
,_23
,_24
,_25
,_26
,_27
,_28
,_29
,_30
,_31
,_32
,_33
,_34
,_35
,_36
,_37
,_38
,_39
,_40
,_41
,_42
,_43
,_44
,_45
,_46
,_47
,_48
,_49
,_50
,_51
,_52
,_53
,_54
,_55
,_56
,_57
,_58
,_59
,_60
,_61
,_62
,_63
,_64
,_65
,_66
,_67
,_68
,_69
,_70
,_71
,_72
,_73
,_74
,_75
,_76
,_77
,_78
,_79
,_80
,_81
,_82
,_83
,_84
,_85
,_86
,_87
,_88
,_89
,_90
,_91
,_92
,_93
,_94
,_95
,_96
,_97
,_98
,_99
,_100
,_101
,_102
,_103
,_104
,_105
,_106
,_107
,_108
,_109
,_110
,_111
,_112
,_113
,_114
,_115
,_116
,_117
,_118
,_119
,_120
,_121
,_122
,_123
,_124
,_125
,_126
,_127
,_128
,_129
,_130
,_131
,_132
,_133
,_134
,_135
,_136
,_137
,_138
,_139
,_140
,_141
,_142
,_143
,_144
,_145
,_146
,_147
,_148
,_149
,_150
,_151
,_152
,_153
,_154
,_155
,_156
,_157
,_158
,_159
,_160
,_161
,_162
,_163
,_164
,_165
,_166
,_167
,_168
,_169
,_170
,_171
,_172
,_173
,_174
,_175
,_176
,_177
,_178
,_179
,_180
,_181
,_182
,_183
,_184
,_185
,_186
,_187
,_188
,_189
,_190
,_191
,_192
,_193
,_194
,_195
,_196
,_197
,_198
,_199
,_200
,_201
,_202
,_203
,_204
,_205
,_206
,_207
,_208
,_209
,_210
,_211
,_212
,_213
,_214
,_215
,_216
,_217
,_218
,_219
,_220
,_221
,_222
,_223
,_224
,_225
,_226
,_227
,_228
,_229
,_230
,_231
,_232
,_233
,_234
,_235
,_236
,_237
,_238
,_239
,_240
,_241
,_242
,_243
,_244
,_245
,_246
,_247
,_248
,_249
,_250
,_251
,_252
,_253
,_254
,_255
,_256
,_257
,_258
,_259
,_260
,_261
,_262
,_263
,_264
,_265
,_266
,_267
,_268
,_269
,_270
,_271
,_272
,_273
,_274
,_275
,_276
,_277
,_278
,_279
,_280
,_281
,_282
,_283
,_284
,_285
,_286
,_287
,_288
,_289
,_290
,_291
,_292
,_293
,_294
,_295
,_296
,_297
,_298
,_299
,_300
,_301
,_302
,_303
,_304
,_305
,_306
,_307
,_308
,_309
,_310
,_311
,_312
,_313
,_314
,_315
,_316
,_317
,_318
,_319
,_320
,_321
,_322
,_323
,_324
,_325
,_326
,_327
,_328
,_329
,_330
,_331
,_332
,_333
,_334
,_335
,_336
,_337
,_338
,_339
,_340
,_341
,_342
,_343
,_344
,_345
,_346
,_347
,_348
,_349
,_350
,_351
,_352
,_353
,_354
,_355
,_356
,_357
,_358
,_359
,_360
,_361
,_362
,_363
,_364
,_365
,_366
,_367
,_368
,_369
,_370
,_371
,_372
,_373
,_374
,_375
,_376
,_377
,_378
};
a_linen = 379;
return _lines;
}
#endif
@@ -10,7 +10,7 @@
namespace tools {
namespace xml {
inline bool load_style_file(std::ostream&,const std::string& a_file,tools::xml::styles& a_styles) {
tools::xml::default_factory factory;
tools::xml::loader ml(factory,a_styles.out(),false);