1 ///////////////////////////////////////////////////////////////////////////////
2 // File: options.h                                                           //
3 // Description: management of the cmdline options of the main program        //
4 // This file is part of the SISCone project.                                 //
5 // For more details, see http://projects.hepforge.org/siscone                //
6 //                                                                           //
7 // Copyright (c) 2006 Gavin Salam and Gregory Soyez                          //
8 //                                                                           //
9 // This program is free software; you can redistribute it and/or modify      //
10 // it under the terms of the GNU General Public License as published by      //
11 // the Free Software Foundation; either version 2 of the License, or         //
12 // (at your option) any later version.                                       //
13 //                                                                           //
14 // This program is distributed in the hope that it will be useful,           //
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of            //
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             //
17 // GNU General Public License for more details.                              //
18 //                                                                           //
19 // You should have received a copy of the GNU General Public License         //
20 // along with this program; if not, write to the Free Software               //
21 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA //
22 //                                                                           //
23 // $Revision:: 180                                                          $//
24 // $Date:: 2007-10-03 19:21:19 +0200 (Wed, 03 Oct 2007)                     $//
25 ///////////////////////////////////////////////////////////////////////////////
26 
27 #ifndef __OPTIONS_H__
28 #define __OPTIONS_H__
29 
30 #include "siscone/siscone.h"
31 
32 /**
33  * \class Coptions
34 
35  * options for the 'cone' sample
36  */
37 class Coptions{
38  public:
39   /// default ctor
40   Coptions();
41 
42   /// default dtor
43   ~Coptions();
44 
45   /// parse oprions
46   /// \param argc  number of arguments from the command line
47   /// \param argv  arguments from the command line
48   /// \return 1 on error, 0 on success
49   int parse_options(int argc, char **argv);
50 
51   /// print the help message
52   int print_help();
53 
54   /// print program version
55   int print_version();
56 
57   // flags
58   int help_flag;     ///< do we need to print the help message
59   int version_flag;  ///< do we need to print the version description
60   int verbose_flag;  ///< do we need to print the help message
61 
62   // options
63   int N_stop;        ///< maximum number of particle
64   double R;          ///< cone radius
65   double f;          ///< split/merge threshold
66   double ptmin;      ///< minimal pT for jet candidates
67   char *ev_name;     ///< event to read
68   int npass;         ///< number of passes (0 for \infty)
69 
70   /// variable for split-merge
71   siscone::Esplit_merge_scale SM_var;
72 };
73 
74 #endif
75