KaliVeda
Toolkit for HIC analysis
|
#include <KVINDRA.h>
Public Types | |
enum | ECodes { NO_CALIBRATION_ATTEMPTED = 0 , NORMAL_CALIBRATION = 1 , SOME_ENERGY_LOSSES_CALCULATED = 2 , WARNING_CSI_MAX_ENERGY = 3 , WARNING_CSI_NO_MASS_ID = 4 , BAD_CALIBRATION = 15 } |
Calibration quality codes attributed to particles reconstructed from data. More... | |
enum | IDCodes { NO_IDENTIFICATION = 14 , ID_STOPPED_IN_FIRST_STAGE = 5 , ID_GAMMA = 0 , ID_NEUTRON = 1 , ID_PHOSWICH = 2 , ID_CSI_PSA = 2 , ID_SI_CSI = 3 , ID_SI75_SILI = 3 , ID_SILI_CSI = 3 , ID_CI_SI = 4 , ID_CI_CSI = 4 , ID_CI_SI75 = 4 , ID_CI_SI_COHERENCY = 6 , ID_CI_COHERENCY = 7 , ID_CI_MULTIHIT = 8 , ID_CSI_FRAGMENT = 9 , ID_CSI_MASS_OUT_OF_RANGE = 10 } |
Identification quality codes attributed to particles reconstructed from data. More... | |
Public Types inherited from KVMultiDetArray | |
enum | EFilterType { kFilterType_Geo , kFilterType_GeoThresh , kFilterType_Full } |
filter types. values of fFilterType More... | |
Public Types inherited from KVBase | |
enum | EKaliVedaBits { kIsKaliVedaObject = BIT(23) } |
Public Types inherited from TObject | |
enum | EDeprecatedStatusBits |
enum | EStatusBits |
Static Public Attributes | |
static Char_t | SignalTypes [16][3] |
Use this static array to translate EBaseIndra_type signal type to a string giving the signal type. | |
Private Attributes | |
KVHashList * | fChIo |
List Of ChIo of INDRA. | |
KVHashList * | fCsI |
List of CsI detectors of INDRA. | |
Bool_t | fEbyedatData |
set to true when VME/VXI acquisition system is used | |
KVNameValueList | fEbyedatParamDetMap |
maps EBYEDAT parameter names to detectors | |
Bool_t | fMesytecData |
set to true when Mesytec acquisition system is used | |
Bool_t | fPHDSet |
set to kTRUE if pulse height defect parameters are set | |
KVHashList * | fPhoswich |
List of NE102/NE115 detectors of INDRA. | |
KVINDRATriggerInfo * | fSelecteur |
infos from DAQ trigger (le Selecteur) | |
KVHashList * | fSi |
List of Si detectors of INDRA. | |
TEnv | fStrucInfos |
file containing structure of array | |
UChar_t | fTrigger |
multiplicity trigger used for acquisition | |
Additional Inherited Members | |
Static Public Member Functions inherited from KVMultiDetArray | |
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 void | SetMakeMultiDetectorPhysicsParametersOnly (Bool_t 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. | |
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) |
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 | |
enum KVINDRA::ECodes |
Calibration quality codes attributed to particles reconstructed from data.
enum KVINDRA::IDCodes |
Identification quality codes attributed to particles reconstructed from data.
KVINDRA::KVINDRA | ( | ) |
Default constructor Set up lists of ChIo, Si, CsI, Phoswich
Definition at line 88 of file KVINDRA.cpp.
|
virtual |
Delets lists of ChIo, Si, etc. Resets global gIndra pointer.
Definition at line 117 of file KVINDRA.cpp.
Overrides KVASMultiDetArray::Build Correspondance between CsI detectors and pin lasers is set up if known.
Reimplemented from KVMultiDetArray.
Definition at line 385 of file KVINDRA.cpp.
|
privatevirtual |
Construction of INDRA detector array.
Uses infos in file $KVROOT/KVFiles/data/indra_struct.[dataset].env or $KVROOT/KVFiles/data/indra_struct.env
if no dataset-specific file found
Alternatively, by defining the variable
[dataset].INDRA.StructureFile: [path to file]
Reimplemented from KVMultiDetArray.
Definition at line 163 of file KVINDRA.cpp.
Build layer 'name' with infos in file "$KVROOT/KVFiles/data/indra-struct.[dataset].env".
void SetGGtoPGConversionFactors(); void LinkToCodeurs();
Definition at line 224 of file KVINDRA.cpp.
Build ring with infos in file "$KVROOT/KVFiles/data/indra-struct.[dataset].env".
Definition at line 249 of file KVINDRA.cpp.
|
private |
Build telescope from infos in file "$KVROOT/KVFiles/data/indra-struct.[dataset].env" Info("BuildTelescope", "Building telescope %s",name);
Definition at line 298 of file KVINDRA.cpp.
|
privatevirtual |
Put values of all fired detector signals into the parameter list which will be copied into the reconstructed event.
If Mesytec data is being read, we set the parameter "INDRA.MESYTEC", or if Ebyedat data, "INDRA.EBYEDAT". Note that in old reconstructed data these parameters did not exist, therefore in their absence EBYEDAT is assumed.
Reimplemented from KVMultiDetArray.
Definition at line 830 of file KVINDRA.cpp.
void KVINDRA::CreateROOTGeometry | ( | ) |
Overrides KVASMultiDetArray::CreateGeoManager in order to use INDRAGeometryBuilder which builds the TGeo representation of INDRA using the Y. Huguet CAO data.
The optional arguments (dx,dy,dz) are the half-lengths in centimetres of the "world"/"top" volume into which all the detectors of the array are placed. This should be big enough so that all detectors fit in. The default values of 500 give a "world" which is a cube 1000cmx1000cmx1000cm (with sides going from -500cm to +500cm on each axis).
If closegeo=kFALSE we leave the geometry open for other structures to be added.
Definition at line 1370 of file KVINDRA.cpp.
|
private |
Fill lists of ChIo, Si, CsI and phoswich.
Definition at line 516 of file KVINDRA.cpp.
|
private |
Kludge to make INDRA ROOT geometry work like any other Normally ID telescopes are deduced from successive detectors on the different trajectories Each trajectory then possesses its list of ID telescopes These lists are then used when reconstruction trajectories are calculated
When INDRA ROOT geometry is used, trajectory lists need to be filled by hand before reconstruction trajectories are calculated
Definition at line 345 of file KVINDRA.cpp.
|
inlinevirtual |
The following methods are used by the current implementation of the filter. They should be removed in future implementations.
return a general identification code for particles badly identified with this type of ID telescope
Reimplemented from KVMultiDetArray.
Return pointer to layer in INDRA structure corresponding to ionisation chambers.
Definition at line 588 of file KVINDRA.cpp.
Returns a pointer to the Ionisation Chamber placed directly in front of the detector "detname". If no ChIo is present, a null pointer is returned.
Definition at line 570 of file KVINDRA.cpp.
|
inlinevirtual |
return a general identification code for particles identified with this type of ID telescope after coherency analysis
Reimplemented from KVMultiDetArray.
|
virtual |
Find a detector based on the old BaseIndra type definitions:
enum EBaseIndra_type { ChIo_GG=1, ChIo_PG,//=2 ChIo_T,//=3 Si_GG,//=4 Si_PG,//=5 Si_T,//=6 CsI_R,//=7 CsI_L,//=8 CsI_T,//=9 Si75_GG,//=10 Si75_PG,//=11 Si75_T,//=12 SiLi_GG,//=13 SiLi_PG,//=14 SiLi_T//=15 }; enum EBaseIndra_typePhos { Phos_R=1, Phos_L,//=2 Phos_T,//=3 };
Definition at line 639 of file KVINDRA.cpp.
|
virtual |
Overrides KVASMultiDetArray::GetDetectorEvent. If the list of fired detectors is given (meaning we are reading raw data) then we check that what we have read is in fact an INDRA event (see KVINDRATriggerInfo::IsINDRAEvent()) : if not, we do not try to find the hit groups.
Reimplemented from KVMultiDetArray.
Definition at line 1290 of file KVINDRA.cpp.
Reimplemented from KVMultiDetArray.
|
inlinevirtual |
Reimplemented from KVMultiDetArray.
Return a symbolic name corresponding to the IDCode value
Reimplemented from KVMultiDetArray.
|
privatevirtual |
Override KVASMultiDetArray method for special case of "etalon" modules: we need to add ChIo-CsI identification telescope by hand
Reimplemented from KVMultiDetArray.
Definition at line 713 of file KVINDRA.cpp.
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinevirtual |
return a general identification code for particles which cannot be identified correctly due to pile-up in a delta-E detector
Reimplemented from KVMultiDetArray.
|
inlinevirtual |
return a general calibration code for correctly calibrated particles
Reimplemented from KVMultiDetArray.
|
virtual |
Special INDRA group reconstructors: KVINDRAForwardGroupReconstructor rings 1-9 KVINDRABackwardGroupReconstructor rings 10-17 KVINDRAEtalonGroupReconstructor for groups with etalon telescopes
Reimplemented from KVMultiDetArray.
Definition at line 1495 of file KVINDRA.cpp.
|
inline |
void KVINDRA::handle_ebyedat_raw_data_parameter | ( | const char * | param_name, |
uint16_t | val | ||
) |
Definition at line 801 of file KVINDRA.cpp.
|
privatevirtual |
Set raw data in detectors/array coming from a GANIL EBYEDAT format acquisition file.
Reimplemented from KVMultiDetArray.
Definition at line 1021 of file KVINDRA.cpp.
|
privatevirtual |
General method for reading raw data in MFM-encapsulated ebyedat format Fills list of hit acquisition parameters. Returns kTRUE if at least one parameter belonging to the array is present.
Any unknown parameters in the event (i.e. ones for which no KVACQParam object has been defined) are written in the fReconParameters list with names "ACQPAR.[array name].[parameter name]"
Retrieve CENTRUM timestamp from data if present. It will be added to fReconParameters as a 64-bit value "INDRA.TS" (if != 0) Event number is retrieved and stored as "INDRA.EN" (if != 0) Any parameter which appears as [name] and [name]_UP is an unsigned 32-bit value split into two 16-bit words. We replace the two parameters with a 64-bit value (to hold correctly all unsigned 32-bit values) with [name].
Reimplemented from KVMultiDetArray.
Definition at line 1057 of file KVINDRA.cpp.
|
virtual |
Call this method just after opening a raw data file in order to perform any necessary initialisations, depending on the type of data
Reimplemented from KVMultiDetArray.
Definition at line 1610 of file KVINDRA.cpp.
Override base method in order to read ChIo pressures for each run.
Reimplemented from KVMultiDetArray.
Definition at line 1595 of file KVINDRA.cpp.
|
privatevirtual |
Overrides KVASMultiDetArray method to add FillListsOfDetectorsByType()
Reimplemented from KVASMultiDetArray.
Definition at line 503 of file KVINDRA.cpp.
|
privatevirtual |
Finalise the ROOT geometry description by performing operations which can only be done once the geometry is closed
Reimplemented from KVMultiDetArray.
Definition at line 790 of file KVINDRA.cpp.
Read ChIo pressures from a file with the following format:
Units
can be either mbar
or torr
: mbar
is used by default (e.g. for set A
in the example).
The different ionization chambers are designated by CI_02
, CI_04
, CI_06
, CI_08
, CI_13
The same pressure will be applied to all cells of each ChIo which are present in the current geometry.
If RunList
is not given, the pressures will be applied to all runs in the database.
Definition at line 870 of file KVINDRA.cpp.
Update ChIo pressures for this run with values in database (if any)
Any ChIo with zero pressure has KVDetector::IsDetecting() set to false (and hence KVDetector::IsOK() will also return false).
Definition at line 939 of file KVINDRA.cpp.
|
privatevirtual |
Override base method in order to set ChIo pressures (if defined)
Reimplemented from KVMultiDetArray.
Definition at line 1007 of file KVINDRA.cpp.
|
privatevirtual |
Find groups of telescopes in angular alignment placed on different layers. List is in fGroups. Also creates all ID telescopes in array and stores them in fIDTelescopes. Any previous groups/idtelescopes are deleted beforehand.
Reimplemented in KVINDRAe503.
Definition at line 552 of file KVINDRA.cpp.
|
virtual |
Set the INDRA-specific general identification code for the given telescope.
Reimplemented from KVMultiDetArray.
Definition at line 1116 of file KVINDRA.cpp.
|
private |
Change default names of ID telescopes to INDRA standard
This method also sets the types of the ID telescopes
Definition at line 736 of file KVINDRA.cpp.
void KVINDRA::SetPinLasersForCsI | ( | ) |
Sets the KVCsI::fPinLaser member of each CsI detector with the number of the pin laser associated for the stability control of these detectors.
We look for a file with the following format:
CSI_0101 1 CSI_0102 1 CSI_0103 1 CSI_0104 1 etc.
i.e. 'name of CsI detector' 'number of pin laser (1-8)' Comment lines must begin with '#'
The default name of this file is defined in .kvrootrc by
INDRADB.CsIPinCorr: CsI_PILA.dat
Dataset-specific version can be specified:
INDRA_e999.INDRADB.CsIPinCorr: CorrCsIPin_2054.dat
This file should be in the directory corresponding to the current dataset, i.e. in $KVROOT/KVFiles/name_of_dataset
Definition at line 1162 of file KVINDRA.cpp.
|
virtual |
Overrides base method in KVMultiDetArray.
If we are reading old reconstructed data with EBYEDAT parameters, we need special treatment to decode the detector name & signal type.
Reimplemented from KVMultiDetArray.
Definition at line 1541 of file KVINDRA.cpp.
|
virtual |
If "INDRA.EN" parameter has been set, we use it to set the event number.
Reimplemented from KVMultiDetArray.
Definition at line 1525 of file KVINDRA.cpp.
Override base class method If ROOT geometry is requested but has not been built, we create it
Reimplemented from KVMultiDetArray.
Definition at line 1471 of file KVINDRA.cpp.
Define multiplicity trigger used for acquisition and filter. Events with multipicity >= trig are OK.
Definition at line 603 of file KVINDRA.cpp.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |