2660 xmlNodeListGetString(xml_doc, xml_beamdir->xmlChildrenNode, 1));
2662 if ( dirtype ==
"series" ) {
2666 }
else if ( dirtype ==
"thetaphi3") {
2671 if ( thetaphi3.size() == 6 ) {
2673 TVector3 newX =
AnglesToAxis(thetaphi3[0],thetaphi3[1],units);
2674 TVector3 newY =
AnglesToAxis(thetaphi3[2],thetaphi3[3],units);
2675 TVector3 newZ =
AnglesToAxis(thetaphi3[4],thetaphi3[5],units);
2676 fTempRot.RotateAxes(newX,newY,newZ);
2680 <<
" type=\"" << dirtype <<
"\" within <beamdir> needs 6 values";
2683 }
else if ( dirtype ==
"newxyz" ) {
2686 if ( newdir.size() == 9 ) {
2688 TVector3 newX = TVector3(newdir[0],newdir[1],newdir[2]).Unit();
2689 TVector3 newY = TVector3(newdir[3],newdir[4],newdir[5]).Unit();
2690 TVector3 newZ = TVector3(newdir[6],newdir[7],newdir[8]).Unit();
2691 fTempRot.RotateAxes(newX,newY,newZ);
2695 <<
" type=\"" << dirtype <<
"\" within <beamdir> needs 9 values";
2701 <<
" UNHANDLED type=\"" << dirtype <<
"\" within <beamdir>";
TVector3 AnglesToAxis(double theta, double phi, std::string units="deg")
string TrimSpaces(xmlChar *xmls)
int fVerbose
how noisy to be when parsing XML
Q_EXPORT QTSManip setprecision(int p)
void ParseRotSeries(xmlDocPtr &, xmlNodePtr &)
Q_EXPORT QTSManip setw(int w)
string TrimSpaces(string input)
std::vector< double > GetDoubleVector(std::string str)
#define SLOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a short string (using the FUNCTION and...
string GetAttribute(xmlNodePtr xml_cur, string attr_name)
QTextStream & endl(QTextStream &s)