KaliVeda
Toolkit for HIC analysis
Loading...
Searching...
No Matches
KVINDRA.h
1/***************************************************************************
2 kvindra.h - description
3 -------------------
4 begin : Mon May 20 2002
5 copyright : (C) 2002 by J.D. Frankland
6 email : frankland@ganil.fr
7
8$Id: KVINDRA.h,v 1.43 2009/01/21 10:05:51 franklan Exp $
9 ***************************************************************************/
10
11/***************************************************************************
12 * *
13 * This program is free software; you can redistribute it and/or modify *
14 * it under the terms of the GNU General Public License as published by *
15 * the Free Software Foundation; either version 2 of the License, or *
16 * (at your option) any later version. *
17 * *
18 ***************************************************************************/
19
20#ifndef KVINDRA_H
21#define KVINDRA_H
22
23#include "TEnv.h"
24#include "KVASMultiDetArray.h"
25#include "KVList.h"
26#include "KVHashList.h"
27#include "KVDBSystem.h"
28#include "KVUpDater.h"
29#include "KVDataSetManager.h"
30#include "KVINDRATriggerInfo.h"
31#include "KVINDRADetector.h"
32#include "KVINDRATelescope.h"
33
34class KVLayer;
35class KVNucleus;
36class KVChIo;
37class KVDetectorEvent;
39
41enum EBaseIndra_type {
42 ChIo_GG = 1,
43 ChIo_PG, //=2
44 ChIo_T, //=3
45 Si_GG, //=4
46 Si_PG, //=5
47 Si_T, //=6
48 CsI_R, //=7
49 CsI_L, //=8
50 CsI_T, //=9
51 Si75_GG, //=10
52 Si75_PG, //=11
53 Si75_T, //=12
54 SiLi_GG, //=13
55 SiLi_PG, //=14
56 SiLi_T //=15
57};
58enum EBaseIndra_typePhos {
59 Phos_R = 1,
60 Phos_L, //=2
61 Phos_T, //=3
62};
63
72
73public:
74 static Char_t SignalTypes[16][3];
75
76
77private:
79
80protected:
85
87
89
91
93
96
97 virtual void MakeListOfDetectors();
98 virtual void BuildGeometry();
99 virtual void SetGroupsAndIDTelescopes();
103 void BuildLayer(const Char_t* name);
104 KVRing* BuildRing(Int_t number, const Char_t* prefix);
105 KVINDRATelescope* BuildTelescope(const Char_t* prefix, Int_t mod);
108 void SetNamesOfIDTelescopes() const;
109
111#ifdef WITH_BUILTIN_GRU
113#endif
114#ifdef WITH_MFM
115 Bool_t handle_raw_data_event_mfmframe_ebyedat(const MFMEbyedatFrame&);
116#ifdef WITH_MESYTEC
117 virtual Bool_t handle_raw_data_event_mfmframe_mesytec_mdpp(const MFMMesytecMDPPFrame&);
118#endif
119#endif
121
124 void SetDetectorParametersForRun(KVDBRun*, const TString& = "");
125
126public:
128
132 {
136 }
138 {
142 }
154
155public:
179 {
181 switch (idc) {
183 return "NO_IDENTIFICATION";
185 return "ID_STOPPED_IN_FIRST_STAGE";
186 case ID_GAMMA:
187 return "ID_GAMMA";
188 case ID_NEUTRON:
189 return "ID_NEUTRON";
190 case ID_CSI_PSA:
191 return "ID_CSI_PSA";
192 case ID_SI_CSI:
193 return "ID_SI_CSI";
194 case ID_CI_SI:
195 return "ID_CI_CSI";
196 case ID_CSI_FRAGMENT:
197 return "ID_CSI_FRAGMENT";
199 return "ID_CSI_MASS_OUT_OF_RANGE";
200 default:
201 return Form("(unknown:%d)", idc);
202 }
203 }
216 {
217 switch (ec) {
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";
228 case BAD_CALIBRATION:
229 return "BAD_CALIBRATION";
230 default:
231 return Form("(unknown:%d)", ec);
232 }
233 }
238
239 KVINDRA();
240 virtual ~ KVINDRA();
241
242 void handle_ebyedat_raw_data_parameter(const char* param_name, uint16_t val);
243
244 virtual void Build(Int_t run = -1);
245 virtual Bool_t ArePHDSet() const
246 {
247 return fPHDSet;
248 }
249 virtual void PHDSet(Bool_t yes = kTRUE)
250 {
251 fPHDSet = yes;
252 }
253
255 inline KVHashList* GetListOfChIo() const
256 {
257 return fChIo;
258 };
259 inline KVHashList* GetListOfSi() const
260 {
261 return fSi;
262 };
263 inline KVHashList* GetListOfCsI() const
264 {
265 return fCsI;
266 };
268 {
269 return fPhoswich;
270 };
271
272 virtual KVChIo* GetChIoOf(const Char_t* detname);
273 virtual void cd(Option_t* option = "");
275 UInt_t type) const;
276
277 void SetTrigger(UChar_t trig);
279 {
280 return fTrigger;
281 }
282
283 void SetPinLasersForCsI();
284
286 virtual void GetDetectorEvent(KVDetectorEvent* detev, const TSeqCollection* fired_dets = 0);
287
289 {
290 return fSelecteur;
291 };
292
293 void CreateROOTGeometry();
294
295 virtual void SetROOTGeometry(Bool_t on = kTRUE);
296
300
302
303 ClassDef(KVINDRA, 6) //class describing the materials and detectors etc. to build an INDRA multidetector array
304};
305
307R__EXTERN KVINDRA* gIndra;
308
311{
312 gIndra = this;
313}
314
315#endif
int Int_t
unsigned int UInt_t
#define R__EXTERN
bool Bool_t
unsigned short UShort_t
unsigned char UChar_t
char Char_t
const char Option_t
#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.
Definition KVChIo.h:30
Description of an experimental run in database ,,.
Definition KVDBRun.h:36
List of hit groups in a multidetector array.
Base class for detector geometry description.
Definition KVDetector.h:160
Base class to describe database of an experiment ,,.
Definition KVExpDB.h:20
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.
Definition KVGroup.h:20
Extended version of ROOT THashList.
Definition KVHashList.h:29
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.
Definition KVINDRA.h:71
Bool_t fEbyedatData
set to true when VME/VXI acquisition system is used
Definition KVINDRA.h:94
virtual void Build(Int_t run=-1)
Definition KVINDRA.cpp:385
void InitialiseRawDataReading(KVRawDataReader *)
Definition KVINDRA.cpp:1610
KVINDRA()
Definition KVINDRA.cpp:88
virtual KVChIo * GetChIoOf(const Char_t *detname)
Definition KVINDRA.cpp:570
void handle_ebyedat_raw_data_parameter(const char *param_name, uint16_t val)
Definition KVINDRA.cpp:801
KVINDRATelescope * BuildTelescope(const Char_t *prefix, Int_t mod)
Definition KVINDRA.cpp:298
virtual Bool_t handle_raw_data_event_ebyedat(KVGANILDataReader &)
Definition KVINDRA.cpp:1021
void CreateROOTGeometry()
Definition KVINDRA.cpp:1370
UChar_t GetTrigger() const
Definition KVINDRA.h:278
KVHashList * fChIo
List Of ChIo of INDRA.
Definition KVINDRA.h:81
KVHashList * GetListOfSi() const
Definition KVINDRA.h:259
void SetRawDataFromReconEvent(KVNameValueList &)
Definition KVINDRA.cpp:1541
virtual UChar_t GetNormalCalibrationCode()
Definition KVINDRA.h:149
KVINDRATriggerInfo * GetTriggerInfo()
Definition KVINDRA.h:288
void SetPinLasersForCsI()
Definition KVINDRA.cpp:1162
TString GetIDCodeMeaning(Int_t idc) const
Definition KVINDRA.h:178
void copy_fired_parameters_to_recon_param_list()
Definition KVINDRA.cpp:830
KVGroupReconstructor * GetReconstructorForGroup(const KVGroup *) const
Definition KVINDRA.cpp:1495
virtual Int_t GetIDCodeForParticlesStoppingInFirstStageOfTelescopes() const
Definition KVINDRA.h:234
virtual void SetGroupsAndIDTelescopes()
Definition KVINDRA.cpp:552
KVHashList * GetListOfPhoswich() const
Definition KVINDRA.h:267
Int_t GetIDTelescopes(KVDetector *, KVDetector *, TCollection *)
Definition KVINDRA.cpp:713
KVHashList * GetListOfCsI() const
Definition KVINDRA.h:263
ECodes
Calibration quality codes attributed to particles reconstructed from data.
Definition KVINDRA.h:204
@ NORMAL_CALIBRATION
normal well-calibrated particle with no problems
Definition KVINDRA.h:209
@ BAD_CALIBRATION
calibration attempted but bad result (negative energies etc.)
Definition KVINDRA.h:213
@ NO_CALIBRATION_ATTEMPTED
particle stopped in detectors with no available calibration
Definition KVINDRA.h:208
@ WARNING_CSI_MAX_ENERGY
particle calibration OK, although apparent energy would mean punching through the CsI
Definition KVINDRA.h:211
@ WARNING_CSI_NO_MASS_ID
particle identified in CsI only in Z, not in A, therefore calculated energy untrustworthy
Definition KVINDRA.h:212
@ SOME_ENERGY_LOSSES_CALCULATED
particle calibration OK, with some detector energies calculated
Definition KVINDRA.h:210
KVINDRATriggerInfo * fSelecteur
infos from DAQ trigger (le Selecteur)
Definition KVINDRA.h:88
UChar_t fTrigger
multiplicity trigger used for acquisition
Definition KVINDRA.h:78
virtual UShort_t GetCoherencyIDCode()
Definition KVINDRA.h:137
KVLayer * GetChIoLayer()
Definition KVINDRA.cpp:588
KVHashList * fCsI
List of CsI detectors of INDRA.
Definition KVINDRA.h:83
virtual void cd(Option_t *option="")
................ inline functions
Definition KVINDRA.h:310
virtual void SetROOTGeometry(Bool_t on=kTRUE)
Definition KVINDRA.cpp:1471
void SetChIoPressures(KVDBRun *)
Definition KVINDRA.cpp:939
static Char_t SignalTypes[16][3]
Use this static array to translate EBaseIndra_type signal type to a string giving the signal type.
Definition KVINDRA.h:70
void FillListsOfDetectorsByType()
Fill lists of ChIo, Si, CsI and phoswich.
Definition KVINDRA.cpp:516
Bool_t fMesytecData
set to true when Mesytec acquisition system is used
Definition KVINDRA.h:95
virtual void MakeListOfDetectors()
Overrides KVASMultiDetArray method to add FillListsOfDetectorsByType()
Definition KVINDRA.cpp:503
void FillTrajectoryIDTelescopeLists()
Definition KVINDRA.cpp:345
TString GetECodeMeaning(Int_t ec) const
Definition KVINDRA.h:215
KVHashList * fSi
List of Si detectors of INDRA.
Definition KVINDRA.h:82
void SetIDCodeForIDTelescope(KVIDTelescope *) const
Set the INDRA-specific general identification code for the given telescope.
Definition KVINDRA.cpp:1116
TEnv fStrucInfos
file containing structure of array
Definition KVINDRA.h:90
void PerformClosedROOTGeometryOperations()
Definition KVINDRA.cpp:790
IDCodes
Identification quality codes attributed to particles reconstructed from data.
Definition KVINDRA.h:156
@ ID_CI_SI75
particle identified in ChIo-Si75 etalon telescope
Definition KVINDRA.h:171
@ ID_SI_CSI
particle identified in Si-CsI telescope
Definition KVINDRA.h:166
@ ID_NEUTRON
'neutron' discriminated by coherency between CsI and Si-CsI identifications
Definition KVINDRA.h:163
@ ID_CI_SI
particle identified in ChIo-Si telescope
Definition KVINDRA.h:169
@ ID_CI_SI_COHERENCY
particle identified in ChIo-Si telescope in coincidence with light particle identified in CsI
Definition KVINDRA.h:172
@ ID_STOPPED_IN_FIRST_STAGE
particle stopped in first detector of telescope, only minimum Z can be estimated
Definition KVINDRA.h:161
@ ID_CSI_PSA
particle identified in CsI detector by pulse shape analysis
Definition KVINDRA.h:165
@ ID_PHOSWICH
particle identified in phoswich (campaigns 1-3)
Definition KVINDRA.h:164
@ NO_IDENTIFICATION
no identification either attempted or available for particle
Definition KVINDRA.h:160
@ ID_CI_COHERENCY
particle stopped in ChIo revealed by coherency tests (Zmin)
Definition KVINDRA.h:173
@ ID_CI_MULTIHIT
particles stopped in multiple Si (ring<10) or CsI (ring>9) behind same ChIo, bad identification
Definition KVINDRA.h:174
@ ID_CSI_FRAGMENT
particle partially identified in CsI detector, with Z greater than identifiable
Definition KVINDRA.h:175
@ ID_GAMMA
'gamma' particle detected in CsI
Definition KVINDRA.h:162
@ ID_SILI_CSI
particle identified in SiLi-CsI etalon telescope
Definition KVINDRA.h:168
@ ID_CSI_MASS_OUT_OF_RANGE
particle partially identified in CsI detector, mass out of range of apparent Z (pile-up?...
Definition KVINDRA.h:176
@ ID_SI75_SILI
particle identified in Si75-SiLi etalon telescope
Definition KVINDRA.h:167
@ ID_CI_CSI
particle identified in ChIo-CsI telescope
Definition KVINDRA.h:170
virtual void PHDSet(Bool_t yes=kTRUE)
Definition KVINDRA.h:249
virtual UShort_t GetBadIDCode()
Definition KVINDRA.h:131
void SetReconParametersInEvent(KVReconstructedEvent *) const
If "INDRA.EN" parameter has been set, we use it to set the event number.
Definition KVINDRA.cpp:1525
void MakeCalibrationTables(KVExpDB *)
Override base method in order to read ChIo pressures for each run.
Definition KVINDRA.cpp:1595
void SetTrigger(UChar_t trig)
Definition KVINDRA.cpp:603
virtual Bool_t ArePHDSet() const
Definition KVINDRA.h:245
KVNameValueList fEbyedatParamDetMap
maps EBYEDAT parameter names to detectors
Definition KVINDRA.h:92
Bool_t handle_raw_data_event_mfmframe_ebyedat(const MFMEbyedatFrame &)
Definition KVINDRA.cpp:1057
KVRing * BuildRing(Int_t number, const Char_t *prefix)
Build ring with infos in file "$KVROOT/KVFiles/data/indra-struct.[dataset].env".
Definition KVINDRA.cpp:249
virtual KVINDRADetector * GetDetectorByType(UInt_t cou, UInt_t mod, UInt_t type) const
Definition KVINDRA.cpp:639
void SetNamesOfIDTelescopes() const
Definition KVINDRA.cpp:736
void ReadChIoPressures(KVExpDB *)
Definition KVINDRA.cpp:870
KVHashList * GetListOfChIo() const
Definition KVINDRA.h:255
virtual void GetDetectorEvent(KVDetectorEvent *detev, const TSeqCollection *fired_dets=0)
Definition KVINDRA.cpp:1290
virtual UShort_t GetMultiHitFirstStageIDCode()
Definition KVINDRA.h:143
void SetDetectorParametersForRun(KVDBRun *, const TString &="")
Override base method in order to set ChIo pressures (if defined)
Definition KVINDRA.cpp:1007
void BuildLayer(const Char_t *name)
Build layer 'name' with infos in file "$KVROOT/KVFiles/data/indra-struct.[dataset]....
Definition KVINDRA.cpp:224
virtual void BuildGeometry()
Definition KVINDRA.cpp:163
KVHashList * fPhoswich
List of NE102/NE115 detectors of INDRA.
Definition KVINDRA.h:84
Bool_t fPHDSet
set to kTRUE if pulse height defect parameters are set
Definition KVINDRA.h:86
Set of detectors at a similar distance from target (obsolete)
Definition KVLayer.h:33
Handles lists of named parameters with different types, a list of KVNamedParameter objects.
Description of properties and kinematics of atomic nuclei.
Definition KVNucleus.h:126
Abstract base class for reading raw (DAQ) data.
Event containing KVReconstructedNucleus nuclei reconstructed from hits in detectors.
Ring in INDRA array (obsolete)
Definition KVRing.h:20