10#include "KVElasticScatter.h"
11#include "KVMultiDetArray.h"
13#include "KVDetector.h"
14#include "KVTelescope.h"
38 fIntLayer = fNDets = 0;
41 fAlignedDetectors = 0;
49 Warning(
"KVElasticScatter",
"gMultiDetArray does not refer to a valid multidetector array");
50 printf(
"Define it before using this class, and put it in simulation mode : gMultiDetArray->SetSimMode(kTRUE)");
147 newname.
Form(
"%s_%d",
d->GetType(), j++);
149 newname.
Form(
"%s_%d",
d->GetType(), j++);
178 "<KVElasticScatter::SetTargetScatteringLayer> : No target set. Set run first."
214 "<KVElasticScatter::CalculateScattering> : Set projectile properties first"
220 "<KVElasticScatter::CalculateScattering> : Set projectile energy first"
226 "<KVElasticScatter::CalculateScattering> : Set detector first" <<
232 "<KVElasticScatter::CalculateScattering> : No target set. Set run first."
249 new TH1F(
"hDepth",
"Depth (mg/cm2)", 500, 0.,
251 fTheta =
new TH1F(
"hTheta",
"Theta (deg.)", 500, 0., 0.);
268 TH1F(
Form(
"hEloss_%s",
d->GetName()),
"Eloss (MeV)",
fBinE, 0., 0.));
308 for (
int i = 0; i <
N; i++) {
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
char * Form(const char *fmt,...)
Relativistic binary kinematics calculator.
void SetTarget(const KVNucleus &)
Set target for reaction.
void SetEDiss(Double_t ex)
void SetProjectile(const KVNucleus &)
Set projectile for reaction.
Double_t GetXSecRuthLab(Double_t ThetaLab_Proj, Int_t OfNucleus=3) const
void SetOutgoing(const KVNucleus &proj_out)
Double_t GetELab(Double_t ThetaCM, Int_t OfNucleus) const
void CalculateKinematics()
Base class for detector geometry description.
KVGeoStrucElement * GetParentStructure(const Char_t *type, const Char_t *name="") const
void GetRandomAngles(Double_t &th, Double_t &ph, Option_t *t="isotropic")
virtual TList * GetAlignedDetectors(UInt_t direction=1)
Calculate elastic scattering spectra in multidetector arrays.
void SetDetector(const Char_t *det)
Set name of detector which will detect particle.
Double_t fEnergy
energy of projectile
TH1F * GetEnergy()
Return pointer to energy loss histogram for chosen detector (in MeV)
Int_t fNDets
number of aligned detectors
virtual ~KVElasticScatter()
Destructor.
Int_t fIntLayer
index of interaction layer in multilayer target
Double_t fExx
excited state of target nucleus
TH1F * fDepth
depth of scattering point in target
TList * fAlignedDetectors
all aligned detectors
TVector3 fBeamDirection
beam direction vector
KVDetector * fDetector
detector where particle will be detected
KVNameValueList * fDetInd
detector type-index association
KVTelescope * fTelescope
telescope where particle will be detected
void CalculateScattering(Int_t N)
void SetEbinning(Int_t nbins=500)
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.
Bool_t fMultiLayer
kTRUE for multilayer target
void SetTargetScatteringLayer(const Char_t *name)
Int_t fBinE
Number of bins of the Energy histogram.
KV2Body * fKinematics
kinematics calculation
TH1F * fTheta
angle of scattered particle
void SetEnergy(Double_t E)
Set energy of projectile in MeV.
KVTarget * fTarget
target for current run
TObjArray * fHistos
energy loss histograms for all hit detectors
KVNucleus fProj
scattered nucleus
KVDetector * GetDetector(const Char_t *name) const
Return detector in this structure with given name.
Description of physical materials used to construct detectors & targets; interface to range tables.
virtual void SetParameters(UInt_t n, Bool_t physics_parameters_only=kFALSE)
virtual void SetSimMode(Bool_t on=kTRUE)
Handles lists of named parameters with different types, a list of KVNamedParameter objects.
Int_t GetIntValue(const Char_t *name) const
void SetValue(const Char_t *name, value_type value)
virtual void Clear(Option_t *opt="")
Bool_t HasParameter(const Char_t *name) const
Description of properties and kinematics of atomic nuclei.
void SetZ(Int_t z, Char_t mt=-1)
void SetZandA(Int_t z, Int_t a)
Set atomic number and mass number.
void SetTheta(Double_t theta)
void SetPhi(Double_t phi)
Double_t GetTheta() const
KVNameValueList * GetParameters() const
void SetEnergy(Double_t e)
void SetIncoming(Bool_t r=kTRUE)
virtual void DetectParticle(KVNucleus *, TVector3 *norm=0)
Int_t NumberOfLayers() const
TVector3 & GetInteractionPoint(KVParticle *part=0)
void SetRandomized(Bool_t r=kTRUE)
KVMaterial * GetLayer(TVector3 &depth)
Double_t GetTotalEffectiveThickness(KVParticle *part=0)
void SetInteractionLayer(Int_t ilayer, TVector3 &dir)
void SetOutgoing(Bool_t r=kTRUE)
Int_t GetLayerIndex(TVector3 &depth)
Associates two detectors placed one behind the other.
virtual void SetOwner(Bool_t enable=kTRUE)
virtual Int_t GetSize() const
virtual Int_t Fill(const char *name, Double_t w)
void Clear(Option_t *option="") override
const char * Data() const
void Form(const char *fmt,...)
Double_t Max(Double_t a, Double_t b)