KaliVeda
Toolkit for HIC analysis
KVINDRAFilterEtalonGroupReconstructor.h
1 #ifndef __KVINDRAFILTERETALONGROUPRECONSTRUCTOR_H
2 #define __KVINDRAFILTERETALONGROUPRECONSTRUCTOR_H
3 
4 #include "KVINDRAFilterGroupReconstructor.h"
5 
18  struct etalon_telescope {
19  KVGeoDetectorNode* csi_etalon = nullptr;
20  KVDetector* sili = nullptr;
21  KVGeoDNTrajectory* etalon_trajectory = nullptr;
22  KVGeoDNTrajectory* not_etalon_trajectory = nullptr;
23  };
24  std::map<int, etalon_telescope> etalons;
25  std::map<const KVGeoDetectorNode*, int> etalon_csi_rings;
26 public:
28 
30  {
43 
44  KVReconstructedNucleus* rnuc = nullptr;
45  if (auto ring = etalon_csi_rings[node]) { // is node the CSI behind the etalons?
46  if (traj == etalons[ring].etalon_trajectory) { // are we on the etalon trajectory?
48  if (node->GetDetector()->Fired(GetPartSeedCond()) && !node->GetDetector()->IsAnalysed() && etalons[ring].sili->Fired()) {
49  ++nfireddets;
50  rnuc = GetEventFragment()->AddParticle();
51  }
52  else
53  rnuc = nullptr;
54  }
55  else { // on short CSI/CI/ trajectory
56  if (node->GetDetector()->Fired(GetPartSeedCond()) && !node->GetDetector()->IsAnalysed()) {
57  ++nfireddets;
58  rnuc = GetEventFragment()->AddParticle();
59  }
60  else
61  rnuc = nullptr;
62  }
63  }
64  else // all other stopping detectors/trajectories use standard treatment
65  rnuc = KVINDRAFilterGroupReconstructor::ReconstructTrajectory(traj, node);
66  return rnuc;
67  }
68 
70 };
71 
72 #endif
#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 g
Base class for detector geometry description, interface to energy-loss calculations.
Definition: KVDetector.h:173
virtual Bool_t Fired(Option_t *opt="any") const
Definition: KVDetector.h:461
Bool_t IsAnalysed()
Definition: KVDetector.h:453
Path taken by particles through multidetector geometry.
Information on relative positions of detectors & particle trajectories.
KVDetector * GetDetector() const
KVReconstructedEvent * GetEventFragment() const
Group of detectors which can be treated independently of all others in array.
Definition: KVGroup.h:20
Special reconstructor for filtered simulations and INDRA etalon groups.
KVReconstructedNucleus * ReconstructTrajectory(const KVGeoDNTrajectory *traj, const KVGeoDetectorNode *node) override
Reconstruct simulated events after filtering with INDRA.
Nuclei reconstructed from data measured by a detector array .
Particle * AddParticle()