KaliVeda
1.13/01
Heavy-Ion Analysis Toolkit
|
Nuclei reconstructed from data measured by a detector array .
KVReconstructedNucleus is a nucleus reconstructed from hits in the detectors of an array, either coming from experimental data or filtered simulations. In addition to the properties handled by parent class KVNucleus, a KVReconstructedNucleus provides the following informations:
Definition at line 32 of file KVReconstructedNucleus.h.
Public Types | |
enum | { kStatusOK , kStatusOKafterSub , kStatusOKafterShare , kStatusStopFirstStage , kStatusPileupDE , kStatusPileupGhost } |
status codes given to reconstructed particles by KVGroupReconstructor::AnalyseParticles More... | |
![]() | |
enum | { kBetaMass , kVedaMass , kEALMass , kEALResMass , kEPAXMass } |
enum | { kLDModel , kEMPFunc , kELTON } |
enum | { kDefaultFormula , kItkis1998 , kHinde1987 , kViola1985 , kViola1966 } |
enum | { kNN , knn , kpp , knp } |
![]() | |
enum | { kIsOK = BIT(14) , kIsOKSet = BIT(15) , kIsDetected = BIT(16) } |
![]() | |
typedef Double_t | Scalar |
![]() | |
enum | EDeprecatedStatusBits |
enum | EStatusBits |
Static Public Member Functions | |
static void | AnalyseParticlesInGroup (KVGroup *grp) |
static UInt_t | GetNIdentifiedInGroup (KVGroup *grp) |
static UInt_t | GetNUnidentifiedInGroup (KVGroup *grp) |
![]() | |
static Int_t | GetAFromZ (Double_t, Char_t mt) |
static Int_t | GetNFromZ (Double_t, Char_t mt) |
Calculate neutron number from the element's atomic number Z. More... | |
static Double_t | GetRealAFromZ (Double_t, Char_t mt) |
static Double_t | GetRealNFromZ (Double_t, Char_t mt) |
static Int_t | GetZFromSymbol (const Char_t *) |
static Int_t | IsMassGiven (const Char_t *) |
static Double_t | LiquidDrop_BrackGuet (UInt_t A, UInt_t Z) |
static Double_t | TKE_Hinde1987 (Double_t z1, Double_t a1, Double_t z2, Double_t a2) |
static Double_t | TKE_Itkis1998 (Double_t z, Double_t a) |
static Double_t | TKE_Kozulin2014 (Double_t zp, Double_t zt, Double_t ap, Double_t at) |
static Double_t | TKE_Viola1966 (Double_t z, Double_t a) |
from: V. E. Viola, Jr., Nuclear Data Sheets. Section A 1, 391 (1965). More... | |
static Double_t | TKE_Viola1985 (Double_t z, Double_t a) |
from: V. E. Viola, K. Kwiatkowski, and M. Walker, Physical Review C 31, 1550 (1985). More... | |
static Double_t | u (void) |
![]() | |
static Double_t | C () |
![]() | |
static Longptr_t | GetDtorOnly () |
static Bool_t | GetObjectStat () |
static void | SetDtorOnly (void *obj) |
static void | SetObjectStat (Bool_t stat) |
Protected Types | |
enum | { kIsIdentified = BIT(18) , kIsCalibrated = BIT(19) , kCoherency = BIT(20) , kZMeasured = BIT(21) , kAMeasured = BIT(22) } |
Protected Member Functions | |
void | MakeDetectorList () |
void | RebuildReconTraj () |
![]() | |
void | AddGroups (KVUniqueNameList *un) |
list of groups added to the current one More... | |
void | SetGroups (KVUniqueNameList *un) |
Define for the particle a new list of groups. More... | |
![]() | |
virtual void | DoError (int level, const char *location, const char *fmt, va_list va) const |
void | MakeZombie () |
Protected Attributes | |
Int_t | fAnalStatus |
status of particle after analysis of reconstructed event More... | |
KVHashList | fDetList |
non-persistent list of pointers to detectors More... | |
KVString | fDetNames |
list of names of detectors through which particle passed More... | |
TClonesArray | fIDResults |
results of every identification attempt made for this nucleus, in order of the ID telescopes used More... | |
KVIDTelescope * | fIDTelescope |
non-persistent pointer to identification telescope More... | |
KVString | fIDTelName |
name of identification telescope which identified this particle (if any) More... | |
Int_t | fNSegDet |
number of segmented/independent detectors hit by particle More... | |
Float_t | fRealA |
A returned by identification routine. More... | |
Float_t | fRealZ |
Z returned by identification routine. More... | |
const KVReconNucTrajectory * | fReconTraj |
trajectory used to reconstruct particle More... | |
Double_t | fTargetEnergyLoss |
calculated energy lost in target More... | |
![]() | |
TVector3 * | fE0 |
the momentum of the particle before it is slowed/stopped by an absorber More... | |
KVNameValueList | fParameters |
a general-purpose list of parameters associated with this particle More... | |
![]() | |
kOnlyPrepStep | |
Additional Inherited Members | |
![]() | |
kNUM_COORDINATES | |
kSIZE | |
kT | |
kX | |
kY | |
kZ | |
![]() | |
kBitMask | |
kCanDelete | |
kCannotPick | |
kHasUUID | |
kInconsistent | |
kInvalidObject | |
kIsOnHeap | |
kIsReferenced | |
kMustCleanup | |
kNoContextMenu | |
kNotDeleted | |
kObjInCanvas | |
kOverwrite | |
kSingleKey | |
kWriteDelete | |
kZombie | |
![]() | |
static Double_t | e2 = KVNucleus::hbar / 137.035999074 |
e^2/(4.pi.epsilon_0) in MeV.fm More... | |
static Double_t | hbar = TMath::Hbarcgs() * TMath::Ccgs() / TMath::Qe() |
hbar*c in MeV.fm More... | |
static Double_t | kAMU = 9.31494043e02 |
atomic mass unit in MeV More... | |
static Double_t | kMe = 0.510998 |
electron mass in MeV/c2 More... | |
#include <KVReconstructedNucleus.h>
|
protected |
Enumerator | |
---|---|
kIsIdentified | |
kIsCalibrated | |
kCoherency | |
kZMeasured | |
kAMeasured |
Definition at line 41 of file KVReconstructedNucleus.h.
anonymous enum |
status codes given to reconstructed particles by KVGroupReconstructor::AnalyseParticles
Definition at line 63 of file KVReconstructedNucleus.h.
KVReconstructedNucleus::KVReconstructedNucleus | ( | ) |
default ctor.
Definition at line 42 of file KVReconstructedNucleus.cpp.
KVReconstructedNucleus::KVReconstructedNucleus | ( | const KVReconstructedNucleus & | obj | ) |
copy ctor
Definition at line 53 of file KVReconstructedNucleus.cpp.
|
inlinevirtual |
Definition at line 78 of file KVReconstructedNucleus.h.
void KVReconstructedNucleus::AddDetector | ( | KVDetector * | det | ) |
Add a detector to the list of those through which the particle passed. Put reference to detector into fDetectors array, increase number of detectors by one. As this is only used in initial particle reconstruction, we add 1 unidentified particle to the detector. add name of detector to fDetNames
Definition at line 346 of file KVReconstructedNucleus.cpp.
First-order coherency analysis of reconstructed particles
This method is kept for backwards compatibility. it is called by KVReconstructedEvent::Streamer when reading old data
Definition at line 523 of file KVReconstructedNucleus.cpp.
|
virtual |
Calculate and set the energy of a (previously identified) reconstructed particle, including an estimate of the energy loss in the target.
Starting from the detector in which the particle stopped, we add up the 'corrected' energy losses in all of the detectors through which it passed. Whenever possible, for detectors which are not calibrated or not working, we calculate the energy loss. Measured & calculated energy losses are also compared for each detector, and may lead to new particles being seeded for subsequent identification. This is done by KVIDTelescope::CalculateParticleEnergy().
For particles whose energy before hitting the first detector in their path has been calculated after this step we then add the calculated energy loss in the target, using gMultiDetArray->GetTargetEnergyLossCorrection().
Reimplemented in KVINDRAReconNuc, and KVFAZIAReconNuc.
Definition at line 695 of file KVReconstructedNucleus.cpp.
Reset nucleus. Calls KVNucleus::Clear. if opt!="N": Calls KVGroup::Reset for the group where it was reconstructed.
Reimplemented from KVNucleus.
Reimplemented in KVINDRAReconNuc, and KVFAZIAReconNuc.
Definition at line 325 of file KVReconstructedNucleus.cpp.
Copy this to obj
Reimplemented from KVNucleus.
Reimplemented in KVINDRAReconNuc, and KVFAZIAReconNuc.
Definition at line 264 of file KVReconstructedNucleus.cpp.
void KVReconstructedNucleus::CopyAndMoveReferences | ( | const KVReconstructedNucleus * | other | ) |
Copy all characteristics of 'other' and also change all references to 'other' to references to 'this' (i.e. in detectors hit by particle). 'other' will not be fully valid after this operation (shouldn't be used further)
Definition at line 302 of file KVReconstructedNucleus.cpp.
|
virtual |
Calculate angles theta and phi for nucleus based on the detectors on its reconstruction trajectory. The momentum is set using these angles, its mass and its kinetic energy.
The detector with the smallest solid angle along the trajectory is the one which defines the angles for the reconstructed particle.
The (optional) option string can be "random" or "mean":
If "random" (default) the angles are drawn at random between the over the surface of the detector.
If "mean" the (theta,phi) position of the centre of the detector is used to fix the nucleus' direction.
Definition at line 635 of file KVReconstructedNucleus.cpp.
TString KVReconstructedNucleus::GetArrayName | ( | ) | const |
Returns name of array particle was detected in (if known)
Definition at line 202 of file KVReconstructedNucleus.cpp.
|
inline |
Return detector with given label on particle's reconstruction trajectory
backwards compatibility ?
Definition at line 107 of file KVReconstructedNucleus.h.
|
inline |
Returns the detectors hit by the particle.
If i=0, this is the detector in which the particle stopped.
For i>0 one obtains the names of the detectors through which the particle must have passed before stopping, in inverse order (i.e. i=0 is the last detector, as i increases we get the detectors closer to the target).
backwards compatibility for old data
Definition at line 115 of file KVReconstructedNucleus.h.
|
inline |
Obsolete method. Use GetReconstructionTrajectory() to acces the list of detectors hit by the nucleus.
backwards compatibility for old data
Definition at line 93 of file KVReconstructedNucleus.h.
|
inline |
Definition at line 131 of file KVReconstructedNucleus.h.
|
inlinevirtual |
Return value of parameter "ECODE" If no value set, returns -1
Reimplemented in KVINDRAReconNuc.
Definition at line 249 of file KVReconstructedNucleus.h.
|
inline |
Return pointer to group in which the particle is detected
Definition at line 204 of file KVReconstructedNucleus.h.
|
inlinevirtual |
Return value of parameter "IDCODE" If no value set, returns -1
Reimplemented in KVINDRAReconNuc.
Definition at line 238 of file KVReconstructedNucleus.h.
|
inline |
Return pointer to result of attempted identification of given type.
This type is the type of the KVIDTelescope which was used (i.e. the string returned by KVIDTelescope::GetType()).
Returns nullptr if no identification of given type found, but even if a valid pointer is returned the identification may still not have been attemted (see comments in GetIdentificationResult(Int_t)).
Definition at line 407 of file KVReconstructedNucleus.h.
|
inline |
Definition at line 444 of file KVReconstructedNucleus.h.
|
inline |
Returns the result of the i-th (i>0) identification attempted for this nucleus:
N.B. This method will return a valid KVIdentificationResult object for any value of i (objects are created as necessary in the TClonesArray fIDresults).
To test whether an identification was attempted, do
rather than
Definition at line 369 of file KVReconstructedNucleus.h.
|
inline |
Definition at line 440 of file KVReconstructedNucleus.h.
|
inline |
Return pointer to result of identification attempted with a KVIdentificationTelescope of the given type.
This type is the type of the KVIDTelescope which was used (i.e. the string returned by KVIDTelescope::GetType()).
Returns nullptr if no identification of given type found, but even if a valid pointer is returned the identification may still not have been attemted (see comments in GetIdentificationResult(Int_t)).
Definition at line 427 of file KVReconstructedNucleus.h.
|
inline |
Definition at line 448 of file KVReconstructedNucleus.h.
|
inline |
Definition at line 228 of file KVReconstructedNucleus.h.
|
inline |
Get list of all ID telescopes on the particle's reconstruction trajectory i.e. all those made from the stopping detector and all detectors aligned in front of it. The first ID telescope in the list is that in which the particle stopped.
backwards compatibility for old data
Definition at line 215 of file KVReconstructedNucleus.h.
|
inline |
Definition at line 135 of file KVReconstructedNucleus.h.
number of identified particles reconstructed in group
this method is kept only for backwards compatibility. it is used by AnalyseParticlesInGroup which is called by KVReconstructedEvent::Streamer when reading old data
Definition at line 454 of file KVReconstructedNucleus.h.
|
inline |
return segmentation index of particle used by Identify() and KVGroup::AnalyseParticles
Definition at line 153 of file KVReconstructedNucleus.h.
|
inline |
Returns the number of KVIdentificationResult objects in the TClonesArray fIDresults.
Do not assume that all of these correspond to attempted identifications (see comments in GetIdentificationResult(Int_t))
Definition at line 398 of file KVReconstructedNucleus.h.
|
inline |
Number of detectors on reconstruction trajectory
backwards compatibility for old data
Definition at line 146 of file KVReconstructedNucleus.h.
number of unidentified particles reconstructed in group
this method is kept only for backwards compatibility. it is used by AnalyseParticlesInGroup() which is called by KVReconstructedEvent::Streamer() when reading old data
Definition at line 470 of file KVReconstructedNucleus.h.
|
inlinevirtual |
Return particle identification PID for this particle. If particle Z & A have been identified, this is "real Z" + 0.1*("real A"-2*"real Z") If only Z identification has been performed, it is the "real Z"
Definition at line 325 of file KVReconstructedNucleus.h.
|
inline |
Definition at line 318 of file KVReconstructedNucleus.h.
|
inline |
debug std::cout << "KVReconstructedNucleus::GetRealZ() returning fRealZ" << std::endl;
debug std::cout << "KVReconstructedNucleus::GetRealZ() returning GetZ() because fRealZ=" << fRealZ << std::endl;
Definition at line 305 of file KVReconstructedNucleus.h.
|
inline |
Return pointer to path through detectors of array used to reconstruct this particle.
Definition at line 481 of file KVReconstructedNucleus.h.
Returns status of reconstructed particle as decided by analysis of the group (KVGroup) in which the particle is reconstructed (see KVGroup::AnalyseParticles). This status is used to decide whether identification of the particle can be attempted straight away or if we need to wait until other particles in the same group have been identified and calibrated (case of >1 particle crossing shared detector in a group).
kStatusOK (0) : identification is, in principle at least, possible straight away kStatusOKafterSub (1) : identification is, in principle, possible after identification and subtraction of energy losses of other particles in the same group which have Status=0 kStatusOKafterShare (2) : the energy loss in the shared detector of the group must be shared (arbitrarily) between this and the other particle(s) with Status=2 kStatusStopFirstStage (3) : the particle has stopped in the first member of an identification telescope; a minimum Z could be estimated from the measured energy loss. (see KVDetector::FindZmin) kStatusPileupDE, (4) : only for filtered simulations: undetectable pile-up in DE detector kStatusPileupGhost (5) : only for filtered simulations: undetectable particle
Definition at line 177 of file KVReconstructedNucleus.h.
|
inline |
void SetDetector(int i, KVDetector *);
Return pointer to the detector in which this particle stopped
Definition at line 141 of file KVReconstructedNucleus.h.
|
inlinevirtual |
Return calculated energy loss in target of reconstructed nucleus (in MeV)
Definition at line 339 of file KVReconstructedNucleus.h.
|
virtual |
Try to identify this nucleus by calling the Identify() function of each ID telescope crossed by it, starting with the telescope where the particle stopped, in order
Reimplemented in KVINDRAReconNuc, and KVFAZIAReconNuc.
Definition at line 456 of file KVReconstructedNucleus.cpp.
Returns kTRUE if particle was detected in array with given name.
Definition at line 191 of file KVReconstructedNucleus.cpp.
default initialisation
Definition at line 18 of file KVReconstructedNucleus.cpp.
|
inlinevirtual |
Returns kTRUE for reconstructed nuclei whose mass number, A, was measured, not calculated
Definition at line 363 of file KVReconstructedNucleus.h.
|
inline |
Definition at line 292 of file KVReconstructedNucleus.h.
|
inline |
Definition at line 288 of file KVReconstructedNucleus.h.
|
inlinevirtual |
Returns kTRUE for reconstructed nuclei whose atomic number, Z, was measured, not calculated
Definition at line 357 of file KVReconstructedNucleus.h.
Reimplemented from TObject.
Definition at line 898 of file KVReconstructedNucleus.cpp.
|
protected |
Protected method, called when required to fill fDetList with pointers to the detectors whose names are stored in fDetNames. If gMultiDetArray=0x0, fDetList list will be empty.
Definition at line 735 of file KVReconstructedNucleus.cpp.
void KVReconstructedNucleus::ModifyReconstructionTrajectory | ( | const KVReconNucTrajectory * | t | ) |
this method modifies the reconstructed trajectory probably called during the identification coherency check
Definition at line 372 of file KVReconstructedNucleus.cpp.
Display nucleus parameters.
Reimplemented from KVNucleus.
Reimplemented in KVINDRAReconNuc, and KVFAZIAReconNuc.
Definition at line 214 of file KVReconstructedNucleus.cpp.
void KVReconstructedNucleus::PrintStatusString | ( | ) | const |
Definition at line 141 of file KVReconstructedNucleus.cpp.
|
protected |
Called by Streamer when reading in data The fDetNames string is used to associate the particle with its reconstruction trajectory
Definition at line 751 of file KVReconstructedNucleus.cpp.
|
virtual |
Reconstruction of a detected nucleus from the successive energy losses measured in a series of detectors/telescopes.
Starting from detector *kvd, collect information from all detectors placed directly in front of *kvd (kvd->GetAlignedDetectors()), these are the detectors the particle has passed through.
Each one is added to the particle's list (KVReconstructedNucleus::AddDetector), and, if it is not an unsegmented detector, it is marked as having been "analysed" (KVDetector::SetAnalysed) in order to stop it being considered as a starting point for another particle reconstruction.
Definition at line 411 of file KVReconstructedNucleus.cpp.
Change the particle's reconstruction trajectory to a different one starting from the same stopping detector (and therefore in the same group).
trajectory paths are written as "DET_1/DET_2/..."
Definition at line 788 of file KVReconstructedNucleus.cpp.
|
inline |
recalculate segmentation index of particle used by Identify() and KVGroup::AnalyseParticles
backwards compatibility for old data
Definition at line 165 of file KVReconstructedNucleus.h.
Call with yes=kTRUE for reconstructed nuclei whose mass number, A, was measured, not calculated
Definition at line 351 of file KVReconstructedNucleus.h.
Set value of parameter "ECODE"
Definition at line 244 of file KVReconstructedNucleus.h.
Set value of parameter "IDCODE"
Definition at line 233 of file KVReconstructedNucleus.h.
void KVReconstructedNucleus::SetIdentification | ( | KVIdentificationResult * | idr, |
KVIDTelescope * | idt | ||
) |
Set identification of nucleus from informations in identification result object The mass (A) information in KVIdentificationResult is only used if the mass was measured as part of the identification. Otherwise the nucleus' mass formula will be used to calculate A from the measured Z.
The identifying telescope is set to idt.
Definition at line 828 of file KVReconstructedNucleus.cpp.
|
inline |
Definition at line 84 of file KVReconstructedNucleus.h.
|
inline |
Definition at line 268 of file KVReconstructedNucleus.h.
|
inline |
When the "identification" state of the particle is set, we add 1 identified particle and subtract 1 unidentified particle from each detector in its list
Definition at line 256 of file KVReconstructedNucleus.h.
|
inline |
Definition at line 284 of file KVReconstructedNucleus.h.
|
inline |
When the "identification" state of the particle is reset, i.e. it becomes an "unidentified particle", we add 1 unidentified particle and subtract 1 identified particle from each detector in its list
Definition at line 272 of file KVReconstructedNucleus.h.
set segmentation index of particle used by Identify() and KVGroup::AnalyseParticles
Definition at line 159 of file KVReconstructedNucleus.h.
Definition at line 301 of file KVReconstructedNucleus.h.
Definition at line 297 of file KVReconstructedNucleus.h.
void KVReconstructedNucleus::SetReconstructionTrajectory | ( | const KVReconNucTrajectory * | t | ) |
Method called in initial reconstruction of particle.
Definition at line 385 of file KVReconstructedNucleus.cpp.
Definition at line 198 of file KVReconstructedNucleus.h.
Set energy loss in target (in MeV) of reconstructed nucleus
Definition at line 334 of file KVReconstructedNucleus.h.
Call with yes=kTRUE for reconstructed nuclei whose atomic number, Z, was measured, not calculated
Definition at line 345 of file KVReconstructedNucleus.h.
|
virtual |
Subtract the calculated energy loss of this particle from the measured energy loss of all detectors it passed through.
Definition at line 857 of file KVReconstructedNucleus.cpp.
|
protected |
status of particle after analysis of reconstructed event
Definition at line 50 of file KVReconstructedNucleus.h.
|
protected |
non-persistent list of pointers to detectors
Definition at line 37 of file KVReconstructedNucleus.h.
|
protected |
list of names of detectors through which particle passed
Definition at line 36 of file KVReconstructedNucleus.h.
|
protected |
results of every identification attempt made for this nucleus, in order of the ID telescopes used
Definition at line 55 of file KVReconstructedNucleus.h.
|
protected |
non-persistent pointer to identification telescope
Definition at line 39 of file KVReconstructedNucleus.h.
|
protected |
name of identification telescope which identified this particle (if any)
Definition at line 38 of file KVReconstructedNucleus.h.
|
protected |
number of segmented/independent detectors hit by particle
Definition at line 49 of file KVReconstructedNucleus.h.
|
protected |
A returned by identification routine.
Definition at line 52 of file KVReconstructedNucleus.h.
|
protected |
Z returned by identification routine.
Definition at line 51 of file KVReconstructedNucleus.h.
|
protected |
trajectory used to reconstruct particle
Definition at line 35 of file KVReconstructedNucleus.h.
|
protected |
calculated energy lost in target
Definition at line 53 of file KVReconstructedNucleus.h.