# esempio di segnale gaussiano con fondo gaussiano + fondo uniforme

n <- 100000

mu <- 0; sigma <- 0.5;

f1 <- 0.1;  mu1 <- 0; sigma1 <- 2
f2 <- 0.05; a <- -10; b <- 10

r <- sample( c( rnorm(n, mu, sigma), rnorm(as.integer(f1*n), mu1, sigma1),
                runif(as.integer(f2*n), a, b) ) )

hist(r, nc=100)

# per recuperare i dettagli dell'istogramma (posizione dei bin,
# numero di eventi per bin etc.)

h <- hist(r, nc=100)

h 

# ad esempio, come calcolarsi media e deviazione standard dai dati raggruppati:
sum(h$mids*h$counts)/sum(h$counts)
sqrt( sum(h$mids^2*h$counts)/sum(h$counts) - (sum(h$mids*h$counts)/sum(h$counts))^2 )

# da confrontare con
mean(r)
sd(r)

# Ovviamente l'utilita' di h$mids, h$counts non e' per fare medie, ma per
# fare ulteriori conti, come sezioni d'urto, etc.
# In particolare, per conoscere la frazione di `eventi'
# in un certo intervallo e' sufficiente calcolare il rapporto
# fra la lunghezza di r data una selezione e la lunghezza senza selezione,
# ad esempio
length(r[r>0]) / length(r)
