These objects are filled with some random numbers and saved on a file. If get=1 the macro returns a pointer to the TFile of "hsimple.root" if this file exists, otherwise it is created. The file "hsimple.root" is created in $ROOTSYS/tutorials if the caller has write access to this directory, otherwise the file is created in $PWD
{
if (getFile) {
TString fullPath = dir+
"hsimple.root";
if (hfile) return hfile;
}
if (hfile) return hfile;
}
}
printf("you must run the script in a directory with write access\n");
return nullptr;
}
hfile =
new TFile(filename,
"RECREATE",
"Demo ROOT file with histograms");
hpx->SetDirectory(hfile);
hpx->SetFillColor(48);
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);
const bool doBenchmark = false;
if (doBenchmark)
c1->GetFrame()->SetFillColor(21);
c1->GetFrame()->SetBorderSize(6);
c1->GetFrame()->SetBorderMode(-1);
for (
Int_t i = 0; i < 25000; i++) {
pz = px*px + py*py;
hpx->Fill(px);
ntuple->Fill(px,py,pz,rnd,i);
break;
}
}
if (doBenchmark)
hpx->SetFillColor(0);
hpx->SetFillColor(48);
return hfile;
}
int Int_t
Signed integer 4 bytes (int).
float Float_t
Float 4 bytes (float).
externTBenchmark * gBenchmark
A file, usually with extension .root, that stores data and code in the form of serialized objects in ...
Int_t Write(const char *name=nullptr, Int_t opt=0, Int_t bufsize=0) override
Write memory objects to this file.
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.
void Close(Option_t *option="") override
Close a file.
1-D histogram with a float per channel (see TH1 documentation)
virtual void SetDirectory(TDirectory *dir)
By default, when a histogram is created, it is added to the list of histogram objects in the current ...
2-D histogram with a float per channel (see TH1 documentation)
Int_t Fill(Double_t) override
Invalid Fill method.
A simple TTree restricted to a list of float variables only.
Int_t Fill(const Double_t *v)
Random number generator class based on M.
Double_t Rndm() override
Machine independent random number generator.
virtual void Rannor(Float_t &a, Float_t &b)
Return 2 numbers distributed following a gaussian with mean=0 and sigma=1.
TString & ReplaceAll(const TString &s1, const TString &s2)