40 Double_t dist1 = (sect1 - surf1).Mag();
42 LOG(error) <<
"EventGen: Average beam does not hit first target surface!";
43 LOG(error) <<
" Surface centre is (" << surf1.X() <<
", " << surf1.Y() <<
", " << surf1.Z() <<
") cm";
44 LOG(error) <<
" Intersection point is (" << sect1.X() <<
", " << sect1.Y() <<
", " << sect1.Z() <<
") cm";
45 LOG(error) <<
" Distance to target surface centre is " << dist1 <<
" cm, target radius is "
53 Double_t dist2 = (sect2 - surf2).Mag();
55 LOG(error) <<
"EventGen: Average beam does not hit second target surface!";
56 LOG(error) <<
" Surface centre is (" << surf2.X() <<
", " << surf2.Y() <<
", " << surf2.Z() <<
") cm";
57 LOG(error) <<
" Intersection point is (" << sect2.X() <<
", " << sect2.Y() <<
", " << sect2.Z() <<
") cm";
58 LOG(error) <<
" Distance to target surface centre is " << dist2 <<
" cm, target radius is "
136 std::stringstream ss;
137 ss <<
"Beam profile:";
138 ss <<
"\n\t x position ";
142 ss <<
"\n\t y position ";
146 ss <<
"\n\t Focal plane: z = " <<
fFocalZ <<
" cm";
147 ss <<
"\n\t x-z angle ";
151 ss <<
"\n\t y-z angle ";
TVector3 ExtrapolateToPlane(const TVector3 &point, const TVector3 &norm) const
Extrapolate the average beam to a plane.
Bool_t CheckWithTarget(const CbmTarget &target) const
Check consistency with a target.
Double_t fSigmaThetaX
RMS of angle in x-z plane [rad].
Double_t fMeanPosX
Mean position in x [cm].
Double_t fMeanPosY
Mean position in y [cm].
Double_t fMeanThetaX
Mean angle in x-z plane [rad].
CbmBeamProfile()
Default constructor
void SetAngle(Double_t x0, Double_t y0, Double_t sigmaX=-1., Double_t sigmaY=-1.)
Set the parameters for the beam angle distribution.
Double_t fSigmaPosX
RMS of position in x [cm].
Double_t fSigmaPosY
RMS of position in y [cm].
void SetPosition(Double_t x0, Double_t y0, Double_t sigmaX=-1., Double_t sigmaY=-1., Double_t zF=0.)
Set the parameters for the beam position distribution.
Double_t fSigmaThetaY
RMS of angle in y-z plane [rad].
Double_t fFocalZ
z coordinate of focal plane [cm]
std::string ToString() const
Info to string.
std::unique_ptr< CbmBeam > GenerateBeam()
Generate a beam trajectory.
Double_t fMeanThetaY
Mean angle in y-z plane [rad].
TVector3 ExtrapolateToPlane(const TVector3 &point, const TVector3 &normal) const
Extrapolation of the beam to a plane.
Class for constructing the geometry of the CBM target.
TVector3 GetSurfaceCentreUp() const
Upstream surface centre.
TVector3 GetSurfaceCentreDown() const
Downstream surface centre.
Double_t GetDiameter() const
Get target diameter.
TVector3 GetNormal() const
Normal vector.