Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef L1Trigger_RPCPacTrigger_h
0002 #define L1Trigger_RPCPacTrigger_h
0003 
0004 /** \class RPCPacTrigger
0005   * Simulations of Pattern Comparator trigger. For every event runs PACs, ghost-busters and sorters.
0006   * Contains the structure of hardware: Trigger Crates, Final Sorters, etc.
0007   * \author Karol Bunkowski (Warsaw) */
0008 
0009 #include "L1Trigger/RPCTrigger/interface/RPCLogCone.h"
0010 #include "L1Trigger/RPCTrigger/interface/RPCTriggerCrate.h"
0011 #include "L1Trigger/RPCTrigger/interface/RPCFinalSorter.h"
0012 #include "L1Trigger/RPCTrigger/interface/RPCHalfSorter.h"
0013 #include "L1Trigger/RPCTrigger/interface/RPCTriggerConfiguration.h"
0014 
0015 #include <FWCore/Framework/interface/ESHandle.h>
0016 #include "CondFormats/L1TObjects/interface/L1RPCHsbConfig.h"
0017 
0018 class RPCPacTrigger {
0019 public:
0020   /** Construct the structure of Trigger Crates,
0021     * m_TBGhostBuster, m_TCGhostBusterSorter and m_FinalSorter are also created.
0022     * Since these object do not holds any data, on instance is enough for whole system.
0023     * Found muons are stored in TB and TC. */
0024   RPCPacTrigger(RPCTriggerConfiguration* triggerConfig);
0025 
0026   /** For every logCone from logConesVec runs RPCTriggerCrate::runCone().
0027     * Then for every TC runs RPCTriggerCrate::runTCGBSorter().
0028     * Then runs and RPCFinalSorter::run().
0029     * @return m_GBFinalMuons[be][iMU] be = 0 = barrel; be = 1 = endcaps,
0030     * 4 muons from barrel and 4 muons from endcaps, (some can be empty)*/
0031   L1RpcTBMuonsVec2 runEvent(const L1RpcLogConesVec& logConesVec, edm::ESHandle<L1RPCHsbConfig> hsbConf);
0032 
0033   /** Returns vector of not empty muons.
0034     * Can be called only after runEvent() */
0035   L1RpcTBMuonsVec getNotEmptyMuons();
0036 
0037 private:
0038   //-------------hardware------------------
0039   std::vector<RPCTriggerCrate> m_TriggerCratesVec;
0040 
0041   RPCTriggerConfiguration* m_TrigCnfg;
0042 
0043   RPCFinalSorter m_FinalSorter;
0044   RPCHalfSorter m_HalfSorters;
0045 
0046   //---------------------------------------
0047 
0048   /** Muons found in each event. m_GBFinalMuons[be][iMU] be = 0 = barrel; be = 1 = endcaps,
0049     * 4 muons from barrel and 4 muons from endcaps, (some can be empty)*/
0050   L1RpcTBMuonsVec2 m_GBFinalMuons;
0051 };
0052 #endif