KaliVeda
Toolkit for HIC analysis
KVElasticCountRates.h
1 
4 #ifndef __KVElasticCountRates_H
5 #define __KVElasticCountRates_H
6 #include "KVElasticScatter.h"
7 #include "TVector3.h"
8 #include "KVNameValueList.h"
9 #include "KVPosition.h"
10 #include "TH2.h"
11 #include "KVNucleus.h"
12 #include "KV2Body.h"
13 #include "KVTarget.h"
14 #include <map>
15 #include "KVDetectionSimulator.h"
16 
103  double count_rate;
104  double mean_energy;
105  double intXsec; // integrated X-section (barn)
106  double fluence; // ions/sec./cm**2
107  double dissipation; // MeV/sec./cm**2
108  KVElasticCountRate(double c = 0, double e = 0, double i = 0, double f = 0, double d = 0)
110  virtual ~KVElasticCountRate() {}
111 
112  ClassDef(KVElasticCountRate, 0) //Elastic scattering rate information for detector
113 };
114 
118  Double_t fVolume = 0; //volume factor for MC integration
121  std::map<std::string, KVElasticCountRate> fRates;
123 
125  bool initial_checks_and_reset() override;
126  void reset_before_new_scattering() override;
127  std::pair<double, double> get_random_angles_for_scattering(const KV2Body&) override;
128  void detect_particle_fill_histograms(KVNucleus* ejectile, double theta, double phi, double xsec) override;
129  void end_of_run() override;
130 public:
131 
133  : KVElasticScatter{run}, det_sim{gMultiDetArray}
134  {}
135 
136  void SetAngularRange(Double_t theta_min = 0, Double_t theta_max = 180, Double_t phi_min = 0, Double_t phi_max = 360);
138  {
139  fBeamIntensity = bi;
140  }
141  void FillHistograms(const KVNameValueList*, double theta, double phi, double xsec);
142  const KVHashList& GetHistos() const
143  {
144  return fArrayHistos;
145  }
146 
147  void PrintResults(Double_t beam_intensity = 1.e+07);
148  KVNameValueList PutResultsInList(Double_t beam_intensity = 1.e+07);
149 
150  KVElasticCountRate GetDetector(const std::string& name)
151  {
152  return fRates[name];
153  }
154 
155  ClassDefOverride(KVElasticCountRates, 1)//Calculate elastic scattering count rates in multidetector arrays
156 };
157 
158 #endif
#define d(i)
#define f(i)
#define c(i)
#define e(i)
double Double_t
#define ClassDef(name, id)
#define ClassDefOverride(name, id)
char name[80]
Relativistic binary kinematics calculator.
Definition: KV2Body.h:178
Simulate detection of events in a detector array.
Calculate elastic scattering count rates in the detectors of multidetector arrays ,...
void PrintResults(Double_t beam_intensity=1.e+07)
Print mean energy deposit & counting rate for given beam intensity in particles per second.
KVNameValueList PutResultsInList(Double_t beam_intensity=1.e+07)
Print mean energy deposit & counting rate for given beam intensity in particles per second.
bool initial_checks_and_reset() override
std::pair< double, double > get_random_angles_for_scattering(const KV2Body &) override
set random direction of outgoing projectile
void detect_particle_fill_histograms(KVNucleus *ejectile, double theta, double phi, double xsec) override
now detect particle in array
TH2F * fGlobalMap
global map of cross-section vs. theta vs. phi
const KVHashList & GetHistos() const
KVHashList fArrayHistos
histograms for all hit detectors
KVElasticCountRate GetDetector(const std::string &name)
void end_of_run() override
std::map< std::string, KVElasticCountRate > fRates
KVPosition fAngularRange
angular range in which to scatter
void reset_before_new_scattering() override
void SetBeamIntensity(Double_t bi)
void FillHistograms(const KVNameValueList *, double theta, double phi, double xsec)
void SetAngularRange(Double_t theta_min=0, Double_t theta_max=180, Double_t phi_min=0, Double_t phi_max=360)
KVDetectionSimulator det_sim
Calculate elastic scattering spectra in specific detectors of a multidetector array ,...
Extended version of ROOT THashList.
Definition: KVHashList.h:29
Handles lists of named parameters with different types, a list of KVNamedParameter objects.
Description of properties and kinematics of atomic nuclei.
Definition: KVNucleus.h:123
Base class used for handling geometry in a multidetector array.
Definition: KVPosition.h:91
Utility class used by KVElasticCountRates to store results.
KVElasticCountRate(double c=0, double e=0, double i=0, double f=0, double d=0)
Utility class used by KVElasticCountRates.