Read n-tuples in distinct workers, fill histograms, merge them and fit. 
We express parallelism with multiprocessing as it is done with multithreading in mt102_readNtuplesFillHistosAndFit.
 
Int_t mp102_readNtuplesFillHistosAndFit()
 
{
 
   
 
   
   
   TChain inputChain(
"multiCore");
 
   inputChain.Add("mp101_multiCore_*.root");
   if (inputChain.GetNtrees() <= 0) {
      Printf(
" No files in the TChain: did you run mp101_fillNtuples.C before?");
 
      return 1;
   }
   TH1F outHisto(
"outHisto", 
"Random Numbers", 128, -4, 4);
 
   inputChain.Draw("r >> outHisto");
   outHisto.Fit("gaus");
 
   
   
   
   
   
 
   
   const auto nFiles = inputChain.GetListOfFiles()->GetEntries();
 
   
      auto partialHisto = 
new TH1F(
"outHistoMP", 
"Random Numbers", 128, -4, 4);
 
      while (reader.Next()) {
         partialHisto->Fill(*randomRV);
      }
      return partialHisto;
   };
 
   
 
   
   auto sumHistogram = workers.Process(inputChain, workItem, "multiCore");
   sumHistogram->Fit("gaus", 0);
 
   return 0;
}
void Printf(const char *fmt,...)
 
This class provides an interface to process a TTree dataset in parallel with multi-process technology...
 
A chain is a collection of files containing TTree objects.
 
1-D histogram with a float per channel (see TH1 documentation)}
 
A simple, robust and fast interface to read values from ROOT columnar datasets such as TTree,...
 
- Date
 - January 2016 
 
- Author
 - Danilo Piparo 
 
Definition in file mp102_readNtuplesFillHistosAndFit.C.