Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:21:40

0001 #ifndef L1Trigger_RPCTriggerBoard_h
0002 #define L1Trigger_RPCTriggerBoard_h
0003 
0004 /** \class RPCTriggerBoard
0005   * Class describing the Trigger Board. In hardware on one TB thera are m_PAC
0006   * procesors for 3 or 4 towers of one sector.
0007   * In this implementation the RPCTriggerBoard does not holds the m_PAC,
0008   * but acces them through RPCTriggerConfiguration, beacouse deifferent
0009   * configuration are possible (for example the same m_PAC for every Log Segment of given m_tower).
0010   * \author Karol Bunkowski (Warsaw)
0011   */
0012 
0013 #include <vector>
0014 #include <string>
0015 #include "L1Trigger/RPCTrigger/interface/RPCTBGhostBuster.h"
0016 #include "L1Trigger/RPCTrigger/interface/RPCTriggerConfiguration.h"
0017 #include "L1Trigger/RPCTrigger/interface/RPCPac.h"
0018 #include <memory>
0019 //---------------------------------------------------------------------------
0020 class RPCTriggerBoard {
0021 public:
0022   RPCTriggerBoard(RPCTriggerConfiguration* triggerConfig, int tbNum, int tcNum);
0023 
0024   /** Runs RPCPacData::run() for cone. Converts RPCPacMuon to RPCTBMuon
0025     * and puts it to the m_PacsMuonsVec. @return true if non-empty muon was return
0026     * by m_PAC*/
0027   bool runCone(const RPCLogCone& cone);
0028 
0029   /** Creates L1RpcTBMuonsVec2 from muons from m_PacsMuonsVec.
0030     * Then runs RPCTBGhostBuster::run().
0031     * @return 4 muons or empty vector. */
0032   L1RpcTBMuonsVec runTBGB();
0033 
0034 private:
0035   int m_TBNumber;  //!< 0...8 , 0 = tbn4, m_tower -16..-13, 4 = tb0
0036 
0037   RPCTriggerConfiguration* m_TriggerConfig;
0038 
0039   RPCTBGhostBuster m_TBGhostBuster;
0040 
0041   L1RpcTBMuonsVec m_PacsMuonsVec;
0042 
0043   //typedef std::vector<RPCPac*> PACsVec; // PACs in single tower
0044   typedef std::vector<std::shared_ptr<RPCPac> > PACsVec;  // PACs in single tower
0045   typedef std::map<int, PACsVec> PACsAll;                 // Holds pacs for all towers covered by tb
0046 
0047   PACsAll m_pacs;
0048 };
0049 #endif