// Carsten Rott CCAPP // Nov 2008 // usage: // root create_ntuple.C\(\"my_data.txt\"\) #include "plot_tools.h" void create_ntuple(char filename[]) { ifstream in; // we assume a file basic text file in the current directory // this file has 6 columns of float data in.open(filename); char output_filename[100]; sprintf(output_filename,"%s.root",filename); printf("%s\n",filename); Float_t cospsi0,eth,nmusigmav,jpsi,phimuhalo,m_chi; Int_t nlines = 0; TFile *f = new TFile(output_filename,"RECREATE"); TH1F *h1 = new TH1F("h1","nmusigmav distribution",500,-2000,2000); TH1F *h2 = new TH1F("h2","jpsi distribution",500,-2000,2000); TH1F *flux = new TH1F("flux","flux",680,1,680); TH1F *alpha = new TH1F("alpha","alpha",680,1,680); TNtuple *ntuple = new TNtuple("ntuple","data from ascii file","eth:cospsi0:jpsi:nmusigmav:phimuhalo:m_chi"); while (1) { in >> cospsi0 >> jpsi >> eth >> nmusigmav >> phimuhalo >> m_chi; if (!in.good()) break; if (nlines < 5) printf("E_thr=%8f GeV, j_psi(%3f)= %8f, dN/dE*sigma_v=%8f 10^-29 cm^3 s^-1, phi(muhalo)=%8f\n",eth,cospsi0,jpsi,nmusigmav,phimuhalo); h1->Fill(nmusigmav); h2->Fill(jpsi); flux->Fill(phimuhalo); alpha->Fill(eth,jpsi); ntuple->Fill(eth,cospsi0,jpsi,nmusigmav,phimuhalo,m_chi); nlines++; } printf(" found %d points\n",nlines); flux->GetXaxis()->SetTitle("Muon Flux at IceCube from Galactic Halo Neutralinos (km^{-2} yr^{-1} GeV^{-1})"); flux->Draw(); in.close(); f->Write(); }