Hi Laurent, see: http://root.cern.ch/root/htmldoc/TMapFile.html#TMapFile:SetMapAddress Cheers, Fons. Laurent Mirabito wrote: > > Hi all, > I attach to this mail the file hprod.cxx which create a big share memory > and put several TH1F in it. It compiles and works with ROOT 3.0 on Linux > PC (Suse 7.0) but I cannot open the share memory in root interactively > (segfault). Any idea? > Many thanks in advance for any help > Laurent Mirabito > IPN Lyon > > -------------------------------------------------------------------------------- > // @(#)root/test:$Name: $:$Id: hsimple.cxx,v 1.2 2000/07/11 18:05:26 rdm Exp $ > // Author: Rene Brun 19/08/96 > > //*-*-*-*-*-*-*Simple examples with histograms created/filled and saved*-*-*-* > //*-* ======================================================== > //*-* > //*-* This program creates : > //*-* - a one dimensional histogram > //*-* - a two dimensional histogram > //*-* - a profile histogram > //*-* - an ntuple > //*-* > //*-* These objects are filled with some random numbers and saved on a file. > //*-* > //*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* > > int hsimple(); > > #ifndef __CINT__ > #include "TROOT.h" > #include "TFile.h" > #include "TH1.h" > #include "TH2.h" > #include "TProfile.h" > #include "TMapFile.h" > #include "TNtuple.h" > #include "TRandom.h" > > int hproducer(); > //______________________________________________________________________________ > int main() > { > TROOT simple("simple","Test of histogramming and I/O"); > return hproducer(); > } > #endif > > int hproducer() > { > // Create a new ROOT binary machine independent file. > // Note that this file may contain any kind of ROOT objects, histograms, > // pictures, graphics objects, detector geometries, tracks, events, etc.. > // This file is now becoming the current directory. > // TFile hfile("hsimple.root","RECREATE","Demo ROOT file with histograms"); > TMapFile* mfile = TMapFile::Create("hsimple.map","RECREATE", 4000000, > "Demo memory mapped file with histograms"); > // Create some histograms, a profile histogram and an ntuple > TH1F* hpx[100]; > for (Int_t i=0;i<100;i++) > { > char cmd[100]; > sprintf(cmd,"hpx%.2d",i); > hpx[i] = new TH1F(cmd,"This is the px distribution",1000,-4,4); > } > TH2F *hpxpy = new TH2F("hpxpy","py vs px",40,-4,4,40,-4,4); > TProfile *hprof = new TProfile("hprof","Profile of pz versus px",100,-4,4,0,20); > mfile->Print(); > > // Fill histograms randomly > Float_t px, py, pz; > Int_t ii=0; > while(1) { > gRandom->Rannor(px,py); //px and py will be two gaussian random numbers > pz = px*px + py*py; > Float_t random = gRandom->Rndm(1); > for (Int_t j=0;j<100;j++) > hpx[j]->Fill(px); > hpxpy->Fill(px,py); > hprof->Fill(px,pz); > if (!(ii % 10)) { > mfile->Update(); // updates all objects in shared memory > if (!ii) mfile->ls(); // print contents of mapped file after > } // first update > ii++; > } > > // Save all objects in this file > > return 0; > } -- Org: CERN, European Laboratory for Particle Physics. Mail: 1211 Geneve 23, Switzerland E-Mail: Fons.Rademakers@cern.ch Phone: +41 22 7679248 WWW: http://root.cern.ch/~rdm/ Fax: +41 22 7677910
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:40 MET