CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/L1Trigger/GlobalCaloTrigger/interface/L1GctEmLeafCard.h

Go to the documentation of this file.
00001 #ifndef L1GCTELECTRONLEAFCARD_H_
00002 #define L1GCTELECTRONLEAFCARD_H_
00003 
00004 #include "DataFormats/L1GlobalCaloTrigger/interface/L1GctEmCand.h"
00005 #include "L1Trigger/GlobalCaloTrigger/interface/L1GctElectronSorter.h"
00006 
00007 #include <vector>
00008 #include <ostream>
00009 
00020 class L1GctEmLeafCard : public L1GctProcessor {
00021  public:
00022   static const unsigned N_SORTERS;
00023 
00024  public:
00026   L1GctEmLeafCard(int id);
00029   ~L1GctEmLeafCard();
00032   void reset();
00035   virtual void fetchInput();
00038   virtual void process();       
00041   void setBxRange(const int firstBx, const int numberOfBx);
00044   void setNextBx(const int bxnum);
00047   int id() { return m_id; }
00050   std::vector<L1GctEmCand> getOutputIsoEmCands(int fpga);
00053   std::vector<L1GctEmCand> getOutputNonIsoEmCands(int fpga);
00056   friend std::ostream& operator<<(std::ostream& s,const L1GctEmLeafCard& card);
00057 
00058   L1GctElectronSorter* getIsoElectronSorterU1()    { return m_sorters.at(0); }
00059   L1GctElectronSorter* getNonIsoElectronSorterU1() { return m_sorters.at(1); }
00060   L1GctElectronSorter* getIsoElectronSorterU2()    { return m_sorters.at(2); }
00061   L1GctElectronSorter* getNonIsoElectronSorterU2() { return m_sorters.at(3); }
00062 
00063  protected:
00064 
00066   virtual void resetProcessor() {}
00067   virtual void resetPipelines() {}
00068 
00070   virtual void setupObjects() {}
00071 
00072 private:
00074   int m_id;
00077   std::vector<L1GctElectronSorter*> m_sorters;
00078   
00079 };
00080 
00081 std::ostream& operator<<(std::ostream& s,const L1GctEmLeafCard& card);
00082 #endif /*L1GCTELECTRONLEAFCARD_H_*/