23 #include "KVMultiDetArray.h"
24 #include "KVUniqueNameList.h"
25 #include "KVINDRATriggerInfo.h"
26 #include "KVINDRADetector.h"
36 enum EBaseIndra_type {
53 enum EBaseIndra_typePhos {
73 std::unique_ptr<INDRAGeometryBuilder> fIGB;
90 void FillListsOfDetectorsByType();
91 void SetNamesOfIDTelescopes()
const;
93 void PerformClosedROOTGeometryOperations()
override;
94 #ifdef WITH_BUILTIN_GRU
98 Bool_t handle_raw_data_event_mfmframe_ebyedat(
const MFMEbyedatFrame&)
override;
100 Bool_t handle_raw_data_event_mfmframe_mesytec_mdpp(
const MFMMesytecFrame&)
override;
103 void copy_fired_parameters_to_recon_param_list()
override;
104 void set_detector_thicknesses(
const TString&)
override;
106 void ReadChIoPressures(
KVExpDB*);
107 void SetChIoPressures(
KVDBRun*);
108 void SetDetectorParametersForRun(
KVDBRun*,
const TString& =
"")
override;
117 return ECodes::NORMAL_CALIBRATION;
149 return "NO_IDENTIFICATION";
151 return "ID_STOPPED_IN_FIRST_STAGE";
165 return "ID_CSI_FRAGMENT";
167 return "ID_CSI_MASS_OUT_OF_RANGE";
169 return Form(
"(unknown:%d)", idc);
187 return "NO_CALIBRATION_ATTEMPTED";
189 return "NORMAL_CALIBRATION";
191 return "SOME_ENERGY_LOSSES_CALCULATED";
193 return "WARNING_CSI_MAX_ENERGY";
195 return "WARNING_CSI_NO_MASS_ID";
197 return "BAD_CALIBRATION";
199 return Form(
"(unknown:%d)", ec);
204 return IDCodes::ID_STOPPED_IN_FIRST_STAGE;
208 return IDCodes::NO_IDENTIFICATION;
214 return IDCodes::ID_CI_SI_COHERENCY;
218 return IDCodes::ID_CI_MULTIHIT;
#define ClassDefOverride(name, id)
char * Form(const char *fmt,...)
Build INDRA geometry from Huguet CAO infos.
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 to describe database of an experiment ,,.
Reads GANIL acquisition files (EBYEDAT)
virtual KVDetector * GetDetector(const Char_t *name) const
Return detector in this structure with given name.
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.
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.
Information on INDRA event from DAQ trigger.
INDRA multidetector array geometry.
void Build(Int_t run=-1) override
Correspondance between CsI detectors and pin lasers is set up if known.
KVGroupReconstructor * GetReconstructorForGroup(const KVGroup *) const override
virtual KVChIo * GetChIoOf(const Char_t *detname)
Short_t GetCoherencyIDCode() const override
void handle_ebyedat_raw_data_parameter(const char *param_name, uint16_t val)
UChar_t GetNormalCalibrationCode() const override
UChar_t GetTrigger() const
void GetDetectorEvent(KVDetectorEvent *detev, const TSeqCollection *fired_dets=0) override
void SetPinLasersForCsI()
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
Int_t GetIDCodeForParticlesStoppingInFirstStageOfTelescopes() const override
const KVSeqCollection * GetListOfChIo() const
void SetRawDataFromReconEvent(const KVReconstructedEvent &) override
virtual void cd(Option_t *option="")
................ inline functions
static Char_t SignalTypes[16][3]
Use this static array to translate EBaseIndra_type signal type to a string giving the signal type.
const KVSeqCollection * GetListOfCsI() const
TString GetCsIIDType() const
void SetReconParametersInEvent(KVReconstructedEvent *) const override
If "INDRA.EN" parameter has been set, we use it to set the event number.
KVINDRADetector * GetDetector(const Char_t *name) const override
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_SI_PSA
particle identified in Si detector by pulse shape analysis
@ ID_CI_CSI
particle identified in ChIo-CsI telescope
virtual void PHDSet(Bool_t yes=kTRUE)
const KVSeqCollection * GetListOfSi() const
Short_t GetBadIDCode() const override
void SetTrigger(UChar_t trig)
void MakeCalibrationTables(KVExpDB *) override
Override base method in order to read ChIo pressures for each run.
virtual Bool_t ArePHDSet() const
Short_t GetMultiHitFirstStageIDCode() const override
virtual KVINDRADetector * GetDetectorByType(UInt_t cou, UInt_t mod, UInt_t type) const
void SetIDCodeForIDTelescope(KVIDTelescope *) const override
Set the INDRA-specific general identification code for the given telescope.
KVINDRATriggerInfo * GetTriggerInfo()
void InitialiseRawDataReading(KVRawDataReader *) override
const KVSeqCollection * GetListOfPhoswich() const
TString GetIDCodeMeaning(Int_t idc) const override
TString GetECodeMeaning(Int_t ec) const override
Base class for describing the geometry of a detector array.
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.
KaliVeda extensions to ROOT collection classes.
Optimised list in which named objects can only be placed once.