33 using namespace siscone;
37 #define THRESHOLD_DEFAULT 0.5
38 #define PTMIN_DEFAULT 0.0
39 #define NPASS_DEFAULT 0
40 #define DEFAULT_EVENT "events/single-event.dat"
41 #define SM_DEFAULT SM_pttilde
59 f = THRESHOLD_DEFAULT;
60 npass = NPASS_DEFAULT;
85 static struct option siscone_options[]={
87 {
"verbose", no_argument, &verbose_flag, 1},
88 {
"quiet", no_argument, &verbose_flag, 0},
89 {
"help", no_argument, &help_flag , 1},
90 {
"version", no_argument, &version_flag, 1},
92 {
"number", required_argument, NULL,
'N'},
93 {
"radius", required_argument, NULL,
'R'},
94 {
"fraction", required_argument, NULL,
'f'},
95 {
"ptmin", required_argument, NULL,
'p'},
96 {
"npass", required_argument, NULL,
'n'},
97 {
"event", required_argument, NULL,
'e'},
98 {
"sm", required_argument, NULL,
's'},
108 opt_param = getopt_long(argc, argv,
"hvqN:R:f:p:n:e:s:",
109 siscone_options, &option_index);
117 case 'h': help_flag = 1;
break;
118 case 'v': verbose_flag = 1;
break;
119 case 'q': verbose_flag = 0;
break;
121 sscanf(optarg,
"%d", &N_stop);
123 cout <<
"Warning: the specified number of particles must be positive. Using default one" << endl;
128 sscanf(optarg,
"%lf", &R);
130 cout <<
"Warning: the specified cone radius must be positive. Using default one" << endl;
135 sscanf(optarg,
"%lf", &f);
137 cout <<
"Warning: the specified split/merge threshold must be in [0,1]. Using default one" << endl;
138 f = THRESHOLD_DEFAULT;
142 sscanf(optarg,
"%lf", &ptmin);
144 cout <<
"Warning: the specified minimal pT must be non-negative. Using default one" << endl;
145 ptmin = PTMIN_DEFAULT;
149 sscanf(optarg,
"%d", &npass);
151 cout <<
"Warning: the specified number of passes must be non negative. Using default one" << endl;
152 npass = NPASS_DEFAULT;
157 ev_name =
new char[strlen(optarg)+1];
158 strcpy(ev_name, optarg);
164 if (strcmp(tmp,
"pttilde")==0){
166 }
else if (strcmp(tmp,
"mt")==0){
168 }
else if (strcmp(tmp,
"pt")==0){
170 }
else if (strcmp(tmp,
"Et")==0){
173 cout <<
"Warning: the specified varible for split--merge is not valid (should be pttilde, pt, mt or Et). Using pttilde as the default one." << endl;
181 fprintf(stderr,
"Giving up.\n");
186 fprintf(stderr,
"unrecognized option %c. Giving up.\n", opt_param);
193 ev_name =
new char[strlen(DEFAULT_EVENT)+1];
194 strcpy(ev_name, DEFAULT_EVENT);
204 cout << siscone_package_name() <<
" " << siscone_version() << endl;
205 cout <<
"Usage: " << siscone_package_name() <<
" <args>" << endl;
207 cout <<
"Here is an exhaustive list of the arguments:" << endl;
208 cout <<
"Parameters control (with default values):" << endl;
209 cout <<
" -n <val>, --number=<val> : set the maximum number of particles allowed (all)" << endl;
210 cout <<
" -R <val>, --radius=<val> : set the radius (" << R_DEFAULT <<
")" << endl;
211 cout <<
" -f <val>, --fraction=<val>: set the overlap parameter (" << THRESHOLD_DEFAULT <<
")" << endl;
212 cout <<
" -p <val>, --ptmin=<val> : set the minimal pT for protojets (" << PTMIN_DEFAULT <<
")" << endl;
213 cout <<
" -n <val>, --npass=<val> : set the maximal number of passes (0 for no limit) (" << NPASS_DEFAULT <<
")" << endl;
214 cout <<
" -e <val>, --event=<val> : set the event filename (" << DEFAULT_EVENT <<
")" << endl;
215 cout <<
" -s <val>, --sm=<val> : variable for split--merge: pttilde, mt, pt or Et (pttilde)" << endl;
217 cout <<
"Output flags" << endl;
218 cout <<
" --version : show version information" << endl;
219 cout <<
" -h, --help : show this message" << endl;
220 cout <<
" -v, --verbose: be verbose (on by default)" << endl;
221 cout <<
" -q, --quiet : be quiet" << endl;
231 cout << siscone_package_name() <<
" " << siscone_version() << endl;
232 cout <<
"Copyright (C) 2006." << endl;
233 cout << siscone_package_name() <<
" comes with NO WARRANTY," << endl;
234 cout <<
"to the extent permitted by law." << endl;
235 cout <<
"You may redistribute copies of " << siscone_package_name() << endl;
236 cout <<
"under the terms of the GNU General Public License." << endl;
237 cout <<
"For more information about these matters," << endl;
238 cout <<
"see the files named COPYING." << endl;
239 cout <<
"Please send bugs or comments to AUTHORS" << endl;
int print_version()
print program version
int parse_options(int argc, char **argv)
parse oprions
int print_help()
print the help message