er  dev
Public Member Functions | Private Member Functions | Private Attributes | List of all members
ERElasticScattering Class Reference

Class for the elastic scattering simulate. More...

#include <ERElasticScattering.h>

Inheritance diagram for ERElasticScattering:
Inheritance graph
[legend]
Collaboration diagram for ERElasticScattering:
Collaboration graph
[legend]

Public Member Functions

 ERElasticScattering (TString name)
 Constructor with reaction name. More...
 
virtual ~ERElasticScattering ()
 Destructor.
 
void SetTargetIon (Int_t A, Int_t Z, Int_t Q)
 Defines target ion parameters. More...
 
void SetThetaCDF (TString fileName)
 Defines file name that contains the value of theta CDF. More...
 
void SetThetaRange (Double_t th1, Double_t th2, ERInteractionParticipant DetIonType=kPROJECTILE)
 Defines range of theta value. More...
 
void SetLabThetaRange (Double_t thetaCenter, Double_t dTheta, ERInteractionParticipant DetIonType=kPROJECTILE, Bool_t relMod=kTRUE, Double_t BeamAvE=0.)
 Defines theta position for detector slot center in Lab. More...
 
void SetPhiRange (Double_t phi1, Double_t phi2)
 Defines range of phi value. More...
 
void SetProjectileIonMass (Double_t mass)
 Defines primary ion mass. More...
 
void SetTargetIonMass (Double_t mass)
 Defines target ion mass. More...
 
Double_t GetProjectileIonMass () const
 Returns projectile ion mass. More...
 
Double_t GetTargetIonMass () const
 Returns target ion mass.
 
Double_t GetdPhi () const
 Returns phi range value: fPh2-fPhiMin.
 
Double_t GetdThetaCDF () const
 Returns ThetaCDF range value: fCDFmax-fCDFmin.
 
Int_t GetInteractNumInTarget () const
 Returns number of interactions on target.
 
Double_t GetThetaCMMean () const
 Returns mean of thetaCM by all events in run [Deg].
 
Bool_t Init ()
 
Bool_t Stepping ()
 
- Public Member Functions inherited from ERDecay
 ERDecay (TString name)
 
TString GetName () const
 
void SetInteractionVolumeName (TString name)
 Defines name of volume where occures interaction of ion. More...
 
void SetNuclearInteractionLength (Double_t lambda)
 Defines nuclear interaction length. More...
 
void SetMaxPathLength (Double_t pathLength)
 Defines maximum path length for particles in the volume that is defined in SetInteractionVolumeName(). In macro, method must be called after SetNuclearInteractionLength(). More...
 
TString GetInteractionVolumeName ()
 Method returns interaction volume name.
 
virtual void BeginEvent ()
 
virtual void FinishEvent ()
 
void SetDecayPosZ (Double_t pos)
 
void SetInputIon (Int_t A, Int_t Z, Int_t Q)
 
void SetUniformPos (Double_t a, Double_t b)
 
void SetExponentialPos (Double_t start, Double_t tau)
 
void SetDecayVolume (TString name)
 
void SetStep (Double_t step)
 
void SetTargetMass (Double_t targetMass)
 
TString GetName ()
 

Private Member Functions

void ThetaRangesLab2CM ()
 The private method is to convert Lab theta range to CM.
 
void ThetaRangesLab2CMRelativistic ()
 The private method is to convert Lab theta range to CM for relativistic case. More...
 
Bool_t ThetaCDFRead ()
 The private method is to read ThetaCDF cumulative function file.
 
Double_t ThetaGen ()
 The private method is to generate theta value.
 
Bool_t DefineOfIonsMasses ()
 
 ClassDef (ERElasticScattering, 1)
 

Private Attributes

ERInteractionParticipant fDetectionIonType =kPROJECTILE
 Ion status TODO.
 
TString fThetaFileName =""
 File name that contains theta CDF values.
 
TString fTargetIonName =""
 Target ion name.
 
TParticlePDG * fTargetIonPDG =NULL
 Target ion PDG.
 
TF1 * fThetaCDF =NULL
 Pointer to theta CDF function.
 
TF1 * fThetaInvCDF =NULL
 Pointer to inversety theta CDF function.
 
Double_t fThetaMinCM =0.
 Theta minimum for primary ion in CM [Deg].
 
Double_t fThetaMaxCM =180.
 Theta maximum for primary ion in CM [Deg].
 
Double_t fThetaRangeCenter =0.
 Theta range's center.
 
Double_t fThetaRangedTheta =0.
 The half-width of the range of theta.
 
Double_t fPhiMin =0.
 Phi minimum for primary ion in CM [Deg].
 
Double_t fPhiMax =360.
 Phi maximum for primary ion in CM [Deg].
 
Double_t fCDFmin =0.
 ThetaCDF(fThetaMinCM) minimum.
 
Double_t fCDFmax =1.
 ThetaCDF(fThetaMaxCM) maximum.
 
Double_t fProjectileIonMass =-1.
 Projectile ion mass.
 
Double_t fTargetIonMass =0.
 Target ion mass.
 
Double_t fBeamAverageEnergy =0.
 Avarage Energy of the beam.
 
Bool_t fRelativisticMode =kTRUE
 kTRUE of a relativistic case is simulated and kFALSE if It isn't. kTRUE by default
 
Double_t fThetaCMSum =0.
 Sum of thetaCM by all events in run. More...
 
Int_t fInteractNumInTarget =0
 Interactions counter in target (by all events in run)
 

Additional Inherited Members

- Protected Member Functions inherited from ERDecay
Bool_t FindInteractionPoint ()
 
void CalculateTargetParameters ()
 
void AddParticleToStack (Int_t pdg, TLorentzVector pos, TLorentzVector state)
 
- Protected Attributes inherited from ERDecay
Bool_t fIsInterationPointFound
 
Double_t fDistanceToInteractPoint
 
Double_t fDistanceFromEntrance
 
TString fName
 
TRandom3 * fRnd
 
Bool_t fUniform
 
Float_t fUniformA
 
Float_t fUniformB
 
Bool_t fExponential
 
Float_t fExponentialStart
 
Float_t fExponentialTau
 
TString fVolumeName
 
Double_t fStep
 
Double_t fTargetMass
 
TString fInputIonName
 
TParticlePDG * fInputIonPDG
 
Double_t fDecayPosZ
 
TLorentzVector fDecayPos
 
Bool_t fDecayFinish
 

Detailed Description

Class for the elastic scattering simulate.

Author
V.Schetinin schet.nosp@m.inin.nosp@m.@jinr.nosp@m..ru.
I.Satyshev satys.nosp@m.hevi.nosp@m.@gmai.nosp@m.l.co.nosp@m.m.
Version
1.0

The ERElasticScattering defines the elastic scattering of the projectile in the target volume.

Definition at line 32 of file ERElasticScattering.h.

Constructor & Destructor Documentation

ERElasticScattering::ERElasticScattering ( TString  name)

Constructor with reaction name.

Parameters
namereaction name

Definition at line 41 of file ERElasticScattering.cxx.

Member Function Documentation

Double_t ERElasticScattering::GetProjectileIonMass ( ) const
inline

Returns projectile ion mass.

Accessors

Definition at line 99 of file ERElasticScattering.h.

void ERElasticScattering::SetLabThetaRange ( Double_t  thetaCenter,
Double_t  dTheta,
ERInteractionParticipant  DetIonType = kPROJECTILE,
Bool_t  relMod = kTRUE,
Double_t  BeamAvE = 0. 
)

Defines theta position for detector slot center in Lab.

Parameters
ThetaCenteris theta position for detector center in Lab.
dThetais a half of the theta range of the detector slit. User should choose the theta range as maximum as It is possible. It means that the increasing of the chosen value dTheta does not lead increasing of registered events number.
DetIonTypeis a type of the registration ion. It defines which ion will be flying at the detector. kPROJECTILE by default.
relModis the relativistic mode. KTRUE for the relativistic case and kFALSE for the non relativistic one. kTRUE by default.
BeamAvEthe avarage energy of the beam. It is zero by default. ATTENTION! For relativistic case this energy must be set correct!

Definition at line 65 of file ERElasticScattering.cxx.

void ERElasticScattering::SetPhiRange ( Double_t  phi1,
Double_t  phi2 
)
inline

Defines range of phi value.

Parameters
phi1phi minimum.
phi2phi maximum.

Definition at line 83 of file ERElasticScattering.h.

void ERElasticScattering::SetProjectileIonMass ( Double_t  mass)
inline

Defines primary ion mass.

Parameters
massPrimary ion mass.

Definition at line 88 of file ERElasticScattering.h.

void ERElasticScattering::SetTargetIon ( Int_t  A,
Int_t  Z,
Int_t  Q 
)

Defines target ion parameters.

Modifiers

Parameters
A
Z
Q

Definition at line 53 of file ERElasticScattering.cxx.

void ERElasticScattering::SetTargetIonMass ( Double_t  mass)
inline

Defines target ion mass.

Parameters
massTarget ion mass.

Definition at line 93 of file ERElasticScattering.h.

void ERElasticScattering::SetThetaCDF ( TString  fileName)
inline

Defines file name that contains the value of theta CDF.

Parameters
fileNameFile name contains CDF

Definition at line 55 of file ERElasticScattering.h.

void ERElasticScattering::SetThetaRange ( Double_t  th1,
Double_t  th2,
ERInteractionParticipant  DetIonType = kPROJECTILE 
)

Defines range of theta value.

Parameters
th1theta minimum.
th2theta maximum.
DetIonTypeis a type of the registration ion. It defines which ion will be flying at the detector. kPROJECTILE by default.

Definition at line 60 of file ERElasticScattering.cxx.

void ERElasticScattering::ThetaRangesLab2CMRelativistic ( )
private

The private method is to convert Lab theta range to CM for relativistic case.

It is a method to recalculation theta ranges from Lab to CM. Input formula is tan(thetaLab) = MomOfProjectilePerpendicularComponent / MomOfProjectileParallelComponent. Where MomOfProjectilePerpendicularComponent = Pcm*Sin(thetaCM)*sqrt(1-V^2), and MomOfProjectileParallelComponent = Pcm*Cos(thetaCM) + V*sqrt(pM^2+Pcm^2). Where V is a velocity of central of mass relativity of the Lab. Pcm is momentum of CM relativity of Lab. Here we use inverse formula to obtain thetaCM from thetaLab. For comfortable calculations we introduced corresponding notations. y = tan(thetaLab), z = V*sqrt(pM^2+Pcm^2), t = 1-V^2, x = Cos(thetaCM). a = Pcm^2*(y^2+t), b = 2*y^2*Pcm*z*x, c = y^2*z^2 - Pcm^2*t = 0, From input formula we obtain the equation a*x^2 + b*x + c = 0 From the equation D = b^2 - a*c, x1,2 = (-b +- sqrt(D)) / 2 / a, for projectile ion Cos(thetaCM) = (-b + sqrt(D)) / 2 / a, for target ion Cos(thetaCM) = -Cos(thetaCM) = (b - sqrt(D)) / 2 / a.

For a target ion in the calculations below projectile mass has to be changed with target mass

Absolute value of the CM momentum is the same for both particles and also before and after the ellastic scattering.

Definition at line 275 of file ERElasticScattering.cxx.

Member Data Documentation

Double_t ERElasticScattering::fThetaCMSum =0.
private

Sum of thetaCM by all events in run.

Statistical attributes for all events.

Definition at line 161 of file ERElasticScattering.h.


The documentation for this class was generated from the following files: