KaliVeda
1.12/06
Heavy-Ion Analysis Toolkit
|
Base class for particle reconstruction in one group of a detector array.
KVGroupReconstructor is the basic working unit of event reconstruction. A KVEventReconstructor will use many KVGroupReconstructor objects in order to reconstruct an event from data detected by the array (let us recall that a group of detectors is the largest part of any array which can be treated independently of all other detectors).
Daughter classes of KVGroupReconstructor can be specialised for event reconstruction in specific arrays (or even specific parts of specific arrays).
Definition at line 29 of file KVGroupReconstructor.h.
Classes | |
struct | particle_to_add_from_coherency_analysis |
informations required to add a particle to the event which is revealed by an inconsistency between the different identifications for an existing particle More... | |
Public Member Functions | |
KVGroupReconstructor () | |
Default constructor. More... | |
virtual | ~KVGroupReconstructor () |
Destructor. More... | |
void | AnalyseParticles () |
void | Calibrate () |
Calculate and set energies of all identified but uncalibrated particles in event. More... | |
KVReconstructedEvent * | GetEventFragment () const |
KVGroup * | GetGroup () const |
int | GetNFiredDets () const |
Int_t | GetNIdentifiedInGroup () |
Int_t | GetNUnidentifiedInGroup () |
virtual void | Identify () |
void | Process () |
void | Reconstruct () |
virtual void | SetGroup (KVGroup *g) |
void | SetReconEventClass (TClass *c) |
Instantiate event fragment object. More... | |
Public Member Functions inherited from KVBase | |
KVBase () | |
Default constructor. More... | |
KVBase (const Char_t *name, const Char_t *title="") | |
Ctor for object with given name and type. More... | |
KVBase (const KVBase &) | |
copy ctor More... | |
virtual | ~ KVBase () |
virtual void | Clear (Option_t *opt="") |
Clear object properties : name, type/title, number, label. More... | |
virtual void | Copy (TObject &) const |
Make a copy of this object. More... | |
const Char_t * | GetLabel () const |
UInt_t | GetNumber () const |
UInt_t | GetNumberOfObjects () const |
virtual TObject * | GetObject () const |
const Char_t * | GetType () const |
Bool_t | HasLabel () const |
virtual Bool_t | IsCalled (const Char_t *name) const |
Bool_t | IsLabelled (const Char_t *l) const |
virtual Bool_t | IsType (const Char_t *typ) const |
virtual void | List () |
KVBase & | operator= (const KVBase &) |
copy assignment operator More... | |
virtual void | Print (Option_t *option="") const |
Double_t | ProtectedGetX (const TF1 *func, Double_t val, int &status, Double_t xmin=0.0, Double_t xmax=0.0) const |
void | SetLabel (const Char_t *lab) |
virtual void | SetNumber (UInt_t num) |
virtual void | SetType (const Char_t *str) |
Public Member Functions inherited from TNamed | |
TNamed () | |
TNamed (const char *name, const char *title) | |
TNamed (const TNamed &named) | |
TNamed (const TString &name, const TString &title) | |
virtual | ~TNamed () |
virtual TObject * | Clone (const char *newname="") const |
virtual Int_t | Compare (const TObject *obj) const |
virtual void | FillBuffer (char *&buffer) |
virtual const char * | GetName () const |
virtual const char * | GetTitle () const |
virtual ULong_t | Hash () const |
virtual Bool_t | IsSortable () const |
virtual void | ls (Option_t *option="") const |
TNamed & | operator= (const TNamed &rhs) |
virtual void | SetName (const char *name) |
virtual void | SetNameTitle (const char *name, const char *title) |
virtual void | SetTitle (const char *title="") |
virtual Int_t | Sizeof () const |
Public Member Functions inherited from TObject | |
TObject () | |
TObject (const TObject &object) | |
virtual | ~TObject () |
void | AbstractMethod (const char *method) const |
virtual void | AppendPad (Option_t *option="") |
virtual void | Browse (TBrowser *b) |
ULong_t | CheckedHash () |
virtual const char * | ClassName () const |
virtual void | Delete (Option_t *option="") |
virtual Int_t | DistancetoPrimitive (Int_t px, Int_t py) |
virtual void | Draw (Option_t *option="") |
virtual void | DrawClass () const |
virtual TObject * | DrawClone (Option_t *option="") const |
virtual void | Dump () const |
virtual void | Error (const char *method, const char *msgfmt,...) const |
virtual void | Execute (const char *method, const char *params, Int_t *error=0) |
virtual void | Execute (TMethod *method, TObjArray *params, Int_t *error=0) |
virtual void | ExecuteEvent (Int_t event, Int_t px, Int_t py) |
virtual void | Fatal (const char *method, const char *msgfmt,...) const |
virtual TObject * | FindObject (const char *name) const |
virtual TObject * | FindObject (const TObject *obj) const |
virtual Option_t * | GetDrawOption () const |
virtual const char * | GetIconName () const |
virtual char * | GetObjectInfo (Int_t px, Int_t py) const |
virtual Option_t * | GetOption () const |
virtual UInt_t | GetUniqueID () const |
virtual Bool_t | HandleTimer (TTimer *timer) |
Bool_t | HasInconsistentHash () const |
virtual void | Info (const char *method, const char *msgfmt,...) const |
virtual Bool_t | InheritsFrom (const char *classname) const |
virtual Bool_t | InheritsFrom (const TClass *cl) const |
virtual void | Inspect () const |
void | InvertBit (UInt_t f) |
virtual Bool_t | IsEqual (const TObject *obj) const |
virtual Bool_t | IsFolder () const |
R__ALWAYS_INLINE Bool_t | IsOnHeap () const |
R__ALWAYS_INLINE Bool_t | IsZombie () const |
void | MayNotUse (const char *method) const |
virtual Bool_t | Notify () |
void | Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const |
void | operator delete (void *ptr) |
void | operator delete[] (void *ptr) |
void * | operator new (size_t sz) |
void * | operator new (size_t sz, void *vp) |
void * | operator new[] (size_t sz) |
void * | operator new[] (size_t sz, void *vp) |
TObject & | operator= (const TObject &rhs) |
virtual void | Paint (Option_t *option="") |
virtual void | Pop () |
virtual Int_t | Read (const char *name) |
virtual void | RecursiveRemove (TObject *obj) |
void | ResetBit (UInt_t f) |
virtual void | SaveAs (const char *filename="", Option_t *option="") const |
virtual void | SavePrimitive (std::ostream &out, Option_t *option="") |
void | SetBit (UInt_t f) |
void | SetBit (UInt_t f, Bool_t set) |
virtual void | SetDrawOption (Option_t *option="") |
virtual void | SetUniqueID (UInt_t uid) |
virtual void | SysError (const char *method, const char *msgfmt,...) const |
R__ALWAYS_INLINE Bool_t | TestBit (UInt_t f) const |
Int_t | TestBits (UInt_t f) const |
virtual void | UseCurrentStyle () |
virtual void | Warning (const char *method, const char *msgfmt,...) const |
virtual Int_t | Write (const char *name=0, Int_t option=0, Int_t bufsize=0) |
virtual Int_t | Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const |
Static Public Member Functions | |
static KVGroupReconstructor * | Factory (const TString &plugin="") |
static void | SetDoCalibration (bool on=kTRUE) |
static void | SetDoIdentification (bool on=kTRUE) |
Static Public Member Functions inherited from KVBase | |
static Bool_t | AreEqual (Double_t x, Double_t y, Long64_t maxdif=1) |
Comparison between two 64-bit floating-point values. More... | |
static void | BackupFileWithDate (const Char_t *path) |
static void | CombineFiles (const Char_t *file1, const Char_t *file2, const Char_t *newfilename, Bool_t keep=kTRUE) |
static void | Deprecated (const char *method, const char *advice) |
static Bool_t | FindClassSourceFiles (const Char_t *class_name, KVString &imp_file, KVString &dec_file, const Char_t *dir_name=".") |
static Bool_t | FindExecutable (TString &exec, const Char_t *path="$(PATH)") |
static const Char_t * | FindFile (const Char_t *search, TString &wfil) |
static const Char_t * | GetBINDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetDATABASEFilePath () |
static const Char_t * | GetDATADIRFilePath (const Char_t *namefile="") |
static Bool_t | GetDataSetEnv (const Char_t *dataset, const Char_t *type, Bool_t defval) |
static const Char_t * | GetDataSetEnv (const Char_t *dataset, const Char_t *type, const Char_t *defval) |
static Double_t | GetDataSetEnv (const Char_t *dataset, const Char_t *type, Double_t defval) |
static const Char_t * | GetETCDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetExampleFilePath (const Char_t *library, const Char_t *namefile) |
Return full path to example file for given library (="KVMultiDet", "BackTrack", etc.) More... | |
static const Char_t * | GetINCDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetKVBuildDate () |
Returns KaliVeda build date. More... | |
static const Char_t * | GetKVBuildDir () |
Returns top-level directory used for build. More... | |
static const Char_t * | GetKVBuildTime () |
Returns KaliVeda build date. More... | |
static const Char_t * | GetKVBuildType () |
Returns KaliVeda build type (cmake build: Release, Debug, RelWithDebInfo, ...) More... | |
static const Char_t * | GetKVBuildUser () |
Returns username of person who performed build. More... | |
static const Char_t * | GetKVSourceDir () |
Returns top-level directory of source tree used for build. More... | |
static const Char_t * | GetKVVersion () |
Returns KaliVeda version string. More... | |
static const Char_t * | GetLIBDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetListOfPlugins (const Char_t *base) |
static const Char_t * | GetListOfPluginURIs (const Char_t *base) |
static const Char_t * | GetPluginURI (const Char_t *base, const Char_t *plugin) |
static void | GetTempFileName (TString &base) |
static const Char_t * | GetTEMPLATEDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetWORKDIRFilePath (const Char_t *namefile="") |
static const Char_t * | gitBranch () |
Returns git branch of sources. More... | |
static const Char_t * | gitCommit () |
Returns last git commit of sources. More... | |
static void | InitEnvironment () |
static bool | is_gnuinstall () |
static Bool_t | IsThisAPlugin (const TString &uri, TString &base) |
static TPluginHandler * | LoadPlugin (const Char_t *base, const Char_t *uri="0") |
static Bool_t | OpenContextMenu (const char *method, TObject *obj, const char *alt_method_name="") |
static void | OpenTempFile (TString &base, std::ofstream &fp) |
static void | PrintSplashScreen () |
Prints welcome message and infos on version etc. More... | |
static Bool_t | SearchAndOpenKVFile (const Char_t *name, std::ifstream &file, const Char_t *kvsubdir="", KVLockfile *locks=0) |
static Bool_t | SearchAndOpenKVFile (const Char_t *name, std::ofstream &file, const Char_t *kvsubdir="", KVLockfile *locks=0) |
static Bool_t | SearchKVFile (const Char_t *name, TString &fullpath, const Char_t *kvsubdir="") |
static const Char_t * | WorkingDirectory () |
Static Public Member Functions inherited from TObject | |
static Longptr_t | GetDtorOnly () |
static Bool_t | GetObjectStat () |
static void | SetDtorOnly (void *obj) |
static void | SetObjectStat (Bool_t stat) |
Protected Member Functions | |
virtual void | AddCoherencyParticles () |
virtual void | CalibrateCoherencyParticle (KVReconstructedNucleus *) |
virtual void | CalibrateParticle (KVReconstructedNucleus *) |
TString | GetPartSeedCond () const |
Double_t | GetTargetEnergyLossCorrection (KVReconstructedNucleus *ion) |
virtual void | IdentifyParticle (KVReconstructedNucleus &PART) |
virtual void | PostReconstructionProcessing () |
void | ReconstructParticle (KVReconstructedNucleus *part, const KVGeoDNTrajectory *traj, const KVGeoDetectorNode *node) |
virtual KVReconstructedNucleus * | ReconstructTrajectory (const KVGeoDNTrajectory *traj, const KVGeoDetectorNode *node) |
void | SetCalibrationStatus (KVReconstructedNucleus &PART, UShort_t code) |
void | TreatStatusStopFirstStage (KVReconstructedNucleus &) |
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 | |
std::vector< particle_to_add_from_coherency_analysis > | coherency_particles |
std::unordered_map< std::string, KVIdentificationResult * > | id_by_type |
identification results by type for current particle More... | |
KVIDTelescope * | identifying_telescope |
telescope which identified current particle More... | |
int | nfireddets |
number of fired detectors in group for current event More... | |
KVIdentificationResult | partID |
identification to be applied to current particle More... | |
Protected Attributes inherited from KVBase | |
TString | fLabel |
label for the object More... | |
Protected Attributes inherited from TNamed | |
TString | fName |
TString | fTitle |
Protected Attributes inherited from TObject | |
kOnlyPrepStep | |
Private Attributes | |
KVGroup * | fGroup |
the group where we are reconstructing More... | |
KVReconstructedEvent * | fGrpEvent |
event containing particles reconstructed in this group More... | |
TString | fPartSeedCond |
condition for seeding reconstructed particles More... | |
Static Private Attributes | |
static bool | fDoCalibration = kTRUE |
static bool | fDoIdentification = kTRUE |
Additional Inherited Members | |
Public Types inherited from KVBase | |
enum | EKaliVedaBits { kIsKaliVedaObject = BIT(23) } |
Public Types inherited from TObject | |
enum | EDeprecatedStatusBits |
enum | EStatusBits |
Public Attributes inherited from TObject | |
kBitMask | |
kCanDelete | |
kCannotPick | |
kHasUUID | |
kInconsistent | |
kInvalidObject | |
kIsOnHeap | |
kIsReferenced | |
kMustCleanup | |
kNoContextMenu | |
kNotDeleted | |
kObjInCanvas | |
kOverwrite | |
kSingleKey | |
kWriteDelete | |
kZombie | |
#include <KVGroupReconstructor.h>
KVGroupReconstructor::KVGroupReconstructor | ( | ) |
Default constructor.
Definition at line 18 of file KVGroupReconstructor.cpp.
|
virtual |
Destructor.
Definition at line 31 of file KVGroupReconstructor.cpp.
|
inlineprotectedvirtual |
Reimplemented in KVFAZIAGroupReconstructor.
Definition at line 82 of file KVGroupReconstructor.h.
void KVGroupReconstructor::AnalyseParticles | ( | ) |
Analyse and set status of reconstructed particles in group, to decide whether they can be identified and further treated straight away.
If there is more than one reconstructed particle in the group on different trajectories which have a detector in common, then it may be necessary to identify one of the particles before the others in order to try to subtract its contribution from the common detector and allow the identification of the other particles.
Definition at line 272 of file KVGroupReconstructor.cpp.
void KVGroupReconstructor::Calibrate | ( | ) |
Calculate and set energies of all identified but uncalibrated particles in event.
Definition at line 537 of file KVGroupReconstructor.cpp.
|
inlineprotectedvirtual |
Reimplemented in KVFAZIAGroupReconstructor, and KVINDRAGroupReconstructor.
Definition at line 51 of file KVGroupReconstructor.h.
|
inlineprotectedvirtual |
Reimplemented in KVINDRAGroupReconstructor, and KVFAZIAGroupReconstructor.
Definition at line 47 of file KVGroupReconstructor.h.
|
static |
Create a new object of a class derived from KVGroupReconstructor defined by a plugin
If plugin="" this is just a new KVGroupReconstructor instance
Definition at line 73 of file KVGroupReconstructor.cpp.
|
inline |
Definition at line 94 of file KVGroupReconstructor.h.
|
inline |
Definition at line 99 of file KVGroupReconstructor.h.
|
inline |
Definition at line 89 of file KVGroupReconstructor.h.
|
inline |
number of identified particles reconstructed in group
Definition at line 112 of file KVGroupReconstructor.h.
|
inline |
number of unidentified particles reconstructed in group
Definition at line 124 of file KVGroupReconstructor.h.
|
inlineprotected |
Definition at line 63 of file KVGroupReconstructor.h.
|
protected |
Calculate the energy loss in the current target of the multidetector for the reconstructed charged particle 'ion', assuming that the current energy and momentum of this particle correspond to its state on leaving the target.
WARNING: for this correction to work, the target must be in the right 'state':
gMultiDetArray->GetTarget()->SetIncoming(kFALSE); gMultiDetArray->GetTarget()->SetOutgoing(kTRUE);
(see KVTarget::GetParticleEIncFromERes).
The returned value is the energy lost in the target in MeV. The energy/momentum of 'ion' are not affected.
Definition at line 571 of file KVGroupReconstructor.cpp.
|
virtual |
Identify all particles reconstructed so far in this group which may be identified independently of all other particles in the group according to the 1st order coherency analysis (see AnalyseParticles() ). This is done by calling the method IdentifyParticle() for each particle in turn.
Particles stopping in the first member of a telescope will have their Z estimated from the energy loss in the detector (if calibrated): in this case the Z is a minimum value.
Reimplemented in KVINDRAGroupReconstructor.
Definition at line 504 of file KVGroupReconstructor.cpp.
|
protectedvirtual |
Try to identify this nucleus by calling the KVIDTelescope::Identify() method of each identification telescope on its reconstruction trajectory, starting with the telescope where the particle stopped (i.e. containing its stopping detector), in order.
Only identifications which have been correctly initialised for the current run are used, i.e. those for which KVIDTelescope::IsReadyForID() returns kTRUE.
Note that all identifications along the trajectory are tried, even those far in front of the detector where the particle stopped. The results of all identifications (KVIdentificationResult) are stored with the particle (they can be retrieved later using KVReconstructedNucleus::GetIdentificationResult() ). They are later used for consistency checks ("coherency") between the identifications in the different stages.
The first successful identification obtained in this way, if one exists, for a KVIDTelescope which includes the detector where the particle stopped is then attributed to the particle (see KVReconstructedNucleus::SetIdentification()).
Reimplemented in KVINDRAGroupReconstructor, and KVFAZIAGroupReconstructor.
Definition at line 378 of file KVGroupReconstructor.cpp.
|
protectedvirtual |
This method will be called after reconstruction and first-order coherency analysis of all particles in the group (if there are any reconstructed particles). By default it does nothing.
Reimplemented in KVFAZIAGroupReconstructor.
Definition at line 175 of file KVGroupReconstructor.cpp.
void KVGroupReconstructor::Process | ( | ) |
Perform full reconstruction of particles detected in group.
This will call in order Reconstruct(), Identify(), Calibrate() and AddCoherencyParticles()
Definition at line 97 of file KVGroupReconstructor.cpp.
void KVGroupReconstructor::Reconstruct | ( | ) |
Reconstruct the particles in the group from hit trajectories
We work our way along each trajectory, starting from the furthest detector from the target, and start reconstruction of a new detected particle depending on decision made in ReconstructTrajectory() for each detector we try (normally just the first fired detector we find).
The reconstruction is then handled by ReconstructParticle().
Definition at line 130 of file KVGroupReconstructor.cpp.
|
protected |
Reconstruction of a detected nucleus from the successive energy losses measured in a series of detectors/telescopes along a given trajectory.
The particle is associated with a reconstruction trajectory which starts from the detector in which the particle stopped and leads up through the detection layers towards the target. These can be accessed in later analysis using the two methods
Definition at line 233 of file KVGroupReconstructor.cpp.
|
protectedvirtual |
traj | trajectory currently being scanned |
node | current detector on trajectory to test |
The condition which must be fulfilled for us to begin the reconstruction of a new particle starting from a fired detector on the trajectory is either:
Reimplemented in KVINDRAGroupReconstructor, and KVINDRAEtalonGroupReconstructor.
Definition at line 194 of file KVGroupReconstructor.cpp.
|
inlineprotected |
Set status of particle to 'IsCalibrated' and give the quality code corresponding to the calibration
Definition at line 55 of file KVGroupReconstructor.h.
Enable/Disable calibration step in KVGroupReconstructor::Process
Definition at line 134 of file KVGroupReconstructor.h.
Enable/Disable identification step in KVGroupReconstructor::Process
Definition at line 129 of file KVGroupReconstructor.h.
Set the group to be reconstructed
Set condition for seeding reconstructed particles
Reimplemented in KVINDRAGroupReconstructor, and KVFAZIAGroupReconstructor.
Definition at line 45 of file KVGroupReconstructor.cpp.
Instantiate event fragment object.
Definition at line 59 of file KVGroupReconstructor.cpp.
|
protected |
particles stopped in first member of a telescope estimation of Z (minimum) from energy loss (if detector is calibrated)
Definition at line 474 of file KVGroupReconstructor.cpp.
|
protected |
Definition at line 81 of file KVGroupReconstructor.h.
|
staticprivate |
Definition at line 32 of file KVGroupReconstructor.h.
|
staticprivate |
Definition at line 31 of file KVGroupReconstructor.h.
|
private |
the group where we are reconstructing
Definition at line 34 of file KVGroupReconstructor.h.
|
private |
event containing particles reconstructed in this group
Definition at line 35 of file KVGroupReconstructor.h.
|
private |
condition for seeding reconstructed particles
Definition at line 36 of file KVGroupReconstructor.h.
|
protected |
identification results by type for current particle
Definition at line 41 of file KVGroupReconstructor.h.
|
protected |
telescope which identified current particle
Definition at line 40 of file KVGroupReconstructor.h.
|
mutableprotected |
number of fired detectors in group for current event
Definition at line 38 of file KVGroupReconstructor.h.
|
protected |
identification to be applied to current particle
Definition at line 39 of file KVGroupReconstructor.h.