#include <FPGATrackSimRegionSlices.h>
Definition at line 24 of file FPGATrackSimRegionSlices.h.
◆ FPGATrackSimRegionSlices() [1/2]
| FPGATrackSimRegionSlices::FPGATrackSimRegionSlices |
( |
std::string const & | filepath | ) |
|
Definition at line 27 of file FPGATrackSimRegionSlices.cxx.
28{
29
30 std::ifstream
fin(filepath);
32 {
34 throw ("FPGATrackSimRegionSlices couldn't open " + filepath);
35 }
36
37
38 unsigned region;
40 FPGATrackSimTrackPars
min,
max;
41
42
43 bool ok = true;
44 while (getline(fin, line))
45 {
46 if (
line.empty() || line[0] ==
'#')
continue;
47 std::istringstream sline(line);
48
49 ok = ok && (sline >>
key);
50 if (!ok) break;
51 if (key == "region")
52 {
53 ok = ok && (sline >> region);
56 min = FPGATrackSimTrackPars();
57 max = FPGATrackSimTrackPars();
58 }
59 else if (key ==
"phi") ok = ok && (sline >>
min.phi >>
max.phi);
60 else if (key ==
"eta") ok = ok && (sline >>
min.eta >>
max.eta);
61 else if (key ==
"qpt") ok = ok && (sline >>
min.qOverPt >>
max.qOverPt);
62 else if (key ==
"d0") ok = ok && (sline >>
min.d0 >>
max.d0);
63 else if (key ==
"z0") ok = ok && (sline >>
min.z0 >>
max.z0);
64 else ok = false;
65
66 if (!ok) break;
67 }
68
69 if (!ok)
70 {
72 throw "FPGATrackSimRegionSlices read error";
73 }
74
76}
std::vector< std::pair< FPGATrackSimTrackPars, FPGATrackSimTrackPars > > m_regions
◆ FPGATrackSimRegionSlices() [2/2]
| FPGATrackSimRegionSlices::FPGATrackSimRegionSlices |
( |
float | mind0, |
|
|
float | minz0, |
|
|
float | minqOverPt, |
|
|
float | maxd0, |
|
|
float | maxz0, |
|
|
float | maxqOverPt ) |
Definition at line 79 of file FPGATrackSimRegionSlices.cxx.
81{
82 FPGATrackSimTrackPars
min,
max;
85 min.qOverPt = minqQverPt;
88 max.qOverPt = maxQoverPt;
89
90
91 for (
unsigned i=0;
i < 1280;
i++) {
92 double phibinSize =
M_PI/16;
93 double etabinSize = 0.2;
94 int phibin =
i & 0x1f;
95 int etabin = (
i >> 6) & 0x1f;
96 int etaside = (
i >> 5) & 0x1;
97 min.phi = phibinSize*phibin;
98 max.phi = phibinSize*(phibin+1);
99
100
105
106 if (etaside > 0) {
107 min.eta = etabinSize * etabin;
108 max.eta = etabinSize * (etabin+1);
109 }
110 else {
111 min.eta = -etabinSize * (etabin+1);
112 max.eta = -etabinSize * etabin;
113 }
115 }
116}
◆ getMax()
◆ getMin()
◆ getRegion()
◆ inRegion()
Definition at line 126 of file FPGATrackSimRegionSlices.cxx.
127{
129 {
131 return false;
132 }
135 FPGATrackSimTrackPars
cur =
t.getPars();
136
138 {
139 if (cur[i] <
min[i])
return false;
140 if (cur[i] >
max[i])
return false;
141 }
142
143 return true;
144}
◆ nRegions()
| unsigned FPGATrackSimRegionSlices::nRegions |
( |
| ) |
const |
|
inline |
◆ m_regions
The documentation for this class was generated from the following files: