CbmRoot
Loading...
Searching...
No Matches
CaBranch.h
Go to the documentation of this file.
1/* Copyright (C) 2007-2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Ivan Kisel, Sergey Gorbunov [committer], Maksym Zyzak, Valentina Akishina */
4
7
8#pragma once // include this header only once per compilation unit
9
10#include "CaHit.h"
11#include "CaVector.h"
12
14{
15
18 class Branch {
19 public:
21 Branch() { fHits.reserve(25); }
22
25
26 void SetStation(int iStation) { fStation = iStation; }
27 void SetChi2(fscal chi2) { fChi2 = chi2; }
28 void SetId(int Id) { fId = Id; }
29 void SetAlive(bool isAlive) { fIsAlive = isAlive; }
30
31 void AddHit(ca::HitIndex_t hitIndex) { fHits.push_back(hitIndex); }
32 void ResetHits() { fHits.clear(); }
33
34 int NofHits() const { return fHits.size(); }
35 int Station() const { return fStation; }
36 fscal Chi2() const { return fChi2; }
37 int Id() const { return fId; }
38 bool IsAlive() const { return fIsAlive; }
39 const Vector<ca::HitIndex_t>& Hits() const { return fHits; }
40
42
45
46 bool IsBetterThan(const Branch& b) const
47 {
48 if (NofHits() != b.NofHits()) return (NofHits() > b.NofHits());
49 if (Station() != b.Station()) return (Station() < b.Station());
50 return (Chi2() <= b.Chi2());
51 }
52
53 private:
56
57 int fStation{0};
59 int fId{0};
60 bool fIsAlive{0};
61 Vector<ca::HitIndex_t> fHits{"Branch::fHits"};
62 };
63
64} // namespace cbm::algo::ca
A generic hit for the CA tracker (header)
Vector< ca::HitIndex_t > & RefHits()
Definition CaBranch.h:41
fscal Chi2() const
Definition CaBranch.h:36
void AddHit(ca::HitIndex_t hitIndex)
Definition CaBranch.h:31
int Station() const
Definition CaBranch.h:35
void SetId(int Id)
Definition CaBranch.h:28
bool IsBetterThan(const Branch &b) const
Definition CaBranch.h:46
void SetStation(int iStation)
Definition CaBranch.h:26
Branch()
default constructor
Definition CaBranch.h:21
const Vector< ca::HitIndex_t > & Hits() const
Definition CaBranch.h:39
void SetAlive(bool isAlive)
Definition CaBranch.h:29
void SetChi2(fscal chi2)
Definition CaBranch.h:27
int NofHits() const
Definition CaBranch.h:34
Vector< ca::HitIndex_t > fHits
Definition CaBranch.h:61
bool IsAlive() const
Definition CaBranch.h:38
void push_back(Tinput value)
Pushes back a value to the vector.
Definition CaVector.h:176
void reserve(std::size_t count)
Reserves a new size for the vector.
Definition CaVector.h:162
TODO: SZh 8.11.2022: add selection of parameterisation.
Definition CaBranch.h:14
kf::fscal fscal
Definition CaSimd.h:14
unsigned int HitIndex_t
Index of ca::Hit.
Definition CaHit.h:27