Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:12:37

0001 // construct a Exponentially modified Gaussian distribution function
0002 double EMG(double *x, double *par)
0003 {
0004     double mu = par[0];     // Mean of the Gaussian
0005     double sigma = par[1];  // Width of the Gaussian
0006     double lambda = par[2]; // Decay constant of the Exponential
0007 
0008     double t = x[0];
0009     double z = ( mu + lambda * sigma * sigma - t) / (sqrt(2) * sigma);
0010 
0011     double prefactor = lambda / 2.0;
0012     double exp_part = exp((lambda / 2.0) * (2.0 * mu + lambda * sigma * sigma - 2.0 * t));
0013     double erfc_part = TMath::Erfc(z);
0014 
0015     return prefactor * exp_part * erfc_part;
0016 }
0017 
0018 void drawEMG()
0019 {
0020     // Create a histogram
0021     TF1 *fEMG = new TF1("fEMG", EMG, -10, 10, 3);
0022     fEMG->SetParameters(0, 1, 1);
0023     fEMG->SetParNames("mu", "sigma", "lambda");
0024     
0025     TCanvas *c = new TCanvas("c", "c", 800, 700);
0026     c->cd();
0027     fEMG->Draw();
0028     c->Draw();
0029     c->SaveAs("EMG.png");
0030     c->SaveAs("EMG.pdf");
0031 }