1 #ifndef L1T_OmtfP1_GoldenPatternBase_H
2 #define L1T_OmtfP1_GoldenPatternBase_H
4 #include "boost/multi_array.hpp"
15 Key(
int iEta = 99,
unsigned int iPt = 0,
int iCharge = 0,
unsigned int iNumber = 999)
18 Key(
int iEta,
unsigned int iPt,
int iCharge,
unsigned int iNumber,
unsigned int group,
unsigned int indexInGroup)
81 virtual int meanDistPhiValue(
unsigned int iLayer,
unsigned int iRefLayer,
int refLayerPhiB = 0)
const = 0;
84 unsigned int iRefLayer,
86 int refLayerPhiB = 0)
const = 0;
90 unsigned int iRefLayer,
91 unsigned int paramIndex = 0) = 0;
94 PdfValueType value,
unsigned int iLayer,
unsigned int iRefLayer,
unsigned int iBin,
int refLayerPhiB = 0) = 0;
110 virtual int propagateRefPhi(
int phiRef,
int etaRef,
unsigned int iRefLayer) = 0;
115 virtual void finalise(
unsigned int procIndx);
126 template <
class GoldenPatternType>
unsigned int number() const
virtual void setDistPhiBitShift(int value, unsigned int iLayer, unsigned int iRefLayer)=0
virtual PdfValueType pdfValue(unsigned int iLayer, unsigned int iRefLayer, unsigned int iBin, int refLayerPhiB=0) const =0
Key(int iEta=99, unsigned int iPt=0, int iCharge=0, unsigned int iNumber=999)
bool operator==(const Key &o) const
virtual ~GoldenPatternBase()
unsigned int getHwPatternNumber() const
virtual int meanDistPhiValue(unsigned int iLayer, unsigned int iRefLayer, int refLayerPhiB=0) const =0
void setIndexInGroup(unsigned int indexInGroup)
const OMTFConfiguration * getConfig() const
resultsArrayType & getResults()
Key(int iEta, unsigned int iPt, int iCharge, unsigned int iNumber, unsigned int group, unsigned int indexInGroup)
virtual void setConfig(const OMTFConfiguration *omtfConfig)
virtual void setMeanDistPhiValue(int value, unsigned int iLayer, unsigned int iRefLayer, unsigned int paramIndex=0)=0
virtual void finalise(unsigned int procIndx)
last step of the event processing, before sorting and ghost busting
GoldenPatternBase(const Key &aKey)
std::vector< MuonStubPtr > MuonStubPtrs1D
virtual int getDistPhiBitShift(unsigned int iLayer, unsigned int iRefLayer) const =0
std::shared_ptr< const MuonStub > MuonStubPtr
std::vector< std::unique_ptr< GoldenPatternType > > GoldenPatternVec
virtual int propagateRefPhi(int phiRef, int etaRef, unsigned int iRefLayer)=0
Key theKey
Pattern kinematic identification (iEta,iPt,iCharge)
std::vector< int > vector1D
virtual StubResult process1Layer1RefLayer(unsigned int iRefLayer, unsigned int iLayer, MuonStubPtrs1D layerStubs, const MuonStubPtr refStub)
unsigned int theIndexInGroup
friend std::ostream & operator<<(std::ostream &out, const Key &o)
virtual void setPdfValue(PdfValueType value, unsigned int iLayer, unsigned int iRefLayer, unsigned int iBin, int refLayerPhiB=0)=0
const OMTFConfiguration * myOmtfConfig
bool operator<(const Key &o) const
boost::multi_array< GoldenPatternResult, 2 > resultsArrayType