1 #ifndef KVRECONSTRUCTEDNUCLEUS_H
2 #define KVRECONSTRUCTEDNUCLEUS_H
5 #include "KVHashList.h"
7 #include "KVDetector.h"
8 #include "KVIDTelescope.h"
9 #include "KVIdentificationResult.h"
11 #include "TClonesArray.h"
12 #include "KVReconNucTrajectory.h"
43 kIsIdentified = BIT(18),
44 kIsCalibrated = BIT(19),
54 Double_t fTargetEnergyLoss;
56 TClonesArray fIDResults;
58 void RebuildReconTraj();
79 void Print(Option_t* option =
"")
const override;
80 void Clear(Option_t* option =
"")
override;
87 fIDTelName = i->GetName();
95 return fReconTraj ? fReconTraj->
GetDetector(label) :
nullptr;
112 return fDetNames.Data();
116 return fIDTelName.Data();
127 return fReconTraj ? fReconTraj->
GetN() : 0;
163 void Copy(TObject&)
const override;
205 SetBit(kIsIdentified);
210 SetBit(kIsCalibrated);
216 ResetBit(kIsIdentified);
221 ResetBit(kIsCalibrated);
225 return TestBit(kIsIdentified);
229 return TestBit(kIsCalibrated);
250 return (Float_t)
GetZ();
258 return (Float_t)
GetA();
272 fTargetEnergyLoss = e;
277 return fTargetEnergyLoss;
284 SetBit(kZMeasured, yes);
290 SetBit(kAMeasured, yes);
296 return TestBit(kZMeasured);
302 return TestBit(kAMeasured);
334 return fIDResults.GetEntries();
348 for (
int i = 1; i <= n; i++) {
367 if (!idt)
return nullptr;
420 Bool_t
InArray(
const TString&)
const;
422 void ls(Option_t* =
"")
const override;
virtual const Char_t * GetType() const
virtual void SetNumber(UInt_t num)
Base class for detector geometry description, interface to energy-loss calculations.
void AddUnidentifiedParticle(int modify_identified=-1) const
void AddIdentifiedParticle(int modify_unidentified=-1) const
const KVSeqCollection * GetIDTelescopes() const
KVGeoDetectorNode * GetNodeAt(Int_t i) const
KVDetector * GetDetector() const
Group of detectors which can be treated independently of all others in array.
KVSeqCollection * GetParticles()
Extended version of ROOT THashList.
Base class for all detectors or associations of detectors in array which can identify charged particl...
Full result of one attempted particle identification.
const Char_t * GetIDType() const
Int_t GetIntValue(const Char_t *name) const
void SetValue(const Char_t *name, value_type value)
Description of properties and kinematics of atomic nuclei.
Int_t GetZ() const
Return the number of proton / atomic number.
KVNameValueList * GetParameters() const
Path through detector array used to reconstruct detected particle.
KVDetector * GetDetector(const TString &label) const
Nuclei reconstructed from data measured by a detector array .
virtual void SetIDCode(UShort_t s)
void ls(Option_t *="") const override
KVDetector * GetDetector(const TString &label) const
void PrintStatusString() const
virtual Bool_t IsZMeasured() const
virtual void SetAMeasured(Bool_t yes=kTRUE)
const Char_t * GetIDtelNames() const
void SetReconstructionTrajectory(const KVReconNucTrajectory *t)
Method called in initial reconstruction of particle.
virtual Double_t GetTargetEnergyLoss() const
void CopyAndMoveReferences(const KVReconstructedNucleus *)
@ kStatusOKafterShare
of energy losses of other particles in the same group which have Status=0
@ kStatusStopFirstStage
(arbitrarily) between this and the other particle(s) with Status=2
@ kStatusPileupDE
telescope; a minimum Z could be estimated from the measured energy loss.
Bool_t InArray(const TString &) const
Returns kTRUE if particle was detected in array with given name.
virtual Int_t GetECode() const
Int_t GetNumberOfIdentificationResults() const
Bool_t IsCalibrated() const
KVIdentificationResult * GetIdentificationResult(Int_t i)
KVIdentificationResult * GetIdentificationResult(Int_t i) const
const KVReconNucTrajectory * GetReconstructionTrajectory() const
void SetIdentification(KVIdentificationResult *, KVIDTelescope *)
virtual ~KVReconstructedNucleus()
static UInt_t GetNUnidentifiedInGroup(KVGroup *grp)
KVReconstructedNucleus()
default ctor.
KVIdentificationResult * GetIdentificationResult(KVIDTelescope *idt) const
void Copy(TObject &) const override
Bool_t IsIdentified() const
void Clear(Option_t *option="") override
virtual Int_t GetIDCode() const
const KVSeqCollection * GetIDTelescopes() const
KVIdentificationResult * GetIdentificationResult(const Char_t *idtype)
KVDetector * GetStoppingDetector() const
virtual void SetTargetEnergyLoss(Double_t e)
void ModifyReconstructionTrajectory(const KVReconNucTrajectory *t)
virtual void GetAnglesFromReconstructionTrajectory(Option_t *opt="random")
static UInt_t GetNIdentifiedInGroup(KVGroup *grp)
void init()
default initialisation
TString GetArrayName() const
Returns name of array particle was detected in (if known)
void Print(Option_t *option="") const override
void SetRealZ(Float_t zz)
KVDetector * GetDetector(int i) const
virtual void SetZMeasured(Bool_t yes=kTRUE)
void ReplaceReconTraj(const TString &traj_name)
virtual Float_t GetPID() const
KVIdentificationResult * GetIdentificationResult(KVIDTelescope *idt)
KVIDTelescope * GetIdentifyingTelescope() const
KVGroup * GetGroup() const
KVIdentificationResult * GetIdentificationResult(const Char_t *idtype) const
void SetIdentifyingTelescope(KVIDTelescope *i)
virtual Bool_t IsAMeasured() const
virtual void SetECode(UChar_t s)
const Char_t * GetDetectorNames() const
KaliVeda extensions to ROOT collection classes.
Extension of ROOT TString class which allows backwards compatibility with ROOT v3....