KaliVeda
Toolkit for HIC analysis
|
Calculate elastic scattering count rates in multidetector arrays.
Created by KVClassFactory on Fri Nov 20 2015 Author: John Frankland
Use this class to calculate the count rates & energy losses of elastically scattered nuclei in the detectors of a multidetector array. It is assumed that the following global pointers have been initialised before using this class:
gMultiDetArray- points to object describing multidetector array
gExpDB- points to database of run-dependent information for experimental dataset
In other words, we assume that the user has chosen a dataset on which she wants to work:
gDataSetManager->GetDataSet("name_of_dataset")->cd()
and then initialised the description of the experimental configuration for the dataset:
KVMultiDetArray::MakeMultiDetector(gDataSet->GetName())
Create a new elastic scattering object defining angular range in which to perform calculation:
KVElasticCountRates ecr(2,45,0,360)
Then call the following methods in any order in order to set up the calculation:
ecr.SetProjectile(...)
ecr.SetRun(...)
The SetRun(...) method uses the experimental database in order to determine the target for the run, detector state (gas pressures etc.).
When multilayer targets are used, the user can restrict the scattering calculation to one specific component of the target, i.e. the scattering takes place between the projectile and one of the nuclei of the specified layer. Energy losses before and after the scattering in the other layers of the target are of course still taken into account. To set the part of the target where scattering takes place use
ecr.SetTargetScatteringLayer(...)
with the name of the layer you require (this is normally the name of the element making up the layer - see KVTarget class for details).
Calculations can also be performed for inelastic scattering i.e. when the target nucleus is left in an excited state (N.B. we still use the Rutherford elastic scattering cross-section for weighting the energy loss distributions). In order to do this, call
ecr.SetTargetExcitedState(...)
with the energy of the excited state of the target after scattering.
To perform the calculation, do:
ecr.CaclulateScattering(10000)
Make sure the number of sampled points (default=10000) is large enough for accurate determination of count rates. At the end of calculation, we print infos for all detectors hit by elastic particles, these are the count rates for a nominal beam intensity of 10**7 particles per second, the mean energy loss in the detector, the total integrated cross-section per detector in barn, the number of particles per second per unit area hitting each detector, and the total energy per second per unit area deposited in each detector:
kaliveda [3] esa.CalculateScattering(10000) SI_0101 : N= 204.42/sec. <E>= 890.3 MeV Tot.Xsec=6.687E+01 barn fluence=2.711E+01/sec./cm**2 dissip.=2.413E+04 MeV/sec./cm**2 SI_0201 : N= 61.37/sec. <E>= 709.7 MeV Tot.Xsec=2.008E+01 barn fluence=1.413E+01/sec./cm**2 dissip.=1.002E+04 MeV/sec./cm**2 SI_0301 : N= 15.29/sec. <E>= 706.4 MeV Tot.Xsec=5.002E+00 barn fluence=2.390E+00/sec./cm**2 dissip.=1.688E+03 MeV/sec./cm**2 SI_0401 : N= 6.33/sec. <E>= 699.2 MeV Tot.Xsec=2.070E+00 barn fluence=1.582E+00/sec./cm**2 dissip.=1.106E+03 MeV/sec./cm**2
If you want to see the count rates for a different beam intensity, call
ecr.PrintResults(5.e+06)</pr> For each detector hit we fill three histograms:OBJ: TH1F SI_0223 Eloss in SI_0223 : 0 at: 0x10898980 OBJ: TH1F SI_0223_dW Solid angle of SI_0223 : 0 at: 0x10899540 OBJ: TH2F SI_0223_map Map of SI_0223 : 0 at: 0x10e2e7d0
Each histogram can be obtained using
ecr.GetHistos().FindObject("SI_0223_map")
The different informations for each detector can be obtained using
kaliveda [7] ecr.GetDetector("SI_0201").count_rate (double)6.13702995974404857e+01 kaliveda [8] ecr.GetDetector("SI_0201").mean_energy (double)7.09659910827807721e+02 kaliveda [9] ecr.GetDetector("SI_0201").intXsec (double)2.00758282694385635e+01
See KVElasticCountRate class for details.
Definition at line 150 of file KVElasticCountRates.h.
#include <KVElasticCountRates.h>
Public Member Functions | |
KVElasticCountRates (Double_t theta_min=0, Double_t theta_max=180, Double_t phi_min=0, Double_t phi_max=360, const TVector3 &beam_dir={0, 0, 1}) | |
Default constructor. | |
virtual | ~KVElasticCountRates () |
Destructor. | |
void | CalculateScattering (Int_t N=10000) |
void | FillHistograms (KVNameValueList *) |
TH1F * | GetDepth () |
KVElasticCountRate | GetDetector (const std::string &name) |
Int_t | GetEbinning (void) |
const KVHashList & | GetHistos () const |
TH1F * | GetTheta () |
void | PrintResults (Double_t beam_intensity=1.e+07) |
Print mean energy deposit & counting rate for given beam intensity in particles per second. | |
KVNameValueList | PutResultsInList (Double_t beam_intensity=1.e+07) |
Print mean energy deposit & counting rate for given beam intensity in particles per second. | |
void | SetEbinning (Int_t nbins=500) |
void | SetProjectile (const Char_t *nuc, Double_t e_sur_a) |
Set projectile and beam energy [MeV/nucleon] & direction. | |
void | SetRun (Int_t run) |
Set detector parameters, target, etc. for run. | |
void | SetTargetExcitedState (Double_t ex) |
void | SetTargetScatteringLayer (const Char_t *name) |
Private Attributes | |
KVPosition | fAngularRange |
angular range in which to scatter | |
Double_t | fAtomicDensity |
number of atoms per barn (10^-24 cm2) in target | |
TVector3 | fBeamDirection |
beam direction vector | |
Int_t | fBinE |
Number of bins of the Energy histogram. | |
TH1F * | fDepth |
depth of scattering point in target | |
Double_t | fEnergy |
energy of projectile | |
Double_t | fExx |
excited state of target nucleus | |
TH2F * | fGlobalMap |
global map of cross-section vs. theta vs. phi | |
KVHashList | fHistos |
histograms for all hit detectors | |
Int_t | fIntLayer |
index of interaction layer in multilayer target | |
KV2Body * | fKinematics |
kinematics calculation | |
Bool_t | fMultiLayer |
kTRUE for multilayer target | |
Double_t | fNtirages |
KVNucleus | fProj |
scattered nucleus | |
std::map< std::string, KVElasticCountRate > | fRates |
KVTarget * | fTarget |
target for current run | |
TH1F * | fTheta |
angle of scattered particle | |
Double_t | fVolume |
volume factor for MC integration | |
Double_t | phi |
Double_t | theta |
Double_t | xsec |
KVElasticCountRates::KVElasticCountRates | ( | Double_t | theta_min = 0 , |
Double_t | theta_max = 180 , |
||
Double_t | phi_min = 0 , |
||
Double_t | phi_max = 360 , |
||
const TVector3 & | beam_dir = {0, 0, 1} |
||
) |
Default constructor.
Definition at line 35 of file KVElasticCountRates.cpp.
|
virtual |
Destructor.
Definition at line 68 of file KVElasticCountRates.cpp.
Perform scattering 'N' times for current values of particle Z, A and energy, target excited state, and detector. Print out for each hit detector the mean energy loss & counting rate for a beam intensity of 10**7 pps
Definition at line 161 of file KVElasticCountRates.cpp.
void KVElasticCountRates::FillHistograms | ( | KVNameValueList * | dets | ) |
parse the list dets fill histograms with energy loss for all detectors clear the detector energy losses delete the list
Definition at line 310 of file KVElasticCountRates.cpp.
|
inline |
Return pointer to histogram of 'depth' of scattering point in target (in mg/cm2)
Definition at line 201 of file KVElasticCountRates.h.
|
inline |
Definition at line 229 of file KVElasticCountRates.h.
Returns the number of bins of the GetEnergy histogram
Definition at line 213 of file KVElasticCountRates.h.
|
inline |
Definition at line 221 of file KVElasticCountRates.h.
|
inline |
Return pointer to polar angle distribution of scattered particle (in degrees)
Definition at line 207 of file KVElasticCountRates.h.
Print mean energy deposit & counting rate for given beam intensity in particles per second.
Definition at line 409 of file KVElasticCountRates.cpp.
KVNameValueList KVElasticCountRates::PutResultsInList | ( | Double_t | beam_intensity = 1.e+07 | ) |
Print mean energy deposit & counting rate for given beam intensity in particles per second.
Definition at line 450 of file KVElasticCountRates.cpp.
Set the number of bins of the GetEnergy() histogram Default value is 500; this function has to be called before using CalculateScattering.
Definition at line 145 of file KVElasticCountRates.cpp.
Set projectile and beam energy [MeV/nucleon] & direction.
Definition at line 103 of file KVElasticCountRates.cpp.
Set detector parameters, target, etc. for run.
Definition at line 85 of file KVElasticCountRates.cpp.
To simulate inelastic scattering i.e. where the target nucleus is left in an excited state, use this method to set the excitation energy (in MeV). This value will be used for all subsequent calculations. Use SetTargetExcitedState(0) to return to elastic scattering.
Definition at line 192 of file KVElasticCountRates.h.
For multilayer targets, use this method to choose in which layer the scattering will take place. If name="", reset any previous choice so that scattering can take place in any layer
Definition at line 120 of file KVElasticCountRates.cpp.
|
private |
angular range in which to scatter
Definition at line 160 of file KVElasticCountRates.h.
|
private |
number of atoms per barn (10^-24 cm2) in target
Definition at line 165 of file KVElasticCountRates.h.
|
private |
beam direction vector
Definition at line 172 of file KVElasticCountRates.h.
|
private |
Number of bins of the Energy histogram.
Definition at line 155 of file KVElasticCountRates.h.
|
private |
depth of scattering point in target
Definition at line 152 of file KVElasticCountRates.h.
|
private |
energy of projectile
Definition at line 157 of file KVElasticCountRates.h.
|
private |
excited state of target nucleus
Definition at line 175 of file KVElasticCountRates.h.
|
private |
global map of cross-section vs. theta vs. phi
Definition at line 154 of file KVElasticCountRates.h.
|
private |
histograms for all hit detectors
Definition at line 177 of file KVElasticCountRates.h.
|
private |
index of interaction layer in multilayer target
Definition at line 173 of file KVElasticCountRates.h.
|
private |
kinematics calculation
Definition at line 162 of file KVElasticCountRates.h.
|
private |
kTRUE for multilayer target
Definition at line 170 of file KVElasticCountRates.h.
|
private |
Definition at line 169 of file KVElasticCountRates.h.
|
private |
scattered nucleus
Definition at line 158 of file KVElasticCountRates.h.
|
private |
Definition at line 179 of file KVElasticCountRates.h.
|
private |
target for current run
Definition at line 164 of file KVElasticCountRates.h.
|
private |
angle of scattered particle
Definition at line 153 of file KVElasticCountRates.h.
|
private |
volume factor for MC integration
Definition at line 166 of file KVElasticCountRates.h.
|
private |
Definition at line 168 of file KVElasticCountRates.h.
|
private |
Definition at line 168 of file KVElasticCountRates.h.
|
private |
Definition at line 167 of file KVElasticCountRates.h.