CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
MicroGMTIsolationUnit.h
Go to the documentation of this file.
1 #ifndef __l1microgmtisolationunit_h
2 #define __l1microgmtisolationunit_h
3 
9 
12 
13 namespace l1t {
15  public:
17  virtual ~MicroGMTIsolationUnit();
18 
21  // returns the index corresponding to the calo tower sum using the LUT
23  // copies the energy values to the m_towerEnergies map for consistent access
25  // First step done for calo input preparation, calculates strip sums
27  // Second step, only done for the sums needed for final iso requirement
28  int calculate5by5Sum(unsigned index) const;
29 
30  // Checks with LUT isolation for all muons in list, assuming input calo is non-summed
32  // Checks with LUT isolation for all muons in list, assuming input calo is pre-summed
34  // Uses *Extrapolation LUTs to project trajectory to the vertex and adds info to muon
36 
37  private:
39 
40  std::shared_ptr<MicroGMTExtrapolationLUT> m_BEtaExtrapolation;
41  std::shared_ptr<MicroGMTExtrapolationLUT> m_BPhiExtrapolation;
42  std::shared_ptr<MicroGMTExtrapolationLUT> m_OEtaExtrapolation;
43  std::shared_ptr<MicroGMTExtrapolationLUT> m_OPhiExtrapolation;
44  std::shared_ptr<MicroGMTExtrapolationLUT> m_FEtaExtrapolation;
45  std::shared_ptr<MicroGMTExtrapolationLUT> m_FPhiExtrapolation;
46 
47  std::map<tftype, std::shared_ptr<MicroGMTExtrapolationLUT>> m_phiExtrapolationLUTs;
48  std::map<tftype, std::shared_ptr<MicroGMTExtrapolationLUT>> m_etaExtrapolationLUTs;
49 
50  std::shared_ptr<MicroGMTCaloIndexSelectionLUT> m_IdxSelMemEta;
51  std::shared_ptr<MicroGMTCaloIndexSelectionLUT> m_IdxSelMemPhi;
52 
53  std::shared_ptr<MicroGMTRelativeIsolationCheckLUT> m_RelIsoCheckMem;
54  std::shared_ptr<MicroGMTAbsoluteIsolationCheckLUT> m_AbsIsoCheckMem;
55 
56  std::bitset<28> m_caloInputsToDisable;
57  std::bitset<28> m_maskedCaloInputs;
58 
59  std::vector<int> m_5by1TowerSums;
60  std::map<int, int> m_towerEnergies;
62  };
63 } // namespace l1t
64 
65 #endif /* defined(__l1microgmtisolationunit_h) */
std::shared_ptr< MicroGMTCaloIndexSelectionLUT > m_IdxSelMemEta
void extrapolateMuons(MicroGMTConfiguration::InterMuonList &) const
std::shared_ptr< MicroGMTExtrapolationLUT > m_OPhiExtrapolation
void setTowerSums(const MicroGMTConfiguration::CaloInputCollection &inputs, int bx)
std::shared_ptr< MicroGMTAbsoluteIsolationCheckLUT > m_AbsIsoCheckMem
std::map< tftype, std::shared_ptr< MicroGMTExtrapolationLUT > > m_etaExtrapolationLUTs
std::map< int, int > m_towerEnergies
std::shared_ptr< MicroGMTRelativeIsolationCheckLUT > m_RelIsoCheckMem
std::bitset< 28 > m_caloInputsToDisable
std::shared_ptr< MicroGMTExtrapolationLUT > m_FEtaExtrapolation
std::shared_ptr< MicroGMTExtrapolationLUT > m_BPhiExtrapolation
std::shared_ptr< MicroGMTExtrapolationLUT > m_OEtaExtrapolation
GMTInternalMuonList InterMuonList
std::shared_ptr< MicroGMTExtrapolationLUT > m_FPhiExtrapolation
std::shared_ptr< MicroGMTCaloIndexSelectionLUT > m_IdxSelMemPhi
void calculate5by1Sums(const MicroGMTConfiguration::CaloInputCollection &, int bx)
void isolate(MicroGMTConfiguration::InterMuonList &) const
std::shared_ptr< MicroGMTExtrapolationLUT > m_BEtaExtrapolation
int getCaloIndex(MicroGMTConfiguration::InterMuon &) const
tuple muons
Definition: patZpeak.py:41
std::bitset< 28 > m_maskedCaloInputs
std::map< tftype, std::shared_ptr< MicroGMTExtrapolationLUT > > m_phiExtrapolationLUTs
void initialise(L1TMuonGlobalParamsHelper *)
Initialisation from ES record.
void isolatePreSummed(MicroGMTConfiguration::InterMuonList &muons) const
std::vector< int > m_5by1TowerSums
int calculate5by5Sum(unsigned index) const