CMS 3D CMS Logo

HGCalMulticluster.h
Go to the documentation of this file.
1 #ifndef DataFormats_L1Trigger_HGCalMulticluster_h
2 #define DataFormats_L1Trigger_HGCalMulticluster_h
3 
8 
9 namespace l1t {
10 
11  class HGCalMulticluster : public HGCalClusterT<l1t::HGCalCluster> {
12  public:
14  HGCalMulticluster(const LorentzVector p4, int pt = 0, int eta = 0, int phi = 0);
15 
17 
18  ~HGCalMulticluster() override;
19 
20  float hOverE() const {
21  // --- this below would be faster when reading old objects, as HoE will only be computed once,
22  // --- but it may not be allowed by CMS rules because of the const_cast
23  // --- and could potentially cause a data race
24  // if (!hOverEValid_) (const_cast<HGCalMulticluster*>(this))->saveHOverE();
25  // --- this below is safe in any case
27  }
28 
29  void saveHOverE() {
31  hOverEValid_ = true;
32  }
33 
34  private:
35  float hOverE_;
37  };
38 
40 
41 } // namespace l1t
42 
43 #endif
double eta() const final
momentum pseudorapidity
double hOverE() const
double pt() const final
transverse momentum
delete x;
Definition: CaloConfig.h:22
BXVector< HGCalMulticluster > HGCalMulticlusterBxCollection
const LorentzVector & p4() const final
four-momentum Lorentz vector
Definition: LeafCandidate.h:99
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:37
double phi() const final
momentum azimuthal angle