Commit af2bd41c authored by Kostyleva D.A's avatar Kostyleva D.A

Merge branch 'master' of http://er.jinr.ru:90/vratislav.chudoba/NeuRad_tests

Conflicts:
	macros/testShowGraphs.cxx
parents f4399fb1 09d9ad17
...@@ -55,7 +55,8 @@ void AEvent::ProcessEvent() { ...@@ -55,7 +55,8 @@ void AEvent::ProcessEvent() {
SetLED(); SetLED();
// SetGraphs(); // SetGraphs();
SetCFD(); SetCFD();
SetChargeCFD(); // SetChargeCFD();
SetChargeLED();
return; return;
...@@ -68,7 +69,7 @@ void AEvent::Reset() { ...@@ -68,7 +69,7 @@ void AEvent::Reset() {
fTime[i] = 0; fTime[i] = 0;
fAmpCFD[i] = 0; fAmpCFD[i] = 0;
} }
fTimeLED = 0.;
fEdgeSlope=0.; fEdgeSlope=0.;
fEdgeXi=0.; fEdgeXi=0.;
fEdgeSlope=-100.; fEdgeSlope=-100.;
...@@ -79,6 +80,7 @@ void AEvent::Reset() { ...@@ -79,6 +80,7 @@ void AEvent::Reset() {
fTimeCFD = 0.; fTimeCFD = 0.;
fZeroLevel = 0.; fZeroLevel = 0.;
fChargeCFD = 0.; fChargeCFD = 0.;
fChargeLED = 0.;
} }
void AEvent::SetInputEvent(RawEvent** event) { void AEvent::SetInputEvent(RawEvent** event) {
...@@ -219,7 +221,7 @@ Double_t AEvent::FindZeroLevel() { ...@@ -219,7 +221,7 @@ Double_t AEvent::FindZeroLevel() {
return correction; return correction;
} }
void AEvent::SetChargeCFD(Int_t tmin, Int_t tmax) { void AEvent::SetChargeCFD(Int_t tmin, Int_t tmax) { // tmin = -3, tmax = 17
Double_t integral = 0.; //voltage Double_t integral = 0.; //voltage
Double_t time_sig = 0; //approximate signal duration in seconds Double_t time_sig = 0; //approximate signal duration in seconds
...@@ -237,6 +239,34 @@ void AEvent::SetChargeCFD(Int_t tmin, Int_t tmax) { ...@@ -237,6 +239,34 @@ void AEvent::SetChargeCFD(Int_t tmin, Int_t tmax) {
} }
void AEvent::SetChargeLED(Int_t tmin, Int_t tmax) { // tmin = -3, tmax = 17
Double_t integral = 0.; //voltage
Double_t time_sig = 0; //approximate signal duration in seconds
const Double_t res = 50.; //resistance 50 Om
time_sig = (double)(-tmin + tmax)*(1e-9);
/* for(Int_t i = 0; i < fNPoints; i++) {
if( fTime[i] > (fTimeLED + tmin) && fTime[i] < (fTimeLED + tmax) ) {
integral = integral + fAmpPos[i];
}
}*/
Int_t imin = 0, imax = 0;
Int_t i = 0;
while ( fTime[i] < (fTimeLED + tmin) && (i < (fGraphSignal->GetN()-1)) ) { imin = i; i++; }
i = 0;
while ( fTime[i] < (fTimeLED + tmax) && (i < (fGraphSignal->GetN()-1)) ) { imax = i; i++; }
integral = fGraphSignal->Integral(imin, imax);
fChargeLED = integral*time_sig/res;
return;
}
Double_t AEvent::GetfCFD() { Double_t AEvent::GetfCFD() {
return fTimeCFD; return fTimeCFD;
} }
...@@ -284,11 +314,12 @@ void AEvent::SetMaxAmplitudes() { ...@@ -284,11 +314,12 @@ void AEvent::SetMaxAmplitudes() {
void AEvent::SetLED(Double_t threshold) { void AEvent::SetLED(Double_t threshold) {
Double_t time = 0; Double_t time = 0;
const Double_t timeStep = 0.1; const Double_t timeStep = 0.05;
while( time < 200. && fGraphSignal->Eval(time) <= threshold ) { while( time < fTimeAmpMax && fGraphSignal->Eval(time) <= threshold ) {
fTimeLED = time; fTimeLED = time;
time = time + timeStep; time = time + timeStep;
} }
//fTimeLED = time; //fTimeLED = time; найти номера точек которые лежат на 3 нс раньше и на 20 нс позже чем точка с временем timeled (искать точки в пределах условных)
// сделать через функцию getpoint и цикл по точкам от
} }
...@@ -46,7 +46,8 @@ private: ...@@ -46,7 +46,8 @@ private:
TArrayD fAmpCFD; //array for CFD amplitudes (attenuated, inversed and delayed) TArrayD fAmpCFD; //array for CFD amplitudes (attenuated, inversed and delayed)
Double_t fTimeCFD; //zero-crossing time Double_t fTimeCFD; //zero-crossing time
Double_t fChargeCFD; //charge of the signal in Coulomb Double_t fChargeCFD; //!
Double_t fChargeLED; //charge of the signal in Coulomb
Double_t fTimeLED; //time of LED threshold crossing Double_t fTimeLED; //time of LED threshold crossing
...@@ -122,7 +123,13 @@ public: ...@@ -122,7 +123,13 @@ public:
//in range of (tmin,tmax) in ns) //in range of (tmin,tmax) in ns)
//CFD time is taken as a start point //CFD time is taken as a start point
void SetLED(Double_t threshold = 0.015); void SetChargeLED(Int_t tmin = -3, Int_t tmax = 17);
//void SetLED(Double_t threshold = 0.001);
void SetLED(Double_t threshold = 0.002);
//leading edge discriminator //leading edge discriminator
private: private:
......
//#include "TCanvas.h" //#include "TCanvas.h"
void histCorr( void histCorr(
// const char *filename = "analysis_07_8.root", // const char *filename = "Neurad_7_08_NEW.root",
const char *filename = "analysis_08_2.root", const char *filename = "analysis_08_2.root",
// const char *foldername = "7_8", const char *foldername = "7_8",
const char *foldername = "8_2", // const char *foldername = "8_2",
// const char *ext = ".eps", // const char *ext = ".eps",
const char *ext = ".gif", const char *ext = ".gif",
const Bool_t can1 = 0, const Bool_t can2 = 0, const Bool_t can3 = 0, const Bool_t can4 = 0, const Bool_t can5 = 1) const Bool_t can1 = 0, const Bool_t can2 = 0, const Bool_t can3 = 0, const Bool_t can4 = 0, const Bool_t can5 = 0, const Bool_t can6 = 1)
{ {
gSystem->Load("../libData.so"); gSystem->Load("../libData.so");
TFile *f = new TFile(Form("../data/dataDSR4/%s", filename)); TFile *f = new TFile(Form("../data/dataDSR4/%s", filename));
...@@ -156,7 +156,7 @@ void histCorr( ...@@ -156,7 +156,7 @@ void histCorr(
TCanvas *c4 = new TCanvas("c4", "Correlation pictures: XiSquares"); TCanvas *c4 = new TCanvas("c4", "Correlation pictures: XiSquares");
TH2F *h11 = new TH2F("h11", "Time difference between two channels vs XiSquare of edge",100, -0., 5., 100, 0., 0.005); TH2F *h11 = new TH2F("h11", "Time difference between two channels vs XiSquare of edge",100, -0., 5., 100, 0., 0.005);
t->Draw("Ach1.fEdgeXi : (Ach1.fTime90 - Ach1.fTime10) >> h11","","col"); t->Draw("Ach0.fEdgeXi : (Ach0.fTime90 - Ach0.fTime10) >> h11","","col");
//t->Draw("Ach1.fEdgeXi : (Ach1.fTime90 - Ach1.fTime10) >> h11","(Ach1.fTime90 - Ach1.fTime10)>0","col"); //t->Draw("Ach1.fEdgeXi : (Ach1.fTime90 - Ach1.fTime10) >> h11","(Ach1.fTime90 - Ach1.fTime10)>0","col");
//x //x
h11->GetXaxis()->SetTitle("\\Delta \\tau_{1}^{(rise)} [ns]"); h11->GetXaxis()->SetTitle("\\Delta \\tau_{1}^{(rise)} [ns]");
...@@ -201,24 +201,63 @@ void histCorr( ...@@ -201,24 +201,63 @@ void histCorr(
c5->Update(); c5->Update();
//c5->Print(Form("../macros/picsDRS4/file%s/TimeDiffCFD_0.7_3%s", foldername, ext)); //c5->Print(Form("../macros/picsDRS4/file%s/TimeDiffCFD_0.7_3%s", foldername, ext));
} }
if (can5) { if (can6) {
TCanvas *c5 = new TCanvas("c5", "Sigma"); TCanvas *c6 = new TCanvas("c6", "leading edge vs charge");
c5->cd(); c6->Divide(2,2);
TH1F *h11 = new TH1F("h11", "sigma", 1023, -10, 10);
t->Draw("Ach1.fAmpPos >> h11","Ach1.fTime >0","col"); c6->cd(1);
//TH2F *h13 = new TH2F("h13", "leading edge vs charge",100, 130., 145., 100, -2e-9, 6e-9);
TH1F *h20 = new TH1F("h20", "hist led - cfd", 100, -5, 200.);
//t->Draw("Ach0.fTimeCFD - Ach0.fTimeLED >> h20","Ach0.fTimeCFD - Ach0.fTimeLED > 0.3 && Ach0.fTimeCFD - Ach0.fTimeLED <1.3","");
t->Draw("Ach0.fTimeLED >> h20","Ach0.fTimeLED > 120 && Ach0.fTimeLED < 150");
//t->Draw("Ach0.fChargeCFD : Ach0.fChargeCFD >> h13","","col");;
//x //x
//h10->GetXaxis()->SetTitle("\\Delta \\tau_{1}^{(rise)} [ns]"); /* h13->GetYaxis()->SetTitle("fChargeCFD");
//h10->GetXaxis()->CenterTitle(); h13->GetYaxis()->CenterTitle();
//y //y
//h10->GetYaxis()->SetTitle("fEdgeXi"); h13->GetXaxis()->SetTitle("fTimeLED");
//h10->GetYaxis()->CenterTitle(); h13->GetXaxis()->CenterTitle();*/
c5->Update(); c6->Update();
c6->cd(3);
TH2F *h14 = new TH2F("h14", "fTIMECFD vs fTIMELED",100, 110., 140., 100, 110, 160);
t->Draw("Ach0.fTimeCFD : Ach0.fTimeLED >> h14","","col");
//t->Draw("Ach0.fChargeCFD : Ach0.fChargeCFD >> h13","","col");;
//x
h14->GetYaxis()->SetTitle("fTimeCFD");
h14->GetYaxis()->CenterTitle();
//y
h14->GetXaxis()->SetTitle("fTimeLED");
h14->GetXaxis()->CenterTitle();
c6->Update();
c6->cd(2);
TH2F *h15 = new TH2F("h15", "leading edge vs charge",100, 100., 180.,100, -0.02e-10, 1e-10);
t->Draw("Ach1.fChargeCFD : Ach1.fTimeLED >> h15","Ach1.fChargeCFD>0","col");
//t->Draw("Ach0.fChargeCFD : Ach0.fChargeCFD >> h13","","col");;
//x
h15->GetYaxis()->SetTitle("fChargeCFD");
h15->GetYaxis()->CenterTitle();
//y
h15->GetXaxis()->SetTitle("fTimeLED");
h15->GetXaxis()->CenterTitle();
c6->Update();
c6->cd(4);
TH2F *h16 = new TH2F("h16", "FtimeCFD vs charge", 100, 100., 180.,100, 0, 1e-10);
t->Draw("Ach1.fChargeCFD : Ach1.fTimeCFD >> h16","Ach1.fChargeCFD>3e-12","col");
//t->Draw("Ach0.fChargeCFD : Ach0.fChargeCFD >> h13","","col");;
//x
h16->GetYaxis()->SetTitle("fChargeCFD");
h16->GetYaxis()->CenterTitle();
//y
h16->GetXaxis()->SetTitle("fTimeCFD");
h16->GetXaxis()->CenterTitle();
c6->Update();
//c4->Print(Form("../macros/picsDRS4/file%s/XiSquares%s", foldername, ext)); //c4->Print(Form("../macros/picsDRS4/file%s/XiSquares%s", foldername, ext));
} }
} }
...@@ -5,13 +5,19 @@ void testShowGraphs() ...@@ -5,13 +5,19 @@ void testShowGraphs()
const Long64_t kFirstEvent = 128; const Long64_t kFirstEvent = 128;
TFile fr("../data/dataDSR4/analysis_08_2.root");
TFile fr("../data/dataDSR4/Neurad_7_08_NEW.root");
// TFile fr("../data/dataDSR4/analysis_07_8.root"); // TFile fr("../data/dataDSR4/analysis_07_8.root");
<<<<<<< HEAD
// TFile fr("../data/dataDSR4/Neurad_081216_2NEW.root"); // TFile fr("../data/dataDSR4/Neurad_081216_2NEW.root");
// TFile fr("../data/dataTektronix/exp18.root"); // TFile fr("../data/dataTektronix/exp18.root");
=======
// TFile fr("../data/dataDSR4/Neurad_081216_2NEW.root");
// TFile fr("../data/dataTektronix/exp18.root");
>>>>>>> 09d9ad17f40ac0af9d228137f715f25ee9ea15ae
// TFile fr("../data/dataTektronix/analysisExp7.root"); // TFile fr("../data/dataTektronix/analysisExp7.root");
TTree *tr = (TTree*)fr.Get("atree"); TTree *tr = (TTree*)fr.Get("atree");
...@@ -49,19 +55,28 @@ void testShowGraphs() ...@@ -49,19 +55,28 @@ void testShowGraphs()
// cout << "warning 3" << endl; // cout << "warning 3" << endl;
TCanvas *c1 = new TCanvas("c1","test",10,10,1000,600); TCanvas *c1 = new TCanvas("c1","test",10,10,1000,600);
<<<<<<< HEAD
//c1->Divide(3,2); //c1->Divide(3,2);
c1->Divide(3,4); c1->Divide(3,4);
=======
//c1->Divide(3,2);
c1->Divide(3,4);
>>>>>>> 09d9ad17f40ac0af9d228137f715f25ee9ea15ae
TF1 *f1 = new TF1("f1name", "[0]+x*[1]"); TF1 *f1 = new TF1("f1name", "[0]+x*[1]");
// TF1 *f1 = new TF1("pol1", ); // TF1 *f1 = new TF1("pol1", );
<<<<<<< HEAD
for (Int_t k = 0; k < 6; k++) { for (Int_t k = 0; k < 6; k++) {
// for (Int_t k = 0; k < 12; k++) { // for (Int_t k = 0; k < 12; k++) {
=======
for (Int_t k = 0; k < 12; k++) {
>>>>>>> 09d9ad17f40ac0af9d228137f715f25ee9ea15ae
c1->cd(k+1); c1->cd(k+1);
gr[k]->Draw("AL*"); gr[k]->Draw("AL*");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment