CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros 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:
38  std::shared_ptr<MicroGMTExtrapolationLUT> m_BEtaExtrapolation;
39  std::shared_ptr<MicroGMTExtrapolationLUT> m_BPhiExtrapolation;
40  std::shared_ptr<MicroGMTExtrapolationLUT> m_OEtaExtrapolation;
41  std::shared_ptr<MicroGMTExtrapolationLUT> m_OPhiExtrapolation;
42  std::shared_ptr<MicroGMTExtrapolationLUT> m_FEtaExtrapolation;
43  std::shared_ptr<MicroGMTExtrapolationLUT> m_FPhiExtrapolation;
44 
45  std::map<tftype, std::shared_ptr<MicroGMTExtrapolationLUT>> m_phiExtrapolationLUTs;
46  std::map<tftype, std::shared_ptr<MicroGMTExtrapolationLUT>> m_etaExtrapolationLUTs;
47 
48  std::shared_ptr<MicroGMTCaloIndexSelectionLUT> m_IdxSelMemEta;
49  std::shared_ptr<MicroGMTCaloIndexSelectionLUT> m_IdxSelMemPhi;
50 
51  std::shared_ptr<MicroGMTRelativeIsolationCheckLUT> m_RelIsoCheckMem;
52  std::shared_ptr<MicroGMTAbsoluteIsolationCheckLUT> m_AbsIsoCheckMem;
53 
54  std::vector<int> m_5by1TowerSums;
55  std::map<int, int> m_towerEnergies;
57  };
58 }
59 
60 #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::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:38
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