@@ -168,7 +168,10 @@ void runRndFits(ConfigurationInfo* cfgInfo, bool useMinos, bool hesse, int maxIt
168168 ati.finalizeFit (to_string (i));
169169
170170 if ( seedfile.size () != 0 && !fitFailed ){
171- string seedfile_rand = seedfile + Form (" _%d.txt" , i);
171+ string seedfileBaseName = seedfile.substr (0 , seedfile.find_last_of (" ." ));
172+ string seedfileExtension = seedfile.substr (seedfile.find_last_of (" ." ));
173+
174+ string seedfile_rand = seedfileBaseName + Form (" _%d%s" , i, seedfileExtension.data ());
172175 ati.fitResults ()->writeSeed ( seedfile_rand );
173176 }
174177
@@ -187,8 +190,11 @@ void runRndFits(ConfigurationInfo* cfgInfo, bool useMinos, bool hesse, int maxIt
187190 else {
188191 cout << " MINIMUM LIKELIHOOD FROM " << minFitTag << " of " << numRnd << " RANDOM PRODUCTION PARS = " << minLH << endl;
189192 gSystem ->Exec (Form (" cp %s_%d.fit %s.fit" , fitName.data (), minFitTag, fitName.data ()));
190- if ( seedfile.size () != 0 )
191- gSystem ->Exec (Form (" cp %s_%d.txt %s.txt" , seedfile.data (), minFitTag, seedfile.data ()));
193+ if ( seedfile.size () != 0 ) {
194+ string seedfileBaseName = seedfile.substr (0 , seedfile.find_last_of (" ." ));
195+ string seedfileExtension = seedfile.substr (seedfile.find_last_of (" ." ));
196+ gSystem ->Exec (Form (" cp %s_%d%s %s" , seedfileBaseName.data (), minFitTag, seedfileExtension.data (), seedfile.data ()));
197+ }
192198 }
193199 }
194200
@@ -281,7 +287,10 @@ void runParScan(ConfigurationInfo* cfgInfo, bool useMinos, bool hesse, int maxIt
281287
282288 ati.finalizeFit (to_string (i));
283289 if ( seedfile.size () != 0 && !fitFailed ){
284- string seedfile_scan = seedfile + Form (" _scan_%d.dat" , i);
290+ string seedfileBaseName = seedfile.substr (0 , seedfile.find_last_of (" ." ));
291+ string seedfileExtension = seedfile.substr (seedfile.find_last_of (" ." ));
292+
293+ string seedfile_scan = seedfileBaseName + Form (" _scan_%d%s" , i, seedfileExtension.data ());
285294 ati.fitResults ()->writeSeed ( seedfile_scan );
286295 }
287296 }
@@ -415,6 +424,16 @@ int main( int argc, char* argv[] ){
415424 AmpToolsInterface::registerDataReader ( DataReaderMPI<ROOTDataReaderTEM>() );
416425 AmpToolsInterface::registerDataReader ( DataReaderMPI<FSRootDataReader>() );
417426
427+ // normalize seedFile file extension if not already set by user
428+ if (seedfile.size () != 0 ){
429+ if (seedfile.find (" ." ) == string::npos) seedfile += " .txt" ;
430+ else {
431+ // this ensures the file has an extension for cases like "./my_seed_file"
432+ string fileExtension = seedfile.substr (seedfile.find_last_of (" ." ));
433+ if (fileExtension.find (" /" ) != string::npos) seedfile += " .txt" ;
434+ }
435+ }
436+
418437 if (noFit)
419438 getLikelihood (cfgInfo);
420439 else if (numRnd==0 ){
0 commit comments