CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Stage2Layer2EGammaAlgorithmFirmware.h
Go to the documentation of this file.
1 
10 //
11 //
12 
13 #ifndef Stage2Layer2EGammaAlgorithmFirmware_H
14 #define Stage2Layer2EGammaAlgorithmFirmware_H
15 
18 
19 namespace l1t
20 {
21 
22  // Imp1 is for v1 and v2
24  {
25  public:
26  Stage2Layer2EGammaAlgorithmFirmwareImp1(CaloParamsHelper* params); //const CaloMainProcessorParams & dbPars);
28  virtual void processEvent(const std::vector<CaloCluster>& clusters, const std::vector<CaloTower>& towers, std::vector<EGamma>& egammas);
29 
30  private:
31  // trimming
33  unsigned int trimmingLutIndex(unsigned int shape, int iEta);
34  // identification
35  bool idHOverE(const l1t::CaloCluster& clus, int hwPt);
36  unsigned int idHOverELutIndex(int iEta, int E);
37  bool idShape(const l1t::CaloCluster& clus, int hwPt);
38  unsigned int idShapeLutIndex(int iEta, int E, int shape);
39  // isolation
40  int isoCalEgHwFootPrint(const l1t::CaloCluster&,const std::vector<l1t::CaloTower>&);
41  unsigned isoLutIndex(int iEta,unsigned int nrTowers);
42  // calibration
43  int calibratedPt(const l1t::CaloCluster& clus, int hwPt);
44  unsigned int calibrationLutIndex(int iEta, int E, int shape);
45 
46  private:
48 
49  };
50 
51 }
52 
53 #endif
virtual void processEvent(const std::vector< CaloCluster > &clusters, const std::vector< CaloTower > &towers, std::vector< EGamma > &egammas)
int isoCalEgHwFootPrint(const l1t::CaloCluster &, const std::vector< l1t::CaloTower > &)
l1t::CaloCluster trimCluster(const l1t::CaloCluster &clus)