packages feed

HROOT-0.5.0.0: example/random1d.hs

module Main where

import Control.Monad

import Data.Random 
import Data.Random.Distribution.Normal

import HROOT.Type
import HROOT.Class 
import HROOT.AddOn

main :: IO () 
main = do 
  tcanvas <- newTCanvas "Test" "Test" 640 480
  h1 <- newTH1F "test" "test" 100 (-5.0) 5.0 

  let dist = (Normal (0 :: Double) (2 :: Double)) 

  let go n | n < 0 = return () 
           | otherwise = do 
               histfill dist h1
               go (n-1) 

  go 1000000
  draw h1 ""
  saveAs tcanvas "random1d.pdf" ""
  saveAs tcanvas "random1d.jpg" "" 
  saveAs tcanvas "random1d.png" "" 


histfill :: Normal Double -> TH1F ->  IO () 
histfill dist hist = do 
  x <- sample dist 
  fill1 hist x
  return ()