24#include "KVASMultiDetArray.h"
26#include "KVHashList.h"
27#include "KVDBSystem.h"
29#include "KVDataSetManager.h"
30#include "KVINDRATriggerInfo.h"
31#include "KVINDRADetector.h"
32#include "KVINDRATelescope.h"
58enum EBaseIndra_typePhos {
111#ifdef WITH_BUILTIN_GRU
117 virtual Bool_t handle_raw_data_event_mfmframe_mesytec_mdpp(
const MFMMesytecMDPPFrame&);
183 return "NO_IDENTIFICATION";
185 return "ID_STOPPED_IN_FIRST_STAGE";
197 return "ID_CSI_FRAGMENT";
199 return "ID_CSI_MASS_OUT_OF_RANGE";
201 return Form(
"(unknown:%d)", idc);
219 return "NO_CALIBRATION_ATTEMPTED";
221 return "NORMAL_CALIBRATION";
223 return "SOME_ENERGY_LOSSES_CALCULATED";
225 return "WARNING_CSI_MAX_ENERGY";
227 return "WARNING_CSI_NO_MASS_ID";
229 return "BAD_CALIBRATION";
231 return Form(
"(unknown:%d)", ec);
#define ClassDef(name, id)
char * Form(const char *fmt,...)
Base class for azimuthally-symmetric multidetector arrays (obsolete)
Ionisation chamber detectors of the INDRA multidetector array.
Description of an experimental run in database ,,.
List of hit groups in a multidetector array.
Base class for detector geometry description.
Base class to describe database of an experiment ,,.
Reads GANIL acquisition files (EBYEDAT)
Base class for particle reconstruction in one group of a detector array.
Group of detectors which can be treated independently of all others in array.
Extended version of ROOT THashList.
Base class for all detectors or associations of detectors in array which can identify charged particl...
Base class for detectors of INDRA array.
Event reconstructed from energy losses in INDRA multidetector.
Base class for telescopes in INDRA array.
Information on INDRA event from DAQ trigger.
INDRA multidetector array geometry.
Bool_t fEbyedatData
set to true when VME/VXI acquisition system is used
virtual void Build(Int_t run=-1)
void InitialiseRawDataReading(KVRawDataReader *)
virtual KVChIo * GetChIoOf(const Char_t *detname)
void handle_ebyedat_raw_data_parameter(const char *param_name, uint16_t val)
KVINDRATelescope * BuildTelescope(const Char_t *prefix, Int_t mod)
virtual Bool_t handle_raw_data_event_ebyedat(KVGANILDataReader &)
void CreateROOTGeometry()
UChar_t GetTrigger() const
KVHashList * fChIo
List Of ChIo of INDRA.
KVHashList * GetListOfSi() const
void SetRawDataFromReconEvent(KVNameValueList &)
virtual UChar_t GetNormalCalibrationCode()
KVINDRATriggerInfo * GetTriggerInfo()
void SetPinLasersForCsI()
TString GetIDCodeMeaning(Int_t idc) const
void copy_fired_parameters_to_recon_param_list()
KVGroupReconstructor * GetReconstructorForGroup(const KVGroup *) const
virtual Int_t GetIDCodeForParticlesStoppingInFirstStageOfTelescopes() const
virtual void SetGroupsAndIDTelescopes()
KVHashList * GetListOfPhoswich() const
Int_t GetIDTelescopes(KVDetector *, KVDetector *, TCollection *)
KVHashList * GetListOfCsI() const
ECodes
Calibration quality codes attributed to particles reconstructed from data.
@ NORMAL_CALIBRATION
normal well-calibrated particle with no problems
@ BAD_CALIBRATION
calibration attempted but bad result (negative energies etc.)
@ NO_CALIBRATION_ATTEMPTED
particle stopped in detectors with no available calibration
@ WARNING_CSI_MAX_ENERGY
particle calibration OK, although apparent energy would mean punching through the CsI
@ WARNING_CSI_NO_MASS_ID
particle identified in CsI only in Z, not in A, therefore calculated energy untrustworthy
@ SOME_ENERGY_LOSSES_CALCULATED
particle calibration OK, with some detector energies calculated
KVINDRATriggerInfo * fSelecteur
infos from DAQ trigger (le Selecteur)
UChar_t fTrigger
multiplicity trigger used for acquisition
virtual UShort_t GetCoherencyIDCode()
KVHashList * fCsI
List of CsI detectors of INDRA.
virtual void cd(Option_t *option="")
................ inline functions
virtual void SetROOTGeometry(Bool_t on=kTRUE)
void SetChIoPressures(KVDBRun *)
static Char_t SignalTypes[16][3]
Use this static array to translate EBaseIndra_type signal type to a string giving the signal type.
void FillListsOfDetectorsByType()
Fill lists of ChIo, Si, CsI and phoswich.
Bool_t fMesytecData
set to true when Mesytec acquisition system is used
virtual void MakeListOfDetectors()
Overrides KVASMultiDetArray method to add FillListsOfDetectorsByType()
void FillTrajectoryIDTelescopeLists()
TString GetECodeMeaning(Int_t ec) const
KVHashList * fSi
List of Si detectors of INDRA.
void SetIDCodeForIDTelescope(KVIDTelescope *) const
Set the INDRA-specific general identification code for the given telescope.
TEnv fStrucInfos
file containing structure of array
void PerformClosedROOTGeometryOperations()
IDCodes
Identification quality codes attributed to particles reconstructed from data.
@ ID_CI_SI75
particle identified in ChIo-Si75 etalon telescope
@ ID_SI_CSI
particle identified in Si-CsI telescope
@ ID_NEUTRON
'neutron' discriminated by coherency between CsI and Si-CsI identifications
@ ID_CI_SI
particle identified in ChIo-Si telescope
@ ID_CI_SI_COHERENCY
particle identified in ChIo-Si telescope in coincidence with light particle identified in CsI
@ ID_STOPPED_IN_FIRST_STAGE
particle stopped in first detector of telescope, only minimum Z can be estimated
@ ID_CSI_PSA
particle identified in CsI detector by pulse shape analysis
@ ID_PHOSWICH
particle identified in phoswich (campaigns 1-3)
@ NO_IDENTIFICATION
no identification either attempted or available for particle
@ ID_CI_COHERENCY
particle stopped in ChIo revealed by coherency tests (Zmin)
@ ID_CI_MULTIHIT
particles stopped in multiple Si (ring<10) or CsI (ring>9) behind same ChIo, bad identification
@ ID_CSI_FRAGMENT
particle partially identified in CsI detector, with Z greater than identifiable
@ ID_GAMMA
'gamma' particle detected in CsI
@ ID_SILI_CSI
particle identified in SiLi-CsI etalon telescope
@ ID_CSI_MASS_OUT_OF_RANGE
particle partially identified in CsI detector, mass out of range of apparent Z (pile-up?...
@ ID_SI75_SILI
particle identified in Si75-SiLi etalon telescope
@ ID_CI_CSI
particle identified in ChIo-CsI telescope
virtual void PHDSet(Bool_t yes=kTRUE)
virtual UShort_t GetBadIDCode()
void SetReconParametersInEvent(KVReconstructedEvent *) const
If "INDRA.EN" parameter has been set, we use it to set the event number.
void MakeCalibrationTables(KVExpDB *)
Override base method in order to read ChIo pressures for each run.
void SetTrigger(UChar_t trig)
virtual Bool_t ArePHDSet() const
KVNameValueList fEbyedatParamDetMap
maps EBYEDAT parameter names to detectors
Bool_t handle_raw_data_event_mfmframe_ebyedat(const MFMEbyedatFrame &)
KVRing * BuildRing(Int_t number, const Char_t *prefix)
Build ring with infos in file "$KVROOT/KVFiles/data/indra-struct.[dataset].env".
virtual KVINDRADetector * GetDetectorByType(UInt_t cou, UInt_t mod, UInt_t type) const
void SetNamesOfIDTelescopes() const
void ReadChIoPressures(KVExpDB *)
KVHashList * GetListOfChIo() const
virtual void GetDetectorEvent(KVDetectorEvent *detev, const TSeqCollection *fired_dets=0)
virtual UShort_t GetMultiHitFirstStageIDCode()
void SetDetectorParametersForRun(KVDBRun *, const TString &="")
Override base method in order to set ChIo pressures (if defined)
void BuildLayer(const Char_t *name)
Build layer 'name' with infos in file "$KVROOT/KVFiles/data/indra-struct.[dataset]....
virtual void BuildGeometry()
KVHashList * fPhoswich
List of NE102/NE115 detectors of INDRA.
Bool_t fPHDSet
set to kTRUE if pulse height defect parameters are set
Set of detectors at a similar distance from target (obsolete)
Handles lists of named parameters with different types, a list of KVNamedParameter objects.
Description of properties and kinematics of atomic nuclei.
Abstract base class for reading raw (DAQ) data.
Event containing KVReconstructedNucleus nuclei reconstructed from hits in detectors.
Ring in INDRA array (obsolete)