CMS 3D CMS Logo

Classes | Public Types | Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Static Private Attributes | Friends

L1GctJetFinderBase Class Reference

Base class to allow implementation of jetFinder algorithms. More...

#include <L1GctJetFinderBase.h>

Inheritance diagram for L1GctJetFinderBase:
L1GctProcessor L1GctHardwareJetFinder L1GctNullJetFinder L1GctSimpleJetFinder L1GctTdrJetFinder

List of all members.

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< 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

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< L1GctInternEtSumgetInternalEtSums () const
 get et sums in raw format - to be stored in the event
std::vector< L1GctInternHtMissgetInternalHtMiss () const
std::vector< L1GctInternJetDatagetInternalJets () 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 &region)
 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< etTotalTypem_outputEtSumPipe
 "Pipeline memories" for energy sums
Pipeline< etCompInternJfTypem_outputExSumPipe
Pipeline< etCompInternJfTypem_outputEySumPipe
Pipeline< etHadTypem_outputHtSumPipe
Pipeline< htCompInternJfTypem_outputHxSumPipe
Pipeline< htCompInternJfTypem_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.

Detailed Description

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.


Member Typedef Documentation

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.

Definition at line 58 of file L1GctJetFinderBase.h.

Definition at line 110 of file L1GctJetFinderBase.h.

Definition at line 111 of file L1GctJetFinderBase.h.

Definition at line 59 of file L1GctJetFinderBase.h.

Definition at line 57 of file L1GctJetFinderBase.h.

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.


Member Enumeration Documentation

different ways of getting the neighbour data

Enumerator:
TOP 
BOT 
TOPBOT 

Definition at line 219 of file L1GctJetFinderBase.h.

{ TOP, BOT, TOPBOT };
Enumerator:
etTotalMaxValue 
htTotalMaxValue 

Definition at line 65 of file L1GctJetFinderBase.h.


Constructor & Destructor Documentation

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.

{
}

Member Function Documentation

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());
}
template<int kBitsInput, int kBitsOutput>
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.

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.

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]
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.

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.

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]
void L1GctJetFinderBase::resetProcessor ( ) [protected, virtual]
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.

void L1GctJetFinderBase::setJetFinderParams ( const L1GctJetFinderParams jfpars)
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]
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());
}

Friends And Related Function Documentation

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;
}

Member Data Documentation

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().

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]
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]

Remember whether channel mask have been stored.

Definition at line 240 of file L1GctJetFinderBase.h.

Referenced by setEnergySumMasks(), and setupOk().

Remember whether jet Et calibration Lut pointers have been stored.

Definition at line 237 of file L1GctJetFinderBase.h.

Referenced by setJetEtCalibrationLuts(), and setupOk().

Remember whether jetfinder parameters have been stored.

Definition at line 234 of file L1GctJetFinderBase.h.

Referenced by setJetFinderParams(), and setupOk().

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().

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().

Definition at line 281 of file L1GctJetFinderBase.h.

Referenced by doHtSums(), getHttSumJetThreshold(), and setJetFinderParams().

int L1GctJetFinderBase::m_id [protected]

Remember whether range check on the input ID was ok.

Definition at line 228 of file L1GctJetFinderBase.h.

Referenced by L1GctJetFinderBase(), and setupOk().

Jet Et Conversion LUT pointer.

Definition at line 262 of file L1GctJetFinderBase.h.

Referenced by doHtSums(), getInternalJets(), getJetEtCalLuts(), operator<<(), setJetEtCalibrationLuts(), and sortJets().

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().

Store neighbour pointers.

Definition at line 225 of file L1GctJetFinderBase.h.

Referenced by fetchProtoJetsFromNeighbour(), and setNeighbourJetFinders().

output Et strip sums and Ht - refactored

Definition at line 312 of file L1GctJetFinderBase.h.

Referenced by doEtSums(), getEtSum(), operator<<(), and resetProcessor().

"Pipeline memories" for energy sums

Definition at line 367 of file L1GctJetFinderBase.h.

Referenced by doEtSums(), getInternalEtSums(), and resetPipelines().

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().

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().

Definition at line 319 of file L1GctJetFinderBase.h.

Referenced by doEnergySums(), getHfSums(), and resetProcessor().

Definition at line 315 of file L1GctJetFinderBase.h.

Referenced by doHtSums(), getHtSum(), operator<<(), and resetProcessor().

Definition at line 370 of file L1GctJetFinderBase.h.

Referenced by doHtSums(), getInternalEtSums(), and resetPipelines().

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().

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().

Output jets "pipeline memory" for checking.

Definition at line 364 of file L1GctJetFinderBase.h.

Referenced by getInternalJets(), getRawJets(), resetPipelines(), and sortJets().

Geometry parameters ***

Positive/negative eta flag

Definition at line 246 of file L1GctJetFinderBase.h.

Referenced by L1GctHardwareJetFinder::findLocalMaxima(), L1GctHardwareJetFinder::makeProtoJet(), and setEnergySumMasks().

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().

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().

Definition at line 309 of file L1GctJetFinderBase.h.

Referenced by getJets(), resetProcessor(), and sortJets().

unsigned L1GctJetFinderBase::m_TauJetSeed [protected]

Definition at line 258 of file L1GctJetFinderBase.h.

Referenced by getTauJetSeed(), and setJetFinderParams().

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]

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().