CMS 3D CMS Logo

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

#include <TrackletEventProcessor.h>

Public Member Functions

void event (SLHCEvent &ev, std::vector< std::vector< std::string >> &streamsTrackRaw, std::vector< std::vector< StubStreamData >> &streamsStubRaw)
 
void init (Settings const &theSettings, const tt::Setup *setup=nullptr)
 
void printSummary ()
 
 TrackletEventProcessor ()
 
const std::vector< Track > & tracks () const
 
 ~TrackletEventProcessor ()
 

Private Member Functions

void configure (std::istream &inwire, std::istream &inmem, std::istream &inproc)
 

Private Attributes

Timer addStubTimer_
 
Timer cleanTimer_
 
int eventnum_ = {0}
 
Timer FTTimer_
 
std::unique_ptr< Globalsglobals_
 
HistBasehistbase_ {}
 
Timer InputRouterTimer_
 
Timer MCTimer_
 
Timer METimer_
 
Timer MPTimer_
 
Timer PDTimer_
 
Timer PRTimer_
 
std::unique_ptr< Sectorsector_
 
const Settingssettings_ {nullptr}
 
Timer TCDTimer_
 
Timer TCTimer_
 
Timer TEDTimer_
 
Timer TETimer_
 
Timer TPDTimer_
 
Timer TPTimer_
 
std::vector< Tracktracks_
 
Timer TRETimer_
 
Timer VMRouterTimer_
 

Detailed Description

Definition at line 27 of file TrackletEventProcessor.h.

Constructor & Destructor Documentation

◆ TrackletEventProcessor()

TrackletEventProcessor::TrackletEventProcessor ( )

Definition at line 20 of file TrackletEventProcessor.cc.

20 : settings_(nullptr) {}

◆ ~TrackletEventProcessor()

TrackletEventProcessor::~TrackletEventProcessor ( )

Definition at line 22 of file TrackletEventProcessor.cc.

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

22  {
23  if (settings_ && settings_->bookHistos()) {
24  histbase_->close();
25  }
26 }
bool bookHistos() const
Definition: Settings.h:219
virtual void close()
Definition: HistBase.h:23

Member Function Documentation

◆ configure()

void TrackletEventProcessor::configure ( std::istream &  inwire,
std::istream &  inmem,
std::istream &  inproc 
)
private

Definition at line 116 of file TrackletEventProcessor.cc.

References trklet::Settings::debugTracklet(), mps_splice::line, mem, sector_, settings_, contentValuesCheck::ss, and trklet::Settings::writetrace().

Referenced by init().

116  {
117  // get the memory modules
118  if (settings_->debugTracklet()) {
119  edm::LogVerbatim("Tracklet") << "Will read memory modules";
120  }
121 
122  while (inmem.good()) {
123  string memType, memName, size;
124  inmem >> memType >> memName >> size;
125  if (!inmem.good())
126  continue;
127  if (settings_->writetrace()) {
128  edm::LogVerbatim("Tracklet") << "Read memory: " << memType << " " << memName;
129  }
130  sector_->addMem(memType, memName);
131  }
132 
133  // get the processing modules
134  if (settings_->debugTracklet()) {
135  edm::LogVerbatim("Tracklet") << "Will read processing modules";
136  }
137 
138  while (inproc.good()) {
139  string procType, procName;
140  inproc >> procType >> procName;
141  if (!inproc.good())
142  continue;
143  if (settings_->writetrace()) {
144  edm::LogVerbatim("Tracklet") << "Read process: " << procType << " " << procName;
145  }
146  sector_->addProc(procType, procName);
147  }
148 
149  // get the wiring information
150  if (settings_->debugTracklet()) {
151  edm::LogVerbatim("Tracklet") << "Will read wiring information";
152  }
153 
154  while (inwire.good()) {
155  string line;
156  getline(inwire, line);
157  if (!inwire.good())
158  continue;
159  if (settings_->writetrace()) {
160  edm::LogVerbatim("Tracklet") << "Line : " << line;
161  }
162  stringstream ss(line);
163  string mem, tmp1, procin, tmp2, procout;
164  ss >> mem >> tmp1 >> procin;
165  if (procin == "output=>") {
166  procin = "";
167  ss >> procout;
168  } else {
169  ss >> tmp2 >> procout;
170  }
171 
172  sector_->addWire(mem, procin, procout);
173  }
174 }
size
Write out results.
Log< level::Info, true > LogVerbatim
std::unique_ptr< Sector > sector_
bool writetrace() const
Definition: Settings.h:195
uint16_t mem[nChs][nEvts]
bool debugTracklet() const
Definition: Settings.h:194

◆ event()

void TrackletEventProcessor::event ( SLHCEvent ev,
std::vector< std::vector< std::string >> &  streamsTrackRaw,
std::vector< std::vector< StubStreamData >> &  streamsStubRaw 
)

Definition at line 176 of file TrackletEventProcessor.cc.

References funct::abs(), addStubTimer_, trklet::Settings::bookHistos(), cleanTimer_, trklet::L1TStub::DTClink(), HPSPFTauProducerPuppi_cfi::electron, trklet::L1SimTrack::eta(), makeMEIFBenchmarkPlots::ev, eventnum_, dqmdumpme::first, FTTimer_, globals_, Matriplex::hypot(), InputRouterTimer_, iseed, dqmiolumiharvest::j, dqmdumpme::k, trklet::L1TStub::layerdisk(), MCTimer_, METimer_, MPTimer_, trklet::N_DISK, trklet::N_LAYER, trklet::N_SECTOR, nlayers, PDTimer_, PRTimer_, trklet::L1SimTrack::pt(), trklet::L1TStub::region(), nano_mu_digi_cff::sector, sector_, settings_, trklet::Timer::start(), trklet::Timer::stop(), TCDTimer_, TCTimer_, TEDTimer_, TETimer_, TPDTimer_, TPTimer_, 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().

178  {
179  globals_->event() = &ev;
180 
181  tracks_.clear();
182  eventnum_++;
183  bool first = (eventnum_ == 1);
184 
185  for (unsigned int k = 0; k < N_SECTOR; k++) {
186  sector_->setSector(k);
187 
188  cleanTimer_.start();
189  sector_->clean();
190  cleanTimer_.stop();
191 
193 
194  vector<int> layerstubs(N_LAYER + N_DISK, 0);
195  vector<int> layerstubssector(N_SECTOR * (N_LAYER + N_DISK), 0);
196 
197  for (int j = 0; j < ev.nstubs(); j++) {
198  const L1TStub& stub = ev.stub(j);
199  unsigned int isector = stub.region();
200  if (isector != k) {
201  continue;
202  }
203 
204  const string& dtc = stub.DTClink();
205 
206  layerstubs[stub.layerdisk()]++;
207  layerstubssector[isector * (N_LAYER + N_DISK) + stub.layerdisk()]++;
208 
209  sector_->addStub(stub, dtc);
210  }
211 
212  if (settings_->writeMonitorData("StubsLayerSector")) {
213  for (unsigned int index = 0; index < layerstubssector.size(); index++) {
214  int layerdisk = index % (N_LAYER + N_DISK);
215  int sector = index / (N_LAYER + N_DISK);
216  globals_->ofstream("stubslayersector.txt")
217  << layerdisk << " " << sector << " " << layerstubssector[index] << endl;
218  }
219  }
220 
221  if (settings_->writeMonitorData("StubsLayer")) {
222  for (unsigned int layerdisk = 0; layerdisk < layerstubs.size(); layerdisk++) {
223  globals_->ofstream("stubslayer.txt") << layerdisk << " " << layerstubs[layerdisk] << endl;
224  }
225  }
226 
228 
229  // ----------------------------------------------------------------------------------------
230  // Now start the tracklet processing
231 
232  // VM router
234  sector_->executeIR();
235  if (settings_->writeMem() && k == settings_->writememsect()) {
236  sector_->writeDTCStubs(first);
237  sector_->writeIRStubs(first);
238  }
240 
242  sector_->executeVMR();
243  if (settings_->writeMem() && k == settings_->writememsect()) {
244  sector_->writeVMSTE(first);
245  sector_->writeVMSME(first);
246  sector_->writeAS(first);
247  sector_->writeAIS(first);
248  }
250 
251  // tracklet engine
252  TETimer_.start();
253  sector_->executeTE();
254  TETimer_.stop();
255 
256  // tracklet engine displaced
257  TEDTimer_.start();
258  sector_->executeTED();
259  TEDTimer_.stop();
260 
261  // triplet engine
262  TRETimer_.start();
263  sector_->executeTRE();
264  if (settings_->writeMem() && k == settings_->writememsect()) {
265  sector_->writeST(first);
266  }
267  TRETimer_.stop();
268 
269  // tracklet processor (alternative implementation to TE+TC)
270  TPTimer_.start();
271  sector_->executeTP();
272  TPTimer_.stop();
273 
274  if (settings_->writeMem() && k == settings_->writememsect()) {
275  sector_->writeSP(first);
276  }
277 
278  // tracklet calculator
279  TCTimer_.start();
280  sector_->executeTC();
281  TCTimer_.stop();
282 
283  if (settings_->writeMonitorData("HitEff") || settings_->bookHistos()) {
284  int nTP = globals_->event()->nsimtracks();
285  for (int iTP = 0; iTP < nTP; iTP++) {
286  L1SimTrack simtrk = globals_->event()->simtrack(iTP);
287  if (simtrk.pt() < 2.0)
288  continue;
289  if (std::abs(simtrk.vz()) > 15.0)
290  continue;
291  if (hypot(simtrk.vx(), simtrk.vy()) > 0.1)
292  continue;
293  bool electron = (abs(simtrk.type()) == 11);
294  bool muon = (abs(simtrk.type()) == 13);
295  bool pion = (abs(simtrk.type()) == 211);
296  bool kaon = (abs(simtrk.type()) == 321);
297  bool proton = (abs(simtrk.type()) == 2212);
298  if (!(electron || muon || pion || kaon || proton))
299  continue;
300  int nlayers = 0;
301  int ndisks = 0;
302  int simtrackid = simtrk.trackid();
303  unsigned int hitmask = 0;
304  hitmask = ev.layersHit(simtrackid, nlayers, ndisks); // FIX CPU use.
305  if (nlayers + ndisks < 4)
306  continue;
307 
308  if (settings_->writeMonitorData("HitEff")) {
309  static ofstream outhit("hiteff.txt");
310  outhit << simtrk.eta() << " " << (hitmask & 1) << " " << (hitmask & 2) << " " << (hitmask & 4) << " "
311  << (hitmask & 8) << " " << (hitmask & 16) << " " << (hitmask & 32) << " " << (hitmask & 64) << " "
312  << (hitmask & 128) << " " << (hitmask & 256) << " " << (hitmask & 512) << " " << (hitmask & 1024)
313  << endl;
314  }
315 
316  std::unordered_set<int> matchseed;
317  std::unordered_set<int> matchseedtmp = sector_->seedMatch(iTP);
318  matchseed.insert(matchseedtmp.begin(), matchseedtmp.end());
319  if (settings_->bookHistos()) {
320  for (int iseed = 0; iseed < 8; iseed++) {
321  bool eff = matchseed.find(iseed) != matchseed.end();
322  globals_->histograms()->fillSeedEff(iseed, simtrk.eta(), eff);
323  }
324  }
325  }
326  }
327 
328  // tracklet calculator displaced
329  TCDTimer_.start();
330  sector_->executeTCD();
331  TCDTimer_.stop();
332 
333  // tracklet processor displaced
334  TPDTimer_.start();
335  sector_->executeTPD();
336  TPDTimer_.stop();
337 
338  if (settings_->writeMem() && k == settings_->writememsect()) {
339  sector_->writeTPAR(first);
340  sector_->writeTPROJ(first);
341  }
342 
343  // projection router
344  PRTimer_.start();
345  sector_->executePR();
346  if (settings_->writeMem() && k == settings_->writememsect()) {
347  sector_->writeVMPROJ(first);
348  sector_->writeAP(first);
349  }
350  PRTimer_.stop();
351 
352  // match engine
353  METimer_.start();
354  sector_->executeME();
355  if (settings_->writeMem() && k == settings_->writememsect()) {
356  sector_->writeCM(first);
357  }
358  METimer_.stop();
359 
360  // match calculator
361  MCTimer_.start();
362  sector_->executeMC();
363  MCTimer_.stop();
364 
365  // match processor (alternative to ME+MC)
366  MPTimer_.start();
367  sector_->executeMP();
368  MPTimer_.stop();
369 
370  if (settings_->writeMem() && k == settings_->writememsect()) {
371  sector_->writeMC(first);
372  }
373 
374  // fit track
375  FTTimer_.start();
376  sector_->executeFT(streamsTrackRaw, streamsStubRaw);
377  if ((settings_->writeMem() || settings_->writeMonitorData("IFit")) && k == settings_->writememsect()) {
378  sector_->writeTF(first);
379  }
380  FTTimer_.stop();
381 
382  // purge duplicate
383  PDTimer_.start();
384  sector_->executePD(tracks_);
385  if (((settings_->writeMem() || settings_->writeMonitorData("IFit")) && k == settings_->writememsect()) ||
386  settings_->writeMonitorData("CT")) {
387  sector_->writeCT(first);
388  }
389  PDTimer_.stop();
390  }
391 }
constexpr int N_DISK
Definition: Settings.h:26
MPlex< T, D1, D2, N > hypot(const MPlex< T, D1, D2, N > &a, const MPlex< T, D1, D2, N > &b)
Definition: Matriplex.h:436
bool bookHistos() const
Definition: Settings.h:219
void start()
Definition: Timer.cc:5
std::unique_ptr< Sector > sector_
const std::string & DTClink() const
Definition: L1TStub.h:117
double vy() const
Definition: L1SimTrack.h:30
bool writeMem() const
Definition: Settings.h:200
std::unique_ptr< Globals > globals_
double pt() const
Definition: L1SimTrack.h:26
int type() const
Definition: L1SimTrack.h:25
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
int layerdisk() const
Definition: L1TStub.h:119
bool writeMonitorData(std::string module) const
Definition: Settings.h:118
int trackid() const
Definition: L1SimTrack.h:24
constexpr unsigned int N_SECTOR
Definition: Settings.h:23
double vz() const
Definition: L1SimTrack.h:31
int iseed
Definition: AMPTWrapper.h:134
double vx() const
Definition: L1SimTrack.h:29
void stop()
Definition: Timer.cc:6
double eta() const
Definition: L1SimTrack.h:27
unsigned int writememsect() const
Definition: Settings.h:212
int region() const
Definition: L1TStub.h:121
constexpr int N_LAYER
Definition: Settings.h:25

◆ init()

void TrackletEventProcessor::init ( Settings const &  theSettings,
const tt::Setup setup = nullptr 
)

Definition at line 28 of file TrackletEventProcessor.cc.

References cms::cuda::assert(), trklet::HistBase::bookDiskResidual(), trklet::Settings::bookHistos(), trklet::HistBase::bookLayerResidual(), trklet::HistBase::bookSeedEff(), trklet::HistBase::bookTrackletParams(), DiMuonV_cfg::config, configure(), trklet::Settings::debugTracklet(), Exception, trklet::Settings::extended(), globals_, histbase_, trklet::Settings::kd0pars(), trklet::Settings::kphi0pars(), trklet::Settings::kphi1(), trklet::Settings::kphider(), trklet::Settings::kr(), trklet::Settings::krinvpars(), trklet::Settings::ktpars(), trklet::Settings::kz(), trklet::Settings::kz0pars(), trklet::Settings::memoryModulesFile(), trklet::HistBase::open(), trklet::openfile(), trklet::Settings::phi0bitshift(), trklet::Settings::processingModulesFile(), trklet::Settings::reduced(), sector_, settings_, singleTopDQM_cfi::setup, trklet::Settings::tablePath(), DigiDM_cff::wires, trklet::Settings::wiresFile(), and trklet::Settings::writeConfig().

Referenced by L1FPGATrackProducer::beginRun().

28  {
29  settings_ = &theSettings;
30  globals_ = make_unique<Globals>(*settings_);
31 
32  //Verify consistency
33  if (settings_->kphi0pars() != globals_->ITC_L1L2()->phi0_final.K()) {
34  throw cms::Exception("Inconsistency") << "phi0 conversion parameter inconsistency\n";
35  }
36 
37  if (settings_->krinvpars() != globals_->ITC_L1L2()->rinv_final.K()) {
38  throw cms::Exception("Inconsistency") << "ring conversion parameter inconsistency\n";
39  }
40 
41  if (settings_->ktpars() != globals_->ITC_L1L2()->t_final.K()) {
42  throw cms::Exception("Inconsistency") << "t conversion parameter inconsistency\n";
43  }
44 
45  if (settings_->kphider() != globals_->ITC_L1L2()->der_phiL_final.K()) {
46  throw cms::Exception("Inconsistency")
47  << "t conversion parameter inconsistency:" << settings_->kphider() / globals_->ITC_L1L2()->der_phiL_final.K()
48  << "\n";
49  }
50 
51  if (settings_->debugTracklet()) {
52  edm::LogVerbatim("Tracklet") << "========================================================= \n"
53  << "Conversion factors for global coordinates: \n"
54  << "z kz = " << settings_->kz() << "\n"
55  << "r kr = " << settings_->kr() << "\n"
56  << "phi kphi1 = " << settings_->kphi1() << "\n"
57  << "========================================================= \n"
58  << "Conversion factors for track(let) parameters: \n"
59  << "rinv krinvpars = " << settings_->krinvpars() << "\n"
60  << "phi0 kphi0pars = " << settings_->kphi0pars() << "\n"
61  << "d0 kd0pars = " << settings_->kd0pars() << "\n"
62  << "t ktpars = " << settings_->ktpars() << "\n"
63  << "z0 kz0pars = " << settings_->kz0pars() << "\n"
64  << "========================================================= \n"
65  << "phi0bitshift = " << settings_->phi0bitshift() << "\n"
66  << "d0bitshift = ??? \n"
67  << "=========================================================";
68  }
69 
70  if (settings_->bookHistos()) {
71  histbase_ = new HistBase;
72  histbase_->open();
77 
78  globals_->histograms() = histbase_;
79  }
80 
81  sector_ = make_unique<Sector>(*settings_, globals_.get());
82 
83  if (settings_->extended() || settings_->reduced()) {
84  ifstream inmem(settings_->memoryModulesFile().c_str());
85  assert(inmem.good());
86 
87  ifstream inproc(settings_->processingModulesFile().c_str());
88  assert(inproc.good());
89 
90  ifstream inwire(settings_->wiresFile().c_str());
91  assert(inwire.good());
92 
93  configure(inwire, inmem, inproc);
94 
95  } else {
97 
98  //Write configurations to file.
99  if (settings_->writeConfig()) {
100  std::ofstream wires = openfile(settings_->tablePath(), "wires.dat", __FILE__, __LINE__);
101  std::ofstream memorymodules = openfile(settings_->tablePath(), "memorymodules.dat", __FILE__, __LINE__);
102  std::ofstream processingmodules = openfile(settings_->tablePath(), "processingmodules.dat", __FILE__, __LINE__);
103 
104  config.writeAll(wires, memorymodules, processingmodules);
105  }
106 
107  std::stringstream wires;
108  std::stringstream memorymodules;
109  std::stringstream processingmodules;
110 
111  config.writeAll(wires, memorymodules, processingmodules);
112  configure(wires, memorymodules, processingmodules);
113  }
114 }
Log< level::Info, true > LogVerbatim
double kz() const
Definition: Settings.h:342
bool bookHistos() const
Definition: Settings.h:219
double kphi1() const
Definition: Settings.h:339
double kz0pars() const
Definition: Settings.h:431
double kphider() const
Definition: Settings.h:434
std::unique_ptr< Sector > sector_
virtual void open()
Definition: HistBase.h:22
std::string const & wiresFile() const
Definition: Settings.h:78
virtual void bookDiskResidual()
Definition: HistBase.h:26
virtual void bookLayerResidual()
Definition: HistBase.h:25
double kd0pars() const
Definition: Settings.h:432
double ktpars() const
Definition: Settings.h:430
Definition: config.py:1
double krinvpars() const
Definition: Settings.h:425
std::unique_ptr< Globals > globals_
bool reduced() const
Definition: Settings.h:272
assert(be >=bs)
double kphi0pars() const
Definition: Settings.h:429
std::string tablePath() const
Definition: Settings.h:205
virtual void bookSeedEff()
Definition: HistBase.h:28
std::string const & memoryModulesFile() const
Definition: Settings.h:77
bool debugTracklet() const
Definition: Settings.h:194
double kr() const
Definition: Settings.h:344
std::string const & processingModulesFile() const
Definition: Settings.h:76
void configure(std::istream &inwire, std::istream &inmem, std::istream &inproc)
bool writeConfig() const
Definition: Settings.h:202
bool extended() const
Definition: Settings.h:268
dictionary config
Read in AllInOne config in JSON format.
Definition: DiMuonV_cfg.py:30
virtual void bookTrackletParams()
Definition: HistBase.h:27
std::ofstream openfile(const std::string &dir, const std::string &fname, const char *file, int line)
Definition: Util.h:154
int phi0bitshift() const
Definition: Settings.h:403

◆ printSummary()

void TrackletEventProcessor::printSummary ( )

Definition at line 393 of file TrackletEventProcessor.cc.

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

393  {
394  if (settings_->bookHistos()) {
395  globals_->histograms()->close();
396  }
397 
398  edm::LogVerbatim("Tracklet") << "Process Times called Average time (ms) Total time (s)"
399  << "\n"
400  << "Cleaning " << setw(10) << cleanTimer_.ntimes() << setw(20)
401  << setprecision(3) << cleanTimer_.avgtime() * 1000.0 << setw(20) << setprecision(3)
402  << cleanTimer_.tottime() << "\n"
403  << "Add Stubs " << setw(10) << addStubTimer_.ntimes() << setw(20)
404  << setprecision(3) << addStubTimer_.avgtime() * 1000.0 << setw(20) << setprecision(3)
405  << addStubTimer_.tottime() << "\n"
406  << "InputRouter " << setw(10) << InputRouterTimer_.ntimes() << setw(20)
407  << setprecision(3) << InputRouterTimer_.avgtime() * 1000.0 << setw(20) << setprecision(3)
408  << InputRouterTimer_.tottime() << "\n"
409  << "VMRouter " << setw(10) << VMRouterTimer_.ntimes() << setw(20)
410  << setprecision(3) << VMRouterTimer_.avgtime() * 1000.0 << setw(20) << setprecision(3)
411  << VMRouterTimer_.tottime();
412  if (settings_->combined()) {
413  edm::LogVerbatim("Tracklet") << "TrackletProcessor " << setw(10) << TPTimer_.ntimes() << setw(20)
414  << setprecision(3) << TPTimer_.avgtime() * 1000.0 << setw(20) << setprecision(3)
415  << TPTimer_.tottime() << "\n"
416  << "MatchProcessor " << setw(10) << MPTimer_.ntimes() << setw(20)
417  << setprecision(3) << MPTimer_.avgtime() * 1000.0 << setw(20) << setprecision(3)
418  << MPTimer_.tottime();
419  } else {
420  edm::LogVerbatim("Tracklet") << "TrackletEngine " << setw(10) << TETimer_.ntimes() << setw(20)
421  << setprecision(3) << TETimer_.avgtime() * 1000.0 << setw(20) << setprecision(3)
422  << TETimer_.tottime();
423  if (settings_->extended()) {
424  edm::LogVerbatim("Tracklet") << "TrackletEngineDisplaced" << setw(10) << TEDTimer_.ntimes() << setw(20)
425  << setprecision(3) << TEDTimer_.avgtime() * 1000.0 << setw(20) << setprecision(3)
426  << TEDTimer_.tottime() << "\n"
427  << "TripletEngine " << setw(10) << TRETimer_.ntimes() << setw(20)
428  << setprecision(3) << TRETimer_.avgtime() * 1000.0 << setw(20) << setprecision(3)
429  << TRETimer_.tottime() << "\n"
430  << "TrackletCalculatorDisplaced" << setw(10) << TCDTimer_.ntimes() << setw(20)
431  << setprecision(3) << TCDTimer_.avgtime() * 1000.0 << setw(20) << setprecision(3)
432  << TCDTimer_.tottime() << "\n"
433  << TCDTimer_.tottime() << "\n"
434  << "TrackletProcessorDisplaced" << setw(10) << TPDTimer_.ntimes() << setw(20)
435  << setprecision(3) << TPDTimer_.avgtime() * 1000.0 << setw(20) << setprecision(3)
436  << TPDTimer_.tottime();
437  }
438  edm::LogVerbatim("Tracklet") << "TrackletCalculator " << setw(10) << TCTimer_.ntimes() << setw(20)
439  << setprecision(3) << TCTimer_.avgtime() * 1000.0 << setw(20) << setprecision(3)
440  << TCTimer_.tottime() << "\n"
441  << "ProjectionRouter " << setw(10) << PRTimer_.ntimes() << setw(20)
442  << setprecision(3) << PRTimer_.avgtime() * 1000.0 << setw(20) << setprecision(3)
443  << PRTimer_.tottime() << "\n"
444  << "MatchEngine " << setw(10) << METimer_.ntimes() << setw(20)
445  << setprecision(3) << METimer_.avgtime() * 1000.0 << setw(20) << setprecision(3)
446  << METimer_.tottime() << "\n"
447  << "MatchCalculator " << setw(10) << MCTimer_.ntimes() << setw(20)
448  << setprecision(3) << MCTimer_.avgtime() * 1000.0 << setw(20) << setprecision(3)
449  << MCTimer_.tottime();
450  }
451  edm::LogVerbatim("Tracklet") << "FitTrack " << setw(10) << FTTimer_.ntimes() << setw(20)
452  << setprecision(3) << FTTimer_.avgtime() * 1000.0 << setw(20) << setprecision(3)
453  << FTTimer_.tottime() << "\n"
454  << "PurgeDuplicate " << setw(10) << PDTimer_.ntimes() << setw(20)
455  << setprecision(3) << PDTimer_.avgtime() * 1000.0 << setw(20) << setprecision(3)
456  << PDTimer_.tottime();
457 }
Log< level::Info, true > LogVerbatim
unsigned int ntimes() const
Definition: Timer.h:17
bool bookHistos() const
Definition: Settings.h:219
bool combined() const
Definition: Settings.h:270
std::unique_ptr< Globals > globals_
double tottime() const
Definition: Timer.h:20
double avgtime() const
Definition: Timer.h:18
bool extended() const
Definition: Settings.h:268

◆ tracks()

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

Definition at line 41 of file TrackletEventProcessor.h.

References tracks_.

Referenced by L1FPGATrackProducer::produce().

41 { return tracks_; }

Member Data Documentation

◆ addStubTimer_

Timer trklet::TrackletEventProcessor::addStubTimer_
private

Definition at line 57 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ cleanTimer_

Timer trklet::TrackletEventProcessor::cleanTimer_
private

Definition at line 56 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ eventnum_

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

Definition at line 54 of file TrackletEventProcessor.h.

Referenced by event().

◆ FTTimer_

Timer trklet::TrackletEventProcessor::FTTimer_
private

Definition at line 71 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ globals_

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

Definition at line 48 of file TrackletEventProcessor.h.

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

◆ histbase_

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

Definition at line 52 of file TrackletEventProcessor.h.

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

◆ InputRouterTimer_

Timer trklet::TrackletEventProcessor::InputRouterTimer_
private

Definition at line 58 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ MCTimer_

Timer trklet::TrackletEventProcessor::MCTimer_
private

Definition at line 69 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ METimer_

Timer trklet::TrackletEventProcessor::METimer_
private

Definition at line 68 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ MPTimer_

Timer trklet::TrackletEventProcessor::MPTimer_
private

Definition at line 70 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ PDTimer_

Timer trklet::TrackletEventProcessor::PDTimer_
private

Definition at line 72 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ PRTimer_

Timer trklet::TrackletEventProcessor::PRTimer_
private

Definition at line 67 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ sector_

std::unique_ptr<Sector> trklet::TrackletEventProcessor::sector_
private

Definition at line 50 of file TrackletEventProcessor.h.

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

◆ settings_

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

◆ TCDTimer_

Timer trklet::TrackletEventProcessor::TCDTimer_
private

Definition at line 66 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ TCTimer_

Timer trklet::TrackletEventProcessor::TCTimer_
private

Definition at line 65 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ TEDTimer_

Timer trklet::TrackletEventProcessor::TEDTimer_
private

Definition at line 61 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ TETimer_

Timer trklet::TrackletEventProcessor::TETimer_
private

Definition at line 60 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ TPDTimer_

Timer trklet::TrackletEventProcessor::TPDTimer_
private

Definition at line 64 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ TPTimer_

Timer trklet::TrackletEventProcessor::TPTimer_
private

Definition at line 63 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ tracks_

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

Definition at line 74 of file TrackletEventProcessor.h.

Referenced by event(), and tracks().

◆ TRETimer_

Timer trklet::TrackletEventProcessor::TRETimer_
private

Definition at line 62 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().

◆ VMRouterTimer_

Timer trklet::TrackletEventProcessor::VMRouterTimer_
private

Definition at line 59 of file TrackletEventProcessor.h.

Referenced by event(), and printSummary().