Skip to content
Snippets Groups Projects
JpsiGamKsKlKKParser.hh 2.75 KiB
#ifndef JpsiGamKsKlKKParser_HH
#define JpsiGamKsKlKKParser_HH

#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <vector>
#include <utility>

// Boost headers go here

#include <boost/version.hpp>

#if BOOST_VERSION < 103600
#error "Error: Boost should at least have version 1.36 !"
#endif /* BOOST_VERSION */

#include <boost/program_options.hpp>
#include <boost/filesystem.hpp>

// For Microsoft-compatible compilers
#if defined(_MSC_VER)  &&  (_MSC_VER >= 1020)
#pragma once
#endif

// GenEvA headers go here
//#include <common/GCommonEnums.hpp>
//#include <common/GSerializationHelperFunctionsT.hpp>
//#include <geneva/GOptimizationEnums.hpp>

namespace po = boost::program_options;
//using namespace Gem::Geneva;

class JpsiGamKsKlKKParser
{
  public:
  typedef enum tagerrLogMode {debug,trace,routine,warning,error,alert} enErrLogMode;

  public:
    JpsiGamKsKlKKParser(int argc,char **argv)
      : _configFile("./JpsiGamKsKlKKConfig.cfg")
      , _errLogMode(debug)
      , _dataFile("/data/sleipnir1/bertram/JpsiGamKsKlKKData/fitvectorDATA_kkpi0.dat")
      , _mcFile("/data/sleipnir1/bertram/JpsiGamKsKlKKData/fitvectorMC_chic1_kkpi0.dat")
      , _paramFile("/data/sleipnir1/bertram/JpsiGamKsKlKKData/startParamSpin02.dat")
      , _startHypo("base")
      , _mode("qaMode")
      , _massIndependentFit(false)
      , _useCommonProductionPhases(false)
      , _massMin(0.0)
      , _massMax(10.)
  {
    if (!parseCommandLine(argc, argv)) throw false;
  }
  
  const std::string& getConfigFile() const { return _configFile;}
  const enErrLogMode& getErrLogMode() const { return _errLogMode; }
  const std::string dataFile() const {return _dataFile;}
  const std::string mcFile() const {return _mcFile;}
  const std::string fitParamFile() const {return _paramFile;}
  const std::vector<std::string>& enabledHyps() const { return _enabledHyps; }
  const std::string startHypo() const {return _startHypo;}
  const std::string mode() const {return _mode;}
  const std::vector<std::string>& fixedParams() const { return _mnParFixs; } 
  const bool massIndependentFit() const {return _massIndependentFit; }
  const bool useCommonProductionPhases() const {return _useCommonProductionPhases; }
  const std::pair<double, double> massRange() const { return std::make_pair( _massMin, _massMax  ) ; }
  
  
protected:
  bool parseCommandLine(int argc,char **argv);

protected:
  std::string _configFile;
  enErrLogMode _errLogMode;
  std::string _dataFile;
  std::string _mcFile;
  std::string _paramFile;
  std::string _startHypo;
  std::string _mode;		  
  std::vector<std::string> _enabledHyps;
  std::vector<std::string> _mnParFixs;
  bool _massIndependentFit;
  bool _useCommonProductionPhases;
  
  double _massMin;
  double _massMax;

};


#endif /* JpsiGamKsKlKKParser_HH */