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;
105 const std::vector<int>& extrapolatedPhi,
111 virtual int propagateRefPhi(
int phiRef,
int etaRef,
unsigned int iRefLayer) = 0;
116 virtual void finalise(
unsigned int procIndx);
127 template <
class GoldenPatternType>
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)
unsigned int number() const
unsigned int getHwPatternNumber() const
virtual ~GoldenPatternBase()
virtual int meanDistPhiValue(unsigned int iLayer, unsigned int iRefLayer, int refLayerPhiB=0) const =0
void setIndexInGroup(unsigned int indexInGroup)
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)
bool operator==(const Key &o) const
std::vector< MuonStubPtr > MuonStubPtrs1D
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
std::shared_ptr< MuonStub > MuonStubPtr
const OMTFConfiguration * getConfig() const
GoldenPatternBase(const Key &aKey)
virtual int getDistPhiBitShift(unsigned int iLayer, unsigned int iRefLayer) const =0
virtual StubResult process1Layer1RefLayer(unsigned int iRefLayer, unsigned int iLayer, MuonStubPtrs1D layerStubs, const std::vector< int > &extrapolatedPhi, const MuonStubPtr &refStub)
bool operator<(const Key &o) const
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
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
boost::multi_array< GoldenPatternResult, 2 > resultsArrayType