![]() |
KaliVeda
Toolkit for HIC analysis
|
Calculate elastic scattering count rates in the detectors of 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 corresponding to a given angular range.
For details on setting up and fine-tuning the simulation, see class KVElasticScatter.
To perform a calculation, the minimum you need to do is:
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:
If you want to see the count rates for a different beam intensity, call
with the required number of projectiles per second.
For each detector hit we fill three histograms:
Each histogram can be obtained using
The different informations for each detector can be obtained using
See KVElasticCountRate class for details.
Definition at line 115 of file KVElasticCountRates.h.
#include <KVElasticCountRates.h>

Public Member Functions | |
| KVElasticCountRates (int run) | |
| void | FillHistograms (const KVNameValueList *, double theta, double phi, double xsec) |
| KVElasticCountRate | GetDetector (const std::string &name) |
| const KVHashList & | GetHistos () const |
| 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 | SetAngularRange (Double_t theta_min=0, Double_t theta_max=180, Double_t phi_min=0, Double_t phi_max=360) |
| void | SetBeamIntensity (Double_t bi) |
Public Member Functions inherited from KVElasticScatter | |
| KVElasticScatter (Int_t run) | |
| Default constructor. More... | |
| virtual | ~ KVElasticScatter () |
| void | CalculateScattering (Int_t N) |
| Perform scattering 'N' times. More... | |
| TH1F * | GetDepth () |
| Return pointer to histogram of 'depth' of scattering point in target (in mg/cm2) More... | |
| Int_t | GetEbinning (void) |
| Returns the number of bins of the GetEnergy histogram. More... | |
| TH1F * | GetEnergy () |
| Return pointer to energy loss histogram for chosen detector (in MeV) More... | |
| TH1F * | GetEnergy (const Char_t *label) |
| Energy loss in detector with given 'label' through which scattered particle passes. More... | |
| TH1F * | GetEnergy (Int_t index) |
| auto | GetKinematics () |
| Int_t | GetNDets () const |
| Returns the number of detectors crossed by the scattered particle. More... | |
| void | GetTargetNucleusFromTargetLayer (Bool_t yes=kTRUE) |
| TH1F * | GetTheta () |
| Return pointer to polar angle distribution of scattered particle (in degrees) More... | |
| void | Print () const |
| Print details of calculation to be performed. More... | |
| void | SetBeamDirection (const TVector3 &beam_dir) |
| void | SetDetector (const Char_t *det) |
| void | SetEbinning (Int_t nbins) |
| void | SetExcitation (Double_t ex) |
| void | SetKinematicSolution (KV2Body::kinematic_solution ik) |
| void | SetNucleusOfInterest (KV2Body::nucleus_of_interest noi) |
| void | SetOutGoingProjectileLike (const KVNucleus &opl) |
| void | SetTargetNucleusForScattering (const KVNucleus &tn) |
| void | SetTargetScatteringLayer (const Char_t *name) |
Private Member Functions | |
| void | detect_particle_fill_histograms (KVNucleus *ejectile, double theta, double phi, double xsec) override |
| now detect particle in array More... | |
| void | end_of_run () override |
| std::pair< double, double > | get_random_angles_for_scattering (const KV2Body &) override |
| set random direction of outgoing projectile More... | |
| bool | initial_checks_and_reset () override |
| void | reset_before_new_scattering () override |
Private Attributes | |
| KVDetectionSimulator | det_sim |
| KVPosition | fAngularRange |
| angular range in which to scatter More... | |
| KVHashList | fArrayHistos |
| histograms for all hit detectors More... | |
| Double_t | fBeamIntensity = 1.e+7 |
| TH2F * | fGlobalMap |
| global map of cross-section vs. theta vs. phi More... | |
| std::map< std::string, KVElasticCountRate > | fRates |
| Double_t | fVolume = 0 |
| Double_t | phi |
| Double_t | theta |
|
inline |
Definition at line 132 of file KVElasticCountRates.h.
|
overrideprivatevirtual |
now detect particle in array
Reimplemented from KVElasticScatter.
Definition at line 80 of file KVElasticCountRates.cpp.
|
overrideprivatevirtual |
Reimplemented from KVElasticScatter.
Definition at line 91 of file KVElasticCountRates.cpp.
| void KVElasticCountRates::FillHistograms | ( | const KVNameValueList * | dets, |
| double | theta, | ||
| double | phi, | ||
| double | xsec | ||
| ) |
parse the list dets fill histograms with energy loss for all detectors clear the detector energy losses delete the list
Definition at line 104 of file KVElasticCountRates.cpp.
|
overrideprivatevirtual |
set random direction of outgoing projectile
Reimplemented from KVElasticScatter.
Definition at line 67 of file KVElasticCountRates.cpp.
|
inline |
Definition at line 150 of file KVElasticCountRates.h.
|
inline |
Definition at line 142 of file KVElasticCountRates.h.
|
overrideprivatevirtual |
Reimplemented from KVElasticScatter.
Definition at line 43 of file KVElasticCountRates.cpp.
Print mean energy deposit & counting rate for given beam intensity in particles per second.
Definition at line 202 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 243 of file KVElasticCountRates.cpp.
|
overrideprivatevirtual |
Reimplemented from KVElasticScatter.
Definition at line 57 of file KVElasticCountRates.cpp.
| void KVElasticCountRates::SetAngularRange | ( | Double_t | theta_min = 0, |
| Double_t | theta_max = 180, |
||
| Double_t | phi_min = 0, |
||
| Double_t | phi_max = 360 |
||
| ) |
Definition at line 33 of file KVElasticCountRates.cpp.
Definition at line 137 of file KVElasticCountRates.h.
|
private |
Definition at line 124 of file KVElasticCountRates.h.
|
private |
angular range in which to scatter
Definition at line 117 of file KVElasticCountRates.h.
|
private |
histograms for all hit detectors
Definition at line 120 of file KVElasticCountRates.h.
Definition at line 122 of file KVElasticCountRates.h.
|
private |
global map of cross-section vs. theta vs. phi
Definition at line 116 of file KVElasticCountRates.h.
|
private |
Definition at line 121 of file KVElasticCountRates.h.
|
private |
Definition at line 118 of file KVElasticCountRates.h.
|
private |
Definition at line 119 of file KVElasticCountRates.h.
|
private |
Definition at line 119 of file KVElasticCountRates.h.