ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtEvent.cxx
Go to the documentation of this file.
1 #include "AtEvent.h"
2 
3 #include "AtContainerManip.h"
4 
5 #include <Rtypes.h>
6 
7 #include <algorithm>
8 #include <string> // for string
9 
11 
12 AtEvent::AtEvent() : AtBaseEvent("AtEvent") {}
13 
15  : AtBaseEvent(copy), fEventCharge(copy.fEventCharge), fRhoVariance(copy.fRhoVariance),
16  fMultiplicityMap(copy.fMultiplicityMap), fMeshSig(copy.fMeshSig)
17 {
18  for (const auto &hit : copy.fHitArray)
19  fHitArray.push_back(hit->Clone());
20 }
21 
23 {
24  swap(*this, object);
25  return *this;
26 }
27 
28 void AtEvent::Clear(Option_t *opt)
29 {
30  AtBaseEvent::Clear(opt);
31  fEventCharge = -100;
32  fRhoVariance = 0;
33  fHitArray.clear();
34  fMultiplicityMap.clear();
35  fMeshSig.fill(0);
36 }
37 
38 void AtEvent::SetMeshSignal(Int_t idx, Float_t val)
39 {
40  fMeshSig[idx] = val;
41 }
42 
43 Int_t AtEvent::GetHitPadMult(Int_t PadNum)
44 {
45  auto its = fMultiplicityMap.find(PadNum);
46  if (its == fMultiplicityMap.end()) {
47  return -1;
48  } else
49  return its->second;
50 }
51 
53 {
54  std::sort(fHitArray.begin(), fHitArray.end(),
55  [](const HitPtr &a, const HitPtr &b) { return AtHit::SortHit(*a, *b); });
56 }
58 {
59  std::sort(fHitArray.begin(), fHitArray.end(),
60  [](const HitPtr &a, const HitPtr &b) { return a->GetHitID() < b->GetHitID(); });
61 }
62 
64 {
65  std::sort(fHitArray.begin(), fHitArray.end(),
66  [](const HitPtr &a, const HitPtr &b) { return AtHit::SortHitTime(*a, *b); });
67 }
68 
69 std::vector<AtHit> AtEvent::GetHitArray() const
70 {
71  return ContainerManip::GetObjectVector(fHitArray);
72 }
AtEvent::SortHitArray
void SortHitArray()
Definition: AtEvent.cxx:52
AtEvent.h
ContainerManip::GetObjectVector
std::vector< T > GetObjectVector(const std::vector< std::unique_ptr< T >> &vec)
Definition: AtContainerManip.h:125
AtEvent::Clear
void Clear(Option_t *opt=nullptr) override
Definition: AtEvent.cxx:28
AtEvent::SortHitArrayTime
void SortHitArrayTime()
Definition: AtEvent.cxx:63
AtEvent::swap
friend void swap(AtEvent &first, AtEvent &second)
Definition: AtEvent.h:44
AtEvent::GetHitPadMult
Int_t GetHitPadMult(Int_t PadNum)
Definition: AtEvent.cxx:43
AtEvent
Definition: AtEvent.h:22
AtEvent::GetHitArray
std::vector< AtHit > GetHitArray() const
Definition: AtEvent.cxx:69
AtBaseEvent
Base class for all event types in ATTPCROOT.
Definition: AtBaseEvent.h:20
AtBaseEvent::Clear
void Clear(Option_t *opt) override
Definition: AtBaseEvent.cxx:13
AtContainerManip.h
ClassImp
ClassImp(AtEvent)
AtEvent::operator=
AtEvent & operator=(const AtEvent object)
Definition: AtEvent.cxx:22
AtEvent::HitPtr
std::unique_ptr< AtHit > HitPtr
Definition: AtEvent.h:25
AtEvent::AtEvent
AtEvent()
Definition: AtEvent.cxx:12
AtEvent::SortHitArrayID
void SortHitArrayID()
Definition: AtEvent.cxx:57
AtEvent::SetMeshSignal
void SetMeshSignal(TraceArray mesharray)
Definition: AtEvent.h:105