KaliVeda
Toolkit for HIC analysis
KVDetectorStack.h
1 #pragma once
2 
3 #include "KVBase.h"
4 #include "KVUnownedList.h"
5 #include <optional>
6 class TVector3;
7 class KVDetector;
8 class KVNucleus;
9 
20 class KVDetectorStack : public KVBase {
22 public:
23  KVDetectorStack() = default;
24  KVDetectorStack(const KVDetectorStack&) = default;
26 
27  void Add(KVDetector*);
28  void Add(KVDetector&);
29 
31  Double_t GetERes(Int_t Z, Int_t A, Double_t Einc);
33  Double_t GetIncidentEnergyFromERes(Int_t Z, Int_t A, Double_t Eres, std::optional<int> = std::nullopt);
35 
36  void DetectParticle(KVNucleus&, TVector3* = nullptr);
37 
38  void Clear(Option_t* opt = "") override;
39  void Reset(Option_t* opt = "")
40  {
42  Clear(opt);
43  }
44 
46 };
int Int_t
double Double_t
const char Option_t
#define ClassDefOverride(name, id)
Base class for KaliVeda framework.
Definition: KVBase.h:139
Easily calculate energy losses etc. in a stack of detectors.
Double_t GetDeltaE(Int_t Z, Int_t A, Double_t Einc)
void Reset(Option_t *opt="")
Double_t GetPunchThroughEnergy(Int_t Z, Int_t A)
Double_t GetIncidentEnergyFromERes(Int_t Z, Int_t A, Double_t Eres, std::optional< int >=std::nullopt)
void Clear(Option_t *opt="") override
Calls KVDetector::Clear() for each detector in stack.
void DetectParticle(KVNucleus &, TVector3 *=nullptr)
Double_t GetDeltaEFromERes(Int_t Z, Int_t A, Double_t Eres)
KVDetectorStack(KVDetectorStack &&)=default
KVUnownedList fDetectors
KVDetectorStack()=default
void Add(KVDetector *)
Double_t GetERes(Int_t Z, Int_t A, Double_t Einc)
KVDetectorStack(const KVDetectorStack &)=default
Base class for detector geometry description, interface to energy-loss calculations.
Definition: KVDetector.h:159
Description of properties and kinematics of atomic nuclei.
Definition: KVNucleus.h:123
Extended TList class which does not own its objects by default.
Definition: KVUnownedList.h:20