26 {
27 string input;
29 int evt_num = -1;
30 for (
int i = 1; i <
argc; ++i ) {
31 if ( *argv[i] == '-' ) {
32 switch (
::toupper( *( argv[i] + 1 ) ) ) {
33 case 'E':
34 if ( 1 != ::sscanf( argv[i + 1], "%d", &evt_num ) ) {
35 ::printf( "\nERROR: No valid event identifier given.\n\n" );
37 }
38 ++i;
39 break;
40 case 'O':
42 ++i;
43 break;
44 case 'I':
45 if ( i + 1 < argc ) input =
argv[i + 1];
46 ++i;
47 break;
48 default:
50 }
51 }
52 }
53 if ( input.empty() ) {
54 ::printf( "\nERROR: No input file(s) supplied\n\n" );
56 }
else if (
output.empty() ) {
57 ::printf( "\nERROR: No output file supplied.\n\n" );
59 } else if ( evt_num < 0 ) {
60 ::printf( "\nERROR: No valid event identifier given.\n\n" );
62 }
63 gROOT->SetBatch( kTRUE );
64 try {
66 ::printf( "\nERROR: Event extraction from file %s failed.\n", input.c_str() );
67 return 1;
68 }
69 return 0;
70 } catch ( const std::exception& e ) {
71 ::printf( "\nERROR: Event extraction from file %s failed [%s]\n", input.c_str(), e.what() );
72 } catch ( ... ) { ::printf( "\nERROR: Event extraction from file %s failed [unknown reason]\n", input.c_str() ); }
73 return 1;
74}
void toupper(std::string &s)
void usage(const std::string &argv0)