diff --git a/macros/integralFormSignal.cpp b/macros/integralFormSignal.cpp new file mode 100644 index 0000000000000000000000000000000000000000..764961e7dfcf8e99705b6e57a08d9bb4c89abcf6 --- /dev/null +++ b/macros/integralFormSignal.cpp @@ -0,0 +1,71 @@ +void integralFormSignal() +{ + gSystem->Load("../libData.so"); + + TFile *f = new TFile("../data/dataTektronix/exp2.root"); + TTree *tr = (TTree*)f->Get("atree"); + + const Int_t noBranches = 4; + Double_t ZeroTime[4]; + Int_t iZero[4],PosZero[4],deltaT[4]; + + TString bName; + AEvent *aevent[noBranches]; // pointer to the array (of RawEvent class) in which raw data for each channel will be put + for (Int_t j = 0; jSetBranchAddress(bName.Data(), &aevent[j]); //read the tree tr with raw data and fill array revent with raw data + } + + TH1F *hist0 = new TH1F("hist1", "h1 title", 2000, -100, 100); + TH1F *hist1 = new TH1F("hist2", "h2 title", 2000, -100, 100); + TH1F *hist2 = new TH1F("hist3", "h3 title", 2000, -100, 100); + TH1F *hist3 = new TH1F("hist4", "h4 title", 2000, -100, 100); + + TF1 *fit1 = new TF1("fit1","-[0]*exp(-x*[1])"); + fit1->SetRange(-15,-5); + fit1->SetParName(1,"tD"); + + Long64_t nEntries = tr->GetEntries(); + + //loop over events + for (j = 0; j < nEntries; j++) { + tr->GetEntry(j); + for(Int_t k=0;k<4;k++) { // loop for channels + ZeroTime[k] = aevent[k]->GetfCFD(); // get fCFD for channel №k + iZero[k] = ZeroTime[k]*10; + if(j==0) { PosZero[k] = iZero[k]; } + deltaT[k] = iZero[k] - PosZero[k]; + } + + + //for(k=0;k<4;k++) { + for(Int_t i = 0; i<1000; i++){ + if( ((i+deltaT[0])>-1) && ((i+deltaT[0])<1000)) hist0->AddBinContent(i+500,aevent[0]->GetOnefAmpPos(i+deltaT[0])); + if( ((i+deltaT[1])>-1) && ((i+deltaT[1])<1000)) hist1->AddBinContent(i+500,aevent[1]->GetOnefAmpPos(i+deltaT[1])); + hist2->AddBinContent(i+500,aevent[0]->GetOnefAmpPos(i)); + hist3->AddBinContent(i+500,aevent[1]->GetOnefAmpPos(i)); + } + //} + } + + TCanvas *c1 = new TCanvas("c1","test",10,10,1000,600); + c1->Divide(2,2); + + c1->cd(1); + hist0->Draw(); + //hist1->Fit("fit1","R",""); + + c1->cd(2); + //hist2->Draw(); + //hist2->Fit("fit1","R",""); + //tr->Draw("Ach1.fCFD"); + hist1->Draw(); + + c1->cd(3); + hist2->Draw(); + + c1->cd(4); + hist3->Draw(); + +}