void multivarGaus() {
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);
for (
int iEvent = 0; iEvent <
MAX; ++iEvent) {
auto z = genpars[2];
}
}
GSLRandomEngine Base class for all GSL random engines, normally user instantiate the derived classes ...
void GaussianND(size_t dim, const double *pars, const double *covmat, double *genpars, double *lmat=nullptr) const
Multivariate Gaussian distribution.
void Initialize()
initialize the generator If no rng is present the default one based on Mersenne and Twister is create...
1-D histogram with a float per channel (see TH1 documentation)
virtual Int_t Fill(Double_t x)
Increment bin with abscissa X by 1.
void Draw(Option_t *option="") override
Draw this histogram with options.
2-D histogram with a float per channel (see TH1 documentation)
Int_t Fill(Double_t) override
Invalid Fill method.