KaliVeda
Toolkit for HIC analysis
|
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 33 of file KVReconstructedNucleus.h.
#include <KVReconstructedNucleus.h>
Public Types | |
enum | { kStatusOK , kStatusOKafterSub , kStatusOKafterShare , kStatusStopFirstStage , kStatusPileupDE , kStatusPileupGhost } |
status codes given to reconstructed particles by KVGroupReconstructor::AnalyseParticles More... | |
Public Types inherited from KVNucleus | |
enum | { kBetaMass , kVedaMass , kEALMass , kEALResMass , kEPAXMass } |
enum | { kLDModel , kEMPFunc , kELTON } |
enum | { kDefaultFormula , kItkis1998 , kHinde1987 , kViola1985 , kViola1966 } |
enum | { kNN , knn , kpp , knp } |
Public Types inherited from KVParticle | |
enum | { kIsOK = BIT(14) , kIsOKSet = BIT(15) , kIsDetected = BIT(16) } |
Public Types inherited from TLorentzVector | |
typedef Double_t | Scalar |
Public Types inherited from TObject | |
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 Public Member Functions inherited from KVNucleus | |
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. | |
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). | |
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). | |
static Double_t | u (void) |
Static Public Member Functions inherited from KVParticle | |
static Double_t | C () |
Static Public Member Functions inherited from TLorentzVector | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
Static Public Member Functions inherited from TObject | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
static Longptr_t | GetDtorOnly () |
static Bool_t | GetObjectStat () |
static void | SetDtorOnly (void *obj) |
static void | SetObjectStat (Bool_t stat) |
Private Types | |
enum | { kIsIdentified = BIT(18) , kIsCalibrated = BIT(19) , kCoherency = BIT(20) , kZMeasured = BIT(21) , kAMeasured = BIT(22) } |
Private Member Functions | |
void | MakeDetectorList () |
Private Attributes | |
Int_t | fAnalStatus |
status of particle after analysis of reconstructed event | |
KVHashList | fDetList |
non-persistent list of pointers to detectors | |
KVString | fDetNames |
list of names of detectors through which particle passed | |
TClonesArray | fIDResults |
results of every identification attempt made for this nucleus, in order of the ID telescopes used | |
KVIDTelescope * | fIDTelescope |
non-persistent pointer to identification telescope | |
KVString | fIDTelName |
name of identification telescope which identified this particle (if any) | |
Int_t | fNSegDet |
number of segmented/independent detectors hit by particle | |
Float_t | fRealA |
A returned by identification routine. | |
Float_t | fRealZ |
Z returned by identification routine. | |
const KVReconNucTrajectory * | fReconTraj |
trajectory used to reconstruct particle | |
Double_t | fTargetEnergyLoss |
calculated energy lost in target | |
Additional Inherited Members | |
Public Attributes inherited from TLorentzVector | |
kNUM_COORDINATES | |
kSIZE | |
kT | |
kX | |
kY | |
kZ | |
Public Attributes inherited from TObject | |
kBitMask | |
kCanDelete | |
kCannotPick | |
kHasUUID | |
kInconsistent | |
kInvalidObject | |
kIsOnHeap | |
kIsReferenced | |
kMustCleanup | |
kNoContextMenu | |
kNotDeleted | |
kObjInCanvas | |
kOverwrite | |
kSingleKey | |
kWriteDelete | |
kZombie | |
Static Public Attributes inherited from KVNucleus | |
static Double_t | e2 = KVNucleus::hbar / 137.035999074 |
e^2/(4.pi.epsilon_0) in MeV.fm | |
static Double_t | hbar = TMath::Hbarcgs() * TMath::Ccgs() / TMath::Qe() |
hbar*c in MeV.fm | |
static Double_t | kAMU = 9.31494043e02 |
atomic mass unit in MeV | |
static Double_t | kMe = 0.510998 |
electron mass in MeV/c2 | |
Protected Member Functions inherited from TObject | |
virtual void | DoError (int level, const char *location, const char *fmt, va_list va) const |
void | MakeZombie () |
Protected Attributes inherited from TObject | |
kOnlyPrepStep | |
|
private |
Enumerator | |
---|---|
kIsIdentified | |
kIsCalibrated | |
kCoherency | |
kZMeasured | |
kAMeasured |
Definition at line 42 of file KVReconstructedNucleus.h.
anonymous enum |
status codes given to reconstructed particles by KVGroupReconstructor::AnalyseParticles
Definition at line 64 of file KVReconstructedNucleus.h.
KVReconstructedNucleus::KVReconstructedNucleus | ( | ) |
default ctor.
Definition at line 40 of file KVReconstructedNucleus.cpp.
KVReconstructedNucleus::KVReconstructedNucleus | ( | const KVReconstructedNucleus & | obj | ) |
copy ctor
Definition at line 51 of file KVReconstructedNucleus.cpp.
|
inlinevirtual |
Definition at line 79 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 344 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 521 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 KVFAZIAReconNuc, and KVINDRAReconNuc.
Definition at line 693 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 KVFAZIAReconNuc, and KVINDRAReconNuc.
Definition at line 323 of file KVReconstructedNucleus.cpp.
Copy this to obj
Reimplemented from KVNucleus.
Reimplemented in KVFAZIAReconNuc, and KVINDRAReconNuc.
Definition at line 262 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 300 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 633 of file KVReconstructedNucleus.cpp.
TString KVReconstructedNucleus::GetArrayName | ( | ) | const |
Returns name of array particle was detected in (if known)
Definition at line 200 of file KVReconstructedNucleus.cpp.
|
inline |
Return detector with given label on particle's reconstruction trajectory
backwards compatibility ?
Definition at line 108 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 116 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 94 of file KVReconstructedNucleus.h.
|
inline |
Definition at line 132 of file KVReconstructedNucleus.h.
|
inlinevirtual |
Return value of parameter "ECODE" If no value set, returns -1
Reimplemented in KVINDRAReconNuc.
Definition at line 250 of file KVReconstructedNucleus.h.
|
inline |
Return pointer to group in which the particle is detected
Definition at line 205 of file KVReconstructedNucleus.h.
|
inlinevirtual |
Return value of parameter "IDCODE" If no value set, returns -1
Reimplemented in KVINDRAReconNuc.
Definition at line 239 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 408 of file KVReconstructedNucleus.h.
|
inline |
Definition at line 445 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 370 of file KVReconstructedNucleus.h.
|
inline |
Definition at line 441 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 428 of file KVReconstructedNucleus.h.
|
inline |
Definition at line 449 of file KVReconstructedNucleus.h.
|
inline |
Definition at line 229 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 216 of file KVReconstructedNucleus.h.
|
inline |
Definition at line 136 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 455 of file KVReconstructedNucleus.h.
|
inline |
return segmentation index of particle used by Identify() and KVGroup::AnalyseParticles
Definition at line 154 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 399 of file KVReconstructedNucleus.h.
|
inline |
Number of detectors on reconstruction trajectory
backwards compatibility for old data
Definition at line 147 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 471 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 326 of file KVReconstructedNucleus.h.
|
inline |
Definition at line 319 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 306 of file KVReconstructedNucleus.h.
|
inline |
Return pointer to path through detectors of array used to reconstruct this particle.
Definition at line 482 of file KVReconstructedNucleus.h.
|
inline |
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 178 of file KVReconstructedNucleus.h.
|
inline |
void SetDetector(int i, KVDetector *);
Return pointer to the detector in which this particle stopped
Definition at line 142 of file KVReconstructedNucleus.h.
|
inlinevirtual |
Return calculated energy loss in target of reconstructed nucleus (in MeV)
Definition at line 340 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 KVFAZIAReconNuc, and KVINDRAReconNuc.
Definition at line 454 of file KVReconstructedNucleus.cpp.
Returns kTRUE if particle was detected in array with given name.
Definition at line 189 of file KVReconstructedNucleus.cpp.
void KVReconstructedNucleus::init | ( | ) |
default initialisation
Definition at line 16 of file KVReconstructedNucleus.cpp.
|
inlinevirtual |
Returns kTRUE for reconstructed nuclei whose mass number, A, was measured, not calculated
Definition at line 364 of file KVReconstructedNucleus.h.
|
inline |
Definition at line 293 of file KVReconstructedNucleus.h.
|
inline |
Definition at line 289 of file KVReconstructedNucleus.h.
|
inlinevirtual |
Returns kTRUE for reconstructed nuclei whose atomic number, Z, was measured, not calculated
Definition at line 358 of file KVReconstructedNucleus.h.
Reimplemented from KVParticle.
Definition at line 900 of file KVReconstructedNucleus.cpp.
|
private |
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 733 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 370 of file KVReconstructedNucleus.cpp.
Reimplemented from KVNucleus.
Reimplemented in KVFAZIAReconNuc, and KVINDRAReconNuc.
Definition at line 212 of file KVReconstructedNucleus.cpp.
void KVReconstructedNucleus::PrintStatusString | ( | ) | const |
Definition at line 139 of file KVReconstructedNucleus.cpp.
void KVReconstructedNucleus::RebuildReconTraj | ( | bool | in_streamer = true | ) |
Called by Streamer when reading in data The fDetNames string is used to associate the particle with its reconstruction trajectory
in_streamer=true: being called from KVReconstructedNucleus::Streamer()
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 409 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 790 of file KVReconstructedNucleus.cpp.
|
inline |
recalculate segmentation index of particle used by Identify() and KVGroup::AnalyseParticles
backwards compatibility for old data
Definition at line 166 of file KVReconstructedNucleus.h.
Call with yes=kTRUE for reconstructed nuclei whose mass number, A, was measured, not calculated
Definition at line 352 of file KVReconstructedNucleus.h.
Set value of parameter "ECODE"
Reimplemented in KVINDRAReconNuc.
Definition at line 245 of file KVReconstructedNucleus.h.
Set value of parameter "IDCODE"
Reimplemented in KVINDRAReconNuc.
Definition at line 234 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 830 of file KVReconstructedNucleus.cpp.
|
inline |
Definition at line 85 of file KVReconstructedNucleus.h.
|
inline |
Definition at line 269 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 257 of file KVReconstructedNucleus.h.
|
inline |
Definition at line 285 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 273 of file KVReconstructedNucleus.h.
set segmentation index of particle used by Identify() and KVGroup::AnalyseParticles
Definition at line 160 of file KVReconstructedNucleus.h.
Definition at line 302 of file KVReconstructedNucleus.h.
Definition at line 298 of file KVReconstructedNucleus.h.
void KVReconstructedNucleus::SetReconstructionTrajectory | ( | const KVReconNucTrajectory * | t | ) |
Method called in initial reconstruction of particle.
Definition at line 383 of file KVReconstructedNucleus.cpp.
Definition at line 199 of file KVReconstructedNucleus.h.
Set energy loss in target (in MeV) of reconstructed nucleus
Definition at line 335 of file KVReconstructedNucleus.h.
Call with yes=kTRUE for reconstructed nuclei whose atomic number, Z, was measured, not calculated
Definition at line 346 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 859 of file KVReconstructedNucleus.cpp.
|
private |
status of particle after analysis of reconstructed event
Definition at line 51 of file KVReconstructedNucleus.h.
|
private |
non-persistent list of pointers to detectors
Definition at line 38 of file KVReconstructedNucleus.h.
|
private |
list of names of detectors through which particle passed
Definition at line 37 of file KVReconstructedNucleus.h.
|
private |
results of every identification attempt made for this nucleus, in order of the ID telescopes used
Definition at line 56 of file KVReconstructedNucleus.h.
|
private |
non-persistent pointer to identification telescope
Definition at line 40 of file KVReconstructedNucleus.h.
|
private |
name of identification telescope which identified this particle (if any)
Definition at line 39 of file KVReconstructedNucleus.h.
|
private |
number of segmented/independent detectors hit by particle
Definition at line 50 of file KVReconstructedNucleus.h.
|
private |
A returned by identification routine.
Definition at line 53 of file KVReconstructedNucleus.h.
|
private |
Z returned by identification routine.
Definition at line 52 of file KVReconstructedNucleus.h.
|
private |
trajectory used to reconstruct particle
Definition at line 36 of file KVReconstructedNucleus.h.
|
private |
calculated energy lost in target
Definition at line 54 of file KVReconstructedNucleus.h.