KaliVeda User’s Guide

7 Simulating detector response (Filtering)

We can ‘filter’ simulated data either in order to establish the geometrical (or other) efficiency of a given experimental set-up, or to make a comparison between theoretical predictions and measured data which includes the biases and distortions introduced by the experimental apparatus.

7.1 Simulating the detection of an event

In the KaliVeda framework, a complete description of some experimental set-up is given by an instance of the KVMultiDetArray class; theoretical or simulated data are stored in collections of KVSimEvent objects; and experimental data reconstructed from measured energy losses etc. are handled by KVReconstructedEvent objects.1 The method which simulates the detection and reconstruction of simulated heavy-ion collisions is

void KVMultiDetArray::DetectEvent(KVEvent* input, KVReconstructedEvent* output, const char* det_frame = "")

where

7.2 Options controlling filter behaviour

7.2.1 Filter type

There are many possible replies to the question ‘What does a filter do?’. Three of them are implemented as types of filter which can be chosen by calling the method

void KVMultiDetArray::SetFilterType(Int_t)

with one of these values:

KVMultiDetArray::kFilterType_Geo (Geometric filter)

Simulate effects of detector geometry on simulated events.

All charged particles with non-zero kinetic energy in the detector reference frame are kept if their initial trajectory would hit at least 1 detector in the array. Each such particle is copied into the reconstructed ‘detected’ event with its simulated Z, A, and kinetic energy, but its direction of motion is drawn at random within the acceptance of the hit detector.

No treatment of pile-up in detectors/telescopes, i.e. if 4 particles all hit the same detector, they will all be counted as ‘well identified’. Also if a particle stops in the first stage of a ΔE-E telescope, it is considered ‘well identified’.

KVMultiDetArray::kFilterType_GeoThresh (Geometry + thresholds)

Geometric filter with thresholds: charged particles are considered ‘detected & well identified’ if they have enough energy to leave the target (if present), and if their remaining energy is sufficient to punch-through the first stage of a ΔE-E telescope in the array.

KVMultiDetArray::kFilterType_Full (Full simulation of experimental events)

Full simulation of detection of particles by the array. the calibration parameters for the chosen run are inverted in order to calculate raw acquisition data.

7.2.2 Geometry type

By default, the ROOT geometry package is used to calculate particle trajectories through multidetector array geometries.

7.3 Filter output: simulated event and particles

7.3.1 Detection status of simulated particles

After filtering, the simulated event whose address was given as first argument to KVMultiDetArray::DetectEvent (see Simulating the detection of an event) will contain full information on the ‘detection’ of each particle.

Particles are sorted into groups according to detection status (see Labelling & sorting particles), and parameters are added to each particle (see Adding parameters to particles) containing all other information such as the list of detectors seen by the particle, its energy loss in each, where it stopped, etc. etc.

7.3.1.1 Detection Status Group

The groups to which a particle is affected can be listed by calling method KVParticle::ListGroups(). See Labelling & sorting particles for details on using particle groups.

UNDETECTED

Detection and/or identification of particle failed. To give additional information on the reason for this failure, the particle will also be classed in one of the following groups:

NEUTRON
NO ENERGY
particle with zero kinetic energy in the reference frame of the detector STOPPED IN TARGET
DEAD ZONE
particle failed to interact with the active layer of any detector GEOMETRY INCOHERENCY
(only when using KaliVeda geometry — see Geometry type): particle undetected by array, after correction for over-simplistic geometry description (status would have been DEAD ZONE if geometry description was better). THRESHOLD
particle stopped before reaching active layer of first detector encountered
DETECTED

Particle detection was successful, and at least partial identification is possible.

INCOMPLETE

complete particle identification impossible, for one of the following reasons:

  • particle stopped in the first member of a ΔE-E telescope;
  • (for filter type Geometry+Thresholds) energy deposited in the active layer of the first member of a ΔE-E telescope is theoretically insufficient for correct identification (see method KVIDTelescope::CheckTheoreticalIdentificationThreshold).
PUNCH THROUGH
particle was detected, but not stopped by the array, punching through the last detector on its trajectory

7.3.1.2 Particle Detection Parameters

The list of parameters (a KVNameValueList object) associated with a particle can be accessed via method KVNameValueList* KVParticle::GetParameters(). It is also displayed when KVParticle::Print() is called. For more details, see Adding parameters to particles.

TARGET Out
energy lost by particle in the target (if present) STOPPING DETECTOR
name of the detector where particle stopped (or last detector seen by particle, if particle has status PUNCH THROUGH) IDENTIFYING TELESCOPE
name of the identification telescope which would identify the particle DETECTED
if particle was detected and at least partial identification is possible (i.e. has status group DETECTED), this parameter will exist and have one of the following values, which, apart from OK, reflect the Detection Status Group of the particle: * DETECTED=OK : no detection/identification problem * DETECTED=INCOMPLETE * DETECTED=PUNCH THROUGH
UNDETECTED
if particle detection was unsuccessful (i.e. with status group UNDETECTED) this parameter will exist and have one of the following values reflecting the Detection Status Group of the particle: * UNDETECTED=NEUTRON * UNDETECTED=NO ENERGY * UNDETECTED=STOPPED IN TARGET * UNDETECTED=DEAD ZONE * UNDETECTED=GEOMETRY INCOHERENCY * UNDETECTED=THRESHOLD

7.4 Filter output: reconstructed event and particles

Depending on the informations on particle detection stored in the simulated event, and on the selected Filter type, the KVReconstructedEvent object will contain a reconstructed nucleus for each detected particle.

Geometric filter

All particles with Detection Status Group DETECTED or STOPPED IN TARGET or THRESHOLD are reconstructed and considered to be well-identified. The charge, mass, and energy of the detected particle are the same as that of the simulated particle. The direction of motion (in the laboratory/detector frame) are randomised over the surface of the detector in which the particle stopped.

A check is made for pile-up in the stopping detector. Two or more particles stopping in the same detector will lead to the creation of as many reconstructed nuclei in the event, which could not occur experimentally: the different particles would be seen as one ‘hit’. In this case, all but one of the particles which stop in the same detector will be given the status KVReconstructedNucleus::kStatusPileupGhost.


  1. Note that both of the latter classes inherit the common base class KVEvent↩︎