Selector to fill a set of histograms and merging via file.
#define ProofSimpleFile_cxx
#include <TFormula.h>
ProofSimpleFile::ProofSimpleFile()
{
fRandom = nullptr;
fFile = nullptr;
fFileDir = nullptr;
}
ProofSimpleFile::~ProofSimpleFile()
{
if (fRandom) delete fRandom;
}
Int_t ProofSimpleFile::CreateHistoArrays()
{
Error(
"CreateHistoArrays",
"fNhist must be positive!");
return -1;
}
return 0;
}
void ProofSimpleFile::Begin(
TTree * )
{
if (fInput->FindObject("ProofSimpleFile_NHist")) {
}
}
void ProofSimpleFile::SlaveBegin(
TTree * )
{
if (fInput->FindObject("ProofSimpleFile_NHist")) {
}
if (fFile && fFile->IsZombie())
SafeDelete(fFile);
if (!fFile) {
Abort(
amsg, kAbortProcess);
return;
}
Abort("ProofSimpleFile::SlaveBegin: could not create histograms", kAbortProcess);
return;
}
if (!(fFileDir = fFile->mkdir("blue"))) {
Abort("ProofSimpleFile::SlaveBegin: could not create directory 'blue' in file!",
kAbortProcess);
return;
}
}
}
{
fHistTop[i]->Fill(fRandom->Gaus(0.,1.));
fHistDir[i]->Fill(fRandom->Gaus(0.,1.));
}
}
}
void ProofSimpleFile::SlaveTerminate()
{
if (fFile) {
fFile->cd();
}
}
fFileDir->cd();
}
}
fFile->Close();
if (cleanup) {
Info(
"SlaveTerminate",
"nothing to save: just cleanup everything ...");
TUrl uf(*(fFile->GetEndpointUrl()));
} else {
Info(
"SlaveTerminate",
"objects saved into '%s%s': sending related TProofOutputFile ...",
}
}
}
void ProofSimpleFile::Terminate()
{
return;
}
} else {
Error(
"Terminate",
"TProofOutputFile not found");
return;
}
Error(
"Terminate",
"could not create histograms");
return;
}
}
void ProofSimpleFile::PlotHistos(
Int_t opt)
{
if (opt == 0) {
TCanvas *
c1 =
new TCanvas(
"c1",
"ProofSimpleFile top dir canvas",200,10,700,700);
}
} else if (opt == 1) {
TCanvas *
c2 =
new TCanvas(
"c2",
"ProofSimpleFile 'blue' sub-dir canvas",400,60,700,700);
if ((fFileDir = (
TDirectory *) fFile->Get(
"blue"))) {
}
} else {
Error(
"PlotHistos",
"directory 'blue' not found in output file");
}
} else {
Error(
"PlotHistos",
"unknown option: %d", opt);
}
}
Selector to fill a set of histograms and merging via file.
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
winID h TVirtualViewer3D TVirtualGLPainter p
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
void Printf(const char *fmt,...)
Formats a string in a circular formatting buffer and prints the string.
R__EXTERN TSystem * gSystem
Describe directory structure in memory.
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)
The TNamed class is the base class for all named ROOT classes.
Class to steer the merging of files produced on the workers.
Random number generator class based on M.
Int_t Atoi() const
Return integer value of string.
Bool_t IsDigit() const
Returns true if all characters in string are digits (0-9) or white spaces, i.e.
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
virtual int Unlink(const char *name)
Unlink, i.e.
A TTree represents a columnar dataset.
This class represents a WWW compatible URL.
Double_t Sqrt(Double_t x)
Returns the square root of x.