CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Member Functions | Static Private Attributes | Friends
L1GctTdrJetFinder Class Reference

3*3 sliding window algorithm jet finder. More...

#include <L1GctTdrJetFinder.h>

Inheritance diagram for L1GctTdrJetFinder:
L1GctJetFinderBase L1GctProcessor

Public Member Functions

void fetchInput () override
 get input data from sources More...
 
 L1GctTdrJetFinder (int id)
 id is 0-8 for -ve Eta jetfinders, 9-17 for +ve Eta, for increasing Phi. More...
 
void process () override
 process the data, fill output buffers More...
 
 ~L1GctTdrJetFinder () override
 
- Public Member Functions inherited from L1GctJetFinderBase
unsigned getCenJetSeed () const
 
unsigned getEtaBoundry () const
 
etTotalType getEtSum () const
 Get the scalar sum of Et summed over the input regions. More...
 
etCompInternJfType getExSum () const
 Get the x component of vector Et summed over the input regions. More...
 
etCompInternJfType getEySum () const
 Get the y component of vector Et summed over the input regions. More...
 
unsigned getFwdJetSeed () const
 
hfTowerSumsType getHfSums () const
 Get the Hf tower Et sums and tower-over-threshold counts. More...
 
unsigned getHtmSumJetThreshold () const
 
etHadType getHtSum () const
 Get the scalar sum of Ht summed over jets above threshold. More...
 
unsigned getHttSumJetThreshold () const
 
htCompInternJfType getHxSum () const
 Get the x component of vector Ht summed over jets above threshold. More...
 
htCompInternJfType getHySum () const
 Get the y component of vector Ht summed over jets above threshold. More...
 
RegionsVector getInputRegions () const
 Return input data. More...
 
std::vector< L1GctInternEtSumgetInternalEtSums () const
 get et sums in raw format - to be stored in the event More...
 
std::vector< L1GctInternHtMissgetInternalHtMiss () const
 
std::vector< L1GctInternJetDatagetInternalJets () const
 get output jets in raw format - to be stored in the event More...
 
const lutPtrVector getJetEtCalLuts () const
 Return pointers to calibration LUTs. More...
 
JetVector getJets () const
 Get the located jets. More...
 
RegionsVector getKeptProtoJets () const
 get protoJets kept More...
 
RawJetVector getRawJets () const
 get output jets in raw format More...
 
RegionsVector getRcvdProtoJets () const
 get protoJets received from neighbour More...
 
RegionsVector getSentProtoJets () const
 get protoJets sent to neighbour More...
 
unsigned getTauIsolationThreshold () const
 
unsigned getTauJetSeed () const
 
 L1GctJetFinderBase (int id)
 id is 0-8 for -ve Eta jetfinders, 9-17 for +ve Eta, for increasing Phi. More...
 
void setEnergySumMasks (const L1GctChannelMask *chmask)
 Set masks for energy summing. More...
 
void setInputRegion (const L1CaloRegion &region)
 Set input data. More...
 
void setJetEtCalibrationLuts (const lutPtrVector &jfluts)
 Set pointer to calibration Lut - needed to complete the setup. More...
 
void setJetFinderParams (const L1GctJetFinderParams *jfpars)
 Set pointer to parameters - needed to complete the setup. More...
 
void setNeighbourJetFinders (const std::vector< L1GctJetFinderBase * > &neighbours)
 Set pointers to neighbours - needed to complete the setup. More...
 
bool setupOk () const
 Check setup is Ok. More...
 
void setupTauAlgo (const bool useImprovedAlgo, const bool ignoreVetoBitsForIsolation)
 Setup the tau algorithm parameters. More...
 
 ~L1GctJetFinderBase () override
 
- Public Member Functions inherited from L1GctProcessor
 L1GctProcessor ()
 
void reset ()
 complete reset of processor More...
 
void setBxRange (const int firstBx, const int numberOfBx)
 define the bunch crossing range to process More...
 
void setNextBx (const int bxnum)
 clear input data buffers and process a new bunch crossing More...
 
void setTerse ()
 
bool setupOk () const
 Method to check the setup for this processor. Returns true by default. More...
 
void setVerbose ()
 control output messages More...
 
virtual ~L1GctProcessor ()
 

Protected Member Functions

unsigned centralCol0 () const override
 
unsigned maxRegionsIn () const override
 
unsigned int nCols () const override
 
- Protected Member Functions inherited from L1GctJetFinderBase
etTotalType calcEtStrip (const UShort strip) const
 Calculates total (raw) energy in a phi strip. More...
 
hfTowerSumsType calcHfSums () const
 Calculates Et sum and number of towers over threshold in Hf. More...
 
etTotalType calcHtStrip (const UShort strip) const
 Calculates total calibrated energy in jets (Ht) sum. More...
 
void doEnergySums ()
 Fill the Et strip sums and Ht sum. All jetFinders should call this in process(). More...
 
void doEtSums ()
 Calculates scalar and vector sum of Et over input regions. More...
 
void doHtSums ()
 Calculates scalar and vector sum of Ht over calibrated jets. More...
 
void fetchProtoJetsFromNeighbour (const fetchType ft)
 fetch the protoJets from neighbour jetFinder More...
 
void resetPipelines () override
 
void resetProcessor () override
 Separate reset methods for the processor itself and any data stored in pipelines. More...
 
void setupObjects () override
 Initialise inputs with null objects for the correct bunch crossing if required. More...
 
void sortJets ()
 Sort the found jets. All jetFinders should call this in process(). More...
 
- Protected Member Functions inherited from L1GctProcessor
int bxAbs () const
 
int bxMax () const
 
int bxMin () const
 Support for multiple beam crossing operation. More...
 
int bxRel () const
 
int numOfBx () const
 

Private Member Functions

ULong calcJetEnergy (const UShort centreIndex, const bool boundary=false) const
 Returns energy sum of the 9 regions centred (physically) about centreIndex. Set boundary = true if at edge of HCAL. More...
 
L1CaloRegionDetId calcJetPosition (const UShort centreIndex) const
 returns the encoded (eta, phi) position of the centre region More...
 
bool calcJetTauVeto (const UShort centreIndex, const bool boundary=false) const
 Returns combined tauVeto of the 9 regions centred (physically) about centreIndex. Set boundary = true if at edge of Endcap. More...
 
bool detectJet (const UShort centreIndex, const bool boundary=false) const
 Returns true if region index is the centre of a jet. Set boundary = true if at edge of HCAL. More...
 
void findJets ()
 Here is the TDR 3x3 sliding window jet finder algorithm. More...
 

Static Private Attributes

static const unsigned int CENTRAL_COL0 = 1
 
static const unsigned int MAX_REGIONS_IN = (((L1CaloRegionDetId::N_ETA)/2)+1)*L1GctTdrJetFinder::N_COLS
 The real jetFinders must define these constants. More...
 
static const unsigned int N_COLS = 4
 

Friends

std::ostream & operator<< (std::ostream &os, const L1GctTdrJetFinder &algo)
 Overload << operator. More...
 

Additional Inherited Members

- Public Types inherited from L1GctJetFinderBase
typedef L1GctTwosComplement< L1GctInternEtSum::kJetMissEtNBitsetCompInternJfType
 
typedef L1GctUnsignedInt< L1GctInternEtSum::kTotEtOrHtNBitsetHadType
 
typedef L1GctUnsignedInt< L1GctInternEtSum::kTotEtOrHtNBitsetTotalType
 
typedef L1GctTwosComplement< L1GctInternHtMiss::kJetMissHtNBitshtCompInternJfType
 
typedef std::vector< L1GctJetCandJetVector
 
typedef L1GctJet::lutPtr lutPtr
 
typedef std::vector< lutPtrlutPtrVector
 
enum  maxValues { etTotalMaxValue = L1GctInternEtSum::kTotEtOrHtMaxValue, htTotalMaxValue = L1GctInternEtSum::kTotEtOrHtMaxValue }
 
typedef Pipeline< L1GctJetRawJetPipeline
 
typedef std::vector< L1GctJetRawJetVector
 
typedef std::vector< L1GctRegionRegionsVector
 
typedef unsigned long int ULong
 
typedef unsigned short int UShort
 
- Static Public Attributes inherited from L1GctJetFinderBase
static const unsigned int COL_OFFSET = L1GctJetFinderParams::NUMBER_ETA_VALUES+N_EXTRA_REGIONS_ETA00
 The index offset between columns. More...
 
static const unsigned int MAX_JETS_OUT = 6
 Max of 6 jets found per jetfinder in a 2*11 search area. More...
 
static const unsigned int N_EXTRA_REGIONS_ETA00 = 2
 Number of additional regions to process on the "wrong" side of eta=0 (determines COL_OFFSET) More...
 
static const unsigned int N_JF_PER_WHEEL = ((L1CaloRegionDetId::N_PHI)/2)
 No of jetFinders per Wheel. More...
 
- Protected Types inherited from L1GctJetFinderBase
enum  fetchType { TOP, BOT, TOPBOT }
 different ways of getting the neighbour data More...
 
- Protected Attributes inherited from L1GctJetFinderBase
unsigned m_CenJetSeed
 
unsigned m_EtaBoundry
 
bool m_EtmMask [11]
 
bool m_EttMask [11]
 
unsigned m_FwdJetSeed
 
bool m_gotChannelMask
 Remember whether channel mask have been stored. More...
 
bool m_gotJetEtCalLuts
 Remember whether jet Et calibration Lut pointers have been stored. More...
 
bool m_gotJetFinderParams
 Remember whether jetfinder parameters have been stored. More...
 
bool m_gotNeighbourPointers
 Remember whether the neighbour pointers have been stored. More...
 
bool m_HtmMask [11]
 
unsigned m_HtmSumJetThreshold
 
bool m_HttMask [11]
 
unsigned m_HttSumJetThreshold
 
int m_id
 algo ID More...
 
bool m_idInRange
 Remember whether range check on the input ID was ok. More...
 
bool m_ignoreTauVetoBitsForIsolation
 
RegionsVector m_inputRegions
 
lutPtrVector m_jetEtCalLuts
 Jet Et Conversion LUT pointer. More...
 
RegionsVector m_keptProtoJets
 List of pre-clustered jets retained locally as input to the final clustering. More...
 
unsigned m_minColThisJf
 parameter to determine which Regions belong in our acceptance More...
 
std::vector< L1GctJetFinderBase * > m_neighbourJetFinders
 Store neighbour pointers. More...
 
etTotalType m_outputEtSum
 output Et strip sums and Ht - refactored More...
 
etCompInternJfType m_outputExSum
 
etCompInternJfType m_outputEySum
 
hfTowerSumsType m_outputHfSums
 
etHadType m_outputHtSum
 
htCompInternJfType m_outputHxSum
 
htCompInternJfType m_outputHySum
 
RawJetVector m_outputJets
 output jets More...
 
bool m_positiveEtaWheel
 
RegionsVector m_rcvdProtoJets
 List of pre-clustered jets received from neighbour before the final stage of clustering. More...
 
RegionsVector m_sentProtoJets
 List of pre-clustered jets to be sent to neighbour after the first stage of clustering. More...
 
JetVector m_sortedJets
 
unsigned m_tauIsolationThreshold
 
unsigned m_TauJetSeed
 
bool m_useImprovedTauAlgo
 Setup parameters for the tau jet algorithm. More...
 
- Protected Attributes inherited from L1GctProcessor
bool m_verbose
 Flag to control output messages. More...
 

Detailed Description

3*3 sliding window algorithm jet finder.

Locates the jets from 48 inputted L1CaloRegions. This uses the 3*3 sliding window algorithm.

The the filling of the input L1CaloRegions happens in the L1GctJetFinderBase class

Inputted regions are expected in a certain order with respect to the index i:

Regions should arrive running from the middle (eta=0) of the detector out towards the edge of the forward HCAL, and then moving across in columns like this but increasing in phi each time.

E.g. for 48 inputted regions: region 0: phi=0, other side of eta=0 line (shared data). region 1: phi=0, but correct side of eta=0 (shared data). region 11: phi=0, edge of Forward HCAL (shared data). region 12: phi=20, other side of eta=0 line (shared data) region 13: phi=20, start of jet search area region 23: phi=20, edge of HF (jet search area) etc.

In the event of neighbouring regions having the same energy, this will locate the jet in the region furthest from eta=0 that has the lowest value of phi.

The jet finder now stores jets with (eta, phi) information encoded in an L1CaloRegionDetId.

Modified to use L1GctJetFinderBase class by Greg Heath, June 2006.

Definition at line 54 of file L1GctTdrJetFinder.h.

Constructor & Destructor Documentation

L1GctTdrJetFinder::L1GctTdrJetFinder ( int  id)

id is 0-8 for -ve Eta jetfinders, 9-17 for +ve Eta, for increasing Phi.

Definition at line 15 of file L1GctTdrJetFinder.cc.

References CENTRAL_COL0, L1GctJetFinderBase::m_id, L1GctJetFinderBase::m_minColThisJf, L1CaloRegionDetId::N_PHI, and L1GctProcessor::reset().

15  :
17 {
18  this->reset();
19  // Initialise parameters for Region input calculations in the
20  // derived class so we get the right values of constants.
21  static const unsigned NPHI = L1CaloRegionDetId::N_PHI;
22  m_minColThisJf = (NPHI + m_id*2 - CENTRAL_COL0) % NPHI;
23 }
void reset()
complete reset of processor
L1GctJetFinderBase(int id)
id is 0-8 for -ve Eta jetfinders, 9-17 for +ve Eta, for increasing Phi.
static const unsigned int CENTRAL_COL0
static const unsigned N_PHI
unsigned m_minColThisJf
parameter to determine which Regions belong in our acceptance
L1GctTdrJetFinder::~L1GctTdrJetFinder ( )
override

Definition at line 25 of file L1GctTdrJetFinder.cc.

26 {
27 }

Member Function Documentation

L1GctJetFinderBase::ULong L1GctTdrJetFinder::calcJetEnergy ( const UShort  centreIndex,
const bool  boundary = false 
) const
private

Returns energy sum of the 9 regions centred (physically) about centreIndex. Set boundary = true if at edge of HCAL.

Definition at line 166 of file L1GctTdrJetFinder.cc.

References L1GctJetFinderBase::COL_OFFSET, and L1GctJetFinderBase::m_inputRegions.

Referenced by findJets().

167 {
168  ULong energy = 0;
169 
170  if(!boundary)
171  {
172  for(int column = -1; column <= +1; ++column)
173  {
174  energy += m_inputRegions.at(centreIndex-1 + (column*COL_OFFSET)).et() +
175  m_inputRegions.at( centreIndex + (column*COL_OFFSET)).et() +
176  m_inputRegions.at(centreIndex+1 + (column*COL_OFFSET)).et();
177  }
178  }
179  else
180  {
181  for(int column = -1; column <= +1; ++column)
182  {
183  energy += m_inputRegions.at(centreIndex-1 + (column*COL_OFFSET)).et() +
184  m_inputRegions.at( centreIndex + (column*COL_OFFSET)).et();
185  }
186  }
187 
188  return energy;
189 }
static const unsigned int COL_OFFSET
The index offset between columns.
RegionsVector m_inputRegions
unsigned long int ULong
Definition: L1GctRegion.h:15
L1CaloRegionDetId L1GctTdrJetFinder::calcJetPosition ( const UShort  centreIndex) const
private

returns the encoded (eta, phi) position of the centre region

Definition at line 192 of file L1GctTdrJetFinder.cc.

References L1GctJetFinderBase::m_inputRegions.

Referenced by findJets().

193 {
194  return m_inputRegions.at(centreIndex).id();
195 }
RegionsVector m_inputRegions
bool L1GctTdrJetFinder::calcJetTauVeto ( const UShort  centreIndex,
const bool  boundary = false 
) const
private

Returns combined tauVeto of the 9 regions centred (physically) about centreIndex. Set boundary = true if at edge of Endcap.

Definition at line 198 of file L1GctTdrJetFinder.cc.

References L1GctJetFinderBase::COL_OFFSET, and L1GctJetFinderBase::m_inputRegions.

Referenced by findJets().

199 {
200  bool partial[3] = {false, false, false};
201 
202  if(!boundary)
203  {
204  for(int column = -1; column <= +1; ++column)
205  {
206  partial[column+1] = m_inputRegions.at(centreIndex-1 + (column*COL_OFFSET)).tauVeto() ||
207  m_inputRegions.at( centreIndex + (column*COL_OFFSET)).tauVeto() ||
208  m_inputRegions.at(centreIndex+1 + (column*COL_OFFSET)).tauVeto();
209  }
210  }
211  else
212  {
213  for(int column = -1; column <= +1; ++column)
214  {
215  partial[column+1] = m_inputRegions.at(centreIndex-1 + (column*COL_OFFSET)).tauVeto() ||
216  m_inputRegions.at( centreIndex + (column*COL_OFFSET)).tauVeto();
217  }
218  }
219  return partial[0] || partial[1] || partial[2];
220 }
static const unsigned int COL_OFFSET
The index offset between columns.
RegionsVector m_inputRegions
unsigned L1GctTdrJetFinder::centralCol0 ( ) const
inlineoverrideprotectedvirtual

Reimplemented from L1GctJetFinderBase.

Definition at line 77 of file L1GctTdrJetFinder.h.

References CENTRAL_COL0.

Referenced by findJets().

77 { return CENTRAL_COL0; }
static const unsigned int CENTRAL_COL0
bool L1GctTdrJetFinder::detectJet ( const UShort  centreIndex,
const bool  boundary = false 
) const
private

Returns true if region index is the centre of a jet. Set boundary = true if at edge of HCAL.

Definition at line 99 of file L1GctTdrJetFinder.cc.

References L1GctJetFinderBase::COL_OFFSET, and L1GctJetFinderBase::m_inputRegions.

Referenced by findJets().

100 {
101  if(!boundary) //Not at boundary, so use 3*3 window of regions to determine if a jet
102  {
103  // Get the energy of the central region
104  ULong testEt = m_inputRegions.at(centreIndex).et();
105 
106  //Test if our region qualifies as a jet by comparing its energy with the energies of the
107  //surrounding eight regions. In the event of neighbouring regions with identical energy,
108  //this will locate the jet in the lower-most (furthest away from eta=0), left-most (least phi) region.
109  if(testEt > m_inputRegions.at(centreIndex-1-COL_OFFSET).et() &&
110  testEt > m_inputRegions.at(centreIndex - COL_OFFSET).et() &&
111  testEt > m_inputRegions.at(centreIndex+1-COL_OFFSET).et() &&
112 
113  testEt >= m_inputRegions.at(centreIndex - 1).et() &&
114  testEt > m_inputRegions.at(centreIndex + 1).et() &&
115 
116  testEt >= m_inputRegions.at(centreIndex-1+COL_OFFSET).et() &&
117  testEt >= m_inputRegions.at(centreIndex + COL_OFFSET).et() &&
118  testEt >= m_inputRegions.at(centreIndex+1+COL_OFFSET).et())
119  {
120  return true;
121  }
122 //USE THIS BLOCK INSTEAD IF YOU WANT OVERFLOW BIT FUNCTIONALITY
123 //*** BUT IT WILL NEED MODIFICATION SINCE L1GctRegion IS OBSOLETE ***
124 /* // Get the energy of the central region & OR the overflow bit to become the MSB
125  ULong testEt = (m_inputRegions.at(centreIndex).et() | (m_inputRegions.at(centreIndex).getOverFlow() << L1GctRegion::ET_BITWIDTH));
126 
127  //Test if our region qualifies as a jet by comparing its energy with the energies of the
128  //surrounding eight regions. In the event of neighbouring regions with identical energy,
129  //this will locate the jet in the lower-most (furthest away from eta=0), left-most (least phi) region.
130  if(testEt > (m_inputRegions.at(centreIndex-1-COL_OFFSET).et() | (m_inputRegions.at(centreIndex-1-COL_OFFSET).getOverFlow() << L1GctRegion::ET_BITWIDTH)) &&
131  testEt > (m_inputRegions.at(centreIndex - COL_OFFSET).et() | (m_inputRegions.at(centreIndex - COL_OFFSET).getOverFlow() << L1GctRegion::ET_BITWIDTH)) &&
132  testEt > (m_inputRegions.at(centreIndex+1-COL_OFFSET).et() | (m_inputRegions.at(centreIndex+1-COL_OFFSET).getOverFlow() << L1GctRegion::ET_BITWIDTH)) &&
133 
134  testEt >= (m_inputRegions.at(centreIndex - 1).et() | (m_inputRegions.at(centreIndex - 1).getOverFlow() << L1GctRegion::ET_BITWIDTH)) &&
135  testEt > (m_inputRegions.at(centreIndex + 1).et() | (m_inputRegions.at(centreIndex + 1).getOverFlow() << L1GctRegion::ET_BITWIDTH)) &&
136 
137  testEt >= (m_inputRegions.at(centreIndex-1+COL_OFFSET).et() | (m_inputRegions.at(centreIndex-1+COL_OFFSET).getOverFlow() << L1GctRegion::ET_BITWIDTH)) &&
138  testEt >= (m_inputRegions.at(centreIndex + COL_OFFSET).et() | (m_inputRegions.at(centreIndex + COL_OFFSET).getOverFlow() << L1GctRegion::ET_BITWIDTH)) &&
139  testEt >= (m_inputRegions.at(centreIndex+1+COL_OFFSET).et() | (m_inputRegions.at(centreIndex+1+COL_OFFSET).getOverFlow() << L1GctRegion::ET_BITWIDTH)))
140  {
141  return true;
142  }
143 */ //END OVERFLOW FUNCTIONALITY
144  }
145  else //...so only test surround 5 regions in our jet testing.
146  {
147  // Get the energy of the central region
148  // Don't need all the overflow bit adjustments as above, since we are in the HF here
149  ULong testEt = m_inputRegions.at(centreIndex).et();
150 
151  if(testEt > m_inputRegions.at(centreIndex-1-COL_OFFSET).et() &&
152  testEt > m_inputRegions.at(centreIndex - COL_OFFSET).et() &&
153 
154  testEt >= m_inputRegions.at(centreIndex - 1).et() &&
155 
156  testEt >= m_inputRegions.at(centreIndex-1+COL_OFFSET).et() &&
157  testEt >= m_inputRegions.at(centreIndex + COL_OFFSET).et())
158  {
159  return true;
160  }
161  }
162  return false;
163 }
static const unsigned int COL_OFFSET
The index offset between columns.
RegionsVector m_inputRegions
unsigned long int ULong
Definition: L1GctRegion.h:15
void L1GctTdrJetFinder::fetchInput ( )
overridevirtual

get input data from sources

Implements L1GctJetFinderBase.

Definition at line 37 of file L1GctTdrJetFinder.cc.

38 {
39 }
void L1GctTdrJetFinder::findJets ( )
private

Here is the TDR 3x3 sliding window jet finder algorithm.

HERE IS THE JETFINDER CODE.

Definition at line 52 of file L1GctTdrJetFinder.cc.

References calcJetEnergy(), calcJetPosition(), calcJetTauVeto(), centralCol0(), L1GctJetFinderBase::COL_OFFSET, detectJet(), L1GctJetFinderBase::m_inputRegions, L1GctJetFinderBase::m_outputJets, L1GctJetFinderBase::MAX_JETS_OUT, and MAX_REGIONS_IN.

Referenced by process().

53 {
54  UShort jetNum = 0; //holds the number of jets currently found
55  UShort centreIndex = COL_OFFSET*this->centralCol0();
56  for(UShort column = 0; column <2; ++column) //Find jets in the central search region
57  {
58  //don't include row zero as it is not in the search region
59  ++centreIndex;
60  for (UShort row = 1; row < COL_OFFSET; ++row)
61  {
62  //Determine if we are at end of the HF or not (so need 3*2 window)
63  bool hfBoundary = (row == COL_OFFSET-1);
64  //Determine if we are at the end of the endcap HCAL regions, so need boundary condition tauveto
65  bool heBoundary = (row == COL_OFFSET-5);
66 
67  //debug checks for improper input indices
68  if ((centreIndex % COL_OFFSET != 0) //Don't want the 4 regions from other half of detector
69  && (centreIndex >= COL_OFFSET) //Don't want the shared column to left of jet finding area
70  && (centreIndex < (MAX_REGIONS_IN - COL_OFFSET))) { //Don't want column to the right either
71 
72  if(detectJet(centreIndex, hfBoundary))
73  {
74  if (jetNum < MAX_JETS_OUT) {
75 
76  m_outputJets.at(jetNum).setRawsum(calcJetEnergy(centreIndex, hfBoundary));
77  m_outputJets.at(jetNum).setDetId(calcJetPosition(centreIndex));
78  m_outputJets.at(jetNum).setBx(m_inputRegions.at(centreIndex).bx());
79  if(row < COL_OFFSET-4) //if we are not in the HF, perform tauVeto analysis
80  {
81  m_outputJets.at(jetNum).setForward(false);
82  m_outputJets.at(jetNum).setTauVeto(calcJetTauVeto(centreIndex,heBoundary));
83  }
84  else //can't be a tau jet because we are in the HF
85  {
86  m_outputJets.at(jetNum).setForward(true);
87  m_outputJets.at(jetNum).setTauVeto(true);
88  }
89  ++jetNum;
90  }
91  }
92  ++centreIndex;
93  }
94  }
95  }
96 }
static const unsigned int MAX_JETS_OUT
Max of 6 jets found per jetfinder in a 2*11 search area.
static const unsigned int MAX_REGIONS_IN
The real jetFinders must define these constants.
unsigned centralCol0() const override
bool calcJetTauVeto(const UShort centreIndex, const bool boundary=false) const
Returns combined tauVeto of the 9 regions centred (physically) about centreIndex. Set boundary = true...
ULong calcJetEnergy(const UShort centreIndex, const bool boundary=false) const
Returns energy sum of the 9 regions centred (physically) about centreIndex. Set boundary = true if at...
unsigned short int UShort
bool detectJet(const UShort centreIndex, const bool boundary=false) const
Returns true if region index is the centre of a jet. Set boundary = true if at edge of HCAL...
static const unsigned int COL_OFFSET
The index offset between columns.
RawJetVector m_outputJets
output jets
RegionsVector m_inputRegions
L1CaloRegionDetId calcJetPosition(const UShort centreIndex) const
returns the encoded (eta, phi) position of the centre region
unsigned L1GctTdrJetFinder::maxRegionsIn ( ) const
inlineoverrideprotectedvirtual

*** End of event data ***


Reimplemented from L1GctJetFinderBase.

Definition at line 76 of file L1GctTdrJetFinder.h.

References MAX_REGIONS_IN.

76 { return MAX_REGIONS_IN; }
static const unsigned int MAX_REGIONS_IN
The real jetFinders must define these constants.
unsigned int L1GctTdrJetFinder::nCols ( ) const
inlineoverrideprotectedvirtual

Reimplemented from L1GctJetFinderBase.

Definition at line 78 of file L1GctTdrJetFinder.h.

References N_COLS.

78 { return N_COLS; }
static const unsigned int N_COLS
void L1GctTdrJetFinder::process ( )
overridevirtual

process the data, fill output buffers

Implements L1GctJetFinderBase.

Definition at line 41 of file L1GctTdrJetFinder.cc.

References L1GctJetFinderBase::doEnergySums(), findJets(), L1GctJetFinderBase::setupOk(), and L1GctJetFinderBase::sortJets().

42 {
43  if (setupOk()) {
44  findJets();
45  sortJets();
46  doEnergySums();
47  }
48 }
void findJets()
Here is the TDR 3x3 sliding window jet finder algorithm.
bool setupOk() const
Check setup is Ok.
void sortJets()
Sort the found jets. All jetFinders should call this in process().
void doEnergySums()
Fill the Et strip sums and Ht sum. All jetFinders should call this in process().

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const L1GctTdrJetFinder algo 
)
friend

Overload << operator.

Member Data Documentation

const unsigned int L1GctTdrJetFinder::CENTRAL_COL0 = 1
staticprivate

Definition at line 85 of file L1GctTdrJetFinder.h.

Referenced by centralCol0(), and L1GctTdrJetFinder().

const unsigned int L1GctTdrJetFinder::MAX_REGIONS_IN = (((L1CaloRegionDetId::N_ETA)/2)+1)*L1GctTdrJetFinder::N_COLS
staticprivate

The real jetFinders must define these constants.

Dependent on number of rows and columns.

Definition at line 83 of file L1GctTdrJetFinder.h.

Referenced by findJets(), and maxRegionsIn().

const unsigned int L1GctTdrJetFinder::N_COLS = 4
staticprivate

Definition at line 84 of file L1GctTdrJetFinder.h.

Referenced by nCols().