KaliVeda  1.13/01
Heavy-Ion Analysis Toolkit
List of all members | Public Member Functions | Private Attributes | List of all members
KVElasticCountRates Class Reference

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:

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())

Setting up the calculation

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:

The SetRun(...) method uses the experimental database in order to determine the target for the run, detector state (gas pressures etc.).

Multilayer targets

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).

Inelastic scattering

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.

Running the calculation, obtaining the results

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.
Warning
The values returned correspond to the last beam intensity value given to PrintResults().

Definition at line 149 of file 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)
 Default constructor. More...
 
virtual ~ KVElasticCountRates ()
 
void CalculateScattering (Int_t N=10000)
 
void FillHistograms (KVNameValueList *)
 
TH1FGetDepth ()
 
KVElasticCountRate GetDetector (const std::string &name)
 
Int_t GetEbinning (void)
 
const KVHashListGetHistos () const
 
TH1FGetTheta ()
 
void PrintResults (Double_t beam_intensity=1.e+07)
 Print mean energy deposit & counting rate for given beam intensity in particles per second. More...
 
KVNameValueList PutResultsInList (Double_t beam_intensity=1.e+07)
 Print mean energy deposit & counting rate for given beam intensity in particles per second. More...
 
void SetEbinning (Int_t nbins=500)
 
void SetProjectile (const Char_t *nuc, Double_t e_sur_a)
 Set projectile and beam energy [MeV/nucleon]. More...
 
void SetRun (Int_t run)
 Set detector parameters, target, etc. for run. More...
 
void SetTargetExcitedState (Double_t ex)
 
void SetTargetScatteringLayer (const Char_t *name)
 

Private Attributes

KVPosition fAngularRange
 angular range in which to scatter More...
 
Double_t fAtomicDensity
 number of atoms per barn (10^-24 cm2) in target More...
 
TVector3 fBeamDirection
 beam direction vector More...
 
Int_t fBinE
 Number of bins of the Energy histogram. More...
 
TH1FfDepth
 depth of scattering point in target More...
 
Double_t fEnergy
 energy of projectile More...
 
Double_t fExx
 excited state of target nucleus More...
 
KVHashList fHistos
 histograms for all hit detectors More...
 
Int_t fIntLayer
 index of interaction layer in multilayer target More...
 
KV2BodyfKinematics
 kinematics calculation More...
 
Bool_t fMultiLayer
 kTRUE for multilayer target More...
 
Double_t fNtirages
 
KVNucleus fProj
 scattered nucleus More...
 
std::map< std::string, KVElasticCountRatefRates
 
KVTargetfTarget
 target for current run More...
 
TH1FfTheta
 angle of scattered particle More...
 
Double_t fVolume
 volume factor for MC integration More...
 
Double_t phi
 
Double_t theta
 
Double_t xsec
 

#include <KVElasticCountRates.h>

Constructor & Destructor Documentation

◆ KVElasticCountRates()

KVElasticCountRates::KVElasticCountRates ( Double_t  theta_min = 0,
Double_t  theta_max = 180,
Double_t  phi_min = 0,
Double_t  phi_max = 360 
)

Default constructor.

Definition at line 35 of file KVElasticCountRates.cpp.

◆ ~ KVElasticCountRates()

virtual KVElasticCountRates::~ KVElasticCountRates ( )
virtual

Member Function Documentation

◆ CalculateScattering()

void KVElasticCountRates::CalculateScattering ( Int_t  N = 10000)

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 159 of file KVElasticCountRates.cpp.

◆ FillHistograms()

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 303 of file KVElasticCountRates.cpp.

◆ GetDepth()

TH1F* KVElasticCountRates::GetDepth ( )
inline

Return pointer to histogram of 'depth' of scattering point in target (in mg/cm2)

Definition at line 199 of file KVElasticCountRates.h.

◆ GetDetector()

KVElasticCountRate KVElasticCountRates::GetDetector ( const std::string &  name)
inline

Definition at line 227 of file KVElasticCountRates.h.

◆ GetEbinning()

Int_t KVElasticCountRates::GetEbinning ( void  )
inline

Returns the number of bins of the GetEnergy histogram

Definition at line 211 of file KVElasticCountRates.h.

◆ GetHistos()

const KVHashList& KVElasticCountRates::GetHistos ( ) const
inline

Definition at line 219 of file KVElasticCountRates.h.

◆ GetTheta()

TH1F* KVElasticCountRates::GetTheta ( )
inline

Return pointer to polar angle distribution of scattered particle (in degrees)

Definition at line 205 of file KVElasticCountRates.h.

◆ PrintResults()

void KVElasticCountRates::PrintResults ( Double_t  beam_intensity = 1.e+07)

Print mean energy deposit & counting rate for given beam intensity in particles per second.

Definition at line 401 of file KVElasticCountRates.cpp.

◆ PutResultsInList()

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 442 of file KVElasticCountRates.cpp.

◆ SetEbinning()

void KVElasticCountRates::SetEbinning ( Int_t  nbins = 500)

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 143 of file KVElasticCountRates.cpp.

◆ SetProjectile()

void KVElasticCountRates::SetProjectile ( const Char_t nuc,
Double_t  e_sur_a 
)

Set projectile and beam energy [MeV/nucleon].

Definition at line 102 of file KVElasticCountRates.cpp.

◆ SetRun()

void KVElasticCountRates::SetRun ( Int_t  run)

Set detector parameters, target, etc. for run.

Definition at line 84 of file KVElasticCountRates.cpp.

◆ SetTargetExcitedState()

void KVElasticCountRates::SetTargetExcitedState ( Double_t  ex)
inline

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 190 of file KVElasticCountRates.h.

◆ SetTargetScatteringLayer()

void KVElasticCountRates::SetTargetScatteringLayer ( const Char_t name)

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 118 of file KVElasticCountRates.cpp.

Member Data Documentation

◆ fAngularRange

KVPosition KVElasticCountRates::fAngularRange
private

angular range in which to scatter

Definition at line 158 of file KVElasticCountRates.h.

◆ fAtomicDensity

Double_t KVElasticCountRates::fAtomicDensity
private

number of atoms per barn (10^-24 cm2) in target

Definition at line 163 of file KVElasticCountRates.h.

◆ fBeamDirection

TVector3 KVElasticCountRates::fBeamDirection
private

beam direction vector

Definition at line 170 of file KVElasticCountRates.h.

◆ fBinE

Int_t KVElasticCountRates::fBinE
private

Number of bins of the Energy histogram.

Definition at line 153 of file KVElasticCountRates.h.

◆ fDepth

TH1F* KVElasticCountRates::fDepth
private

depth of scattering point in target

Definition at line 151 of file KVElasticCountRates.h.

◆ fEnergy

Double_t KVElasticCountRates::fEnergy
private

energy of projectile

Definition at line 155 of file KVElasticCountRates.h.

◆ fExx

Double_t KVElasticCountRates::fExx
private

excited state of target nucleus

Definition at line 173 of file KVElasticCountRates.h.

◆ fHistos

KVHashList KVElasticCountRates::fHistos
private

histograms for all hit detectors

Definition at line 175 of file KVElasticCountRates.h.

◆ fIntLayer

Int_t KVElasticCountRates::fIntLayer
private

index of interaction layer in multilayer target

Definition at line 171 of file KVElasticCountRates.h.

◆ fKinematics

KV2Body* KVElasticCountRates::fKinematics
private

kinematics calculation

Definition at line 160 of file KVElasticCountRates.h.

◆ fMultiLayer

Bool_t KVElasticCountRates::fMultiLayer
private

kTRUE for multilayer target

Definition at line 168 of file KVElasticCountRates.h.

◆ fNtirages

Double_t KVElasticCountRates::fNtirages
private

Definition at line 167 of file KVElasticCountRates.h.

◆ fProj

KVNucleus KVElasticCountRates::fProj
private

scattered nucleus

Definition at line 156 of file KVElasticCountRates.h.

◆ fRates

std::map<std::string, KVElasticCountRate> KVElasticCountRates::fRates
private

Definition at line 177 of file KVElasticCountRates.h.

◆ fTarget

KVTarget* KVElasticCountRates::fTarget
private

target for current run

Definition at line 162 of file KVElasticCountRates.h.

◆ fTheta

TH1F* KVElasticCountRates::fTheta
private

angle of scattered particle

Definition at line 152 of file KVElasticCountRates.h.

◆ fVolume

Double_t KVElasticCountRates::fVolume
private

volume factor for MC integration

Definition at line 164 of file KVElasticCountRates.h.

◆ phi

Double_t KVElasticCountRates::phi
private

Definition at line 166 of file KVElasticCountRates.h.

◆ theta

Double_t KVElasticCountRates::theta
private

Definition at line 166 of file KVElasticCountRates.h.

◆ xsec

Double_t KVElasticCountRates::xsec
private

Definition at line 165 of file KVElasticCountRates.h.


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