]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STARLIGHT/starlight/include/.svn/text-base/inputParameters.h.svn-base
Removing some SVN-related files
[u/mrichter/AliRoot.git] / STARLIGHT / starlight / include / .svn / text-base / inputParameters.h.svn-base
diff --git a/STARLIGHT/starlight/include/.svn/text-base/inputParameters.h.svn-base b/STARLIGHT/starlight/include/.svn/text-base/inputParameters.h.svn-base
deleted file mode 100644 (file)
index e599eac..0000000
+++ /dev/null
@@ -1,409 +0,0 @@
-///////////////////////////////////////////////////////////////////////////
-//
-//    Copyright 2010
-//
-//    This file is part of starlight.
-//
-//    starlight is free software: you can redistribute it and/or modify
-//    it under the terms of the GNU General Public License as published by
-//    the Free Software Foundation, either version 3 of the License, or
-//    (at your option) any later version.
-//
-//    starlight is distributed in the hope that it will be useful,
-//    but WITHOUT ANY WARRANTY; without even the implied warranty of
-//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-//    GNU General Public License for more details.
-//
-//    You should have received a copy of the GNU General Public License
-//    along with starlight. If not, see <http://www.gnu.org/licenses/>.
-//
-///////////////////////////////////////////////////////////////////////////
-//
-// File and Version Information:
-// $Rev::                             $: revision of last commit
-// $Author::                          $: author of last commit
-// $Date::                            $: date of last commit
-//
-// Description:
-//
-//
-//
-///////////////////////////////////////////////////////////////////////////
-
-
-#ifndef INPUTPARAMETERS_H
-#define INPUTPARAMETERS_H
-
-
-#include "starlightconstants.h"
-#include "inputParser.h"
-#include "singleton.h"
-#include <string>
-#include <ostream>
-#include <vector>
-#include <sstream>
-
-class parameterbase;
-
-
-class parameterlist
-{
-public:
-
-    parameterlist() : _parameters(0) {}
-
-    void add(parameterbase* p) {
-        _parameters.push_back(p);
-    }
-
-    // Returns a string with a key of the current state of the parameter list
-    // only
-    inline std::string validationKey();
-    
-
-private:
-
-    std::vector<parameterbase*> _parameters;
-
-};
-
-// Base class for parameters, needed to keep a list of parameters
-class parameterbase
-{
-public:
-
-    // Add this to parameter list
-    parameterbase()
-    {
-        _parameters.add(this);
-    }
-    virtual std::string validationkey() = 0;
-
-    template<typename T>
-    std::string toString(T v)
-    {
-        std::stringstream s;
-        s << v;
-        return s.str();
-    }
-    inline friend std::ostream& operator<<(std::ostream& os, const parameterbase& par);
-    // List of all parameters
-    static parameterlist _parameters;
-
-
-   
-};
-// Need to init the static variable
-// parameterlist parameterbase::_parameters;
-
-
-// The actual parameter class
-// validate parameter specifies if the parameter should be a part of the validity check of the current parameters
-template<typename T, bool validate>
-class parameter : public parameterbase
-{
-public:
-
-    // Constructor
-    parameter(const std::string &name, T value, bool required = true) :parameterbase(),_name(name), _value(value), _validate(validate), _required(required) {}
-
-//     T operator()() const {
-//         return _value;
-//     }
-
-    parameter &operator=(T v) { _value = v; return *this;}
-    T* ptr() const {
-        return const_cast<T*>(&_value);
-    }
-    
-    T value() const { return _value; }
-    
-    std::string name() const { return _name;}
-    
-    bool required() const { return _required; }
-    
-    void setValue(T v) { _value = v; }
-    
-    void setName(std::string name) { _name = name; }
-    
-    void setRequired(bool r) { _required = r; }
-    
-    // Validation key for this parameter
-    std::string validationkey()
-    {
-        return (_validate ? _name + ":" + toString(_value) + "-" : std::string(""));
-    }
-
-    template<typename S, bool v>
-    inline friend std::ostream& operator<<(std::ostream& os, const parameter<S,v>& par);
-
-
-
-private:
-    std::string _name;
-
-    T _value; // Value
-    bool _validate; // true if a change in the parameter invalidates x-sec tables
-    bool _required; // true if this is required option.
-
-    parameter();
-};
-
-template<typename S, bool v>
-std::ostream& operator<<(std::ostream& os, const parameter<S,v>& par)
-{
-    os << par._value;
-    return os;
-}
-
-std::ostream& operator<<(std::ostream& os, const parameterbase& par)
-{
-    os << par._parameters.validationKey(); 
-    return os;
-}
-std::string parameterlist::validationKey()
-{
-    std::stringstream s;
-    for(unsigned int i = 0; i < _parameters.size(); ++i)
-    {
-        s << _parameters[i]->validationkey(); // Will print names and values of validation parameters
-    }
-    return s.str();
-}
-
-class inputParameters {
-
-private:
-       // inputParameters is now a singleton
-       friend class Singleton<inputParameters>;
-       inputParameters();
-public:
-
-       ~inputParameters();
-
-       bool init();
-       bool configureFromFile(const std::string &configFileName = "./config/slight.in");
-
-       unsigned int beam1Z                () const { return _beam1Z.value();                 }  ///< returns atomic number of beam particle 1
-       unsigned int beam1A                () const { return _beam1A.value();                 }  ///< returns atomic mass number of beam particle 1
-       unsigned int beam2Z                () const { return _beam2Z.value();                 }  ///< returns atomic number of beam particle 2
-       unsigned int beam2A                () const { return _beam2A.value();                 }  ///< returns atomic mass number of beam particle 2
-       double       beamLorentzGamma      () const { return _beamLorentzGamma;       }  ///< returns Lorentz gamma factor of both beams in beam CMS frame
-       double       beam1LorentzGamma     () const { return _beam1LorentzGamma.value();      }  ///< returns Lorentz gamma factor of beam 1 in collider frame
-       double       beam2LorentzGamma     () const { return _beam2LorentzGamma.value();      }  ///< returns Lorentz gamma factor of beam 2 in collider frame
-       double       maxW                  () const { return _maxW.value();                   }  ///< returns maximum mass W of produced hadronic system [GeV/c^2]
-       double       minW                  () const { return _minW.value();                   }  ///< returns minimum mass W of produced hadronic system [GeV/c^2]
-       unsigned int nmbWBins              () const { return _nmbWBins.value();               }  ///< returns number of W bins in lookup table
-       double       maxRapidity           () const { return _maxRapidity.value();            }  ///< returns maximum absolute value of rapidity
-       unsigned int nmbRapidityBins       () const { return _nmbRapidityBins.value();        }  ///< returns number of rapidity bins in lookup table
-       bool         ptCutEnabled          () const { return _ptCutEnabled.value();           }  ///< returns cut in pt
-       double       ptCutMin              () const { return _ptCutMin.value();               }  ///< returns minimum pt
-       double       ptCutMax              () const { return _ptCutMax.value();               }  ///< returns maximum pt
-       bool         etaCutEnabled         () const { return _etaCutEnabled.value();          }  ///< returns cut in eta
-       double       etaCutMin             () const { return _etaCutMin.value();              }  ///< returns minimum eta
-       double       etaCutMax             () const { return _etaCutMax.value();              }  ///< returns maximum eta
-       int          productionMode        () const { return _productionMode.value();         }  ///< returns production mode
-       unsigned int nmbEvents             () const { return _nmbEventsTot.value();           }  ///< returns total number of events to generate
-       int          prodParticleId        () const { return _prodParticleId.value();         }  ///< returns PDG particle ID of produced particle
-       int          randomSeed            () const { return _randomSeed.value();             }  ///< returns seed for random number generator
-       int          outputFormat          () const { return _outputFormat.value();           }  ///< returns output format
-       int          beamBreakupMode       () const { return _beamBreakupMode.value();        }  ///< returns breakup mode for beam particles
-       bool         interferenceEnabled   () const { return _interferenceEnabled.value();    }  ///< returns whether interference is taken into account
-       double       interferenceStrength  () const { return _interferenceStrength.value();   }  ///< returns percentage of interference
-       bool         coherentProduction    () const { return _coherentProduction.value();     }  ///< returns whether production is coherent or incoherent
-       double       incoherentFactor      () const { return _incoherentFactor.value();       }  ///< returns incoherent contribution in vector meson production
-       double       deuteronSlopePar      () const { return _deuteronSlopePar.value();       }  ///< returns slope parameter for deuteron form factor [(GeV/c)^{-2}]
-       double       maxPtInterference     () const { return _maxPtInterference.value();      }  ///< returns maximum p_T for interference calculation [GeV/c]
-       int          nmbPtBinsInterference () const { return _nmbPtBinsInterference.value();  }  ///< returns number of p_T bins for interference calculation
-       double       ptBinWidthInterference() const { return _ptBinWidthInterference.value(); }  ///< returns width of p_T bins for interference calculation [GeV/c]
-       double       minGammaEnergy        () const { return _minGammaEnergy.value();         }  ///< returns minimum gamma energy in case of photo nuclear processes [GeV]
-       double       maxGammaEnergy        () const { return _maxGammaEnergy.value();         }  ///< returns maximum gamma energy in case of photo nuclear processes [GeV]
-       std::string  pythiaParams          () const { return _pythiaParams.value();           }  ///< returns parameters to be passed to pythia
-       bool         pythiaFullEventRecord () const { return _pythiaFullEventRecord.value();  }  ///< returns if the full pythia event record should be printed
-       int          xsecCalcMethod        () const { return _xsecCalcMethod.value();         }  ///< returns the method used for the x-sec calculation
-       int          nThreads              () const { return _nThreads.value();               }  ///< returns the number of threads in case method 1 is used for the x-sec calc
-       unsigned int nBinsQKniehl          () const { return _nBinsQKniehl.value();           }  ///< Number of bins in Q used for the transformation to the impact paramter space of the Kniehl function
-        unsigned int nBinsEKniehl          () const { return _nBinsEKniehl.value();           }  ///< Number of bins in photon energy used for the Kniehl function
-        unsigned int nBinsBKniehl          () const { return _nBinsBKniehl.value();           }  ///< Number of bins in impact parameter used for the Kniehl function
-        double       qMaxKniehl            () const { return _qMaxKniehl.value();             }  ///< Max value of Q used for the Kniehl funcion
-        double       eGammaMinKniehl       () const { return _eGammaMinKniehl.value();        }  ///< Min value of gamma energy used for the Kniehl funcion
-        double       eGammaMaxKniehl       () const { return _eGammaMaxKniehl.value();        }  ///< Max value of gamma energy used for the Kniehl funcion
-        double       bMinKniehl            () const { return _bMinKniehl.value();             }  ///< Min value of impact parameter used for the Kniehl funcion
-        double       bMaxKniehl            () const { return _bMaxKniehl.value();             }  ///< Max value of impact parameter used for the Kniehl funcion
-        
-       starlightConstants::particleTypeEnum    prodParticleType     () const { return _particleType;    }  ///< returns type of produced particle
-       starlightConstants::decayTypeEnum       prodParticleDecayType() const { return _decayType;       }  ///< returns decay type of produced particle
-       starlightConstants::interactionTypeEnum interactionType      () const { return _interactionType; }  ///< returns interaction type
-       // double vmPhotonCoupling();
-       // double slopeParameter();
-       double protonEnergy                () const { return _protonEnergy.value(); }
-
-       void setBeam1Z                (unsigned int v)  {  _beam1Z = v;                 }  ///< returns atomic number of beam particle 1
-       void setBeam1A                (unsigned int v)  {  _beam1A = v;                 }  ///< returns atomic mass number of beam particle 1
-       void setBeam2Z                (unsigned int v)  {  _beam2Z = v;                 }  ///< returns atomic number of beam particle 2
-       void setBeam2A                (unsigned int v)  {  _beam2A = v;                 }  ///< returns atomic mass number of beam particle 2
-       void setBeamLorentzGamma      (double v)  {  _beamLorentzGamma = v;       }  ///< returns Lorentz gamma factor of both beams in beam CMS frame
-       void setBeam1LorentzGamma     (double v)  {  _beam1LorentzGamma = v;      }  ///< returns Lorentz gamma factor of beam 1 in collider frame
-       void setBeam2LorentzGamma     (double v)  {  _beam2LorentzGamma = v;      }  ///< returns Lorentz gamma factor of beam 2 in collider frame
-       void setMaxW                  (double v)  {  _maxW = v;                   }  ///< returns maximum mass W of produced hadronic system [GeV/c^2]
-       void setMinW                  (double v)  {  _minW = v;                   }  ///< returns minimum mass W of produced hadronic system [GeV/c^2]
-       void setNmbWBins              (unsigned int v)  {  _nmbWBins = v;               }  ///< returns number of W bins in lookup table
-       void setMaxRapidity           (double v)  {  _maxRapidity = v;            }  ///< returns maximum absolute value of rapidity
-       void setNmbRapidityBins       (unsigned int v)  {  _nmbRapidityBins = v;        }  ///< returns number of rapidity bins in lookup table
-       void setPtCutEnabled          (bool v)  {  _ptCutEnabled = v;           }  ///< returns cut in pt
-       void setPtCutMin              (double v)  {  _ptCutMin = v;               }  ///< returns minimum pt
-       void setPtCutMax              (double v)  {  _ptCutMax = v;               }  ///< returns maximum pt
-       void setEtaCutEnabled         (bool v)  {  _etaCutEnabled = v;          }  ///< returns cut in eta
-       void setEtaCutMin             (double v)  {  _etaCutMin = v;              }  ///< returns minimum eta
-       void setEtaCutMax             (double v)  {  _etaCutMax = v;              }  ///< returns maximum eta
-       void setProductionMode        (int v)  {  _productionMode = v;         }  ///< returns production mode
-       void setNmbEvents             (unsigned int v)  {  _nmbEventsTot = v;           }  ///< returns total number of events to generate
-       void setProdParticleId        (int v)  {  _prodParticleId = v;         }  ///< returns PDG particle ID of produced particle
-       void setRandomSeed            (int v)  {  _randomSeed = v;             }  ///< returns seed for random number generator
-       void setOutputFormat          (int v)  {  _outputFormat = v;           }  ///< returns output format
-       void setBeamBreakupMode       (int v)  {  _beamBreakupMode = v;        }  ///< returns breakup mode for beam particles
-       void setInterferenceEnabled   (bool v)  {  _interferenceEnabled = v;    }  ///< returns whether interference is taken into account
-       void setInterferenceStrength  (double v)  {  _interferenceStrength = v;   }  ///< returns percentage of interference
-       void setCoherentProduction    (bool v)  {  _coherentProduction = v;     }  ///< returns whether production is coherent or incoherent
-       void setIncoherentFactor      (double v)  {  _incoherentFactor = v;       }  ///< returns incoherent contribution in vector meson production
-       void setDeuteronSlopePar      (double v)  {  _deuteronSlopePar = v;       }  ///< returns slope parameter for deuteron form factor [(GeV/c)^{-2}]
-       void setMaxPtInterference     (double v)  {  _maxPtInterference = v;      }  ///< returns maximum p_T for voiderference calculation [GeV/c]
-       void setNmbPtBinsInterference (int v)  {  _nmbPtBinsInterference = v;  }  ///< returns number of p_T bins for interference calculation
-       void setPtBinWidthInterference(double v)  {  _ptBinWidthInterference = v; }  ///< returns width of p_T bins for voiderference calculation [GeV/c]
-       void setMinGammaEnergy        (double v)  {  _minGammaEnergy = v;         }  ///< returns minimum gamma energy in case of photo nuclear processes [GeV]
-       void setMaxGammaEnergy        (double v)  {  _maxGammaEnergy = v;         }  ///< returns maximum gamma energy in case of photo nuclear processes [GeV]
-       void setPythiaParams          (std::string v)  {  _pythiaParams = v;           }  ///< returns parameters to be passed to pythia
-       void setPythiaFullEventRecord (bool v)  {  _pythiaFullEventRecord = v;  }  ///< returns if the full pythia event record should be prvoided
-       void setXsecCalcMethod        (int v)  {  _xsecCalcMethod = v;         }  ///< returns the method used for the x-sec calculation
-       void setNThreads              (int v)  {  _nThreads = v;               }  ///< returns the number of threads in case method 1 is used for the x-sec calc
-       void setNBinsQKniehl          (unsigned int v)  {  _nBinsQKniehl = v;           }  ///< Number of bins in Q used for the transformation to the impact paramter space of the Kniehl function
-        void setNBinsEKniehl          (unsigned int v)  {  _nBinsEKniehl = v;           }  ///< Number of bins in photon energy used for the Kniehl function
-        void setNBinsBKniehl          (unsigned int v)  {  _nBinsBKniehl = v;           }  ///< Number of bins in impact parameter used for the Kniehl function
-        void setQMaxKniehl            (double v)  {  _qMaxKniehl = v;             }  ///< Max value of Q used for the Kniehl funcion
-        void setEGammaMinKniehl       (double v)  {  _eGammaMinKniehl = v;        }  ///< Min value of gamma energy used for the Kniehl funcion
-        void setEGammaMaxKniehl       (double v)  {  _eGammaMaxKniehl = v;        }  ///< Max value of gamma energy used for the Kniehl funcion
-        void setBMinKniehl            (double v)  {  _bMinKniehl = v;             }  ///< Min value of impact parameter used for the Kniehl funcion
-        void setBMaxKniehl            (double v)  {  _bMaxKniehl = v;             }  ///< Max value of impact parameter used for the Kniehl funcion
-        
-       void setProdParticleType      (starlightConstants::particleTypeEnum v)   { _particleType = v;    }  ///< returns type of produced particle
-       void setProdParticleDecayType (starlightConstants::decayTypeEnum v)        { _decayType = v;       }  ///< returns decay type of produced particle
-       void setInteractionType       (starlightConstants::interactionTypeEnum v)  { _interactionType = v; }  ///< returns interaction type
-        
-       // double vmPhotonCoupling();
-       // double slopeParameter();
-       void setProtonEnergy        (double v)  { _protonEnergy = v; }
-       
-       template<typename T>
-       inline bool setParameter(std::string expression);
-       
-       std::ostream& print(std::ostream& out) const;  ///< prints parameter summary
-       std::ostream& write(std::ostream& out) const;  ///< writes parameters back to an ostream
-       
-       std::string parameterValueKey() const; ///< Generates key for the current parameters
-
-  
-private:
-
-    
-// To indicate if the crossection table should be re-calculated if parameter changes
-#define VALIDITY_CHECK true
-#define NO_VALIDITY_CHECK false
-       
-       std::string _configFileName;  ///< path to configuration file (default = ./config/slight.in)
-
-       // config file parameters
-       parameter<unsigned int,VALIDITY_CHECK>     _beam1Z;                  ///< atomic number of beam particle 1
-       parameter<unsigned int,VALIDITY_CHECK>     _beam1A;                  ///< atomic mass number of beam particle 1
-       parameter<unsigned int,VALIDITY_CHECK>     _beam2Z;                  ///< atomic number of beam particle 2
-       parameter<unsigned int,VALIDITY_CHECK>     _beam2A;                  ///< atomic mass number of beam particle 2
-       parameter<double, VALIDITY_CHECK>          _beam1LorentzGamma;       ///< Lorentz gamma factor of beam 1 in collider frame
-       parameter<double, VALIDITY_CHECK>          _beam2LorentzGamma;       ///< Lorentz gamma factor of beam 2 in collider frame
-       parameter<double, VALIDITY_CHECK>          _maxW;                    ///< maximum mass W of produced hadronic system [GeV/c^2]
-       parameter<double, VALIDITY_CHECK>          _minW;                    ///< minimum mass W of produced hadronic system; if set to -1 default value is taken [GeV/c^2]
-       parameter<unsigned int, VALIDITY_CHECK>    _nmbWBins;                ///< number of W bins in lookup table
-       parameter<double, VALIDITY_CHECK>          _maxRapidity;             ///< maximum absolute value of rapidity
-       parameter<unsigned int, VALIDITY_CHECK>    _nmbRapidityBins;         ///< number of rapidity bins in lookup table
-       parameter<bool, VALIDITY_CHECK>            _ptCutEnabled;            ///< en/disables cut in pt
-       parameter<double, VALIDITY_CHECK>          _ptCutMin;                ///< minimum pt, if cut is enabled
-       parameter<double, VALIDITY_CHECK>          _ptCutMax;                ///< maximum pt, if cut is enabled
-       parameter<bool, VALIDITY_CHECK>            _etaCutEnabled;           ///< en/disables cut in eta
-       parameter<double, VALIDITY_CHECK>          _etaCutMin;               ///< minimum eta, if cut is enabled
-       parameter<double, VALIDITY_CHECK>          _etaCutMax;               ///< maximum eta, if cut is enabled
-       parameter<unsigned int, VALIDITY_CHECK>    _productionMode;          ///< \brief production mode
-                                                                            ///<
-                                                                            ///< 1 = photon-photon fusion,
-                                                                            ///< 2 = narrow vector meson resonance in photon-Pomeron fusion,
-                                                                            ///< 3 = Breit-Wigner vector meson resonance in photon-Pomeron fusion
-       parameter<unsigned int, VALIDITY_CHECK>    _nmbEventsTot;            ///< total number of events to generate
-       parameter<unsigned int, VALIDITY_CHECK>    _prodParticleId;          ///< PDG particle ID of produced particle
-       parameter<unsigned int, VALIDITY_CHECK>    _randomSeed;              ///< seed for random number generator
-       parameter<unsigned int, NO_VALIDITY_CHECK> _outputFormat;            ///< \brief output format
-                                                                            ///<
-                                                                            ///< 1 = ASCII
-                                                                            ///< 2 = GSTARtext,
-                                                                            ///< 3 = PAW ntuple (not working)
-       parameter<unsigned int, VALIDITY_CHECK>    _beamBreakupMode;         ///< \brief breakup mode for beam particles
-                                                                            ///<
-                                                                            ///< 1 = hard sphere nuclei (b > 2R),
-                                                                            ///< 2 = both nuclei break up (XnXn),
-                                                                            ///< 3 = a single neutron from each nucleus (1n1n),
-                                                                            ///< 4 = neither nucleon breaks up (with b > 2R),
-                                                                            ///< 5 = no hadronic break up (similar to option 1, but with the actual hadronic interaction)
-       parameter<bool, VALIDITY_CHECK>            _interferenceEnabled;     ///< if VALIDITY_CHECK, interference is taken into account
-       parameter<double, VALIDITY_CHECK>          _interferenceStrength;    ///< percentage of interference: from 0 = none to 1 = full
-       parameter<bool, VALIDITY_CHECK>            _coherentProduction;      ///< if VALIDITY_CHECK, production is coherent, else incoherent
-       parameter<double, VALIDITY_CHECK>          _incoherentFactor;        ///< allows to scale the incoherent contribution in vector meson production
-       parameter<double, VALIDITY_CHECK>          _deuteronSlopePar;        ///< slope parameter for deuteron form factor [(GeV/c)^{-2}]
-       parameter<double, VALIDITY_CHECK>          _maxPtInterference;       ///< maximum p_T for interference calculation [GeV/c]
-       parameter<unsigned int, VALIDITY_CHECK>    _nmbPtBinsInterference;   ///< number of p_T bins for interference calculation
-       parameter<double, VALIDITY_CHECK>          _ptBinWidthInterference;  ///< width of p_T bins for interference calculation [GeV/c]
-       parameter<double, VALIDITY_CHECK>          _protonEnergy;
-       parameter<double, VALIDITY_CHECK>          _minGammaEnergy;          ///< minimum gamma energy in case of photo nuclear processes [GeV]
-       parameter<double, VALIDITY_CHECK>          _maxGammaEnergy;          ///< maximum gamma energy in case of photo nuclear processes [GeV]
-       parameter<std::string,NO_VALIDITY_CHECK>   _pythiaParams;            ///< semi-colon separated parameters to pass to pythia, e.g. "mstj(1)=0;paru(13)=0.1" 
-       parameter<bool, NO_VALIDITY_CHECK>         _pythiaFullEventRecord;   ///< if the full pythia event record should be in the outputu
-       parameter<unsigned int, VALIDITY_CHECK>    _xsecCalcMethod;          ///< Select x-sec calc method. (0 is standard starlight method, 1 must be used for assym. collisions (e.g. p-A), but is slow)
-       parameter<unsigned int, NO_VALIDITY_CHECK> _nThreads;                ///< Number of threads used in the case of using method 1 for calculating the x-sections
-        parameter<unsigned int, VALIDITY_CHECK>    _nBinsQKniehl;            ///< Number of bins in Q used for the transformation to the impact paramter space of the Kniehl function
-        parameter<unsigned int, VALIDITY_CHECK>    _nBinsEKniehl;            ///< Number of bins in photon energy used for the Kniehl function
-        parameter<unsigned int, VALIDITY_CHECK>    _nBinsBKniehl;            ///< Number of bins in impact parameter used for the Kniehl function
-        parameter<double, VALIDITY_CHECK>          _qMaxKniehl;              ///< Max value of Q used for the Kniehl funcion
-        parameter<double, VALIDITY_CHECK>          _eGammaMinKniehl;         ///< Min value of gamma energy used for the Kniehl funcion
-        parameter<double, VALIDITY_CHECK>          _eGammaMaxKniehl;         ///< Max value of gamma energy used for the Kniehl funcion
-        parameter<double, VALIDITY_CHECK>          _bMinKniehl;              ///< Min value of impact parameter used for the Kniehl funcion
-        parameter<double, VALIDITY_CHECK>          _bMaxKniehl;              ///< Max value of impact parameter used for the Kniehl funcion
-        
-       
-       starlightConstants::particleTypeEnum       _particleType;
-       starlightConstants::decayTypeEnum          _decayType;
-       starlightConstants::interactionTypeEnum    _interactionType;
-
-       double                         _beamLorentzGamma;                    ///< Lorentz gamma factor of the beams in CMS frame, not an input parameter
-       
-       inputParser _ip;
-       
-};
-
-#define inputParametersInstance Singleton<inputParameters>::instance()
-
-template<typename T>
-inline 
-bool inputParameters::setParameter(std::string expression)
-{
-   
-    return _ip.parseString(expression);
-   
-   
-}
-
-inline
-std::ostream&
-operator <<(std::ostream&          out,
-            const inputParameters& par)
-{
-       return par.print(out);
-}
-
-#endif  // INPUTPARAMETERS_H