KaliVeda
1.13/01
Heavy-Ion Analysis Toolkit
|
Describe an experimental set-up coupling two or more different detector arrays.
KVExpSetUp combines two or more existing KVMultiDetArray objects to describe the geometry, detectors, etc. of an experiment coupling several different arrays. Each KVMultiDetArray can have its own dedicated calibration database (KVExpDB and KVUpdater class) used to store and set calibration parameters.
Definition at line 24 of file KVExpSetUp.h.
Protected Attributes | |
KVList | fMDAList |
list of multidetarrays More... | |
KVString | lmultidetarrayclasses |
![]() | |
KVNumberList | fAcceptECodes |
list of acceptable calibration codes for reconstructed nuclei More... | |
KVNumberList | fAcceptIDCodes |
list of acceptable identification codes for reconstructed nuclei More... | |
TList * | fCalibStatusDets |
used by GetStatusIDTelescopes More... | |
UInt_t | fCurrentRun |
Number of the current run used to call SetParameters. More... | |
TString | fDataSet |
name of associated dataset, used with MakeMultiDetector() More... | |
KVUniqueNameList | fExtraRawDataSignals |
any signals read from raw data not associated with a detector More... | |
Int_t | fFilterType |
type of filtering (used by DetectEvent) More... | |
KVUniqueNameList | fFiredDetectors |
list of fired detectors after reading raw data event More... | |
KVUnownedList | fFiredSignals |
list of fired signals after reading raw data event More... | |
Bool_t | fHandledRawData |
set to true if multidetector handles data in last call to HandleRawData More... | |
KVDetectorEvent * | fHitGroups |
list of hit groups in simulation More... | |
KVSeqCollection * | fIDTelescopes |
deltaE-E telescopes in groups More... | |
KVRangeTableGeoNavigator * | fNavigator |
for propagating particles through array geometry More... | |
TString | fPartSeedCond |
condition for seeding new reconstructed particles More... | |
KVRawDataReader * | fRawDataReader |
last raw data reader object used in call to HandleRawData More... | |
KVNameValueList | fReconParameters |
general purpose list of parameters for storing information on data reconstruction More... | |
Bool_t | fROOTGeometry |
=kTRUE use ROOT geometry More... | |
Bool_t | fSimMode |
=kTRUE in "simulation mode" (use for calculating response to simulated events) More... | |
TList * | fStatusIDTelescopes |
used by GetStatusIDTelescopes More... | |
KVTarget * | fTarget |
target used in experiment More... | |
KVUniqueNameList | fTrajectories |
list of all possible trajectories through detectors of array More... | |
KVUpDater * | fUpDater |
used to set parameters for multidetector More... | |
![]() | |
KVUniqueNameList | fDetectors |
detectors in this structure element More... | |
KVUniqueNameList | fParentStrucList |
parent structures More... | |
KVUniqueNameList | fStructures |
daughter structures More... | |
![]() | |
TString | fLabel |
label for the object More... | |
![]() | |
TString | fName |
TString | fTitle |
![]() | |
kOnlyPrepStep | |
Private Member Functions | |
void | for_each_array (const std::function< void(KVMultiDetArray *)> &f, const std::function< bool(KVMultiDetArray *)> &break_cond=[](KVMultiDetArray *) { return false;}) const |
Additional Inherited Members | |
![]() | |
enum | EFilterType { kFilterType_Geo , kFilterType_GeoThresh , kFilterType_Full } |
filter types. values of fFilterType More... | |
![]() | |
enum | EKaliVedaBits { kIsKaliVedaObject = BIT(23) } |
![]() | |
enum | EDeprecatedStatusBits |
enum | EStatusBits |
![]() | |
static TGeoHMatrix * | GetVolumePositioningMatrix (Double_t distance, Double_t theta, Double_t phi, TGeoTranslation *postTrans=nullptr) |
static KVMultiDetArray * | MakeMultiDetector (const Char_t *dataset_name, Int_t run=-1, TString classname="KVMultiDetArray") |
![]() | |
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 time. 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, 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 Longptr_t | GetDtorOnly () |
static Bool_t | GetObjectStat () |
static void | SetDtorOnly (void *obj) |
static void | SetObjectStat (Bool_t stat) |
![]() | |
kBitMask | |
kCanDelete | |
kCannotPick | |
kHasUUID | |
kInconsistent | |
kInvalidObject | |
kIsOnHeap | |
kIsReferenced | |
kMustCleanup | |
kNoContextMenu | |
kNotDeleted | |
kObjInCanvas | |
kOverwrite | |
kSingleKey | |
kWriteDelete | |
kZombie | |
![]() | |
enum | { kIsRemoving = BIT(14) , kParamsSet = BIT(15) , kIsBuilt = BIT(16) , kIsBeingDeleted = BIT(17) , kIDParamsSet = BIT(18) , kCalParamsSet = BIT(19) } |
![]() | |
static Bool_t | fBuildTarget = kFALSE |
static Bool_t | fCloseGeometryNow = kTRUE |
static Bool_t | fMakeMultiDetectorSetParameters = kTRUE |
#include <KVExpSetUp.h>
KVExpSetUp::KVExpSetUp | ( | ) |
Default constructor.
Definition at line 37 of file KVExpSetUp.cpp.
|
virtual |
Destructor.
Definition at line 48 of file KVExpSetUp.cpp.
|
inlinevirtual |
Calling this method disables any selection of "OK" reconstructed particles according to their calibration code status, for all arrays in the setup.
Reimplemented from KVMultiDetArray.
Definition at line 199 of file KVExpSetUp.h.
|
inlinevirtual |
Calling this method disables any selection of "OK" reconstructed particles according to their identification code status, for all arrays in the setup.
Reimplemented from KVMultiDetArray.
Definition at line 189 of file KVExpSetUp.h.
|
virtual |
Overrides KVMultiDetArray method We use the "ARRAY" parameter of the reconstructed particle (if set) to know which array of the setup detected it.
Reimplemented from KVMultiDetArray.
Definition at line 148 of file KVExpSetUp.cpp.
Build the combined arrays
The name of the setup will be "[det1]-[det2]-..." default ROOT geometry for all arrays
Reimplemented from KVMultiDetArray.
Definition at line 63 of file KVExpSetUp.cpp.
|
inlinevirtual |
Sets status of detectors (KVDetector::IsPresent() and KVDetector::IsWorking()) for a given run of a dataset.
If 'myname' is given, we look in database table "myname.OoODets"
Check status (present, working) for all detectors for the run
Reimplemented from KVMultiDetArray.
Definition at line 179 of file KVExpSetUp.h.
Reset all groups (lists of detected particles etc.) and detectors in groups (energy losses, ACQparams etc. etc.) and the target if there is one
call Clear(opt) for each multidetector in the setup
Reimplemented from KVMultiDetArray.
Definition at line 94 of file KVExpSetUp.h.
|
inlineprotectedvirtual |
values of fired raw data signals (acquisition parameters) from last read raw event are copied to the fReconParameters list of parameters to be stored with the reconstructed event.
the format for each signal is:
ACQPAR.[array].[detector].[signal] ACQPAR.[array].[signal]
in the first case for signals associated with detectors, in the latter case signals which are not associated with a detector
Reimplemented from KVMultiDetArray.
Definition at line 73 of file KVExpSetUp.h.
|
inlinevirtual |
Called when required to fill KVReconstructedNucleus::fDetList with pointers to the detectors whose names are stored in KVReconstructedNucleus::fDetNames.
Call FillDetectorList for each array in turn, until DetList gets filled This is because some arrays may override the KVMultiDetArray::FillDetectorList method
Reimplemented from KVMultiDetArray.
Definition at line 103 of file KVExpSetUp.h.
|
inlineprivate |
perform the same function call f for each array in the setup
if break_cond is given, it is tested after each call to f, and if it returns true, we stop the loop
Definition at line 26 of file KVExpSetUp.h.
|
inlinevirtual |
Return pointer to array in set up with given name
Reimplemented from KVMultiDetArray.
Definition at line 117 of file KVExpSetUp.h.
void KVExpSetUp::GetArrayMultiplicities | ( | KVReconstructedEvent * | e, |
KVNameValueList & | m, | ||
Option_t * | opt = "" |
||
) |
Calculate multiplicities of particles in each array of the setup. They will appear in the KVNameValueList as parameters with the name of the array. e.g.
"INDRA" = 21 "FAZIA" = 3
Any option given will be used to determine the type of event iterator used - see KVEvent::GetNextParticleIterator(Option_t*).
Definition at line 181 of file KVExpSetUp.cpp.
|
inlinevirtual |
First step in event reconstruction based on current status of detectors in array. Fills the given KVDetectorEvent with the list of all groups which have fired. i.e. loop over all groups of the array and test whether KVGroup::Fired() returns true or false.
If the list of fired detectors 'fired_dets' is given, then we use this list to find the associated groups. If not given, or if it is empty, we may use the internal fFiredDetectors list.
Call method detev->Clear() before reading another event in order to reset all of the hit groups (including all detectors etc.) and emptying the list.
Override KVMultiDetArray method Call each array in turn and add fired groups to the KVDetectorEvent
Reimplemented from KVMultiDetArray.
Definition at line 124 of file KVExpSetUp.h.
|
inlinevirtual |
Create and return pointer to new KVGroupReconstructor for reconstructing particles in the given group. Returns nullptr if group is not part of this array.
Plugins for specific arrays can be defined as plugins using the name of the array: +Plugin.KVGroupReconstructor: my_array my_group_reconstructor my_lib "my_group_reconstructor()"
Override KVMultiDetArray method Call each array in turn to get reconstructor for group
Reimplemented from KVMultiDetArray.
Definition at line 135 of file KVExpSetUp.h.
|
inlineprotectedvirtual |
Method used to treat raw data in MFM format read by KVMFMDataFileReader
Here we dispatch two types of frame - MFMEbyedatFrame & MFMMesytecMDPPFrame - to specific methods - handle_raw_data_event_mfmframe_ebyedat() and handle_raw_data_event_mfmframe_mesytec_mdpp() which need to be implemented in child classes for specific arrays which use these data formats.
Return kTRUE if raw data was treated
Handle single (not merged) MFM frames of raw data. It is assumed that each frame type corresponds to a different detector array. Therefore as soon as one of them treats the data in the frame, we return kTRUE.
Reimplemented from KVMultiDetArray.
Definition at line 52 of file KVExpSetUp.h.
|
virtual |
Set fRawDataReader pointer in each sub-array and call prepare_to_handle_new_raw_data() for each sub-array, before treating raw data.
copy fired signals & detectors of sub-arrays to main lists
copy any reconstruction parameters from sub-arrays to main list
Reimplemented from KVMultiDetArray.
Definition at line 209 of file KVExpSetUp.cpp.
Definition at line 21 of file KVExpSetUp.cpp.
|
inlinevirtual |
Call this method just after opening a raw data file in order to perform any necessary initialisations, depending on the type of data
Calls InitialiseRawDataReading() for each array of the setup in turn
Reimplemented from KVMultiDetArray.
Definition at line 220 of file KVExpSetUp.h.
|
inlinevirtual |
Calls Initialize() method of each identification telescope (see KVIDTelescope and derived classes) and sets the general identification code defined for each telescope.
Calling this method is essential before identification of particles is attempted.
Override base method in order to set general identification codes for telescopes in each array
Reimplemented from KVMultiDetArray.
Definition at line 210 of file KVExpSetUp.h.
We first look for a file with the name given by
[dataset].[name].OoODetectors: [name.OoODetectors.dat]
which should contain the runlists for each malfunctioning detector. If found we add to the experiment database a table '[name].OoO Detectors' where [name] is the name of this array.
Then we look for a file with the name given by
[dataset].[name].CalibrationFiles: [CalibrationFiles.dat]
which should contain the names of files to read with each type of calibration If found we add to the experiment database a table '[name].Calibrations' where [name] is the name of this array, containing all calibrations as KVDBParameterSet objects with the name of the detector concerned.
Reimplemented from KVMultiDetArray.
Definition at line 161 of file KVExpSetUp.h.
Sets up calibrators for all detectors with a defined calibration for run Set parameters for all detectors with links to table "Calibrations" for run If 'myname' is given, we look in "myname.Calibrations" Reset all calibrators of all detectors first
Set calibrators for all detectors for the run
Reimplemented from KVMultiDetArray.
Definition at line 171 of file KVExpSetUp.h.
|
inlineprotectedvirtual |
Detector signals corresponding to raw data acquisition parameters are typically only created and added to detectors when some raw data has been read including those parameters.
However, when reconstructing data, we may define identification matrices or calibration formulae which use these signals before starting to read data. Therefore we need to know beforehand what detector signals are expected to be available once data has been read.
These are defined, according to detector types, by variables of the form
where [dataset] is optionally used to provide dataset-specific definitions.
Here we add a detector signal of each expected type to each detector of the array
Reimplemented from KVMultiDetArray.
Definition at line 81 of file KVExpSetUp.h.
|
inlinevirtual |
Take values 'ACQPAR.[array_name].[detname].[signal]' or 'ACQPAR.[array_name].[signal]' in the parameter list and use them to set values of raw acquisition parameters.
Any detector signals which don't already exist will be created
Reimplemented from KVMultiDetArray.
Definition at line 151 of file KVExpSetUp.h.
Set simulation mode of each array
Reimplemented from KVMultiDetArray.
Definition at line 230 of file KVExpSetUp.h.
Set target both for the overall combined array and each individual array
Reimplemented from KVMultiDetArray.
Definition at line 239 of file KVExpSetUp.h.
|
protected |
list of multidetarrays
Definition at line 46 of file KVExpSetUp.h.
|
protected |
Definition at line 47 of file KVExpSetUp.h.