Client program which creates and fills 2 histograms and a TTree. 
Every 1000000 fills the histograms and TTree is send to the server which displays the histogram.
To run this demo do the following:
- Open at least 2 windows
 
- Start ROOT in the first windows
 
- Execute in the first window: .x parallelMergeServer.C
 
- Execute in the other windows: root.exe -b -l -q .x 'parallelMergeClient.C("<socket path printed by server>")' (You can put it in the background if wanted). If you want to run the hserv.C on a different host, just change "localhost" in the TSocket ctor below to the desired hostname.
 
 
 
#include <string>
 
{
 
 
 
   if (idx%2 == 0) {
      
      hpx = 
new TH1F(
"hpx",
"This is the px distribution",100,-4,4);
 
   } else {
      hpx = 
new TH2F(
"hpxpy",
"py vs px",40,-4,4,40,-4,4);
 
   }
   tree->SetAutoFlush(4000000);
   tree->Branch("px",&px);
   tree->Branch("py",&py);
 
   
   for (int i = 0; i < 25000000; ) {
      if (idx%2 == 0)
      else
      tree->Fill();
      ++i;
      }
   }
   delete file;
 
}
unsigned int UInt_t
Unsigned integer 4 bytes (unsigned int)
 
float Float_t
Float 4 bytes (float)
 
R__EXTERN TBenchmark * gBenchmark
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
R__EXTERN TRandom * gRandom
 
virtual void Start(const char *name)
Starts Benchmark with the specified name.
 
virtual void Show(const char *name)
Stops Benchmark name and Prints results.
 
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
Create / open a file.
 
1-D histogram with a float per channel (see TH1 documentation)
 
TH1 is the base class of all histogram classes in ROOT.
 
2-D histogram with a float per channel (see TH1 documentation)
 
Int_t GetServerIdx() const
 
Int_t Write(const char *name=nullptr, Int_t opt=0, Int_t bufsize=0) override
Write memory objects to this file and upload them to the parallel merge server.
 
Bool_t UploadAndReset()
Upload the current file data to the merging server.
 
virtual void SetSeed(ULong_t seed=0)
Set the random generator seed.
 
virtual void Rannor(Float_t &a, Float_t &b)
Return 2 numbers distributed following a gaussian with mean=0 and sigma=1.
 
A TTree represents a columnar dataset.
 
- Authors
 - Fons Rademakers, Philippe Canal 
 
Definition in file parallelMergeClient.C.