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
 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 51 of file L1GctTdrJetFinder.h.

Constructor & Destructor Documentation

◆ L1GctTdrJetFinder()

L1GctTdrJetFinder::L1GctTdrJetFinder ( int  id)

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

Definition at line 16 of file L1GctTdrJetFinder.cc.

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

16  : L1GctJetFinderBase(id) {
17  this->reset();
18  // Initialise parameters for Region input calculations in the
19  // derived class so we get the right values of constants.
20  static const unsigned NPHI = L1CaloRegionDetId::N_PHI;
21  m_minColThisJf = (NPHI + m_id * 2 - CENTRAL_COL0) % NPHI;
22 }
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::~L1GctTdrJetFinder ( )
override

Definition at line 24 of file L1GctTdrJetFinder.cc.

24 {}

Member Function Documentation

◆ calcJetEnergy()

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 149 of file L1GctTdrJetFinder.cc.

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

Referenced by findJets().

149  {
150  ULong energy = 0;
151 
152  if (!boundary) {
153  for (int column = -1; column <= +1; ++column) {
154  energy += m_inputRegions.at(centreIndex - 1 + (column * COL_OFFSET)).et() +
155  m_inputRegions.at(centreIndex + (column * COL_OFFSET)).et() +
156  m_inputRegions.at(centreIndex + 1 + (column * COL_OFFSET)).et();
157  }
158  } else {
159  for (int column = -1; column <= +1; ++column) {
160  energy += m_inputRegions.at(centreIndex - 1 + (column * COL_OFFSET)).et() +
161  m_inputRegions.at(centreIndex + (column * COL_OFFSET)).et();
162  }
163  }
164 
165  return energy;
166 }
unsigned long int ULong
static const unsigned int COL_OFFSET
The index offset between columns.
RegionsVector m_inputRegions

◆ calcJetPosition()

L1CaloRegionDetId L1GctTdrJetFinder::calcJetPosition ( const UShort  centreIndex) const
private

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

Definition at line 169 of file L1GctTdrJetFinder.cc.

References L1GctJetFinderBase::m_inputRegions.

Referenced by findJets().

169  {
170  return m_inputRegions.at(centreIndex).id();
171 }
RegionsVector m_inputRegions

◆ calcJetTauVeto()

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 174 of file L1GctTdrJetFinder.cc.

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

Referenced by findJets().

174  {
175  bool partial[3] = {false, false, false};
176 
177  if (!boundary) {
178  for (int column = -1; column <= +1; ++column) {
179  partial[column + 1] = m_inputRegions.at(centreIndex - 1 + (column * COL_OFFSET)).tauVeto() ||
180  m_inputRegions.at(centreIndex + (column * COL_OFFSET)).tauVeto() ||
181  m_inputRegions.at(centreIndex + 1 + (column * COL_OFFSET)).tauVeto();
182  }
183  } else {
184  for (int column = -1; column <= +1; ++column) {
185  partial[column + 1] = m_inputRegions.at(centreIndex - 1 + (column * COL_OFFSET)).tauVeto() ||
186  m_inputRegions.at(centreIndex + (column * COL_OFFSET)).tauVeto();
187  }
188  }
189  return partial[0] || partial[1] || partial[2];
190 }
static const unsigned int COL_OFFSET
The index offset between columns.
RegionsVector m_inputRegions

◆ centralCol0()

unsigned L1GctTdrJetFinder::centralCol0 ( ) const
inlineoverrideprotectedvirtual

Reimplemented from L1GctJetFinderBase.

Definition at line 71 of file L1GctTdrJetFinder.h.

References CENTRAL_COL0.

Referenced by findJets().

71 { return CENTRAL_COL0; }
static const unsigned int CENTRAL_COL0

◆ detectJet()

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 87 of file L1GctTdrJetFinder.cc.

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

Referenced by findJets().

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

◆ fetchInput()

void L1GctTdrJetFinder::fetchInput ( )
overridevirtual

get input data from sources

Implements L1GctJetFinderBase.

Definition at line 33 of file L1GctTdrJetFinder.cc.

33 {}

◆ findJets()

void L1GctTdrJetFinder::findJets ( )
private

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

HERE IS THE JETFINDER CODE.

Definition at line 45 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().

45  {
46  UShort jetNum = 0; //holds the number of jets currently found
47  UShort centreIndex = COL_OFFSET * this->centralCol0();
48  for (UShort column = 0; column < 2; ++column) //Find jets in the central search region
49  {
50  //don't include row zero as it is not in the search region
51  ++centreIndex;
52  for (UShort row = 1; row < COL_OFFSET; ++row) {
53  //Determine if we are at end of the HF or not (so need 3*2 window)
54  bool hfBoundary = (row == COL_OFFSET - 1);
55  //Determine if we are at the end of the endcap HCAL regions, so need boundary condition tauveto
56  bool heBoundary = (row == COL_OFFSET - 5);
57 
58  //debug checks for improper input indices
59  if ((centreIndex % COL_OFFSET != 0) //Don't want the 4 regions from other half of detector
60  && (centreIndex >= COL_OFFSET) //Don't want the shared column to left of jet finding area
61  && (centreIndex < (MAX_REGIONS_IN - COL_OFFSET))) { //Don't want column to the right either
62 
63  if (detectJet(centreIndex, hfBoundary)) {
64  if (jetNum < MAX_JETS_OUT) {
65  m_outputJets.at(jetNum).setRawsum(calcJetEnergy(centreIndex, hfBoundary));
66  m_outputJets.at(jetNum).setDetId(calcJetPosition(centreIndex));
67  m_outputJets.at(jetNum).setBx(m_inputRegions.at(centreIndex).bx());
68  if (row < COL_OFFSET - 4) //if we are not in the HF, perform tauVeto analysis
69  {
70  m_outputJets.at(jetNum).setForward(false);
71  m_outputJets.at(jetNum).setTauVeto(calcJetTauVeto(centreIndex, heBoundary));
72  } else //can't be a tau jet because we are in the HF
73  {
74  m_outputJets.at(jetNum).setForward(true);
75  m_outputJets.at(jetNum).setTauVeto(true);
76  }
77  ++jetNum;
78  }
79  }
80  ++centreIndex;
81  }
82  }
83  }
84 }
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 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.
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...
L1CaloRegionDetId calcJetPosition(const UShort centreIndex) const
returns the encoded (eta, phi) position of the centre region
unsigned short int UShort
static const unsigned int COL_OFFSET
The index offset between columns.
RawJetVector m_outputJets
output jets
RegionsVector m_inputRegions
unsigned centralCol0() const override

◆ maxRegionsIn()

unsigned L1GctTdrJetFinder::maxRegionsIn ( ) const
inlineoverrideprotectedvirtual

*** End of event data ***


Reimplemented from L1GctJetFinderBase.

Definition at line 70 of file L1GctTdrJetFinder.h.

References MAX_REGIONS_IN.

70 { return MAX_REGIONS_IN; }
static const unsigned int MAX_REGIONS_IN
The real jetFinders must define these constants.

◆ nCols()

unsigned int L1GctTdrJetFinder::nCols ( ) const
inlineoverrideprotectedvirtual

Reimplemented from L1GctJetFinderBase.

Definition at line 72 of file L1GctTdrJetFinder.h.

References N_COLS.

72 { return N_COLS; }
static const unsigned int N_COLS

◆ process()

void L1GctTdrJetFinder::process ( )
overridevirtual

process the data, fill output buffers

Implements L1GctJetFinderBase.

Definition at line 35 of file L1GctTdrJetFinder.cc.

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

35  {
36  if (setupOk()) {
37  findJets();
38  sortJets();
39  doEnergySums();
40  }
41 }
void findJets()
Here is the TDR 3x3 sliding window jet finder algorithm.
void sortJets()
Sort the found jets. All jetFinders should call this in process().
bool setupOk() const
Check setup is Ok.
void doEnergySums()
Fill the Et strip sums and Ht sum. All jetFinders should call this in process().

Friends And Related Function Documentation

◆ operator<<

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

Overload << operator.

Member Data Documentation

◆ CENTRAL_COL0

const unsigned int L1GctTdrJetFinder::CENTRAL_COL0 = 1
staticprivate

Definition at line 78 of file L1GctTdrJetFinder.h.

Referenced by centralCol0(), and L1GctTdrJetFinder().

◆ MAX_REGIONS_IN

const unsigned int L1GctTdrJetFinder::MAX_REGIONS_IN
staticprivate
Initial value:

The real jetFinders must define these constants.

Dependent on number of rows and columns.

Definition at line 76 of file L1GctTdrJetFinder.h.

Referenced by findJets(), and maxRegionsIn().

◆ N_COLS

const unsigned int L1GctTdrJetFinder::N_COLS = 4
staticprivate

Definition at line 77 of file L1GctTdrJetFinder.h.

Referenced by nCols().