package jhpro.test;

import java.awt.Color;
import jhplot.*;
import jhpro.stat.*;

import java.util.Random;

/**
 * An example of how to calculate limits
 */
public class TestLimit {

	public static void main(String[] args) {

		HPlot c1 = new HPlot("test");
		c1.visible();
		c1.setRange(-4, 4, 0.0, 100);
		c1.setNameX("Variable");
		c1.setNameY("Events");

		H1D background = new H1D("Background", 30, -4.0, 4.0);
		background.setColor(Color.green);
		background.setFill(true);
		background.setFillColor(Color.green);
		// background.setErrAll(false);

		H1D signal = new H1D("Signal", 30, -4.0, 4.0);
		signal.setFill(true);
		signal.setFillColor(Color.red);
		signal.setColor(Color.red);

		H1D data = new H1D("Data", 30, -4.0, 4.0);
		data.setColor(Color.black);
		data.setStyle("p");

		Random r = new Random();
		for (int i = 0; i < 25000; i++) {
			background.fill(r.nextGaussian(), 0.02);
			signal.fill(1+0.2*r.nextGaussian(), 0.001);
		}
                for (int i = 0; i < 500; i++) data.fill(r.nextGaussian(), 1.0);


                H1D sigback = background.oper(signal, "Signal+Background", "+");
                // sigback.setErrAll(false);
                c1.draw(signal);
                c1.draw(sigback);
                c1.draw(data);


		// Compute the limits
		System.out.println("Computing limits... ");
		DataSource mydatasource = new DataSource(signal, background,
				data);
		CLimits climit = new CLimits(mydatasource, 50000);
		ConfidenceLevel myconfidence = climit.getLimit();
		System.out
				.println("CLs    : " + Double.toString(myconfidence.getCLs()));
		System.out.println("CLsb    : "
				+ Double.toString(myconfidence.getCLsb()));
		System.out
				.println("CLb    : " + Double.toString(myconfidence.getCLb()));
		System.out.println("    : "
				+ Double.toString(myconfidence.getExpectedCLs_b()));
		System.out.println("    : "
				+ Double.toString(myconfidence.getExpectedCLsb_b()));
		System.out.println("    : "
				+ Double.toString(myconfidence.getExpectedCLb_b()));


	}

}

 

Ads help maintain this website.