KaliVeda
Toolkit for HIC analysis
|
Base class for all detectors or associations of detectors in array which can identify charged particles.
Charged particle identification is handled by KVIDTelescope and derived classes. A KVIDTelescope is an association of one or more detectors which is capable of particle identification. Although initially conceived in terms of \(\Delta E\)- \(E\) two-stage telescopes, the identification method can be quite different.
Identification in such 'telescopes' is often associated with a 'grid' or set of graphical cuts permitting to associate the informations measured in the 'telescope' with certain types of particles. For any class derived from KVIDTelescope, the identification grid (base class: KVIDGraph), if one exists, can be obtained and visualised using :
Note that if no grid has been defined for the telescope, GetIDGrid() returns a null pointer, so you should only use the previous method if you are absolutely sure that the ID telescope in question has a grid.
The identification functionals devised by L. Tassan-Got and defined in KVTGIDFunctions can be visualised as identification grids for classes having KVTGIDManager as a base class. In this case a grid can be created and drawn using :
You should keep a pointer to the grid because it is the user's responsibility to delete it after use.
The method SetIdentificationParameters() will be used by the KVMultiDetArray to which this telescope belongs in order to set the parameters of all telescopes of this type in the array. By default, this method looks for the file with name given by the environment variable
which is assumed to contain identification grids. The file will be read in by gIDGridManager and the grids added to its list.
Definition at line 84 of file KVIDTelescope.h.
#include <KVIDTelescope.h>
Classes | |
struct | GraphCoords |
Public Types | |
enum | { kCalibStatus_OK , kCalibStatus_Calculated , kCalibStatus_NoCalibrations , kCalibStatus_Multihit , kCalibStatus_Coherency } |
status of particle calibration after Calibrate(KVReconstructedNucleus*) is called More... | |
enum | { kMeanDE_OK , kMeanDE_XtooSmall , kMeanDE_XtooLarge , kMeanDE_NoIdentifier } |
status codes for GetMeanDEFromID More... | |
Public Types inherited from KVBase | |
enum | EKaliVedaBits { kIsKaliVedaObject = BIT(23) } |
Public Types inherited from TObject | |
enum | EDeprecatedStatusBits |
enum | EStatusBits |
Public Member Functions | |
KVIDTelescope () | |
virtual void | AddDetector (KVDetector *d) |
KVIDGrid * | CalculateDeltaE_EGrid (const KVNameValueList &AperZ, Int_t npoints=30, Double_t xfactor=1.) |
KVIDGrid * | CalculateDeltaE_EGrid (const KVNumberList &Zrange, Int_t deltaMasse, Int_t npoints, Double_t lifetime=-10, UChar_t massformula=0, Double_t xfactor=1.) |
KVIDGrid * | CalculateDeltaE_EGrid (TH2 *haa_zz, Bool_t Zonly, Int_t npoints) |
virtual void | CalculateParticleEnergy (KVReconstructedNucleus *nuc) |
virtual Bool_t | CanIdentify (Int_t Z, Int_t) |
void | CheckIdentificationBilan (const TString &system) |
Set status of ID Telescope for given system. | |
virtual Bool_t | CheckTheoreticalIdentificationThreshold (KVNucleus *, Double_t=0.0) |
virtual Int_t | GetCalibStatus () const |
const Char_t * | GetDefaultIDGridClass () |
KVDetector * | GetDetector (const Char_t *name) const |
Return a pointer to the detector in the telescope with the name "name". | |
KVDetector * | GetDetector (UInt_t n) const |
KVString | GetDetectorLabelsForGridCoord (const KVString &axis) const |
UInt_t | GetDetectorRank (const KVDetector *kvd) const |
const KVList * | GetDetectors () const |
KVGroup * | GetGroup () const |
UInt_t | GetGroupNumber () |
virtual UShort_t | GetIDCode () |
KVIDGraph * | GetIDGrid () |
KVIDGraph * | GetIDGrid (const Char_t *) |
KVIDGraph * | GetIDGrid (Int_t) |
Return pointer to grid using position in list. First grid has index = 1. | |
void | GetIDGridCoords (Double_t &X, Double_t &Y, KVIDGraph *grid, Double_t x=-1, Double_t y=-1) |
Double_t | GetIDGridXCoord (KVIDGraph *) const |
Double_t | GetIDGridYCoord (KVIDGraph *) const |
virtual Double_t | GetIDMapX (Option_t *opt="") |
virtual Double_t | GetIDMapY (Option_t *opt="") |
const KVList * | GetListOfIDGrids () const |
virtual Double_t | GetMeanDEFromID (Int_t &status, Int_t Z, Int_t A=-1, Double_t Eres=-1.0) |
virtual Double_t | GetPedestalX (Option_t *opt="") |
virtual Double_t | GetPedestalY (Option_t *opt="") |
UInt_t | GetSize () const |
Bool_t | HasDetector (const KVDetector *d) const |
Bool_t | HasMassID () const |
virtual Bool_t | Identify (KVIdentificationResult *, Double_t x=-1., Double_t y=-1.) |
void | init () |
default init | |
virtual void | Initialize (void) |
Bool_t | IsIndependent () const |
virtual Bool_t | IsReadyForID () |
void | LoadIdentificationParameters (const Char_t *filename, const KVMultiDetArray *multidet) |
This method add to the gIDGridManager list the identification grids. | |
virtual TGraph * | MakeIDLine (KVNucleus *nuc, Double_t Emin, Double_t Emax, Double_t Estep=0.0) |
virtual void | Print (Option_t *opt="") const |
void | ReadIdentificationParameterFiles (const Char_t *filename, const KVMultiDetArray *multidet) |
virtual void | RemoveGrids () |
virtual void | RemoveIdentificationParameters () |
void | SetGroup (KVGroup *kvg) |
void | SetHasMassID (Bool_t yes=kTRUE) |
virtual void | SetIDCode (UShort_t c) |
virtual Bool_t | SetIdentificationParameters (const KVMultiDetArray *) |
virtual void | SetIdentificationStatus (KVReconstructedNucleus *) |
void | SetIDGrid (KVIDGraph *) |
Public Member Functions inherited from KVBase | |
KVBase () | |
Default constructor. | |
KVBase (const Char_t *name, const Char_t *title="") | |
Ctor for object with given name and type. | |
KVBase (const KVBase &) | |
copy ctor | |
virtual | ~KVBase () |
virtual void | Clear (Option_t *opt="") |
Clear object properties : name, type/title, number, label. | |
virtual void | Copy (TObject &) const |
Make a copy of this object. | |
const Char_t * | GetLabel () const |
UInt_t | GetNumber () const |
UInt_t | GetNumberOfObjects () const |
virtual TObject * | GetObject () const |
virtual 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 | |
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 () |
void | Clear (Option_t *option="") override |
TObject * | Clone (const char *newname="") const override |
Int_t | Compare (const TObject *obj) const override |
void | Copy (TObject &named) const override |
virtual void | FillBuffer (char *&buffer) |
const char * | GetName () const override |
const char * | GetTitle () const override |
ULong_t | Hash () const override |
TClass * | IsA () const override |
Bool_t | IsSortable () const override |
void | ls (Option_t *option="") const override |
TNamed & | operator= (const TNamed &rhs) |
void | Print (Option_t *option="") const override |
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 |
void | Streamer (TBuffer &) override |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
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=nullptr) |
virtual void | Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr) |
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) |
Bool_t | IsDestructed () const |
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 *vp) |
void | operator delete[] (void *ptr) |
void | operator delete[] (void *ptr, void *vp) |
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) |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
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=nullptr, Int_t option=0, Int_t bufsize=0) |
virtual Int_t | Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const |
Static Public Member Functions | |
static KVIDTelescope * | MakeIDTelescope (const Char_t *name) |
static void | OpenIdentificationBilan (const TString &path) |
Open IdentificationBilan.dat file with given path. | |
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. | |
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.) | |
static const Char_t * | GetINCDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetKVBuildDate () |
Returns KaliVeda build date. | |
static const Char_t * | GetKVBuildDir () |
Returns top-level directory used for build. | |
static const Char_t * | GetKVBuildTime () |
Returns KaliVeda build time. | |
static const Char_t * | GetKVBuildType () |
Returns KaliVeda build type (cmake build: Release, Debug, RelWithDebInfo, ...) | |
static const Char_t * | GetKVBuildUser () |
Returns username of person who performed build. | |
static const Char_t * | GetKVSourceDir () |
Returns top-level directory of source tree used for build. | |
static const Char_t * | GetKVVersion () |
Returns KaliVeda version string. | |
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. | |
static const Char_t * | gitCommit () |
Returns last git commit of sources. | |
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. | |
static Bool_t | SearchAndOpenKVFile (const Char_t *name, KVSQLite::database &dbfile, const Char_t *kvsubdir="") |
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 TNamed | |
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 | { kMassID = BIT(15) , kReadyForID = BIT(16) } |
Private Member Functions | |
void | addLineToGrid (KVIDGrid *gg, int zz, int aa, int npoints) |
KVDetectorSignal * | GetSignalFromGridVar (const KVString &var, const KVString &axe, KVString &det_labels) |
KVIDGrid * | newGrid (bool onlyZ) |
void | SetLabelFromURI (const Char_t *uri) |
Private Attributes | |
Int_t | fCalibStatus |
temporary variable holding status code for last call to Calibrate(KVReconstructedNucleus*) | |
KVUnownedList | fDetectors |
list of detectors in telescope | |
std::unordered_map< KVIDGraph *, GraphCoords > | fGraphCoords |
X/Y coordinates from detector signals for ID maps. | |
KVGroup * | fGroup |
group to which telescope belongs | |
UShort_t | fIDCode |
general id code corresponding to correct identification by this type of telescope | |
KVUnownedList | fIDGrids |
identification grid(s) | |
std::unique_ptr< KVParticleCondition > | fMassIDValidity |
may be used to limit mass identification to certain Z and/or A range | |
KVList | fMultiDetExpressions |
used to clean up any multi-detector signal expressions generated to calculate X/Y coordinates | |
Static Private Attributes | |
static TEnv * | fgIdentificationBilan = nullptr |
Additional Inherited Members | |
Public Attributes inherited from TObject | |
kBitMask | |
kCanDelete | |
kCannotPick | |
kHasUUID | |
kInconsistent | |
kInvalidObject | |
kIsOnHeap | |
kIsReferenced | |
kMustCleanup | |
kNoContextMenu | |
kNotDeleted | |
kObjInCanvas | |
kOverwrite | |
kSingleKey | |
kWriteDelete | |
kZombie | |
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 TNamed | |
TString | fName |
TString | fTitle |
Protected Attributes inherited from TObject | |
kOnlyPrepStep | |
|
private |
Enumerator | |
---|---|
kMassID | |
kReadyForID |
Definition at line 94 of file KVIDTelescope.h.
anonymous enum |
status of particle calibration after Calibrate(KVReconstructedNucleus*) is called
Enumerator | |
---|---|
kCalibStatus_OK | |
kCalibStatus_Calculated | |
kCalibStatus_NoCalibrations | |
kCalibStatus_Multihit | |
kCalibStatus_Coherency |
Definition at line 120 of file KVIDTelescope.h.
anonymous enum |
status codes for GetMeanDEFromID
Enumerator | |
---|---|
kMeanDE_OK | |
kMeanDE_XtooSmall | |
kMeanDE_XtooLarge | |
kMeanDE_NoIdentifier |
Definition at line 249 of file KVIDTelescope.h.
KVIDTelescope::KVIDTelescope | ( | ) |
Definition at line 51 of file KVIDTelescope.cpp.
|
virtual |
Add a detector to the telescope.
Detectors must be added in the order they will be hit by impinging particles, with the last detector being the one particles stopped in the telescope will stop in. i.e. dE1, dE2, ..., Eres
Update name of telescope to "ID_[name of 1st detector]_[name of 2nd detector]_ ... _[name of last detector]"
Reimplemented in KVFAZIAIDTelescope.
Definition at line 224 of file KVIDTelescope.cpp.
loop over energy first find : ****E1 = energy at which particle passes 1st detector and starts to enter in the 2nd one**** E2 = energy at which particle passes the 2nd detector then perform npoints calculations between these two energies and use these to construct a KVIDZALine
Definition at line 817 of file KVIDTelescope.cpp.
KVIDGrid * KVIDTelescope::CalculateDeltaE_EGrid | ( | const KVNameValueList & | AperZ, |
Int_t | npoints = 30 , |
||
Double_t | xfactor = 1. |
||
) |
Create a dE-E grid (energy loss in detector 1 versus residual energy in detector 2) for a given list of isotopes
Definition at line 1594 of file KVIDTelescope.cpp.
KVIDGrid * KVIDTelescope::CalculateDeltaE_EGrid | ( | const KVNumberList & | Zrange, |
Int_t | deltaA, | ||
Int_t | npoints, | ||
Double_t | lifetime = -10 , |
||
UChar_t | massformula = 0 , |
||
Double_t | xfactor = 1. |
||
) |
Create a dE-E grid (energy loss in detector 1 versus residual energy in detector 2) for a given list of isotopes
Definition at line 1635 of file KVIDTelescope.cpp.
Create a dE-E grid (energy loss in detector 1 versus residual energy in detector 2) for a given list of isotopes
Definition at line 1679 of file KVIDTelescope.cpp.
|
virtual |
The energy of each particle is calculated as follows:
E = dE_1 + dE_2 + ... + dE_N
dE_1, dE_2, ... = energy losses measured in each detector through which the particle has passed (or stopped, in the case of dE_N). These energy losses are corrected for (Z,A)-dependent effects such as pulse-heigth defect in silicon detectors, losses in windows of gas detectors, etc.
Whenever possible, the energy loss for fired detectors which are uncalibrated or not functioning is calculated. In this case the status returned by GetCalibStatus() will be KVIDTelescope::kCalibStatus_Calculated. If none of the detectors is calibrated, the particle's energy cannot be calculated & the status will be KVIDTelescope::kCalibStatus_NoCalibrations. Otherwise, the status code will be KVIDTelescope::kCalibStatus_OK. status code
Definition at line 1383 of file KVIDTelescope.cpp.
Used for filtering simulations Returns kTRUE if this telescope is theoretically capable of identifying a given nucleus, without considering thresholds etc. By default this method returns true for Z>0, i.e. all KVIDTelescopes are in principle dE-E telescopes used to identify charged ions.
Reimplemented in KVFAZIAIDCsI, KVIDChIoCsI, KVIDChIoSi, KVIDINDRACsI, and KVIDCsI.
Definition at line 270 of file KVIDTelescope.h.
Set status of ID Telescope for given system.
Definition at line 1928 of file KVIDTelescope.cpp.
|
virtual |
Return kTRUE if energy of ION is > minimum incident energy required for identification This theoretical limit is defined here to be the incident energy for which the dE in the first detector of a dE-E telescope is maximum. If EINC>0 it is assumed to be the energy of the ion just before the first detector (case where ion would have to pass other detectors before reaching this telescope).
If this is not a dE-E telescope, we return kTRUE by default.
Reimplemented in KVFAZIAIDSiPSA, KVIDChIoCsI, and KVIDChIoSi.
Definition at line 1815 of file KVIDTelescope.cpp.
|
inlinevirtual |
When called just after CalculateParticleEnergy(KVReconstructedNucleus*) this method returns a status code which is one of KVIDTelescope::kCalibStatus_OK, : fine, OK, all detectors calculated and functioning properly KVIDTelescope::kCalibStatus_Calculated, : one or more detectors not calibrated/functioning, energy loss calculated KVIDTelescope::kCalibStatus_NoCalibrations : no calibrations available for any detectors
Definition at line 177 of file KVIDTelescope.h.
const Char_t * KVIDTelescope::GetDefaultIDGridClass | ( | ) |
Returns name of default ID grid class for this ID telescope. This is defined in a .kvrootrc configuration file by one of the following: KVIDTelescope.DefaultGrid: KVIDTelescope.DefaultGrid.[type]: where [type] is the type of this identification telescope (which is given by the character string returned by method GetLabel()... sorry :( ) If no default grid is defined for the specific type of this telescope, the default defined by KVIDTelescope.DefaultGrid is used.
Definition at line 1570 of file KVIDTelescope.cpp.
KVDetector * KVIDTelescope::GetDetector | ( | const Char_t * | name | ) | const |
Return a pointer to the detector in the telescope with the name "name".
Definition at line 288 of file KVIDTelescope.cpp.
|
inline |
returns the nth detector in the telescope structure
Definition at line 135 of file KVIDTelescope.h.
Returns a comma-separated list of the labels of the detectors used to determine the "x" or "y" coordinates of the identification grid(s)
If there is more than 1 grid and the list is not the same for all grids, prints a warning message.
[in] | axis | name of grid axis i.e. "x", "X", "y" or "Y" (case insensitive) |
Definition at line 952 of file KVIDTelescope.cpp.
|
inline |
returns position (1=front, 2=next, etc.) detector in the telescope structure returns 0 if detector not found in telescope
Definition at line 152 of file KVIDTelescope.h.
|
inline |
Definition at line 131 of file KVIDTelescope.h.
KVGroup * KVIDTelescope::GetGroup | ( | ) | const |
Definition at line 304 of file KVIDTelescope.cpp.
UInt_t KVIDTelescope::GetGroupNumber | ( | ) |
Definition at line 323 of file KVIDTelescope.cpp.
|
inlinevirtual |
return the general identification code (can be a bitmask) for particles correctly identified with this type of ID telescope
Definition at line 256 of file KVIDTelescope.h.
KVIDGraph * KVIDTelescope::GetIDGrid | ( | ) |
Return the first in the list of identification grids used by this telescope (this is for backwards compatibility with ID telescopes which had only one grid).
Definition at line 992 of file KVIDTelescope.cpp.
Return pointer to grid using "label" to search in list of grids associated to this telescope.
Definition at line 1022 of file KVIDTelescope.cpp.
Return pointer to grid using position in list. First grid has index = 1.
Definition at line 1005 of file KVIDTelescope.cpp.
|
inline |
Returns coordinates to be used in grid (defined by VARX/Y parameters of grid).
If x!=-1 or y!=-1, their value(s) is(are) used instead of whatever current value of the detector signals defined by VARX/Y
Definition at line 207 of file KVIDTelescope.h.
Return value of X coordinate to be used with the given ID grid This corresponds to whatever was given as parameter "VARX" for the grid
Definition at line 1078 of file KVIDTelescope.cpp.
Return value of Y coordinate to be used with the given ID grid This corresponds to whatever was given as parameter "VARY" for the grid
Definition at line 1094 of file KVIDTelescope.cpp.
Definition at line 1034 of file KVIDTelescope.cpp.
Definition at line 1109 of file KVIDTelescope.cpp.
|
inline |
Definition at line 193 of file KVIDTelescope.h.
|
virtual |
Returns the Y-axis value in the 2D identification map containing isotope (Z,A) corresponding to either the given X-axis/Eres value or the current X-axis value given by GetIDGridXCoord() If no mass information is available, just give Z.
In this (default) implementation this means scanning the ID grids associated with this telescope until we find an identification line Z or (Z,A), and then interpolating the Y-coordinate for the current X-coordinate value.
Status variable can take one of following values:
KVIDTelescope::kMeanDE_OK all OK KVIDTelescope::kMeanDE_XtooSmall X-coordinate is smaller than smallest X-coordinate of ID line KVIDTelescope::kMeanDE_XtooLarge X-coordinate is larger than largest X-coordinate of ID line KVIDTelescope::kMeanDE_NoIdentifie No identifier found for Z or (Z,A)
Definition at line 1758 of file KVIDTelescope.cpp.
Returns the pedestal associated with the 2nd detector of the telescope, optionally depending on the given option string. By default this returns 0, and should be overridden in specific implementations.
Definition at line 1047 of file KVIDTelescope.cpp.
Returns the pedestal associated with the 1st detector of the telescope, optionally depending on the given option string. By default this returns 0, and should be overridden in specific implementations.
Definition at line 1063 of file KVIDTelescope.cpp.
|
private |
Deduce & return pointer to detector signal from grid VARX/VARY parameter
To be valid, grid VARX/Y parameters should be set using mathematical expressions which use the following references to detector signals for the telescope:
where
If [det_label]
is not given, we assume for VARX
the last (E) detector, while for VARY
we assume the first (dE) detector. If this telescope has only one detector, we use it for both variables.
To see all available signals for a detector, use
Imagine a telescope which combines 2 detectors, with labels SI and CSI (in that order, i.e. SI is the dE detector, CSI is the residual energy detector). The following cases are valid:
The 'det_labels' string will be filled with a comma-separated list of the labels of each detector used in the expressions.
Definition at line 636 of file KVIDTelescope.cpp.
|
inline |
returns number of detectors in telescope
Definition at line 159 of file KVIDTelescope.h.
|
inline |
return true if detector is part of telescope
Definition at line 147 of file KVIDTelescope.h.
|
inline |
Returns kTRUE if this telescope is capable of identifying particles' mass (A) as well as their charge (Z).
Definition at line 224 of file KVIDTelescope.h.
|
virtual |
Default identification method.
Works for ID telescopes for which one or more identification grids are defined, each with VARX/VARY parameters corresponding to a KVDetectorSignal or KVDetectorSignalExpression associated with one or other of the detectors constituting the telescope.
For identifications using more than one grid, the default behaviour is to try identification with each grid in turn until a successful identification is obtained. The order in which the grids should be tried should be specified by a variable with the following format:
where the name of each grid is given as "VARY_VARX". If no variable defining the order is found, the grids will be tried in the order they were found in the file containing the grids for this telescope.
The KVIdentificationResult is first Clear()ed; then it is filled with IDtype = GetType() of this identification telescope, IDattempted = true, and the results of the identification procedure.
Reimplemented in KVFAZIAIDCsI, KVFAZIAIDSiCsI, KVFAZIAIDSiCsI_FAZIASYM, KVIDChIoSi, KVIDINDRACsI, and KVIDSiCsI.
Definition at line 444 of file KVIDTelescope.cpp.
default init
Definition at line 62 of file KVIDTelescope.cpp.
Default initialisation for ID telescopes. If telescope has at least 1 grid then it is ready to identify particles after initialising the grid(s) (kReadyForID=true); otherwise kReadyForID is set to kFALSE, unless the current dataset (if defined) has been declared to have no associated identification/calibration parameters, in which case kReadyForID is by default set to kTRUE (for filtering simulations).
In order to enable mass identification for certain telescopes without a dedicated implementation (e.g. for simulating array response), put the following lines in your .kvrootrc:
[dataset].[telescope label].MassID: yes
If you want to limit mass identification to certain values of Z and/or A, add the following line:
[dataset].[telescope label].MassID.Validity: [expression]
where [expression] is some valid C++ boolean expression involving Z and/or A, for example
[dataset].[telescope label].MassID.Validity: (Z>3)&&(A<20)
For identifications using more than one grid, the default behaviour is to try identification with each grid in turn until a successful identification is obtained. The order in which the grids should be tried should be specified by a variable with the following format:
Reimplemented in KVFAZIAIDSiCsI_FAZIASYM, KVFAZIAIDSiPSA, KVIDChIoSi, KVIDINDRACsI, KVIDSiCsI, KVIDChIoCsI, and KVIDCsI.
Definition at line 103 of file KVIDTelescope.cpp.
|
inline |
Returns kTRUE is this identification can be made independently of any other telescopes/detectors in the group/array etc. This is the case if
Definition at line 280 of file KVIDTelescope.h.
|
inlinevirtual |
Returns kTRUE if telescope has been correctly initialised for identification. Test after Initialize() method has been called.
Definition at line 239 of file KVIDTelescope.h.
void KVIDTelescope::LoadIdentificationParameters | ( | const Char_t * | filename, |
const KVMultiDetArray * | multidet | ||
) |
This method add to the gIDGridManager list the identification grids.
Definition at line 1300 of file KVIDTelescope.cpp.
|
virtual |
For a given nucleus, generate a TGraph representing the line in the deltaE-E plane of the telescope which can be associated with nuclei of this (A,Z) with total incident energies between the two limits. NOTE: if there are other absorbers/detectors placed before this telescope, the energy losses of the particle in these will be taken into account. If the step in energy is not given, it is taken equal to 100 equal steps between min and max. The TGraph should be deleted by the user after use.
Definition at line 340 of file KVIDTelescope.cpp.
|
static |
Static function which will create an instance of the KVIDTelescope-derived class corresponding to 'name' These are defined as 'Plugin' objects in the file $KVROOT/KVFiles/.kvrootrc :
Definition at line 1152 of file KVIDTelescope.cpp.
|
private |
Definition at line 789 of file KVIDTelescope.cpp.
Open IdentificationBilan.dat file with given path.
Definition at line 1915 of file KVIDTelescope.cpp.
print out telescope structure if opt="fired" only fired detectors are printed
Reimplemented from KVBase.
Definition at line 255 of file KVIDTelescope.cpp.
void KVIDTelescope::ReadIdentificationParameterFiles | ( | const Char_t * | filename, |
const KVMultiDetArray * | multidet | ||
) |
In the case where the identification grids are stored in several files, this method parse the file found with the following environment variable:
[dataset name].IdentificationParameterList.[telescope label]: [filename]
which contains the list of files containing the identification grids.
Definition at line 1273 of file KVIDTelescope.cpp.
|
virtual |
Remove all identification grids for this ID telescope Grids are not deleted as this is handled by gIDGridManager
Definition at line 1122 of file KVIDTelescope.cpp.
|
virtual |
Remove identification parameters from telescope in such a way that they can subsequently be reset e.g. with a new version. This is used by KVMultiDetArray::UpdateIdentifications. Child classes with specific SetIdentificationParameters methods should also redefine this method in order to remove (destroy) cleanly the objects created in SetIdentificationParameters.
This default method takes the list of grids associated to the telescope, and for each one: 1) checks if it is still in the gIDGridManager's list 2) if yes, delete the grid and remove it from gIDGridManager
Definition at line 1333 of file KVIDTelescope.cpp.
Definition at line 314 of file KVIDTelescope.cpp.
Definition at line 217 of file KVIDTelescope.h.
used by KVMultiDetArray to set the id code for each type of identification telescope
Definition at line 263 of file KVIDTelescope.h.
|
virtual |
Initialise the identification parameters (grids, etc.) of ALL identification telescopes of this kind (label) in the multidetector array. Therefore this method need only be called once, and not called for each telescope. The kind/label (returned by GetLabel) of the telescope corresponds to the URI used to find the plugin class in $KVROOT/KVFiles/.kvrootrc. By default, this method looks for the file with name given by the environment variable
[dataset name].IdentificationParameterList.[telescope label]: [filename]
which is assumed to contain the list of files containing the identification grids.
If not such envionment variable is found, the method looks for another one:
[dataset name].IdentificationParameterFile.[telescope label]: [filename]
which is assumed to contain identification grids.
Definition at line 1224 of file KVIDTelescope.cpp.
|
virtual |
For filtering simulations Set the n->IsZMeasured() and n->IsAMeasured() status of the particle In principle this depends on whether this telescope provides mass identification or not, but this may depend on the particle's energy. If A was not measured, it will be replaced with a value calculated from whatever mass formula is used for the particle.
In order to enable mass identification for certain telescopes without a dedicated implementation (e.g. for simulating array response), put the following lines in your .kvrootrc:
[dataset].[telescope label].MassID: yes
If you want to limit mass identification to certain values of Z and/or A, add the following line:
[dataset].[telescope label].MassID.Validity: [expression]
where [expression] is some valid C++ boolean expression involving Z and/or A, for example
[dataset].[telescope label].MassID.Validity: (Z>3)&&(A<20)
Then this expression will be tested here in order to determine particle identification status
Reimplemented in KVFAZIAIDSiPSA, KVFAZIAIDSiCsI_FAZIASYM, KVFAZIAIDTelescope, and KVIDINDRACsI.
Definition at line 1862 of file KVIDTelescope.cpp.
Add an identification grid to the list of grids used by this telescope.
If the grid's VARX and VARY parameters are set and contain the names of valid detector signals (see formatting rules below) they will be used by GetIDGridXCoord() and GetIDGridYCoord() to return the coordinates needed to perform particle identification using the grid.
The name of the grid is set to "VARY_VARX" (just the signal names, not the detector label part - see below). This value will be stored in the KVIdentificationResult corresponding to an attempted identification of a KVReconstructedNucleus by this grid.
VARX/VARY Formatting
To be valid, grid VARX/Y parameters should be set as follows:
where
Definition at line 532 of file KVIDTelescope.cpp.
PRIVATE METHOD Sets label of telescope based on URI of plugin describing child class for this telescope
Definition at line 1194 of file KVIDTelescope.cpp.
|
private |
temporary variable holding status code for last call to Calibrate(KVReconstructedNucleus*)
Definition at line 98 of file KVIDTelescope.h.
|
private |
list of detectors in telescope
Definition at line 91 of file KVIDTelescope.h.
|
staticprivate |
Definition at line 87 of file KVIDTelescope.h.
|
mutableprivate |
X/Y coordinates from detector signals for ID maps.
Definition at line 109 of file KVIDTelescope.h.
|
private |
group to which telescope belongs
Definition at line 92 of file KVIDTelescope.h.
|
private |
general id code corresponding to correct identification by this type of telescope
Definition at line 88 of file KVIDTelescope.h.
|
private |
identification grid(s)
Definition at line 93 of file KVIDTelescope.h.
|
private |
may be used to limit mass identification to certain Z and/or A range
Definition at line 101 of file KVIDTelescope.h.
|
private |
used to clean up any multi-detector signal expressions generated to calculate X/Y coordinates
Definition at line 110 of file KVIDTelescope.h.