KaliVeda  1.12/06
Heavy-Ion Analysis Toolkit
KVMultiDetArray.h
Go to the documentation of this file.
1 
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 class KVIDGraph;
18 class KVTarget;
19 class KVTelescope;
20 class KVIDTelescope;
21 class KVACQParam;
23 class KVDetectorEvent;
24 class KVGroup;
25 class KVEvent;
26 class KVNameValueList;
28 class KVList;
29 class KVGeoNavigator;
31 class KVUpDater;
32 class KVRawDataReader;
33 #ifdef WITH_BUILTIN_GRU
34 class KVGANILDataReader;
35 #endif
36 #ifdef WITH_MFM
37 class MFMCommonFrame;
38 class MFMMergeFrameManager;
40 class MFMEbyedatFrame;
41 class MFMBufferReader;
42 #endif
43 #ifdef WITH_PROTOBUF
45 #endif
46 class KVExpSetUp;
47 class KVExpDB;
48 class KVDBTable;
49 class KVDBRun;
50 
60 
61  friend class KVGeoImport;
62  friend class KVExpSetUp;
63 
64 protected:
65 
69 
71  enum {
72  kIsRemoving = BIT(14), //flag set during call to RemoveLayer etc.
73  kParamsSet = BIT(15), //flag set when SetParameters called
74  kIsBuilt = BIT(16), //flag set when Build() is called
75  kIsBeingDeleted = BIT(17), //flag set when dtor is called
76  kIDParamsSet = BIT(18), //flag set when SetRunIdentificationParameters called
77  kCalParamsSet = BIT(19) //flag set when SetRunCalibrationParameters called
78  };
79 
82 
83  KVDetectorEvent* fHitGroups;
87 
91 
93 
95 
97 
99 
101 
104 
106 
108 
110 
111  virtual void RenumberGroups();
112  virtual void BuildGeometry()
113  {
114  AbstractMethod("BuildGeometry");
115  }
116  virtual void MakeListOfDetectors();
117  virtual void SetACQParams();
118 
120 
122  {
126  }
127 
134  virtual void set_up_telescope(KVDetector* de, KVDetector* e, KVIDTelescope* idt, TCollection* l);
136 
137  virtual void GetAlignedIDTelescopesForDetector(KVDetector* det, TCollection* list);
138  virtual void GetIDTelescopesForGroup(KVGroup* grp, TCollection* tel_list);
139  virtual void PrepareModifGroup(KVGroup* grp, KVDetector* dd);
140  virtual void SetPresent(KVDetector* det, Bool_t present = kTRUE);
141  virtual void SetDetecting(KVDetector* det, Bool_t detecting = kTRUE);
142 
146  {
148  }
151 
152 #ifdef WITH_MFM
153  virtual Bool_t handle_raw_data_event_mfmfile(MFMBufferReader&);
154  virtual Bool_t handle_raw_data_event_mfmmergeframe(const MFMMergeFrameManager&);
155  virtual Bool_t handle_raw_data_event_mfmframe(const MFMCommonFrame&);
156  virtual Bool_t handle_raw_data_event_mfmframe_ebyedat(const MFMEbyedatFrame&);
157 #endif
158 #ifdef WITH_PROTOBUF
160 #endif
161 #ifdef WITH_BUILTIN_GRU
163 #endif
164  virtual void prepare_to_handle_new_raw_data();
165 
167 
169 
170  TString GetFileName(KVExpDB*, const Char_t* meth, const Char_t* keyw);
171  unique_ptr<KVFileReader> GetKVFileReader(KVExpDB* db, const Char_t* meth, const Char_t* keyw);
172  void ReadCalibrationFiles(KVExpDB* db);
173  void ReadCalibFile(const Char_t* filename, KVExpDB* db, KVDBTable* calib_table);
174  void ReadOoODetectors(KVExpDB* db);
175 
179  {
183  return 14;
184  }
186  {
190  return 6;
191  }
193  {
197  return 8;
198  }
200  {
204  }
206  {
209  return 1;
210  }
211 
212 public:
213 
215  {
218  return fReconParameters;
219  }
221  {
224  return fReconParameters;
225  }
226  virtual void SetReconParametersInEvent(KVReconstructedEvent*) const;
227  void CreateGeoManager(Double_t dx = 500, Double_t dy = 500, Double_t dz = 500)
228  {
229  if (!gGeoManager) {
230 
231  new TGeoManager(GetName(), Form("%s geometry for dataset %s", GetName(), fDataSet.Data()));
232 
233  TGeoMaterial* matVacuum = gGeoManager->GetMaterial("Vacuum");
234  if (!matVacuum) {
235  matVacuum = new TGeoMaterial("Vacuum", 0, 0, 0);
236  matVacuum->SetTitle("Vacuum");
237  }
238  TGeoMedium* Vacuum = gGeoManager->GetMedium("Vacuum");
239  if (!Vacuum) Vacuum = new TGeoMedium("Vacuum", 1, matVacuum);
240  TGeoVolume* top = gGeoManager->MakeBox("WORLD", Vacuum, dx, dy, dz);
242  }
243 
244  }
245  void SetGeometry(TGeoManager*);
246  TGeoManager* GetGeometry() const;
247  KVGeoNavigator* GetNavigator() const;
248  void SetNavigator(KVGeoNavigator* geo);
249 
251  enum EFilterType {
255  };
256  KVMultiDetArray();
257  KVMultiDetArray(const Char_t* name, const Char_t* type = "");
258  virtual ~KVMultiDetArray();
259 
261  {
262  fFilterType = t;
263  }
264  void init();
265 
266  virtual void Build(Int_t run = -1);
267  virtual void CreateIDTelescopesInGroups();
268 
269  virtual void Clear(Option_t* opt = "");
270 
271  virtual KVTelescope* GetTelescope(const Char_t* name) const;
272  virtual KVGroup* GetGroupWithDetector(const Char_t*);
273  virtual KVGroup* GetGroup(const Char_t*) const;
274  virtual KVGroup* GetGroupWithAngles(Float_t /*theta*/, Float_t /*phi*/)
275  {
276  return 0;
277  }
278  void RemoveGroup(KVGroup*);
279  void RemoveGroup(const Char_t*);
280  void ReplaceDetector(const Char_t* name, KVDetector* new_kvd);
281 
282  void AddACQParam(KVACQParam*);
284  {
285  return fACQParams;
286  }
287 
290  {
291  return &fFiredACQParams;
292  }
293 
294  KVACQParam* GetACQParam(const Char_t* name) const
295  {
296  if (fACQParams) return fACQParams->get_object<KVACQParam>(name);
297  return nullptr;
298  }
299  virtual void SetArrayACQParams();
300 
301  virtual void DetectEvent(KVEvent* event, KVReconstructedEvent* rec_event, const Char_t* detection_frame = "");
303  virtual void GetDetectorEvent(KVDetectorEvent* detev, const TSeqCollection* fired_params = 0);
304  virtual void ReconstructEvent(KVReconstructedEvent*, KVDetectorEvent*);
307  {
308  return DetectParticle_TGEO(part);
309  }
310  void DetectParticleIn(const Char_t* detname, KVNucleus* kvp);
311 
312  KVIDTelescope* GetIDTelescope(const Char_t* name) const;
314  {
315  return fIDTelescopes;
316  }
319  virtual void SetDetectorThicknesses();
320 
321  void SetTarget(const Char_t* material, const Float_t thickness);
322  void SetTarget(KVTarget* target);
323  void SetTargetMaterial(const Char_t* material);
324  void SetTargetThickness(const Float_t thickness);
326  {
327  return fTarget;
328  }
329 
331 
333  {
334  return TestBit(kIsRemoving);
335  }
336 
337  virtual Bool_t IsBuilt() const
338  {
339  return TestBit(kIsBuilt);
340  }
341  static KVMultiDetArray* MakeMultiDetector(const Char_t* dataset_name, Int_t run = -1, TString classname = "KVMultiDetArray");
342 
344  {
345  return TestBit(kIsBeingDeleted);
346  }
348  virtual void SetParameters(UInt_t n, Bool_t physics_parameters_only = kFALSE);
350  virtual void SetRunCalibrationParameters(UShort_t n);
351 
353  {
354  return TestBit(kParamsSet);
355  }
357  {
358  return (TestBit(kIDParamsSet) || ParamsSet());
359  }
361  {
362  return (TestBit(kCalParamsSet) || ParamsSet());
363  }
365  {
366  return fCurrentRun;
367  }
369  {
370  fCurrentRun = r;
371  }
372 
373  virtual void SetIdentifications();
374  virtual void InitializeIDTelescopes();
375  Bool_t ReadGridsFromAsciiFile(const Char_t*) const;
376 
377  virtual Double_t GetTotalSolidAngle(void) const
378  {
384 
385  Double_t SA = 0;
386  TIter it(GetDetectors());
387  KVDetector* d;
388  while ((d = (KVDetector*)it())) {
389  if (!d->GetNode()->GetDetectorsInFront()) {
390  SA += d->GetSolidAngle();
391  }
392  }
393  return SA;
394  }
395 
400 
401 
402  virtual void SetSimMode(Bool_t on = kTRUE)
403  {
407  fSimMode = on;
408  const_cast<KVSeqCollection*>(GetDetectors())->Execute("SetSimMode", Form("%d", (Int_t)on));
409  }
410  virtual Bool_t IsSimMode() const
411  {
415  return fSimMode;
416  }
417 
418  virtual Double_t GetPunchThroughEnergy(const Char_t* detector, Int_t Z, Int_t A);
419  virtual TGraph* DrawPunchThroughEnergyVsZ(const Char_t* detector, Int_t massform = KVNucleus::kBetaMass);
420  virtual TGraph* DrawPunchThroughEsurAVsZ(const Char_t* detector, Int_t massform = KVNucleus::kBetaMass);
421  virtual TGraph* DrawPunchThroughZVsVpar(const Char_t* detector, Int_t massform = KVNucleus::kBetaMass);
422 
423  virtual void SetROOTGeometry(Bool_t on = kTRUE);
425  {
429 
430  if (!GetDetectors()->GetEntries()) return kFALSE;
431  KVDetector* d = dynamic_cast<KVDetector*>(GetDetectors()->First());
432  return d->ROOTGeo();
433  }
434  static TGeoHMatrix* GetVolumePositioningMatrix(Double_t distance, Double_t theta, Double_t phi,
435  TGeoTranslation* postTrans = nullptr);
438  virtual void SetGridsInTelescopes(UInt_t run);
439  void FillListOfIDTelescopes(KVIDGraph* gr) const;
440 
441  void Draw(Option_t* option = "");
443  {
445  return &fTrajectories;
446  }
447 
449  {
452  }
453  void MakeHistogramsForAllIDTelescopes(KVSeqCollection* list, Int_t dimension = 100);
456 
458  virtual void FillDetectorList(KVReconstructedNucleus* rnuc, KVHashList* DetList, const KVString& DetNames);
459 
462  {
463  return fAcceptIDCodes;
464  }
466  {
467  return fAcceptECodes;
468  }
469  void AcceptIDCodes(const KVNumberList& codelist)
470  {
492 
493  fAcceptIDCodes = codelist;
494  }
495  virtual void AcceptAllIDCodes()
496  {
501 
502  AcceptIDCodes("");
503  }
504  void AcceptECodes(const KVNumberList& codelist)
505  {
519 
527 
528  fAcceptECodes = codelist;
529  }
530  virtual void AcceptAllECodes()
531  {
536 
537  AcceptECodes("");
538  }
539 
540  virtual KVMultiDetArray* GetArray(const Char_t*) const
541  {
542  return const_cast<KVMultiDetArray*>(this);
543  }
544 
545  virtual void SetMinimumOKMultiplicity(KVEvent*) const;
546  void RecursiveTrajectoryClustering(KVGeoDetectorNode* N, KVUniqueNameList& tried_trajectories, KVUniqueNameList& multitraj_nodes, KVUniqueNameList& detectors_of_group);
547  virtual const Char_t* GetPartSeedCond() const
548  {
550  return fPartSeedCond;
551  }
552  virtual void SetPartSeedCond(const Char_t* cond)
553  {
555  fPartSeedCond = cond;
556  }
559  {
560  unique_ptr<KVSeqCollection> glist(GetStructureTypeList("GROUP"));
561  return glist->GetEntries();
562  }
563 
566 #ifdef WITH_MFM
567  Bool_t HandleRawDataBuffer(MFMBufferReader&);
568 #endif
570  {
571  return fHandledRawData;
572  }
574 
576  {
577  return fDataSet;
578  }
579 
580  virtual void MakeCalibrationTables(KVExpDB*);
581  virtual void SetCalibratorParameters(KVDBRun*, const TString& = "");
582  virtual void CheckStatusOfDetectors(KVDBRun*, const TString& = "");
583 
585  {
587  return 5;
588  }
589 
590 
591  ClassDef(KVMultiDetArray, 7) //Base class for multidetector arrays
592 };
593 
596 
597 #endif
int Int_t
unsigned int UInt_t
#define R__EXTERN
R__EXTERN KVMultiDetArray * gMultiDetArray
................ global variable
ROOT::R::TRInterface & r
#define d(i)
unsigned short UShort_t
unsigned char UChar_t
char Char_t
const Bool_t kFALSE
bool Bool_t
double Double_t
float Float_t
const char Option_t
#define ClassDef(name, id)
#define BIT(n)
R__EXTERN TGeoManager * gGeoManager
char * Form(const char *fmt,...)
GANIL VXI/VME acquisition parameter.
Definition: KVACQParam.h:15
Description of an experimental run in database ,.
Definition: KVDBRun.h:35
Table in a database.
Definition: KVDBTable.h:33
Base class for detector geometry description, interface to energy-loss calculations.
Definition: KVDetector.h:121
Base class container for multi-particle events.
Definition: KVEvent.h:176
Base class to describe database of an experiment ,.
Definition: KVExpDB.h:18
Describe an experimental set-up coupling two or more different detector arrays.
Definition: KVExpSetUp.h:23
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:67
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
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:19
Extended version of ROOT THashList.
Definition: KVHashList.h:28
Base class for particle identification in a 2D map.
Definition: KVIDGraph.h:31
Base class for all detectors or associations of detectors in array which can identify charged particl...
Definition: KVIDTelescope.h:88
Extended TList class which owns its objects by default.
Definition: KVList.h:27
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
virtual KVNameValueList * DetectParticle(KVNucleus *part)
Bool_t IsROOTGeometry() const
bool try_a_singleIDtelescope(TString uri, KVDetector *d, TCollection *l)
virtual KVGroup * GetGroupWithDetector(const Char_t *)
const KVNumberList & GetAcceptedIDCodes() const
KVSeqCollection * GetListOfIDTelescopes() const
KVUniqueNameList * GetIDTelescopeTypes()
void FillListOfIDTelescopes(KVIDGraph *gr) const
virtual Bool_t handle_raw_data_event_mfmframe_ebyedat(const MFMEbyedatFrame &)
KVNumberList fAcceptIDCodes
list of acceptable identification codes for reconstructed nuclei
virtual void DetectEvent(KVEvent *event, KVReconstructedEvent *rec_event, const Char_t *detection_frame="")
virtual void SetDetectorThicknesses()
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)
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.
const KVSeqCollection * GetACQParams() const
void DeduceIdentificationTelescopesFromGeometry()
virtual void AcceptAllECodes()
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()
KVTarget * GetTarget()
virtual Bool_t IsSimMode() const
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)
virtual void SetMinimumOKMultiplicity(KVEvent *) const
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.
virtual 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)
void AcceptIDCodes(const KVNumberList &codelist)
void FillHistogramsForAllIDTelescopes(KVSeqCollection *list)
Fill TH2F histograms for all IDTelescopes of the array.
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
void InitialiseRawDataReading(KVRawDataReader *)
virtual void SetParameters(UInt_t n, Bool_t physics_parameters_only=kFALSE)
void SetCurrentRunNumber(UInt_t r)
KVSeqCollection * fACQParams
list of data acquisition parameters associated to detectors
virtual void SetDetecting(KVDetector *det, Bool_t detecting=kTRUE)
void SetFilterType(Int_t t)
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)
const KVNumberList & GetAcceptedECodes() const
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
void SetTarget(const Char_t *material, const Float_t thickness)
virtual Int_t GetIDTelescopes(KVDetector *, KVDetector *, TCollection *list)
void SetGeometry(TGeoManager *)
UShort_t GetZminCode()
virtual void MakeCalibrationTables(KVExpDB *)
virtual ~KVMultiDetArray()
destroy (delete) the MDA and all the associated structure, detectors etc.
KVUniqueNameList fFiredACQParams
list of fired acquisition parameters after reading raw data event
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="")
virtual void CheckStatusOfDetectors(KVDBRun *, const TString &="")
virtual void SetArrayACQParams()
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.
virtual KVGroupReconstructor * GetReconstructorForGroup(const KVGroup *) const
virtual void SetIdentifications()
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 &)
Bool_t IsBeingDeleted()
TString fPartSeedCond
condition for seeding new reconstructed particles
const TSeqCollection * GetTrajectories() const
virtual void MakeListOfDetectors()
void SetTargetMaterial(const Char_t *material)
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()
void Draw(Option_t *option="")
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 void ReconstructEvent(KVReconstructedEvent *, KVDetectorEvent *)
virtual KVGroup * GetGroupWithAngles(Float_t, Float_t)
virtual void SetRawDataFromReconEvent(KVNameValueList &)
virtual Int_t GetIDCodeForParticlesStoppingInFirstStageOfTelescopes() const
virtual TGraph * DrawPunchThroughZVsVpar(const Char_t *detector, Int_t massform=KVNucleus::kBetaMass)
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)
virtual void RenumberGroups()
virtual void SetRunCalibrationParameters(UShort_t n)
virtual const Char_t * GetPartSeedCond() const
void PrintStatusOfIDTelescopes()
virtual void SetACQParams()
KVACQParam * GetACQParam(const Char_t *name) const
bool try_upper_and_lower_doubleIDtelescope(TString uri, KVDetector *de, KVDetector *e, TCollection *l)
virtual void SetSimMode(Bool_t on=kTRUE)
void PrintCalibStatusOfDetectors()
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
virtual void AcceptAllIDCodes()
void ReadCalibrationFiles(KVExpDB *db)
virtual UShort_t GetMultiHitFirstStageIDCode()
virtual void SetCalibratorParameters(KVDBRun *, const TString &="")
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)
virtual 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.
void AddACQParam(KVACQParam *)
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()
void AssociateTrajectoriesAndNodes()
void SetTargetThickness(const Float_t thickness)
void ReadCalibFile(const Char_t *filename, KVExpDB *db, KVDBTable *calib_table)
virtual KVMultiDetArray * GetArray(const Char_t *) const
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()
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()
const KVSeqCollection * GetFiredDataParameters() 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:125
Strings used to represent a set of ranges of values.
Definition: KVNumberList.h:83
Read Google Protobuf DAQ files.
Propagate particles through array geometry calculating energy losses.
Abstract base class for reading raw (DAQ) data.
Physical event reconstructed from data measured with a detector array using implemented identificatio...
Nuclei reconstructed from data measured by a detector array ,.
KaliVeda extensions to ROOT collection classes.
virtual TObject * First() const
T * get_object(const char *name) const
Extension of ROOT TString class which allows backwards compatibility with ROOT v3....
Definition: KVString.h:72
Calculation/correction of energy losses of particles through an experimental target.
Definition: KVTarget.h:126
Associates two detectors placed one behind the other.
Definition: KVTelescope.h:35
Optimised list in which named objects can only be placed once.
virtual void Add(TObject *obj)
Abstract class implementing necessary methods for setting multidetector parameters for each run of th...
Definition: KVUpDater.h:24
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 const char * GetName() const
virtual void SetTitle(const char *title="")
void AbstractMethod(const char *method) const
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
virtual void Execute(const char *method, const char *params, Int_t *error=0)
const char * Data() const