KaliVeda
Toolkit for HIC analysis
Loading...
Searching...
No Matches
KVMultiDetArray.h
1
3
4#ifndef __KVMultiDetArray_H
5#define __KVMultiDetArray_H
6
7#include "KVGeoStrucElement.h"
8#include "KVUniqueNameList.h"
9#include "TGraph.h"
10#include "TGeoManager.h"
11#include "KVNucleus.h"
12#include "KVDetector.h"
13#include "KVGroupReconstructor.h"
14
15#include <KVFileReader.h>
16#include <KVGeoDNTrajectory.h>
17#include <KVUnownedList.h>
18class KVIDGraph;
19class KVTarget;
20class KVTelescope;
21class KVIDTelescope;
24class KVDetectorEvent;
25class KVGroup;
26class KVNameValueList;
28class KVList;
29class KVGeoNavigator;
31class KVUpDater;
32class KVRawDataReader;
33#ifdef WITH_BUILTIN_GRU
35#endif
36#ifdef WITH_MFM
37class MFMCommonFrame;
38class MFMMergeFrameManager;
40class MFMEbyedatFrame;
41class MFMBufferReader;
42#ifdef WITH_MESYTEC
43#include "MFMMesytecMDPPFrame.h"
44#endif
45#endif
46#ifdef WITH_PROTOBUF
48#endif
49class KVExpSetUp;
50class KVExpDB;
51class KVDBTable;
52class KVDBRun;
53
64
65 friend class KVGeoImport;
66 friend class KVExpSetUp;
67
68protected:
69
75
77 enum {
78 kIsRemoving = BIT(14), //flag set during call to RemoveLayer etc.
79 kParamsSet = BIT(15), //flag set when SetParameters called
80 kIsBuilt = BIT(16), //flag set when Build() is called
81 kIsBeingDeleted = BIT(17), //flag set when dtor is called
82 kIDParamsSet = BIT(18), //flag set when SetRunIdentificationParameters called
83 kCalParamsSet = BIT(19) //flag set when SetRunCalibrationParameters called
84 };
85
88
97
99
101
103
105
107
110
112
115
117
118 virtual void RenumberGroups();
119 virtual void BuildGeometry()
120 {
121 AbstractMethod("BuildGeometry");
122 }
123 virtual void MakeListOfDetectors();
124
125 virtual void SetExpectedDetectorSignalNames();
126
128
130 {
134 }
135
144
146 virtual void GetIDTelescopesForGroup(KVGroup* grp, TCollection* tel_list);
147 virtual void PrepareModifGroup(KVGroup* grp, KVDetector* dd);
148 virtual void SetPresent(KVDetector* det, Bool_t present = kTRUE);
149 virtual void SetDetecting(KVDetector* det, Bool_t detecting = kTRUE);
150
159
160#ifdef WITH_MFM
161 virtual Bool_t handle_raw_data_event_mfmfile(MFMBufferReader&);
162 virtual Bool_t handle_raw_data_event_mfmmergeframe(const MFMMergeFrameManager&);
163 virtual Bool_t handle_raw_data_event_mfmframe(const MFMCommonFrame&);
164 virtual Bool_t handle_raw_data_event_mfmframe_ebyedat(const MFMEbyedatFrame&);
165#ifdef WITH_MESYTEC
166 virtual Bool_t handle_raw_data_event_mfmframe_mesytec_mdpp(const MFMMesytecMDPPFrame&);
167#endif
168#endif
169#ifdef WITH_PROTOBUF
171#endif
172#ifdef WITH_BUILTIN_GRU
174#endif
175 void add_and_set_detector_signal(KVDetector* det, KVString detname, Double_t sig_data, KVString sig_type);
176
178
180
181 TString GetFileName(KVExpDB*, const Char_t* meth, const Char_t* keyw);
182 std::unique_ptr<KVFileReader> GetKVFileReader(KVExpDB* db, const Char_t* meth, const Char_t* keyw);
184 void ReadCalibFile(const Char_t* filename, KVExpDB* db, KVDBTable* calib_table);
185 void ReadOoODetectors(KVExpDB* db);
187
191 {
195 return 14;
196 }
198 {
202 return 6;
203 }
205 {
209 return 8;
210 }
218 {
221 return 1;
222 }
223
225
226public:
235 {
238 return fReconParameters;
239 }
241 void CreateGeoManager(Double_t dx = 500, Double_t dy = 500, Double_t dz = 500)
242 {
243 if (!gGeoManager) {
244
245 new TGeoManager(GetName(), Form("%s geometry for dataset %s", GetName(), fDataSet.Data()));
246
247 TGeoMaterial* matVacuum = gGeoManager->GetMaterial("Vacuum");
248 if (!matVacuum) {
249 matVacuum = new TGeoMaterial("Vacuum", 0, 0, 0);
250 matVacuum->SetTitle("Vacuum");
251 }
252 TGeoMedium* Vacuum = gGeoManager->GetMedium("Vacuum");
253 if (!Vacuum) Vacuum = new TGeoMedium("Vacuum", 1, matVacuum);
254 TGeoVolume* top = gGeoManager->MakeBox("WORLD", Vacuum, dx, dy, dz);
256 }
257
258 }
260 TGeoManager* GetGeometry() const;
262 void SetNavigator(KVGeoNavigator* geo);
263
271 KVMultiDetArray(const Char_t* name, const Char_t* type = "");
272 virtual ~KVMultiDetArray();
273
275 {
276 fFilterType = t;
277 }
278 void init();
279
280 virtual void Build(Int_t run = -1);
281 virtual void CreateIDTelescopesInGroups();
282
283 virtual void Clear(Option_t* opt = "");
284
285 virtual KVTelescope* GetTelescope(const Char_t* name) const;
286 virtual KVGroup* GetGroupWithDetector(const Char_t*);
287 virtual KVGroup* GetGroup(const Char_t*) const;
288 virtual KVGroup* GetGroupWithAngles(Float_t /*theta*/, Float_t /*phi*/)
289 {
290 return 0;
291 }
292 void RemoveGroup(KVGroup*);
293 void RemoveGroup(const Char_t*);
294 void ReplaceDetector(const Char_t* name, KVDetector* new_kvd);
295
298 {
299 return &fFiredDetectors;
300 }
301
304 {
305 return &fFiredSignals;
306 }
307
310 {
311 return &fExtraRawDataSignals;
312 }
313
314 virtual void DetectEvent(KVEvent* event, KVReconstructedEvent* rec_event, const Char_t* detection_frame = "");
316 virtual void GetDetectorEvent(KVDetectorEvent* detev, const TSeqCollection* fired_params = 0);
320 {
321 return DetectParticle_TGEO(part);
322 }
323 void DetectParticleIn(const Char_t* detname, KVNucleus* kvp);
324
325 KVIDTelescope* GetIDTelescope(const Char_t* name) const;
327 {
328 return fIDTelescopes;
329 }
333
334 virtual void SetTarget(KVTarget* target)
335 {
339
340 fTarget = target;
341 }
343 {
345 return fTarget;
346 }
347
349
351 {
352 return TestBit(kIsRemoving);
353 }
354
355 virtual Bool_t IsBuilt() const
356 {
357 return TestBit(kIsBuilt);
358 }
359 static KVMultiDetArray* MakeMultiDetector(const Char_t* dataset_name, Int_t run = -1, TString classname = "KVMultiDetArray");
360
362 {
363 return TestBit(kIsBeingDeleted);
364 }
366 virtual void SetParameters(UInt_t n, Bool_t physics_parameters_only = kFALSE);
369
371 {
372 return TestBit(kParamsSet);
373 }
375 {
376 return (TestBit(kIDParamsSet) || ParamsSet());
377 }
379 {
380 return (TestBit(kCalParamsSet) || ParamsSet());
381 }
383 {
384 return fCurrentRun;
385 }
387 {
388 fCurrentRun = r;
389 }
390
391 virtual void SetIdentifications();
392 virtual void InitializeIDTelescopes();
394
395 virtual Double_t GetTotalSolidAngle(void) const
396 {
402
403 Double_t SA = 0;
404 TIter it(GetDetectors());
405 KVDetector* d;
406 while ((d = (KVDetector*)it())) {
407 if (!d->GetNode()->GetDetectorsInFront()) {
408 SA += d->GetSolidAngle();
409 }
410 }
411 return SA;
412 }
413
418
419
420 virtual void SetSimMode(Bool_t on = kTRUE)
421 {
425 fSimMode = on;
426 GetDetectors()->R__FOR_EACH(KVDetector, SetSimMode)(on);
427 }
429 {
433 return fSimMode;
434 }
435
436 virtual Double_t GetPunchThroughEnergy(const Char_t* detector, Int_t Z, Int_t A);
437 virtual TGraph* DrawPunchThroughEnergyVsZ(const Char_t* detector, Int_t massform = KVNucleus::kBetaMass);
438 virtual TGraph* DrawPunchThroughEsurAVsZ(const Char_t* detector, Int_t massform = KVNucleus::kBetaMass);
439 virtual TGraph* DrawPunchThroughZVsVpar(const Char_t* detector, Int_t massform = KVNucleus::kBetaMass);
440
441 virtual void SetROOTGeometry(Bool_t on = kTRUE);
443 {
447
448 if (!GetDetectors()->GetEntries()) return kFALSE;
449 KVDetector* d = dynamic_cast<KVDetector*>(GetDetectors()->First());
450 return d->ROOTGeo();
451 }
453 TGeoTranslation* postTrans = nullptr);
457 void FillListOfIDTelescopes(KVIDGraph* gr) const;
458
459 void Draw(Option_t* option = "");
461 {
463 return &fTrajectories;
464 }
465
467 {
470 }
471 void MakeHistogramsForAllIDTelescopes(KVSeqCollection* list, Int_t dimension = 100);
474
476 virtual void FillDetectorList(KVReconstructedNucleus* rnuc, KVHashList* DetList, const KVString& DetNames);
477
480 {
481 return fAcceptIDCodes;
482 }
484 {
485 return fAcceptECodes;
486 }
487 void AcceptIDCodes(const KVNumberList& codelist)
488 {
510
511 fAcceptIDCodes = codelist;
512 }
513 virtual void AcceptAllIDCodes()
514 {
519
520 AcceptIDCodes("");
521 }
522 void AcceptECodes(const KVNumberList& codelist)
523 {
537
545
546 fAcceptECodes = codelist;
547 }
548 virtual void AcceptAllECodes()
549 {
554
555 AcceptECodes("");
556 }
557
558 virtual KVMultiDetArray* GetArray(const Char_t*) const
559 {
560 return const_cast<KVMultiDetArray*>(this);
561 }
562
563 void RecursiveTrajectoryClustering(KVGeoDetectorNode* N, KVUniqueNameList& tried_trajectories, KVUniqueNameList& multitraj_nodes, KVUniqueNameList& detectors_of_group);
564 virtual const Char_t* GetPartSeedCond() const
565 {
567 return fPartSeedCond;
568 }
569 virtual void SetPartSeedCond(const Char_t* cond)
570 {
572 fPartSeedCond = cond;
573 }
576 {
577 std::unique_ptr<KVSeqCollection> glist(GetStructureTypeList("GROUP"));
578 return glist->GetEntries();
579 }
580
583#ifdef WITH_MFM
584 Bool_t HandleRawDataBuffer(MFMBufferReader&);
585#endif
587 {
588 return fHandledRawData;
589 }
591
593 {
594 return fDataSet;
595 }
596
597 virtual void MakeCalibrationTables(KVExpDB*);
598 virtual void SetCalibratorParameters(KVDBRun*, const TString& = "");
599 void CheckStatusOfDetectors(KVDBRun*, const TString& = "");
600 virtual void SetDetectorParametersForRun(KVDBRun*, const TString& = "");
601
603 {
605 return 5;
606 }
608 {
609 return "";
610 }
612 {
613 return "";
614 }
621
622 ClassDef(KVMultiDetArray, 7) //Base class for multidetector arrays
623};
624
626R__EXTERN KVMultiDetArray* gMultiDetArray;
627
628#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
float Float_t
constexpr Bool_t kFALSE
double Double_t
const char Option_t
#define ClassDef(name, id)
#define BIT(n)
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
R__EXTERN TGeoManager * gGeoManager
char * Form(const char *fmt,...)
Description of an experimental run in database ,,.
Definition KVDBRun.h:36
Table in a database.
Definition KVDBTable.h:34
List of hit groups in a multidetector array.
Base class for detector geometry description.
Definition KVDetector.h:160
Abstract base class container for multi-particle events.
Definition KVEvent.h:67
Base class to describe database of an experiment ,,.
Definition KVExpDB.h:20
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:68
Base class for propagation of particles through array geometry.
Base class describing elements of array geometry.
KVSeqCollection * GetStructureTypeList(const Char_t *type) const
const KVSeqCollection * GetDetectors() 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...
Extended TList class which owns its objects by default.
Definition KVList.h:28
Read MFM format acquisition data.
Base class for describing the geometry of a detector array.
KVNumberList fAcceptECodes
list of acceptable calibration codes for reconstructed nuclei
Bool_t IsROOTGeometry() const
bool try_a_singleIDtelescope(TString uri, KVDetector *d, TCollection *l)
KVUniqueNameList fExtraRawDataSignals
any signals read from raw data not associated with a detector
virtual KVGroup * GetGroupWithDetector(const Char_t *)
KVUniqueNameList * GetIDTelescopeTypes()
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
virtual void DetectEvent(KVEvent *event, KVReconstructedEvent *rec_event, const Char_t *detection_frame="")
const KVNameValueList & GetReconParameters() const
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)
virtual void GetIDTelescopesForGroup(KVGroup *grp, TCollection *tel_list)
static Bool_t fCloseGeometryNow
virtual KVGroup * GetGroup(const Char_t *) const
Return pointer to group with name.
virtual void DeduceIdentificationTelescopesFromGeometry()
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)
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
virtual UShort_t GetCoherencyIDCode()
virtual KVNameValueList * DetectParticle(KVNucleus *part)
const KVSeqCollection * GetFiredSignals() const
void ReadAbsentDetectors(KVExpDB *db)
void RecursiveTrajectoryClustering(KVGeoDetectorNode *N, KVUniqueNameList &tried_trajectories, KVUniqueNameList &multitraj_nodes, KVUniqueNameList &detectors_of_group)
KVSeqCollection * fIDTelescopes
deltaE-E telescopes in groups
virtual Int_t FilteredEventCoherencyAnalysis(Int_t round, KVReconstructedEvent *rec_event)
void AcceptECodes(const KVNumberList &codelist)
UInt_t fCurrentRun
Number of the current run used to call SetParameters.
static Bool_t fMakeMultiDetectorSetParameters
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
virtual UChar_t GetNormalCalibrationCode()
int try_all_doubleID_telescopes(KVDetector *de, KVDetector *e, TCollection *l)
Bool_t IsSimMode() const
const KVNumberList & GetAcceptedECodes() const
void AcceptIDCodes(const KVNumberList &codelist)
void FillHistogramsForAllIDTelescopes(KVSeqCollection *list)
Fill TH2F histograms for all IDTelescopes of the array.
void set_detector_thicknesses(const TString &)
const KVSeqCollection * GetFiredDetectors() const
virtual void BuildGeometry()
virtual TGraph * DrawPunchThroughEsurAVsZ(const Char_t *detector, Int_t massform=KVNucleus::kBetaMass)
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)
const KVSeqCollection * GetExtraRawDataSignals() const
void SetCurrentRunNumber(UInt_t r)
virtual void SetDetectorParametersForRun(KVDBRun *, const TString &="")
virtual void SetDetecting(KVDetector *det, Bool_t detecting=kTRUE)
void SetFilterType(Int_t t)
virtual TString GetIDCodeMeaning(Int_t) const
virtual void copy_fired_parameters_to_recon_param_list()
TString GetDataSet() const
virtual void SetPresent(KVDetector *det, Bool_t present=kTRUE)
void CalculateDetectorSegmentationIndex()
void AddTrajectory(KVGeoDNTrajectory *d)
virtual void AnalyseGroupAndReconstructEvent(KVReconstructedEvent *recev, KVGroup *grp)
static TGeoHMatrix * GetVolumePositioningMatrix(Double_t distance, Double_t theta, Double_t phi, TGeoTranslation *postTrans=nullptr)
KVGeoNavigator * GetNavigator() const
void DetectParticleIn(const Char_t *detname, KVNucleus *kvp)
KVUpDater * fUpDater
used to set parameters for multidetector
virtual Int_t GetIDTelescopes(KVDetector *, KVDetector *, TCollection *list)
void SetGeometry(TGeoManager *)
virtual KVMultiDetArray * GetArray(const Char_t *) const
UShort_t GetZminCode()
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)
virtual void Clear(Option_t *opt="")
void CheckStatusOfDetectors(KVDBRun *, const TString &="")
virtual void PerformClosedROOTGeometryOperations()
KVRangeTableGeoNavigator * fNavigator
for propagating particles through array geometry
UInt_t GetCurrentRunNumber() const
void SetDetectorTransparency(Char_t)
Modify the transparency of detector volumes in OpenGL view.
KVSeqCollection * GetListOfIDTelescopes() const
virtual KVGroupReconstructor * GetReconstructorForGroup(const KVGroup *) const
virtual void SetIdentifications()
static Bool_t fMakeMultiDetectorPhysicsParametersOnly
void RemoveGroup(KVGroup *)
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 UShort_t GetBadIDCode()
virtual Bool_t handle_raw_data_event_ebyedat(KVGANILDataReader &)
General method for reading raw data in old GANIL ebyedat format.
TString fPartSeedCond
condition for seeding new reconstructed particles
virtual void MakeListOfDetectors()
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)
void ReplaceDetector(const Char_t *name, KVDetector *new_kvd)
virtual Bool_t handle_raw_data_event_mfmframe(const MFMCommonFrame &)
virtual Bool_t IsBuilt() const
TGeoManager * GetGeometry() const
Return pointer to the (ROOT) geometry of the array.
static KVMultiDetArray * MakeMultiDetector(const Char_t *dataset_name, Int_t run=-1, TString classname="KVMultiDetArray")
virtual KVGroup * GetGroupWithAngles(Float_t, Float_t)
KVRawDataReader * fRawDataReader
last raw data reader object used in call to HandleRawData
virtual void ReconstructEvent(KVReconstructedEvent *, KVDetectorEvent *)
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)
virtual TGraph * DrawPunchThroughZVsVpar(const Char_t *detector, Int_t massform=KVNucleus::kBetaMass)
static Int_t fMakeMultiDetectorRunNumber
virtual Bool_t HandleRawDataEvent(KVRawDataReader *)
virtual Double_t GetPunchThroughEnergy(const Char_t *detector, Int_t Z, Int_t A)
virtual void InitializeIDTelescopes()
virtual void SetROOTGeometry(Bool_t on=kTRUE)
KVUniqueNameList fFiredDetectors
list of fired detectors after reading raw data event
virtual void RenumberGroups()
virtual void SetRunCalibrationParameters(UShort_t n)
bool try_upper_and_lower_doubleIDtelescope(TString uri, KVDetector *de, KVDetector *e, TCollection *l)
virtual void SetSimMode(Bool_t on=kTRUE)
virtual TGraph * DrawPunchThroughEnergyVsZ(const Char_t *detector, Int_t massform=KVNucleus::kBetaMass)
virtual Double_t GetTotalSolidAngle(void) const
Bool_t fROOTGeometry
=kTRUE use ROOT geometry
const TSeqCollection * GetTrajectories() const
virtual void SetTarget(KVTarget *target)
virtual void AcceptAllIDCodes()
void ReadCalibrationFiles(KVExpDB *db)
virtual UShort_t GetMultiHitFirstStageIDCode()
virtual void SetCalibratorParameters(KVDBRun *, const TString &="")
const KVNumberList & GetAcceptedIDCodes() const
KVNameValueList * DetectParticle_TGEO(KVNucleus *part)
Int_t fFilterType
type of filtering (used by DetectEvent)
virtual void PrepareModifGroup(KVGroup *grp, KVDetector *dd)
virtual void SetPartSeedCond(const Char_t *cond)
KVNameValueList & GetReconParameters()
void SetGridsInTelescopes(UInt_t run)
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
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
TString fDataSet
name of associated dataset, used with MakeMultiDetector()
void AssociateTrajectoriesAndNodes()
void ReadCalibFile(const Char_t *filename, KVExpDB *db, KVDBTable *calib_table)
virtual void AcceptParticleForAnalysis(KVReconstructedNucleus *) const
virtual KVTelescope * GetTelescope(const Char_t *name) const
Return pointer to telescope in array with name given by "name".
void SetNavigator(KVGeoNavigator *geo)
EFilterType
filter types. values of fFilterType
KVMultiDetArray()
Default constructor.
KVUpDater * GetUpDater()
void DeduceGroupsFromTrajectories()
KVTarget * GetTarget()
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 void GetAlignedIDTelescopesForDetector(KVDetector *det, TCollection *list)
virtual void CreateIDTelescopesInGroups()
KVUnownedList fFiredSignals
list of fired signals after reading raw data event
virtual const Char_t * GetPartSeedCond() const
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
Strings used to represent a set of ranges of values.
Read Google Protobuf DAQ files.
Propagate particles through array geometry calculating energy losses.
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.
virtual TObject * First() const
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:127
Associates two detectors placed one behind the other.
Definition KVTelescope.h:36
Optimised list in which named objects can only be placed once.
virtual void Add(TObject *obj)
Extended TList class which does not own its objects by default.
Abstract class implementing necessary methods for setting multidetector parameters for each run of th...
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
void AbstractMethod(const char *method) const
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
const char * Data() const