KaliVeda
Toolkit for HIC analysis
Loading...
Searching...
No Matches
KVElasticScatter Class Reference

Detailed Description

Calculate elastic scattering spectra in multidetector arrays.

Use this class to calculate the 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())

Setting up the calculation

Create a new elastic scattering object:

KVElasticScatter es

Then call any of the following methods in any order in order to set up the calculation:

  • es.SetProjectile(...)
  • es.SetEnergy(...)
  • es.SetDetector(...)
  • es.SetRun(...)

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

es.SetTargetScatteringLayer(...)

with the name of the layer you require (this is normally the name of the element making up the layer - see KVTarget 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

es.SetTargetExcitedState(...)

with the energy of the excited state of the target after scattering.

Definition at line 93 of file KVElasticScatter.h.

#include <KVElasticScatter.h>

Public Member Functions

 KVElasticScatter ()
 Default constructor.
 
virtual ~KVElasticScatter ()
 Destructor.
 
void CalculateScattering (Int_t N)
 
TH1FGetDepth ()
 Return pointer to histogram of 'depth' of scattering point in target (in mg/cm2)
 
Int_t GetEbinning (void)
 Returns the number of bins of the GetEnergy histogram.
 
TH1FGetEnergy ()
 Return pointer to energy loss histogram for chosen detector (in MeV)
 
TH1FGetEnergy (const Char_t *type)
 
TH1FGetEnergy (Int_t index)
 
Int_t GetNDets () const
 Returns the number of detectors crossed by the scattered particle.
 
TH1FGetTheta ()
 Return pointer to polar angle distribution of scattered particle (in degrees)
 
void SetDetector (const Char_t *det)
 Set name of detector which will detect particle.
 
void SetEbinning (Int_t nbins=500)
 
void SetEnergy (Double_t E)
 Set energy of projectile in MeV.
 
void SetProjectile (Int_t Z, Int_t A)
 Set projectile Z and A.
 
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

TListfAlignedDetectors
 all aligned detectors
 
TVector3 fBeamDirection
 beam direction vector
 
Int_t fBinE
 Number of bins of the Energy histogram.
 
TH1FfDepth
 depth of scattering point in target
 
KVDetectorfDetector
 detector where particle will be detected
 
KVNameValueListfDetInd
 detector type-index association
 
Double_t fEnergy
 energy of projectile
 
Double_t fExx
 excited state of target nucleus
 
TObjArrayfHistos
 energy loss histograms for all hit detectors
 
Int_t fIntLayer
 index of interaction layer in multilayer target
 
KV2BodyfKinematics
 kinematics calculation
 
Bool_t fMultiLayer
 kTRUE for multilayer target
 
Int_t fNDets
 number of aligned detectors
 
KVNucleus fProj
 scattered nucleus
 
KVTargetfTarget
 target for current run
 
KVTelescopefTelescope
 telescope where particle will be detected
 
TH1FfTheta
 angle of scattered particle
 

Constructor & Destructor Documentation

◆ KVElasticScatter()

KVElasticScatter::KVElasticScatter ( )

Default constructor.

Definition at line 28 of file KVElasticScatter.cpp.

◆ ~KVElasticScatter()

KVElasticScatter::~KVElasticScatter ( )
virtual

Destructor.

Definition at line 60 of file KVElasticScatter.cpp.

Member Function Documentation

◆ CalculateScattering()

void KVElasticScatter::CalculateScattering ( Int_t  N)

Perform scattering 'N' times for current values of particle Z, A and energy, target excited state, and detector.

Definition at line 207 of file KVElasticScatter.cpp.

◆ GetDepth()

TH1F * KVElasticScatter::GetDepth ( )
inline

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

Definition at line 143 of file KVElasticScatter.h.

◆ GetEbinning()

Int_t KVElasticScatter::GetEbinning ( void  )
inline

Returns the number of bins of the GetEnergy histogram.

Definition at line 165 of file KVElasticScatter.h.

◆ GetEnergy() [1/3]

TH1F * KVElasticScatter::GetEnergy ( )
inline

Return pointer to energy loss histogram for chosen detector (in MeV)

Definition at line 148 of file KVElasticScatter.h.

◆ GetEnergy() [2/3]

TH1F * KVElasticScatter::GetEnergy ( const Char_t type)

Energy loss in detector of given 'type' through which scattered particle passes. Warning: if there are several detectors of the same type in the list of detectors through which the particle passes, the first one (as seen by the impinging particle) will have type "type", the second "type_1", the third "type_2", etc.

Definition at line 378 of file KVElasticScatter.cpp.

◆ GetEnergy() [3/3]

TH1F * KVElasticScatter::GetEnergy ( Int_t  index)

Energy loss in any detector through which scattered particle passes. The index corresponds to the order in which detectors are crossed by the particle, beginning with 0 for the first detector, and ending with (GetNDets()-1)

Definition at line 397 of file KVElasticScatter.cpp.

◆ GetNDets()

Int_t KVElasticScatter::GetNDets ( ) const
inline

Returns the number of detectors crossed by the scattered particle.

Definition at line 160 of file KVElasticScatter.h.

◆ GetTheta()

TH1F * KVElasticScatter::GetTheta ( )
inline

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

Definition at line 153 of file KVElasticScatter.h.

◆ SetDetector()

void KVElasticScatter::SetDetector ( const Char_t det)

Set name of detector which will detect particle.

Definition at line 125 of file KVElasticScatter.cpp.

◆ SetEbinning()

void KVElasticScatter::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.

Set binning of the GetEnergy histogram Default value is 500

Definition at line 194 of file KVElasticScatter.cpp.

◆ SetEnergy()

void KVElasticScatter::SetEnergy ( Double_t  E)

Set energy of projectile in MeV.

Definition at line 111 of file KVElasticScatter.cpp.

◆ SetProjectile()

void KVElasticScatter::SetProjectile ( Int_t  Z,
Int_t  A 
)

Set projectile Z and A.

Definition at line 98 of file KVElasticScatter.cpp.

◆ SetRun()

void KVElasticScatter::SetRun ( Int_t  run)

Set detector parameters, target, etc. for run.

Definition at line 82 of file KVElasticScatter.cpp.

◆ SetTargetExcitedState()

void KVElasticScatter::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 137 of file KVElasticScatter.h.

◆ SetTargetScatteringLayer()

void KVElasticScatter::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 170 of file KVElasticScatter.cpp.

Member Data Documentation

◆ fAlignedDetectors

TList* KVElasticScatter::fAlignedDetectors
private

all aligned detectors

Definition at line 105 of file KVElasticScatter.h.

◆ fBeamDirection

TVector3 KVElasticScatter::fBeamDirection
private

beam direction vector

Definition at line 110 of file KVElasticScatter.h.

◆ fBinE

Int_t KVElasticScatter::fBinE
private

Number of bins of the Energy histogram.

Definition at line 96 of file KVElasticScatter.h.

◆ fDepth

TH1F* KVElasticScatter::fDepth
private

depth of scattering point in target

Definition at line 94 of file KVElasticScatter.h.

◆ fDetector

KVDetector* KVElasticScatter::fDetector
private

detector where particle will be detected

Definition at line 104 of file KVElasticScatter.h.

◆ fDetInd

KVNameValueList* KVElasticScatter::fDetInd
private

detector type-index association

Definition at line 116 of file KVElasticScatter.h.

◆ fEnergy

Double_t KVElasticScatter::fEnergy
private

energy of projectile

Definition at line 98 of file KVElasticScatter.h.

◆ fExx

Double_t KVElasticScatter::fExx
private

excited state of target nucleus

Definition at line 113 of file KVElasticScatter.h.

◆ fHistos

TObjArray* KVElasticScatter::fHistos
private

energy loss histograms for all hit detectors

Definition at line 115 of file KVElasticScatter.h.

◆ fIntLayer

Int_t KVElasticScatter::fIntLayer
private

index of interaction layer in multilayer target

Definition at line 111 of file KVElasticScatter.h.

◆ fKinematics

KV2Body* KVElasticScatter::fKinematics
private

kinematics calculation

Definition at line 101 of file KVElasticScatter.h.

◆ fMultiLayer

Bool_t KVElasticScatter::fMultiLayer
private

kTRUE for multilayer target

Definition at line 108 of file KVElasticScatter.h.

◆ fNDets

Int_t KVElasticScatter::fNDets
private

number of aligned detectors

Definition at line 106 of file KVElasticScatter.h.

◆ fProj

KVNucleus KVElasticScatter::fProj
private

scattered nucleus

Definition at line 99 of file KVElasticScatter.h.

◆ fTarget

KVTarget* KVElasticScatter::fTarget
private

target for current run

Definition at line 107 of file KVElasticScatter.h.

◆ fTelescope

KVTelescope* KVElasticScatter::fTelescope
private

telescope where particle will be detected

Definition at line 103 of file KVElasticScatter.h.

◆ fTheta

TH1F* KVElasticScatter::fTheta
private

angle of scattered particle

Definition at line 95 of file KVElasticScatter.h.