CMS 3D CMS Logo

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

#include <TrackletProcessorDisplaced.h>

Inheritance diagram for trklet::TrackletProcessorDisplaced:
trklet::TrackletCalculatorDisplaced trklet::ProcessBase

Public Member Functions

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)
 
 TrackletProcessorDisplaced (std::string name, Settings const &settings, Globals *globals)
 
 ~TrackletProcessorDisplaced () override=default
 
- Public Member Functions inherited from trklet::TrackletCalculatorDisplaced
void addDiskProj (Tracklet *tracklet, int disk)
 
bool addLayerProj (Tracklet *tracklet, int layer)
 
void addOutputProjection (TrackletProjectionsMemory *&outputProj, MemoryBase *memory)
 
void addProjection (int layer, int iphi, TrackletProjectionsMemory *trackletprojs, Tracklet *tracklet)
 
void addProjectionDisk (int disk, int iphi, TrackletProjectionsMemory *trackletprojs, Tracklet *tracklet)
 
void approxproj (double halfRinv, double phi0, double d0, double t, double z0, double halfRinv_0, double d0_0, double rmean, double &phiproj, double &phiprojder, double &zproj, double &zprojder)
 
void approxprojdisk (double halfRinv, double phi0, double d0, double t, double z0, double halfRinv_0, double d0_0, double zmean, double &phiproj, double &phiprojder, double &rproj, double &rprojder)
 
void approxtracklet (double r1, double z1, double phi1, double r2, double z2, double phi2, double r3, double z3, double phi3, bool take3, unsigned ndisks, double &rinv, double &phi0, double &d0, double &t, double &z0, double phiproj[4], double zproj[4], double phider[4], double zder[4], double phiprojdisk[5], double rprojdisk[5], double phiderdisk[5], double rderdisk[5])
 
bool DDLSeeding (const Stub *innerFPGAStub, const L1TStub *innerStub, const Stub *middleFPGAStub, const L1TStub *middleStub, const Stub *outerFPGAStub, const L1TStub *outerStub)
 
void exactproj (double rproj, double rinv, double phi0, double d0, double t, double z0, double r0, double &phiproj, double &zproj, double &phider, double &zder)
 
void exactprojdisk (double zproj, double rinv, double, double, double t, double z0, double x0, double y0, double &phiproj, double &rproj, double &phider, double &rder)
 
void exacttracklet (double r1, double z1, double phi1, double r2, double z2, double phi2, double r3, double z3, double phi3, int take3, double &rinv, double &phi0, double &d0, double &t, double &z0, double phiproj[N_LAYER - 2], double zproj[N_LAYER - 2], double phiprojdisk[N_DISK], double rprojdisk[N_DISK], double phider[N_LAYER - 2], double zder[N_LAYER - 2], double phiderdisk[N_DISK], double rderdisk[N_DISK])
 
void execute (unsigned int iSector, double phimin, double phimax)
 
bool LLDSeeding (const Stub *innerFPGAStub, const L1TStub *innerStub, const Stub *middleFPGAStub, const L1TStub *middleStub, const Stub *outerFPGAStub, const L1TStub *outerStub)
 
bool LLLSeeding (const Stub *innerFPGAStub, const L1TStub *innerStub, const Stub *middleFPGAStub, const L1TStub *middleStub, const Stub *outerFPGAStub, const L1TStub *outerStub)
 
 TrackletCalculatorDisplaced (std::string name, Settings const &settings, Globals *global)
 
 ~TrackletCalculatorDisplaced () override=default
 
- Public Member Functions inherited from trklet::ProcessBase
unsigned int getISeed (const std::string &name)
 
std::string const & getName () const
 
void initLayerDisk (unsigned int pos, int &layer, int &disk)
 
void initLayerDisk (unsigned int pos, int &layer, int &disk, int &layerdisk)
 
unsigned int initLayerDisk (unsigned int pos)
 
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
 

Private Attributes

int count_
 
int disk1_
 
int disk2_
 
int disk3_
 
int firstphibits_
 
int iAllStub_
 
TrackletLUT innerOverlapTable_
 
TrackletLUT innerTable_
 
TrackletLUT innerThirdTable_
 
std::vector< VMStubsTEMemory * > innervmstubs_
 
int iTC_
 
int layer1_
 
int layer2_
 
int layer3_
 
unsigned int layerdisk_
 
unsigned int maxStep_
 
int nbitsrfinebintable_
 
int nbitszfinebintable_
 
std::vector< VMStubsTEMemory * > outervmstubs_
 
int secondphibits_
 
std::map< std::string, std::vector< std::map< std::string, unsigned > > > spTable_
 
std::vector< StubPairsMemory * > stubpairs_
 
StubTripletsMemorystubtriplets_
 
std::vector< bool > table_
 
int thirdphibits_
 
std::map< std::string, std::vector< std::vector< std::string > > > tmpSPTable_
 

Additional Inherited Members

- Protected Attributes inherited from trklet::TrackletCalculatorDisplaced
int disk_
 
int dproj_ [N_DISK - 2]
 
std::vector< AllStubsMemory * > innerallstubs_
 
unsigned int iSector_
 
unsigned int iSeed_
 
int layer_
 
int lproj_ [N_LAYER - 2]
 
std::vector< AllStubsMemory * > middleallstubs_
 
std::vector< AllStubsMemory * > outerallstubs_
 
double phimax_
 
double phimin_
 
double rproj_ [N_LAYER - 2]
 
double rzmeanInv_ [N_DISK - 2]
 
std::vector< StubTripletsMemory * > stubtriplets_
 
int TCIndex_
 
std::vector< double > toR_
 
std::vector< double > toZ_
 
TrackletParametersMemorytrackletpars_
 
std::vector< std::vector< TrackletProjectionsMemory * > > trackletprojdisks_
 
std::vector< std::vector< TrackletProjectionsMemory * > > trackletprojlayers_
 
double zproj_ [N_DISK - 2]
 
- Protected Attributes inherited from trklet::ProcessBase
Globalsglobals_
 
std::string name_
 
Settings const & settings_
 

Detailed Description

Definition at line 27 of file TrackletProcessorDisplaced.h.

Constructor & Destructor Documentation

◆ TrackletProcessorDisplaced()

TrackletProcessorDisplaced::TrackletProcessorDisplaced ( std::string  name,
Settings const &  settings,
Globals globals 
)

Definition at line 21 of file TrackletProcessorDisplaced.cc.

References cms::cuda::assert(), trklet::D3, disk1_, disk2_, disk3_, trklet::TrackletCalculatorDisplaced::disk_, trklet::ProcessBase::initLayerDisk(), trklet::TrackletLUT::initVMRTable(), SurfaceOrientation::inner, trklet::TrackletCalculatorDisplaced::innerallstubs_, innerOverlapTable_, innerTable_, innerThirdTable_, innervmstubs_, trklet::TrackletCalculatorDisplaced::iSeed_, PixelRegions::L1, PixelRegions::L2, PixelRegions::L3, trklet::L5, layer1_, layer2_, layer3_, trklet::TrackletCalculatorDisplaced::layer_, layerdisk_, trklet::TrackletCalculatorDisplaced::middleallstubs_, trklet::N_DISK, trklet::N_LAYER, trklet::Settings::nallstubs(), Skims_PA_cff::name, nbitsrfinebintable_, nbitszfinebintable_, trklet::TrackletCalculatorDisplaced::outerallstubs_, outervmstubs_, HLT_2022v15_cff::region, trklet::ProcessBase::settings_, stubpairs_, trklet::TrackletCalculatorDisplaced::TCIndex_, createJobs::tmp, trklet::TrackletCalculatorDisplaced::trackletprojdisks_, trklet::TrackletCalculatorDisplaced::trackletprojlayers_, trklet::Settings::vmrlutrbits(), and trklet::Settings::vmrlutzbits().

22  : TrackletCalculatorDisplaced(name, settings, globals),
23  innerTable_(settings),
24  innerOverlapTable_(settings),
25  innerThirdTable_(settings) {
26  innerallstubs_.clear();
27  middleallstubs_.clear();
28  outerallstubs_.clear();
29  stubpairs_.clear();
30  innervmstubs_.clear();
31  outervmstubs_.clear();
32 
33  const unsigned layerdiskPosInName = 4;
34  const unsigned regionPosInName1 = 9;
35 
36  // iAllStub_ = -1;
37  layerdisk_ = initLayerDisk(layerdiskPosInName);
38 
39  unsigned int region = name.substr(1)[regionPosInName1] - 'A';
40  // assert(region < settings_.nallstubs(layerdisk_));
41 
45  }
46 
49  layerdisk_, TrackletLUT::VMRTableType::inneroverlap, region); //projection to disk from layer
50  }
51 
55  layerdisk_, TrackletLUT::VMRTableType::innerthird, region); //projection to third layer/disk
56  }
57 
60 
61  for (unsigned int ilayer = 0; ilayer < N_LAYER; ilayer++) {
62  vector<TrackletProjectionsMemory*> tmp(settings_.nallstubs(ilayer), nullptr);
63  trackletprojlayers_.push_back(tmp);
64  }
65 
66  for (unsigned int idisk = 0; idisk < N_DISK; idisk++) {
67  vector<TrackletProjectionsMemory*> tmp(settings_.nallstubs(idisk + N_LAYER), nullptr);
68  trackletprojdisks_.push_back(tmp);
69  }
70 
71  // initLayerDisksandISeed(layerdisk1_, layerdisk2_, iSeed_);
72 
73  layer_ = 0;
74  disk_ = 0;
75  layer1_ = 0;
76  layer2_ = 0;
77  layer3_ = 0;
78  disk1_ = 0;
79  disk2_ = 0;
80  disk3_ = 0;
81 
82  constexpr unsigned layerPosInName1 = 4;
83  constexpr unsigned diskPosInName1 = 4;
84  constexpr unsigned layer1PosInName1 = 4;
85  constexpr unsigned disk1PosInName1 = 4;
86  constexpr unsigned layer2PosInName1 = 6;
87  constexpr unsigned disk2PosInName1 = 6;
88 
89  string name1 = name.substr(1); //this is to correct for "TPD" having one more letter then "TP"
90  if (name1[3] == 'L')
91  layer_ = name1[layerPosInName1] - '0';
92  if (name1[3] == 'D')
93  disk_ = name1[diskPosInName1] - '0';
94 
95  if (name1[3] == 'L')
96  layer1_ = name1[layer1PosInName1] - '0';
97  if (name1[3] == 'D')
98  disk1_ = name1[disk1PosInName1] - '0';
99  if (name1[5] == 'L')
100  layer2_ = name1[layer2PosInName1] - '0';
101  if (name1[5] == 'D')
102  disk2_ = name1[disk2PosInName1] - '0';
103 
104  // set TC index
105  iSeed_ = 0;
106 
107  int iTC = name1[regionPosInName1] - 'A';
108 
109  if (name1.substr(3, 6) == "L3L4L2") {
110  iSeed_ = 8;
111  layer3_ = 2;
112  } else if (name1.substr(3, 6) == "L5L6L4") {
113  iSeed_ = 9;
114  layer3_ = 4;
115  } else if (name1.substr(3, 6) == "L2L3D1") {
116  iSeed_ = 10;
117  disk3_ = 1;
118  } else if (name1.substr(3, 6) == "D1D2L2") {
119  iSeed_ = 11;
120  layer3_ = 2;
121  }
122  assert(iSeed_ != 0);
123 
124  constexpr int TCIndexMin = 128;
125  constexpr int TCIndexMax = 191;
126 
127  TCIndex_ = (iSeed_ << 4) + iTC;
128  assert(TCIndex_ >= TCIndexMin && TCIndex_ < TCIndexMax);
129 
130  assert((layer_ != 0) || (disk_ != 0));
131 }
unsigned int vmrlutrbits(unsigned int layerdisk) const
Definition: Settings.h:179
std::vector< AllStubsMemory * > middleallstubs_
constexpr int N_DISK
Definition: Settings.h:22
std::vector< AllStubsMemory * > innerallstubs_
Settings const & settings_
Definition: ProcessBase.h:40
std::vector< VMStubsTEMemory * > innervmstubs_
assert(be >=bs)
std::vector< std::vector< TrackletProjectionsMemory * > > trackletprojlayers_
Divides< A, C > D1
Definition: Factorize.h:136
std::vector< std::vector< TrackletProjectionsMemory * > > trackletprojdisks_
void initLayerDisk(unsigned int pos, int &layer, int &disk)
Definition: ProcessBase.cc:33
unsigned int nallstubs(unsigned int layerdisk) const
Definition: Settings.h:107
std::vector< StubPairsMemory * > stubpairs_
TrackletCalculatorDisplaced(std::string name, Settings const &settings, Globals *global)
std::vector< AllStubsMemory * > outerallstubs_
tmp
align.sh
Definition: createJobs.py:716
std::vector< VMStubsTEMemory * > outervmstubs_
void initVMRTable(unsigned int layerdisk, VMRTableType type, int region=-1)
Definition: TrackletLUT.cc:493
unsigned int vmrlutzbits(unsigned int layerdisk) const
Definition: Settings.h:178
constexpr int N_LAYER
Definition: Settings.h:21

◆ ~TrackletProcessorDisplaced()

trklet::TrackletProcessorDisplaced::~TrackletProcessorDisplaced ( )
overridedefault

Member Function Documentation

◆ addInput()

void TrackletProcessorDisplaced::addInput ( MemoryBase memory,
std::string  input 
)
overridevirtual

Reimplemented from trklet::TrackletCalculatorDisplaced.

Definition at line 184 of file TrackletProcessorDisplaced.cc.

References cms::cuda::assert(), Exception, trklet::TrackletCalculatorDisplaced::innerallstubs_, innervmstubs_, input, mps_setup::memory, trklet::TrackletCalculatorDisplaced::middleallstubs_, trklet::ProcessBase::name_, trklet::TrackletCalculatorDisplaced::outerallstubs_, outervmstubs_, trklet::ProcessBase::settings_, stubpairs_, createJobs::tmp, and trklet::Settings::writetrace().

184  {
185  if (settings_.writetrace()) {
186  edm::LogVerbatim("Tracklet") << "In " << name_ << " adding input from " << memory->getName() << " to input "
187  << input;
188  }
189 
190  if (input == "thirdallstubin") {
191  auto* tmp = dynamic_cast<AllStubsMemory*>(memory);
192  assert(tmp != nullptr);
193  innerallstubs_.push_back(tmp);
194  return;
195  }
196  if (input == "firstallstubin") {
197  auto* tmp = dynamic_cast<AllStubsMemory*>(memory);
198  assert(tmp != nullptr);
199  middleallstubs_.push_back(tmp);
200  return;
201  }
202  if (input == "secondallstubin") {
203  auto* tmp = dynamic_cast<AllStubsMemory*>(memory);
204  assert(tmp != nullptr);
205  outerallstubs_.push_back(tmp);
206  return;
207  }
208  if (input.substr(0, 8) == "stubpair") {
209  auto* tmp = dynamic_cast<StubPairsMemory*>(memory);
210  assert(tmp != nullptr);
211  stubpairs_.push_back(tmp);
212  return;
213  }
214 
215  if (input == "thirdvmstubin") {
216  auto* tmp = dynamic_cast<VMStubsTEMemory*>(memory);
217  assert(tmp != nullptr);
218  innervmstubs_.push_back(tmp);
219  return;
220  }
221  if (input == "secondvmstubin") {
222  auto* tmp = dynamic_cast<VMStubsTEMemory*>(memory);
223  assert(tmp != nullptr);
224  // outervmstubs_ = tmp;
225  outervmstubs_.push_back(tmp);
226  return;
227  }
228 
229  throw cms::Exception("BadConfig") << __FILE__ << " " << __LINE__ << " Could not find input : " << input;
230 }
Log< level::Info, true > LogVerbatim
std::vector< AllStubsMemory * > middleallstubs_
std::string name_
Definition: ProcessBase.h:38
std::vector< AllStubsMemory * > innerallstubs_
Settings const & settings_
Definition: ProcessBase.h:40
bool writetrace() const
Definition: Settings.h:183
std::vector< VMStubsTEMemory * > innervmstubs_
assert(be >=bs)
static std::string const input
Definition: EdmProvDump.cc:50
std::vector< StubPairsMemory * > stubpairs_
std::vector< AllStubsMemory * > outerallstubs_
tmp
align.sh
Definition: createJobs.py:716
std::vector< VMStubsTEMemory * > outervmstubs_

◆ addOutput()

void TrackletProcessorDisplaced::addOutput ( MemoryBase memory,
std::string  output 
)
overridevirtual

Reimplemented from trklet::TrackletCalculatorDisplaced.

Definition at line 138 of file TrackletProcessorDisplaced.cc.

References cms::cuda::assert(), Exception, mps_setup::memory, trklet::N_DISK, trklet::N_LAYER, trklet::ProcessBase::name_, convertSQLitetoXML_cfg::output, trklet::ProcessBase::settings_, findQualityFiles::size, createJobs::tmp, trklet::TrackletCalculatorDisplaced::trackletpars_, trklet::TrackletCalculatorDisplaced::trackletprojdisks_, trklet::TrackletCalculatorDisplaced::trackletprojlayers_, and trklet::Settings::writetrace().

138  {
139  if (settings_.writetrace()) {
140  edm::LogVerbatim("Tracklet") << "In " << name_ << " adding output to " << memory->getName() << " to output "
141  << output;
142  }
143 
144  if (output == "trackpar") {
145  auto* tmp = dynamic_cast<TrackletParametersMemory*>(memory);
146  assert(tmp != nullptr);
147  trackletpars_ = tmp;
148  return;
149  }
150 
151  if (output.substr(0, 7) == "projout") {
152  //output is on the form 'projoutL2PHIC' or 'projoutD3PHIB'
153  auto* tmp = dynamic_cast<TrackletProjectionsMemory*>(memory);
154  assert(tmp != nullptr);
155 
156  constexpr unsigned layerdiskPosInprojout = 8;
157  constexpr unsigned phiPosInprojout = 12;
158 
159  unsigned int layerdisk = output[layerdiskPosInprojout] - '1'; //layer or disk counting from 0
160  unsigned int phiregion = output[phiPosInprojout] - 'A'; //phiregion counting from 0
161 
162  if (output[7] == 'L') {
163  assert(layerdisk < N_LAYER);
164  assert(phiregion < trackletprojlayers_[layerdisk].size());
165  //check that phiregion not already initialized
166  assert(trackletprojlayers_[layerdisk][phiregion] == nullptr);
167  trackletprojlayers_[layerdisk][phiregion] = tmp;
168  return;
169  }
170 
171  if (output[7] == 'D') {
172  assert(layerdisk < N_DISK);
173  assert(phiregion < trackletprojdisks_[layerdisk].size());
174  //check that phiregion not already initialized
175  assert(trackletprojdisks_[layerdisk][phiregion] == nullptr);
176  trackletprojdisks_[layerdisk][phiregion] = tmp;
177  return;
178  }
179  }
180 
181  throw cms::Exception("BadConfig") << __FILE__ << " " << __LINE__ << " Could not find output : " << output;
182 }
size
Write out results.
Log< level::Info, true > LogVerbatim
constexpr int N_DISK
Definition: Settings.h:22
std::string name_
Definition: ProcessBase.h:38
Settings const & settings_
Definition: ProcessBase.h:40
bool writetrace() const
Definition: Settings.h:183
assert(be >=bs)
std::vector< std::vector< TrackletProjectionsMemory * > > trackletprojlayers_
std::vector< std::vector< TrackletProjectionsMemory * > > trackletprojdisks_
tmp
align.sh
Definition: createJobs.py:716
constexpr int N_LAYER
Definition: Settings.h:21

◆ addOutputProjection()

void TrackletProcessorDisplaced::addOutputProjection ( TrackletProjectionsMemory *&  outputProj,
MemoryBase memory 
)

Definition at line 133 of file TrackletProcessorDisplaced.cc.

References cms::cuda::assert(), and mps_setup::memory.

133  {
134  outputProj = dynamic_cast<TrackletProjectionsMemory*>(memory);
135  assert(outputProj != nullptr);
136 }
assert(be >=bs)

◆ execute()

void TrackletProcessorDisplaced::execute ( unsigned int  iSector,
double  phimin,
double  phimax 
)

Definition at line 232 of file TrackletProcessorDisplaced.cc.

References accept(), cms::cuda::assert(), newFWLiteAna::bin, count_, trklet::D1D2L2, trklet::TrackletCalculatorDisplaced::DDLSeeding(), trklet::Settings::debugTracklet(), trklet::Stub::disk(), disk1_, disk2_, disk3_, Exception, trklet::Settings::extended(), trklet::ProcessBase::getName(), SurfaceOrientation::inner, trklet::TrackletCalculatorDisplaced::innerallstubs_, innerOverlapTable_, innerTable_, innerThirdTable_, innervmstubs_, createfilelist::int, trklet::TrackletCalculatorDisplaced::iSector_, trklet::TrackletCalculatorDisplaced::iSeed_, trklet::Stub::isPSmodule(), dqmiolumiharvest::j, dqmdumpme::k, cmsLHEtoEOSManager::l, trklet::Stub::l1tstub(), trklet::L2D1, trklet::L2L3D1, trklet::L2L3L4, trklet::L4L5L6, dqmdumpme::last, layer1_, layer2_, layer3_, trklet::Stub::layerdisk(), layerdisk_, trklet::TrackletCalculatorDisplaced::LLDSeeding(), trklet::TrackletCalculatorDisplaced::LLLSeeding(), trklet::TrackletLUT::lookup(), trklet::Settings::lutwidthtab(), trklet::Settings::lutwidthtabextended(), visualization-live-secondInstance_cfg::m, trklet::TrackletCalculatorDisplaced::middleallstubs_, trklet::N_LAYER, trklet::FPGAWord::nbits(), nbitsrfinebintable_, nbitszfinebintable_, trklet::Settings::NLONGVMBINS(), trklet::TrackletCalculatorDisplaced::outerallstubs_, outervmstubs_, phimax, trklet::TrackletCalculatorDisplaced::phimax_, phimin, trklet::TrackletCalculatorDisplaced::phimin_, trklet::Stub::r(), trklet::ProcessBase::settings_, trklet::Stub::strbare(), trklet::VMStubTE::stub(), stubpairs_, trklet::L1TStub::stubword(), trklet::FPGAWord::value(), trklet::VMStubTE::vmbits(), and trklet::Stub::z().

232  {
233  unsigned int countall = 0;
234  unsigned int countall_ = 0;
235  unsigned int countsel = 0;
236  unsigned int countpass = 0;
237  unsigned int countpass_ = 0;
238  // unsigned int nThirdStubs = 0;
239  unsigned int nInnerStubs = 0;
240  // unsigned int nOuterStubs = 0;
241  count_ = 0;
242 
243  phimin_ = phimin;
244  phimax_ = phimax;
245  iSector_ = iSector;
246 
247  for (unsigned int iInnerMem = 0; iInnerMem < middleallstubs_.size();
248  nInnerStubs += middleallstubs_.at(iInnerMem)->nStubs(), iInnerMem++)
249  ;
250 
251  assert(!innerallstubs_.empty());
252  assert(!middleallstubs_.empty());
253  assert(!outerallstubs_.empty());
254  assert(!innervmstubs_.empty());
255  assert(!outervmstubs_.empty());
256  assert(stubpairs_.empty());
257 
258  for (auto& iInnerMem : middleallstubs_) {
259  assert(iInnerMem->nStubs() == iInnerMem->nStubs());
260  for (unsigned int j = 0; j < iInnerMem->nStubs(); j++) {
261  const Stub* firstallstub = iInnerMem->getStub(j);
262 
263  if (settings_.debugTracklet()) {
264  edm::LogVerbatim("Tracklet") << "In " << getName() << " have first stub\n";
265  }
266 
267  int inner = 0;
268  bool negdisk = (firstallstub->disk().value() < 0);
269  int indexz = (((1 << (firstallstub->z().nbits() - 1)) + firstallstub->z().value()) >>
270  (firstallstub->z().nbits() - nbitszfinebintable_));
271  int indexr = -1;
272  if (layerdisk_ > (N_LAYER - 1)) {
273  if (negdisk) {
274  indexz = (1 << nbitszfinebintable_) - indexz;
275  }
276  indexr = firstallstub->r().value();
277  if (firstallstub->isPSmodule()) {
278  indexr = firstallstub->r().value() >> (firstallstub->r().nbits() - nbitsrfinebintable_);
279  }
280  } else {
281  //Take the top nbitsfinebintable_ bits of the z coordinate. The & is to handle the negative z values.
282  indexr = (((1 << (firstallstub->r().nbits() - 1)) + firstallstub->r().value()) >>
283  (firstallstub->r().nbits() - nbitsrfinebintable_));
284  }
285 
286  assert(indexz >= 0);
287  assert(indexr >= 0);
288  assert(indexz < (1 << nbitszfinebintable_));
289  assert(indexr < (1 << nbitsrfinebintable_));
290 
291  // int melut = meTable_.lookup((indexz << nbitsrfinebintable_) + indexr);
292  // assert(melut >= 0);
293 
294  unsigned int lutwidth = settings_.lutwidthtab(inner, iSeed_);
295  if (settings_.extended()) {
297  }
298 
299  int lutval = -999;
300 
301  if (iSeed_ < Seed::L1D1 || iSeed_ > Seed::L2D1) {
302  lutval = innerTable_.lookup((indexz << nbitsrfinebintable_) + indexr);
303  } else {
304  lutval = innerOverlapTable_.lookup((indexz << nbitsrfinebintable_) + indexr);
305  }
306 
307  if (lutval == -1)
308  continue;
309  if (settings_.extended() &&
311  int lutval2 = innerThirdTable_.lookup((indexz << nbitsrfinebintable_) + indexr);
312  if (lutval2 != -1)
313  lutval += (lutval2 << 10);
314  }
315 
316  assert(lutval >= 0);
317  // assert(lutwidth > 0);
318 
319  FPGAWord binlookup(lutval, lutwidth, true, __LINE__, __FILE__);
320 
321  if ((layer1_ == 3 && layer2_ == 4) || (layer1_ == 5 && layer2_ == 6)) {
322  if (settings_.debugTracklet()) {
323  edm::LogVerbatim("Tracklet") << getName() << " Layer-layer pair\n";
324  }
325 
326  constexpr int andlookupbits = 1023;
327  constexpr int shiftzdiffmax = 7;
328  constexpr int andnewbin = 127;
329  constexpr int divbin = 8;
330  constexpr int andzbinfirst = 7;
331  constexpr int shiftstart = 1;
332  constexpr int andlast = 1;
333  constexpr int maxlast = 8;
334 
335  int lookupbits = binlookup.value() & andlookupbits;
336  int zdiffmax = (lookupbits >> shiftzdiffmax);
337  int newbin = (lookupbits & andnewbin);
338  int bin = newbin / divbin;
339 
340  int zbinfirst = newbin & andzbinfirst;
341 
342  int start = (bin >> shiftstart);
343  int last = start + (bin & andlast);
344 
345  assert(last < maxlast);
346 
347  if (settings_.debugTracklet()) {
348  edm::LogVerbatim("Tracklet") << "Will look in zbins " << start << " to " << last << endl;
349  }
350 
351  for (int ibin = start; ibin <= last; ibin++) {
352  for (unsigned int m = 0; m < outervmstubs_.size(); m++) {
353  for (unsigned int j = 0; j < outervmstubs_.at(m)->nVMStubsBinned(ibin); j++) {
354  if (settings_.debugTracklet()) {
355  edm::LogVerbatim("Tracklet")
356  << "In " << getName() << " have second stub(1) " << ibin << " " << j << endl;
357  }
358 
359  const VMStubTE& secondvmstub = outervmstubs_.at(m)->getVMStubTEBinned(ibin, j);
360 
361  int zbin = (secondvmstub.vmbits().value() & 7);
362  if (start != ibin)
363  zbin += 8;
364  if (zbin < zbinfirst || zbin - zbinfirst > zdiffmax) {
365  if (settings_.debugTracklet()) {
366  edm::LogVerbatim("Tracklet") << "Stubpair rejected because of wrong zbin";
367  }
368  continue;
369  }
370 
371  countpass++;
372 
373  if ((layer2_ == 4 && layer3_ == 2) || (layer2_ == 6 && layer3_ == 4)) {
374  constexpr int vmbitshift = 10;
375  constexpr int andlookupbits_ = 1023;
376  constexpr int andnewbin_ = 127;
377  constexpr int divbin_ = 8;
378  constexpr int shiftstart_ = 1;
379  constexpr int andlast_ = 1;
380 
381  int lookupbits_ = (int)((binlookup.value() >> vmbitshift) & andlookupbits_);
382  int newbin_ = (lookupbits_ & andnewbin_);
383  int bin_ = newbin_ / divbin_;
384 
385  int start_ = (bin_ >> shiftstart_);
386  int last_ = start_ + (bin_ & andlast_);
387 
388  if (settings_.debugTracklet()) {
389  edm::LogVerbatim("Tracklet")
390  << "Will look in zbins for third stub" << start_ << " to " << last_ << endl;
391  }
392 
393  for (int ibin_ = start_; ibin_ <= last_; ibin_++) {
394  for (unsigned int k = 0; k < innervmstubs_.size(); k++) {
395  for (unsigned int l = 0; l < innervmstubs_.at(k)->nVMStubsBinned(ibin_); l++) {
396  if (settings_.debugTracklet()) {
397  edm::LogVerbatim("Tracklet") << "In " << getName() << " have third stub\n";
398  }
399 
400  countall_++;
401 
402  const VMStubTE& thirdvmstub = innervmstubs_.at(k)->getVMStubTEBinned(ibin_, l);
403 
404  countpass_++;
405 
406  const Stub* innerFPGAStub = firstallstub;
407  const Stub* middleFPGAStub = secondvmstub.stub();
408  const Stub* outerFPGAStub = thirdvmstub.stub();
409 
410  const L1TStub* innerStub = innerFPGAStub->l1tstub();
411  const L1TStub* middleStub = middleFPGAStub->l1tstub();
412  const L1TStub* outerStub = outerFPGAStub->l1tstub();
413 
414  if (settings_.debugTracklet()) {
415  edm::LogVerbatim("Tracklet")
416  << "LLL seeding\n"
417  << innerFPGAStub->strbare() << middleFPGAStub->strbare() << outerFPGAStub->strbare()
418  << innerStub->stubword() << middleStub->stubword() << outerStub->stubword()
419  << innerFPGAStub->layerdisk() << middleFPGAStub->layerdisk() << outerFPGAStub->layerdisk();
420  }
421 
422  if (settings_.debugTracklet()) {
423  edm::LogVerbatim("Tracklet")
424  << "TrackletCalculatorDisplaced execute " << getName() << "[" << iSector_ << "]";
425  }
426 
427  if (innerFPGAStub->layerdisk() < N_LAYER && middleFPGAStub->layerdisk() < N_LAYER &&
428  outerFPGAStub->layerdisk() < N_LAYER) {
429  bool accept =
430  LLLSeeding(outerFPGAStub, outerStub, innerFPGAStub, innerStub, middleFPGAStub, middleStub);
431 
432  if (accept)
433  countsel++;
434  } else if (innerFPGAStub->layerdisk() >= N_LAYER && middleFPGAStub->layerdisk() >= N_LAYER &&
435  outerFPGAStub->layerdisk() >= N_LAYER) {
436  throw cms::Exception("LogicError") << __FILE__ << " " << __LINE__ << " Invalid seeding!";
437  }
438 
439  if (settings_.debugTracklet()) {
440  edm::LogVerbatim("Tracklet") << "TrackletCalculatorDisplaced execute done";
441  }
442  }
443  }
444  }
445  }
446  }
447  }
448  }
449 
450  } else if (layer1_ == 2 && layer2_ == 3) {
451  if (settings_.debugTracklet()) {
452  edm::LogVerbatim("Tracklet") << getName() << " Layer-layer pair";
453  }
454 
455  constexpr int andlookupbits = 1023;
456  constexpr int shiftzdiffmax = 7;
457  constexpr int andnewbin = 127;
458  constexpr int divbin = 8;
459  constexpr int andzbinfirst = 7;
460  constexpr int shiftstart = 1;
461  constexpr int andlast = 1;
462  constexpr int maxlast = 8;
463 
464  int lookupbits = binlookup.value() & andlookupbits;
465  int zdiffmax = (lookupbits >> shiftzdiffmax);
466  int newbin = (lookupbits & andnewbin);
467  int bin = newbin / divbin;
468 
469  int zbinfirst = newbin & andzbinfirst;
470 
471  int start = (bin >> shiftstart);
472  int last = start + (bin & andlast);
473 
474  assert(last < maxlast);
475 
476  if (settings_.debugTracklet()) {
477  edm::LogVerbatim("Tracklet") << "Will look in zbins " << start << " to " << last;
478  }
479 
480  for (int ibin = start; ibin <= last; ibin++) {
481  for (unsigned int m = 0; m < outervmstubs_.size(); m++) {
482  for (unsigned int j = 0; j < outervmstubs_.at(m)->nVMStubsBinned(ibin); j++) {
483  if (settings_.debugTracklet()) {
484  edm::LogVerbatim("Tracklet") << "In " << getName() << " have second stub(1) " << ibin << " " << j;
485  }
486 
487  countall++;
488  const VMStubTE& secondvmstub = outervmstubs_.at(m)->getVMStubTEBinned(ibin, j);
489 
490  int zbin = (secondvmstub.vmbits().value() & 7);
491  if (start != ibin)
492  zbin += 8;
493  if (zbin < zbinfirst || zbin - zbinfirst > zdiffmax) {
494  if (settings_.debugTracklet()) {
495  edm::LogVerbatim("Tracklet") << "Stubpair rejected because of wrong zbin";
496  }
497  continue;
498  }
499 
500  if (layer2_ == 3 && disk3_ == 1) {
501  constexpr int vmbitshift = 10;
502  constexpr int andlookupbits_ = 1023;
503  constexpr int andnewbin_ = 127;
504  constexpr int divbin_ = 8;
505  constexpr int shiftstart_ = 1;
506  constexpr int andlast_ = 1;
507 
508  int lookupbits_ = (int)((binlookup.value() >> vmbitshift) & andlookupbits_);
509  int newbin_ = (lookupbits_ & andnewbin_);
510  int bin_ = newbin_ / divbin_;
511 
512  int start_ = (bin_ >> shiftstart_);
513  int last_ = start_ + (bin_ & andlast_);
514 
515  for (int ibin_ = start_; ibin_ <= last_; ibin_++) {
516  for (unsigned int k = 0; k < innervmstubs_.size(); k++) {
517  for (unsigned int l = 0; l < innervmstubs_.at(k)->nVMStubsBinned(ibin_); l++) {
518  if (settings_.debugTracklet()) {
519  edm::LogVerbatim("Tracklet") << "In " << getName() << " have third stub";
520  }
521 
522  countall_++;
523 
524  const VMStubTE& thirdvmstub = innervmstubs_.at(k)->getVMStubTEBinned(ibin_, l);
525 
526  countpass_++;
527 
528  const Stub* innerFPGAStub = firstallstub;
529  const Stub* middleFPGAStub = secondvmstub.stub();
530  const Stub* outerFPGAStub = thirdvmstub.stub();
531 
532  const L1TStub* innerStub = innerFPGAStub->l1tstub();
533  const L1TStub* middleStub = middleFPGAStub->l1tstub();
534  const L1TStub* outerStub = outerFPGAStub->l1tstub();
535 
536  if (settings_.debugTracklet()) {
537  edm::LogVerbatim("Tracklet")
538  << "LLD seeding\n"
539  << innerFPGAStub->strbare() << middleFPGAStub->strbare() << outerFPGAStub->strbare()
540  << innerStub->stubword() << middleStub->stubword() << outerStub->stubword()
541  << innerFPGAStub->layerdisk() << middleFPGAStub->layerdisk() << outerFPGAStub->layerdisk();
542  }
543 
544  if (settings_.debugTracklet()) {
545  edm::LogVerbatim("Tracklet")
546  << "TrackletCalculatorDisplaced execute " << getName() << "[" << iSector_ << "]";
547  }
548 
549  bool accept =
550  LLDSeeding(outerFPGAStub, outerStub, innerFPGAStub, innerStub, middleFPGAStub, middleStub);
551 
552  if (accept)
553  countsel++;
554 
555  if (settings_.debugTracklet()) {
556  edm::LogVerbatim("Tracklet") << "TrackletCalculatorDisplaced execute done";
557  }
558  }
559  }
560  }
561  }
562  }
563  }
564  }
565 
566  } else if (disk1_ == 1 && disk2_ == 2) {
567  if (settings_.debugTracklet())
568  edm::LogVerbatim("Tracklet") << getName() << " Disk-disk pair";
569 
570  constexpr int andlookupbits = 511;
571  constexpr int shiftrdiffmax = 6;
572  constexpr int andnewbin = 63;
573  constexpr int divbin = 8;
574  constexpr int andrbinfirst = 7;
575  constexpr int shiftstart = 1;
576  constexpr int andlast = 1;
577  constexpr int maxlast = 8;
578 
579  int lookupbits = binlookup.value() & andlookupbits;
580  bool negdisk = firstallstub->disk().value() < 0;
581  int rdiffmax = (lookupbits >> shiftrdiffmax);
582  int newbin = (lookupbits & andnewbin);
583  int bin = newbin / divbin;
584 
585  int rbinfirst = newbin & andrbinfirst;
586 
587  int start = (bin >> shiftstart);
588  if (negdisk)
589  start += 4;
590  int last = start + (bin & andlast);
591  assert(last < maxlast);
592 
593  for (int ibin = start; ibin <= last; ibin++) {
594  for (unsigned int m = 0; m < outervmstubs_.size(); m++) {
595  if (settings_.debugTracklet()) {
596  edm::LogVerbatim("Tracklet")
597  << getName() << " looking for matching stub in " << outervmstubs_.at(m)->getName()
598  << " in bin = " << ibin << " with " << outervmstubs_.at(m)->nVMStubsBinned(ibin) << " stubs";
599  }
600 
601  for (unsigned int j = 0; j < outervmstubs_.at(m)->nVMStubsBinned(ibin); j++) {
602  countall++;
603 
604  const VMStubTE& secondvmstub = outervmstubs_.at(m)->getVMStubTEBinned(ibin, j);
605  int rbin = (secondvmstub.vmbits().value() & 7);
606  if (start != ibin)
607  rbin += 8;
608  if (rbin < rbinfirst)
609  continue;
610  if (rbin - rbinfirst > rdiffmax)
611  continue;
612 
613  if (disk2_ == 2 && layer3_ == 2) {
614  constexpr int vmbitshift = 10;
615  constexpr int andlookupbits_ = 1023;
616  constexpr int andnewbin_ = 127;
617  constexpr int divbin_ = 8;
618  constexpr int shiftstart_ = 1;
619  constexpr int andlast_ = 1;
620 
621  int lookupbits_ = (int)((binlookup.value() >> vmbitshift) & andlookupbits_);
622  int newbin_ = (lookupbits_ & andnewbin_);
623  int bin_ = newbin_ / divbin_;
624 
625  int start_ = (bin_ >> shiftstart_);
626  int last_ = start_ + (bin_ & andlast_);
627 
628  if (firstallstub->disk().value() < 0) { //TODO - negative disk should come from memory
629  start_ = settings_.NLONGVMBINS() - last_ - 1;
630  last_ = settings_.NLONGVMBINS() - start_ - 1;
631  }
632 
633  for (int ibin_ = start_; ibin_ <= last_; ibin_++) {
634  for (unsigned int k = 0; k < innervmstubs_.size(); k++) {
635  for (unsigned int l = 0; l < innervmstubs_.at(k)->nVMStubsBinned(ibin_); l++) {
636  if (settings_.debugTracklet()) {
637  edm::LogVerbatim("Tracklet") << "In " << getName() << " have third stub";
638  }
639 
640  countall_++;
641 
642  const VMStubTE& thirdvmstub = innervmstubs_.at(k)->getVMStubTEBinned(ibin_, l);
643 
644  countpass_++;
645 
646  const Stub* innerFPGAStub = firstallstub;
647  const Stub* middleFPGAStub = secondvmstub.stub();
648  const Stub* outerFPGAStub = thirdvmstub.stub();
649 
650  const L1TStub* innerStub = innerFPGAStub->l1tstub();
651  const L1TStub* middleStub = middleFPGAStub->l1tstub();
652  const L1TStub* outerStub = outerFPGAStub->l1tstub();
653 
654  if (settings_.debugTracklet()) {
655  edm::LogVerbatim("Tracklet")
656  << "DDL seeding\n"
657  << innerFPGAStub->strbare() << middleFPGAStub->strbare() << outerFPGAStub->strbare()
658  << innerStub->stubword() << middleStub->stubword() << outerStub->stubword()
659  << innerFPGAStub->layerdisk() << middleFPGAStub->layerdisk() << outerFPGAStub->layerdisk();
660  }
661 
662  if (settings_.debugTracklet()) {
663  edm::LogVerbatim("Tracklet")
664  << "TrackletCalculatorDisplaced execute " << getName() << "[" << iSector_ << "]";
665  }
666 
667  bool accept =
668  DDLSeeding(outerFPGAStub, outerStub, innerFPGAStub, innerStub, middleFPGAStub, middleStub);
669 
670  if (accept)
671  countsel++;
672 
673  if (settings_.debugTracklet()) {
674  edm::LogVerbatim("Tracklet") << "TrackletCalculatorDisplaced execute done";
675  }
676  }
677  }
678  }
679  }
680  }
681  }
682  }
683  }
684  }
685  }
686 }
Definition: start.py:1
Log< level::Info, true > LogVerbatim
std::vector< AllStubsMemory * > middleallstubs_
const FPGAWord & r() const
Definition: Stub.h:60
double lutwidthtab(unsigned int inner, unsigned int iSeed) const
Definition: Settings.h:140
std::vector< AllStubsMemory * > innerallstubs_
const FPGAWord & z() const
Definition: Stub.h:61
std::string strbare() const
Definition: Stub.h:40
Settings const & settings_
Definition: ProcessBase.h:40
int lookup(unsigned int index) const
Definition: TrackletLUT.cc:904
std::vector< VMStubsTEMemory * > innervmstubs_
assert(be >=bs)
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:31
unsigned int NLONGVMBINS() const
Definition: Settings.h:341
const FPGAWord & disk() const
Definition: Stub.h:68
bool LLDSeeding(const Stub *innerFPGAStub, const L1TStub *innerStub, const Stub *middleFPGAStub, const L1TStub *middleStub, const Stub *outerFPGAStub, const L1TStub *outerStub)
const Stub * stub() const
Definition: VMStubTE.h:29
bool LLLSeeding(const Stub *innerFPGAStub, const L1TStub *innerStub, const Stub *middleFPGAStub, const L1TStub *middleStub, const Stub *outerFPGAStub, const L1TStub *outerStub)
const FPGAWord & vmbits() const
Definition: VMStubTE.h:27
int value() const
Definition: FPGAWord.h:24
double lutwidthtabextended(unsigned int inner, unsigned int iSeed) const
Definition: Settings.h:141
L1TStub * l1tstub()
Definition: Stub.h:77
unsigned int layerdisk() const
Definition: Stub.cc:185
bool debugTracklet() const
Definition: Settings.h:182
std::vector< StubPairsMemory * > stubpairs_
bool DDLSeeding(const Stub *innerFPGAStub, const L1TStub *innerStub, const Stub *middleFPGAStub, const L1TStub *middleStub, const Stub *outerFPGAStub, const L1TStub *outerStub)
int nbits() const
Definition: FPGAWord.h:25
const std::string & stubword() const
Definition: L1TStub.h:116
bool isPSmodule() const
Definition: Stub.h:71
bool extended() const
Definition: Settings.h:256
std::vector< AllStubsMemory * > outerallstubs_
std::vector< VMStubsTEMemory * > outervmstubs_
std::string const & getName() const
Definition: ProcessBase.h:22
constexpr int N_LAYER
Definition: Settings.h:21

Member Data Documentation

◆ count_

int trklet::TrackletProcessorDisplaced::count_
private

Definition at line 45 of file TrackletProcessorDisplaced.h.

Referenced by execute().

◆ disk1_

int trklet::TrackletProcessorDisplaced::disk1_
private

Definition at line 51 of file TrackletProcessorDisplaced.h.

Referenced by execute(), and TrackletProcessorDisplaced().

◆ disk2_

int trklet::TrackletProcessorDisplaced::disk2_
private

Definition at line 52 of file TrackletProcessorDisplaced.h.

Referenced by execute(), and TrackletProcessorDisplaced().

◆ disk3_

int trklet::TrackletProcessorDisplaced::disk3_
private

Definition at line 53 of file TrackletProcessorDisplaced.h.

Referenced by execute(), and TrackletProcessorDisplaced().

◆ firstphibits_

int trklet::TrackletProcessorDisplaced::firstphibits_
private

Definition at line 55 of file TrackletProcessorDisplaced.h.

◆ iAllStub_

int trklet::TrackletProcessorDisplaced::iAllStub_
private

Definition at line 43 of file TrackletProcessorDisplaced.h.

◆ innerOverlapTable_

TrackletLUT trklet::TrackletProcessorDisplaced::innerOverlapTable_
private

Definition at line 63 of file TrackletProcessorDisplaced.h.

Referenced by execute(), and TrackletProcessorDisplaced().

◆ innerTable_

TrackletLUT trklet::TrackletProcessorDisplaced::innerTable_
private

Definition at line 62 of file TrackletProcessorDisplaced.h.

Referenced by execute(), and TrackletProcessorDisplaced().

◆ innerThirdTable_

TrackletLUT trklet::TrackletProcessorDisplaced::innerThirdTable_
private

Definition at line 64 of file TrackletProcessorDisplaced.h.

Referenced by execute(), and TrackletProcessorDisplaced().

◆ innervmstubs_

std::vector<VMStubsTEMemory*> trklet::TrackletProcessorDisplaced::innervmstubs_
private

Definition at line 68 of file TrackletProcessorDisplaced.h.

Referenced by addInput(), execute(), and TrackletProcessorDisplaced().

◆ iTC_

int trklet::TrackletProcessorDisplaced::iTC_
private

Definition at line 42 of file TrackletProcessorDisplaced.h.

◆ layer1_

int trklet::TrackletProcessorDisplaced::layer1_
private

Definition at line 48 of file TrackletProcessorDisplaced.h.

Referenced by execute(), and TrackletProcessorDisplaced().

◆ layer2_

int trklet::TrackletProcessorDisplaced::layer2_
private

Definition at line 49 of file TrackletProcessorDisplaced.h.

Referenced by execute(), and TrackletProcessorDisplaced().

◆ layer3_

int trklet::TrackletProcessorDisplaced::layer3_
private

Definition at line 50 of file TrackletProcessorDisplaced.h.

Referenced by execute(), and TrackletProcessorDisplaced().

◆ layerdisk_

unsigned int trklet::TrackletProcessorDisplaced::layerdisk_
private

Definition at line 46 of file TrackletProcessorDisplaced.h.

Referenced by execute(), and TrackletProcessorDisplaced().

◆ maxStep_

unsigned int trklet::TrackletProcessorDisplaced::maxStep_
private

Definition at line 44 of file TrackletProcessorDisplaced.h.

◆ nbitsrfinebintable_

int trklet::TrackletProcessorDisplaced::nbitsrfinebintable_
private

Definition at line 60 of file TrackletProcessorDisplaced.h.

Referenced by execute(), and TrackletProcessorDisplaced().

◆ nbitszfinebintable_

int trklet::TrackletProcessorDisplaced::nbitszfinebintable_
private

Definition at line 59 of file TrackletProcessorDisplaced.h.

Referenced by execute(), and TrackletProcessorDisplaced().

◆ outervmstubs_

std::vector<VMStubsTEMemory*> trklet::TrackletProcessorDisplaced::outervmstubs_
private

Definition at line 69 of file TrackletProcessorDisplaced.h.

Referenced by addInput(), execute(), and TrackletProcessorDisplaced().

◆ secondphibits_

int trklet::TrackletProcessorDisplaced::secondphibits_
private

Definition at line 56 of file TrackletProcessorDisplaced.h.

◆ spTable_

std::map<std::string, std::vector<std::map<std::string, unsigned> > > trklet::TrackletProcessorDisplaced::spTable_
private

Definition at line 74 of file TrackletProcessorDisplaced.h.

◆ stubpairs_

std::vector<StubPairsMemory*> trklet::TrackletProcessorDisplaced::stubpairs_
private

Definition at line 66 of file TrackletProcessorDisplaced.h.

Referenced by addInput(), execute(), and TrackletProcessorDisplaced().

◆ stubtriplets_

StubTripletsMemory* trklet::TrackletProcessorDisplaced::stubtriplets_
private

Definition at line 71 of file TrackletProcessorDisplaced.h.

◆ table_

std::vector<bool> trklet::TrackletProcessorDisplaced::table_
private

Definition at line 75 of file TrackletProcessorDisplaced.h.

◆ thirdphibits_

int trklet::TrackletProcessorDisplaced::thirdphibits_
private

Definition at line 57 of file TrackletProcessorDisplaced.h.

◆ tmpSPTable_

std::map<std::string, std::vector<std::vector<std::string> > > trklet::TrackletProcessorDisplaced::tmpSPTable_
private

Definition at line 73 of file TrackletProcessorDisplaced.h.