#include "TFile.h" #include "TCanvas.h" #include "TStyle.h" #include "TH1.h" #include "TH2.h" #include "TH3.h" #include "TGaxis.h" #include "TRandom.h" #include "TLegend.h" #include "TPaveStats.h" #include "TGraph.h" void calo() { int ifile=500330; //Root File number name. To change each time int a=8; //First subdetector name to analyze. To change each time int b=9; // Second subdetector name to analyze. To change each time char timenamesuba[200]= "scint"; //First subdetector tipology name for time plot. To change each time char timenamesubb[200]= "scint"; //Second subdetector tipology name for time plot. To change each time char energynamesuba[200]= "scintillator"; //First subdetector tipology name for energy plot. To change each time char energynamesubb[200]= "scintillator"; //Second subdetector tipology name for energy plot. To change each time float n=3; int c_YTitleSize=25; int c_YTitleFont=43; int c_YTitleOffset=1.55; int c_YLabelFont=43; int c_YLabelSize=20; int c_XTitleSize=25; int c_XTitleFont=43; int c_XTitleOffset=1; int c_XLabelFont=43; int c_XLabelSize=20; int c2_YTitleSize=25; int c2_YTitleFont=43; int c2_YTitleOffset=1.55; int c2_YLabelFont=43; int c2_YLabelSize=20; int c2_XTitleSize=25; int c2_XTitleFont=43; int c2_XTitleOffset=1; int c2_XLabelFont=43; int c2_XLabelSize=20; float p0; float p1; float p2; TString myfilein = TString::Format("D:/si-%d.root",ifile); TString myplottimeout = TString::Format("D:/si-%d_time.pdf", ifile); TString myploteneout = TString::Format("D:/si-%d_ene.pdf", ifile); TString mydatavalueouta = TString::Format("D:/si-%d_CaloEnDep_%d.txt", ifile,a); TString mydatavalueoutb = TString::Format("D:/si-%d_CaloEnDep_%d.txt", ifile,b); TString mydatavalueoutab = TString::Format("D:/si-%d_CaloEnDep_%d-%d.txt",ifile,a,b); TString canvtitle = TString::Format("si-%d",ifile); TString cdname = TString::Format("si-%d: Time_{%s}_{%d}-Time_{%s}_{%d}", ifile,timenamesuba,a,timenamesubb,b); TString cdnamea = TString::Format("si-%d: Energy_{%s}_{%d}", ifile,energynamesuba,a); TString cdnameb = TString::Format("si-%d: Energy_{%s}_{%d}", ifile,energynamesubb,b); char fobject[200]= "lemma"; char cdXname[200]= "#DeltaTime (unit)"; char cdYname[200]= "# Counts"; char cdXnameab[200]= "Energy (unit)"; char cdYnameab[200]= "# Counts"; TFile *f = TFile::Open(myfilein); f->ls (); TGaxis::SetMaxDigits(n); if (f == 0) { printf("Error: cannot open the file!\n"); return; } TTree *t=0; f->GetObject(fobject,t); TCanvas *c = new TCanvas("c",canvtitle,1280,1024); gStyle->SetOptFit(); t->SetLineColor(kBlue); t->Draw(Form("Calo_Time[%d]-Calo_Time[%d]",a,b)); t->GetHistogram()->SetTitle(cdname); lemma->SetScanField(0); ((TTreePlayer*)(t->GetPlayer()))->SetScanRedirect(true); ((TTreePlayer*)(t->GetPlayer()))->SetScanFileName(mydatavalueouta); t->Scan(Form("Calo_Time[%d]",a)); ((TTreePlayer*)(t->GetPlayer()))->SetScanRedirect(true); ((TTreePlayer*)(t->GetPlayer()))->SetScanFileName(mydatavalueoutb); t->Scan(Form("Calo_Time[%d]",b)); ((TTreePlayer*)(t->GetPlayer()))->SetScanRedirect(true); ((TTreePlayer*)(t->GetPlayer()))->SetScanFileName(mydatavalueoutab); t->Scan(Form("Calo_Time[%d]-Calo_Time[%d]",a,b)); TH1F *htemp = (TH1F*)gPad->GetPrimitive("htemp"); htemp->Fit("gaus"); p0 = gaus->GetParameter(0); p1 = gaus->GetParameter(1); p2 = gaus->GetParameter(2); htemp->GetXaxis()->SetTitle(cdXname); htemp->GetYaxis()->SetTitle(cdYname); htemp->GetYaxis()->SetTitleSize(c_YTitleSize); htemp->GetYaxis()->SetTitleFont(c_YTitleFont); htemp->GetYaxis()->SetTitleOffset(c_YTitleOffset); htemp->GetYaxis()->SetLabelFont(c_YLabelFont); htemp->GetYaxis()->SetLabelSize(c_YLabelSize); htemp->GetXaxis()->SetTitleSize(c_XTitleSize); htemp->GetXaxis()->SetTitleFont(c_XTitleFont); htemp->GetXaxis()->SetTitleOffset(c_XTitleOffset); htemp->GetXaxis()->SetLabelFont(c_XLabelFont); htemp->GetXaxis()->SetLabelSize(c_XLabelSize); htemp->Draw(); c->Update(); TLegend* leg = new TLegend(0.15, 0.7, .25, .75); leg->SetNColumns(1); leg->AddEntry(htemp, "Data", "l"); leg->AddEntry(gaus, "Fit", "l"); leg->Draw(); c->Update(); TPaveStats *statsg = (TPaveStats*)htemp->GetListOfFunctions()->FindObject("stats"); statsg->SetTextColor(kBlue); statsg->SetX1NDC(0.80); statsg->SetX2NDC(0.98); statsg->SetY1NDC(0.77); statsg->SetY2NDC(0.92); gPad->Update(); c->Print(myplottimeout); delete c; TCanvas *c2 = new TCanvas("c2",canvtitle,1280,1024); c2->Divide (2,1); c2->cd(1); t->SetLineColor(kBlue); //if (((Form("Calo_Time[%d]-Calo_Time[%d]",a,b))> (p1-3.*p2)) && (Form("Calo_Time[%d]-Calo_Time[%d]",a,b)) < (p1+3.*p2)) //if ( (("Calo_Time[8]"-"Calo_Time[9]") > (p1-3.*p2)) && (("Calo_Time[8]"-"Calo_Time[9]") < (p1+3.*p2)) ) //{ //t->Draw (Form("Calo_EnDep[%d]",a)); //} t->Draw( TString::Format("Calo_EnDep[%d]", a), TString::Format("TMath::Abs(Calo_Time[%d] - Calo_Time[%d] - [%f]) < 3.*[%f]", a, b, p1, p2) ); t->GetHistogram()->SetTitle(cdnamea); TH1F *htempa = (TH1F*)gPad->GetPrimitive("htemp"); htempa->GetXaxis()->SetTitle(cdXnameab); htempa->GetYaxis()->SetTitle(cdYnameab); htempa->GetYaxis()->SetTitleSize(c2_YTitleSize); htempa->GetYaxis()->SetTitleFont(c2_YTitleFont); htempa->GetYaxis()->SetTitleOffset(c2_YTitleOffset); htempa->GetYaxis()->SetLabelFont(c2_YLabelFont); htempa->GetYaxis()->SetLabelSize(c2_YLabelSize); htempa->GetXaxis()->SetTitleSize(c2_XTitleSize); htempa->GetXaxis()->SetTitleFont(c2_XTitleFont); htempa->GetXaxis()->SetTitleOffset(c2_XTitleOffset); htempa->GetXaxis()->SetLabelFont(c2_XLabelFont); htempa->GetXaxis()->SetLabelSize(c2_XLabelSize); htempa->Draw(); TLegend* lega = new TLegend(0.15, 0.7, .25, .75); lega->SetNColumns(1); lega->AddEntry(htempa, "Data", "l"); lega->Draw(); gPad->Update(); c2->cd(2); t->SetLineColor(kBlue); //if (((Form("Calo_Time[%d]-Calo_Time[%d]",a,b))> (p1-3.*p2)) && (Form("Calo_Time[%d]-Calo_Time[%d]",a,b)) < (p1+3.*p2)) //if ( (("Calo_Time[8]"-"Calo_Time[9]") > (p1-3.*p2)) && (("Calo_Time[8]"-"Calo_Time[9]") < (p1+3.*p2)) ) //{ // t->Draw (Form("Calo_EnDep[%d]",b)); //} t->Draw( TString::Format("Calo_EnDep[%d]", b), TString::Format("TMath::Abs(Calo_Time[%d] - Calo_Time[%d] - [%f]) < 3.*[%f]", a, b, p1, p2) ); t->GetHistogram()->SetTitle(cdnameb); TH1F *htempb = (TH1F*)gPad->GetPrimitive("htemp"); htempb->GetXaxis()->SetTitle(cdXnameab); htempb->GetYaxis()->SetTitle(cdYnameab); htempb->GetYaxis()->SetTitleSize(c2_YTitleSize); htempb->GetYaxis()->SetTitleFont(c2_YTitleFont); htempb->GetYaxis()->SetTitleOffset(c2_YTitleOffset); htempb->GetYaxis()->SetLabelFont(c2_YLabelFont); htempb->GetYaxis()->SetLabelSize(c2_YLabelSize); htempb->GetXaxis()->SetTitleSize(c2_XTitleSize); htempb->GetXaxis()->SetTitleFont(c2_XTitleFont); htempb->GetXaxis()->SetTitleOffset(c2_XTitleOffset); htempb->GetXaxis()->SetLabelFont(c2_XLabelFont); htempb->GetXaxis()->SetLabelSize(c2_XLabelSize); htempb->Draw(); TLegend* legb = new TLegend(0.15, 0.7, .25, .75); legb->SetNColumns(1); legb->AddEntry(htempb, "Data", "l"); legb->Draw(); gPad->Update(); c2->Print(myploteneout); delete c2; gROOT->ProcessLine("gROOT->SetBatch(kFALSE)"); //exit(); }