CMS 3D CMS Logo

L1GctElectronFinalSort.h
Go to the documentation of this file.
1 #ifndef L1GCTELECTRONFINALSORT_H_
2 #define L1GCTELECTRONFINALSORT_H_
3 
5 
8 
9 #include <vector>
10 
27 class L1GctEmLeafCard;
28 
30 {
31 public:
36  L1GctElectronFinalSort(bool iso, L1GctEmLeafCard* posEtaCard,
37  L1GctEmLeafCard* negEtaCard);
40  ~L1GctElectronFinalSort() override;
43  void fetchInput() override;
46  void process() override;
49  void setInputEmCand(unsigned i, const L1GctEmCand& cand);
52  inline std::vector<L1GctEmCand> getInputCands() const { return m_inputCands; }
55  inline std::vector<L1GctEmCand> getOutputCands() const { return m_outputCands.contents; }
58  friend std::ostream& operator<<(std::ostream& s,const L1GctElectronFinalSort& cand);
61  bool setupOk() const { return m_setupOk; }
62 
63  protected:
64 
66  void resetProcessor() override;
67  void resetPipelines() override;
68 
70  void setupObjects() override {}
71 
72  private:
82  std::vector<L1GctEmCand> m_inputCands;
86 
88  bool m_setupOk;
89 };
90 
91 std::ostream& operator<<(std::ostream& s,const L1GctElectronFinalSort& cand);
92 
93 #endif /*L1GCTELECTRONFINALSORT_H_*/
friend std::ostream & operator<<(std::ostream &s, const L1GctElectronFinalSort &cand)
overload of cout operator
L1GctEmLeafCard * m_theNegEtaLeafCard
L1GctElectronFinalSort(bool iso, L1GctEmLeafCard *posEtaCard, L1GctEmLeafCard *negEtaCard)
void process() override
process the data, fill output buffers
Level-1 Trigger EM candidate at output of GCT.
Definition: L1GctEmCand.h:22
ABC for a GCT trigger data processing unit.
L1GctEmLeafCard * m_thePosEtaLeafCard
the 1st stage electron sorters
~L1GctElectronFinalSort() override
destructor
void setupObjects() override
Initialise inputs with null objects for the correct bunch crossing if required.
std::vector< L1GctEmCand > getInputCands() const
return input data
std::vector< L1GctEmCand > getOutputCands() const
return output data
void fetchInput() override
get input data from sources
bool setupOk() const
check setup
L1GctElectronSorter::prioritisedEmCand prioritisedEmCand
Use some definitions from the ElectronSorter in the leaf cards.
void resetProcessor() override
Separate reset methods for the processor itself and any data stored in pipelines. ...
bool m_setupOk
Check the setup.
Pipeline< L1GctEmCand > m_outputCands
output data
std::vector< L1GctEmCand > m_inputCands
input data
void setInputEmCand(unsigned i, const L1GctEmCand &cand)
set input data
bool m_emCandsType
type of electron candidate (iso(0) or non-iso(1))
Emulates a leaf card programmed for electron sorting.