8 #include <FairLogger.h>
15 #include <type_traits>
20 class TMemberInspector;
25 using HitPtr = std::unique_ptr<AtHit>;
29 Double_t fEventCharge = -100;
30 Double_t fRhoVariance = 0;
33 std::map<Int_t, Int_t> fMultiplicityMap;
49 swap(first.fEventCharge, second.fEventCharge);
50 swap(first.fRhoVariance, second.fRhoVariance);
52 swap(first.fHitArray, second.fHitArray);
53 swap(first.fMultiplicityMap, second.fMultiplicityMap);
54 swap(first.fMeshSig, second.fMeshSig);
57 void Clear(Option_t *opt =
nullptr)
override;
69 template <
typename... Ts>
72 fHitArray.emplace_back(std::make_unique<AtHit>(std::forward<Ts>(params)...));
73 if (fHitArray.back()->GetHitID() == -1)
74 fHitArray.back()->
SetHitID(fHitArray.size() - 1);
75 LOG(debug) <<
"Adding hit with ID " << fHitArray.back()->GetHitID() <<
" to event " <<
fEventID;
77 return *(fHitArray.back());
90 template <
typename T,
typename = std::enable_if_t<std::is_base_of<AtHit, std::decay_t<T>>::value>>
93 fHitArray.push_back(std::move(ptr));
94 if (fHitArray.back()->GetHitID() == -1)
95 fHitArray.back()->
SetHitID(fHitArray.size() - 1);
96 LOG(debug) <<
"Adding hit with ID " << fHitArray.back()->GetHitID() <<
" to event " <<
fEventID;
98 return *(fHitArray.back());
114 const AtHit &
GetHit(Int_t hitNo)
const {
return *fHitArray.at(hitNo); }
115 [[deprecated(
"Use GetHits()")]] std::vector<AtHit>
GetHitArray()
const;
118 const std::map<Int_t, Int_t> &
GetMultiMap() {
return fMultiplicityMap; }