Base class to allow implementation of jetFinder algorithms. More...
#include <L1GctJetFinderBase.h>
Classes | |
struct | hfTowerSumsType |
Public Types | |
typedef L1GctTwosComplement < L1GctInternEtSum::kJetMissEtNBits > | etCompInternJfType |
typedef L1GctUnsignedInt < L1GctInternEtSum::kTotEtOrHtNBits > | etHadType |
typedef L1GctUnsignedInt < L1GctInternEtSum::kTotEtOrHtNBits > | etTotalType |
typedef L1GctTwosComplement < L1GctInternHtMiss::kJetMissHtNBits > | htCompInternJfType |
typedef std::vector< L1GctJetCand > | JetVector |
typedef L1GctJet::lutPtr | lutPtr |
typedef std::vector< lutPtr > | lutPtrVector |
enum | maxValues { etTotalMaxValue = L1GctInternEtSum::kTotEtOrHtMaxValue, htTotalMaxValue = L1GctInternEtSum::kTotEtOrHtMaxValue } |
typedef Pipeline< L1GctJet > | RawJetPipeline |
typedef std::vector< L1GctJet > | RawJetVector |
typedef std::vector< L1GctRegion > | RegionsVector |
typedef unsigned long int | ULong |
typedef unsigned short int | UShort |
Public Member Functions | |
virtual void | fetchInput ()=0 |
get input data from sources; to be filled in by derived jetFinders | |
unsigned | getCenJetSeed () const |
unsigned | getEtaBoundry () const |
etTotalType | getEtSum () const |
Get the scalar sum of Et summed over the input regions. | |
etCompInternJfType | getExSum () const |
Get the x component of vector Et summed over the input regions. | |
etCompInternJfType | getEySum () const |
Get the y component of vector Et summed over the input regions. | |
unsigned | getFwdJetSeed () const |
hfTowerSumsType | getHfSums () const |
Get the Hf tower Et sums and tower-over-threshold counts. | |
unsigned | getHtmSumJetThreshold () const |
etHadType | getHtSum () const |
Get the scalar sum of Ht summed over jets above threshold. | |
unsigned | getHttSumJetThreshold () const |
htCompInternJfType | getHxSum () const |
Get the x component of vector Ht summed over jets above threshold. | |
htCompInternJfType | getHySum () const |
Get the y component of vector Ht summed over jets above threshold. | |
RegionsVector | getInputRegions () const |
Return input data. | |
std::vector< L1GctInternEtSum > | getInternalEtSums () const |
get et sums in raw format - to be stored in the event | |
std::vector< L1GctInternHtMiss > | getInternalHtMiss () const |
std::vector< L1GctInternJetData > | getInternalJets () const |
get output jets in raw format - to be stored in the event | |
const lutPtrVector | getJetEtCalLuts () const |
Return pointers to calibration LUTs. | |
JetVector | getJets () const |
Get the located jets. | |
RegionsVector | getKeptProtoJets () const |
get protoJets kept | |
RawJetVector | getRawJets () const |
get output jets in raw format | |
RegionsVector | getRcvdProtoJets () const |
get protoJets received from neighbour | |
RegionsVector | getSentProtoJets () const |
get protoJets sent to neighbour | |
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. | |
virtual void | process ()=0 |
process the data, fill output buffers; to be filled in by derived jetFinders | |
void | setEnergySumMasks (const L1GctChannelMask *chmask) |
Set masks for energy summing. | |
void | setInputRegion (const L1CaloRegion ®ion) |
Set input data. | |
void | setJetEtCalibrationLuts (const lutPtrVector &jfluts) |
Set pointer to calibration Lut - needed to complete the setup. | |
void | setJetFinderParams (const L1GctJetFinderParams *jfpars) |
Set pointer to parameters - needed to complete the setup. | |
void | setNeighbourJetFinders (const std::vector< L1GctJetFinderBase * > &neighbours) |
Set pointers to neighbours - needed to complete the setup. | |
bool | setupOk () const |
Check setup is Ok. | |
void | setupTauAlgo (const bool useImprovedAlgo, const bool ignoreVetoBitsForIsolation) |
Setup the tau algorithm parameters. | |
~L1GctJetFinderBase () | |
Static Public Attributes | |
static const unsigned int | COL_OFFSET = L1GctJetFinderParams::NUMBER_ETA_VALUES+N_EXTRA_REGIONS_ETA00 |
The index offset between columns. | |
static const unsigned int | MAX_JETS_OUT = 6 |
Max of 6 jets found per jetfinder in a 2*11 search area. | |
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) | |
static const unsigned int | N_JF_PER_WHEEL = ((L1CaloRegionDetId::N_PHI)/2) |
No of jetFinders per Wheel. | |
Protected Types | |
enum | fetchType { TOP, BOT, TOPBOT } |
different ways of getting the neighbour data More... | |
Protected Member Functions | |
etTotalType | calcEtStrip (const UShort strip) const |
Calculates total (raw) energy in a phi strip. | |
hfTowerSumsType | calcHfSums () const |
Calculates Et sum and number of towers over threshold in Hf. | |
etTotalType | calcHtStrip (const UShort strip) const |
Calculates total calibrated energy in jets (Ht) sum. | |
virtual unsigned | centralCol0 () const |
void | doEnergySums () |
Fill the Et strip sums and Ht sum. All jetFinders should call this in process(). | |
void | doEtSums () |
Calculates scalar and vector sum of Et over input regions. | |
void | doHtSums () |
Calculates scalar and vector sum of Ht over calibrated jets. | |
void | fetchProtoJetsFromNeighbour (const fetchType ft) |
fetch the protoJets from neighbour jetFinder | |
virtual unsigned | maxRegionsIn () const |
virtual unsigned | nCols () const |
virtual void | resetPipelines () |
virtual void | resetProcessor () |
Separate reset methods for the processor itself and any data stored in pipelines. | |
virtual void | setupObjects () |
Initialise inputs with null objects for the correct bunch crossing if required. | |
void | sortJets () |
Sort the found jets. All jetFinders should call this in process(). | |
Protected Attributes | |
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. | |
bool | m_gotJetEtCalLuts |
Remember whether jet Et calibration Lut pointers have been stored. | |
bool | m_gotJetFinderParams |
Remember whether jetfinder parameters have been stored. | |
bool | m_gotNeighbourPointers |
Remember whether the neighbour pointers have been stored. | |
bool | m_HtmMask [11] |
unsigned | m_HtmSumJetThreshold |
bool | m_HttMask [11] |
unsigned | m_HttSumJetThreshold |
int | m_id |
algo ID | |
bool | m_idInRange |
Remember whether range check on the input ID was ok. | |
bool | m_ignoreTauVetoBitsForIsolation |
RegionsVector | m_inputRegions |
lutPtrVector | m_jetEtCalLuts |
Jet Et Conversion LUT pointer. | |
RegionsVector | m_keptProtoJets |
List of pre-clustered jets retained locally as input to the final clustering. | |
unsigned | m_minColThisJf |
parameter to determine which Regions belong in our acceptance | |
std::vector< L1GctJetFinderBase * > | m_neighbourJetFinders |
Store neighbour pointers. | |
etTotalType | m_outputEtSum |
output Et strip sums and Ht - refactored | |
etCompInternJfType | m_outputExSum |
etCompInternJfType | m_outputEySum |
hfTowerSumsType | m_outputHfSums |
etHadType | m_outputHtSum |
htCompInternJfType | m_outputHxSum |
htCompInternJfType | m_outputHySum |
RawJetVector | m_outputJets |
output jets | |
bool | m_positiveEtaWheel |
RegionsVector | m_rcvdProtoJets |
List of pre-clustered jets received from neighbour before the final stage of clustering. | |
RegionsVector | m_sentProtoJets |
List of pre-clustered jets to be sent to neighbour after the first stage of clustering. | |
JetVector | m_sortedJets |
unsigned | m_tauIsolationThreshold |
unsigned | m_TauJetSeed |
bool | m_useImprovedTauAlgo |
Setup parameters for the tau jet algorithm. | |
Private Member Functions | |
template<int kBitsInput, int kBitsOutput> | |
L1GctTwosComplement< kBitsOutput > | etComponentForJetFinder (const L1GctUnsignedInt< kBitsInput > &etStrip0, const unsigned &fact0, const L1GctUnsignedInt< kBitsInput > &etStrip1, const unsigned &fact1) |
Private method for calculating MEt and MHt components. | |
Private Attributes | |
Pipeline< etTotalType > | m_outputEtSumPipe |
"Pipeline memories" for energy sums | |
Pipeline< etCompInternJfType > | m_outputExSumPipe |
Pipeline< etCompInternJfType > | m_outputEySumPipe |
Pipeline< etHadType > | m_outputHtSumPipe |
Pipeline< htCompInternJfType > | m_outputHxSumPipe |
Pipeline< htCompInternJfType > | m_outputHySumPipe |
RawJetPipeline | m_outputJetsPipe |
Output jets "pipeline memory" for checking. | |
Static Private Attributes | |
static const unsigned int | CENTRAL_COL0 = 0 |
static const unsigned int | MAX_REGIONS_IN = L1GctJetFinderBase::COL_OFFSET*L1GctJetFinderBase::N_COLS |
The real jetFinders must define these constants. | |
static const unsigned int | N_COLS = 2 |
Friends | |
std::ostream & | operator<< (std::ostream &os, const L1GctJetFinderBase &algo) |
Overload << operator. |
Base class to allow implementation of jetFinder algorithms.
The base class defines the reset() method, setXxx() and getXxx() methods. Individual jetFinders must define the fetchInput() and process() methods, using protected methods of the base class where necessary.
The jetFinder looks for jets over a 2x11 search area. Its input region are pushed in from the appropriate (phi, eta) range, including across the eta=0 boundary between Wheels. The input regions are copied into a vector of dimension N_COLS*COL_OFFSET.
The array of input regions is filled in a certain order with respect to the index i:
The jetFinder can also pull in "proto-jets" from adjacent jetFinders. If required by the algorithm, these must be calculated in the fetchInput() method;
Definition at line 50 of file L1GctJetFinderBase.h.
typedef L1GctTwosComplement< L1GctInternEtSum::kJetMissEtNBits > L1GctJetFinderBase::etCompInternJfType |
Definition at line 62 of file L1GctJetFinderBase.h.
typedef L1GctUnsignedInt<L1GctInternEtSum::kTotEtOrHtNBits> L1GctJetFinderBase::etHadType |
Definition at line 61 of file L1GctJetFinderBase.h.
typedef L1GctUnsignedInt<L1GctInternEtSum::kTotEtOrHtNBits> L1GctJetFinderBase::etTotalType |
Definition at line 60 of file L1GctJetFinderBase.h.
typedef L1GctTwosComplement< L1GctInternHtMiss::kJetMissHtNBits > L1GctJetFinderBase::htCompInternJfType |
Definition at line 63 of file L1GctJetFinderBase.h.
typedef std::vector<L1GctJetCand> L1GctJetFinderBase::JetVector |
Definition at line 58 of file L1GctJetFinderBase.h.
Definition at line 110 of file L1GctJetFinderBase.h.
typedef std::vector<lutPtr> L1GctJetFinderBase::lutPtrVector |
Definition at line 111 of file L1GctJetFinderBase.h.
Definition at line 59 of file L1GctJetFinderBase.h.
typedef std::vector<L1GctJet> L1GctJetFinderBase::RawJetVector |
Definition at line 57 of file L1GctJetFinderBase.h.
typedef std::vector<L1GctRegion> L1GctJetFinderBase::RegionsVector |
Definition at line 56 of file L1GctJetFinderBase.h.
typedef unsigned long int L1GctJetFinderBase::ULong |
Definition at line 54 of file L1GctJetFinderBase.h.
typedef unsigned short int L1GctJetFinderBase::UShort |
Definition at line 55 of file L1GctJetFinderBase.h.
enum L1GctJetFinderBase::fetchType [protected] |
different ways of getting the neighbour data
Definition at line 219 of file L1GctJetFinderBase.h.
Definition at line 65 of file L1GctJetFinderBase.h.
L1GctJetFinderBase::L1GctJetFinderBase | ( | int | id | ) |
id is 0-8 for -ve Eta jetfinders, 9-17 for +ve Eta, for increasing Phi.
Definition at line 24 of file L1GctJetFinderBase.cc.
References m_id, m_idInRange, L1GctProcessor::m_verbose, L1CaloRegionDetId::N_PHI, and L1GctProcessor::reset().
: L1GctProcessor(), m_id(id), m_neighbourJetFinders(2), m_idInRange(false), m_gotNeighbourPointers(false), m_gotJetFinderParams(false), m_gotJetEtCalLuts(false), m_gotChannelMask(false), m_positiveEtaWheel(id >= (int) (L1CaloRegionDetId::N_PHI/2)), m_minColThisJf(0), m_CenJetSeed(0), m_FwdJetSeed(0), m_TauJetSeed(0), m_EtaBoundry(0), m_jetEtCalLuts(), m_useImprovedTauAlgo(false), m_ignoreTauVetoBitsForIsolation(false), m_tauIsolationThreshold(0), m_HttSumJetThreshold(0), m_HtmSumJetThreshold(0), m_EttMask(), m_EtmMask(), m_HttMask(), m_HtmMask(), m_inputRegions(MAX_REGIONS_IN), m_sentProtoJets(MAX_JETS_OUT), m_rcvdProtoJets(MAX_JETS_OUT), m_keptProtoJets(MAX_JETS_OUT), m_outputJets(MAX_JETS_OUT), m_sortedJets(MAX_JETS_OUT), m_outputHfSums(), m_outputJetsPipe(MAX_JETS_OUT), m_outputEtSumPipe(), m_outputExSumPipe(), m_outputEySumPipe(), m_outputHtSumPipe(), m_outputHxSumPipe(), m_outputHySumPipe() { // Call reset to initialise vectors for input and output this->reset(); //Check jetfinder setup if(m_id < 0 || m_id >= static_cast<int>(L1CaloRegionDetId::N_PHI)) { if (m_verbose) { edm::LogWarning("L1GctSetupError") << "L1GctJetFinderBase::L1GctJetFinderBase() : Jet Finder ID " << m_id << " has been incorrectly constructed!\n" << "ID number should be between the range of 0 to " << L1CaloRegionDetId::N_PHI-1 << "\n"; } } else { m_idInRange = true; } }
L1GctJetFinderBase::~L1GctJetFinderBase | ( | ) |
Definition at line 61 of file L1GctJetFinderBase.cc.
{ }
etTotalType L1GctJetFinderBase::calcEtStrip | ( | const UShort | strip | ) | const [protected] |
Calculates total (raw) energy in a phi strip.
L1GctJetFinderBase::hfTowerSumsType L1GctJetFinderBase::calcHfSums | ( | ) | const [protected] |
Calculates Et sum and number of towers over threshold in Hf.
Definition at line 470 of file L1GctJetFinderBase.cc.
References centralCol0(), COL_OFFSET, i, m_inputRegions, nt, evf::evtn::offset(), and groupFilesInBlocks::temp.
Referenced by doEnergySums().
{ static const UShort NUMBER_OF_FRWRD_RINGS = 4; static const UShort NUMBER_OF_INNER_RINGS = 2; std::vector<unsigned> et(NUMBER_OF_INNER_RINGS, 0); std::vector<bool> of(NUMBER_OF_INNER_RINGS, false); std::vector<unsigned> nt(NUMBER_OF_INNER_RINGS, 0); UShort offset = COL_OFFSET*(centralCol0() + 1); for (UShort i=0; i < NUMBER_OF_FRWRD_RINGS; ++i) { offset--; // Sum HF Et and count jets above threshold over "inner rings" if (i<NUMBER_OF_INNER_RINGS) { et.at(i) += m_inputRegions.at(offset).et(); of.at(i) = of.at(i) || m_inputRegions.at(offset).overFlow(); et.at(i) += m_inputRegions.at(offset+COL_OFFSET).et(); of.at(i) = of.at(i) || m_inputRegions.at(offset+COL_OFFSET).overFlow(); if (m_inputRegions.at(offset).fineGrain()) nt.at(i)++; if (m_inputRegions.at(offset+COL_OFFSET).fineGrain()) nt.at(i)++; } } hfTowerSumsType temp(et.at(0), et.at(1), nt.at(0), nt.at(1)); temp.etSum0.setOverFlow(temp.etSum0.overFlow() || of.at(0)); temp.etSum1.setOverFlow(temp.etSum1.overFlow() || of.at(1)); return temp; }
etTotalType L1GctJetFinderBase::calcHtStrip | ( | const UShort | strip | ) | const [protected] |
Calculates total calibrated energy in jets (Ht) sum.
virtual unsigned L1GctJetFinderBase::centralCol0 | ( | ) | const [inline, protected, virtual] |
Reimplemented in L1GctHardwareJetFinder, L1GctNullJetFinder, L1GctSimpleJetFinder, and L1GctTdrJetFinder.
Definition at line 330 of file L1GctJetFinderBase.h.
References CENTRAL_COL0.
Referenced by calcHfSums(), and doEtSums().
{ return CENTRAL_COL0; }
void L1GctJetFinderBase::doEnergySums | ( | ) | [protected] |
Fill the Et strip sums and Ht sum. All jetFinders should call this in process().
Definition at line 358 of file L1GctJetFinderBase.cc.
References calcHfSums(), doEtSums(), doHtSums(), and m_outputHfSums.
Referenced by L1GctHardwareJetFinder::process(), L1GctNullJetFinder::process(), and L1GctTdrJetFinder::process().
{ // Refactored energy sums code - find scalar and vector sums // of Et and Ht instead of strip stums doEtSums(); doHtSums(); //calculate the Hf tower Et sums and tower-over-threshold counts m_outputHfSums = calcHfSums(); return; }
void L1GctJetFinderBase::doEtSums | ( | ) | [protected] |
Calculates scalar and vector sum of Et over input regions.
Definition at line 373 of file L1GctJetFinderBase.cc.
References L1GctProcessor::bxRel(), centralCol0(), COL_OFFSET, etTotalMaxValue, i, m_EttMask, m_id, m_inputRegions, m_outputEtSum, m_outputEtSumPipe, m_outputExSum, m_outputExSumPipe, m_outputEySum, m_outputEySumPipe, N_EXTRA_REGIONS_ETA00, evf::evtn::offset(), L1GctUnsignedInt< nBits >::overFlow(), L1GctUnsignedInt< nBits >::setOverFlow(), and L1GctUnsignedInt< nBits >::setValue().
Referenced by doEnergySums().
{ unsigned et0 = 0; unsigned et1 = 0; bool of = false; // Add the Et values from regions 2 to 12 for strip 0, // the Et values from regions 15 to 25 for strip 1. unsigned offset = COL_OFFSET * centralCol0(); unsigned ieta = 0; for (UShort i=offset+N_EXTRA_REGIONS_ETA00; i < offset+COL_OFFSET; ++i, ++ieta) { if (!m_EttMask[ieta]) { et0 += m_inputRegions.at(i).et(); of |= m_inputRegions.at(i).overFlow(); et1 += m_inputRegions.at(i+COL_OFFSET).et(); of |= m_inputRegions.at(i+COL_OFFSET).overFlow(); } } etTotalType etStrip0(et0); etTotalType etStrip1(et1); etStrip0.setOverFlow(etStrip0.overFlow() || of); etStrip1.setOverFlow(etStrip1.overFlow() || of); unsigned xfact0 = (4*m_id + 6) % 36; unsigned xfact1 = (4*m_id + 8) % 36; unsigned yfact0 = (4*m_id + 15) % 36; unsigned yfact1 = (4*m_id + 17) % 36; m_outputEtSum = etStrip0 + etStrip1; if (m_outputEtSum.overFlow()) m_outputEtSum.setValue(etTotalMaxValue); m_outputExSum = etComponentForJetFinder<L1GctInternEtSum::kTotEtOrHtNBits,L1GctInternEtSum::kJetMissEtNBits> (etStrip0, xfact0, etStrip1, xfact1); m_outputEySum = etComponentForJetFinder<L1GctInternEtSum::kTotEtOrHtNBits,L1GctInternEtSum::kJetMissEtNBits> (etStrip0, yfact0, etStrip1, yfact1); m_outputEtSumPipe.store(m_outputEtSum, bxRel()); m_outputExSumPipe.store(m_outputExSum, bxRel()); m_outputEySumPipe.store(m_outputEySum, bxRel()); }
void L1GctJetFinderBase::doHtSums | ( | ) | [protected] |
Calculates scalar and vector sum of Ht over calibrated jets.
Definition at line 412 of file L1GctJetFinderBase.cc.
References L1GctProcessor::bxRel(), htTotalMaxValue, i, m_HtmMask, m_HtmSumJetThreshold, m_HttMask, m_HttSumJetThreshold, m_id, m_jetEtCalLuts, m_outputHtSum, m_outputHtSumPipe, m_outputHxSum, m_outputHxSumPipe, m_outputHySum, m_outputHySumPipe, m_outputJets, MAX_JETS_OUT, L1GctUnsignedInt< nBits >::overFlow(), L1GctTwosComplement< nBits >::overFlow(), L1GctTwosComplement< nBits >::setOverFlow(), L1GctUnsignedInt< nBits >::setOverFlow(), and L1GctUnsignedInt< nBits >::setValue().
Referenced by doEnergySums().
{ unsigned htt = 0; unsigned ht0 = 0; unsigned ht1 = 0; bool of = false; for(UShort i=0; i < MAX_JETS_OUT; ++i) { // Only sum Ht for valid jets if (!m_outputJets.at(i).isNullJet()) { unsigned ieta = m_outputJets.at(i).rctEta(); unsigned htJet = m_outputJets.at(i).calibratedEt(m_jetEtCalLuts.at(ieta)); // Scalar sum of Htt, with associated threshold if (htJet >= m_HttSumJetThreshold && !m_HttMask[ieta]) { htt += htJet; } // Strip sums, for input to Htm calculation, with associated threshold if (htJet >= m_HtmSumJetThreshold && !m_HtmMask[ieta]) { if (m_outputJets.at(i).rctPhi() == 0) { ht0 += htJet; } if (m_outputJets.at(i).rctPhi() == 1) { ht1 += htJet; } of |= m_outputJets.at(i).overFlow(); } } } etHadType httTotal(htt); etHadType htStrip0(ht0); etHadType htStrip1(ht1); httTotal.setOverFlow(httTotal.overFlow() || of); if (httTotal.overFlow()) httTotal.setValue(htTotalMaxValue); htStrip0.setOverFlow(htStrip0.overFlow() || of); htStrip1.setOverFlow(htStrip1.overFlow() || of); unsigned xfact0 = (4*m_id + 10) % 36; unsigned xfact1 = (4*m_id + 4) % 36; unsigned yfact0 = (4*m_id + 19) % 36; unsigned yfact1 = (4*m_id + 13) % 36; m_outputHtSum = httTotal; m_outputHxSum = etComponentForJetFinder<L1GctInternEtSum::kTotEtOrHtNBits,L1GctInternHtMiss::kJetMissHtNBits> (htStrip0, xfact0, htStrip1, xfact1); m_outputHySum = etComponentForJetFinder<L1GctInternEtSum::kTotEtOrHtNBits,L1GctInternHtMiss::kJetMissHtNBits> (htStrip0, yfact0, htStrip1, yfact1); // Common overflow for Ht components bool htmOverFlow = m_outputHxSum.overFlow() || m_outputHySum.overFlow(); m_outputHxSum.setOverFlow(htmOverFlow); m_outputHySum.setOverFlow(htmOverFlow); m_outputHtSumPipe.store(m_outputHtSum, bxRel()); m_outputHxSumPipe.store(m_outputHxSum, bxRel()); m_outputHySumPipe.store(m_outputHySum, bxRel()); }
L1GctTwosComplement< kBitsOutput > L1GctJetFinderBase::etComponentForJetFinder | ( | const L1GctUnsignedInt< kBitsInput > & | etStrip0, |
const unsigned & | fact0, | ||
const L1GctUnsignedInt< kBitsInput > & | etStrip1, | ||
const unsigned & | fact1 | ||
) | [private] |
Private method for calculating MEt and MHt components.
Definition at line 507 of file L1GctJetFinderBase.cc.
References L1GctProcessor::m_verbose, L1GctUnsignedInt< nBits >::overFlow(), groupFilesInBlocks::temp, and L1GctUnsignedInt< nBits >::value().
{ // typedefs and constants typedef L1GctTwosComplement<kBitsOutput> OutputType; // The sin(phi), cos(phi) factors are represented in 15 bits, // as numbers in the range -2^14 to 2^14. // We multiply each input strip Et by the required factor // then shift, to divide by 2^13. This gives an extra bit // of precision on the LSB of the output values. // It's important to avoid systematically biasing the Ex, Ey // component values because this results in an asymmetric // distribution in phi for the final MEt. // The extra LSB is required because one of the factors is 0.5. // Applying this factor without the extra LSB corrects odd values // systematically down by 0.5; or all values by 0.25 // on average, giving a shift of -2 units in Ex. static const int internalComponentSize = 15; static const int maxEt = 1<<internalComponentSize; static const int kBitsFactor = internalComponentSize+kBitsInput+1; static const int maxFactor = 1<<kBitsFactor; static const int bitsToShift = internalComponentSize-2; static const int halfInputLsb = 1<<(bitsToShift-1); // These factors correspond to the sine of angles from -90 degrees to // 90 degrees in 10 degree steps, multiplied by 16383 and written // as a <kBitsFactor>-bit 2s-complement number. const int factors[19] = {maxFactor-16383, maxFactor-16134, maxFactor-15395, maxFactor-14188, maxFactor-12550, maxFactor-10531, maxFactor-8192, maxFactor-5603, maxFactor-2845, 0, 2845, 5603, 8192, 10531, 12550, 14188, 15395, 16134, 16383}; int rotatedValue0, rotatedValue1, myFact; int etComponentSum = 0; if (fact0 >= 36 || fact1 >= 36) { if (m_verbose) { edm::LogError("L1GctProcessingError") << "L1GctJetLeafCard::rotateEtValue() has been called with factor numbers " << fact0 << " and " << fact1 << "; should be less than 36 \n"; } } else { // First strip - choose the required multiplication factor if (fact0>18) { myFact = factors[(36-fact0)]; } else { myFact = factors[fact0]; } // Multiply the Et value by the factor. rotatedValue0 = static_cast<int>(etStrip0.value()) * myFact; // Second strip - choose the required multiplication factor if (fact1>18) { myFact = factors[(36-fact1)]; } else { myFact = factors[fact1]; } // Multiply the Et value by the factor. rotatedValue1 = static_cast<int>(etStrip1.value()) * myFact; // Add the two scaled values together, with full resolution including // fractional parts from the sin(phi), cos(phi) scaling. // Adjust the value to avoid truncation errors since these // accumulate and cause problems for the missing Et measurement. // Then discard the 13 LSB and interpret the result as // a 15-bit twos complement integer. etComponentSum = ((rotatedValue0 + rotatedValue1) + halfInputLsb)>>bitsToShift; etComponentSum = etComponentSum & (maxEt-1); if (etComponentSum >= (maxEt/2)) { etComponentSum = etComponentSum - maxEt; } } // Store as a TwosComplement format integer and return OutputType temp(etComponentSum); temp.setOverFlow(temp.overFlow() || etStrip0.overFlow() || etStrip1.overFlow()); return temp; }
virtual void L1GctJetFinderBase::fetchInput | ( | ) | [pure virtual] |
get input data from sources; to be filled in by derived jetFinders
Implements L1GctProcessor.
Implemented in L1GctHardwareJetFinder, L1GctNullJetFinder, L1GctSimpleJetFinder, and L1GctTdrJetFinder.
Referenced by L1GctJetLeafCard::fetchInput().
void L1GctJetFinderBase::fetchProtoJetsFromNeighbour | ( | const fetchType | ft | ) | [protected] |
fetch the protoJets from neighbour jetFinder
Helper functions for the fetchInput() and process() methods fetch the protoJets from neighbour jetFinder
Definition at line 317 of file L1GctJetFinderBase.cc.
References BOT, j, m_neighbourJetFinders, m_rcvdProtoJets, MAX_JETS_OUT, groupFilesInBlocks::temp, TOP, and TOPBOT.
Referenced by L1GctHardwareJetFinder::process().
{ switch (ft) { case TOP : m_rcvdProtoJets = m_neighbourJetFinders.at(0)->getSentProtoJets(); break; case BOT : m_rcvdProtoJets = m_neighbourJetFinders.at(1)->getSentProtoJets(); break; case TOPBOT : // Copy half the jets from each neighbour static const unsigned int MAX_TOPBOT_JETS = MAX_JETS_OUT/2; unsigned j=0; RegionsVector temp; temp = m_neighbourJetFinders.at(0)->getSentProtoJets(); for ( ; j<MAX_TOPBOT_JETS; ++j) { m_rcvdProtoJets.at(j) = temp.at(j); } temp = m_neighbourJetFinders.at(1)->getSentProtoJets(); for ( ; j<MAX_JETS_OUT; ++j) { m_rcvdProtoJets.at(j) = temp.at(j); } break; } }
unsigned L1GctJetFinderBase::getCenJetSeed | ( | ) | const [inline] |
Definition at line 199 of file L1GctJetFinderBase.h.
References m_CenJetSeed.
{ return m_CenJetSeed; }
unsigned L1GctJetFinderBase::getEtaBoundry | ( | ) | const [inline] |
Definition at line 202 of file L1GctJetFinderBase.h.
References m_EtaBoundry.
{ return m_EtaBoundry; }
etTotalType L1GctJetFinderBase::getEtSum | ( | ) | const [inline] |
Get the scalar sum of Et summed over the input regions.
Definition at line 189 of file L1GctJetFinderBase.h.
References m_outputEtSum.
Referenced by L1GctJetLeafCard::process().
etCompInternJfType L1GctJetFinderBase::getExSum | ( | ) | const [inline] |
Get the x component of vector Et summed over the input regions.
Definition at line 190 of file L1GctJetFinderBase.h.
References m_outputExSum.
Referenced by L1GctJetLeafCard::process().
etCompInternJfType L1GctJetFinderBase::getEySum | ( | ) | const [inline] |
Get the y component of vector Et summed over the input regions.
Definition at line 191 of file L1GctJetFinderBase.h.
References m_outputEySum.
Referenced by L1GctJetLeafCard::process().
unsigned L1GctJetFinderBase::getFwdJetSeed | ( | ) | const [inline] |
Definition at line 200 of file L1GctJetFinderBase.h.
References m_FwdJetSeed.
{ return m_FwdJetSeed; }
hfTowerSumsType L1GctJetFinderBase::getHfSums | ( | ) | const [inline] |
Get the Hf tower Et sums and tower-over-threshold counts.
Definition at line 196 of file L1GctJetFinderBase.h.
References m_outputHfSums.
Referenced by L1GctJetLeafCard::process().
unsigned L1GctJetFinderBase::getHtmSumJetThreshold | ( | ) | const [inline] |
Definition at line 205 of file L1GctJetFinderBase.h.
References m_HtmSumJetThreshold.
{ return m_HtmSumJetThreshold; }
etHadType L1GctJetFinderBase::getHtSum | ( | ) | const [inline] |
Get the scalar sum of Ht summed over jets above threshold.
Definition at line 192 of file L1GctJetFinderBase.h.
References m_outputHtSum.
Referenced by L1GctJetLeafCard::process().
unsigned L1GctJetFinderBase::getHttSumJetThreshold | ( | ) | const [inline] |
Definition at line 204 of file L1GctJetFinderBase.h.
References m_HttSumJetThreshold.
{ return m_HttSumJetThreshold; }
htCompInternJfType L1GctJetFinderBase::getHxSum | ( | ) | const [inline] |
Get the x component of vector Ht summed over jets above threshold.
Definition at line 193 of file L1GctJetFinderBase.h.
References m_outputHxSum.
Referenced by L1GctJetLeafCard::process().
htCompInternJfType L1GctJetFinderBase::getHySum | ( | ) | const [inline] |
Get the y component of vector Ht summed over jets above threshold.
Definition at line 194 of file L1GctJetFinderBase.h.
References m_outputHySum.
Referenced by L1GctJetLeafCard::process().
RegionsVector L1GctJetFinderBase::getInputRegions | ( | ) | const [inline] |
Return input data.
Definition at line 162 of file L1GctJetFinderBase.h.
References m_inputRegions.
{ return m_inputRegions; }
std::vector< L1GctInternEtSum > L1GctJetFinderBase::getInternalEtSums | ( | ) | const |
get et sums in raw format - to be stored in the event
Definition at line 281 of file L1GctJetFinderBase.cc.
References L1GctProcessor::bxMin(), L1GctInternEtSum::fromEmulatorJetMissEt(), L1GctInternEtSum::fromEmulatorJetTotEt(), L1GctInternEtSum::fromEmulatorJetTotHt(), m_outputEtSumPipe, m_outputExSumPipe, m_outputEySumPipe, m_outputHtSumPipe, L1GctProcessor::numOfBx(), and query::result.
{ std::vector< L1GctInternEtSum > result; for (int bx=0; bx<numOfBx(); bx++) { result.push_back( L1GctInternEtSum::fromEmulatorJetTotEt ( m_outputEtSumPipe.contents.at(bx).value(), m_outputEtSumPipe.contents.at(bx).overFlow(), static_cast<int16_t> (bx-bxMin()) ) ); result.push_back( L1GctInternEtSum::fromEmulatorJetMissEt( m_outputExSumPipe.contents.at(bx).value(), m_outputExSumPipe.contents.at(bx).overFlow(), static_cast<int16_t> (bx-bxMin()) ) ); result.push_back( L1GctInternEtSum::fromEmulatorJetMissEt( m_outputEySumPipe.contents.at(bx).value(), m_outputEySumPipe.contents.at(bx).overFlow(), static_cast<int16_t> (bx-bxMin()) ) ); result.push_back( L1GctInternEtSum::fromEmulatorJetTotHt ( m_outputHtSumPipe.contents.at(bx).value(), m_outputHtSumPipe.contents.at(bx).overFlow(), static_cast<int16_t> (bx-bxMin()) ) ); } return result; }
std::vector< L1GctInternHtMiss > L1GctJetFinderBase::getInternalHtMiss | ( | ) | const |
Definition at line 301 of file L1GctJetFinderBase.cc.
References L1GctProcessor::bxMin(), L1GctInternHtMiss::emulatorJetMissHt(), m_outputHxSumPipe, m_outputHySumPipe, L1GctProcessor::numOfBx(), and query::result.
{ std::vector< L1GctInternHtMiss > result; for (int bx=0; bx<numOfBx(); bx++) { result.push_back( L1GctInternHtMiss::emulatorJetMissHt( m_outputHxSumPipe.contents.at(bx).value(), m_outputHySumPipe.contents.at(bx).value(), m_outputHxSumPipe.contents.at(bx).overFlow(), static_cast<int16_t> (bx-bxMin()) ) ); } return result; }
std::vector< L1GctInternJetData > L1GctJetFinderBase::getInternalJets | ( | ) | const |
get output jets in raw format - to be stored in the event
Definition at line 262 of file L1GctJetFinderBase.cc.
References L1GctProcessor::Pipeline< T >::contents, L1GctInternJetData::fromEmulator(), metsig::jet, m_jetEtCalLuts, m_outputJetsPipe, and query::result.
{ std::vector< L1GctInternJetData > result; for (RawJetVector::const_iterator jet=m_outputJetsPipe.contents.begin(); jet!=m_outputJetsPipe.contents.end(); jet++) { result.push_back( L1GctInternJetData::fromEmulator(jet->id(), jet->bx(), jet->calibratedEt(m_jetEtCalLuts.at(jet->rctEta())), jet->overFlow(), jet->tauVeto(), jet->hwEta(), jet->hwPhi(), jet->rank(m_jetEtCalLuts.at(jet->rctEta())) ) ); } return result; }
const lutPtrVector L1GctJetFinderBase::getJetEtCalLuts | ( | ) | const [inline] |
Return pointers to calibration LUTs.
Definition at line 184 of file L1GctJetFinderBase.h.
References m_jetEtCalLuts.
{ return m_jetEtCalLuts; }
JetVector L1GctJetFinderBase::getJets | ( | ) | const [inline] |
Get the located jets.
Definition at line 187 of file L1GctJetFinderBase.h.
References m_sortedJets.
Referenced by L1GctJetLeafCard::getOutputJetsA(), L1GctJetLeafCard::getOutputJetsB(), and L1GctJetLeafCard::getOutputJetsC().
RegionsVector L1GctJetFinderBase::getKeptProtoJets | ( | ) | const [inline] |
get protoJets kept
Definition at line 171 of file L1GctJetFinderBase.h.
References m_keptProtoJets.
{ return m_keptProtoJets; }
RawJetVector L1GctJetFinderBase::getRawJets | ( | ) | const [inline] |
get output jets in raw format
Definition at line 174 of file L1GctJetFinderBase.h.
References L1GctProcessor::Pipeline< T >::contents, and m_outputJetsPipe.
{ return m_outputJetsPipe.contents; }
RegionsVector L1GctJetFinderBase::getRcvdProtoJets | ( | ) | const [inline] |
get protoJets received from neighbour
Definition at line 168 of file L1GctJetFinderBase.h.
References m_rcvdProtoJets.
{ return m_rcvdProtoJets; }
RegionsVector L1GctJetFinderBase::getSentProtoJets | ( | ) | const [inline] |
get protoJets sent to neighbour
Definition at line 165 of file L1GctJetFinderBase.h.
References m_sentProtoJets.
{ return m_sentProtoJets; }
unsigned L1GctJetFinderBase::getTauIsolationThreshold | ( | ) | const [inline] |
Definition at line 203 of file L1GctJetFinderBase.h.
References m_tauIsolationThreshold.
{ return m_tauIsolationThreshold; }
unsigned L1GctJetFinderBase::getTauJetSeed | ( | ) | const [inline] |
Definition at line 201 of file L1GctJetFinderBase.h.
References m_TauJetSeed.
{ return m_TauJetSeed; }
virtual unsigned L1GctJetFinderBase::maxRegionsIn | ( | ) | const [inline, protected, virtual] |
End of event data ***
---------------------------------------------------------------------------------------
Reimplemented in L1GctHardwareJetFinder, L1GctNullJetFinder, L1GctSimpleJetFinder, and L1GctTdrJetFinder.
Definition at line 329 of file L1GctJetFinderBase.h.
References MAX_REGIONS_IN.
Referenced by resetProcessor(), and setupObjects().
{ return MAX_REGIONS_IN; }
virtual unsigned L1GctJetFinderBase::nCols | ( | ) | const [inline, protected, virtual] |
Reimplemented in L1GctHardwareJetFinder, L1GctNullJetFinder, L1GctSimpleJetFinder, and L1GctTdrJetFinder.
Definition at line 331 of file L1GctJetFinderBase.h.
References N_COLS.
Referenced by setInputRegion().
{ return N_COLS; }
virtual void L1GctJetFinderBase::process | ( | ) | [pure virtual] |
process the data, fill output buffers; to be filled in by derived jetFinders
Implements L1GctProcessor.
Implemented in L1GctHardwareJetFinder, L1GctNullJetFinder, L1GctSimpleJetFinder, and L1GctTdrJetFinder.
Referenced by L1GctJetLeafCard::process().
void L1GctJetFinderBase::resetPipelines | ( | ) | [protected, virtual] |
Implements L1GctProcessor.
Definition at line 200 of file L1GctJetFinderBase.cc.
References m_outputEtSumPipe, m_outputExSumPipe, m_outputEySumPipe, m_outputHtSumPipe, m_outputHxSumPipe, m_outputHySumPipe, m_outputJetsPipe, L1GctProcessor::numOfBx(), and L1GctProcessor::Pipeline< T >::reset().
{ m_outputJetsPipe.reset(numOfBx()); m_outputEtSumPipe.reset(numOfBx()); m_outputExSumPipe.reset(numOfBx()); m_outputEySumPipe.reset(numOfBx()); m_outputHtSumPipe.reset(numOfBx()); m_outputHxSumPipe.reset(numOfBx()); m_outputHySumPipe.reset(numOfBx()); }
void L1GctJetFinderBase::resetProcessor | ( | ) | [protected, virtual] |
Separate reset methods for the processor itself and any data stored in pipelines.
Implements L1GctProcessor.
Definition at line 174 of file L1GctJetFinderBase.cc.
References m_inputRegions, m_keptProtoJets, m_outputEtSum, m_outputExSum, m_outputEySum, m_outputHfSums, m_outputHtSum, m_outputHxSum, m_outputHySum, m_outputJets, m_rcvdProtoJets, m_sentProtoJets, m_sortedJets, MAX_JETS_OUT, maxRegionsIn(), and L1GctJetFinderBase::hfTowerSumsType::reset().
Referenced by L1GctNullJetFinder::fetchInput().
{ m_inputRegions.clear(); m_inputRegions.resize(this->maxRegionsIn()); m_outputJets.clear(); m_outputJets.resize(MAX_JETS_OUT); m_sortedJets.clear(); m_sortedJets.resize(MAX_JETS_OUT); m_sentProtoJets.clear(); m_sentProtoJets.resize(MAX_JETS_OUT); m_rcvdProtoJets.clear(); m_rcvdProtoJets.resize(MAX_JETS_OUT); m_keptProtoJets.clear(); m_keptProtoJets.resize(MAX_JETS_OUT); m_outputEtSum = 0; m_outputExSum = 0; m_outputEySum = 0; m_outputHtSum = 0; m_outputHxSum = 0; m_outputHySum = 0; m_outputHfSums.reset(); }
void L1GctJetFinderBase::setEnergySumMasks | ( | const L1GctChannelMask * | chmask | ) |
Set masks for energy summing.
Set et sum masks from ChannelMask object - needed to complete the setup.
Definition at line 121 of file L1GctJetFinderBase.cc.
References m_EtmMask, m_EttMask, m_gotChannelMask, m_HtmMask, m_HttMask, m_id, m_positiveEtaWheel, L1GctChannelMask::missingEtMask(), L1GctChannelMask::missingHtMask(), L1GctJetFinderParams::NUMBER_ETA_VALUES, L1GctChannelMask::totalEtMask(), and L1GctChannelMask::totalHtMask().
{ bool matchCheckEttAndEtm = true; if (chmask != 0) { static const unsigned N_ETA = L1GctJetFinderParams::NUMBER_ETA_VALUES; for (unsigned ieta=0; ieta<N_ETA; ++ieta) { unsigned globalEta = (m_positiveEtaWheel ? N_ETA+ieta : N_ETA - (ieta+1) ); m_EttMask[ieta] = chmask->totalEtMask(globalEta); m_EtmMask[ieta] = chmask->missingEtMask(globalEta); m_HttMask[ieta] = chmask->totalHtMask(globalEta); m_HtmMask[ieta] = chmask->missingHtMask(globalEta); matchCheckEttAndEtm &= (m_EttMask[ieta] == m_EtmMask[ieta]); } if (!matchCheckEttAndEtm) edm::LogWarning("L1GctSetupError") << "L1GctJetFinderBase::setEnergySumMasks() : In Jet Finder ID " << m_id << " setting eta-dependent masks for Et sums: you cannot have different masks for total and missing Et\n"; m_gotChannelMask = true; } }
void L1GctJetFinderBase::setInputRegion | ( | const L1CaloRegion & | region | ) |
Set input data.
Definition at line 235 of file L1GctJetFinderBase.cc.
References COL_OFFSET, i, m_id, m_inputRegions, m_minColThisJf, L1GctRegion::makeJfInputRegion(), N_EXTRA_REGIONS_ETA00, N_JF_PER_WHEEL, L1CaloRegionDetId::N_PHI, nCols(), L1CaloRegion::rctCrate(), L1CaloRegion::rctEta(), and L1CaloRegion::rctPhi().
{ static const unsigned NPHI = L1CaloRegionDetId::N_PHI; static const unsigned N_00 = N_EXTRA_REGIONS_ETA00; unsigned crate = region.rctCrate(); // Find the column for this region in a global (eta,phi) array // Note the column numbers here are not the same as region->gctPhi() // because the RCT crates are not numbered from phi=0. unsigned colAbsolute = (crate+1)*2 + region.rctPhi(); unsigned colRelative = ((colAbsolute+NPHI) - m_minColThisJf) % NPHI; if (colRelative < this->nCols()) { // We are in the right range in phi // Now check we are in the right wheel (positive or negative eta) if ( (crate/N_JF_PER_WHEEL) == (m_id/N_JF_PER_WHEEL) ) { unsigned i = colRelative*COL_OFFSET + N_00 + region.rctEta(); m_inputRegions.at(i) = L1GctRegion::makeJfInputRegion(region); } else { // Accept neighbouring regions from the other wheel if (region.rctEta() < N_00) { unsigned i = colRelative*COL_OFFSET + N_00 - (region.rctEta()+1); m_inputRegions.at(i) = L1GctRegion::makeJfInputRegion(region); } } } }
void L1GctJetFinderBase::setJetEtCalibrationLuts | ( | const lutPtrVector & | jfluts | ) |
Set pointer to calibration Lut - needed to complete the setup.
Definition at line 114 of file L1GctJetFinderBase.cc.
References m_gotJetEtCalLuts, m_jetEtCalLuts, and L1GctJetFinderParams::NUMBER_ETA_VALUES.
{ m_jetEtCalLuts = jfluts; m_gotJetEtCalLuts = (jfluts.size() >= L1GctJetFinderParams::NUMBER_ETA_VALUES); }
void L1GctJetFinderBase::setJetFinderParams | ( | const L1GctJetFinderParams * | jfpars | ) |
Set pointer to parameters - needed to complete the setup.
Definition at line 101 of file L1GctJetFinderBase.cc.
References L1GctJetFinderParams::getCenForJetEtaBoundary(), L1GctJetFinderParams::getCenJetEtSeedGct(), L1GctJetFinderParams::getForJetEtSeedGct(), L1GctJetFinderParams::getHtJetEtThresholdGct(), L1GctJetFinderParams::getMHtJetEtThresholdGct(), L1GctJetFinderParams::getTauIsoEtThresholdGct(), L1GctJetFinderParams::getTauJetEtSeedGct(), m_CenJetSeed, m_EtaBoundry, m_FwdJetSeed, m_gotJetFinderParams, m_HtmSumJetThreshold, m_HttSumJetThreshold, m_tauIsolationThreshold, and m_TauJetSeed.
{ m_CenJetSeed = jfpars->getCenJetEtSeedGct(); m_FwdJetSeed = jfpars->getForJetEtSeedGct(); m_TauJetSeed = jfpars->getTauJetEtSeedGct(); m_EtaBoundry = jfpars->getCenForJetEtaBoundary(); m_tauIsolationThreshold = jfpars->getTauIsoEtThresholdGct(); m_HttSumJetThreshold = jfpars->getHtJetEtThresholdGct(); m_HtmSumJetThreshold = jfpars->getMHtJetEtThresholdGct(); m_gotJetFinderParams = true; }
void L1GctJetFinderBase::setNeighbourJetFinders | ( | const std::vector< L1GctJetFinderBase * > & | neighbours | ) |
Set pointers to neighbours - needed to complete the setup.
Set pointers to neighbours.
Definition at line 66 of file L1GctJetFinderBase.cc.
References m_gotNeighbourPointers, m_id, m_neighbourJetFinders, and L1GctProcessor::m_verbose.
Referenced by L1GctJetLeafCard::setNeighbourLeafCards().
{ m_gotNeighbourPointers = true; if (neighbours.size()==2) { m_neighbourJetFinders = neighbours; } else { m_gotNeighbourPointers = false; if (m_verbose) { edm::LogWarning("L1GctSetupError") << "L1GctJetFinderBase::setNeighbourJetFinders() : In Jet Finder ID " << m_id << " size of input vector should be 2, but is in fact " << neighbours.size() << "\n"; } } if (m_neighbourJetFinders.at(0) == 0) { m_gotNeighbourPointers = false; if (m_verbose) { edm::LogWarning("L1GctSetupError") << "L1GctJetFinderBase::setNeighbourJetFinders() : In Jet Finder ID " << m_id << " first neighbour pointer is set to zero\n"; } } if (m_neighbourJetFinders.at(1) == 0) { m_gotNeighbourPointers = false; if (m_verbose) { edm::LogWarning("L1GctSetupError") << "L1GctJetFinderBase::setNeighbourJetFinders() : In Jet Finder ID " << m_id << " second neighbour pointer is set to zero\n"; } } if (!m_gotNeighbourPointers && m_verbose) { edm::LogError("L1GctSetupError") << "Jet Finder ID " << m_id << " has incorrect assignment of neighbour pointers"; } }
void L1GctJetFinderBase::setupObjects | ( | ) | [protected, virtual] |
Initialise inputs with null objects for the correct bunch crossing if required.
Initialise inputs with null objects for the correct bunch crossing If no other input candidates "arrive", we have the correct bunch crossing to propagate through the processing.
Create a null input region with the right bunch crossing, and fill the input candidates with copies of this.
The same for the lists of pre-clustered jets passed between neighbour jetFinders
The same for the lists of output jets
Implements L1GctProcessor.
Definition at line 214 of file L1GctJetFinderBase.cc.
References L1GctProcessor::bxAbs(), m_inputRegions, m_keptProtoJets, m_outputJets, m_rcvdProtoJets, m_sentProtoJets, MAX_JETS_OUT, maxRegionsIn(), L1GctJet::setBx(), and L1CaloRegion::setBx().
Referenced by L1GctNullJetFinder::fetchInput().
{ L1GctRegion tempRgn; tempRgn.setBx(bxAbs()); m_inputRegions.assign(this->maxRegionsIn(), tempRgn); m_sentProtoJets.assign(MAX_JETS_OUT, tempRgn); m_rcvdProtoJets.assign(MAX_JETS_OUT, tempRgn); m_keptProtoJets.assign(MAX_JETS_OUT, tempRgn); L1GctJet tempJet; tempJet.setBx(bxAbs()); m_outputJets.assign(MAX_JETS_OUT, tempJet); }
bool L1GctJetFinderBase::setupOk | ( | ) | const [inline] |
Check setup is Ok.
Reimplemented from L1GctProcessor.
Definition at line 143 of file L1GctJetFinderBase.h.
References m_gotChannelMask, m_gotJetEtCalLuts, m_gotJetFinderParams, m_gotNeighbourPointers, and m_idInRange.
Referenced by L1GctHardwareJetFinder::fetchInput(), L1GctHardwareJetFinder::process(), L1GctNullJetFinder::process(), L1GctTdrJetFinder::process(), and L1GctJetLeafCard::setupOk().
{ return m_idInRange && m_gotNeighbourPointers && m_gotJetFinderParams && m_gotJetEtCalLuts && m_gotChannelMask; }
void L1GctJetFinderBase::setupTauAlgo | ( | const bool | useImprovedAlgo, |
const bool | ignoreVetoBitsForIsolation | ||
) | [inline] |
Setup the tau algorithm parameters.
Definition at line 137 of file L1GctJetFinderBase.h.
References m_ignoreTauVetoBitsForIsolation, and m_useImprovedTauAlgo.
{ m_useImprovedTauAlgo = useImprovedAlgo; m_ignoreTauVetoBitsForIsolation = ignoreVetoBitsForIsolation; }
void L1GctJetFinderBase::sortJets | ( | ) | [protected] |
Sort the found jets. All jetFinders should call this in process().
Definition at line 342 of file L1GctJetFinderBase.cc.
References L1GctProcessor::bxRel(), L1GctJetSorter::getSortedJets(), j, m_jetEtCalLuts, m_outputJets, m_outputJetsPipe, m_sortedJets, MAX_JETS_OUT, and L1GctProcessor::Pipeline< T >::store().
Referenced by L1GctHardwareJetFinder::process(), and L1GctTdrJetFinder::process().
{ JetVector tempJets(MAX_JETS_OUT); for (unsigned j=0; j<MAX_JETS_OUT; j++) { tempJets.at(j) = m_outputJets.at(j).jetCand(m_jetEtCalLuts); } // Sort the jets L1GctJetSorter jSorter(tempJets); m_sortedJets = jSorter.getSortedJets(); //store jets in "pipeline memory" for checking m_outputJetsPipe.store(m_outputJets, bxRel()); }
std::ostream& operator<< | ( | std::ostream & | os, |
const L1GctJetFinderBase & | algo | ||
) | [friend] |
Overload << operator.
Definition at line 144 of file L1GctJetFinderBase.cc.
{ using std::endl; os << "ID = " << algo.m_id << endl; os << "Calibration lut pointers stored for " << algo.m_jetEtCalLuts.size() << " eta bins" << endl; for (unsigned ieta=0; ieta<algo.m_jetEtCalLuts.size(); ieta++) { os << "Eta bin " << ieta << ", JetEtCalibrationLut* = " << algo.m_jetEtCalLuts.at(ieta) << endl; } os << "No of input regions " << algo.m_inputRegions.size() << endl; // for(unsigned i=0; i < algo.m_inputRegions.size(); ++i) // { // os << algo.m_inputRegions.at(i); // } os << "No of output jets " << algo.m_outputJets.size() << endl; // for(unsigned i=0; i < algo.m_outputJets.size(); ++i) // { // os << algo.m_outputJets.at(i); // } os << "Output total scalar Et " << algo.m_outputEtSum << endl; os << "Output vector Et x component " << algo.m_outputExSum << endl; os << "Output vector Et y component " << algo.m_outputEySum << endl; os << "Output total scalar Ht " << algo.m_outputHtSum << endl; os << "Output vector Ht x component " << algo.m_outputHxSum << endl; os << "Output vector Ht y component " << algo.m_outputHySum << endl; os << endl; return os; }
const unsigned int L1GctJetFinderBase::CENTRAL_COL0 = 0 [static, private] |
Reimplemented in L1GctHardwareJetFinder, L1GctNullJetFinder, L1GctSimpleJetFinder, and L1GctTdrJetFinder.
Definition at line 361 of file L1GctJetFinderBase.h.
Referenced by centralCol0().
const unsigned int L1GctJetFinderBase::COL_OFFSET = L1GctJetFinderParams::NUMBER_ETA_VALUES+N_EXTRA_REGIONS_ETA00 [static] |
The index offset between columns.
Definition at line 115 of file L1GctJetFinderBase.h.
Referenced by calcHfSums(), L1GctTdrJetFinder::calcJetEnergy(), L1GctTdrJetFinder::calcJetTauVeto(), L1GctTdrJetFinder::detectJet(), doEtSums(), L1GctHardwareJetFinder::findFinalClusters(), L1GctTdrJetFinder::findJets(), L1GctHardwareJetFinder::findLocalMaxima(), L1GctPrintLuts::L1GctPrintLuts(), L1GctHardwareJetFinder::makeProtoJet(), and setInputRegion().
unsigned L1GctJetFinderBase::m_CenJetSeed [protected] |
---------------------------------------------------------------------------------------
Setup parameters for this jetfinder instance ***
jetFinder parameters (from EventSetup)
Definition at line 256 of file L1GctJetFinderBase.h.
Referenced by L1GctHardwareJetFinder::convertClustersToOutputJets(), L1GctHardwareJetFinder::convertClustersToProtoJets(), L1GctHardwareJetFinder::findFinalClusters(), L1GctHardwareJetFinder::findLocalMaxima(), getCenJetSeed(), and setJetFinderParams().
unsigned L1GctJetFinderBase::m_EtaBoundry [protected] |
Definition at line 259 of file L1GctJetFinderBase.h.
Referenced by L1GctHardwareJetFinder::convertClustersToOutputJets(), L1GctHardwareJetFinder::convertClustersToProtoJets(), L1GctHardwareJetFinder::findFinalClusters(), L1GctHardwareJetFinder::findLocalMaxima(), getEtaBoundry(), and setJetFinderParams().
bool L1GctJetFinderBase::m_EtmMask[11] [protected] |
Definition at line 286 of file L1GctJetFinderBase.h.
Referenced by setEnergySumMasks().
bool L1GctJetFinderBase::m_EttMask[11] [protected] |
Definition at line 285 of file L1GctJetFinderBase.h.
Referenced by doEtSums(), and setEnergySumMasks().
unsigned L1GctJetFinderBase::m_FwdJetSeed [protected] |
Definition at line 257 of file L1GctJetFinderBase.h.
Referenced by L1GctHardwareJetFinder::convertClustersToOutputJets(), L1GctHardwareJetFinder::convertClustersToProtoJets(), L1GctHardwareJetFinder::findFinalClusters(), L1GctHardwareJetFinder::findLocalMaxima(), getFwdJetSeed(), and setJetFinderParams().
bool L1GctJetFinderBase::m_gotChannelMask [protected] |
Remember whether channel mask have been stored.
Definition at line 240 of file L1GctJetFinderBase.h.
Referenced by setEnergySumMasks(), and setupOk().
bool L1GctJetFinderBase::m_gotJetEtCalLuts [protected] |
Remember whether jet Et calibration Lut pointers have been stored.
Definition at line 237 of file L1GctJetFinderBase.h.
Referenced by setJetEtCalibrationLuts(), and setupOk().
bool L1GctJetFinderBase::m_gotJetFinderParams [protected] |
Remember whether jetfinder parameters have been stored.
Definition at line 234 of file L1GctJetFinderBase.h.
Referenced by setJetFinderParams(), and setupOk().
bool L1GctJetFinderBase::m_gotNeighbourPointers [protected] |
Remember whether the neighbour pointers have been stored.
Definition at line 231 of file L1GctJetFinderBase.h.
Referenced by setNeighbourJetFinders(), and setupOk().
bool L1GctJetFinderBase::m_HtmMask[11] [protected] |
Definition at line 288 of file L1GctJetFinderBase.h.
Referenced by doHtSums(), and setEnergySumMasks().
unsigned L1GctJetFinderBase::m_HtmSumJetThreshold [protected] |
Definition at line 282 of file L1GctJetFinderBase.h.
Referenced by doHtSums(), getHtmSumJetThreshold(), and setJetFinderParams().
bool L1GctJetFinderBase::m_HttMask[11] [protected] |
Definition at line 287 of file L1GctJetFinderBase.h.
Referenced by doHtSums(), and setEnergySumMasks().
unsigned L1GctJetFinderBase::m_HttSumJetThreshold [protected] |
Definition at line 281 of file L1GctJetFinderBase.h.
Referenced by doHtSums(), getHttSumJetThreshold(), and setJetFinderParams().
int L1GctJetFinderBase::m_id [protected] |
algo ID
Definition at line 222 of file L1GctJetFinderBase.h.
Referenced by doEtSums(), doHtSums(), L1GctHardwareJetFinder::L1GctHardwareJetFinder(), L1GctJetFinderBase(), L1GctTdrJetFinder::L1GctTdrJetFinder(), operator<<(), setEnergySumMasks(), setInputRegion(), and setNeighbourJetFinders().
bool L1GctJetFinderBase::m_idInRange [protected] |
Remember whether range check on the input ID was ok.
Definition at line 228 of file L1GctJetFinderBase.h.
Referenced by L1GctJetFinderBase(), and setupOk().
bool L1GctJetFinderBase::m_ignoreTauVetoBitsForIsolation [protected] |
Definition at line 274 of file L1GctJetFinderBase.h.
Referenced by L1GctHardwareJetFinder::findFinalClusters(), L1GctHardwareJetFinder::makeProtoJet(), and setupTauAlgo().
RegionsVector L1GctJetFinderBase::m_inputRegions [protected] |
End of setup parameters ***
---------------------------------------------------------------------------------------
Start of event data ***
input data required for jet finding
Definition at line 298 of file L1GctJetFinderBase.h.
Referenced by calcHfSums(), L1GctTdrJetFinder::calcJetEnergy(), L1GctTdrJetFinder::calcJetPosition(), L1GctTdrJetFinder::calcJetTauVeto(), L1GctTdrJetFinder::detectJet(), doEtSums(), L1GctHardwareJetFinder::findFinalClusters(), L1GctTdrJetFinder::findJets(), L1GctHardwareJetFinder::findLocalMaxima(), getInputRegions(), L1GctHardwareJetFinder::makeProtoJet(), operator<<(), resetProcessor(), setInputRegion(), and setupObjects().
lutPtrVector L1GctJetFinderBase::m_jetEtCalLuts [protected] |
Jet Et Conversion LUT pointer.
Definition at line 262 of file L1GctJetFinderBase.h.
Referenced by doHtSums(), getInternalJets(), getJetEtCalLuts(), operator<<(), setJetEtCalibrationLuts(), and sortJets().
RegionsVector L1GctJetFinderBase::m_keptProtoJets [protected] |
List of pre-clustered jets retained locally as input to the final clustering.
Definition at line 305 of file L1GctJetFinderBase.h.
Referenced by L1GctHardwareJetFinder::convertClustersToProtoJets(), L1GctHardwareJetFinder::findFinalClusters(), getKeptProtoJets(), resetProcessor(), and setupObjects().
unsigned L1GctJetFinderBase::m_minColThisJf [protected] |
parameter to determine which Regions belong in our acceptance
Definition at line 249 of file L1GctJetFinderBase.h.
Referenced by L1GctHardwareJetFinder::L1GctHardwareJetFinder(), L1GctTdrJetFinder::L1GctTdrJetFinder(), and setInputRegion().
std::vector<L1GctJetFinderBase*> L1GctJetFinderBase::m_neighbourJetFinders [protected] |
Store neighbour pointers.
Definition at line 225 of file L1GctJetFinderBase.h.
Referenced by fetchProtoJetsFromNeighbour(), and setNeighbourJetFinders().
etTotalType L1GctJetFinderBase::m_outputEtSum [protected] |
output Et strip sums and Ht - refactored
Definition at line 312 of file L1GctJetFinderBase.h.
Referenced by doEtSums(), getEtSum(), operator<<(), and resetProcessor().
Pipeline< etTotalType > L1GctJetFinderBase::m_outputEtSumPipe [private] |
"Pipeline memories" for energy sums
Definition at line 367 of file L1GctJetFinderBase.h.
Referenced by doEtSums(), getInternalEtSums(), and resetPipelines().
etCompInternJfType L1GctJetFinderBase::m_outputExSum [protected] |
Definition at line 313 of file L1GctJetFinderBase.h.
Referenced by doEtSums(), getExSum(), operator<<(), and resetProcessor().
Definition at line 368 of file L1GctJetFinderBase.h.
Referenced by doEtSums(), getInternalEtSums(), and resetPipelines().
etCompInternJfType L1GctJetFinderBase::m_outputEySum [protected] |
Definition at line 314 of file L1GctJetFinderBase.h.
Referenced by doEtSums(), getEySum(), operator<<(), and resetProcessor().
Definition at line 369 of file L1GctJetFinderBase.h.
Referenced by doEtSums(), getInternalEtSums(), and resetPipelines().
hfTowerSumsType L1GctJetFinderBase::m_outputHfSums [protected] |
Definition at line 319 of file L1GctJetFinderBase.h.
Referenced by doEnergySums(), getHfSums(), and resetProcessor().
etHadType L1GctJetFinderBase::m_outputHtSum [protected] |
Definition at line 315 of file L1GctJetFinderBase.h.
Referenced by doHtSums(), getHtSum(), operator<<(), and resetProcessor().
Pipeline< etHadType > L1GctJetFinderBase::m_outputHtSumPipe [private] |
Definition at line 370 of file L1GctJetFinderBase.h.
Referenced by doHtSums(), getInternalEtSums(), and resetPipelines().
htCompInternJfType L1GctJetFinderBase::m_outputHxSum [protected] |
Definition at line 316 of file L1GctJetFinderBase.h.
Referenced by doHtSums(), getHxSum(), operator<<(), and resetProcessor().
Definition at line 371 of file L1GctJetFinderBase.h.
Referenced by doHtSums(), getInternalHtMiss(), and resetPipelines().
htCompInternJfType L1GctJetFinderBase::m_outputHySum [protected] |
Definition at line 317 of file L1GctJetFinderBase.h.
Referenced by doHtSums(), getHySum(), operator<<(), and resetProcessor().
Definition at line 372 of file L1GctJetFinderBase.h.
Referenced by doHtSums(), getInternalHtMiss(), and resetPipelines().
RawJetVector L1GctJetFinderBase::m_outputJets [protected] |
output jets
Definition at line 308 of file L1GctJetFinderBase.h.
Referenced by L1GctHardwareJetFinder::convertClustersToOutputJets(), doHtSums(), L1GctTdrJetFinder::findJets(), operator<<(), resetProcessor(), setupObjects(), and sortJets().
Output jets "pipeline memory" for checking.
Definition at line 364 of file L1GctJetFinderBase.h.
Referenced by getInternalJets(), getRawJets(), resetPipelines(), and sortJets().
bool L1GctJetFinderBase::m_positiveEtaWheel [protected] |
Geometry parameters ***
Positive/negative eta flag
Definition at line 246 of file L1GctJetFinderBase.h.
Referenced by L1GctHardwareJetFinder::findLocalMaxima(), L1GctHardwareJetFinder::makeProtoJet(), and setEnergySumMasks().
RegionsVector L1GctJetFinderBase::m_rcvdProtoJets [protected] |
List of pre-clustered jets received from neighbour before the final stage of clustering.
Definition at line 303 of file L1GctJetFinderBase.h.
Referenced by fetchProtoJetsFromNeighbour(), L1GctHardwareJetFinder::findFinalClusters(), getRcvdProtoJets(), resetProcessor(), and setupObjects().
RegionsVector L1GctJetFinderBase::m_sentProtoJets [protected] |
List of pre-clustered jets to be sent to neighbour after the first stage of clustering.
Definition at line 301 of file L1GctJetFinderBase.h.
Referenced by L1GctHardwareJetFinder::convertClustersToProtoJets(), getSentProtoJets(), resetProcessor(), and setupObjects().
JetVector L1GctJetFinderBase::m_sortedJets [protected] |
Definition at line 309 of file L1GctJetFinderBase.h.
Referenced by getJets(), resetProcessor(), and sortJets().
unsigned L1GctJetFinderBase::m_tauIsolationThreshold [protected] |
Definition at line 278 of file L1GctJetFinderBase.h.
Referenced by L1GctHardwareJetFinder::findFinalClusters(), getTauIsolationThreshold(), L1GctHardwareJetFinder::makeProtoJet(), and setJetFinderParams().
unsigned L1GctJetFinderBase::m_TauJetSeed [protected] |
Definition at line 258 of file L1GctJetFinderBase.h.
Referenced by getTauJetSeed(), and setJetFinderParams().
bool L1GctJetFinderBase::m_useImprovedTauAlgo [protected] |
Setup parameters for the tau jet algorithm.
Definition at line 267 of file L1GctJetFinderBase.h.
Referenced by L1GctHardwareJetFinder::findFinalClusters(), L1GctHardwareJetFinder::makeProtoJet(), and setupTauAlgo().
const unsigned int L1GctJetFinderBase::MAX_JETS_OUT = 6 [static] |
Max of 6 jets found per jetfinder in a 2*11 search area.
Definition at line 114 of file L1GctJetFinderBase.h.
Referenced by L1GctHardwareJetFinder::convertClustersToOutputJets(), L1GctHardwareJetFinder::convertClustersToProtoJets(), doHtSums(), fetchProtoJetsFromNeighbour(), L1GctHardwareJetFinder::findFinalClusters(), L1GctTdrJetFinder::findJets(), L1GctHardwareJetFinder::findLocalMaxima(), L1GctHardwareJetFinder::findProtoClusters(), resetProcessor(), setupObjects(), and sortJets().
const unsigned int L1GctJetFinderBase::MAX_REGIONS_IN = L1GctJetFinderBase::COL_OFFSET*L1GctJetFinderBase::N_COLS [static, private] |
The real jetFinders must define these constants.
Dependent on number of rows and columns.
Reimplemented in L1GctHardwareJetFinder, L1GctNullJetFinder, L1GctSimpleJetFinder, and L1GctTdrJetFinder.
Definition at line 359 of file L1GctJetFinderBase.h.
Referenced by maxRegionsIn().
const unsigned int L1GctJetFinderBase::N_COLS = 2 [static, private] |
Reimplemented in L1GctHardwareJetFinder, L1GctNullJetFinder, L1GctSimpleJetFinder, and L1GctTdrJetFinder.
Definition at line 360 of file L1GctJetFinderBase.h.
Referenced by nCols().
const unsigned int L1GctJetFinderBase::N_EXTRA_REGIONS_ETA00 = 2 [static] |
Number of additional regions to process on the "wrong" side of eta=0 (determines COL_OFFSET)
Definition at line 117 of file L1GctJetFinderBase.h.
Referenced by doEtSums(), L1GctHardwareJetFinder::findFinalClusters(), L1GctHardwareJetFinder::makeProtoJet(), and setInputRegion().
const unsigned int L1GctJetFinderBase::N_JF_PER_WHEEL = ((L1CaloRegionDetId::N_PHI)/2) [static] |
No of jetFinders per Wheel.
Definition at line 116 of file L1GctJetFinderBase.h.
Referenced by setInputRegion().