analyse.C 3.04 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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
void analyse()
{
	gSystem->Load("../libData.so");

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

	RawData *revent = new RawData();
	tr->SetBranchAddress("rawEvent", &revent);

//	tr->SetMakeClass(1);

	TFile *fw = new TFile("../data/dataDSR4/analysis_07_1.root", "RECREATE");
	TTree *tw = new TTree("drs4analysis", "title of drs4 analysis tree");

	AnalyzeData *wevent = new AnalyzeData();
	tw->Bronch("AEvent", "AnalyzeData", &wevent);

	Long64_t nentries = tr->GetEntries();
	for(Long64_t i = 0; i < nentries; i++) {
		tr->GetEntry(i);

		wevent->ProcessEvent(revent);

		tw->Fill();
	}


	tw->Write();
	fw->Close();

	return;

//	tr->SetBranchAddress("amp_ch1", ampl1);
//	tr->SetBranchAddress("time_ch1", time1);
//	tr->SetBranchAddress("ncell", ncells);

	tw->Branch("maxAmplitude1", &maxAmplitude1, "maxAmplitude1/D");
	tw->Branch("timemaxAmplitude1", &timemaxAmplitude1, "timemaxAmplitude1/D");
	tw->Branch("ampl1_pos", ampl1_pos, "ampl1_pos[1023]/D");	//branch for positive signals
	tw->Branch("time1_pos", time1_pos, "time1_pos[1023]/D");

	const Long64_t nEntries = tr->GetEntries();
	cout <<"Number of entries: "<<nEntries<<endl;

//----for pictures 
/*	TCanvas *c1 = new TCanvas();
	c1->Divide(3,4);

	for(Int_t i=12; i<24; i++) {
		c1->cd(i-11);
		tr->GetEntry(i);
		TGraph *gr1 = new TGraph(1023, time1, ampl1);
		gr1->SetTitle("Signal shape for one event");
		gr1->GetXaxis();
		gr1->Draw("Al*");
	}

	tr->GetEntry(499);
	TGraph *gr1 = new TGraph(1023, time1, ampl1);
	gr1->SetTitle("Signal shape for one event");
	gr1->Draw("Al*");*/
//-----
	Double_t maxAmpl1 = 0.; 
	Double_t timemaxAmpl1 = 0.;
	
	for(Int_t i=0; i<tr->GetEntries(); i++) {
		tr->GetEntry(i);
		
		//changing polarity of the signal
		for(Int_t j=0; j<1023; j++) {
			ampl1_pos[j] = ampl1[j]*(-1.);
			time1_pos[j] = time1[j];
		}

		//find maximum by hand 
		maxAmpl1 = ampl1_pos[0];
		for(Int_t j=0; j<1023; j++) {	
			if(ampl1_pos[j] > maxAmpl1) {
				maxAmpl1 = ampl1_pos[j];
				timemaxAmpl1 = time1_pos[j];
			}
			//cout<<"Time "<<i<<" "<<j<<" "<<time1[j]<<endl;
			//cout<<"Amplitude "<<i<<" "<<j<<" "<<ampl1[j]<<endl;
			//cout<<endl;
		}
		maxAmplitude1 = maxAmpl1;
		timemaxAmplitude1 = timemaxAmpl1;
		cout<<"Max amplitude "<<maxAmpl1<<" for entry "<<i<<endl;
		cout<<"Time for max amplitude "<<timemaxAmpl1<<" for entry "<<i<<endl;

		//fitting 90 percent of rising edge
		for(Int_t k=0; k<1023; k++) {
			if(ampl1[k] > 0.1*maxAmpl1 && ampl1[k] < 0.9*maxAmpl1) { //we have negative signals, amplitude between 10 and 90 proc from maximum
				/*cout<<"rjgnfre"<<endl;
				TGraph *gr2 = new TGraph(1023, time1, ampl1);
				gr2->SetTitle("stupido");
				gr2->Fit("pol1");
				gr2->Draw("Al*");*/
			}
		}

		//getting integral
		TGraph *gr3 = new TGraph(1023, time1, ampl1_pos);
		gr3->Integral(120,180);
		cout<<"INtegral "<<gr3->Integral(120,180)<<endl;


		tw->Fill();
	}
	tw->GetEntry(498);
	TGraph *gr2 = new TGraph(1023, time1_pos, ampl1_pos);
	gr2->SetTitle("Signal shape for one gsgsg event");
	gr2->Draw("Al*");

	fw->cd();
	tw->Write();
	fw->Close();
}