Loading [MathJax]/extensions/tex2jax.js
Logo ROOT  
Reference Guide
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Loading...
Searching...
No Matches
multivarGaus.C File Reference

Detailed Description

View in nbviewer Open in SWAN Tutorial illustrating the multivariate gaussian random number generation

void multivarGaus() {
rnd.Initialize();
const int dim = 3;
double pars[dim] = {0, 0, 0.5};
double genpars[dim] = {0, 0, 0};
double cov[dim * dim] = {1.0, -0.2, 0.0, -0.2, 1.0, 0.5, 0.0, 0.5, 0.75};
TH1F* hX = new TH1F("hX", "hX;x;Counts", 100, -5, 5);
TH1F* hY = new TH1F("hY", "hY;y;Counts", 100, -5, 5);
TH1F* hZ = new TH1F("hZ", "hZ;z;Counts", 100, -5, 5);
TH2F* hXY = new TH2F("hXY", "hXY;x;y;Counts", 100, -5, 5, 100, -5, 5);
TH2F* hXZ = new TH2F("hXZ", "hXZ;x;z;Counts", 100, -5, 5, 100, -5, 5);
TH2F* hYZ = new TH2F("hYZ", "hYZ;y;z;Counts", 100, -5, 5, 100, -5, 5);
const int MAX = 10000;
for (int evnts = 0; evnts < MAX; ++evnts) {
rnd.GaussianND(dim, pars, cov, genpars);
auto x = genpars[0];
auto y = genpars[1];
auto z = genpars[2];
hX->Fill(x);
hY->Fill(y);
hZ->Fill(z);
hXY->Fill(x, y);
hXZ->Fill(x, z);
hYZ->Fill(y, z);
}
TCanvas* c = new TCanvas("c", "Multivariate gaussian random numbers");
c->Divide(3, 2);
c->cd(1);
hX->Draw();
c->cd(2);
hY->Draw();
c->cd(3);
hZ->Draw();
c->cd(4);
hXY->Draw("COL");
c->cd(5);
hXZ->Draw("COL");
c->cd(6);
hYZ->Draw("COL");
}
#define c(i)
Definition RSha256.hxx:101
GSLRandomEngine Base class for all GSL random engines, normally user instantiate the derived classes ...
void GaussianND(const int dim, double *pars, double *covmat, double *genpars) const
Multivariate Gaussian distribution.
void Initialize()
initialize the generator If no rng is present the default one based on Mersenne and Twister is create...
The Canvas class.
Definition TCanvas.h:23
1-D histogram with a float per channel (see TH1 documentation)}
Definition TH1.h:575
virtual Int_t Fill(Double_t x)
Increment bin with abscissa X by 1.
Definition TH1.cxx:3351
virtual void Draw(Option_t *option="")
Draw this histogram with options.
Definition TH1.cxx:3074
2-D histogram with a float per channel (see TH1 documentation)}
Definition TH2.h:251
Int_t Fill(Double_t)
Invalid Fill method.
Definition TH2.cxx:358
Double_t y[n]
Definition legend1.C:17
Double_t x[n]
Definition legend1.C:17
#define MAX(x, y)
Definition sweep.c:94
Author
Jorge Lopez

Definition in file multivarGaus.C.