KaliVeda
Toolkit for HIC analysis
KVGroup.h
1 #ifndef KVGROUP_H
2 #define KVGROUP_H
3 
4 #define KVGROUP_ADD_UNKNOWN_TELESCOPE "Attempt to add undefined telescope to group"
5 
6 #include "KVGeoStrucElement.h"
7 #include "KVList.h"
8 #include "KVGeoDNTrajectory.h"
9 #include "KVNameValueList.h"
10 class KVDetector;
11 class KVNucleus;
19 class KVGroup : public KVGeoStrucElement {
20 
21 protected:
22  enum {
23  kIsRemoving = BIT(14) //flag set during call to RemoveTelescope
24  };
29 
30 public:
31  enum {
34  };
35  KVGroup();
36  void init();
37  virtual ~ KVGroup();
38  void SetNumber(UInt_t num) override
39  {
41  SetName(Form("Group_%u", num));
43  }
44 
45  void Reset(Option_t* opt = "");
46 
47  inline UInt_t GetHits()
48  {
50  return fReconstructedNuclei->GetSize();
51  else
52  return 0;
53  };
54  void ClearHitDetectors();
56  {
57  return fReconstructedNuclei;
58  }
59  void AddHit(KVNucleus* kvd);
60  void RemoveHit(KVNucleus* kvd);
61 
63  {
64  return TestBit(kIsRemoving);
65  }
66  virtual void Sort() {}
67  virtual void CountLayers() {}
69  {
70  return &fTrajectories;
71  }
73  {
74  fTrajectories.Add(t);
75  }
77  {
79  }
81  {
84  }
85 
88  {
90  return &fReconTraj;
91  }
93  {
96  }
97 
99  {
100  if (t && n) {
101  TString mapped_name = fReconTrajMap.GetStringValue(Form("%s_%s", t->GetTrajectoryName(), n->GetName()));
102  const KVGeoDNTrajectory* tr = (const KVGeoDNTrajectory*)fReconTraj.FindObject(mapped_name);
103  return tr;
104  }
105  return nullptr;
106  }
107  void PrintData() const;
108 
109  ClassDefOverride(KVGroup, 1)//Group of detectors having similar angular positions.
110 };
111 #endif
int Int_t
unsigned int UInt_t
#define c(i)
bool Bool_t
const char Option_t
#define BIT(n)
#define ClassDefOverride(name, id)
char * Form(const char *fmt,...)
virtual void SetNumber(UInt_t num)
Definition: KVBase.h:215
Path taken by particles through multidetector geometry.
const Char_t * GetTrajectoryName() const
Information on relative positions of detectors & particle trajectories.
Base class describing elements of array geometry.
Group of detectors which can be treated independently of all others in array.
Definition: KVGroup.h:19
void SetNumber(UInt_t num) override
Definition: KVGroup.h:38
void AddTrajectory(KVGeoDNTrajectory *t)
Definition: KVGroup.h:72
KVHashList fTrajectories
Trajectories passing through group.
Definition: KVGroup.h:26
void Reset(Option_t *opt="")
Definition: KVGroup.cpp:63
const KVGeoDNTrajectory * FindReconTraj(const KVString &path)
Definition: KVGroup.h:92
UInt_t GetHits()
Definition: KVGroup.h:47
virtual ~ KVGroup()
KVHashList fReconTraj
list of all possible trajectories for reconstructed particles
Definition: KVGroup.h:27
void init()
Definition: KVGroup.cpp:27
KVNameValueList fReconTrajMap
map names of duplicate trajectories for reconstructed particles
Definition: KVGroup.h:28
KVList * GetParticles()
Definition: KVGroup.h:55
const TCollection * GetTrajectories() const
Definition: KVGroup.h:68
virtual void CountLayers()
Definition: KVGroup.h:67
@ kIsRemoving
Definition: KVGroup.h:23
void ClearHitDetectors()
Definition: KVGroup.cpp:121
void AddHit(KVNucleus *kvd)
Definition: KVGroup.cpp:83
void ReplaceTrajectories(const TCollection *c)
Definition: KVGroup.h:80
const KVGeoDNTrajectory * GetTrajectoryForReconstruction(const KVGeoDNTrajectory *t, const KVGeoDetectorNode *n) const
Definition: KVGroup.h:98
void AddTrajectories(const TCollection *c)
Definition: KVGroup.h:76
const TSeqCollection * GetReconTrajectories() const
Definition: KVGroup.h:87
virtual void Sort()
Definition: KVGroup.h:66
void RemoveHit(KVNucleus *kvd)
Definition: KVGroup.cpp:99
void PrintData() const
list detectors of group with any data they contain
Definition: KVGroup.cpp:196
KVGroup()
Definition: KVGroup.cpp:15
KVList * fReconstructedNuclei
Particles reconstructed in this group.
Definition: KVGroup.h:25
Bool_t IsRemoving()
Definition: KVGroup.h:62
Int_t CalculateReconstructionTrajectories()
Definition: KVGroup.cpp:136
@ kBackwards
Definition: KVGroup.h:33
@ kForwards
Definition: KVGroup.h:32
Extended version of ROOT THashList.
Definition: KVHashList.h:29
Extended TList class which owns its objects by default.
Definition: KVList.h:28
Handles lists of named parameters with different types, a list of KVNamedParameter objects.
const Char_t * GetStringValue(const Char_t *name) const
Description of properties and kinematics of atomic nuclei.
Definition: KVNucleus.h:123
void Add(TObject *obj) override
TObject * FindObject(const char *name) const override
Int_t GetSize() const override
void Clear(Option_t *option="") override
virtual TObject * FindObjectByTitle(const Char_t *) const
Will return object with given title (value of TObject::GetTitle() method).
Extension of ROOT TString class which allows backwards compatibility with ROOT v3....
Definition: KVString.h:73
virtual void AddAll(const TCollection *col)
virtual void SetName(const char *name)
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
const Int_t n