00001 /***************************************************************************** 00002 * Project: RooFit * 00003 * Package: RooFitCore * 00004 * File: $Id: RooRandom.h,v 1.9 2007/05/11 09:11:30 verkerke Exp $ 00005 * Authors: * 00006 * WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu * 00007 * DK, David Kirkby, UC Irvine, dkirkby@uci.edu * 00008 * * 00009 * Copyright (c) 2000-2005, Regents of the University of California * 00010 * and Stanford University. All rights reserved. * 00011 * * 00012 * Redistribution and use in source and binary forms, * 00013 * with or without modification, are permitted according to the terms * 00014 * listed in LICENSE (http://roofit.sourceforge.net/license.txt) * 00015 *****************************************************************************/ 00016 #ifndef ROO_RANDOM 00017 #define ROO_RANDOM 00018 00019 #include "Rtypes.h" 00020 #include "TRandom.h" 00021 00022 class RooQuasiRandomGenerator; 00023 00024 class RooRandom { 00025 public: 00026 00027 virtual ~RooRandom() {} ; 00028 00029 static TRandom *randomGenerator(); 00030 static Double_t uniform(TRandom *generator= randomGenerator()); 00031 static void uniform(UInt_t dimension, Double_t vector[], TRandom *generator= randomGenerator()); 00032 static UInt_t integer(UInt_t max, TRandom *generator= randomGenerator()); 00033 static Double_t gaussian(TRandom *generator= randomGenerator()); 00034 00035 static RooQuasiRandomGenerator *quasiGenerator(); 00036 static Bool_t quasi(UInt_t dimension, Double_t vector[], 00037 RooQuasiRandomGenerator *generator= quasiGenerator()); 00038 00039 private: 00040 RooRandom(); 00041 ClassDef(RooRandom,0) // Random number generator interface 00042 }; 00043 00044 #endif