FairShip
Loading...
Searching...
No Matches
BeamSmearingUtils.h File Reference
#include <utility>
#include "Rtypes.h"
Include dependency graph for BeamSmearingUtils.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

std::pair< Double_t, Double_t > CalculateBeamOffset (Double_t smearBeam, Double_t paintBeam)
 

Function Documentation

◆ CalculateBeamOffset()

std::pair< Double_t, Double_t > CalculateBeamOffset ( Double_t  smearBeam,
Double_t  paintBeam 
)

Calculate beam smearing and painting offsets

Parameters
smearBeamStandard deviation for Gaussian smearing (in units appropriate for the generator)
paintBeamRadius for uniform circular painting (in units appropriate for the generator)
Returns
std::pair<Double_t, Double_t> containing (dx, dy) offsets in same units as input parameters

Definition at line 10 of file BeamSmearingUtils.cxx.

11 {
12 Double_t dx = 0.0;
13 Double_t dy = 0.0;
14
15 // Gaussian beam smearing
16 if (smearBeam > 0) {
17 dx = gRandom->Gaus(0, smearBeam);
18 dy = gRandom->Gaus(0, smearBeam);
19 }
20
21 // Uniform circular beam painting
22 if (paintBeam > 0) {
23 Double_t phi = gRandom->Uniform(0., 2 * TMath::Pi());
24 dx += paintBeam * TMath::Cos(phi);
25 dy += paintBeam * TMath::Sin(phi);
26 }
27
28 return {dx, dy};
29}