CMS 3D CMS Logo

Stage2Layer2TauAlgorithmFirmware.h
Go to the documentation of this file.
1 
10 //
11 //
12 
13 #ifndef Stage2Layer2TauAlgorithmFirmware_H
14 #define Stage2Layer2TauAlgorithmFirmware_H
15 
19 
20 
21 namespace l1t {
22 
23  // Imp1 is for v1 and v2
25  public:
26  Stage2Layer2TauAlgorithmFirmwareImp1(CaloParamsHelper const* params); //const CaloMainProcessorParams & dbPars);
28  void processEvent(const std::vector<CaloCluster> & clusters,
29  const std::vector<CaloTower>& towers,
30  std::vector<Tau> & taus) override;
31  private:
32  void merging(const std::vector<l1t::CaloCluster>& clusters, const std::vector<l1t::CaloTower>& towers, std::vector<l1t::Tau>& taus);
33  void dosorting(std::vector<l1t::Tau>& taus);
34 
35  // isolation
36  int isoCalTauHwFootPrint(const l1t::CaloCluster&,const std::vector<l1t::CaloTower>&);
37 
38  //calibration
39  void loadCalibrationLuts();
40 
41  // double calibratedPt(int hwPtEm, int hwPtHad, int ieta);
42 
43  // parameters
45  std::vector<std::vector<float> >coefficients_;
46 
51  unsigned int isoLutIndex(int Et, int hweta, unsigned int nrTowers);
52  unsigned int trimMainLutIndex (int neighPos, bool isWe);
53  static bool compareTowers (l1t::CaloTower TT1, l1t::CaloTower TT2); // implements operator < for TT
54  bool is3x3Maximum (const l1t::CaloTower& tower, const std::vector<CaloTower>& towers, l1t::CaloStage2Nav& caloNav); // is maximum in the 3x3 window? (recompute jet flag)
55  std::vector<std::unique_ptr<l1t::CaloCluster>> makeSecClusters (const std::vector<l1t::CaloTower>& towers, std::vector<int> & sites, const l1t::CaloCluster& mainCluster, l1t::CaloStage2Nav& caloNav); // make the secondary clusters fr merging (need to be deleted later)
56  unsigned int calibLutIndex (int ieta, int Et, int hasEM, int isMerged);
57  int calibratedPt(const l1t::CaloCluster& clus, const std::vector<l1t::CaloTower>& towers, int hwPt, bool isMerged);
58 
59  };
60 
61 }
62 
63 #endif
unsigned int calibLutIndex(int ieta, int Et, int hasEM, int isMerged)
delete x;
Definition: CaloConfig.h:22
bool is3x3Maximum(const l1t::CaloTower &tower, const std::vector< CaloTower > &towers, l1t::CaloStage2Nav &caloNav)
void processEvent(const std::vector< CaloCluster > &clusters, const std::vector< CaloTower > &towers, std::vector< Tau > &taus) override
std::vector< std::unique_ptr< l1t::CaloCluster > > makeSecClusters(const std::vector< l1t::CaloTower > &towers, std::vector< int > &sites, const l1t::CaloCluster &mainCluster, l1t::CaloStage2Nav &caloNav)
int isoCalTauHwFootPrint(const l1t::CaloCluster &, const std::vector< l1t::CaloTower > &)
int calibratedPt(const l1t::CaloCluster &clus, const std::vector< l1t::CaloTower > &towers, int hwPt, bool isMerged)
static bool compareTowers(l1t::CaloTower TT1, l1t::CaloTower TT2)
void merging(const std::vector< l1t::CaloCluster > &clusters, const std::vector< l1t::CaloTower > &towers, std::vector< l1t::Tau > &taus)
unsigned int trimMainLutIndex(int neighPos, bool isWe)
unsigned int isoLutIndex(int Et, int hweta, unsigned int nrTowers)