|
void | addInput (MemoryBase *memory, std::string input) override |
|
void | addOutput (MemoryBase *memory, std::string output) override |
|
void | addOutputProjection (TrackletProjectionsMemory *&outputProj, MemoryBase *memory) |
|
void | execute (unsigned int iSector, double phimin, double phimax) |
|
| TrackletProcessor (std::string name, Settings const &settings, Globals *globals) |
|
| ~TrackletProcessor () override=default |
|
void | addDiskProj (Tracklet *tracklet, int disk) |
|
bool | addLayerProj (Tracklet *tracklet, int layer) |
|
void | addProjection (int layer, int iphi, TrackletProjectionsMemory *trackletprojs, Tracklet *tracklet) |
|
void | addProjectionDisk (int disk, int iphi, TrackletProjectionsMemory *trackletprojs, Tracklet *tracklet) |
|
bool | barrelSeeding (const Stub *innerFPGAStub, const L1TStub *innerStub, const Stub *outerFPGAStub, const L1TStub *outerStub) |
|
bool | diskSeeding (const Stub *innerFPGAStub, const L1TStub *innerStub, const Stub *outerFPGAStub, const L1TStub *outerStub) |
|
void | exactproj (double rproj, double rinv, double phi0, double t, double z0, double &phiproj, double &zproj, double &phider, double &zder) |
|
void | exactprojdisk (double zproj, double rinv, double phi0, double t, double z0, double &phiproj, double &rproj, double &phider, double &rder) |
|
void | exacttracklet (double r1, double z1, double phi1, double r2, double z2, double phi2, double, double &rinv, double &phi0, double &t, double &z0, double phiproj[N_LAYER - 2], double zproj[N_LAYER - 2], double phider[N_LAYER - 2], double zder[N_LAYER - 2], double phiprojdisk[N_DISK], double rprojdisk[N_DISK], double phiderdisk[N_DISK], double rderdisk[N_DISK]) |
|
void | exacttrackletdisk (double r1, double z1, double phi1, double r2, double z2, double phi2, double, double &rinv, double &phi0, double &t, double &z0, double phiprojLayer[N_PSLAYER], double zprojLayer[N_PSLAYER], double phiderLayer[N_PSLAYER], double zderLayer[N_PSLAYER], double phiproj[N_DISK - 2], double rproj[N_DISK - 2], double phider[N_DISK - 2], double rder[N_DISK - 2]) |
|
void | exacttrackletOverlap (double r1, double z1, double phi1, double r2, double z2, double phi2, double, double &rinv, double &phi0, double &t, double &z0, double phiprojLayer[N_PSLAYER], double zprojLayer[N_PSLAYER], double phiderLayer[N_PSLAYER], double zderLayer[N_PSLAYER], double phiproj[N_DISK - 2], double rproj[N_DISK - 2], double phider[N_DISK - 2], double rder[N_DISK - 2]) |
|
bool | goodTrackPars (bool goodrinv, bool goodz0) |
|
bool | inSector (int iphi0, int irinv, double phi0approx, double rinvapprox) |
|
bool | overlapSeeding (const Stub *innerFPGAStub, const L1TStub *innerStub, const Stub *outerFPGAStub, const L1TStub *outerStub) |
|
| TrackletCalculatorBase (std::string name, Settings const &settings, Globals *global) |
|
| ~TrackletCalculatorBase () override=default |
|
unsigned int | getISeed (const std::string &name) |
|
std::string const & | getName () const |
|
unsigned int | initLayerDisk (unsigned int pos) |
|
void | initLayerDisk (unsigned int pos, int &layer, int &disk) |
|
void | initLayerDisk (unsigned int pos, int &layer, int &disk, int &layerdisk) |
|
void | initLayerDisksandISeed (unsigned int &layerdisk1, unsigned int &layerdisk2, unsigned int &iSeed) |
|
unsigned int | nbits (unsigned int power) |
|
| ProcessBase (std::string name, Settings const &settings, Globals *global) |
|
virtual | ~ProcessBase ()=default |
|
Definition at line 24 of file TrackletProcessor.h.
void TrackletProcessor::execute |
( |
unsigned int |
iSector, |
|
|
double |
phimin, |
|
|
double |
phimax |
|
) |
| |
Definition at line 226 of file TrackletProcessor.cc.
227 bool print = (iSector == 3) && (
getName() ==
"TP_L1L2D");
246 unsigned int countall = 0;
247 unsigned int countsel = 0;
249 unsigned int countteall = 0;
250 unsigned int stubpairs = 0;
252 unsigned int ntedata = 0;
254 unsigned int ninnerstubs = 0;
271 bool goodtedata =
false;
272 bool goodtedata__ =
false;
273 bool goodtedata___ =
false;
275 bool tebuffernearfull;
277 for (
unsigned int istep = 0; istep <
maxStep_; istep++) {
282 unsigned int& istub = std::get<1>(
tebuffer_);
283 unsigned int& imem = std::get<2>(
tebuffer_);
284 cout <<
"istep=" << istep <<
" TEBuffer: " << istub <<
" " << imem <<
" " << tedatabuffer.
rptr() <<
" "
285 << tedatabuffer.
wptr();
289 cout <<
" [" <<
k <<
" " << teunit.rptr() <<
" " << teunit.wptr() <<
" " << teunit.idle() <<
"]";
295 tebuffernearfull = tedatabuffer.
nearfull();
306 if (!teunit.empty()) {
311 if (teunitptr !=
nullptr) {
312 auto stubpair = teunitptr->
read();
320 const Stub* innerFPGAStub = stubpair.first;
323 const Stub* outerFPGAStub = stubpair.second;
359 bool notemptytebuffer = !tedatabuffer.
empty();
365 if (notemptytebuffer) {
367 notemptytebuffer =
false;
370 teunit.step(
print, istep, ite);
379 tedatabuffer.
store(tedata___);
383 unsigned int& istub = std::get<1>(
tebuffer_);
384 unsigned int& imem = std::get<2>(
tebuffer_);
385 unsigned int imemend = std::get<4>(
tebuffer_);
387 if ((!tebuffernearfull) && imem < imemend && istub <
innerallstubs_[imem]->nStubs()) {
396 bool negdisk = (stub->
disk().
value() < 0);
423 FPGAWord lookupbits(lutval, lutwidth,
true, __LINE__, __FILE__);
425 int rzfinebinfirst = lookupbits.bits(0,
NFINERZBITS);
437 unsigned int useregindex = (innerfinephi << innerbend.
nbits()) + innerbend.
value();
440 unsigned int nrbits = 3;
441 int ir = ((
start & ((1 << (nrbits - 1)) - 1)) << 1) + (rzfinebinfirst >> (
NFINERZBITS - 1));
442 useregindex = (useregindex << nrbits) + ir;
457 for (
int ibin =
start; ibin <=
last; ibin++) {
459 if (!(usereg & (1 << ireg))) {
473 tedata.
regions_.emplace_back(tuple<int, int, int>(ibin -
start, ireg, nstubs));
474 countteall += nstubs;
491 }
else if ((!tebuffernearfull) && imem < imemend && istub == 0) {
495 goodtedata___ = goodtedata__;
496 goodtedata__ = goodtedata;
498 tedata___ = tedata__;
507 if (imem < imemend || (!tedatabuffer.
empty())) {
512 if (!(teunit.idle() && teunit.empty()))
References accept(), cms::cuda::assert(), trklet::TrackletCalculatorBase::barrelSeeding(), trklet::Stub::bend(), trklet::FPGAWord::bits(), gather_cfg::cout, trklet::D1D2, trklet::D3D4, trklet::Settings::debugTracklet(), trklet::Stub::disk(), trklet::TrackletCalculatorBase::diskSeeding(), fileCollector::done, trklet::CircularBuffer< T >::empty(), trklet::ProcessBase::getName(), trklet::ProcessBase::globals_, iAllStub_, innerallstubs_, trklet::TEData::innerbend_, trklet::TEData::innerfinephi_, innerOverlapTable_, innerTable_, trklet::TrackletCalculatorBase::iSector_, trklet::TrackletCalculatorBase::iSeed_, dqmdumpme::k, trklet::L1D1, trklet::L1L2, trklet::Stub::l1tstub(), trklet::L2D1, trklet::L2L3, trklet::L3L4, trklet::L5L6, dqmdumpme::last, trklet::TrackletCalculatorBase::layerdisk1_, trklet::TrackletCalculatorBase::layerdisk2_, trklet::TrackletLUT::lookup(), trklet::Settings::lutwidthtab(), maxStep_, trklet::N_LAYER, trklet::N_RZBITS, trklet::Settings::nallstubs(), PFElectronDQMAnalyzer_cfi::nBin, LaserClient_cfi::nbins, trklet::FPGAWord::nbits(), nbitsfinephi_, nbitsrfinebintable_, nbitsrzbin_, nbitszfinebintable_, trklet::CircularBuffer< T >::nearfull(), GetRecoTauVFromDQM_MC_cff::next, trklet::NFINERZBITS, trklet::Settings::ntrackletmax(), trklet::TrackletParametersMemory::nTracklets(), trklet::VMStubsTEMemory::nVMStubs(), trklet::VMStubsTEMemory::nVMStubsBinned(), trklet::Settings::nvmte(), trklet::Globals::ofstream(), outervmstubs_, trklet::TrackletCalculatorBase::overlapSeeding(), trklet::Stub::phicorr(), phimax, trklet::TrackletCalculatorBase::phimax_, phimin, trklet::TrackletCalculatorBase::phimin_, print(), trklet::Stub::r(), readEcalDQMStatus::read, trklet::TrackletEngineUnit::read(), trklet::TEData::regions_, trklet::CircularBuffer< T >::rptr(), trklet::TEData::rzbinfirst_, trklet::TEData::rzdiffmax_, trklet::TrackletEngineUnit::setNearFull(), trklet::ProcessBase::settings_, command_line::start, trklet::TEData::start_, trklet::CircularBuffer< T >::store(), AlCaHLTBitMon_QueryRunRegistry::string, trklet::TEData::stub_, tebuffer_, teunits_, trklet::TrackletCalculatorBase::trackletpars_, useregiontable_, trklet::Settings::useSeed(), trklet::FPGAWord::value(), trklet::CircularBuffer< T >::wptr(), trklet::Settings::writeMonitorData(), and trklet::Stub::z().