packages feed

HROOT-0.6.6: example/project1d.hs

module Main where

import Control.Monad

import HROOT

main :: IO () 
main = do 
  tcanvas <- newTCanvas "Test" "Test" 640 480
  h2 <- newTH2F "test" "test" 100 (-5.0) 5.0 100 (-5.0) 5.0 
  tRandom <- newTRandom 65535
  let generator1 = gaus tRandom 0 2 
      generator2 = gaus tRandom 1 0.5
  let go n | n <= 0 = return () 
           | otherwise = do 
               histfill generator1 generator1 h2
               histfill generator2 generator2 h2
               go (n-1) 
  go 1000000
{-  draw h2 "lego"
  saveAs tcanvas "random2d.pdf" ""
  saveAs tcanvas "random2d.jpg" "" 
  saveAs tcanvas "random2d.png" "" -}

  h1 <- tH2ProjectionX (upcastTH2 h2) "tdk" 0 (-1) "" 

  draw h1 "" 
  saveAs tcanvas "projection.pdf" "" 
  delete h1
  delete h2
  delete tcanvas

histfill :: IO Double -> IO Double-> TH2F ->  IO () 
histfill dist1 dist2 hist = do 
  x <- dist1
  y <- dist2
  fill2 hist x y 
  return ()