KaliVeda
Toolkit for HIC analysis
KVDetectionSimulator.h
1 
4 #ifndef __KVDETECTIONSIMULATOR_H
5 #define __KVDETECTIONSIMULATOR_H
6 
7 #include "KVBase.h"
8 #include "KVMultiDetArray.h"
9 #include "KVNucleusEvent.h"
10 #include "KVDetectorEvent.h"
11 #include "KVTarget.h"
12 #include "KVRangeTableGeoNavigator.h"
13 
20 class KVDetectionSimulator : public KVBase {
21 
22  friend class KVElasticCountRates;
23 
24  KVMultiDetArray* fArray = nullptr;
29 
31  {
32  return static_cast<KVRangeTableGeoNavigator*>(fArray->GetNavigator());
33  }
35 public:
37  KVDetectionSimulator(KVMultiDetArray* a, Double_t cut_off = 1.e-3);
38 
40  {
44  fGeoFilter = kTRUE;
45  }
46 
47  void SetArray(KVMultiDetArray* a, Double_t e_cut_off = 1.e-3)
48  {
49  fArray = a;
50  a->Clear();
51  a->SetSimMode(kTRUE);
54  if (GetTarget()) GetTarget()->SetOutgoing();
55  }
57  {
58  return fArray;
59  }
61  {
62  return fArray->GetTarget();
63  }
65  {
66  fCalcTargELoss = y;
67  }
69  {
70  return fCalcTargELoss;
71  }
73  {
75  }
76  void SetMinKECutOff(Double_t cutoff)
77  {
79  }
80 
81  void DetectEvent(KVEvent* event, const Char_t* detection_frame = "");
82 
84  {
86  fHitGroups.Clear();
87  }
88 
90  {
92 
93  return fDetectionFrame;
94  }
95 
96  ClassDef(KVDetectionSimulator, 0) //Simulate detection of particles or events in a detector array
97 };
98 
99 #endif
bool Bool_t
char Char_t
constexpr Bool_t kFALSE
double Double_t
constexpr Bool_t kTRUE
#define ClassDef(name, id)
Base class for KaliVeda framework.
Definition: KVBase.h:139
Simulate detection of events in a detector array.
void SetArray(KVMultiDetArray *a, Double_t e_cut_off=1.e-3)
KVMultiDetArray * GetArray() const
void SetIncludeTargetEnergyLoss(Bool_t y=kTRUE)
KVTarget * GetTarget() const
void DetectEvent(KVEvent *event, const Char_t *detection_frame="")
void SetMinKECutOff(Double_t cutoff)
Double_t GetMinKECutOff() const
KVNameValueList PropagateParticle(KVNucleus *)
TString fDetectionFrame
when true, only consider geometry, not particle energies
KVRangeTableGeoNavigator * get_array_navigator() const
name of kinematical frame used in last call to DetectEvent()
Bool_t IncludeTargetEnergyLoss() const
KVDetectorEvent fHitGroups
array used for detection
KVMultiDetArray * fArray
TString GetDetectionFrame() const
Bool_t fGeoFilter
whether to include energy loss in target, if defined
List of hit groups in a multidetector array.
void Clear(Option_t *opt="") override
Calculate elastic scattering count rates in multidetector arrays.
Abstract base class container for multi-particle events.
Definition: KVEvent.h:67
Base class for describing the geometry of a detector array.
KVTarget * GetTarget()
KVGeoNavigator * GetNavigator() const
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
Propagate particles through array geometry calculating energy losses.
Double_t GetCutOffKEForPropagation() const
void SetCutOffKEForPropagation(Double_t e)
Calculation/correction of energy losses of particles through an experimental target.
Definition: KVTarget.h:128
void SetOutgoing(Bool_t r=kTRUE)
Definition: KVTarget.h:239
virtual void Clear(Option_t *="")
Double_t y[n]
TArc a