parallelMergeTest.C: Fill histogram randomly
#include "TMessage.h"
#include "TBenchmark.h"
#include "TSocket.h"
#include "TH2.h"
#include "TTree.h"
#include "TFile.h"
#include "TRandom.h"
#include "TError.h"
void parallelMergeTest(UInt_t nhist, UInt_t ndims = 1, UInt_t nbins = 100)
{
gBenchmark->Start("parallelMergeTest");
TFile *file = TFile::Open("mergedClient.root?pmerge=localhost:1095","RECREATE");
Float_t px, py;
TTree *tree = 0;
switch (ndims) {
case 1: {
for(UInt_t h = 0 ; h < nhist; ++h) {
new TH1F(TString::Format("hpx%d",h),"This is the px distribution",nbins,-4,4);
}
break;
}
case 2: {
for(UInt_t h = 0 ; h < nhist; ++h) {
new TH2F(TString::Format("hpxy%d",h),"py vs px",nbins,-4,4,nbins,-4,-4);
}
break;
}
case 99: {
tree = new TTree("tree","tree");
tree->SetAutoFlush(4000000);
tree->Branch("px",&px);
tree->Branch("py",&py);
}
}
// Fill histogram randomly
gRandom->SetSeed();
const int kUPDATE = 1000000;
for (int i = 0; i < 25000000; ) {
// gRandom->Rannor(px,py);
// if (idx%2 == 0)
// hpx->Fill(px);
// else
// hpx->Fill(px,py);
if(tree) tree->Fill();
++i;
if (i && (i%kUPDATE) == 0) {
file->Write();
}
}
file->Write();
delete file;
gBenchmark->Show("parallelMergeTest");
}