KaliVeda
Toolkit for HIC analysis
KVMultiDetArray.h
1 
4 #ifndef __KVMultiDetArray_H
5 #define __KVMultiDetArray_H
6 
7 #include "KVGeoStrucElement.h"
8 #include "KVUniqueNameList.h"
9 #include "TGeoManager.h"
10 #include "KVDetector.h"
11 #include "KVGroupReconstructor.h"
12 #include "KVDetectorSignalTrace.h"
13 #include <KVFileReader.h>
14 #include <KVGeoDNTrajectory.h>
15 #include <KVUnownedList.h>
16 class KVIDGraph;
17 class KVTarget;
18 class KVTelescope;
19 class KVIDTelescope;
21 class KVDetectorEvent;
22 class KVGroup;
23 class KVNameValueList;
25 class KVList;
26 class KVGeoNavigator;
27 class KVUpDater;
28 class KVRawDataReader;
29 #ifdef WITH_BUILTIN_GRU
30 class KVGANILDataReader;
31 #endif
32 #ifdef WITH_MFM
33 class MFMCommonFrame;
34 class MFMMergeFrameManager;
36 class MFMEbyedatFrame;
37 class MFMBufferReader;
38 #ifdef WITH_MESYTEC
39 #include "MFMMesytecFrame.h"
40 #endif
41 #endif
42 #ifdef WITH_PROTOBUF
44 #endif
45 class KVExpSetUp;
46 class KVExpDB;
47 class KVDBTable;
48 class KVDBRun;
49 
60 
61  friend class KVGeoImport;
62  friend class KVExpSetUp;
63 
64 protected:
65 
71 
73  enum {
74  kIsRemoving = BIT(14), //flag set during call to RemoveLayer etc.
75  kParamsSet = BIT(15), //flag set when SetParameters called
76  kIsBuilt = BIT(16), //flag set when Build() is called
77  kIsBeingDeleted = BIT(17), //flag set when dtor is called
78  kIDParamsSet = BIT(18), //flag set when SetRunIdentificationParameters called
79  kCalParamsSet = BIT(19) //flag set when SetRunCalibrationParameters called
80  };
81 
84 
93 
95 
97 
98  std::unique_ptr<KVGeoNavigator> fNavigator;
99 
101 
104 
106 
109 
111 
112  virtual void RenumberGroups();
113 
114  virtual void SetExpectedDetectorSignalNames();
115 
117 
119  {
123  }
124 
131  virtual void set_up_telescope(KVDetector* de, KVDetector* e, KVIDTelescope* idt, TCollection* l);
133 
137  {
139  }
140  virtual void AssociateTrajectoriesAndNodes();
142 
143 #ifdef WITH_MFM
144  virtual Bool_t handle_raw_data_event_mfmfile(MFMBufferReader&);
145  virtual Bool_t handle_raw_data_event_mfmmergeframe(const MFMMergeFrameManager&);
146  virtual Bool_t handle_raw_data_event_mfmframe(const MFMCommonFrame&);
147  virtual Bool_t handle_raw_data_event_mfmframe_ebyedat(const MFMEbyedatFrame&);
148 #ifdef WITH_MESYTEC
149  virtual Bool_t handle_raw_data_event_mfmframe_mesytec_mdpp(const MFMMesytecMDPPFrame&);
150 #endif
151 #endif
152 #ifdef WITH_PROTOBUF
154 #endif
155 #ifdef WITH_BUILTIN_GRU
157 #endif
158  void add_and_set_detector_signal(KVDetector* det, KVString detname, Double_t sig_data, KVString sig_type);
159  template<typename TraceData>
160  void add_and_set_detector_signal_trace(KVDetector* det, const std::vector<TraceData>& traces, double time_resolution)
161  {
167 
168  auto det_signal = dynamic_cast<KVDetectorSignalTrace*>(det->GetDetectorSignal("SignalTrace"));
169  if (!det_signal) {
170  det_signal = det->AddDetectorSignalTrace();
171  }
172  det_signal->SetTrace(traces, time_resolution);
173  det_signal->SetFired();
174  }
175 
177 
179 
180  TString GetFileName(KVExpDB*, const Char_t* meth, const Char_t* keyw);
181  std::unique_ptr<KVFileReader> GetKVFileReader(KVExpDB* db, const Char_t* meth, const Char_t* keyw);
182  void ReadCalibrationFiles(KVExpDB* db);
183  void ReadCalibFile(const Char_t* filename, KVExpDB* db, KVDBTable* calib_table);
184  void ReadOoODetectors(KVExpDB* db);
185  void ReadAbsentDetectors(KVExpDB* db);
186 
187  virtual void set_detector_thicknesses(const TString&);
188 
189 public:
192  {
195  return fReconParameters;
196  }
198  {
201  return fReconParameters;
202  }
203  virtual void SetReconParametersInEvent(KVReconstructedEvent*) const;
204  void CreateGeoManager(Double_t dx = 500, Double_t dy = 500, Double_t dz = 500)
205  {
206  if (!gGeoManager) {
207 
208  new TGeoManager(GetName(), Form("%s geometry for dataset %s", GetName(), fDataSet.Data()));
209 
210  TGeoMaterial* matVacuum = gGeoManager->GetMaterial("Vacuum");
211  if (!matVacuum) {
212  matVacuum = new TGeoMaterial("Vacuum", 0, 0, 0);
213  matVacuum->SetTitle("Vacuum");
214  }
215  TGeoMedium* Vacuum = gGeoManager->GetMedium("Vacuum");
216  if (!Vacuum) Vacuum = new TGeoMedium("Vacuum", 1, matVacuum);
217  TGeoVolume* top = gGeoManager->MakeBox("WORLD", Vacuum, dx, dy, dz);
219  }
220 
221  }
222  void SetGeometry(TGeoManager*);
223  TGeoManager* GetGeometry() const;
224  KVGeoNavigator* GetNavigator() const;
225  void SetNavigator(KVGeoNavigator* geo);
226 
228  enum EFilterType {
232  };
233  KVMultiDetArray();
234  KVMultiDetArray(const Char_t* name, const Char_t* type = "");
235  virtual ~KVMultiDetArray();
236 
238  {
239  fFilterType = t;
240  }
241  void init();
242 
243  KVGroup* GetGroup(const Char_t* name) const
244  {
245  return (KVGroup*)GetStructure("GROUP", name);
246  }
247  KVGroup* GetGroup(Int_t number) const
248  {
249  return (KVGroup*)GetStructure("GROUP", number);
250  }
251  virtual void Build(Int_t run = -1);
252 
253  void Clear(Option_t* opt = "") override;
254 
257  {
258  return &fFiredDetectors;
259  }
260 
263  {
264  return &fFiredSignals;
265  }
266 
269  {
270  return &fExtraRawDataSignals;
271  }
272 
273  virtual void GetDetectorEvent(KVDetectorEvent* detev, const TSeqCollection* fired_params = 0);
274 
275  KVIDTelescope* GetIDTelescope(const Char_t* name) const;
277  {
278  return fIDTelescopes;
279  }
282  void SetDetectorThicknesses();
283 
284  virtual void SetTarget(KVTarget* target)
285  {
289 
290  fTarget = target;
291  }
293  {
295  return fTarget;
296  }
297 
299 
301  {
302  return TestBit(kIsRemoving);
303  }
304 
305  virtual Bool_t IsBuilt() const
306  {
307  return TestBit(kIsBuilt);
308  }
309  static KVMultiDetArray* MakeMultiDetector(const Char_t* dataset_name, Int_t run = -1, TString classname = "KVMultiDetArray", KVExpDB* db = nullptr);
310 
312  {
313  return TestBit(kIsBeingDeleted);
314  }
316  virtual void SetParameters(UInt_t n, Bool_t physics_parameters_only = kFALSE);
318  virtual void SetRunCalibrationParameters(UShort_t n);
319 
321  {
322  return TestBit(kParamsSet);
323  }
325  {
326  return (TestBit(kIDParamsSet) || ParamsSet());
327  }
329  {
330  return (TestBit(kCalParamsSet) || ParamsSet());
331  }
333  {
334  return fCurrentRun;
335  }
337  {
338  fCurrentRun = r;
339  }
340 
341  virtual void SetIdentifications();
342  virtual void InitializeIDTelescopes();
343  Bool_t ReadGridsFromAsciiFile(const Char_t*) const;
344 
345  virtual Double_t GetTotalSolidAngle(void) const
346  {
352 
353  Double_t SA = 0;
354  TIter it(GetDetectors());
355  KVDetector* d;
356  while ((d = (KVDetector*)it())) {
357  if (!d->GetNode()->GetNDetsInFront()) {
358  SA += d->GetSolidAngle();
359  }
360  }
361  return SA;
362  }
363 
368 
369 
370  virtual void SetSimMode(Bool_t on = kTRUE)
371  {
375  fSimMode = on;
376  GetDetectors()->R__FOR_EACH(KVDetector, SetSimMode)(on);
377  }
379  {
383  return fSimMode;
384  }
385 
386  static TGeoHMatrix* GetVolumePositioningMatrix(Double_t distance, Double_t theta, Double_t phi,
387  TGeoTranslation* postTrans = nullptr);
388  void SetGridsInTelescopes(UInt_t run);
389  void FillListOfIDTelescopes(KVIDGraph* gr) const;
390 
391  void Draw(Option_t* option = "") override;
393  {
395  return &fTrajectories;
396  }
397 
398  void MakeHistogramsForAllIDTelescopes(KVSeqCollection* list, Int_t dimension = 100);
401 
403  virtual void FillDetectorList(KVReconstructedNucleus* rnuc, KVHashList* DetList, const KVString& DetNames);
404 
407  {
408  return fAcceptIDCodes;
409  }
411  {
412  return fAcceptECodes;
413  }
414  void AcceptIDCodes(const KVNumberList& codelist)
415  {
437 
438  fAcceptIDCodes = codelist;
439  }
440  virtual void AcceptAllIDCodes()
441  {
446 
447  AcceptIDCodes("");
448  }
449  void AcceptECodes(const KVNumberList& codelist)
450  {
464 
472 
473  fAcceptECodes = codelist;
474  }
475  virtual void AcceptAllECodes()
476  {
481 
482  AcceptECodes("");
483  }
484 
485  virtual KVMultiDetArray* GetArray(const Char_t*) const
486  {
487  return const_cast<KVMultiDetArray*>(this);
488  }
489  virtual const KVSeqCollection* GetArrays() const
490  {
491  return nullptr;
492  }
493 
494  void RecursiveTrajectoryClustering(KVGeoDetectorNode* N, KVUniqueNameList& tried_trajectories, KVUniqueNameList& multitraj_nodes, KVUniqueNameList& detectors_of_group);
495  virtual const Char_t* GetPartSeedCond() const
496  {
498  return fPartSeedCond;
499  }
500  virtual void SetPartSeedCond(const Char_t* cond)
501  {
503  fPartSeedCond = cond;
504  }
507  {
508  std::unique_ptr<KVSeqCollection> glist(GetStructureTypeList("GROUP"));
509  return glist->GetEntries();
510  }
511 
514 #ifdef WITH_MFM
515  Bool_t HandleRawDataBuffer(MFMBufferReader&);
516 #endif
518  {
519  return fHandledRawData;
520  }
522 
524  {
525  return fDataSet;
526  }
527 
528  virtual void MakeCalibrationTables(KVExpDB*);
529  virtual void SetCalibratorParameters(KVDBRun*, const TString& = "");
530  void CheckStatusOfDetectors(KVDBRun*, const TString& = "");
531  virtual void SetDetectorParametersForRun(KVDBRun*, const TString& = "");
532 
534  {
536  return 5;
537  }
539  {
540  return "";
541  }
543  {
544  return "";
545  }
546  virtual Short_t GetBadIDCode() const
547  {
551  return 14;
552  }
553  virtual Short_t GetCoherencyIDCode() const
554  {
558  return 6;
559  }
561  {
565  return 8;
566  }
568  {
572  }
574  {
577  return 1;
578  }
580  {
583  return 0;
584  }
586  {
589  return 2;
590  }
592  {
596  }
597 
598  ClassDefOverride(KVMultiDetArray, 7) //Base class for multidetector arrays
599 };
600 
602 R__EXTERN KVMultiDetArray* gMultiDetArray;
603 
604 #endif
int Int_t
unsigned int UInt_t
#define R__EXTERN
ROOT::R::TRInterface & r
#define d(i)
bool Bool_t
unsigned short UShort_t
unsigned char UChar_t
char Char_t
short Short_t
double Double_t
const char Option_t
#define BIT(n)
#define ClassDefOverride(name, id)
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t target
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void on
char name[80]
R__EXTERN TGeoManager * gGeoManager
char * Form(const char *fmt,...)
Description of an experimental run in database ,,.
Definition: KVDBRun.h:41
Table in a database.
Definition: KVDBTable.h:34
List of hit groups in a multidetector array.
Detector signal waveform.
void SetTrace(const std::vector< TraceData > &trace, double time_resolution)
Base class for detector geometry description, interface to energy-loss calculations.
Definition: KVDetector.h:160
KVDetectorSignalTrace * AddDetectorSignalTrace()
virtual KVDetectorSignal * GetDetectorSignal(const KVString &type) const
Definition: KVDetector.h:539
Base class to describe database of an experiment ,,.
Definition: KVExpDB.h:61
Describe an experimental set-up coupling two or more different detector arrays.
Definition: KVExpSetUp.h:25
Reads GANIL acquisition files (EBYEDAT)
Path taken by particles through multidetector geometry.
Information on relative positions of detectors & particle trajectories.
Import detector array described by ROOT geometry and set up corresponding KVMultiDetArray object.
Definition: KVGeoImport.h:69
Base class for propagation of particles through array geometry.
Base class describing elements of array geometry.
const KVSeqCollection * GetDetectors() const
KVSeqCollection * GetStructureTypeList(const Char_t *type) const
KVGeoStrucElement * GetStructure(const Char_t *name) const
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 particle identification in a 2D map.
Definition: KVIDGraph.h:32
Base class for all detectors or associations of detectors in array which can identify charged particl...
Definition: KVIDTelescope.h:85
Extended TList class which owns its objects by default.
Definition: KVList.h:22
Read MFM format acquisition data.
Base class for describing the geometry of a detector array.
const KVSeqCollection * GetFiredSignals() const
KVNumberList fAcceptECodes
list of acceptable calibration codes for reconstructed nuclei
bool try_a_singleIDtelescope(TString uri, KVDetector *d, TCollection *l)
KVUniqueNameList fExtraRawDataSignals
any signals read from raw data not associated with a detector
const KVNumberList & GetAcceptedIDCodes() const
KVSeqCollection * GetListOfIDTelescopes() const
void FillListOfIDTelescopes(KVIDGraph *gr) const
virtual Bool_t handle_raw_data_event_mfmframe_ebyedat(const MFMEbyedatFrame &)
Read a raw data event from a EBYEDAT MFM Frame.
KVNumberList fAcceptIDCodes
list of acceptable identification codes for reconstructed nuclei
KVNameValueList & GetReconParameters()
virtual void GetDetectorEvent(KVDetectorEvent *detev, const TSeqCollection *fired_params=0)
virtual Bool_t handle_raw_data_event_protobuf(KVProtobufDataReader &)
void MakeHistogramsForAllIDTelescopes(KVSeqCollection *list, Int_t dimension=100)
TList * GetStatusOfIDTelescopes()
int try_all_singleID_telescopes(KVDetector *d, TCollection *l)
static Bool_t fCloseGeometryNow
void Draw(Option_t *option="") override
virtual void DeduceIdentificationTelescopesFromGeometry()
static KVMultiDetArray * MakeMultiDetector(const Char_t *dataset_name, Int_t run=-1, TString classname="KVMultiDetArray", KVExpDB *db=nullptr)
static void SetMakeMultiDetectorPhysicsParametersOnly(Bool_t on=kTRUE)
virtual void AcceptAllECodes()
virtual TString GetECodeMeaning(Int_t) const
std::unique_ptr< KVFileReader > GetKVFileReader(KVExpDB *db, const Char_t *meth, const Char_t *keyw)
virtual Double_t GetTargetEnergyLossCorrection(KVReconstructedNucleus *)
virtual Bool_t handle_raw_data_event_mfmmergeframe(const MFMMergeFrameManager &)
void CreateGeoManager(Double_t dx=500, Double_t dy=500, Double_t dz=500)
void add_and_set_detector_signal_trace(KVDetector *det, const std::vector< TraceData > &traces, double time_resolution)
virtual Bool_t handle_raw_data_event_mfmfile(MFMBufferReader &)
Bool_t HandledRawData() const
void ReadOoODetectors(KVExpDB *db)
Bool_t fHandledRawData
set to true if multidetector handles data in last call to HandleRawData
KVSeqCollection * GetIDTelescopesWithType(const Char_t *type)
TList * fCalibStatusDets
used by GetStatusIDTelescopes
KVDetectorEvent * fHitGroups
list of hit groups in simulation
void ReadAbsentDetectors(KVExpDB *db)
KVTarget * GetTarget()
void RecursiveTrajectoryClustering(KVGeoDetectorNode *N, KVUniqueNameList &tried_trajectories, KVUniqueNameList &multitraj_nodes, KVUniqueNameList &detectors_of_group)
KVSeqCollection * fIDTelescopes
deltaE-E telescopes in groups
void AcceptECodes(const KVNumberList &codelist)
UInt_t fCurrentRun
Number of the current run used to call SetParameters.
static Bool_t fMakeMultiDetectorSetParameters
void Clear(Option_t *opt="") override
void CalculateIdentificationGrids()
For each IDtelescope in array, calculate an identification grid.
void prepare_to_handle_new_raw_data()
reset acquisition parameters etc. before reading new raw data event
int try_all_doubleID_telescopes(KVDetector *de, KVDetector *e, TCollection *l)
Bool_t IsSimMode() const
void AcceptIDCodes(const KVNumberList &codelist)
void FillHistogramsForAllIDTelescopes(KVSeqCollection *list)
Fill TH2F histograms for all IDTelescopes of the array.
virtual void set_detector_thicknesses(const TString &)
Bool_t ReadGridsFromAsciiFile(const Char_t *) const
Int_t GetNumberOfGroups() const
virtual void InitialiseRawDataReading(KVRawDataReader *)
virtual void SetExpectedDetectorSignalNames()
virtual void SetParameters(UInt_t n, Bool_t physics_parameters_only=kFALSE)
void SetCurrentRunNumber(UInt_t r)
virtual void SetDetectorParametersForRun(KVDBRun *, const TString &="")
void SetFilterType(Int_t t)
virtual TString GetIDCodeMeaning(Int_t) const
virtual void copy_fired_parameters_to_recon_param_list()
TString GetDataSet() const
virtual const KVSeqCollection * GetArrays() const
void AddTrajectory(KVGeoDNTrajectory *d)
const KVNumberList & GetAcceptedECodes() const
KVGroup * GetGroup(const Char_t *name) const
static TGeoHMatrix * GetVolumePositioningMatrix(Double_t distance, Double_t theta, Double_t phi, TGeoTranslation *postTrans=nullptr)
KVGeoNavigator * GetNavigator() const
KVUpDater * fUpDater
used to set parameters for multidetector
const KVSeqCollection * GetExtraRawDataSignals() const
void SetGeometry(TGeoManager *)
virtual void MakeCalibrationTables(KVExpDB *)
virtual ~KVMultiDetArray()
destroy (delete) the MDA and all the associated structure, detectors etc.
virtual void SetRunIdentificationParameters(UShort_t n)
Bool_t HandleRawDataBuffer(MFMBufferReader &)
TString GetFileName(KVExpDB *, const Char_t *meth, const Char_t *keyw)
void CheckStatusOfDetectors(KVDBRun *, const TString &="")
virtual void PerformClosedROOTGeometryOperations()
UInt_t GetCurrentRunNumber() const
void SetDetectorTransparency(Char_t)
Modify the transparency of detector volumes in OpenGL view.
virtual KVGroupReconstructor * GetReconstructorForGroup(const KVGroup *) const
virtual void SetIdentifications()
static Bool_t fMakeMultiDetectorPhysicsParametersOnly
TList * fStatusIDTelescopes
used by GetStatusIDTelescopes
Bool_t fSimMode
=kTRUE in "simulation mode" (use for calculating response to simulated events)
virtual void Build(Int_t run=-1)
virtual void FillDetectorList(KVReconstructedNucleus *rnuc, KVHashList *DetList, const KVString &DetNames)
virtual Bool_t handle_raw_data_event_ebyedat(KVGANILDataReader &)
General method for reading raw data in old GANIL ebyedat format.
Bool_t IsBeingDeleted()
TString fPartSeedCond
condition for seeding new reconstructed particles
const TSeqCollection * GetTrajectories() const
static Bool_t fBuildTarget
KVTarget * fTarget
target used in experiment
virtual void set_up_telescope(KVDetector *de, KVDetector *e, KVIDTelescope *idt, TCollection *l)
Set up detectors in de-e identification telescope and add to fIDTelescopes and to l.
TList * GetCalibrationStatusOfDetectors()
bool try_upper_and_lower_singleIDtelescope(TString uri, KVDetector *d, TCollection *l)
virtual Bool_t handle_raw_data_event_mfmframe(const MFMCommonFrame &)
virtual Bool_t IsBuilt() const
const KVSeqCollection * GetFiredDetectors() const
TGeoManager * GetGeometry() const
Return pointer to the (ROOT) geometry of the array.
KVRawDataReader * fRawDataReader
last raw data reader object used in call to HandleRawData
virtual Short_t GetBadIDCode() const
virtual void SetRawDataFromReconEvent(KVNameValueList &)
virtual Int_t GetIDCodeForParticlesStoppingInFirstStageOfTelescopes() const
void add_and_set_detector_signal(KVDetector *det, KVString detname, Double_t sig_data, KVString sig_type)
static Int_t fMakeMultiDetectorRunNumber
virtual Bool_t HandleRawDataEvent(KVRawDataReader *)
virtual void InitializeIDTelescopes()
KVUniqueNameList fFiredDetectors
list of fired detectors after reading raw data event
virtual void RenumberGroups()
virtual void SetRunCalibrationParameters(UShort_t n)
virtual Short_t GetMultiHitFirstStageIDCode() const
virtual const Char_t * GetPartSeedCond() const
void PrintStatusOfIDTelescopes()
bool try_upper_and_lower_doubleIDtelescope(TString uri, KVDetector *de, KVDetector *e, TCollection *l)
virtual void SetSimMode(Bool_t on=kTRUE)
void PrintCalibStatusOfDetectors()
virtual UChar_t GetCalculatedCalibrationCode() const
virtual Double_t GetTotalSolidAngle(void) const
virtual void SetTarget(KVTarget *target)
virtual Short_t GetCoherencyIDCode() const
virtual void AcceptAllIDCodes()
void ReadCalibrationFiles(KVExpDB *db)
virtual void SetCalibratorParameters(KVDBRun *, const TString &="")
Int_t fFilterType
type of filtering (used by DetectEvent)
virtual void SetPartSeedCond(const Char_t *cond)
std::unique_ptr< KVGeoNavigator > fNavigator
for propagating particles through array geometry
void SetGridsInTelescopes(UInt_t run)
KVGroup * GetGroup(Int_t number) const
virtual UChar_t GetNormalCalibrationCode() const
KVIDTelescope * GetIDTelescope(const Char_t *name) const
Return pointer to DeltaE-E ID Telescope with "name".
void CalculateReconstructionTrajectories()
KVUniqueNameList fTrajectories
list of all possible trajectories through detectors of array
virtual void SetIDCodeForIDTelescope(KVIDTelescope *) const
Short_t GetZminCode() const
virtual void SetReconParametersInEvent(KVReconstructedEvent *) const
Copy any parameters in fReconParameters in to the reconstructed event parameter list.
KVNameValueList fReconParameters
general purpose list of parameters for storing information on data reconstruction
const KVNameValueList & GetReconParameters() const
TString fDataSet
name of associated dataset, used with MakeMultiDetector()
virtual void AssociateTrajectoriesAndNodes()
void ReadCalibFile(const Char_t *filename, KVExpDB *db, KVDBTable *calib_table)
virtual UChar_t GetNoCalibrationCode() const
virtual KVMultiDetArray * GetArray(const Char_t *) const
virtual void AcceptParticleForAnalysis(KVReconstructedNucleus *) const
Int_t GetIDTelescopes(KVGeoDetectorNode *, KVDetector *, TCollection *list)
void SetNavigator(KVGeoNavigator *geo)
EFilterType
filter types. values of fFilterType
KVMultiDetArray()
Default constructor.
KVUpDater * GetUpDater()
KVUniqueNameList GetIDTelescopeTypes()
void DeduceGroupsFromTrajectories()
virtual void set_up_single_stage_telescope(KVDetector *det, KVIDTelescope *idt, TCollection *l)
Set up detector in single-stage identification telescope and add to fIDTelescopes and to l.
bool try_a_doubleIDtelescope(TString uri, KVDetector *de, KVDetector *e, TCollection *l)
virtual Bool_t handle_raw_data_event_mfmframe_mesytec_mdpp(const MFMMesytecMDPPFrame &)
Read a raw data event from a Mesytec MFM Frame.
KVUnownedList fFiredSignals
list of fired signals after reading raw data event
Handles lists of named parameters with different types, a list of KVNamedParameter objects.
Strings used to represent a set of ranges of values.
Definition: KVNumberList.h:85
Read Google Protobuf DAQ files.
Abstract base class for reading raw (DAQ) data.
Event containing KVReconstructedNucleus nuclei reconstructed from hits in detectors.
Nuclei reconstructed from data measured by a detector array .
KaliVeda extensions to ROOT collection classes.
Extension of ROOT TString class which allows backwards compatibility with ROOT v3....
Definition: KVString.h:73
Calculation/correction of energy losses of particles through an experimental target.
Definition: KVTarget.h:128
Optimised list in which named objects can only be placed once.
void Add(TObject *obj) override
Extended TList class which does not own its objects by default.
Definition: KVUnownedList.h:20
Base class implementing necessary methods for setting multidetector parameters for each run of the cu...
Definition: KVUpDater.h:25
TGeoVolume * MakeBox(const char *name, TGeoMedium *medium, Double_t dx, Double_t dy, Double_t dz)
void SetTopVolume(TGeoVolume *vol)
TGeoMedium * GetMedium(const char *medium) const
TGeoMaterial * GetMaterial(const char *matname) const
virtual void SetTitle(const char *title="")
const char * GetName() const override
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
const char * Data() const