CMS 3D CMS Logo

L1GctJetLeafCard.h
Go to the documentation of this file.
1 #ifndef L1GCTJETLEAFCARD_H_
2 #define L1GCTJETLEAFCARD_H_
3 
7 
12 
13 #include <vector>
14 
15 /*
16  * \class L1GctJetLeafCard
17  * \brief Emulates a leaf card programmed for jetfinding
18  *
19  * Represents a GCT Leaf Card
20  * programmed for jet finding
21  * author: Jim Brooke
22  * date: 20/2/2006
23  *
24  */
25 
26 class L1GctJetCand;
27 
29 {
30 public:
31  //Type declaration
33 
34  //Statics
35  static const int MAX_JET_FINDERS;
36 
37  //Typedefs
40 
43 
45 
46  enum maxValues {
49  };
50 
51  //Construtors/destructor
52  L1GctJetLeafCard(int id, int iphi, jetFinderType jfType = tdrJetFinder);
53 
54  ~L1GctJetLeafCard() override;
55 
57  void setNeighbourLeafCards(const std::vector<L1GctJetLeafCard*>& neighbours);
58 
60  bool setupOk() const;
61 
63  friend std::ostream& operator << (std::ostream& os, const L1GctJetLeafCard& card);
64 
66  void reset();
67 
69  void fetchInput() override;
70 
72  void process() override;
73 
75  void setBxRange(const int firstBx, const int numberOfBx);
76 
78  void setNextBx(const int bx);
79 
84 
85  // get the jet output
86  std::vector<L1GctJetCand> getOutputJetsA() const;
87  std::vector<L1GctJetCand> getOutputJetsB() const;
88  std::vector<L1GctJetCand> getOutputJetsC() const;
89 
91  etComponentType getOutputEx() const { return m_exSum; }
92 
94  etComponentType getOutputEy() const { return m_eySum; }
95 
97  etComponentType getOutputHx() const { return m_hxSum; }
98  etComponentType getOutputHy() const { return m_hySum; }
99 
101  etTotalType getOutputEt() const { return m_etSum; }
102  etHadType getOutputHt() const { return m_htSum; }
103 
104  hfTowerSumsType getOutputHfSums() const { return m_hfSums; }
105 
108  std::vector< etComponentType > getAllOutputEx() const { return m_exSumPipe.contents; }
109 
111  std::vector< etComponentType > getAllOutputEy() const { return m_eySumPipe.contents; }
112 
114  std::vector< htComponentType > getAllOutputHx() const { return m_hxSumPipe.contents; }
115  std::vector< htComponentType > getAllOutputHy() const { return m_hySumPipe.contents; }
116 
118  std::vector< etTotalType > getAllOutputEt() const { return m_etSumPipe.contents; }
119  std::vector< etHadType > getAllOutputHt() const { return m_htSumPipe.contents; }
120 
121  std::vector< hfTowerSumsType > getAllOutputHfSums() const { return m_hfSumsPipe.contents; }
122 
124  std::vector< L1GctInternEtSum > getInternalEtSums() const;
125  std::vector< L1GctInternHtMiss > getInternalHtMiss() const;
126 
127  protected:
128 
130  void resetProcessor() override;
131  void resetPipelines() override;
132 
134  void setupObjects() override {}
135 
136  private:
137 
138  // Leaf card ID
139  int m_id;
140 
141  // Which jetFinder to use?
143 
144  // internal algorithms
148 
149  // internal data (other than jets)
150 
152 
153  etComponentType m_exSum;
154  etComponentType m_eySum;
155  htComponentType m_hxSum;
156  htComponentType m_hySum;
157  etTotalType m_etSum;
158  etHadType m_htSum;
159 
160  hfTowerSumsType m_hfSums;
161 
162  // stored copies of output data
170 
172 
173 };
174 
175 std::ostream& operator << (std::ostream& os, const L1GctJetLeafCard& card);
176 
177 #endif /*L1GCTJETLEAFCARD_H_*/
htComponentType m_hySum
std::vector< L1GctInternHtMiss > getInternalHtMiss() const
Pipeline< htComponentType > m_hxSumPipe
L1GctJetFinderBase * m_jetFinderB
middle jetFinder in phi
L1GctJetFinderBase::hfTowerSumsType hfTowerSumsType
std::vector< htComponentType > getAllOutputHx() const
get the output Ht components history
void reset()
clear internal buffers
friend std::ostream & operator<<(std::ostream &os, const L1GctJetLeafCard &card)
Overload << operator.
~L1GctJetLeafCard() override
L1GctJetFinderBase * m_jetFinderC
highest jetFinder in phi
Pipeline< etHadType > m_htSumPipe
Pipeline< etTotalType > m_etSumPipe
Level-1 Trigger jet candidate.
Definition: L1GctJetCand.h:18
L1GctUnsignedInt< L1GctInternEtSum::kTotEtOrHtNBits > etHadType
Base class to allow implementation of jetFinder algorithms.
std::vector< L1GctInternEtSum > getInternalEtSums() const
get the Et sums in internal component format
ABC for a GCT trigger data processing unit.
void process() override
process the data and set outputs
std::vector< etComponentType > getAllOutputEy() const
get the Ey output history
std::vector< L1GctJetCand > getOutputJetsA() const
Output jetfinder A jets (lowest jetFinder in phi)
void resetProcessor() override
Separate reset methods for the processor itself and any data stored in pipelines. ...
Pipeline< etComponentType > m_eySumPipe
Pipeline< htComponentType > m_hySumPipe
Definition of signed integer types with overflow.
void fetchInput() override
set the input buffers
L1GctJetFinderBase * getJetFinderB() const
std::vector< L1GctJetCand > getOutputJetsB() const
Output jetfinder B jets (middle jetFinder in phi)
void setBxRange(const int firstBx, const int numberOfBx)
define the bunch crossing range to process
etTotalType getOutputEt() const
get the Et output
etHadType getOutputHt() const
std::vector< htComponentType > getAllOutputHy() const
jetFinderType m_whichJetFinder
std::vector< etComponentType > getAllOutputEx() const
void setNextBx(const int bx)
partially clear buffers
void setNeighbourLeafCards(const std::vector< L1GctJetLeafCard * > &neighbours)
set pointers to neighbours - needed to complete the setup
L1GctUnsignedInt< L1GctInternEtSum::kTotEtOrHtNBits > etTotalType
etComponentType getOutputEx() const
get the Ex output
std::vector< etTotalType > getAllOutputEt() const
get the Et output history
static const int MAX_JET_FINDERS
Number of jetfinders per jet leaf card.
std::vector< L1GctJetCand > getOutputJetsC() const
Ouptut jetfinder C jets (highest jetFinder in phi)
void setupObjects() override
Initialise inputs with null objects for the correct bunch crossing if required.
L1GctJetLeafCard(int id, int iphi, jetFinderType jfType=tdrJetFinder)
hfTowerSumsType m_hfSums
etComponentType getOutputEy() const
get the Ey output
hfTowerSumsType getOutputHfSums() const
etComponentType getOutputHx() const
get the output Ht components
etComponentType getOutputHy() const
L1GctTwosComplement< L1GctInternHtMiss::kMissHxOrHyNBits > htComponentType
L1GctJetFinderBase * m_jetFinderA
lowest jetFinder in phi
std::vector< hfTowerSumsType > getAllOutputHfSums() const
Pipeline< hfTowerSumsType > m_hfSumsPipe
L1GctJetFinderBase * getJetFinderA() const
get pointers to associated jetfinders
etComponentType m_eySum
bool setupOk() const
Check setup is Ok.
Pipeline< etComponentType > m_exSumPipe
L1GctJetFinderBase * getJetFinderC() const
L1GctTwosComplement< L1GctInternEtSum::kMissExOrEyNBits > etComponentType
void resetPipelines() override
std::vector< etHadType > getAllOutputHt() const
htComponentType m_hxSum
etComponentType m_exSum