diff --git a/slsDetectorSoftware/slsDetectorAnalysis/fileIOStatic.h b/slsDetectorSoftware/slsDetectorAnalysis/fileIOStatic.h index 8eb0bba37..cf4ab75f7 100644 --- a/slsDetectorSoftware/slsDetectorAnalysis/fileIOStatic.h +++ b/slsDetectorSoftware/slsDetectorAnalysis/fileIOStatic.h @@ -59,11 +59,11 @@ class fileIOStatic { static string createFileName(char *filepath, char *filename, int aMask, double sv0, int prec0, double sv1, int prec1, int pindex, int npos, int findex, int frameindex=-1, int detindex=-1){ \ ostringstream osfn; \ osfn << filepath << "/" << filename; \ + if(detindex>=0) osfn << "_d"<< detindex; \ if ( aMask& (1 << (slsDetectorDefs::MAX_ACTIONS))) osfn << "_S" << fixed << setprecision(prec0) << sv0; \ if (aMask & (1 << (slsDetectorDefs::MAX_ACTIONS+1))) osfn << "_s" << fixed << setprecision(prec1) << sv1; \ if (pindex>0 && pindex<=npos) osfn << "_p" << pindex; \ if(frameindex>=0) osfn << "_f" << frameindex; \ - if(detindex>=0) osfn << "_d"<< detindex; \ osfn << "_" << findex; \ return osfn.str(); \ }; @@ -89,10 +89,10 @@ class fileIOStatic { static string createReceiverFilePrefix(char *filename, int aMask, double sv0, int prec0, double sv1, int prec1, int pindex, int npos,int detindex=-1){ \ ostringstream osfn; \ osfn << filename; \ + if(detindex!=-1) osfn << "_d"<< detindex; \ if ( aMask& (1 << (slsDetectorDefs::MAX_ACTIONS))) osfn << "_S" << fixed << setprecision(prec0) << sv0; \ if (aMask & (1 << (slsDetectorDefs::MAX_ACTIONS+1))) osfn << "_s" << fixed << setprecision(prec1) << sv1; \ if (pindex>0 && pindex<=npos) osfn << "_p" << pindex; \ - if(detindex!=-1) osfn << "_d"<< detindex; \ return osfn.str(); \ }; @@ -161,7 +161,7 @@ class fileIOStatic { index=i; \ s=fname.substr(0,uscore); \ } \ - /*else cout << "******************************** cannot parse file index" << endl; \*/ + /* else cout << "******************************** cannot parse file index from " << s << endl; \*/ uscore=s.rfind("_"); \ if (sscanf( s.substr(uscore+1,s.size()-uscore-1).c_str(),"f%d",&i)) \ s=fname.substr(0,uscore); \ @@ -218,11 +218,6 @@ class fileIOStatic { } \ else cout << "******************************** cannot parse frame index" << endl; \ uscore=s.rfind("_"); \ - if (sscanf( s.substr(uscore+1,s.size()-uscore-1).c_str(),"d%d",&i)) { \ - detindex=i; \ - } \ - else cout << "******************************** cannot parse detector id" << endl; \ - uscore=s.rfind("_"); \ if (sscanf( s.substr(uscore+1,s.size()-uscore-1).c_str(),"p%d",&i)) { \ p_index=i; \ s=fname.substr(0,uscore); \ @@ -240,6 +235,11 @@ class fileIOStatic { s=fname.substr(0,uscore); \ } \ else cout << "******************************** cannot parse scan varable 0" << endl; \ + uscore=s.rfind("_"); \ + if (sscanf( s.substr(uscore+1,s.size()-uscore-1).c_str(),"d%d",&i)) { \ + detindex=i; \ + } \ + else cout << "******************************** cannot parse detector id" << endl; \ return index; \ }; @@ -255,9 +255,6 @@ class fileIOStatic { string s; \ s=fname; \ size_t uscore=s.rfind("_"); \ - if (sscanf( s.substr(uscore+1,s.size()-uscore-1).c_str(),"d%d",&i)) \ - s=fname.substr(0,uscore); \ - uscore=s.rfind("_"); \ if (sscanf( s.substr(uscore+1,s.size()-uscore-1).c_str(),"p%d",&i)) \ s=fname.substr(0,uscore); \ uscore=s.rfind("_"); \ @@ -265,7 +262,11 @@ class fileIOStatic { s=fname.substr(0,uscore); \ uscore=s.rfind("_"); \ if (sscanf( s.substr(uscore+1,s.size()-uscore-1).c_str(),"S%lf",&f)) \ - s=fname.substr(0,uscore); \ + s=fname.substr(0,uscore); \ + uscore=s.rfind("_"); \ + if (sscanf( s.substr(uscore+1,s.size()-uscore-1).c_str(),"d%d",&i)) \ + s=fname.substr(0,uscore); \ + return s; \ };