CMS 3D CMS Logo

Stage2Layer2JetAlgorithmFirmware.h
Go to the documentation of this file.
1 
10 //
11 //
12 
13 #ifndef Stage2Layer2JetAlgorithmFirmware_H
14 #define Stage2Layer2JetAlgorithmFirmware_H
15 
18 
19 namespace l1t {
20 
21  // Imp1 is for v1 and v2
23  public:
25  ~Stage2Layer2JetAlgorithmFirmwareImp1() override = default;
26  void processEvent(const std::vector<CaloTower> & towers,
27  std::vector<Jet> & jets, std::vector<Jet> & alljets) override;
28 
29  void create(const std::vector<CaloTower> & towers,
30  std::vector<Jet> & jets, std::vector<Jet> & alljets, std::string PUSubMethod);
31 
32  void accuSort(std::vector<Jet> & jets);
33 
34  void calibrate(std::vector<Jet> & jets, int calibThreshold, bool isAllJets);
35 
36  double calibFit(double, double*);
37  double calibFitErr(double,double*);
38 
39  int donutPUEstimate(int jetEta, int jetPhi, int size,
40  const std::vector<l1t::CaloTower> & towers);
41 
42  std::vector<int> getChunkyRing(Jet & jet, int pos,
43  const std::vector<l1t::CaloTower> & towers,
44  const std::string chunkyString);
45 
46  int chunkyDonutPUEstimate(Jet & jet, int pos,
47  const std::vector<l1t::CaloTower> & towers);
48 
49  //Adding chunky sandwich, chunkydonut variant using only phiflaps. Useful for simple handiling of calorimeter hardware ieta strips, and in high pu environment like PbPb
50  int chunkySandwichPUEstimate(Jet & jet, int pos,
51  const std::vector<l1t::CaloTower> & towers,
52  const std::string chunkySandwichStr);
53  std::map<int,int> getSumEtEtaMap(const std::vector<l1t::CaloTower> & towers);
54 
55  private:
56 
57  CaloParamsHelper const* const params_;
58 
59  };
60 
61 }
62 
63 #endif
size
Write out results.
~Stage2Layer2JetAlgorithmFirmwareImp1() override=default
int chunkyDonutPUEstimate(Jet &jet, int pos, const std::vector< l1t::CaloTower > &towers)
std::map< int, int > getSumEtEtaMap(const std::vector< l1t::CaloTower > &towers)
delete x;
Definition: CaloConfig.h:22
void calibrate(std::vector< Jet > &jets, int calibThreshold, bool isAllJets)
int donutPUEstimate(int jetEta, int jetPhi, int size, const std::vector< l1t::CaloTower > &towers)
Definition: Jet.py:1
vector< PseudoJet > jets
int chunkySandwichPUEstimate(Jet &jet, int pos, const std::vector< l1t::CaloTower > &towers, const std::string chunkySandwichStr)
void processEvent(const std::vector< CaloTower > &towers, std::vector< Jet > &jets, std::vector< Jet > &alljets) override
void create(const std::vector< CaloTower > &towers, std::vector< Jet > &jets, std::vector< Jet > &alljets, std::string PUSubMethod)
std::vector< int > getChunkyRing(Jet &jet, int pos, const std::vector< l1t::CaloTower > &towers, const std::string chunkyString)