10 #ifndef __KVELASTICSCATTER_H
11 #define __KVELASTICSCATTER_H
14 #include "KVNameValueList.h"
15 #include "KVNucleus.h"
192 TH1F* fDepth =
nullptr;
193 TH1F* fTheta =
nullptr;
195 KV2Body* fKinematics =
nullptr;
197 TList fAlignedDetectors;
200 Bool_t fMultiLayer =
false;
201 Bool_t fGetTargFromLay =
false;
207 std::optional<KVNucleus> fOutgoingPL;
208 std::optional<KVNucleus> fTargetNuc;
209 void SetRun(
Int_t run);
215 double get_det_resolution(
double E)
223 virtual bool initial_checks_and_reset();
224 virtual void reset_before_new_scattering() {}
225 virtual std::pair<double, double> get_random_angles_for_scattering(
const KV2Body& scattering_kinematics);
226 virtual void detect_particle_fill_histograms(
KVNucleus* ejectile,
double theta,
double phi,
double xsec);
227 virtual void end_of_run() {}
236 fBeamDirection = beam_dir;
249 fNucleusOfInterest = noi;
297 fGetTargFromLay = yes;
#define ClassDef(name, id)
Relativistic binary kinematics calculator.
void SetTarget(const KVNucleus &)
Set target for reaction.
void SetProjectile(const KVNucleus &)
Set projectile for reaction.
void SetOutgoing(const KVNucleus &proj_out)
void CalculateKinematics()
Base class for detector geometry description, interface to energy-loss calculations.
Calculate elastic scattering spectra in specific detectors of a multidetector array ,...
void SetNucleusOfInterest(KV2Body::nucleus_of_interest noi)
void SetDetector(const Char_t *det)
virtual ~ KVElasticScatter()
void SetTargetNucleusForScattering(const KVNucleus &tn)
void SetProjectileNucleus(const KVNucleus &pn)
void SetBeamDirection(const TVector3 &beam_dir)
TH1F * GetEnergy()
Return pointer to energy loss histogram for chosen detector (in MeV)
void CalculateScattering(Int_t N)
Perform scattering 'N' times.
void Print() const
Print details of calculation to be performed.
Int_t GetNDets() const
Returns the number of detectors crossed by the scattered particle.
void SetDetectorResolution(double fwhm, double eref)
void SetKinematicSolution(KV2Body::kinematic_solution ik)
KVElasticScatter(Int_t run)
Default constructor.
void SetTargetScatteringLayer(const Char_t *name)
Int_t GetEbinning(void)
Returns the number of bins of the GetEnergy histogram.
TH1F * GetDepth()
Return pointer to histogram of 'depth' of scattering point in target (in mg/cm2)
void SetOutGoingProjectileLike(const KVNucleus &opl)
void SetEbinning(Int_t nbins)
TH1F * GetTheta()
Return pointer to polar angle distribution of scattered particle (in degrees)
void SetExcitation(Double_t ex)
void GetTargetNucleusFromTargetLayer(Bool_t yes=kTRUE)
Group of detectors which can be treated independently of all others in array.
Handles lists of named parameters with different types, a list of KVNamedParameter objects.
Description of properties and kinematics of atomic nuclei.
Calculation/correction of energy losses of particles through an experimental target.
Double_t Sqrt(Double_t x)