er
dev
|
Class for the elastic scattering simulate. More...
#include <ERElasticScattering.h>
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 |
Class for the elastic scattering simulate.
The ERElasticScattering defines the elastic scattering of the projectile in the target volume.
Definition at line 32 of file ERElasticScattering.h.
ERElasticScattering::ERElasticScattering | ( | TString | name | ) |
Constructor with reaction name.
name | reaction name |
Definition at line 41 of file ERElasticScattering.cxx.
|
inline |
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.
ThetaCenter | is theta position for detector center in Lab. |
dTheta | is 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. |
DetIonType | is a type of the registration ion. It defines which ion will be flying at the detector. kPROJECTILE by default. |
relMod | is the relativistic mode. KTRUE for the relativistic case and kFALSE for the non relativistic one. kTRUE by default. |
BeamAvE | the 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.
|
inline |
Defines range of phi value.
phi1 | phi minimum. |
phi2 | phi maximum. |
Definition at line 83 of file ERElasticScattering.h.
|
inline |
Defines primary ion mass.
mass | Primary 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
A | |
Z | |
Q |
Definition at line 53 of file ERElasticScattering.cxx.
|
inline |
Defines target ion mass.
mass | Target ion mass. |
Definition at line 93 of file ERElasticScattering.h.
|
inline |
Defines file name that contains the value of theta CDF.
fileName | File 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.
th1 | theta minimum. |
th2 | theta maximum. |
DetIonType | is 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.
|
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.
|
private |
Sum of thetaCM by all events in run.
Statistical attributes for all events.
Definition at line 161 of file ERElasticScattering.h.