1#ifndef __JDETECTOR__JPMTPARAMETERSMAP__ 
    2#define __JDETECTOR__JPMTPARAMETERSMAP__ 
   92    public JThrow<JPMTParametersMap>
 
  121      ifstream in(file_name);
 
 
  144      JPMTParametersMap_t::const_iterator i = find(
id);
 
  147        parameters = i->second;
 
  152      parameters.
QE *= this->
QE;
 
 
  271        for (const_iterator i = this->begin(); i != this->end(); ++i) {
 
  273          if (!i->second.is_valid()) {
 
  277          if (i->second.QE * this->QE > 1.0 ||
 
  278              i->second.QE * this->QE < 0.0) {
 
  279            THROW(
JException, 
"Invalid PMT QE at " << i->first << 
' ' << i->second.QE * this->QE);
 
 
  312      for (JPMTParametersMap::const_iterator i = this->begin(); i != this->end(); ++i) {
 
  313        if (i->second.QE > Pmax) {
 
  314          THROW(
JValueOutOfRange, 
"Hit probability PMT " << i->first << 
' ' << i->second.QE << 
" > maximum probability given expectation value " << this->mu << endl);
 
  318      for (JPMTParametersMap::iterator i = this->begin(); i != this->end(); ++i) {
 
  320        if (i->second.QE > 0.0)
 
  321          i->second.QE = 
getQE(i->second.QE, this->mu);
 
 
  339      JPMTParametersMap_t::iterator i = find(
id);
 
 
  363      if (getFileStatus(is.str().c_str())) {
 
  370      JProperties              demo = 
object.defaultPMTParameters.getProperties();
 
  373      properties[
"pmt"] = helper;
 
  374      properties[
"%"]   = demo;
 
  375      properties[
"QE"]  = 
object.QE;
 
  376      properties[
"mu"]  = 
object.mu;
 
  378      is >> 
object.comment;
 
 
  394      using namespace JLANG;
 
  398      JProperties demo = 
object.defaultPMTParameters.getProperties();
 
  401      properties[
"%"]   = demo;
 
  403      out << 
object.comment;
 
 
  486          helper.
object[id].getProperties().read(in);
 
 
  502        for (JPMTParametersMap::const_iterator i = helper.
object.begin(); i != helper.
object.end(); ++i) {
 
  506          i->second.getProperties(helper.
equation).write(out);
 
 
 
 
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
 
Utility class to parse parameter values.
 
Auxiliary class for I/O of PMT parameters map.
 
friend std::ostream & operator<<(std::ostream &out, const JPMTParametersMapHelper &helper)
Stream output PMT parameters map helper.
 
friend std::istream & operator>>(std::istream &in, JPMTParametersMapHelper &helper)
Stream input PMT parameters map helper.
 
JPMTParametersMap & object
 
JPMTParametersMapHelper(JPMTParametersMap &__object, const JEquationParameters &__equation)
Constructor.
 
const JEquationParameters & equation
 
Auxiliary class for map of PMT parameters.
 
void setQE(const double QE)
Set global QE.
 
static void setEquationParameters(const JEquationParameters &equation)
Set equation parameters.
 
JPMTParametersMap(const char *const file_name)
Constructor.
 
JPMTParameters & getDefaultPMTParameters()
Get default PMT parameters.
 
double getMu() const
Get expectation value for number of photo-electrons given two-fold (or higher) coincidence rate.
 
friend std::istream & operator>>(std::istream &in, JPMTParametersMap &object)
Stream input.
 
const JPMTParameters & getPMTParameters(const JPMTIdentifier &id) const
Get PMT parameters.
 
void convertHitProbabilityToQE(const double mu)
Convert the hit probabilities to QEs for given expectation value.
 
void setDefaultPMTParameters(const JPMTParameters ¶meters)
Set default PMT parameters.
 
JPMTParameters & operator[](const JPMTIdentifier &id)
Access parameters corresponding to given PMT identifier.
 
const JPMTParameters & getDefaultPMTParameters() const
Get default PMT parameters.
 
double mu
Expectation value for number of photo-electrons given two-fold (or higher) coincidence rate.
 
static JEquationParameters & getEquationParameters()
Get equation parameters.
 
JPMTParameters defaultPMTParameters
Default PMT parameters.
 
double getQE() const
Get global QE.
 
double getQE(const JPMTIdentifier &id) const
Get QE of given PMT.
 
double getHitProbability(const JPMTIdentifier &id) const
Get ratio of hit probabilities of given PMT.
 
JPMTParametersMap(const JPMTParameters ¶meters=JPMTParameters())
Constructor.
 
bool is_valid() const
Check validity of PMT parameters.
 
friend std::ostream & operator<<(std::ostream &out, const JPMTParametersMap &object)
Stream output.
 
Data structure for PMT parameters.
 
bool is_valid() const
Check validity of PMT parameters.
 
double QE
relative quantum efficiency
 
Utility class to parse parameter values.
 
Facet class to specify parsing of equations in currect locale (see class JLANG::JEquation).
 
Simple data structure to support I/O of equations (see class JLANG::JEquation).
 
Exception for opening of file.
 
Exception for reading of file.
 
Wrapper class around STL stringstream class to facilitate optional loading of data from file.
 
void load()
Load data from file with name corresponding to current contents.
 
Auxiliary base class for controling the throwing of exceptions.
 
static void Throw(const bool option)
Enable/disable throw option.
 
Exception for accessing a value in a collection that is outside of its range.
 
file Auxiliary data structures and methods for detector calibration.
 
double getMaximalHitProbability(const double mu)
Get maximal ratio of hit probabilities for given QE and expectation value of the number of photo-elec...
 
std::map< JPMTIdentifier, JPMTParameters > JPMTParametersMap_t
Type definition of map PMT identifier to PMT parameters.
 
double getHitProbability(const double QE, const double mu)
Get ratio of hit probabilities for given QE and expectation value of the number of photo-electrons.
 
double getQE(const double R, const double mu)
Get QE for given ratio of hit probabilities and expectation value of the number of photo-electrons.
 
Auxiliary classes and methods for language specific functionality.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
Auxiliary base class for storing and loading a single object to and from an ASCII file,...