CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
trklet::TrackletEventProcessor Class Reference

#include <TrackletEventProcessor.h>

Public Member Functions

void event (SLHCEvent &ev)
 
void init (Settings const &theSettings)
 
void printSummary ()
 
 TrackletEventProcessor ()
 
std::vector< Track * > & tracks ()
 
 ~TrackletEventProcessor ()
 

Private Attributes

Timer addStubTimer_
 
std::unique_ptr< Cablingcabling_
 
Timer cleanTimer_
 
std::map< std::string, std::vector< int > > dtclayerdisk_
 
int eventnum_ = {0}
 
Timer FTTimer_
 
std::unique_ptr< Globalsglobals_
 
HistBasehistbase_ {}
 
Timer MCTimer_
 
Timer METimer_
 
Timer MPTimer_
 
Timer PDTimer_
 
Timer PRTimer_
 
std::vector< std::unique_ptr< Sector > > sectors_
 
const Settingssettings_ {nullptr}
 
Timer TCDTimer_
 
Timer TCTimer_
 
Timer TEDTimer_
 
Timer TETimer_
 
std::vector< Track * > tracks_
 
Timer TRETimer_
 
Timer VMRouterTimer_
 

Detailed Description

Definition at line 22 of file TrackletEventProcessor.h.

Constructor & Destructor Documentation

◆ TrackletEventProcessor()

TrackletEventProcessor::TrackletEventProcessor ( )

Definition at line 17 of file TrackletEventProcessor.cc.

17 : settings_(nullptr) {}

◆ ~TrackletEventProcessor()

TrackletEventProcessor::~TrackletEventProcessor ( )

Definition at line 19 of file TrackletEventProcessor.cc.

19  {
20  if (settings_ && settings_->bookHistos()) {
21  histbase_->close();
22  }
23 }

References trklet::Settings::bookHistos(), trklet::HistBase::close(), histbase_, and settings_.

Member Function Documentation

◆ event()

void TrackletEventProcessor::event ( SLHCEvent ev)

Definition at line 184 of file TrackletEventProcessor.cc.

184  {
185  globals_->event() = &ev;
186 
187  tracks_.clear();
188 
189  eventnum_++;
190  bool first = (eventnum_ == 1);
191 
192  cleanTimer_.start();
193  for (unsigned int k = 0; k < N_SECTOR; k++) {
194  sectors_[k]->clean();
195  }
196  cleanTimer_.stop();
197 
199 
200  for (int j = 0; j < ev.nstubs(); j++) {
201  L1TStub stub = ev.stub(j);
202 
203  int layer = stub.layer() + 1;
204  int ladder = stub.ladder();
205  int module = stub.module();
206 
207  string dtc = cabling_->dtc(layer, ladder, module);
208  string dtcbase = dtc.substr(2, dtc.size() - 2);
209  if (dtc[0] == 'n') {
210  dtcbase = dtc.substr(0, 4) + dtc.substr(6, dtc.size() - 6);
211  }
212 
213  cabling_->addphi(dtc, stub.phi(), layer, module);
214 
215  double phi = angle0to2pi::make0To2pi(stub.phi() + 0.5 * settings_->dphisectorHG());
216 
217  unsigned int isector = N_SECTOR * phi / (2 * M_PI);
218 
219  for (unsigned int k = 0; k < N_SECTOR; k++) {
220  int diff = k - isector;
221  if (diff > (int)N_SECTOR / 2)
222  diff -= (int)N_SECTOR;
223  if (diff < (-1) * (int)N_SECTOR / 2)
224  diff += (int)N_SECTOR;
225  if (abs(diff) > 1)
226  continue;
227  double phiminsect =
228  k * 2 * M_PI / N_SECTOR - 0.5 * (settings_->dphisectorHG() - 2 * M_PI / N_SECTOR) - M_PI / N_SECTOR;
229  double dphi = stub.phi() - phiminsect;
230  if (dphi > M_PI)
231  dphi -= 2 * M_PI;
232  while (dphi < 0.0)
233  dphi += 2 * M_PI;
234  if (dphi > settings_->dphisectorHG())
235  continue;
236  bool add = sectors_[k]->addStub(stub, dtcbase);
237 
238  static std::map<string, ofstream*> dtcstubs;
239 
240  if (settings_->writeMem()) {
241  vector<string> dtcs = cabling_->DTCs();
242  for (const auto& dtc : dtcs) {
243  string dtcbase = dtc.substr(2, dtc.size() - 2);
244  if (dtc[0] == 'n') {
245  dtcbase = dtc.substr(0, 4) + dtc.substr(6, dtc.size() - 6);
246  }
247 
248  string fname = "../data/MemPrints/InputStubs/Link_";
249  fname += dtcbase;
250  if (dtcstubs.find(dtcbase + "A") != dtcstubs.end())
251  continue;
252  fname += "_A.dat";
253  ofstream* out = new ofstream;
254  out->open(fname.c_str());
255  dtcstubs[dtcbase + "A"] = out;
256 
257  fname = "../data/MemPrints/InputStubs/Link_";
258  fname += dtcbase;
259  if (dtcstubs.find(dtcbase + "B") != dtcstubs.end())
260  continue;
261  fname += "_B.dat";
262  out = new ofstream;
263  out->open(fname.c_str());
264  dtcstubs[dtcbase + "B"] = out;
265  }
266 
267  static int oldevent = -1;
268  if (eventnum_ != oldevent) {
269  oldevent = eventnum_;
270  for (auto& dtcstub : dtcstubs) {
271  FPGAWord tmp;
272  tmp.set(eventnum_ % 8, 3);
273  (*(dtcstub.second)) << "BX " << tmp.str() << " Event : " << eventnum_ + 1 << endl;
274  }
275  }
276  }
277 
278  if (add && settings_->writeMem() && k == settings_->writememsect()) {
279  Stub fpgastub(stub, *settings_, sectors_[k]->phimin(), sectors_[k]->phimax());
280  FPGAWord phi = fpgastub.phi();
281  int topbit = phi.value() >> (phi.nbits() - 1);
282  std::vector<int> tmp = dtclayerdisk_[dtcbase];
283  int layerdisk = stub.layer() + 1;
284  if (layerdisk > 999) {
285  layerdisk = 10 + abs(stub.disk());
286  }
287  int layerdiskcode = -1;
288  for (unsigned int i = 0; i < tmp.size(); i++) {
289  if (tmp[i] == layerdisk)
290  layerdiskcode = i;
291  }
292  if (layerdiskcode == -1) {
293  edm::LogVerbatim("Tracklet") << "dtcbase layerdisk layer disk : " << dtcbase << " " << layerdisk << " "
294  << stub.layer() + 1 << " " << stub.disk();
295  }
296  assert(layerdiskcode >= 0);
297  assert(layerdiskcode < 4);
298  FPGAWord ldcode;
299  ldcode.set(layerdiskcode, 2);
300  string dataword = "1|" + ldcode.str() + "|" + fpgastub.str();
301  if (topbit == 0) {
302  (*dtcstubs[dtcbase + "A"]) << dataword << " " << trklet::hexFormat(dataword) << endl;
303  } else {
304  (*dtcstubs[dtcbase + "B"]) << dataword << " " << trklet::hexFormat(dataword) << endl;
305  }
306  }
307  }
308  }
309 
310  if (settings_->writeMem()) {
311  for (unsigned int k = 0; k < N_SECTOR; k++) {
312  if (k == settings_->writememsect())
313  sectors_[k]->writeInputStubs(first);
314  }
315  }
316 
318 
319  // ----------------------------------------------------------------------------------------
320  // Now start the tracklet processing
321 
322  // VM router
324  for (unsigned int k = 0; k < N_SECTOR; k++) {
325  sectors_[k]->executeVMR();
326  if (settings_->writeMem() && k == settings_->writememsect()) {
327  sectors_[k]->writeInputStubs(first);
328  sectors_[k]->writeVMSTE(first);
329  sectors_[k]->writeVMSME(first);
330  sectors_[k]->writeAS(first);
331  }
332  }
334 
335  // tracklet engine
336  TETimer_.start();
337  for (unsigned int k = 0; k < N_SECTOR; k++) {
338  sectors_[k]->executeTE();
339  }
340  TETimer_.stop();
341 
342  // tracklet engine displaced
343  TEDTimer_.start();
344  for (unsigned int k = 0; k < N_SECTOR; k++) {
345  sectors_[k]->executeTED();
346  }
347  TEDTimer_.stop();
348 
349  // triplet engine
350  TRETimer_.start();
351  for (unsigned int k = 0; k < N_SECTOR; k++) {
352  sectors_[k]->executeTRE();
353  if (settings_->writeMem() && k == settings_->writememsect()) {
354  sectors_[k]->writeST(first);
355  }
356  }
357  TRETimer_.stop();
358 
359  // tracklet processor (alternative implementation to TE+TC)
360  for (unsigned int k = 0; k < N_SECTOR; k++) {
361  sectors_[k]->executeTP();
362  }
363 
364  for (unsigned int k = 0; k < N_SECTOR; k++) {
365  if (settings_->writeMem() && k == settings_->writememsect()) {
366  sectors_[k]->writeSP(first);
367  }
368  }
369 
370  // tracklet calculator
371  TCTimer_.start();
372  for (unsigned int k = 0; k < N_SECTOR; k++) {
373  sectors_[k]->executeTC();
374  }
375  TCTimer_.stop();
376 
377  int nTP = globals_->event()->nsimtracks();
378  for (int iTP = 0; iTP < nTP; iTP++) {
379  L1SimTrack simtrk = globals_->event()->simtrack(iTP);
380  if (simtrk.pt() < 2.0)
381  continue;
382  if (std::abs(simtrk.vz()) > 15.0)
383  continue;
384  if (hypot(simtrk.vx(), simtrk.vy()) > 0.1)
385  continue;
386  bool electron = (abs(simtrk.type()) == 11);
387  bool muon = (abs(simtrk.type()) == 13);
388  bool pion = (abs(simtrk.type()) == 211);
389  bool kaon = (abs(simtrk.type()) == 321);
390  bool proton = (abs(simtrk.type()) == 2212);
391  if (!(electron || muon || pion || kaon || proton))
392  continue;
393  int nlayers = 0;
394  int ndisks = 0;
395  int simtrackid = simtrk.trackid();
396  unsigned int hitmask = ev.layersHit(simtrackid, nlayers, ndisks);
397  if (nlayers + ndisks < 4)
398  continue;
399 
400  if (settings_->writeMonitorData("HitEff")) {
401  static ofstream outhit("hiteff.txt");
402  outhit << simtrk.eta() << " " << (hitmask & 1) << " " << (hitmask & 2) << " " << (hitmask & 4) << " "
403  << (hitmask & 8) << " " << (hitmask & 16) << " " << (hitmask & 32) << " " << (hitmask & 64) << " "
404  << (hitmask & 128) << " " << (hitmask & 256) << " " << (hitmask & 512) << " " << (hitmask & 1024) << endl;
405  }
406 
407  std::unordered_set<int> matchseed;
408  for (unsigned int k = 0; k < N_SECTOR; k++) {
409  std::unordered_set<int> matchseedtmp = sectors_[k]->seedMatch(iTP);
410  matchseed.insert(matchseedtmp.begin(), matchseedtmp.end());
411  }
412  if (settings_->bookHistos()) {
413  for (int iseed = 0; iseed < 8; iseed++) {
414  bool eff = matchseed.find(iseed) != matchseed.end();
415  globals_->histograms()->fillSeedEff(iseed, simtrk.eta(), eff);
416  }
417  }
418  }
419 
420  // tracklet calculator displaced
421  TCDTimer_.start();
422  for (unsigned int k = 0; k < N_SECTOR; k++) {
423  sectors_[k]->executeTCD();
424  }
425  TCDTimer_.stop();
426 
427  for (unsigned int k = 0; k < N_SECTOR; k++) {
428  if (settings_->writeMem() && k == settings_->writememsect()) {
429  sectors_[k]->writeTPAR(first);
430  sectors_[k]->writeTPROJ(first);
431  }
432  }
433 
434  // projection router
435  PRTimer_.start();
436  for (unsigned int k = 0; k < N_SECTOR; k++) {
437  sectors_[k]->executePR();
438  if (settings_->writeMem() && k == settings_->writememsect()) {
439  sectors_[k]->writeVMPROJ(first);
440  sectors_[k]->writeAP(first);
441  }
442  }
443  PRTimer_.stop();
444 
445  // match engine
446  METimer_.start();
447  for (unsigned int k = 0; k < N_SECTOR; k++) {
448  sectors_[k]->executeME();
449  if (settings_->writeMem() && k == settings_->writememsect()) {
450  sectors_[k]->writeCM(first);
451  }
452  }
453  METimer_.stop();
454 
455  // match calculator
456  MCTimer_.start();
457  for (unsigned int k = 0; k < N_SECTOR; k++) {
458  sectors_[k]->executeMC();
459  }
460  MCTimer_.stop();
461 
462  // match processor (alternative to ME+MC)
463  MPTimer_.start();
464  for (unsigned int k = 0; k < N_SECTOR; k++) {
465  sectors_[k]->executeMP();
466  }
467  MPTimer_.stop();
468 
469  for (unsigned int k = 0; k < N_SECTOR; k++) {
470  if (settings_->writeMem() && k == settings_->writememsect()) {
471  sectors_[k]->writeMC(first);
472  }
473  }
474 
475  // fit track
476  FTTimer_.start();
477  for (unsigned int k = 0; k < N_SECTOR; k++) {
478  sectors_[k]->executeFT();
479 #ifndef USEHYBRID //don't try to print these memories if running hybrid
480  if ((settings_->writeMem() || settings_->writeMonitorData("IFit")) && k == settings_->writememsect()) {
481  sectors_[k]->writeTF(first);
482  }
483 #endif
484  }
485  FTTimer_.stop();
486 
487  // purge duplicate
488  PDTimer_.start();
489  for (unsigned int k = 0; k < N_SECTOR; k++) {
490  sectors_[k]->executePD(tracks_);
491 #ifndef USEHYBRID //don't try to print these memories if running hybrid
492  if (((settings_->writeMem() || settings_->writeMonitorData("IFit")) && k == settings_->writememsect()) ||
493  settings_->writeMonitorData("CT")) {
494  sectors_[k]->writeCT(first);
495  }
496 #endif
497  }
498  PDTimer_.stop();
499 }

References funct::abs(), PVValHelper::add(), addStubTimer_, cms::cuda::assert(), trklet::Settings::bookHistos(), cabling_, cleanTimer_, change_name::diff, trklet::L1TStub::disk(), trklet::Settings::dphisectorHG(), dtclayerdisk_, metsig::electron, trklet::L1SimTrack::eta(), ev, eventnum_, dqmdumpme::first, alignmentValidation::fname, FTTimer_, globals_, trklet::hexFormat(), mps_fire::i, createfilelist::int, iseed, dqmiolumiharvest::j, dqmdumpme::k, trklet::L1TStub::ladder(), PVValHelper::ladder, trklet::L1TStub::layer(), M_PI, angle0to2pi::make0To2pi(), MCTimer_, METimer_, trklet::L1TStub::module(), MPTimer_, trklet::N_SECTOR, nlayers, MillePedeFileConverter_cfg::out, PDTimer_, trklet::Stub::phi(), trklet::L1TStub::phi(), phimax, phimin, PRTimer_, trklet::L1SimTrack::pt(), sectors_, trklet::FPGAWord::set(), settings_, trklet::Timer::start(), trklet::Timer::stop(), trklet::FPGAWord::str(), trklet::Stub::str(), TCDTimer_, TCTimer_, TEDTimer_, TETimer_, createJobs::tmp, trklet::L1SimTrack::trackid(), tracks_, TRETimer_, trklet::L1SimTrack::type(), VMRouterTimer_, trklet::L1SimTrack::vx(), trklet::L1SimTrack::vy(), trklet::L1SimTrack::vz(), trklet::Settings::writeMem(), trklet::Settings::writememsect(), and trklet::Settings::writeMonitorData().

Referenced by L1FPGATrackProducer::produce().

◆ init()

void TrackletEventProcessor::init ( Settings const &  theSettings)

Definition at line 25 of file TrackletEventProcessor.cc.

25  {
26  settings_ = &theSettings;
27 
28  globals_ = make_unique<Globals>(*settings_);
29 
30  //Verify consistency
31  if (settings_->kphi0pars() != globals_->ITC_L1L2()->phi0_final.K()) {
32  throw cms::Exception("Inconsistency") << "phi0 conversion parameter inconsistency\n";
33  }
34 
35  if (settings_->krinvpars() != globals_->ITC_L1L2()->rinv_final.K()) {
36  throw cms::Exception("Inconsistency") << "ring conversion parameter inconsistency\n";
37  }
38 
39  if (settings_->ktpars() != globals_->ITC_L1L2()->t_final.K()) {
40  throw cms::Exception("Inconsistency") << "t conversion parameter inconsistency\n";
41  }
42 
43  if (settings_->debugTracklet()) {
44  edm::LogVerbatim("Tracklet") << "========================================================= \n"
45  << "Conversion factors for global coordinates: \n"
46  << "z kz = " << settings_->kz() << "\n"
47  << "r kr = " << settings_->kr() << "\n"
48  << "phi kphi1 = " << settings_->kphi1() << "\n"
49  << "========================================================= \n"
50  << "Conversion factors for track(let) parameters: \n"
51  << "rinv krinvpars = " << settings_->krinvpars() << "\n"
52  << "phi0 kphi0pars = " << settings_->kphi0pars() << "\n"
53  << "d0 kd0pars = " << settings_->kd0pars() << "\n"
54  << "t ktpars = " << settings_->ktpars() << "\n"
55  << "z0 kz0pars = " << settings_->kz0pars() << "\n"
56  << "========================================================= \n"
57  << "phi0bitshift = " << settings_->phi0bitshift() << "\n"
58  << "d0bitshift = ??? \n"
59  << "=========================================================";
60  }
61 
62  //option to write out tables for HLS code, not used in production
63  /*
64  const Settings& settings = *settings_;
65  Globals* globals = globals_;
66 
67  if (settings_->writeVerilog() || settings_->writeHLS()) {
68 #include "../test/WriteInvTables.icc"
69 #include "../test/WriteDesign.icc"
70  }
71  */
72 
73  if (settings_->bookHistos()) {
74  histbase_ = new HistBase;
75  histbase_->open();
80 
81  globals_->histograms() = histbase_;
82  }
83 
84  // create the sector processors (1 sector processor = 1 board)
85  sectors_.resize(N_SECTOR);
86 
87  for (unsigned int i = 0; i < N_SECTOR; i++) {
88  sectors_[i] = make_unique<Sector>(i, *settings_, globals_.get());
89  }
90 
91  // get the memory modules
92  if (settings_->debugTracklet()) {
93  edm::LogVerbatim("Tracklet") << "Will read memory modules file";
94  }
95 
96  ifstream inmem(settings_->memoryModulesFile().c_str());
97  assert(inmem.good());
98 
99  while (inmem.good()) {
100  string memType, memName, size;
101  inmem >> memType >> memName >> size;
102  if (!inmem.good())
103  continue;
104  if (settings_->writetrace()) {
105  edm::LogVerbatim("Tracklet") << "Read memory: " << memType << " " << memName;
106  }
107  for (auto& sector : sectors_) {
108  sector->addMem(memType, memName);
109  }
110  }
111 
112  // get the processing modules
113  if (settings_->debugTracklet()) {
114  edm::LogVerbatim("Tracklet") << "Will read processing modules file";
115  }
116 
117  ifstream inproc(settings_->processingModulesFile().c_str());
118  assert(inproc.good());
119 
120  while (inproc.good()) {
121  string procType, procName;
122  inproc >> procType >> procName;
123  if (!inproc.good())
124  continue;
125  if (settings_->writetrace()) {
126  edm::LogVerbatim("Tracklet") << "Read process: " << procType << " " << procName;
127  }
128  for (auto& sector : sectors_) {
129  sector->addProc(procType, procName);
130  }
131  }
132 
133  // get the wiring information
134  if (settings_->debugTracklet()) {
135  edm::LogVerbatim("Tracklet") << "Will read wiring information";
136  }
137 
138  ifstream inwire(settings_->wiresFile().c_str());
139  assert(inwire.good());
140 
141  while (inwire.good()) {
142  string line;
143  getline(inwire, line);
144  if (!inwire.good())
145  continue;
146  if (settings_->writetrace()) {
147  edm::LogVerbatim("Tracklet") << "Line : " << line;
148  }
149  stringstream ss(line);
150  string mem, tmp1, procin, tmp2, procout;
151  ss >> mem >> tmp1 >> procin;
152  if (procin == "output=>") {
153  procin = "";
154  ss >> procout;
155  } else {
156  ss >> tmp2 >> procout;
157  }
158 
159  for (auto& sector : sectors_) {
160  sector->addWire(mem, procin, procout);
161  }
162  }
163 
164  // get the DTC/cabling information
165  ifstream indtc(settings_->DTCLinkLayerDiskFile());
166  assert(indtc.good());
167  string dtc;
168  indtc >> dtc;
169  while (indtc.good()) {
170  vector<int> tmp;
171  dtclayerdisk_[dtc] = tmp;
172  int layerdisk;
173  indtc >> layerdisk;
174  while (layerdisk > 0) {
175  dtclayerdisk_[dtc].push_back(layerdisk);
176  indtc >> layerdisk;
177  }
178  indtc >> dtc;
179  }
180 
181  cabling_ = make_unique<Cabling>(settings_->DTCLinkFile(), settings_->moduleCablingFile(), *settings_);
182 }

References cms::cuda::assert(), trklet::HistBase::bookDiskResidual(), trklet::Settings::bookHistos(), trklet::HistBase::bookLayerResidual(), trklet::HistBase::bookSeedEff(), trklet::HistBase::bookTrackletParams(), cabling_, trklet::Settings::debugTracklet(), dtclayerdisk_, trklet::Settings::DTCLinkFile(), trklet::Settings::DTCLinkLayerDiskFile(), Exception, globals_, histbase_, mps_fire::i, trklet::Settings::kd0pars(), trklet::Settings::kphi0pars(), trklet::Settings::kphi1(), trklet::Settings::kr(), trklet::Settings::krinvpars(), trklet::Settings::ktpars(), trklet::Settings::kz(), trklet::Settings::kz0pars(), mps_splice::line, mem, trklet::Settings::memoryModulesFile(), trklet::Settings::moduleCablingFile(), trklet::N_SECTOR, trklet::HistBase::open(), trklet::Settings::phi0bitshift(), trklet::Settings::processingModulesFile(), sectors_, settings_, findQualityFiles::size, contentValuesCheck::ss, createJobs::tmp, trklet::Settings::wiresFile(), and trklet::Settings::writetrace().

Referenced by L1FPGATrackProducer::beginRun().

◆ printSummary()

void TrackletEventProcessor::printSummary ( )

Definition at line 501 of file TrackletEventProcessor.cc.

501  {
502  if (settings_->writeMonitorData("Cabling")) {
503  cabling_->writephirange();
504  }
505 
506  if (settings_->bookHistos()) {
507  globals_->histograms()->close();
508  }
509 
510  edm::LogVerbatim("Tracklet")
511  << "Process Times called Average time (ms) Total time (s) \n"
512  << "Cleaning " << setw(10) << cleanTimer_.ntimes() << setw(20) << setprecision(3)
513  << cleanTimer_.avgtime() * 1000.0 << setw(20) << setprecision(3) << cleanTimer_.tottime() << "\n"
514  << "Add Stubs " << setw(10) << addStubTimer_.ntimes() << setw(20) << setprecision(3)
515  << addStubTimer_.avgtime() * 1000.0 << setw(20) << setprecision(3) << addStubTimer_.tottime() << "\n"
516  << "VMRouter " << setw(10) << VMRouterTimer_.ntimes() << setw(20) << setprecision(3)
517  << VMRouterTimer_.avgtime() * 1000.0 << setw(20) << setprecision(3) << VMRouterTimer_.tottime() << "\n"
518  << "TrackletEngine " << setw(10) << TETimer_.ntimes() << setw(20) << setprecision(3)
519  << TETimer_.avgtime() * 1000.0 << setw(20) << setprecision(3) << TETimer_.tottime() << "\n"
520  << "TrackletEngineDisplaced" << setw(10) << TEDTimer_.ntimes() << setw(20) << setprecision(3)
521  << TEDTimer_.avgtime() * 1000.0 << setw(20) << setprecision(3) << TEDTimer_.tottime() << "\n"
522  << "TripletEngine " << setw(10) << TRETimer_.ntimes() << setw(20) << setprecision(3)
523  << TRETimer_.avgtime() * 1000.0 << setw(20) << setprecision(3) << TRETimer_.tottime() << "\n"
524  << "TrackletCalculator " << setw(10) << TCTimer_.ntimes() << setw(20) << setprecision(3)
525  << TCTimer_.avgtime() * 1000.0 << setw(20) << setprecision(3) << TCTimer_.tottime() << "\n"
526  << "TrackletCalculatorDisplaced" << setw(10) << TCDTimer_.ntimes() << setw(20) << setprecision(3)
527  << TCDTimer_.avgtime() * 1000.0 << setw(20) << setprecision(3) << TCDTimer_.tottime() << "\n"
528  << "ProjectionRouter " << setw(10) << PRTimer_.ntimes() << setw(20) << setprecision(3)
529  << PRTimer_.avgtime() * 1000.0 << setw(20) << setprecision(3) << PRTimer_.tottime() << "\n"
530  << "MatchEngine " << setw(10) << METimer_.ntimes() << setw(20) << setprecision(3)
531  << METimer_.avgtime() * 1000.0 << setw(20) << setprecision(3) << METimer_.tottime() << "\n"
532  << "MatchCalculator " << setw(10) << MCTimer_.ntimes() << setw(20) << setprecision(3)
533  << MCTimer_.avgtime() * 1000.0 << setw(20) << setprecision(3) << MCTimer_.tottime() << "\n"
534  << "MatchProcessor " << setw(10) << MPTimer_.ntimes() << setw(20) << setprecision(3)
535  << MPTimer_.avgtime() * 1000.0 << setw(20) << setprecision(3) << MPTimer_.tottime() << "\n"
536  << "FitTrack " << setw(10) << FTTimer_.ntimes() << setw(20) << setprecision(3)
537  << FTTimer_.avgtime() * 1000.0 << setw(20) << setprecision(3) << FTTimer_.tottime() << "\n"
538  << "PurgeDuplicate " << setw(10) << PDTimer_.ntimes() << setw(20) << setprecision(3)
539  << PDTimer_.avgtime() * 1000.0 << setw(20) << setprecision(3) << PDTimer_.tottime();
540 }

References addStubTimer_, trklet::Timer::avgtime(), trklet::Settings::bookHistos(), cabling_, cleanTimer_, FTTimer_, globals_, MCTimer_, METimer_, MPTimer_, trklet::Timer::ntimes(), PDTimer_, PRTimer_, settings_, TCDTimer_, TCTimer_, TEDTimer_, TETimer_, trklet::Timer::tottime(), TRETimer_, VMRouterTimer_, and trklet::Settings::writeMonitorData().

◆ tracks()

std::vector<Track*>& trklet::TrackletEventProcessor::tracks ( void  )
inline

Definition at line 34 of file TrackletEventProcessor.h.

34 { return tracks_; }

References tracks_.

Referenced by L1FPGATrackProducer::produce().

Member Data Documentation

◆ addStubTimer_

Timer trklet::TrackletEventProcessor::addStubTimer_
private

Definition at line 50 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ cabling_

std::unique_ptr<Cabling> trklet::TrackletEventProcessor::cabling_
private

Definition at line 47 of file TrackletEventProcessor.h.

Referenced by event(), init(), and printSummary().

◆ cleanTimer_

Timer trklet::TrackletEventProcessor::cleanTimer_
private

Definition at line 49 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ dtclayerdisk_

std::map<std::string, std::vector<int> > trklet::TrackletEventProcessor::dtclayerdisk_
private

Definition at line 66 of file TrackletEventProcessor.h.

Referenced by event(), and init().

◆ eventnum_

int trklet::TrackletEventProcessor::eventnum_ = {0}
private

Definition at line 45 of file TrackletEventProcessor.h.

Referenced by event().

◆ FTTimer_

Timer trklet::TrackletEventProcessor::FTTimer_
private

Definition at line 61 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ globals_

std::unique_ptr<Globals> trklet::TrackletEventProcessor::globals_
private

Definition at line 39 of file TrackletEventProcessor.h.

Referenced by event(), init(), and printSummary().

◆ histbase_

HistBase* trklet::TrackletEventProcessor::histbase_ {}
private

Definition at line 43 of file TrackletEventProcessor.h.

Referenced by init(), and ~TrackletEventProcessor().

◆ MCTimer_

Timer trklet::TrackletEventProcessor::MCTimer_
private

Definition at line 59 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ METimer_

Timer trklet::TrackletEventProcessor::METimer_
private

Definition at line 58 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ MPTimer_

Timer trklet::TrackletEventProcessor::MPTimer_
private

Definition at line 60 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ PDTimer_

Timer trklet::TrackletEventProcessor::PDTimer_
private

Definition at line 62 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ PRTimer_

Timer trklet::TrackletEventProcessor::PRTimer_
private

Definition at line 57 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ sectors_

std::vector<std::unique_ptr<Sector> > trklet::TrackletEventProcessor::sectors_
private

Definition at line 41 of file TrackletEventProcessor.h.

Referenced by event(), and init().

◆ settings_

const Settings* trklet::TrackletEventProcessor::settings_ {nullptr}
private

Definition at line 37 of file TrackletEventProcessor.h.

Referenced by event(), init(), printSummary(), and ~TrackletEventProcessor().

◆ TCDTimer_

Timer trklet::TrackletEventProcessor::TCDTimer_
private

Definition at line 56 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ TCTimer_

Timer trklet::TrackletEventProcessor::TCTimer_
private

Definition at line 55 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ TEDTimer_

Timer trklet::TrackletEventProcessor::TEDTimer_
private

Definition at line 53 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ TETimer_

Timer trklet::TrackletEventProcessor::TETimer_
private

Definition at line 52 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ tracks_

std::vector<Track*> trklet::TrackletEventProcessor::tracks_
private

Definition at line 64 of file TrackletEventProcessor.h.

Referenced by event(), and tracks().

◆ TRETimer_

Timer trklet::TrackletEventProcessor::TRETimer_
private

Definition at line 54 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ VMRouterTimer_

Timer trklet::TrackletEventProcessor::VMRouterTimer_
private

Definition at line 51 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

change_name.diff
diff
Definition: change_name.py:13
trklet::Settings::writeMem
bool writeMem() const
Definition: Settings.h:152
trklet::TrackletEventProcessor::TRETimer_
Timer TRETimer_
Definition: TrackletEventProcessor.h:54
trklet::HistBase::bookDiskResidual
virtual void bookDiskResidual()
Definition: HistBase.h:26
mps_fire.i
i
Definition: mps_fire.py:428
trklet::Settings::writetrace
bool writetrace() const
Definition: Settings.h:147
trklet::L1SimTrack::vy
double vy() const
Definition: SLHCEvent.h:32
trklet::HistBase::bookTrackletParams
virtual void bookTrackletParams()
Definition: HistBase.h:27
trklet::L1TStub::ladder
unsigned int ladder() const
Definition: L1TStub.h:51
trklet::FPGAWord::str
std::string str() const
Definition: FPGAWord.cc:54
trklet::Settings::ktpars
double ktpars() const
Definition: Settings.h:332
muon
Definition: MuonCocktails.h:17
trklet::L1TStub::layer
unsigned int layer() const
Definition: L1TStub.h:44
trklet::Settings::krinvpars
double krinvpars() const
Definition: Settings.h:327
trklet::TrackletEventProcessor::TETimer_
Timer TETimer_
Definition: TrackletEventProcessor.h:52
trklet::L1SimTrack::type
int type() const
Definition: SLHCEvent.h:27
phimin
float phimin
Definition: ReggeGribovPartonMCHadronizer.h:107
trklet::TrackletEventProcessor::TCTimer_
Timer TCTimer_
Definition: TrackletEventProcessor.h:55
trklet::TrackletEventProcessor::eventnum_
int eventnum_
Definition: TrackletEventProcessor.h:45
trklet::N_SECTOR
constexpr unsigned int N_SECTOR
Definition: Settings.h:17
trklet::L1TStub
Definition: L1TStub.h:12
trklet::Settings::writememsect
unsigned int writememsect() const
Definition: Settings.h:160
trklet::TrackletEventProcessor::settings_
const Settings * settings_
Definition: TrackletEventProcessor.h:37
cms::cuda::assert
assert(be >=bs)
trklet::FPGAWord::set
void set(int value, int nbits, bool positive=true, int line=-1, const char *file=nullptr)
Definition: FPGAWord.cc:14
trklet::L1SimTrack
Definition: SLHCEvent.h:16
trklet::L1SimTrack::vz
double vz() const
Definition: SLHCEvent.h:33
trklet::Timer::avgtime
double avgtime() const
Definition: Timer.h:18
trklet::TrackletEventProcessor::MCTimer_
Timer MCTimer_
Definition: TrackletEventProcessor.h:59
trklet::TrackletEventProcessor::sectors_
std::vector< std::unique_ptr< Sector > > sectors_
Definition: TrackletEventProcessor.h:41
trklet::Settings::kphi1
double kphi1() const
Definition: Settings.h:247
createJobs.tmp
tmp
align.sh
Definition: createJobs.py:716
mem
uint16_t mem[nChs][nEvts]
Definition: recycleTccEmu.cc:13
trklet::TrackletEventProcessor::addStubTimer_
Timer addStubTimer_
Definition: TrackletEventProcessor.h:50
dqmdumpme.first
first
Definition: dqmdumpme.py:55
trklet::Settings::kz0pars
double kz0pars() const
Definition: Settings.h:333
trklet::Settings::bookHistos
bool bookHistos() const
Definition: Settings.h:166
trklet::HistBase
Definition: HistBase.h:16
trklet::TrackletEventProcessor::MPTimer_
Timer MPTimer_
Definition: TrackletEventProcessor.h:60
trklet::TrackletEventProcessor::cabling_
std::unique_ptr< Cabling > cabling_
Definition: TrackletEventProcessor.h:47
contentValuesCheck.ss
ss
Definition: contentValuesCheck.py:33
trklet::L1SimTrack::trackid
int trackid() const
Definition: SLHCEvent.h:26
trklet::TrackletEventProcessor::VMRouterTimer_
Timer VMRouterTimer_
Definition: TrackletEventProcessor.h:51
trklet::HistBase::open
virtual void open()
Definition: HistBase.h:22
trklet::Settings::wiresFile
std::string const & wiresFile() const
Definition: Settings.h:46
trklet::Settings::dphisectorHG
double dphisectorHG() const
Definition: Settings.h:230
trklet::Stub
Definition: Stub.h:16
trklet::TrackletEventProcessor::tracks_
std::vector< Track * > tracks_
Definition: TrackletEventProcessor.h:64
trklet::TrackletEventProcessor::cleanTimer_
Timer cleanTimer_
Definition: TrackletEventProcessor.h:49
trklet::Timer::ntimes
unsigned int ntimes() const
Definition: Timer.h:17
metsig::electron
Definition: SignAlgoResolutions.h:48
trklet::Timer::start
void start()
Definition: Timer.cc:5
trklet::Settings::memoryModulesFile
std::string const & memoryModulesFile() const
Definition: Settings.h:45
trklet::L1TStub::module
unsigned int module() const
Definition: L1TStub.h:52
trklet::TrackletEventProcessor::histbase_
HistBase * histbase_
Definition: TrackletEventProcessor.h:43
trklet::HistBase::bookLayerResidual
virtual void bookLayerResidual()
Definition: HistBase.h:25
trklet::Settings::kd0pars
double kd0pars() const
Definition: Settings.h:334
dqmdumpme.k
k
Definition: dqmdumpme.py:60
trklet::FPGAWord
Definition: FPGAWord.h:9
trklet::TrackletEventProcessor::globals_
std::unique_ptr< Globals > globals_
Definition: TrackletEventProcessor.h:39
trklet::Settings::kr
double kr() const
Definition: Settings.h:250
trklet::Settings::DTCLinkLayerDiskFile
std::string const & DTCLinkLayerDiskFile() const
Definition: Settings.h:42
iseed
int iseed
Definition: AMPTWrapper.h:134
trklet::Settings::kphi0pars
double kphi0pars() const
Definition: Settings.h:331
PVValHelper::phi
Definition: PVValidationHelpers.h:68
trklet::L1SimTrack::pt
double pt() const
Definition: SLHCEvent.h:28
trklet::Timer::stop
void stop()
Definition: Timer.cc:6
trklet::L1SimTrack::eta
double eta() const
Definition: SLHCEvent.h:29
PVValHelper::add
void add(std::map< std::string, TH1 * > &h, TH1 *hist)
Definition: PVValidationHelpers.cc:12
trklet::TrackletEventProcessor::METimer_
Timer METimer_
Definition: TrackletEventProcessor.h:58
createfilelist.int
int
Definition: createfilelist.py:10
trklet::L1TStub::disk
int disk() const
Definition: L1TStub.h:45
trklet::TrackletEventProcessor::PRTimer_
Timer PRTimer_
Definition: TrackletEventProcessor.h:57
M_PI
#define M_PI
Definition: BXVectorInputProducer.cc:49
trklet::TrackletEventProcessor::TCDTimer_
Timer TCDTimer_
Definition: TrackletEventProcessor.h:56
trklet::HistBase::close
virtual void close()
Definition: HistBase.h:23
trklet::HistBase::bookSeedEff
virtual void bookSeedEff()
Definition: HistBase.h:28
trklet::Timer::tottime
double tottime() const
Definition: Timer.h:20
angle0to2pi::make0To2pi
constexpr valType make0To2pi(valType angle)
Definition: deltaPhi.h:67
phimax
float phimax
Definition: ReggeGribovPartonMCHadronizer.h:106
alignmentValidation.fname
string fname
main script
Definition: alignmentValidation.py:959
trklet::Settings::writeMonitorData
bool writeMonitorData(std::string module) const
Definition: Settings.h:86
trklet::TrackletEventProcessor::TEDTimer_
Timer TEDTimer_
Definition: TrackletEventProcessor.h:53
trklet::Settings::DTCLinkFile
std::string DTCLinkFile() const
Definition: Settings.h:40
edm::LogVerbatim
Log< level::Info, true > LogVerbatim
Definition: MessageLogger.h:128
trklet::Settings::moduleCablingFile
std::string const & moduleCablingFile() const
Definition: Settings.h:41
ev
bool ev
Definition: Hydjet2Hadronizer.cc:95
Exception
Definition: hltDiff.cc:246
PVValHelper::ladder
Definition: PVValidationHelpers.h:72
trklet::Settings::kz
double kz() const
Definition: Settings.h:249
trklet::Settings::phi0bitshift
int phi0bitshift() const
Definition: Settings.h:306
trklet::Settings::debugTracklet
bool debugTracklet() const
Definition: Settings.h:146
MillePedeFileConverter_cfg.out
out
Definition: MillePedeFileConverter_cfg.py:31
trklet::hexFormat
std::string hexFormat(const std::string &binary)
Definition: Util.h:14
trklet::TrackletEventProcessor::PDTimer_
Timer PDTimer_
Definition: TrackletEventProcessor.h:62
trklet::L1SimTrack::vx
double vx() const
Definition: SLHCEvent.h:31
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
trklet::Settings::processingModulesFile
std::string const & processingModulesFile() const
Definition: Settings.h:44
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
mps_splice.line
line
Definition: mps_splice.py:76
trklet::TrackletEventProcessor::dtclayerdisk_
std::map< std::string, std::vector< int > > dtclayerdisk_
Definition: TrackletEventProcessor.h:66
trklet::TrackletEventProcessor::FTTimer_
Timer FTTimer_
Definition: TrackletEventProcessor.h:61
trklet::L1TStub::phi
double phi() const
Definition: L1TStub.h:62
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
nlayers
Definition: HIMultiTrackSelector.h:48