KaliVeda
Toolkit for HIC analysis
Loading...
Searching...
No Matches
KVGroupReconstructor.h
1#ifndef __KVGROUPRECONSTRUCTOR_H
2#define __KVGROUPRECONSTRUCTOR_H
3
4#include "KVBase.h"
5#include "KVGroup.h"
6#include "KVReconstructedEvent.h"
7#ifdef WITH_CPP11
8#include <unordered_map>
9#else
10#include <map>
11#endif
12#include <string>
13
31
32 static bool fDoIdentification;
33 static bool fDoCalibration;
34
38protected:
39 mutable int nfireddets;
42 std::unordered_map<std::string, KVIdentificationResult*> id_by_type;
43
46 virtual void PostReconstructionProcessing();
49 {
50 AbstractMethod("CalibrateCoherencyParticle(KVReconstructedNucleus*)");
51 }
53 {
55 PART.SetIsCalibrated();
56 PART.SetECode(code);
57 }
58
61 {
62 return fPartSeedCond;
63 }
65
78 std::vector<particle_to_add_from_coherency_analysis> coherency_particles;
79 virtual void AddCoherencyParticles() {};
80
81public:
83 virtual ~KVGroupReconstructor();
84
86 int GetNFiredDets() const
87 {
88 return nfireddets;
89 }
90
92 {
93 return fGrpEvent;
94 }
95 virtual void SetGroup(KVGroup* g);
97 {
98 return fGroup;
99 }
100
101 static KVGroupReconstructor* Factory(const TString& plugin = "");
102
103 void Process();
104 void Reconstruct();
105 virtual void Identify();
106 void Calibrate();
108 {
109 AbstractMethod("CalibrateParticle(KVReconstructedNucleus*)");
110 }
111
112 void AnalyseParticles();
114 {
116 Int_t n = 0;
117 if (GetEventFragment()->GetMult()) {
118 for (KVReconstructedEvent::Iterator it = GetEventFragment()->begin(); it != GetEventFragment()->end(); ++it) {
119 KVReconstructedNucleus& nuc = it.get_reference();
120 n += (Int_t) nuc.IsIdentified();
121 }
122 }
123 return n;
124 }
126 {
128 return (GetEventFragment()->GetMult() - GetNIdentifiedInGroup());
129 }
130 static void SetDoIdentification(bool on = kTRUE)
131 {
134 }
135 static void SetDoCalibration(bool on = kTRUE)
136 {
139 }
140
141 ClassDef(KVGroupReconstructor, 0) //Base class for handling event reconstruction in detector groups
142};
143
144#endif
int Int_t
unsigned short UShort_t
double Double_t
#define ClassDef(name, id)
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void on
Base class for KaliVeda framework.
Definition KVBase.h:142
Path taken by particles through multidetector geometry.
Information on relative positions of detectors & particle trajectories.
Base class for particle reconstruction in one group of a detector array.
virtual KVReconstructedNucleus * ReconstructTrajectory(const KVGeoDNTrajectory *traj, const KVGeoDetectorNode *node)
KVGroup * GetGroup() const
KVReconstructedEvent * fGrpEvent
event containing particles reconstructed in this group
KVIDTelescope * identifying_telescope
telescope which identified current particle
void ReconstructParticle(KVReconstructedNucleus *part, const KVGeoDNTrajectory *traj, const KVGeoDetectorNode *node)
std::unordered_map< std::string, KVIdentificationResult * > id_by_type
identification results by type for current particle
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
void Calibrate()
Calculate and set energies of all identified but uncalibrated particles in event.
static void SetDoCalibration(bool on=kTRUE)
virtual ~KVGroupReconstructor()
Destructor.
KVReconstructedEvent * GetEventFragment() const
TString fPartSeedCond
condition for seeding reconstructed particles
Double_t GetTargetEnergyLossCorrection(KVReconstructedNucleus *ion)
void SetCalibrationStatus(KVReconstructedNucleus &PART, UShort_t code)
virtual void IdentifyParticle(KVReconstructedNucleus &)
static void SetDoIdentification(bool on=kTRUE)
virtual void CalibrateCoherencyParticle(KVReconstructedNucleus *)
void SetReconEventClass(TClass *c)
Instantiate event fragment object.
TString GetPartSeedCond() const
KVIdentificationResult partID
identification to be applied to current particle
KVGroupReconstructor()
Default constructor.
void TreatStatusStopFirstStage(KVReconstructedNucleus &)
virtual void PostReconstructionProcessing()
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.
Definition KVGroup.h:20
Base class for all detectors or associations of detectors in array which can identify charged particl...
Full result of one attempted particle identification.
Event containing KVReconstructedNucleus nuclei reconstructed from hits in detectors.
Nuclei reconstructed from data measured by a detector array .
virtual void SetECode(UChar_t s)
Iterator end() const
void AbstractMethod(const char *method) const
const Int_t n
informations required to add a particle to the event which is revealed by an inconsistency between th...
Int_t max_id_result_index
last KVIdentificationResult in original_particle's list
Int_t first_id_result_to_copy
number of KVIdentificationResult (in original_particle's list) corresponding to identification of the...
KVIDTelescope * identifying_telescope
telescope which identified current particle
KVGeoDNTrajectory * stopping_trajectory
trajectory on which new particle stopped
KVReconstructedNucleus * original_particle
particle whose identification/calibration revealed presence of pile-up
KVGeoDetectorNode * stopping_detector_node
detector node in which new particle stopped