19 :
KVBase(
"KVGroupReconstructor",
"Reconstruction of particles in detector groups"),
20 fGroup(nullptr), fGrpEvent(nullptr)
403 TIter next(idt_list);
405 Int_t n_success_id = 0;
415 if (IDR->
IDOK) n_success_id++;
420 if (n_success_id < 1 &&
478 Int_t zmin =
d.GetStoppingDetector()->FindZmin(-1.,
d.GetMassFormula());
517 if (!
d.IsIdentified()) {
545 if (
d->IsIdentified() && !
d->IsCalibrated()) {
589 if (!array->
GetTarget() || !ion)
return 0.0;
ClassImp(KVPartitionList) void KVPartitionList
Initialisation.
Base class for KaliVeda framework.
const Char_t * GetType() const
static TPluginHandler * LoadPlugin(const Char_t *base, const Char_t *uri="0")
Base class for detector geometry description, interface to energy-loss calculations.
virtual Bool_t Fired(Option_t *opt="any") const
Path taken by particles through multidetector geometry.
KVGeoDetectorNode * GetNextNode() const
void IterateFrom(const KVGeoDetectorNode *node0=nullptr) const
Int_t GetNumberOfIdentifications() const
const KVSeqCollection * GetIDTelescopes() const
KVGeoDetectorNode * GetNodeInFront(const KVGeoDetectorNode *n) const
Information on relative positions of detectors & particle trajectories.
KVDetector * GetDetector() const
Int_t GetNTraj() const
Returns number of trajectories passing through this node.
Base class for particle reconstruction in one group of a detector array.
virtual KVReconstructedNucleus * ReconstructTrajectory(const KVGeoDNTrajectory *traj, const KVGeoDetectorNode *node)
KVReconstructedEvent * fGrpEvent
event containing particles reconstructed in this group
static bool fDoCalibration
KVIDTelescope * identifying_telescope
telescope which identified current particle
void ReconstructParticle(KVReconstructedNucleus *part, const KVGeoDNTrajectory *traj, const KVGeoDetectorNode *node)
KVGroup * GetGroup() const
std::unordered_map< std::string, KVIdentificationResult * > id_by_type
identification results by type for current particle
KVReconstructedEvent * GetEventFragment() const
virtual void CalibrateParticle(KVReconstructedNucleus *)
virtual void AddCoherencyParticles()
int nfireddets
number of fired detectors in group for current event
KVGroup * fGroup
the group where we are reconstructing
static bool fDoIdentification
void Calibrate()
Calculate and set energies of all identified but uncalibrated particles in event.
virtual void IdentifyParticle(KVReconstructedNucleus &PART)
virtual ~KVGroupReconstructor()
Destructor.
TString fPartSeedCond
condition for seeding reconstructed particles
Double_t GetTargetEnergyLossCorrection(KVReconstructedNucleus *ion)
void SetReconEventClass(TClass *c)
Instantiate event fragment object.
TString GetPartSeedCond() const
KVIdentificationResult partID
identification to be applied to current particle
Int_t GetNUnidentifiedInGroup()
KVGroupReconstructor()
Default constructor.
void TreatStatusStopFirstStage(KVReconstructedNucleus &)
virtual void PostReconstructionProcessing()
static KVGroupReconstructor * Factory(const TString &plugin="")
virtual void SetGroup(KVGroup *g)
std::vector< particle_to_add_from_coherency_analysis > coherency_particles
Group of detectors which can be treated independently of all others in array.
KVGeoStrucElement * GetArray() const
const KVGeoDNTrajectory * GetTrajectoryForReconstruction(const KVGeoDNTrajectory *t, const KVGeoDetectorNode *n) const
Base class for all detectors or associations of detectors in array which can identify charged particl...
virtual Bool_t IsReadyForID()
virtual Bool_t Identify(KVIdentificationResult *, Double_t x=-1., Double_t y=-1.)
Bool_t HasDetector(const KVDetector *d) const
Full result of one attempted particle identification.
Bool_t IDattempted
=kTRUE if identification was attempted
Bool_t IDOK
general quality of identification, =kTRUE if acceptable identification made
Bool_t Aident
= kTRUE if A of particle established
Double_t PID
= "real" Z if Zident==kTRUE and Aident==kFALSE, "real" A if Zident==Aident==kTRUE
Int_t Z
Z of particle found (if Zident==kTRUE)
Int_t IDcode
a general identification code for this type of identification
Bool_t Zident
=kTRUE if Z of particle established
Base class for describing the geometry of a detector array.
Double_t GetEnergy() const
void SetParameter(const Char_t *name, ValType value) const
Path through detector array used to reconstruct detected particle.
Physical event reconstructed from data measured with a detector array using implemented identificatio...
KVReconstructedNucleus * AddParticle()
Nuclei reconstructed from data measured by a detector array ,.
void SetReconstructionTrajectory(const KVReconNucTrajectory *t)
Method called in initial reconstruction of particle.
void SetNSegDet(Int_t seg)
KVIdentificationResult * GetIdentificationResult(Int_t i)
const KVReconNucTrajectory * GetReconstructionTrajectory() const
void SetIdentification(KVIdentificationResult *, KVIDTelescope *)
Bool_t IsIdentified() const
KVDetector * GetStoppingDetector() const
void SetDetector(int i, KVDetector *);
@ 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
KaliVeda extensions to ROOT collection classes.
virtual TObject * Last() const
virtual TObject * First() const
virtual Double_t GetParticleEIncFromERes(KVNucleus *, TVector3 *norm=0)
virtual Int_t GetEntries() const
virtual const char * GetName() const
Longptr_t ExecPlugin(int nargs, const T &... params)
const long double g
masses
Double_t Max(Double_t a, Double_t b)