June 09, 2004
White noise check in a flat background::[Misc]

The white noise can be a flat or other distribution, here I simulate a flat white noise + a gaussian signal.
Using the scan method and unbined maximun likelihood fit to find out the max significance on a pure white noise.
#!/bin/sh
NUMOFDATA=1000
TIMES=10
COUNT=0
STEP=5
echo 10000 >log.data
echo 10000 >log.img
GenShell() {
echo "#!/bin/sh"
echo
echo "root <
echo
echo 'gSystem->Load("libRooFitCore.so") ;'
echo 'gSystem->Load("libRooFitModels.so") ;'
echo 'RooRealVar mass("mass","mass",0 , 100 , "Gev/c^{2}") ; '
echo 'RooRealVar mean("#mu","#mu",0, 5,"Gev/c^{2}") ;'
echo 'RooRealVar sigma("#sigma","#sigma",3, "Gev/c^{2}") ;'
echo 'RooRealVar gausFrac("Gaussian Fraction","Gaussian Fraction",0 , 1 ) ;'
echo 'RooGaussian g("g", "Gaussian", mass, mean , sigma );'
echo 'RooPolynomial p("p", "Polynominal", mass);'
echo 'RooAddPdf model("model", "Gaussian + Polynominal",RooArgList(g,p),gausFrac);'
echo 'gausFrac.setVal(0.0);'
echo
echo
echo 10000 >log.img
while [ $COUNT -lt $TIMES ]
do
echo "RooDataSet *data=model.generate(mass, $NUMOFDATA);"
echo 'data.write("generate.data");'
echo
echo
MASS=0
MAS2=0
while [ $MAS2 -le 95 ]
do
MAS2=`expr $MASS + $STEP`
#echo "mean.setVal( $MASS, $MAS2 );"
echo "mean.setFitRange( $MASS, $MAS2 );"
echo 'RooFitResult *fs = model.fitTo(*data, "rq");'
echo 'fs->Print("v");'
echo 'RooPlot *frame=mass.frame();'
echo 'data->plotOn(frame);'
echo 'model.paramOn(frame, data);'
echo 'model.plotOn(frame);'
echo 'model.plotOn(frame,Components(p), LineStyle(kDashed));'
echo 'frame->Draw();'
echo 'TCanvas *c = new TCanvas;'
echo 'TH1F *h = new TH1F( );'
echo 'frame->Draw();'
echo 'TImage *img = TImage::Create();'
echo 'img->FromPad(c);'
echo 'img->WriteImage("canvas.png");'
echo 'delete h;'
echo 'delete img;'
echo 'delete c;'
echo '.!./move.sh img'
MASS=`expr $MASS + $STEP`
echo
echo
done
echo
echo '.!./move.sh data'
COUNT=`expr $COUNT + 1`
echo
echo
done
echo '.q'
echo
echo
echo "EOF"
}
GenShell > ./poloynamial.root
chmod 755 poloynamial.root
./poloynamial.root > output.data
mv 100* data
Trackback
You can ping this entry by using http://www.wespoke.com/cgi-bin/mt/mt-tb.cgi/493
