#include #include "TH2F.h" #include "TFile.h" #include "TCanvas.h" #include "TROOT.h" using namespace std; void showDEDX(string Filename, string ext="") { vector pvHistos; TFile *f = new TFile(Filename.c_str()); gROOT->ProcessLine(".ls"); if(gROOT->FindObject("K+")) { string CName="c1"+ext; string CTitle="K+"+ext; TCanvas *pC = new TCanvas(CName.c_str(), CTitle.c_str() ); pvHistos.push_back((TH2F*)gROOT->FindObject("K+")); //(pvHistos[0])->Draw(); pvHistos.back()->Draw(); } if(gROOT->FindObject("p+")) { string CName="c2"+ext; string CTitle="p+"+ext; TCanvas *pC = new TCanvas(CName.c_str(), CTitle.c_str()); pvHistos.push_back((TH2F*)gROOT->FindObject("p+")); pvHistos.back()->Draw(); //(pvHistos[1])->Draw(); } if(gROOT->FindObject("Muon-")) { string CName="c3"+ext; string CTitle="Muon-"+ext; TCanvas *pC = new TCanvas(CName.c_str(), CTitle.c_str()); pvHistos.push_back((TH2F*)gROOT->FindObject("Muon-")); pvHistos.back()->Draw(); //(pvHistos[1])->Draw(); } if(gROOT->FindObject("Pi+")) { string CName="c4"+ext; string CTitle="Pi+"+ext; TCanvas *pC = new TCanvas(CName.c_str(), CTitle.c_str()); pvHistos.push_back((TH2F*)gROOT->FindObject("Pi+")); pvHistos.back()->Draw(); //(pvHistos[1])->Draw(); } if(gROOT->FindObject("e+")) { string CName="c5"+ext; string CTitle="e+"+ext; TCanvas *pC = new TCanvas(CName.c_str(), CTitle.c_str()); pvHistos.push_back((TH2F*)gROOT->FindObject("e+")); pvHistos.back()->Draw(); //(pvHistos[1])->Draw(); } double von_x=0.; double bis_x=0.; double nbin_x=0.; double von_y=0.; double bis_y=0.; double nbin_y=0.; vector::iterator it; for(it=pvHistos.begin(); it!=pvHistos.end(); it++) { cout << "..." << endl; if( (*it) ) { assert(*it); TH2F *pCurHisto=*it; assert(pCurHisto); von_x=pCurHisto->GetBinLowEdge(1); bis_x=pCurHisto->GetBinLowEdge((*it)->GetNbinsX()) + (*it)->GetXaxis()->GetBinWidth((*it)->GetNbinsX()); nbin_x=pCurHisto->GetNbinsX(); von_y=pCurHisto->GetYaxis()->GetBinLowEdge(1); bis_y=pCurHisto->GetYaxis()->GetBinLowEdge((*it)->GetNbinsY()) + (*it)->GetYaxis()->GetBinWidth((*it)->GetNbinsY()); nbin_y=pCurHisto->GetNbinsY(); break; } } cout << "von_x(" << von_x << ") bis_x(" << bis_x << ") von_y(" << von_y << ") bis_y(" << bis_y << ")" << endl; TH2F *pHisto = new TH2F("summary", "Summary", nbin_x , von_x ,bis_x, nbin_y, von_y ,bis_y); assert(pHisto); for(it=pvHistos.begin(); it!=pvHistos.end(); it++) { if( (*it)) { pHisto->Add( (*it) ); } } string CName="cS"+ext; string CTitle="Summary"+ext; TCanvas *pS = new TCanvas(CName.c_str(), CTitle.c_str()); pHisto->Draw(); // f->Close(); // delete f; }