16 KVBase(Form("DetectionSimulator_%
s", a->GetName()),
17 Form("Simulate detection of particles or events in detector array %
s", a->GetTitle())),
18 fArray(a), fCalcTargELoss(kTRUE)
101 event->ResetGetNextParticle();
103 while ((part =
event->GetNextParticle())) {
112 if (part->
GetZ() == 0) {
113 det_stat.
SetValue(
"UNDETECTED",
"NEUTRON");
119 det_stat.
SetValue(
"UNDETECTED",
"NO ENERGY");
131 eLostInTarget = ebef - _part->
GetKE();
133 det_stat.
SetValue(
"UNDETECTED",
"STOPPED IN TARGET");
136 part->
AddGroup(
"STOPPED IN TARGET");
147 det_stat.
SetValue(
"UNDETECTED",
"DEAD ZONE");
165 det_stat.
SetValue(
"DETECTED",
"OK");
168 det_stat.
SetValue(
"DETECTED",
"PUNCHED THROUGH");
234 Error(
"DetectParticle",
235 "Cannot find detector %s corresponding to particle energy loss %s",
277 Error(
"DetectParticleIn",
"Detector %s not found", detname);
ClassImp(KVPartitionList) void KVPartitionList
Initialisation.
Base class for KaliVeda framework.
Simulate detection of particles or events in a detector array.
KVMultiDetArray * GetArray() const
KVTarget * GetTarget() const
void DetectEvent(KVEvent *event, const Char_t *detection_frame="")
Double_t GetMinKECutOff() const
KVNameValueList DetectParticleIn(const Char_t *detname, KVNucleus *kvp)
Bool_t IncludeTargetEnergyLoss() const
KVNameValueList DetectParticle(KVNucleus *)
KVDetectorEvent fHitGroups
used to reset hit detectors in between events
KVMultiDetArray * fArray
array used for detection
Base class for detector geometry description, interface to energy-loss calculations.
KVGroup * GetGroup() const
TVector3 GetRandomDirection(Option_t *t="isotropic")
Base class container for multi-particle events.
virtual void PropagateParticle(KVNucleus *, TVector3 *TheOrigin=0)
KVDetector * GetDetector(const Char_t *name) const
Return detector in this structure with given name.
Base class for describing the geometry of a detector array.
KVGeoNavigator * GetNavigator() const
Handles lists of named parameters with different types, a list of KVNamedParameter objects.
Double_t GetDoubleValue(const Char_t *name) const
void SetValue(const Char_t *name, value_type value)
const Char_t * GetNameAt(Int_t idx) const
Int_t GetNpar() const
return the number of stored parameters
const Char_t * GetStringValue(const Char_t *name) const
Bool_t HasParameter(const Char_t *name) const
KVHashList * GetList() const
A generic named parameter storing values of different types.
Double_t GetDouble() const
Description of properties and kinematics of atomic nuclei.
Int_t GetZ() const
Return the number of proton / atomic number.
void AddGroup(const Char_t *groupname, const Char_t *from="")
TVector3 GetMomentum() const
KVNameValueList * GetParameters() const
void SetMomentum(const TVector3 &v)
Double_t GetEnergy() const
void SetParameter(const Char_t *name, ValType value) const
KVParticle const * GetFrame(const Char_t *frame, Bool_t warn_and_return_null_if_unknown=kTRUE) const
Propagate particles through array geometry calculating energy losses.
Extension of ROOT TString class which allows backwards compatibility with ROOT v3....
void Begin(TString delim) const
KVString Next(Bool_t strip_whitespace=kFALSE) const
virtual void DetectParticle(KVNucleus *, TVector3 *norm=0)
void SetOutgoing(Bool_t r=kTRUE)
virtual const char * GetName() const
virtual void Error(const char *method, const char *msgfmt,...) const
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
const char * Data() const