KaliVeda
Toolkit for HIC analysis
Loading...
Searching...
No Matches
KVIDCodeMask Class Reference

Detailed Description

Identification code structure for INDRA data (obsolete)

Id
KVINDRACodeMask.h,v 1.4 2008/02/14 10:30:18 franklan Exp

Author:

Author
franklan

Handles bit-masks used to describe identification & calibration codes for particles, and also used to define which particles are to be considered "ok" or "good" for analysis (i.e. which particles have IsOK()=kTRUE).

For compatibility with old VEDA6 codes, a set of bit-mask constants are defined to describe ID and energy codes:

ID codes: kIDCode0, kIDCode1, ..., kIDCode15
E codes: kECode0, kECode1, ..., kECode15
constexpr Double_t E()

Let us recall the meaning of the VEDA_6.INCL codes :

code = 0 : gamma
code = 1 : neutron (seulement couronnes 2 a 9)
code = 2 : part. ident. dans CsI ou Phoswich (OK + 8Be)
code = 3 : fragment identifie dans Si-CsI
ou fragment ident. dans Si75-SiLi ou SiLi-CsI
code = 4 : fragment identifie dans ChIo-Si
ou fragment ou part. identifie dans ChIo-Si75
code = 5 : fragment non-ident. (montee de Bragg)(Z min.)
ou stoppe dans Chio (Z min)
code = 6 : frag. cree par la coherence CsI (stoppe ds Si.)
code = 7 : frag. cree par la coherence ChIo (stoppe ds ChIo)
code = 8 : multiple comptage dans ChIo avec arret
- dans les siliciums (cour. 2-9)
- dans les CsI (cour. 10-17)
code = 9 : ident. incomplete dans CsI ou Phoswich (Z.min)
code =10 : ident. "entre les lignes" dans CsI
code =11 : ident. Z=2 due a l'inversion CHIO (Argon)
code =14 : Particule restee non identifiee (a rejeter)
code =15 : frag. ou part. rejete
double gamma(double x)
double min(double x, double y)

Nota: Pour le code 8 la contribution ChIo est partagee egalement entre toutes les particules qui s'arretent dans les modules suivants. Le Z individuel est donc surement faux mais cela permet d'avoir une assez bonne estimation du Z.total.

Les codes 9 et 10 sont des codes qui ont ete ajoutes pour donner au code 2 la notion d'identification sans ambiguites.


NEW ID CODE MASKS

For greater ease of use, we also define new bit-mask constants which are equivalent to the previous ones, but have names which make their meaning more clear (and easier to remember) :

kIDCode_Gamma = kIDCode0,
kIDCode_Neutron = kIDCode1,
kIDCode_CsI = kIDCode2,
kIDCode_Phoswich = kIDCode2,
kIDCode_SiCsI = kIDCode3,
kIDCode_SiLiCsI = kIDCode3,
kIDCode_Si75SiLi = kIDCode3,
kIDCode_ChIoSi = kIDCode4,
kIDCode_ChIoCsI = kIDCode4,
kIDCode_ChIoSi75 = kIDCode4,
kIDCode_Bragg = kIDCode5,
kIDCode_Zmin = kIDCode5,
kIDCode_ZminCsI = kIDCode9,
kIDCode_ArretChIo = kIDCode5,
kIDCode_ArretSi = kIDCode5,
kIDCode_MultihitChIo = kIDCode8

DEFINING CODE MASKS

Code masks defining acceptable particles for events are defined using the predefined bit-masks and the bit-wise "OR" as follows:

SetIDMask( kIDCode2 | kIDCode3 | kIDCode 4 | kIDCode6 ); // ID codes 2-4 & 6 are accepted, all others rejected
SetEMask ( kECode1 | kECode2 ); // accept calibration codes 1 & 2

TESTING CODE MASKS

You can test the identification code of a particle using the TestIDCode method (see KVINDRAReconNuc on how to obtain the particle's code mask):

Bool_t idchiosi = TestIDCode( kIDCode_ChIoSi );
bool Bool_t

In this example, idchiosi=kTRUE if the particle's ID code indicates detection in a ChIo-Si telescope.

This method also works to test if a given code is accepted by the mask set for an event (see KVINDRAReconEvent).

#include <KVINDRACodeMask.h>