Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:25:02

0001 #ifndef RecoEgamma_EgammaTools_LongDeps_h
0002 #define RecoEgamma_EgammaTools_LongDeps_h
0003 #include <vector>
0004 #include <set>
0005 
0006 /*
0007  * Stores information about the HGCal EM MultiCluster computed
0008  * using EGammaPCAHelper, including in particular hits restricted to
0009  * a cylinder along the shower axis with some given radius
0010  */
0011 
0012 namespace hgcal {
0013 
0014   class LongDeps {
0015   public:
0016     LongDeps(float radius,
0017              const std::vector<float>& energyPerLayer,
0018              float energyEE,
0019              float energyFH,
0020              float energyBH,
0021              const std::set<int>& layers);
0022     ~LongDeps() {}
0023     // to check the radius used
0024     inline float radius() const { return radius_; };
0025     inline float energyEE() const { return energyEE_; }
0026     inline float energyFH() const { return energyFH_; }
0027     inline float energyBH() const { return energyBH_; }
0028     inline const std::vector<float>& energyPerLayer() const { return energyPerLayer_; }
0029     inline const std::set<int>& layers() const { return layers_; }
0030     inline unsigned nLayers() const { return layers_.size(); }
0031     inline int firstLayer() const { return (nLayers() > 0 ? *layers_.begin() : -1); }
0032     inline int lastLayer() const { return (nLayers() > 0 ? *layers_.rbegin() : -1); }
0033     inline int layerEfrac10() const { return lay_Efrac10_; }
0034     inline int layerEfrac90() const { return lay_Efrac90_; }
0035     inline float e4oEtot() const { return e4oEtot_; }
0036 
0037   private:
0038     std::vector<float> energyPerLayer_;
0039     float radius_;
0040     float energyEE_;
0041     float energyFH_;
0042     float energyBH_;
0043     std::set<int> layers_;
0044     int lay_Efrac10_;
0045     int lay_Efrac90_;
0046     float e4oEtot_;
0047   };
0048 
0049 }  // namespace hgcal
0050 
0051 #endif