void plot_qie(const char* filename){ TFile * inFile = TFile::Open(filename); TTree* save = static_cast(inFile->Get("save")); // TCut XX = "RF%588==1 && amp< 350000"; TCut XX = " amp > 1 && amp < 350000 && turn < 1000"; TCut XXa = " amp > 1 && amp < 350000 && turn < 1000"; TCut XX0 = " turn == 1 && amp>0 && turn <10000"; TCut XX1 = " turn == 100 && amp>0 && turn <10000"; TCut XX2 = " turn == 1000 && amp >0 && turn <10000"; TCut XX3 = " turn == 9999 && amp >0 && turn <10000"; TCanvas * c1 = new TCanvas("c1","QIE", 10, 20, 800, 800); TCanvas * c2 = new TCanvas("c2","QIE: Amp vs RF", 100, 200, 1000, 800); TCanvas * c3 = new TCanvas("c3","QIE: Amp vs RF", 100, 200, 1000, 900); TH2F * ha = new TH2F("ha","turn = all", 588, 0, 588, 1000, 0, 10000); TH2F * h0 = new TH2F("h0","turn = 1, Amp vs RF", 588, 0, 588, 1000, 0, 10000); TH2F * h1 = new TH2F("h1","turn = 100, Amp vs RF", 588, 0, 588, 1000, 0, 10000); TH2F * h2 = new TH2F("h2","turn = 1000, Amp vs RF", 588, 0, 588, 1000, 0, 10000); TH2F * h3 = new TH2F("h3","turn = 9999, Amp vs RF", 588, 0, 588, 1000, 0, 10000); TH2F * ht1 = new TH2F("ht1","RF = 5, log10(A) ", 1000, 0, 3000, 100, 1, 6); TH2F * ht2 = new TH2F("ht2","RF = 20, Log10(A) ", 1000, 0, 3000, 100, 1, 6); TH2F * ht3 = new TH2F("ht3","RF = 30, log10(A) ", 1000, 0, 3000, 100, 1, 6); TH2F * ht4 = new TH2F("ht4","RF = 40, log10(A) ", 1000, 0, 3000, 100, 1, 6); c1->cd(); c1->Divide(1,3); c1->cd(1); save->Draw("turn"); c1->cd(2); save->Draw("RF%588"); c1->cd(3)->SetLogy(); // c1->cd(3)->SetLogx(); save->Draw("log10(amp)","amp>1"); //--- c2->cd(); c2->Divide(1,5); c2->cd(1)->SetLogy(); save->Draw("amp:(RF%588)>>ha",XXa); ha->SetMarkerStyle(2); ha->SetMarkerSize(0.5); ha->SetMarkerColor(1); ha->Draw(); c2->cd(2)->SetLogy(); save->Draw("amp:(RF%588)>>h0",XX0); h0->SetMarkerStyle(2); h0->SetMarkerSize(0.5); h0->SetMarkerColor(2); h0->Draw(); c2->cd(3)->SetLogy(); save->Draw("amp:(RF%588)>>h1",XX1); h1->SetMarkerStyle(2); h1->SetMarkerSize(0.5); h1->SetMarkerColor(3); h1->Draw(); c2->cd(4)->SetLogy(); save->Draw("amp:(RF%588)>>h2",XX2); h2->SetMarkerStyle(2); h2->SetMarkerSize(0.5); h2->SetMarkerColor(4); h2->Draw(); c2->cd(5)->SetLogy(); save->Draw("amp:(RF%588)>>h3",XX3); h3->SetMarkerStyle(2); h3->SetMarkerSize(0.5); h3->SetMarkerColor(6); h3->Draw(); //--- c3->cd()->Divide(8,8); c3->cd(1)->SetLogy(); h0->Draw(); h1->Draw("same"); h2->Draw("same"); h3->Draw("same"); //save->SetEstimate(save->GetEntries()+1); TFile* outFile = TFile::Open("bucket_plots.root","RECREATE"); for ( int i = 0; i < 588; i++ ) { TGraph* tg_ptr = plotBucket(save, XX, i); if ( i%10 == 0 ) { c3->cd(static_cast(i/10)+1); tg_ptr->Draw("ap"); c3->Update(); } tg_ptr->Write(); } outFile->Close(); // c3->cd(2); // // save->Draw("log10(amp):turn >> ht1","RF%588 == 5 && amp>1"+XX); // save->Draw("log10(amp):turn","RF%588 == 5 && amp>1"+XX,"goff"); // TGraph* tg = new TGraph(save->GetSelectedRows(), // save->GetV2(), // save->GetV1() // ); // // tg->Draw("ac"); // tg->SetMarkerStyle(20); // tg->SetMarkerSize(0.2); // tg->SetTitle("log10(Amp) vs turn, RF=5"); // tg->Draw("ap"); // //ht1->Draw(); // c3->cd(3); // save->Draw("log10(amp):turn","RF%588 == 20 && amp>1"+XX,"goff"); // // ht2->Draw(); // TGraph* tg = new TGraph(save->GetSelectedRows(), // save->GetV2(), // save->GetV1() // ); // // tg->Draw("ac"); // tg->SetMarkerStyle(20); // tg->SetMarkerSize(0.2); // tg->SetTitle("log10(Amp) vs turn, RF=20"); // tg->Draw("ap"); // c3->cd(4); // save->Draw("log10(amp):turn>>ht3","RF%588 == 30 && amp>1"+XX,"goff"); // // ht3->Draw(); // TGraph* tg = new TGraph(save->GetSelectedRows(), // save->GetV2(), // save->GetV1() // ); // // tg->Draw("ac"); // tg->SetMarkerStyle(20); // tg->SetMarkerSize(0.2); // tg->SetTitle("log10(Amp) vs turn, RF=30"); // tg->Draw("ap"); // c3->cd(5); // save->Draw("log10(amp):turn>>ht4","RF%588 == 40 && amp>1"+XX,"goff"); // // ht4->Draw(); // TGraph* tg = new TGraph(save->GetSelectedRows(), // save->GetV2(), // save->GetV1() // ); // // tg->Draw("ac"); // tg->SetMarkerStyle(20); // tg->SetMarkerSize(0.2); // tg->SetTitle("log10(Amp) vs turn, RF=40"); // tg->Draw("ap"); } TGraph* plotBucket(TTree* tree_in, const TCut& cut_in, int n_bucket) { if ( n_bucket%10 == 0 ) std::cout << "Processing: " << n_bucket << "..." << std::endl; TString bucket_cut("RF%588 == "); bucket_cut += n_bucket; bucket_cut += " && amp > 1"; tree_in->Draw("log10(amp):turn",bucket_cut.Data()+cut_in,"goff"); TGraph* tg = new TGraph(tree_in->GetSelectedRows(), tree_in->GetV2(), tree_in->GetV1() ); // tg->Draw("ac") TString title("Log10(Amp) vs turn: RF = "); title += n_bucket; tg->SetTitle(title); tg->SetMarkerStyle(20); tg->SetMarkerSize(0.2); // tg->SetTitle("log10(Amp) vs turn,"); TString name("bucket_"); name += n_bucket; tg->SetName(name); return tg; }