#include <FPGATrackSimSectorBank.h>
Definition at line 31 of file FPGATrackSimSectorBank.h.
◆ FPGATrackSimSectorBank()
| FPGATrackSimSectorBank::FPGATrackSimSectorBank |
( |
std::string const & | filepath | ) |
|
Definition at line 23 of file FPGATrackSimSectorBank.cxx.
24{
25
27 std::ifstream
fin(filepath);
29 {
31 throw ("FPGATrackSimSectorBank couldn't open " + filepath);
32 }
33
34
36
37
39
40
41
43}
void readHeader(std::ifstream &fin)
void readSectors(std::ifstream &fin)
◆ findSector() [1/2]
| sector_t FPGATrackSimSectorBank::findSector |
( |
std::vector< module_t > const & | modules | ) |
const |
Definition at line 122 of file FPGATrackSimSectorBank.cxx.
123{
125
126 std::set<sector_t> sectors_good;
128 {
129 std::set<sector_t> sectors_new;
131
132 for (
auto it_m2s =
range.first; it_m2s !=
range.second; it_m2s++)
133 if (layer == 0 || sectors_good.count(it_m2s->second))
134 sectors_new.insert(it_m2s->second);
135
136 if (sectors_new.empty()) return -1;
137 sectors_good = std::move(sectors_new);
138 }
139
140 assert(sectors_good.size() == 1);
141 return *(sectors_good.begin());
142}
std::vector< std::multimap< module_t, sector_t > > m_m2sMap
◆ findSector() [2/2]
| sector_t FPGATrackSimSectorBank::findSector |
( |
std::vector< std::vector< std::shared_ptr< const FPGATrackSimHit > > > const & | hits | ) |
const |
Definition at line 147 of file FPGATrackSimSectorBank.cxx.
148{
149 std::vector<module_t> modules(
hits.size());
150
151 for (
size_t i = 0;
i <
hits.size();
i++)
152 {
154 {
156 }
157 else if (hits[i].size() == 1)
158 {
159 modules[
i] =
hits[
i][0]->getIdentifierHash();
160 }
161 else
162 {
163 std::unordered_map<unsigned, unsigned> hashCount;
164 for (
auto const &h : hits[i]) hashCount[
h->getIdentifierHash()]++;
165 modules[
i] = std::max_element(hashCount.begin(), hashCount.end())->first;
166 }
167 }
168
170}
static const Attributes_t empty
sector_t findSector(std::vector< module_t > const &modules) const
◆ getModules()
| std::vector< module_t > const & FPGATrackSimSectorBank::getModules |
( |
sector_t | sector | ) |
const |
|
inline |
◆ getNLayers()
| size_t FPGATrackSimSectorBank::getNLayers |
( |
| ) |
const |
|
inline |
◆ getNQOverPtBins()
| size_t FPGATrackSimSectorBank::getNQOverPtBins |
( |
| ) |
const |
|
inline |
◆ getNSectors()
| size_t FPGATrackSimSectorBank::getNSectors |
( |
| ) |
const |
|
inline |
◆ getQOverPtBins()
| const std::vector< double > & FPGATrackSimSectorBank::getQOverPtBins |
( |
| ) |
const |
|
inline |
◆ getSectors()
| std::vector< sector_t > FPGATrackSimSectorBank::getSectors |
( |
unsigned | layer, |
|
|
module_t | module ) const |
◆ isAbsQOverPtBinning()
| bool FPGATrackSimSectorBank::isAbsQOverPtBinning |
( |
| ) |
const |
|
inline |
◆ makeInverseMap()
| void FPGATrackSimSectorBank::makeInverseMap |
( |
| ) |
|
|
private |
◆ readHeader()
| void FPGATrackSimSectorBank::readHeader |
( |
std::ifstream & | fin | ) |
|
|
private |
Definition at line 47 of file FPGATrackSimSectorBank.cxx.
48{
49 bool ok = true;
51 int nSectors;
52
53 ok = ok && std::getline(fin, line);
55
56 std::istringstream sline(line);
57 ok = ok && (sline >> nSectors >>
m_nLayers);
58
59 if (!ok) throw "Error reading header";
60
62}
◆ readSectors()
| void FPGATrackSimSectorBank::readSectors |
( |
std::ifstream & | fin | ) |
|
|
private |
Definition at line 65 of file FPGATrackSimSectorBank.cxx.
66{
68 bool ok = true;
69 int sector = 0;
70 int sector_file, UNUSED, coverage;
71
72 while (std::getline(fin, line))
73 {
74 if (
line.empty() || line[0] ==
'!')
continue;
76 std::istringstream sline(line);
77
78 ok = ok && (sline >> sector_file);
79 ok = ok && (sector_file == sector);
80
82 ok = ok && (sline >>
m_s2mMap[sector][i]);
83
84 ok = ok && (sline >> UNUSED >> coverage);
85
86 if (!ok) break;
87 sector++;
88 }
89
90 if (!ok)
ANA_MSG_ERROR(
"Error reading file on line: " << line);
91}
◆ storeQOverPtBinning()
| void FPGATrackSimSectorBank::storeQOverPtBinning |
( |
const std::vector< double > & | qOverPtBins, |
|
|
bool | absBinning ) |
◆ m_absQOverPtBinning
| bool FPGATrackSimSectorBank::m_absQOverPtBinning = false |
|
private |
◆ m_m2sMap
| std::vector<std::multimap<module_t, sector_t> > FPGATrackSimSectorBank::m_m2sMap |
|
private |
◆ m_nLayers
| size_t FPGATrackSimSectorBank::m_nLayers = 0UL |
|
private |
◆ m_qOverPtBins
| std::vector<double> FPGATrackSimSectorBank::m_qOverPtBins |
|
private |
◆ m_s2mMap
| std::vector<std::vector<module_t> > FPGATrackSimSectorBank::m_s2mMap |
|
private |
The documentation for this class was generated from the following files: