CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | Friends
L1GctHardwareJetFinder Class Reference

Emulation of the hardware jet finder. More...

#include <L1GctHardwareJetFinder.h>

Inheritance diagram for L1GctHardwareJetFinder:
L1GctJetFinderBase L1GctProcessor

Public Member Functions

virtual void fetchInput ()
 get input data from sources More...
 
 L1GctHardwareJetFinder (int id)
 id is 0-8 for -ve Eta jetfinders, 9-17 for +ve Eta, for increasing Phi. More...
 
virtual void process ()
 process the data, fill output buffers More...
 
virtual void reset ()
 include additional reset functionality More...
 
 ~L1GctHardwareJetFinder ()
 
- 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 ()
 
- 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

virtual unsigned centralCol0 () const
 
virtual unsigned maxRegionsIn () const
 
virtual unsigned nCols () const
 
- 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...
 
virtual void resetPipelines ()
 
virtual void resetProcessor ()
 Separate reset methods for the processor itself and any data stored in pipelines. More...
 
virtual void setupObjects ()
 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

void convertClustersToOutputJets ()
 Organise the final clustered jets into L1GctJets. More...
 
void convertClustersToProtoJets ()
 Organise the pre-clustered jets into the ones we keep and those we send to the neighbour. More...
 
void findFinalClusters ()
 Convert protojets to final jets. More...
 
void findJets ()
 The second stage of clustering, called by process() More...
 
void findLocalMaxima ()
 Find local maxima in the search array. More...
 
void findProtoClusters ()
 Convert local maxima to clusters. More...
 
void findProtoJets ()
 The first stage of clustering, called by fetchInput() More...
 
L1GctRegion makeProtoJet (L1GctRegion localMax)
 Method to make a single proto-jet. More...
 

Private Attributes

RegionsVector m_cluster00
 
RegionsVector m_clusters
 Each local maximum becomes a cluster. More...
 
RegionsVector m_localMax00
 
RegionsVector m_localMaxima
 Local vectors used during both stages of clustering. More...
 
unsigned m_numberOfClusters
 The number of local Maxima/clusters found at each stage of clustering. More...
 

Static Private Attributes

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

Friends

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

Additional Inherited Members

- Public Types inherited from L1GctJetFinderBase
typedef L1GctTwosComplement
< L1GctInternEtSum::kJetMissEtNBits
etCompInternJfType
 
typedef L1GctUnsignedInt
< L1GctInternEtSum::kTotEtOrHtNBits
etHadType
 
typedef L1GctUnsignedInt
< L1GctInternEtSum::kTotEtOrHtNBits
etTotalType
 
typedef L1GctTwosComplement
< L1GctInternHtMiss::kJetMissHtNBits
htCompInternJfType
 
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

Emulation of the hardware jet finder.

Definition at line 21 of file L1GctHardwareJetFinder.h.

Constructor & Destructor Documentation

L1GctHardwareJetFinder::L1GctHardwareJetFinder ( int  id)

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

Definition at line 8 of file L1GctHardwareJetFinder.cc.

L1GctHardwareJetFinder::~L1GctHardwareJetFinder ( )

Definition at line 23 of file L1GctHardwareJetFinder.cc.

Member Function Documentation

virtual unsigned L1GctHardwareJetFinder::centralCol0 ( ) const
inlineprotectedvirtual

Reimplemented from L1GctJetFinderBase.

Definition at line 47 of file L1GctHardwareJetFinder.h.

References CENTRAL_COL0.

47 { return CENTRAL_COL0; }
static const unsigned int CENTRAL_COL0
void L1GctHardwareJetFinder::convertClustersToOutputJets ( )
private

Organise the final clustered jets into L1GctJets.

Definition at line 434 of file L1GctHardwareJetFinder.cc.

void L1GctHardwareJetFinder::convertClustersToProtoJets ( )
private

Organise the pre-clustered jets into the ones we keep and those we send to the neighbour.

Definition at line 421 of file L1GctHardwareJetFinder.cc.

void L1GctHardwareJetFinder::fetchInput ( )
virtual

get input data from sources

Implements L1GctJetFinderBase.

Definition at line 40 of file L1GctHardwareJetFinder.cc.

void L1GctHardwareJetFinder::findFinalClusters ( )
private

Convert protojets to final jets.

Definition at line 322 of file L1GctHardwareJetFinder.cc.

void L1GctHardwareJetFinder::findJets ( )
private

The second stage of clustering, called by process()

Definition at line 68 of file L1GctHardwareJetFinder.cc.

void L1GctHardwareJetFinder::findLocalMaxima ( )
private

Find local maxima in the search array.

Both clustering stages need to find local maxima in the search array.

Definition at line 76 of file L1GctHardwareJetFinder.cc.

void L1GctHardwareJetFinder::findProtoClusters ( )
private

Convert local maxima to clusters.

Definition at line 161 of file L1GctHardwareJetFinder.cc.

void L1GctHardwareJetFinder::findProtoJets ( )
private

The first stage of clustering, called by fetchInput()

HERE IS THE JETFINDER CODE.

The first stage of clustering, called by fetchInput()

Definition at line 60 of file L1GctHardwareJetFinder.cc.

L1GctRegion L1GctHardwareJetFinder::makeProtoJet ( L1GctRegion  localMax)
private

Method to make a single proto-jet.

Definition at line 223 of file L1GctHardwareJetFinder.cc.

virtual unsigned L1GctHardwareJetFinder::maxRegionsIn ( ) const
inlineprotectedvirtual

*** End of event data ***


Reimplemented from L1GctJetFinderBase.

Definition at line 46 of file L1GctHardwareJetFinder.h.

References MAX_REGIONS_IN.

46 { return MAX_REGIONS_IN; }
static const unsigned int MAX_REGIONS_IN
The real jetFinders must define these constants.
virtual unsigned L1GctHardwareJetFinder::nCols ( ) const
inlineprotectedvirtual

Reimplemented from L1GctJetFinderBase.

Definition at line 48 of file L1GctHardwareJetFinder.h.

References N_COLS.

48 { return N_COLS; }
static const unsigned int N_COLS
void L1GctHardwareJetFinder::process ( )
virtual

process the data, fill output buffers

Implements L1GctJetFinderBase.

Definition at line 47 of file L1GctHardwareJetFinder.cc.

void L1GctHardwareJetFinder::reset ( void  )
virtual

include additional reset functionality

Definition at line 35 of file L1GctHardwareJetFinder.cc.

Friends And Related Function Documentation

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

Overload << operator.

Definition at line 27 of file L1GctHardwareJetFinder.cc.

Member Data Documentation

const unsigned int L1GctHardwareJetFinder::CENTRAL_COL0 = 0
staticprivate

Definition at line 55 of file L1GctHardwareJetFinder.h.

Referenced by centralCol0().

RegionsVector L1GctHardwareJetFinder::m_cluster00
private

Definition at line 67 of file L1GctHardwareJetFinder.h.

RegionsVector L1GctHardwareJetFinder::m_clusters
private

Each local maximum becomes a cluster.

Definition at line 60 of file L1GctHardwareJetFinder.h.

RegionsVector L1GctHardwareJetFinder::m_localMax00
private

Definition at line 66 of file L1GctHardwareJetFinder.h.

RegionsVector L1GctHardwareJetFinder::m_localMaxima
private

Local vectors used during both stages of clustering.

Definition at line 58 of file L1GctHardwareJetFinder.h.

unsigned L1GctHardwareJetFinder::m_numberOfClusters
private

The number of local Maxima/clusters found at each stage of clustering.

Definition at line 63 of file L1GctHardwareJetFinder.h.

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

The real jetFinders must define these constants.

Dependent on number of rows and columns.

Definition at line 53 of file L1GctHardwareJetFinder.h.

Referenced by maxRegionsIn().

const unsigned int L1GctHardwareJetFinder::N_COLS = 2
staticprivate

Definition at line 54 of file L1GctHardwareJetFinder.h.

Referenced by nCols().