CMS 3D CMS Logo

L1GctJetLeafCard Class Reference

#include <L1Trigger/GlobalCaloTrigger/interface/L1GctJetLeafCard.h>

Inheritance diagram for L1GctJetLeafCard:

L1GctProcessor

List of all members.

Public Types

enum  { etComponentSize = 18 }
typedef L1GctTwosComplement
< etComponentSize > 
etComponentType
typedef L1GctUnsignedInt
< L1GctEtHad::kEtHadNBits > 
etHadType
typedef L1GctUnsignedInt
< L1GctEtMiss::kEtMissPhiNBits > 
etMissPhiType
typedef L1GctUnsignedInt
< L1GctEtMiss::kEtMissNBits > 
etMissType
typedef L1GctUnsignedInt
< L1GctEtTotal::kEtTotalNBits > 
etTotalType
typedef
L1GctJetFinderBase::hfTowerSumsType 
hfTowerSumsType
enum  jetFinderType { tdrJetFinder, hardwareJetFinder }

Public Member Functions

virtual void fetchInput ()
 set the input buffers
std::vector< etTotalTypegetAllOutputEt () const
 get the Et output history
std::vector< etComponentTypegetAllOutputEx () const
 Bunch crossing history acces methods get the Ex output history.
std::vector< etComponentTypegetAllOutputEy () const
 get the Ey output history
std::vector< hfTowerSumsTypegetAllOutputHfSums () const
std::vector< etHadTypegetAllOutputHt () const
std::vector< etComponentTypegetAllOutputHx () const
 get the output Ht components history
std::vector< etComponentTypegetAllOutputHy () const
L1GctJetFinderBasegetJetFinderA () const
 get pointers to associated jetfinders
L1GctJetFinderBasegetJetFinderB () const
L1GctJetFinderBasegetJetFinderC () const
etTotalType getOutputEt () const
 get the Et output
etComponentType getOutputEx () const
 get the Ex output
etComponentType getOutputEy () const
 get the Ey output
hfTowerSumsType getOutputHfSums () const
etHadType getOutputHt () const
etComponentType getOutputHx () const
 get the output Ht components
etComponentType getOutputHy () const
std::vector< L1GctJetCandgetOutputJetsA () const
 Output jetfinder A jets (lowest jetFinder in phi).
std::vector< L1GctJetCandgetOutputJetsB () const
 Output jetfinder B jets (middle jetFinder in phi).
std::vector< L1GctJetCandgetOutputJetsC () const
 Ouptut jetfinder C jets (highest jetFinder in phi).
 L1GctJetLeafCard (int id, int iphi, jetFinderType jfType=tdrJetFinder)
virtual void process ()
 process the data and set outputs
void reset ()
 clear internal buffers
void setBxRange (const int firstBx, const int numberOfBx)
 define the bunch crossing range to process
void setNeighbourLeafCards (std::vector< L1GctJetLeafCard * > neighbours)
 set pointers to neighbours - needed to complete the setup
void setNextBx (const int bx)
 partially clear buffers
bool setupOk () const
 Check setup is Ok.
 ~L1GctJetLeafCard ()

Static Public Attributes

static const int MAX_JET_FINDERS = 3
 Number of jetfinders per jet leaf card.

Protected Member Functions

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.

Private Member Functions

etComponentType etValueForJetFinder (const etTotalType etStrip0, const unsigned fact0, const etTotalType etStrip1, const unsigned fact1) const
etComponentType exComponent (const etTotalType etStrip0, const etTotalType etStrip1, const unsigned jphi) const
etComponentType eyComponent (const etTotalType etStrip0, const etTotalType etStrip1, const unsigned jphi) const

Private Attributes

bool m_ctorInputOk
etTotalType m_etSum
Pipeline< etTotalTypem_etSumPipe
etComponentType m_exSum
Pipeline< etComponentTypem_exSumPipe
etComponentType m_eySum
Pipeline< etComponentTypem_eySumPipe
hfTowerSumsType m_hfSums
Pipeline< hfTowerSumsTypem_hfSumsPipe
etHadType m_htSum
Pipeline< etHadTypem_htSumPipe
etComponentType m_hxSum
Pipeline< etComponentTypem_hxSumPipe
etComponentType m_hySum
Pipeline< etComponentTypem_hySumPipe
int m_id
L1GctJetFinderBasem_jetFinderA
 lowest jetFinder in phi
L1GctJetFinderBasem_jetFinderB
 middle jetFinder in phi
L1GctJetFinderBasem_jetFinderC
 highest jetFinder in phi
jetFinderType m_whichJetFinder
int phiPosition

Friends

std::ostream & operator<< (std::ostream &os, const L1GctJetLeafCard &card)
 Overload << operator.


Detailed Description

Definition at line 28 of file L1GctJetLeafCard.h.


Member Typedef Documentation

typedef L1GctTwosComplement<etComponentSize> L1GctJetLeafCard::etComponentType

Definition at line 45 of file L1GctJetLeafCard.h.

typedef L1GctUnsignedInt< L1GctEtHad::kEtHadNBits > L1GctJetLeafCard::etHadType

Definition at line 39 of file L1GctJetLeafCard.h.

typedef L1GctUnsignedInt< L1GctEtMiss::kEtMissPhiNBits > L1GctJetLeafCard::etMissPhiType

Definition at line 41 of file L1GctJetLeafCard.h.

typedef L1GctUnsignedInt< L1GctEtMiss::kEtMissNBits > L1GctJetLeafCard::etMissType

Definition at line 40 of file L1GctJetLeafCard.h.

typedef L1GctUnsignedInt< L1GctEtTotal::kEtTotalNBits > L1GctJetLeafCard::etTotalType

Definition at line 38 of file L1GctJetLeafCard.h.

typedef L1GctJetFinderBase::hfTowerSumsType L1GctJetLeafCard::hfTowerSumsType

Definition at line 47 of file L1GctJetLeafCard.h.


Member Enumeration Documentation

anonymous enum

Enumerator:
etComponentSize 

Definition at line 44 of file L1GctJetLeafCard.h.

00044 { etComponentSize=18 };

enum L1GctJetLeafCard::jetFinderType

Enumerator:
tdrJetFinder 
hardwareJetFinder 

Definition at line 32 of file L1GctJetLeafCard.h.


Constructor & Destructor Documentation

L1GctJetLeafCard::L1GctJetLeafCard ( int  id,
int  iphi,
jetFinderType  jfType = tdrJetFinder 
)

Definition at line 14 of file L1GctJetLeafCard.cc.

References hardwareJetFinder, m_ctorInputOk, m_id, m_jetFinderA, m_jetFinderB, m_jetFinderC, L1GctProcessor::m_verbose, m_whichJetFinder, phiPosition, and tdrJetFinder.

00014                                                                         :
00015   L1GctProcessor(),
00016   m_id(id),
00017   m_whichJetFinder(jfType),
00018   phiPosition(iphi),
00019   m_exSum(0), m_eySum(0),
00020   m_hxSum(0), m_hySum(0),
00021   m_etSum(0), m_htSum(0),
00022   m_hfSums(),
00023   m_exSumPipe(), m_eySumPipe(),
00024   m_hxSumPipe(), m_hySumPipe(),
00025   m_etSumPipe(), m_htSumPipe(),
00026   m_hfSumsPipe(),
00027   m_ctorInputOk(true)
00028 {
00029   //Check jetLeafCard setup
00030   if(m_id < 0 || m_id > 5)
00031     {
00032       m_ctorInputOk = false;
00033       if (m_verbose) {
00034         edm::LogWarning("L1GctSetupError")
00035           << "L1GctJetLeafCard::L1GctJetLeafCard() : Jet Leaf Card ID " << m_id << " has been incorrectly constructed!\n"
00036           << "ID number should be between the range of 0 to 5\n";
00037       } 
00038     }
00039   
00040   //iphi is redundant
00041   if(phiPosition != m_id%3)
00042     {
00043       m_ctorInputOk = false;
00044       if (m_verbose) {
00045         edm::LogWarning("L1GctSetupError")
00046           << "L1GctJetLeafCard::L1GctJetLeafCard() : Jet Leaf Card ID " << m_id << " has been incorrectly constructed!\n"
00047           << "Argument iphi is " << phiPosition << ", should be " << (m_id%3) << " for this ID value \n";
00048       } 
00049     }
00050   
00051   switch (m_whichJetFinder) {
00052   case tdrJetFinder :
00053     m_jetFinderA = new L1GctTdrJetFinder( 3*id );
00054     m_jetFinderB = new L1GctTdrJetFinder(3*id+1);
00055     m_jetFinderC = new L1GctTdrJetFinder(3*id+2);
00056     break;
00057 
00058   case hardwareJetFinder :
00059     m_jetFinderA = new L1GctHardwareJetFinder( 3*id );
00060     m_jetFinderB = new L1GctHardwareJetFinder(3*id+1);
00061     m_jetFinderC = new L1GctHardwareJetFinder(3*id+2);
00062     break;
00063 
00064   default :
00065 
00066     m_ctorInputOk = false;
00067     if (m_verbose) {
00068       edm::LogWarning("L1GctSetupError")
00069         << "L1GctJetLeafCard::L1GctJetLeafCard() : Jet Leaf Card ID " << m_id << " has been incorrectly constructed!\n"
00070         << "Unrecognised jetFinder type " << m_whichJetFinder << ", cannot setup jetFinders\n";
00071     }
00072 
00073   }
00074 
00075   if (!m_ctorInputOk && m_verbose) {
00076     edm::LogError("L1GctSetupError") << "Jet Leaf Card ID " << m_id << " has been incorrectly constructed";
00077   }
00078 }

L1GctJetLeafCard::~L1GctJetLeafCard (  ) 

Definition at line 80 of file L1GctJetLeafCard.cc.

References m_jetFinderA, m_jetFinderB, and m_jetFinderC.

00081 {
00082   delete m_jetFinderA;
00083   delete m_jetFinderB;
00084   delete m_jetFinderC;
00085 }


Member Function Documentation

L1GctJetLeafCard::etComponentType L1GctJetLeafCard::etValueForJetFinder ( const etTotalType  etStrip0,
const unsigned  fact0,
const etTotalType  etStrip1,
const unsigned  fact1 
) const [private]

Definition at line 302 of file L1GctJetLeafCard.cc.

References L1GctProcessor::m_verbose, L1GctUnsignedInt< nBits >::overFlow(), L1GctTwosComplement< nBits >::overFlow(), L1GctTwosComplement< nBits >::setOverFlow(), pyDBSRunClass::temp, and L1GctUnsignedInt< nBits >::value().

Referenced by exComponent(), and eyComponent().

00303                                                                                              {
00304   // These factors correspond to the sine of angles from -90 degrees to
00305   // 90 degrees in 10 degree steps, multiplied by 16383 and written in 28 bits
00306   const int factors[19] = {0xfffc001, 0xfffc0fa, 0xfffc3dd, 0xfffc894, 0xfffcefa,
00307                            0xfffd6dd, 0xfffe000, 0xfffea1d, 0xffff4e3, 0x0000000,
00308                            0x0000b1d, 0x00015e3, 0x0002000, 0x0002923, 0x0003106,
00309                            0x000376c, 0x0003c23, 0x0003f06, 0x0003fff};
00310 
00311   static const int internalComponentSize=15;
00312   static const int maxEt=1<<internalComponentSize;
00313 
00314   int rotatedValue0, rotatedValue1, myFact;
00315   int etComponentSum = 0;
00316 
00317   if (fact0 >= 36 || fact1 >= 36) {
00318     if (m_verbose) {
00319       edm::LogError("L1GctProcessingError")
00320         << "L1GctJetLeafCard::rotateEtValue() has been called with factor numbers "
00321         << fact0 << " and " << fact1 << "; should be less than 36 \n";
00322     } 
00323   } else {
00324 
00325     // First strip - choose the required multiplication factor
00326     if (fact0>18) { myFact = factors[(36-fact0)]; }
00327     else { myFact = factors[fact0]; }
00328 
00329     // Multiply the 14-bit Et value by the 28-bit factor.
00330     rotatedValue0 = static_cast<int>(etStrip0.value()) * myFact;
00331 
00332     // Second strip - choose the required multiplication factor
00333     if (fact1>18) { myFact = factors[(36-fact1)]; }
00334     else { myFact = factors[fact1]; }
00335 
00336     // Multiply the 14-bit Et value by the 28-bit factor.
00337     rotatedValue1 = static_cast<int>(etStrip1.value()) * myFact;
00338 
00339     // Add the two scaled values together, with full resolution including
00340     // fractional parts from the sin(phi), cos(phi) scaling.
00341     // Adjust the value to avoid truncation errors since these
00342     // accumulate and cause problems for the missing Et measurement.
00343     // Then discard the 13 LSB and interpret the result as
00344     // a 15-bit twos complement integer.
00345     etComponentSum = ((rotatedValue0 + rotatedValue1) + 0x1000)>>13;
00346 
00347     etComponentSum = etComponentSum & (maxEt-1);
00348     if (etComponentSum >= (maxEt/2)) {
00349       etComponentSum = etComponentSum - maxEt;
00350     }
00351   }
00352 
00353   // Store as a TwosComplement format integer and return
00354   etComponentType temp(etComponentSum);
00355   temp.setOverFlow(temp.overFlow() || etStrip0.overFlow() || etStrip1.overFlow());
00356   return temp;
00357 }

L1GctJetLeafCard::etComponentType L1GctJetLeafCard::exComponent ( const etTotalType  etStrip0,
const etTotalType  etStrip1,
const unsigned  jphi 
) const [private]

Definition at line 281 of file L1GctJetLeafCard.cc.

References etValueForJetFinder().

Referenced by process().

00283                                                          {
00284   unsigned fact0 = (2*jphi+6) % 36;
00285   unsigned fact1 = (2*jphi+8) % 36;
00286   return etValueForJetFinder(etStrip0, fact0, etStrip1, fact1);
00287 }

L1GctJetLeafCard::etComponentType L1GctJetLeafCard::eyComponent ( const etTotalType  etStrip0,
const etTotalType  etStrip1,
const unsigned  jphi 
) const [private]

Definition at line 290 of file L1GctJetLeafCard.cc.

References etValueForJetFinder().

Referenced by process().

00292                                                          {
00293   unsigned fact0 = (2*jphi+15) % 36;
00294   unsigned fact1 = (2*jphi+17) % 36;
00295   return etValueForJetFinder(etStrip0, fact0, etStrip1, fact1);
00296 }

void L1GctJetLeafCard::fetchInput (  )  [virtual]

set the input buffers

Implements L1GctProcessor.

Definition at line 182 of file L1GctJetLeafCard.cc.

References L1GctJetFinderBase::fetchInput(), m_jetFinderA, m_jetFinderB, and m_jetFinderC.

00182                                   {
00183   m_jetFinderA->fetchInput();
00184   m_jetFinderB->fetchInput();
00185   m_jetFinderC->fetchInput();
00186 }

std::vector< etTotalType > L1GctJetLeafCard::getAllOutputEt (  )  const [inline]

get the Et output history

Definition at line 116 of file L1GctJetLeafCard.h.

References m_etSumPipe.

00116 { return m_etSumPipe.contents; }

std::vector< etComponentType > L1GctJetLeafCard::getAllOutputEx (  )  const [inline]

Bunch crossing history acces methods get the Ex output history.

Definition at line 106 of file L1GctJetLeafCard.h.

References m_exSumPipe.

00106 { return m_exSumPipe.contents; }

std::vector< etComponentType > L1GctJetLeafCard::getAllOutputEy (  )  const [inline]

get the Ey output history

Definition at line 109 of file L1GctJetLeafCard.h.

References m_eySumPipe.

00109 { return m_eySumPipe.contents; }

std::vector< hfTowerSumsType > L1GctJetLeafCard::getAllOutputHfSums (  )  const [inline]

Definition at line 119 of file L1GctJetLeafCard.h.

References m_hfSumsPipe.

00119 { return m_hfSumsPipe.contents; }

std::vector< etHadType > L1GctJetLeafCard::getAllOutputHt (  )  const [inline]

Definition at line 117 of file L1GctJetLeafCard.h.

References m_htSumPipe.

00117 { return m_htSumPipe.contents; }

std::vector< etComponentType > L1GctJetLeafCard::getAllOutputHx (  )  const [inline]

get the output Ht components history

Definition at line 112 of file L1GctJetLeafCard.h.

References m_hxSumPipe.

00112 { return m_hxSumPipe.contents; }

std::vector< etComponentType > L1GctJetLeafCard::getAllOutputHy (  )  const [inline]

Definition at line 113 of file L1GctJetLeafCard.h.

References m_hySumPipe.

00113 { return m_hySumPipe.contents; }

L1GctJetFinderBase* L1GctJetLeafCard::getJetFinderA (  )  const [inline]

get pointers to associated jetfinders

Definition at line 79 of file L1GctJetLeafCard.h.

References m_jetFinderA.

00079 { return m_jetFinderA; }

L1GctJetFinderBase* L1GctJetLeafCard::getJetFinderB (  )  const [inline]

Definition at line 80 of file L1GctJetLeafCard.h.

References m_jetFinderB.

00080 { return m_jetFinderB; }

L1GctJetFinderBase* L1GctJetLeafCard::getJetFinderC (  )  const [inline]

Definition at line 81 of file L1GctJetLeafCard.h.

References m_jetFinderC.

00081 { return m_jetFinderC; }

etTotalType L1GctJetLeafCard::getOutputEt (  )  const [inline]

get the Et output

Definition at line 99 of file L1GctJetLeafCard.h.

References m_etSum.

00099 { return m_etSum; }

etComponentType L1GctJetLeafCard::getOutputEx (  )  const [inline]

get the Ex output

Definition at line 89 of file L1GctJetLeafCard.h.

References m_exSum.

00089 { return m_exSum; }

etComponentType L1GctJetLeafCard::getOutputEy (  )  const [inline]

get the Ey output

Definition at line 92 of file L1GctJetLeafCard.h.

References m_eySum.

00092 { return m_eySum; }

hfTowerSumsType L1GctJetLeafCard::getOutputHfSums (  )  const [inline]

Definition at line 102 of file L1GctJetLeafCard.h.

References m_hfSums.

00102 { return m_hfSums; }

etHadType L1GctJetLeafCard::getOutputHt (  )  const [inline]

Definition at line 100 of file L1GctJetLeafCard.h.

References m_htSum.

00100 { return m_htSum; }

etComponentType L1GctJetLeafCard::getOutputHx (  )  const [inline]

get the output Ht components

Definition at line 95 of file L1GctJetLeafCard.h.

References m_hxSum.

00095 { return m_hxSum; }

etComponentType L1GctJetLeafCard::getOutputHy (  )  const [inline]

Definition at line 96 of file L1GctJetLeafCard.h.

References m_hySum.

00096 { return m_hySum; }

L1GctJetFinderBase::JetVector L1GctJetLeafCard::getOutputJetsA (  )  const

Output jetfinder A jets (lowest jetFinder in phi).

Definition at line 270 of file L1GctJetLeafCard.cc.

References L1GctJetFinderBase::getJets(), and m_jetFinderA.

Referenced by L1GctJetCounter::fetchInput().

L1GctJetFinderBase::JetVector L1GctJetLeafCard::getOutputJetsB (  )  const

Output jetfinder B jets (middle jetFinder in phi).

Definition at line 272 of file L1GctJetLeafCard.cc.

References L1GctJetFinderBase::getJets(), and m_jetFinderB.

Referenced by L1GctJetCounter::fetchInput().

L1GctJetFinderBase::JetVector L1GctJetLeafCard::getOutputJetsC (  )  const

Ouptut jetfinder C jets (highest jetFinder in phi).

Definition at line 274 of file L1GctJetLeafCard.cc.

References L1GctJetFinderBase::getJets(), and m_jetFinderC.

Referenced by L1GctJetCounter::fetchInput().

void L1GctJetLeafCard::process (  )  [virtual]

process the data and set outputs

Implements L1GctProcessor.

Definition at line 188 of file L1GctJetLeafCard.cc.

References L1GctProcessor::bxRel(), exComponent(), eyComponent(), L1GctJetFinderBase::getEtStrip0(), L1GctJetFinderBase::getEtStrip1(), L1GctJetFinderBase::getHfSums(), L1GctJetFinderBase::getHtStrip0(), L1GctJetFinderBase::getHtStrip1(), i, m_etSum, m_etSumPipe, m_exSum, m_exSumPipe, m_eySum, m_eySumPipe, m_hfSums, m_hfSumsPipe, m_htSum, m_htSumPipe, m_hxSum, m_hxSumPipe, m_hySum, m_hySumPipe, m_jetFinderA, m_jetFinderB, m_jetFinderC, phiPosition, L1GctJetFinderBase::process(), L1GctUnsignedInt< nBits >::reset(), L1GctTwosComplement< nBits >::reset(), and setupOk().

00188                                {
00189 
00190   // Check the setup
00191   if (setupOk()) {
00192 
00193     // Perform the jet finding
00194     m_jetFinderA->process();
00195     m_jetFinderB->process();
00196     m_jetFinderC->process();
00197 
00198     // Finish Et and Ht sums for the Leaf Card
00199     // First Et and missing Et
00200     std::vector< etTotalType > etStripSum(6);
00201     etStripSum.at(0) = m_jetFinderA->getEtStrip0();
00202     etStripSum.at(1) = m_jetFinderA->getEtStrip1();
00203     etStripSum.at(2) = m_jetFinderB->getEtStrip0();
00204     etStripSum.at(3) = m_jetFinderB->getEtStrip1();
00205     etStripSum.at(4) = m_jetFinderC->getEtStrip0();
00206     etStripSum.at(5) = m_jetFinderC->getEtStrip1();
00207 
00208     m_etSum.reset();
00209     m_exSum.reset();
00210     m_eySum.reset();
00211 
00212     for (unsigned i=0; i<6; ++i) {
00213       m_etSum = m_etSum + etStripSum.at(i);
00214     }
00215 
00216     for (unsigned i=0; i<3; ++i) {
00217       unsigned jphi = 2*(phiPosition*3+i);
00218       m_exSum = m_exSum + exComponent(etStripSum.at(2*i), etStripSum.at(2*i+1), jphi);
00219       m_eySum = m_eySum + eyComponent(etStripSum.at(2*i), etStripSum.at(2*i+1), jphi);
00220     }
00221 
00222     // Exactly the same procedure for Ht and missing Ht
00223     // Note using etTotalType for the strips but the output sum is etHadType
00224     std::vector< etTotalType > htStripSum(6);
00225     htStripSum.at(0) = m_jetFinderA->getHtStrip0();
00226     htStripSum.at(1) = m_jetFinderA->getHtStrip1();
00227     htStripSum.at(2) = m_jetFinderB->getHtStrip0();
00228     htStripSum.at(3) = m_jetFinderB->getHtStrip1();
00229     htStripSum.at(4) = m_jetFinderC->getHtStrip0();
00230     htStripSum.at(5) = m_jetFinderC->getHtStrip1();
00231 
00232     m_htSum.reset();
00233     m_hxSum.reset();
00234     m_hySum.reset();
00235 
00236     for (unsigned i=0; i<6; ++i) {
00237       m_htSum = m_htSum + htStripSum.at(i);
00238     }
00239 
00240     for (unsigned i=0; i<3; ++i) {
00241       unsigned jphi = 2*(phiPosition*3+i);
00242       m_hxSum = m_hxSum + exComponent(htStripSum.at(2*i), htStripSum.at(2*i+1), jphi);
00243       m_hySum = m_hySum + eyComponent(htStripSum.at(2*i), htStripSum.at(2*i+1), jphi);
00244     }
00245 
00246     m_hfSums = 
00247       m_jetFinderA->getHfSums() +
00248       m_jetFinderB->getHfSums() +
00249       m_jetFinderC->getHfSums();
00250 
00251     // Store the outputs in pipelines
00252     m_exSumPipe.store  (m_exSum,  bxRel());
00253     m_eySumPipe.store  (m_eySum,  bxRel());
00254     m_hxSumPipe.store  (m_hxSum,  bxRel());
00255     m_hySumPipe.store  (m_hySum,  bxRel());
00256     m_etSumPipe.store  (m_etSum,  bxRel());
00257     m_htSumPipe.store  (m_htSum,  bxRel());
00258     m_hfSumsPipe.store (m_hfSums, bxRel());
00259   }
00260 }

void L1GctJetLeafCard::reset ( void   ) 

clear internal buffers

clear buffers

Reimplemented from L1GctProcessor.

Definition at line 138 of file L1GctJetLeafCard.cc.

References m_jetFinderA, m_jetFinderB, m_jetFinderC, and L1GctProcessor::reset().

00138                              {
00139   L1GctProcessor::reset();
00140   m_jetFinderA->reset();
00141   m_jetFinderB->reset();
00142   m_jetFinderC->reset();
00143 }

void L1GctJetLeafCard::resetPipelines (  )  [protected, virtual]

Implements L1GctProcessor.

Definition at line 171 of file L1GctJetLeafCard.cc.

References m_etSumPipe, m_exSumPipe, m_eySumPipe, m_hfSumsPipe, m_htSumPipe, m_hxSumPipe, m_hySumPipe, and L1GctProcessor::numOfBx().

00172 {
00173   m_exSumPipe.reset(numOfBx());
00174   m_eySumPipe.reset(numOfBx());
00175   m_hxSumPipe.reset(numOfBx());
00176   m_hySumPipe.reset(numOfBx());
00177   m_etSumPipe.reset(numOfBx());
00178   m_htSumPipe.reset(numOfBx());
00179   m_hfSumsPipe.reset(numOfBx());
00180 }

void L1GctJetLeafCard::resetProcessor (  )  [protected, virtual]

Separate reset methods for the processor itself and any data stored in pipelines.

Implements L1GctProcessor.

Definition at line 160 of file L1GctJetLeafCard.cc.

References m_etSum, m_exSum, m_eySum, m_hfSums, m_htSum, m_hxSum, m_hySum, L1GctJetFinderBase::hfTowerSumsType::reset(), L1GctUnsignedInt< nBits >::reset(), and L1GctTwosComplement< nBits >::reset().

00161 {
00162   m_exSum.reset();
00163   m_eySum.reset();
00164   m_hxSum.reset();
00165   m_hySum.reset();
00166   m_etSum.reset();
00167   m_htSum.reset();
00168   m_hfSums.reset();
00169 }

void L1GctJetLeafCard::setBxRange ( const int  firstBx,
const int  numberOfBx 
)

define the bunch crossing range to process

partially clear buffers

Reimplemented from L1GctProcessor.

Definition at line 146 of file L1GctJetLeafCard.cc.

References m_jetFinderA, m_jetFinderB, m_jetFinderC, and L1GctProcessor::setBxRange().

00146                                                                          {
00147   L1GctProcessor::setBxRange(firstBx, numberOfBx);
00148   m_jetFinderA->setBxRange(firstBx, numberOfBx);
00149   m_jetFinderB->setBxRange(firstBx, numberOfBx);
00150   m_jetFinderC->setBxRange(firstBx, numberOfBx);
00151 }

void L1GctJetLeafCard::setNeighbourLeafCards ( std::vector< L1GctJetLeafCard * >  neighbours  ) 

set pointers to neighbours - needed to complete the setup

set pointers to neighbours

Definition at line 88 of file L1GctJetLeafCard.cc.

References m_ctorInputOk, m_id, m_jetFinderA, m_jetFinderB, m_jetFinderC, L1GctProcessor::m_verbose, and L1GctJetFinderBase::setNeighbourJetFinders().

00089 {
00090   std::vector<L1GctJetFinderBase*> jfNeighbours(2);
00091 
00092   if (neighbours.size()==2) {
00093 
00094     jfNeighbours.at(0) = neighbours.at(0)->getJetFinderC();
00095     jfNeighbours.at(1) = m_jetFinderB;
00096     m_jetFinderA->setNeighbourJetFinders(jfNeighbours);
00097 
00098     jfNeighbours.at(0) = m_jetFinderA;
00099     jfNeighbours.at(1) = m_jetFinderC;
00100     m_jetFinderB->setNeighbourJetFinders(jfNeighbours);
00101 
00102     jfNeighbours.at(0) = m_jetFinderB;
00103     jfNeighbours.at(1) = neighbours.at(1)->getJetFinderA();
00104     m_jetFinderC->setNeighbourJetFinders(jfNeighbours);
00105 
00106   } else {
00107     m_ctorInputOk = false;
00108     if (m_verbose) {
00109       edm::LogWarning("L1GctSetupError")
00110         << "L1GctJetLeafCard::setNeighbourLeafCards() : In Jet Leaf Card ID " << m_id 
00111         << " size of input vector should be 2, but is in fact " << neighbours.size() << "\n";
00112     }
00113   }
00114 }

void L1GctJetLeafCard::setNextBx ( const int  bx  ) 

partially clear buffers

Reimplemented from L1GctProcessor.

Definition at line 153 of file L1GctJetLeafCard.cc.

References m_jetFinderA, m_jetFinderB, m_jetFinderC, and L1GctProcessor::setNextBx().

00153                                              {
00154   L1GctProcessor::setNextBx(bx);
00155   m_jetFinderA->setNextBx(bx);
00156   m_jetFinderB->setNextBx(bx);
00157   m_jetFinderC->setNextBx(bx);
00158 }

virtual void L1GctJetLeafCard::setupObjects (  )  [inline, protected, virtual]

Initialise inputs with null objects for the correct bunch crossing if required.

Implements L1GctProcessor.

Definition at line 128 of file L1GctJetLeafCard.h.

00128 {}

bool L1GctJetLeafCard::setupOk (  )  const

Check setup is Ok.

Reimplemented from L1GctProcessor.

Definition at line 262 of file L1GctJetLeafCard.cc.

References m_ctorInputOk, m_jetFinderA, m_jetFinderB, m_jetFinderC, and L1GctJetFinderBase::setupOk().

Referenced by process().

00262                                      {
00263   return (m_ctorInputOk &&
00264           m_jetFinderA->setupOk() &&
00265           m_jetFinderB->setupOk() &&
00266           m_jetFinderC->setupOk()); }


Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const L1GctJetLeafCard card 
) [friend]

Overload << operator.

Definition at line 116 of file L1GctJetLeafCard.cc.

00117 {
00118   using std::endl;
00119 
00120   s << "===L1GctJetLeafCard===" << endl;
00121   s << "ID = " << card.m_id << endl;
00122   s << "i_phi = " << card.phiPosition << endl;;
00123   s << "Ex " << card.m_exSum << endl;
00124   s << "Ey " << card.m_eySum << endl;
00125   s << "Hx " << card.m_hxSum << endl;
00126   s << "Hy " << card.m_hySum << endl;
00127   s << "Et " << card.m_etSum << endl;
00128   s << "Ht " << card.m_htSum << endl;
00129   s << "JetFinder A : " << endl << (*card.m_jetFinderA);
00130   s << "JetFinder B : " << endl << (*card.m_jetFinderB); 
00131   s << "JetFinder C : " << endl << (*card.m_jetFinderC);
00132   s << endl;
00133 
00134   return s;
00135 }


Member Data Documentation

bool L1GctJetLeafCard::m_ctorInputOk [private]

Definition at line 165 of file L1GctJetLeafCard.h.

Referenced by L1GctJetLeafCard(), setNeighbourLeafCards(), and setupOk().

etTotalType L1GctJetLeafCard::m_etSum [private]

Definition at line 151 of file L1GctJetLeafCard.h.

Referenced by getOutputEt(), operator<<(), process(), and resetProcessor().

Pipeline<etTotalType> L1GctJetLeafCard::m_etSumPipe [private]

Definition at line 161 of file L1GctJetLeafCard.h.

Referenced by getAllOutputEt(), process(), and resetPipelines().

etComponentType L1GctJetLeafCard::m_exSum [private]

Definition at line 147 of file L1GctJetLeafCard.h.

Referenced by getOutputEx(), operator<<(), process(), and resetProcessor().

Pipeline<etComponentType> L1GctJetLeafCard::m_exSumPipe [private]

Definition at line 157 of file L1GctJetLeafCard.h.

Referenced by getAllOutputEx(), process(), and resetPipelines().

etComponentType L1GctJetLeafCard::m_eySum [private]

Definition at line 148 of file L1GctJetLeafCard.h.

Referenced by getOutputEy(), operator<<(), process(), and resetProcessor().

Pipeline<etComponentType> L1GctJetLeafCard::m_eySumPipe [private]

Definition at line 158 of file L1GctJetLeafCard.h.

Referenced by getAllOutputEy(), process(), and resetPipelines().

hfTowerSumsType L1GctJetLeafCard::m_hfSums [private]

Definition at line 154 of file L1GctJetLeafCard.h.

Referenced by getOutputHfSums(), process(), and resetProcessor().

Pipeline<hfTowerSumsType> L1GctJetLeafCard::m_hfSumsPipe [private]

Definition at line 163 of file L1GctJetLeafCard.h.

Referenced by getAllOutputHfSums(), process(), and resetPipelines().

etHadType L1GctJetLeafCard::m_htSum [private]

Definition at line 152 of file L1GctJetLeafCard.h.

Referenced by getOutputHt(), operator<<(), process(), and resetProcessor().

Pipeline<etHadType> L1GctJetLeafCard::m_htSumPipe [private]

Definition at line 162 of file L1GctJetLeafCard.h.

Referenced by getAllOutputHt(), process(), and resetPipelines().

etComponentType L1GctJetLeafCard::m_hxSum [private]

Definition at line 149 of file L1GctJetLeafCard.h.

Referenced by getOutputHx(), operator<<(), process(), and resetProcessor().

Pipeline<etComponentType> L1GctJetLeafCard::m_hxSumPipe [private]

Definition at line 159 of file L1GctJetLeafCard.h.

Referenced by getAllOutputHx(), process(), and resetPipelines().

etComponentType L1GctJetLeafCard::m_hySum [private]

Definition at line 150 of file L1GctJetLeafCard.h.

Referenced by getOutputHy(), operator<<(), process(), and resetProcessor().

Pipeline<etComponentType> L1GctJetLeafCard::m_hySumPipe [private]

Definition at line 160 of file L1GctJetLeafCard.h.

Referenced by getAllOutputHy(), process(), and resetPipelines().

int L1GctJetLeafCard::m_id [private]

Definition at line 133 of file L1GctJetLeafCard.h.

Referenced by L1GctJetLeafCard(), operator<<(), and setNeighbourLeafCards().

L1GctJetFinderBase* L1GctJetLeafCard::m_jetFinderA [private]

lowest jetFinder in phi

Definition at line 139 of file L1GctJetLeafCard.h.

Referenced by fetchInput(), getJetFinderA(), getOutputJetsA(), L1GctJetLeafCard(), operator<<(), process(), reset(), setBxRange(), setNeighbourLeafCards(), setNextBx(), setupOk(), and ~L1GctJetLeafCard().

L1GctJetFinderBase* L1GctJetLeafCard::m_jetFinderB [private]

middle jetFinder in phi

Definition at line 140 of file L1GctJetLeafCard.h.

Referenced by fetchInput(), getJetFinderB(), getOutputJetsB(), L1GctJetLeafCard(), operator<<(), process(), reset(), setBxRange(), setNeighbourLeafCards(), setNextBx(), setupOk(), and ~L1GctJetLeafCard().

L1GctJetFinderBase* L1GctJetLeafCard::m_jetFinderC [private]

highest jetFinder in phi

Definition at line 141 of file L1GctJetLeafCard.h.

Referenced by fetchInput(), getJetFinderC(), getOutputJetsC(), L1GctJetLeafCard(), operator<<(), process(), reset(), setBxRange(), setNeighbourLeafCards(), setNextBx(), setupOk(), and ~L1GctJetLeafCard().

jetFinderType L1GctJetLeafCard::m_whichJetFinder [private]

Definition at line 136 of file L1GctJetLeafCard.h.

Referenced by L1GctJetLeafCard().

const int L1GctJetLeafCard::MAX_JET_FINDERS = 3 [static]

Number of jetfinders per jet leaf card.

Definition at line 35 of file L1GctJetLeafCard.h.

int L1GctJetLeafCard::phiPosition [private]

Definition at line 145 of file L1GctJetLeafCard.h.

Referenced by L1GctJetLeafCard(), operator<<(), and process().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:26:38 2009 for CMSSW by  doxygen 1.5.4