The Gaudi Framework  master (181af51f)
Loading...
Searching...
No Matches
extractEvt.cpp File Reference
#include "extractEvt.C"
#include <cstdlib>
#include <stdexcept>
Include dependency graph for extractEvt.cpp:

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 

Function Documentation

◆ main()

int main ( int argc,
char ** argv )

Definition at line 26 of file extractEvt.cpp.

26 {
27 string input;
28 string output;
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" );
36 return usage();
37 }
38 ++i;
39 break;
40 case 'O':
41 if ( i + 1 < argc ) output = argv[i + 1];
42 ++i;
43 break;
44 case 'I':
45 if ( i + 1 < argc ) input = argv[i + 1];
46 ++i;
47 break;
48 default:
49 return usage();
50 }
51 }
52 }
53 if ( input.empty() ) {
54 ::printf( "\nERROR: No input file(s) supplied\n\n" );
55 return usage();
56 } else if ( output.empty() ) {
57 ::printf( "\nERROR: No output file supplied.\n\n" );
58 return usage();
59 } else if ( evt_num < 0 ) {
60 ::printf( "\nERROR: No valid event identifier given.\n\n" );
61 return usage();
62 }
63 gROOT->SetBatch( kTRUE );
64 try {
65 if ( extract_event( input.c_str(), output.c_str(), evt_num ) != EXTRACT_SUCCESS ) {
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)
int extract_event(const char *input, const char *output, long num_evt)
Definition extractEvt.C:384
void usage(const std::string &argv0)
list argv
Definition gaudirun.py:327