analyseRawData.cpp 1.51 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
void analyseRawData()
{
	gSystem->Load("../libData.so");

	TFile *f = new TFile("../data/rawDataTektronix/exp2.root");
	TTree *tr = (TTree*)f->Get("rtree");

	const Int_t noBranches = 4;

	TString bName;
	RawEvent *revent[noBranches];	// pointer to the array (of RawEvent class) in which raw data for each channel will be put
	for (Int_t j = 0; j<noBranches; j++) {
		revent[j] = new RawEvent();	//each raw event element is of class RawEvent()
		bName.Form("ch%d.", j);
		tr->SetBranchAddress(bName.Data(), &revent[j]);	//read the tree tr with raw data and fill array revent with raw data
	}

	TH1F *hist1 = new TH1F("hist1", "h1 title", 1000, 0, 100);
	TH1F *hist2 = new TH1F("hist2", "h2 title", 1000, 0, 100);
	TH1F *hist3 = new TH1F("hist3", "h3 title", 1000, 0, 100);
	TH1F *hist4 = new TH1F("hist4", "h4 title", 1000, 0, 100);

	TF1 *fit1 = new TF1("fit1","-[0]*exp(-x*[1])");
	fit1->SetRange(34,50);
	fit1->SetParName(1,"tD");

	Long64_t nEntries = tr->GetEntries();

	//loop over events
	for (j = 0; j < nEntries; j++) {
		tr->GetEntry(j);
		for(Int_t i =0;i<1000;i++){
			//hist->SetBinContent(i,revent[0]->GetAmp(i));
			hist1->AddBinContent(i,revent[0]->GetAmp(i));
			hist2->AddBinContent(i,revent[1]->GetAmp(i));
			hist3->AddBinContent(i,revent[2]->GetAmp(i));
			hist4->AddBinContent(i,revent[3]->GetAmp(i));
		}
	}

	TCanvas *c1 = new TCanvas("c1","test",10,10,1000,600);
	c1->Divide(2,2);

	c1->cd(1);
	hist1->Draw();
	c1->cd(2);
	hist2->Draw();
	hist2->Fit("fit1","R","");
	c1->cd(3);
	hist3->Draw();
	c1->cd(4);
	hist4->Draw();

}