CMS 3D CMS Logo

TrackletCalculator.cc
Go to the documentation of this file.
10 
13 
14 using namespace std;
15 using namespace trklet;
16 
17 TrackletCalculator::TrackletCalculator(string name, Settings const& settings, Globals* globals, unsigned int iSector)
18  : TrackletCalculatorBase(name, settings, globals, iSector) {
19  for (unsigned int ilayer = 0; ilayer < N_LAYER; ilayer++) {
20  vector<TrackletProjectionsMemory*> tmp(settings.nallstubs(ilayer), nullptr);
21  trackletprojlayers_.push_back(tmp);
22  }
23 
24  for (unsigned int idisk = 0; idisk < N_DISK; idisk++) {
25  vector<TrackletProjectionsMemory*> tmp(settings.nallstubs(idisk + N_LAYER), nullptr);
26  trackletprojdisks_.push_back(tmp);
27  }
28 
30 
31  // set TC index
32  iTC_ = name_[7] - 'A';
33 
34  TCIndex_ = (iSeed_ << 4) + iTC_;
35  assert(TCIndex_ >= 0 && TCIndex_ <= (int)settings_.ntrackletmax());
36 
38  double phicritFactor =
40  if (std::abs(phicritFactor - 2.) > 0.25)
41  edm::LogPrint("Tracklet")
42  << "TrackletCalculator::TrackletCalculator phicrit approximation may be invalid! Please check.";
43  }
44 
45  // write the drinv and invt inverse tables
46  if ((settings_.writeInvTable() || settings_.writeHLSInvTable()) && iTC_ == 0 && iSector_ == 0) {
47  void (*writeLUT)(const VarInv&, const string&) = nullptr;
48  if (settings.writeInvTable()) { // Verilog version
49  writeLUT = [](const VarInv& x, const string& basename) -> void {
50  ofstream fs(basename + ".tab");
51  return x.writeLUT(fs, VarBase::verilog);
52  };
53  } else { // HLS version
54  writeLUT = [](const VarInv& x, const string& basename) -> void {
55  ofstream fs(basename + ".tab");
56  return x.writeLUT(fs, VarBase::hls);
57  };
58  }
59  writeInvTable(writeLUT);
60  }
61 
62  // write the firmware design for the calculation of the tracklet parameters
63  // and projections
64  if ((settings_.writeVerilog() || settings_.writeHLS()) && iTC_ == 0 && iSector_ == 0) {
65  void (*writeDesign)(const vector<VarBase*>&, const string&) = nullptr;
66  if (settings.writeVerilog()) { // Verilog version
67  writeDesign = [](const vector<VarBase*>& v, const string& basename) -> void {
68  ofstream fs(basename + ".v");
69  return VarBase::verilog_print(v, fs);
70  };
71  } else { // HLS version
72  writeDesign = [](const vector<VarBase*>& v, const string& basename) -> void {
73  ofstream fs(basename + ".cpp");
74  return VarBase::hls_print(v, fs);
75  };
76  }
77  writeFirmwareDesign(writeDesign);
78  }
79 }
80 
82  outputProj = dynamic_cast<TrackletProjectionsMemory*>(memory);
83  assert(outputProj != nullptr);
84 }
85 
87  if (settings_.writetrace()) {
88  edm::LogVerbatim("Tracklet") << "In " << name_ << " adding output to " << memory->getName() << " to output "
89  << output;
90  }
91  if (output == "trackpar") {
92  auto* tmp = dynamic_cast<TrackletParametersMemory*>(memory);
93  assert(tmp != nullptr);
95  return;
96  }
97 
98  if (output.substr(0, 7) == "projout") {
99  //output is on the form 'projoutL2PHIC' or 'projoutD3PHIB'
100  auto* tmp = dynamic_cast<TrackletProjectionsMemory*>(memory);
101  assert(tmp != nullptr);
102 
103  unsigned int layerdisk = output[8] - '1'; //layer or disk counting from 0
104  unsigned int phiregion = output[12] - 'A'; //phiregion counting from 0
105 
106  if (output[7] == 'L') {
107  assert(layerdisk < N_LAYER);
108  assert(phiregion < trackletprojlayers_[layerdisk].size());
109  //check that phiregion not already initialized
110  assert(trackletprojlayers_[layerdisk][phiregion] == nullptr);
111  trackletprojlayers_[layerdisk][phiregion] = tmp;
112  return;
113  }
114 
115  if (output[7] == 'D') {
116  assert(layerdisk < N_DISK);
117  assert(phiregion < trackletprojdisks_[layerdisk].size());
118  //check that phiregion not already initialized
119  assert(trackletprojdisks_[layerdisk][phiregion] == nullptr);
120  trackletprojdisks_[layerdisk][phiregion] = tmp;
121  return;
122  }
123  }
124 
125  throw cms::Exception("BadConfig") << __FILE__ << " " << __LINE__ << " Could not find output : " << output;
126 }
127 
129  if (settings_.writetrace()) {
130  edm::LogVerbatim("Tracklet") << "In " << name_ << " adding input from " << memory->getName() << " to input "
131  << input;
132  }
133  if (input == "innerallstubin") {
134  auto* tmp = dynamic_cast<AllStubsMemory*>(memory);
135  assert(tmp != nullptr);
136  innerallstubs_.push_back(tmp);
137  return;
138  }
139  if (input == "outerallstubin") {
140  auto* tmp = dynamic_cast<AllStubsMemory*>(memory);
141  assert(tmp != nullptr);
142  outerallstubs_.push_back(tmp);
143  return;
144  }
145  if (input.substr(0, 8) == "stubpair") {
146  auto* tmp = dynamic_cast<StubPairsMemory*>(memory);
147  assert(tmp != nullptr);
148  stubpairs_.push_back(tmp);
149  return;
150  }
151  throw cms::Exception("BadConfig") << __FILE__ << " " << __LINE__ << " Could not find intput : " << input;
152 }
153 
155  unsigned int countall = 0;
156  unsigned int countsel = 0;
157 
158  for (auto& stubpair : stubpairs_) {
160  edm::LogVerbatim("Tracklet") << "Will break on too many tracklets in " << getName();
161  break;
162  }
163  for (unsigned int i = 0; i < stubpair->nStubPairs(); i++) {
164  countall++;
165  const Stub* innerFPGAStub = stubpair->getVMStub1(i).stub();
166  const L1TStub* innerStub = innerFPGAStub->l1tstub();
167 
168  const Stub* outerFPGAStub = stubpair->getVMStub2(i).stub();
169  const L1TStub* outerStub = outerFPGAStub->l1tstub();
170 
171  if (settings_.debugTracklet()) {
172  edm::LogVerbatim("Tracklet") << "TrackletCalculator execute " << getName() << "[" << iSector_ << "]";
173  }
174 
175  if (innerFPGAStub->isBarrel() && (getName() != "TC_D1L2A" && getName() != "TC_D1L2B")) {
176  if (outerFPGAStub->isDisk()) {
177  //overlap seeding
178  bool accept = overlapSeeding(outerFPGAStub, outerStub, innerFPGAStub, innerStub);
179  if (accept)
180  countsel++;
181  } else {
182  //barrel+barrel seeding
183  bool accept = barrelSeeding(innerFPGAStub, innerStub, outerFPGAStub, outerStub);
184  if (accept)
185  countsel++;
186  }
187  } else {
188  if (outerFPGAStub->isDisk()) {
189  //disk+disk seeding
190  bool accept = diskSeeding(innerFPGAStub, innerStub, outerFPGAStub, outerStub);
191  if (accept)
192  countsel++;
193  } else if (innerFPGAStub->isDisk()) {
194  //layer+disk seeding
195  bool accept = overlapSeeding(innerFPGAStub, innerStub, outerFPGAStub, outerStub);
196  if (accept)
197  countsel++;
198  } else {
199  throw cms::Exception("LogicError") << __FILE__ << " " << __LINE__ << " invalid seeding";
200  }
201  }
202 
204  edm::LogVerbatim("Tracklet") << "Will break on number of tracklets in " << getName();
205  break;
206  }
207 
208  if (countall >= settings_.maxStep("TC")) {
209  if (settings_.debugTracklet())
210  edm::LogVerbatim("Tracklet") << "Will break on MAXTC 1";
211  break;
212  }
213  if (settings_.debugTracklet()) {
214  edm::LogVerbatim("Tracklet") << "TrackletCalculator execute done";
215  }
216  }
217  if (countall >= settings_.maxStep("TC")) {
218  if (settings_.debugTracklet())
219  edm::LogVerbatim("Tracklet") << "Will break on MAXTC 2";
220  break;
221  }
222  }
223 
224  if (settings_.writeMonitorData("TC")) {
225  globals_->ofstream("trackletcalculator.txt") << getName() << " " << countall << " " << countsel << endl;
226  }
227 }
228 
229 void TrackletCalculator::writeInvTable(void (*writeLUT)(const VarInv&, const string&)) {
230  switch (iSeed_) {
231  case 0: // L1L2
232  writeLUT(globals_->ITC_L1L2()->drinv, settings_.tablePath() + "TC_L1L2_drinv");
233  writeLUT(globals_->ITC_L1L2()->invt, settings_.tablePath() + "TC_L1L2_invt");
234  break;
235  case 1: // L2L3
236  writeLUT(globals_->ITC_L2L3()->drinv, settings_.tablePath() + "TC_L2L3_drinv");
237  writeLUT(globals_->ITC_L2L3()->invt, settings_.tablePath() + "TC_L2L3_invt");
238  break;
239  case 2: // L3L4
240  writeLUT(globals_->ITC_L3L4()->drinv, settings_.tablePath() + "TC_L3L4_drinv");
241  writeLUT(globals_->ITC_L3L4()->invt, settings_.tablePath() + "TC_L3L4_invt");
242  break;
243  case 3: // L5L6
244  writeLUT(globals_->ITC_L5L6()->drinv, settings_.tablePath() + "TC_L5L6_drinv");
245  writeLUT(globals_->ITC_L5L6()->invt, settings_.tablePath() + "TC_L5L6_invt");
246  break;
247  case 4: // D1D2
248  writeLUT(globals_->ITC_F1F2()->drinv, settings_.tablePath() + "TC_F1F2_drinv");
249  writeLUT(globals_->ITC_F1F2()->invt, settings_.tablePath() + "TC_F1F2_invt");
250  writeLUT(globals_->ITC_B1B2()->drinv, settings_.tablePath() + "TC_B1B2_drinv");
251  writeLUT(globals_->ITC_B1B2()->invt, settings_.tablePath() + "TC_B1B2_invt");
252  break;
253  case 5: // D3D4
254  writeLUT(globals_->ITC_F3F4()->drinv, settings_.tablePath() + "TC_F3F4_drinv");
255  writeLUT(globals_->ITC_F3F4()->invt, settings_.tablePath() + "TC_F3F4_invt");
256  writeLUT(globals_->ITC_B3B4()->drinv, settings_.tablePath() + "TC_B3B4_drinv");
257  writeLUT(globals_->ITC_B3B4()->invt, settings_.tablePath() + "TC_B3B4_invt");
258  break;
259  case 6: // L1D1
260  writeLUT(globals_->ITC_L1F1()->drinv, settings_.tablePath() + "TC_L1F1_drinv");
261  writeLUT(globals_->ITC_L1F1()->invt, settings_.tablePath() + "TC_L1F1_invt");
262  writeLUT(globals_->ITC_L1B1()->drinv, settings_.tablePath() + "TC_L1B1_drinv");
263  writeLUT(globals_->ITC_L1B1()->invt, settings_.tablePath() + "TC_L1B1_invt");
264  break;
265  case 7: // L2D1
266  writeLUT(globals_->ITC_L2F1()->drinv, settings_.tablePath() + "TC_L2F1_drinv");
267  writeLUT(globals_->ITC_L2F1()->invt, settings_.tablePath() + "TC_L2F1_invt");
268  writeLUT(globals_->ITC_L2B1()->drinv, settings_.tablePath() + "TC_L2B1_drinv");
269  writeLUT(globals_->ITC_L2B1()->invt, settings_.tablePath() + "TC_L2B1_invt");
270  break;
271  }
272 }
273 
274 void TrackletCalculator::writeFirmwareDesign(void (*writeDesign)(const vector<VarBase*>&, const string&)) {
275  switch (iSeed_) {
276  case 0: // L1L2
277  {
278  const vector<VarBase*> v = {&globals_->ITC_L1L2()->rinv_final, &globals_->ITC_L1L2()->phi0_final,
291  writeDesign(v, "TC_L1L2");
292  } break;
293  case 1: // L2L3
294  {
295  const vector<VarBase*> v = {&globals_->ITC_L2L3()->rinv_final, &globals_->ITC_L2L3()->phi0_final,
308  writeDesign(v, "TC_L2L3");
309  } break;
310  case 2: // L3L4
311  {
312  const vector<VarBase*> v = {&globals_->ITC_L3L4()->rinv_final, &globals_->ITC_L3L4()->phi0_final,
325  writeDesign(v, "TC_L3L4");
326  } break;
327  case 3: // L5L6
328  {
329  const vector<VarBase*> v = {&globals_->ITC_L5L6()->rinv_final, &globals_->ITC_L5L6()->phi0_final,
342  writeDesign(v, "TC_L5L6");
343  } break;
344  case 4: // D1D2
345  {
346  const vector<VarBase*> v = {&globals_->ITC_F1F2()->rinv_final, &globals_->ITC_F1F2()->phi0_final,
356  writeDesign(v, "TC_F1F2");
357  }
358  {
359  const vector<VarBase*> v = {&globals_->ITC_B1B2()->rinv_final, &globals_->ITC_B1B2()->phi0_final,
369  writeDesign(v, "TC_B1B2");
370  }
371  break;
372  case 5: // D3D4
373  {
374  const vector<VarBase*> v = {&globals_->ITC_F3F4()->rinv_final, &globals_->ITC_F3F4()->phi0_final,
384  writeDesign(v, "TC_F3F4");
385  }
386  {
387  const vector<VarBase*> v = {&globals_->ITC_B3B4()->rinv_final, &globals_->ITC_B3B4()->phi0_final,
397  writeDesign(v, "TC_B3B4");
398  }
399  break;
400  case 6: // L1D1
401  {
402  const vector<VarBase*> v = {&globals_->ITC_L1F1()->rinv_final, &globals_->ITC_L1F1()->phi0_final,
413  writeDesign(v, "TC_L1F1");
414  }
415  {
416  const vector<VarBase*> v = {&globals_->ITC_L1B1()->rinv_final, &globals_->ITC_L1B1()->phi0_final,
427  writeDesign(v, "TC_L1B1");
428  }
429  break;
430  case 7: // L2D1
431  {
432  const vector<VarBase*> v = {&globals_->ITC_L2F1()->rinv_final, &globals_->ITC_L2F1()->phi0_final,
443  writeDesign(v, "TC_L2F1");
444  }
445  {
446  const vector<VarBase*> v = {&globals_->ITC_L2B1()->rinv_final, &globals_->ITC_L2B1()->phi0_final,
457  writeDesign(v, "TC_L2B1");
458  }
459  break;
460  }
461 }
trklet::Settings::writeInvTable
bool writeInvTable() const
Definition: Settings.h:174
Settings.h
trklet::IMATH_TrackletCalculatorDisk::der_phiD_final
VarAdjustK der_phiD_final
Definition: IMATH_TrackletCalculatorDisk.h:299
trklet::TrackletCalculatorBase::iSeed_
unsigned int iSeed_
Definition: TrackletCalculatorBase.h:128
trklet::IMATH_TrackletCalculator::rD_0_final
VarAdjustK rD_0_final
Definition: IMATH_TrackletCalculator.h:374
mps_fire.i
i
Definition: mps_fire.py:428
trklet::Settings::ntrackletmax
unsigned int ntrackletmax() const
Definition: Settings.h:297
trklet::Settings::writetrace
bool writetrace() const
Definition: Settings.h:162
trklet::Globals::ITC_L2L3
IMATH_TrackletCalculator * ITC_L2L3()
Definition: Globals.h:53
trklet::IMATH_TrackletCalculator::rD_3_final
VarAdjustK rD_3_final
Definition: IMATH_TrackletCalculator.h:377
input
static const std::string input
Definition: EdmProvDump.cc:48
trklet::IMATH_TrackletCalculatorOverlap::zL_0_final
VarAdjustK zL_0_final
Definition: IMATH_TrackletCalculatorOverlap.h:271
trklet::Settings::writeVerilog
bool writeVerilog() const
Definition: Settings.h:172
MessageLogger.h
trklet::TrackletCalculator::addOutputProjection
void addOutputProjection(TrackletProjectionsMemory *&outputProj, MemoryBase *memory)
Definition: TrackletCalculator.cc:81
trklet::IMATH_TrackletCalculatorOverlap::rD_0_final
VarAdjustK rD_0_final
Definition: IMATH_TrackletCalculatorOverlap.h:340
trklet::TrackletCalculatorBase::trackletpars_
TrackletParametersMemory * trackletpars_
Definition: TrackletCalculatorBase.h:134
trklet::TrackletCalculator::outerallstubs_
std::vector< AllStubsMemory * > outerallstubs_
Definition: TrackletCalculator.h:36
trklet::IMATH_TrackletCalculatorDisk::zL_0_final
VarAdjustK zL_0_final
Definition: IMATH_TrackletCalculatorDisk.h:265
AllStubsMemory.h
trklet::VarBase::hls_print
static void hls_print(const std::vector< VarBase * > &v, std::ofstream &fs)
Definition: imath.h:275
convertSQLitetoXML_cfg.output
output
Definition: convertSQLitetoXML_cfg.py:72
trklet::IMATH_TrackletCalculatorOverlap::phiD_3_final
VarAdjustK phiD_3_final
Definition: IMATH_TrackletCalculatorOverlap.h:306
trklet::IMATH_TrackletCalculatorDisk::t_final
VarAdjustK t_final
Definition: IMATH_TrackletCalculatorDisk.h:203
memory
Definition: HGCRecHitSoA.h:20
trklet::TrackletProjectionsMemory
Definition: TrackletProjectionsMemory.h:15
edm::LogPrint
Log< level::Warning, true > LogPrint
Definition: MessageLogger.h:130
trklet::Settings
Definition: Settings.h:31
trklet::IMATH_TrackletCalculator::zL_2_final
VarAdjustKR zL_2_final
Definition: IMATH_TrackletCalculator.h:295
trklet::TrackletCalculator::iTC_
int iTC_
Definition: TrackletCalculator.h:33
trklet::L1TStub
Definition: L1TStub.h:12
trklet::IMATH_TrackletCalculatorOverlap::rD_3_final
VarAdjustK rD_3_final
Definition: IMATH_TrackletCalculatorOverlap.h:343
trklet::IMATH_TrackletCalculatorOverlap::rD_1_final
VarAdjustK rD_1_final
Definition: IMATH_TrackletCalculatorOverlap.h:341
trklet::IMATH_TrackletCalculatorOverlap::der_zL_final
VarAdjustK der_zL_final
Definition: IMATH_TrackletCalculatorOverlap.h:275
trklet::IMATH_TrackletCalculator::zL_1_final
VarAdjustKR zL_1_final
Definition: IMATH_TrackletCalculator.h:294
cms::cuda::assert
assert(be >=bs)
trklet::IMATH_TrackletCalculator::phiD_0_final
VarAdjustK phiD_0_final
Definition: IMATH_TrackletCalculator.h:331
trklet::Settings::writeHLS
bool writeHLS() const
Definition: Settings.h:173
trklet::IMATH_TrackletCalculatorDisk::rD_2_final
VarAdjustK rD_2_final
Definition: IMATH_TrackletCalculatorDisk.h:326
trklet::TrackletCalculatorBase::barrelSeeding
bool barrelSeeding(const Stub *innerFPGAStub, const L1TStub *innerStub, const Stub *outerFPGAStub, const L1TStub *outerStub)
Definition: TrackletCalculatorBase.cc:331
trklet::N_DISK
constexpr int N_DISK
Definition: Settings.h:20
trklet::IMATH_TrackletCalculatorDisk::rD_0_final
VarAdjustK rD_0_final
Definition: IMATH_TrackletCalculatorDisk.h:324
trklet::ProcessBase::settings_
Settings const & settings_
Definition: ProcessBase.h:44
findQualityFiles.v
v
Definition: findQualityFiles.py:179
TrackletCalculator.h
createJobs.tmp
tmp
align.sh
Definition: createJobs.py:716
trklet::Globals::ITC_B1B2
IMATH_TrackletCalculatorDisk * ITC_B1B2()
Definition: Globals.h:59
trklet::Globals
Definition: Globals.h:32
trklet::VarBase::verilog
static struct trklet::VarBase::Verilog verilog
trklet::IMATH_TrackletCalculatorDisk::phi0_final
VarAdjustK phi0_final
Definition: IMATH_TrackletCalculatorDisk.h:202
trklet::TrackletCalculatorBase::trackletprojlayers_
std::vector< std::vector< TrackletProjectionsMemory * > > trackletprojlayers_
Definition: TrackletCalculatorBase.h:137
trklet::Stub::isBarrel
bool isBarrel() const
Definition: Stub.h:60
trklet::IMATH_TrackletCalculatorOverlap::drinv
VarInv drinv
Definition: IMATH_TrackletCalculatorOverlap.h:174
trklet::IMATH_TrackletCalculatorOverlap::rinv_final
VarAdjustK rinv_final
Definition: IMATH_TrackletCalculatorOverlap.h:206
TrackletProjectionsMemory.h
trklet::Globals::ITC_L1F1
IMATH_TrackletCalculatorOverlap * ITC_L1F1()
Definition: Globals.h:62
trklet::IMATH_TrackletCalculator::phiL_0_final
VarAdjustK phiL_0_final
Definition: IMATH_TrackletCalculator.h:268
trklet::IMATH_TrackletCalculatorOverlap::phiD_1_final
VarAdjustK phiD_1_final
Definition: IMATH_TrackletCalculatorOverlap.h:304
trklet::Globals::ITC_L2B1
IMATH_TrackletCalculatorOverlap * ITC_L2B1()
Definition: Globals.h:65
trklet::TrackletCalculator::writeInvTable
void writeInvTable(void(*writeLUT)(const VarInv &, const std::string &))
Definition: TrackletCalculator.cc:229
trklet::IMATH_TrackletCalculatorDisk::der_rD_final
VarAdjustK der_rD_final
Definition: IMATH_TrackletCalculatorDisk.h:328
trklet::IMATH_TrackletCalculatorOverlap::phiD_0_final
VarAdjustK phiD_0_final
Definition: IMATH_TrackletCalculatorOverlap.h:303
accept
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:31
trklet::IMATH_TrackletCalculatorOverlap::zL_2_final
VarAdjustK zL_2_final
Definition: IMATH_TrackletCalculatorOverlap.h:273
trklet::IMATH_TrackletCalculatorDisk::zL_1_final
VarAdjustK zL_1_final
Definition: IMATH_TrackletCalculatorDisk.h:266
trklet::Stub
Definition: Stub.h:16
trklet::IMATH_TrackletCalculator::t_final
VarAdjustKR t_final
Definition: IMATH_TrackletCalculator.h:219
trklet::IMATH_TrackletCalculatorOverlap::phiL_1_final
VarAdjustK phiL_1_final
Definition: IMATH_TrackletCalculatorOverlap.h:251
trklet::IMATH_TrackletCalculator::zL_3_final
VarAdjustKR zL_3_final
Definition: IMATH_TrackletCalculator.h:296
trklet::Globals::ITC_F3F4
IMATH_TrackletCalculatorDisk * ITC_F3F4()
Definition: Globals.h:58
trklet::N_LAYER
constexpr int N_LAYER
Definition: Settings.h:19
trklet::IMATH_TrackletCalculatorOverlap::der_phiL_final
VarAdjustK der_phiL_final
Definition: IMATH_TrackletCalculatorOverlap.h:254
trklet::IMATH_TrackletCalculator::phiL_3_final
VarAdjustK phiL_3_final
Definition: IMATH_TrackletCalculator.h:271
trklet::IMATH_TrackletCalculatorOverlap::zL_1_final
VarAdjustK zL_1_final
Definition: IMATH_TrackletCalculatorOverlap.h:272
trklet::IMATH_TrackletCalculator::rD_1_final
VarAdjustK rD_1_final
Definition: IMATH_TrackletCalculator.h:375
trklet::IMATH_TrackletCalculator::der_phiD_final
VarAdjustK der_phiD_final
Definition: IMATH_TrackletCalculator.h:339
trklet::IMATH_TrackletCalculatorDisk::zL_2_final
VarAdjustK zL_2_final
Definition: IMATH_TrackletCalculatorDisk.h:267
trklet::ProcessBase::initLayerDisksandISeed
void initLayerDisksandISeed(unsigned int &layerdisk1, unsigned int &layerdisk2, unsigned int &iSeed)
Definition: ProcessBase.cc:75
trklet::IMATH_TrackletCalculatorOverlap::z0_final
VarAdjustK z0_final
Definition: IMATH_TrackletCalculatorOverlap.h:210
trklet::IMATH_TrackletCalculatorDisk::phiD_2_final
VarAdjustK phiD_2_final
Definition: IMATH_TrackletCalculatorDisk.h:295
trklet::TrackletCalculatorBase::diskSeeding
bool diskSeeding(const Stub *innerFPGAStub, const L1TStub *innerStub, const Stub *outerFPGAStub, const L1TStub *outerStub)
Definition: TrackletCalculatorBase.cc:755
trklet::Stub::isDisk
bool isDisk() const
Definition: Stub.h:61
trklet::IMATH_TrackletCalculatorDisk::phiD_0_final
VarAdjustK phiD_0_final
Definition: IMATH_TrackletCalculatorDisk.h:293
trklet::IMATH_TrackletCalculatorDisk::der_zL_final
VarAdjustK der_zL_final
Definition: IMATH_TrackletCalculatorDisk.h:269
trklet::IMATH_TrackletCalculatorOverlap::invt
VarInv invt
Definition: IMATH_TrackletCalculatorOverlap.h:279
trklet::IMATH_TrackletCalculator::phiD_4_final
VarAdjustK phiD_4_final
Definition: IMATH_TrackletCalculator.h:335
trklet::TrackletCalculatorBase
Definition: TrackletCalculatorBase.h:18
trklet::IMATH_TrackletCalculatorOverlap::phiD_2_final
VarAdjustK phiD_2_final
Definition: IMATH_TrackletCalculatorOverlap.h:305
trklet::MemoryBase
Definition: MemoryBase.h:13
trklet::IMATH_TrackletCalculator::zL_0_final
VarAdjustKR zL_0_final
Definition: IMATH_TrackletCalculator.h:293
trklet::TrackletCalculatorBase::layerdisk1_
unsigned int layerdisk1_
Definition: TrackletCalculatorBase.h:129
trklet::IMATH_TrackletCalculator::z0_final
VarAdjustKR z0_final
Definition: IMATH_TrackletCalculator.h:220
trklet::VarBase::verilog_print
static void verilog_print(const std::vector< VarBase * > &v, std::ofstream &fs)
Definition: imath.h:274
trklet::TrackletCalculatorBase::layerdisk2_
unsigned int layerdisk2_
Definition: TrackletCalculatorBase.h:130
trklet::VarBase::K
double K() const
Definition: imath.h:246
trklet::IMATH_TrackletCalculatorDisk::z0_final
VarAdjustK z0_final
Definition: IMATH_TrackletCalculatorDisk.h:204
trklet::IMATH_TrackletCalculatorDisk::phiD_1_final
VarAdjustK phiD_1_final
Definition: IMATH_TrackletCalculatorDisk.h:294
trklet::Globals::ITC_L1L2
IMATH_TrackletCalculator * ITC_L1L2()
Definition: Globals.h:52
trklet::Settings::writeHLSInvTable
bool writeHLSInvTable() const
Definition: Settings.h:175
trklet::IMATH_TrackletCalculatorDisk::rD_1_final
VarAdjustK rD_1_final
Definition: IMATH_TrackletCalculatorDisk.h:325
trklet::IMATH_TrackletCalculator::phiL_1_final
VarAdjustK phiL_1_final
Definition: IMATH_TrackletCalculator.h:269
trklet::TrackletCalculatorBase::overlapSeeding
bool overlapSeeding(const Stub *innerFPGAStub, const L1TStub *innerStub, const Stub *outerFPGAStub, const L1TStub *outerStub)
Definition: TrackletCalculatorBase.cc:1111
trklet::IMATH_TrackletCalculator::phi0_final
VarAdjustK phi0_final
Definition: IMATH_TrackletCalculator.h:218
StubPairsMemory.h
trklet::TrackletCalculatorBase::trackletprojdisks_
std::vector< std::vector< TrackletProjectionsMemory * > > trackletprojdisks_
Definition: TrackletCalculatorBase.h:138
Globals.h
trklet::IMATH_TrackletCalculatorDisk::rinv_final
VarAdjustK rinv_final
Definition: IMATH_TrackletCalculatorDisk.h:200
trklet::TrackletCalculator::writeFirmwareDesign
void writeFirmwareDesign(void(*writeDesign)(const std::vector< VarBase * > &, const std::string &))
Definition: TrackletCalculator.cc:274
trklet::IMATH_TrackletCalculator::phiD_3_final
VarAdjustK phiD_3_final
Definition: IMATH_TrackletCalculator.h:334
trklet::IMATH_TrackletCalculator::rD_4_final
VarAdjustK rD_4_final
Definition: IMATH_TrackletCalculator.h:378
trklet::IMATH_TrackletCalculator::rD_2_final
VarAdjustK rD_2_final
Definition: IMATH_TrackletCalculator.h:376
trklet::Globals::ITC_F1F2
IMATH_TrackletCalculatorDisk * ITC_F1F2()
Definition: Globals.h:57
trklet::VarInv
Definition: imath.h:955
trklet::IMATH_TrackletCalculatorOverlap::rD_2_final
VarAdjustK rD_2_final
Definition: IMATH_TrackletCalculatorOverlap.h:342
trklet::IMATH_TrackletCalculatorOverlap::phiL_2_final
VarAdjustK phiL_2_final
Definition: IMATH_TrackletCalculatorOverlap.h:252
trklet::IMATH_TrackletCalculatorDisk::der_phiL_final
VarAdjustK der_phiL_final
Definition: IMATH_TrackletCalculatorDisk.h:248
trklet
Definition: AllProjectionsMemory.h:9
trklet::IMATH_TrackletCalculator::phiD_1_final
VarAdjustK phiD_1_final
Definition: IMATH_TrackletCalculator.h:332
trklet::Globals::ITC_L5L6
IMATH_TrackletCalculator * ITC_L5L6()
Definition: Globals.h:55
trklet::VarBase::hls
static struct trklet::VarBase::HLS hls
IMATH_TrackletCalculator.h
trklet::Globals::ITC_B3B4
IMATH_TrackletCalculatorDisk * ITC_B3B4()
Definition: Globals.h:60
trklet::IMATH_TrackletCalculator::der_zL_final
VarAdjustK der_zL_final
Definition: IMATH_TrackletCalculator.h:298
trklet::IMATH_TrackletCalculator::rinv_final
VarAdjustK rinv_final
Definition: IMATH_TrackletCalculator.h:216
trklet::Settings::writeMonitorData
bool writeMonitorData(std::string module) const
Definition: Settings.h:96
trklet::TrackletCalculatorBase::TCIndex_
int TCIndex_
Definition: TrackletCalculatorBase.h:132
std
Definition: JetResolutionObject.h:76
trklet::TrackletParametersMemory::nTracklets
unsigned int nTracklets() const
Definition: TrackletParametersMemory.h:25
trklet::Settings::usephicritapprox
bool usephicritapprox() const
Definition: Settings.h:212
trklet::Globals::ITC_L1B1
IMATH_TrackletCalculatorOverlap * ITC_L1B1()
Definition: Globals.h:63
trklet::IMATH_TrackletCalculatorDisk::phiL_0_final
VarAdjustK phiL_0_final
Definition: IMATH_TrackletCalculatorDisk.h:244
trklet::Globals::ofstream
std::ofstream & ofstream(std::string fname)
Definition: Globals.cc:44
trklet::IMATH_TrackletCalculator::phiL_2_final
VarAdjustK phiL_2_final
Definition: IMATH_TrackletCalculator.h:270
trklet::Stub::l1tstub
L1TStub * l1tstub()
Definition: Stub.h:69
trklet::Settings::tablePath
std::string const & tablePath() const
Definition: Settings.h:170
edm::LogVerbatim
Log< level::Info, true > LogVerbatim
Definition: MessageLogger.h:128
Exception
Definition: hltDiff.cc:245
trklet::ProcessBase::getName
std::string const & getName() const
Definition: ProcessBase.h:22
trklet::ProcessBase::name_
std::string name_
Definition: ProcessBase.h:38
trklet::IMATH_TrackletCalculatorOverlap::t_final
VarAdjustK t_final
Definition: IMATH_TrackletCalculatorOverlap.h:209
trklet::Settings::nallstubs
unsigned int nallstubs(unsigned int layerdisk) const
Definition: Settings.h:94
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
trklet::ProcessBase::iSector_
unsigned int iSector_
Definition: ProcessBase.h:39
trklet::Settings::debugTracklet
bool debugTracklet() const
Definition: Settings.h:161
trklet::Settings::rcrit
double rcrit() const
Definition: Settings.h:257
trklet::Globals::ITC_L3L4
IMATH_TrackletCalculator * ITC_L3L4()
Definition: Globals.h:54
Exception.h
trklet::IMATH_TrackletCalculatorOverlap::phi0_final
VarAdjustK phi0_final
Definition: IMATH_TrackletCalculatorOverlap.h:208
funct::void
TEMPL(T2) struct Divides void
Definition: Factorize.h:24
trklet::Settings::maxStep
unsigned int maxStep(std::string module) const
Definition: Settings.h:103
trklet::IMATH_TrackletCalculatorDisk::drinv
VarInv drinv
Definition: IMATH_TrackletCalculatorDisk.h:168
trklet::IMATH_TrackletCalculatorOverlap::phiL_0_final
VarAdjustK phiL_0_final
Definition: IMATH_TrackletCalculatorOverlap.h:250
trklet::TrackletCalculator::addOutput
void addOutput(MemoryBase *memory, std::string output) override
Definition: TrackletCalculator.cc:86
trklet::Globals::ITC_L2F1
IMATH_TrackletCalculatorOverlap * ITC_L2F1()
Definition: Globals.h:64
trklet::TrackletCalculator::innerallstubs_
std::vector< AllStubsMemory * > innerallstubs_
Definition: TrackletCalculator.h:35
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
trklet::IMATH_TrackletCalculator::invt
VarInv invt
Definition: IMATH_TrackletCalculator.h:303
trklet::TrackletCalculator::execute
void execute()
Definition: TrackletCalculator.cc:154
trklet::IMATH_TrackletCalculator::phiD_2_final
VarAdjustK phiD_2_final
Definition: IMATH_TrackletCalculator.h:333
trklet::IMATH_TrackletCalculator::der_phiL_final
VarAdjustK der_phiL_final
Definition: IMATH_TrackletCalculator.h:273
trklet::IMATH_TrackletCalculatorOverlap::der_rD_final
VarAdjustK der_rD_final
Definition: IMATH_TrackletCalculatorOverlap.h:345
trklet::ProcessBase::globals_
Globals * globals_
Definition: ProcessBase.h:45
trklet::IMATH_TrackletCalculator::drinv
VarInv drinv
Definition: IMATH_TrackletCalculator.h:184
trklet::TrackletCalculator::addInput
void addInput(MemoryBase *memory, std::string input) override
Definition: TrackletCalculator.cc:128
trklet::IMATH_TrackletCalculatorDisk::phiL_1_final
VarAdjustK phiL_1_final
Definition: IMATH_TrackletCalculatorDisk.h:245
IMATH_TrackletCalculatorOverlap.h
edm::Log
Definition: MessageLogger.h:70
trklet::IMATH_TrackletCalculator::der_rD_final
VarAdjustK der_rD_final
Definition: IMATH_TrackletCalculator.h:380
trklet::IMATH_TrackletCalculatorDisk::invt
VarInv invt
Definition: IMATH_TrackletCalculatorDisk.h:273
trklet::TrackletCalculator::stubpairs_
std::vector< StubPairsMemory * > stubpairs_
Definition: TrackletCalculator.h:37
trklet::IMATH_TrackletCalculatorOverlap::der_phiD_final
VarAdjustK der_phiD_final
Definition: IMATH_TrackletCalculatorOverlap.h:310
IMATH_TrackletCalculatorDisk.h
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
trklet::IMATH_TrackletCalculatorDisk::phiL_2_final
VarAdjustK phiL_2_final
Definition: IMATH_TrackletCalculatorDisk.h:246