Anaphe Home Page Reference Documentation

Main Page     Namespaces     Classes     Source Code    

IRandomManager.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //
00004 //  Copyright (C) CERN, Geneva
00005 //
00006 //  IRandomManager interface
00007 //
00008 //  Author: Max Sang 
00009 //  Created: 16 May 2001
00010 // 
00011 
00012 
00013 
00014 #ifndef INTERFACE_IRANDOMMANAGER_H
00015 #define INTERFACE_IRANDOMMANAGER_H 
00016 
00017 
00018 
00019 // std includes...
00020 #include <iostream>
00021 #include <string>
00022 #include <vector>
00023 
00024 
00025 
00026 // ...and a kludge
00027 #ifdef AIDA_STD
00028 # undef AIDA_STD
00029 #endif
00030 #ifdef AIDA_NOT_USE_STD
00031 # define AIDA_STD
00032 #else
00033 # define AIDA_STD std
00034 #endif
00035 
00036 
00037 
00038 class IRandomGenerator;
00039 
00040 
00041 
00042 class IRandomManager
00043 {
00044 public:
00049   virtual IRandomGenerator* 
00050     newGenerator(const AIDA_STD::string& = "flat", 
00051                  const double& = 0.0,
00052                  const double& = 0.0,
00053                  const double& = 0.0 ) = 0;
00054 
00060   virtual IRandomGenerator* 
00061     newGenerator(const AIDA_STD::vector<double>&,
00062                  const AIDA_STD::string& = "",
00063                  const double& = 0.0,
00064                  const double& = 1.0 ) = 0;
00065   
00067   virtual int nGenerators(void) const = 0;
00068 
00072   virtual IRandomGenerator* gen(const int& id) = 0;
00073 
00075   virtual void destroy(const int& victim) = 0;
00076 
00078   virtual void destroyAll(void) = 0;
00079 
00081   virtual void listGenerators(AIDA_STD::ostream& = AIDA_STD::cout) const = 0;
00082 
00083 public:
00084   virtual ~IRandomManager() { }
00085 
00086 }; // End of class IRandomManager
00087 
00088 
00089 
00090 
00091 
00092 extern "C" {
00094   IRandomManager* createIRandomManager(void);
00095 }
00096 
00097 
00098 
00099 
00100 #endif /* INTERFACE_IRANDOMMANAGER_H */ 
00101 


Anaphe documentation generated by Doxygen (www.doxygen.org)