void CurrentAnalysis() { Float_t Threshold; TFile* file_input = new TFile("Filtered.root", "read"); TTree* currentAna = (TTree*)file_input->Get("current_ntuple"); Float_t Curr; Double_t binEdges[] = { 0, 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, 40, 50, 60, 70, 80, 90, 100, 125, 150, 175, 200 }; Int_t NumBins = 200; currentAna->SetBranchAddress("C", &Curr); ULong64_t nEntries = currentAna->GetEntries(); cout << "This tree contains " << nEntries << " events!" << endl; cout << "Loop over " << nEntries << " events!" << endl; TH1D* curr_vals = new TH1D("curr_vals", "",NumBins, 6, NumBins); curr_vals -> GetXaxis()-> SetTitle("H"); curr_vals -> GetYaxis()-> SetTitle("Frequency"); curr_vals -> SetTitle("C"); for(Int_t f = 0; f < nEntries; f++) { currentAna->GetEntry(f); curr_vals->Fill(abs(Curr)); } TCanvas* c1 = new TCanvas("c1"); curr_vals->Draw(); c1->SetLogy(); c1->Update(); TH1D* HIST = new TH1D("HIST", "",NumBins, 0, 200); HIST -> GetXaxis()-> SetTitle("Current [#muA] "); HIST -> GetYaxis()-> SetTitle("Fraction of Current"); HIST->Sumw2(kTRUE); for(ULong64_t i = 0; i < NumBins; i++) { Threshold = i; Int_t count = 0; for(ULong64_t e = 0; e < nEntries; e++) { currentAna->GetEntry(e); if( abs(Curr) < Threshold ) continue; { count++; } } //HIST->SetBinContent(i+1, count*100/nEntries);// HIST->SetBinContent(i+1, Double_t(count) / Double_t(nEntries)); HIST->SetBinError(i+1, 0.0033147); cout << Threshold << "\t \t" << count << endl; } TCanvas* c2 = new TCanvas("c2"); c2->SetLogy(); HIST->Sumw2(0); HIST->Draw(); HIST->SetMarkerStyle(8); //HIST->GetMarkerSize(1); HIST->Draw("*H"); HIST->SetTitle("Fraction."); //HIST->GetYaxis()->SetRangeUser(0, 0.5); // HIST->GetXaxis()->SetRangeUser(0, 5); c2->Update(); }