14 out <<
"Key_" << std::setw(2) <<
o.theNumber <<
" hwNum " << std::setw(2) <<
o.getHwPatternNumber() <<
" group " 15 << std::setw(2) <<
o.theGroup <<
":" <<
o.theIndexInGroup <<
" : (eta=" <<
o.theEtaCode <<
", pt=" << std::setw(3)
16 <<
o.thePt <<
", charge=" << setw(2) <<
o.theCharge <<
")";
24 myOmtfConfig(omtfConfig),
25 results(
boost::extents[myOmtfConfig->processorCnt()][myOmtfConfig->nTestRefHits()]) {
26 for (
unsigned int iProc = 0; iProc <
results.size(); iProc++) {
27 for (
unsigned int iTestRefHit = 0; iTestRefHit <
results[iProc].size(); iTestRefHit++) {
28 results[iProc][iTestRefHit].init(omtfConfig);
36 for (
unsigned int iProc = 0; iProc <
results.size(); iProc++) {
37 for (
unsigned int iTestRefHit = 0; iTestRefHit <
results[iProc].size(); iTestRefHit++) {
38 results[iProc][iTestRefHit].init(omtfConfig);
60 phiRefHit = refStub->phiHw;
66 for (
auto& stub : layerStubs) {
70 int hitPhi = stub->phiHw;
73 hitPhi = stub->phiBHw;
88 int sign = phiDist < 0 ? -1 : 1;
93 if (
abs(phiDist) <
abs(phiDistMin)) {
118 return StubResult(0,
false, phiDistMin + pdfMiddle, iLayer, selectedStub);
126 phiDistMin += pdfMiddle;
130 return StubResult(0,
false, phiDistMin, iLayer, selectedStub);
132 return StubResult(pdfVal,
true, phiDistMin, iLayer, selectedStub);
virtual PdfValueType pdfValue(unsigned int iLayer, unsigned int iRefLayer, unsigned int iBin, int refLayerPhiB=0) const =0
bool isNoHitValueInPdf() const
virtual int meanDistPhiValue(unsigned int iLayer, unsigned int iRefLayer, int refLayerPhiB=0) const =0
unsigned int nPhiBins() const
unsigned int nPdfAddrBits() const
resultsArrayType & getResults()
virtual void setConfig(const OMTFConfiguration *omtfConfig)
Abs< T >::type abs(const T &t)
std::vector< MuonStubPtr > MuonStubPtrs1D
virtual void finalise(unsigned int procIndx)
last step of the event processing, before sorting and ghost busting
std::shared_ptr< MuonStub > MuonStubPtr
GoldenPatternBase(const Key &aKey)
unsigned int processorCnt() const
virtual int getDistPhiBitShift(unsigned int iLayer, unsigned int iRefLayer) const =0
unsigned int nTestRefHits() const
std::ostream & operator<<(std::ostream &out, const Key &o)
virtual int foldPhi(int phi) const
virtual StubResult process1Layer1RefLayer(unsigned int iRefLayer, unsigned int iLayer, MuonStubPtrs1D layerStubs, const MuonStubPtr refStub)
const OMTFConfiguration * myOmtfConfig
bool isBendingLayer(unsigned int iLayer) const override