00001 #ifndef RecoEcal_EgammaCoreTools_SuperClusterShapeAlgo_h 00002 #define RecoEcal_EgammaCoreTools_SuperClusterShapeAlgo_h 00003 00014 #include <map> 00015 00016 #include "FWCore/Framework/interface/ESHandle.h" 00017 00018 #include "DataFormats/EgammaReco/interface/SuperCluster.h" 00019 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h" 00020 #include "DataFormats/EcalRecHit/interface/EcalRecHit.h" 00021 #include "DataFormats/DetId/interface/DetId.h" 00022 #include "DataFormats/Math/interface/Point3D.h" 00023 #include "RecoEcal/EgammaCoreTools/interface/PositionCalc.h" 00024 #include "Geometry/CaloGeometry/interface/CaloGeometry.h" 00025 00026 class CaloSubdetectorTopology; 00027 00028 class SuperClusterShapeAlgo 00029 { 00030 00031 public: 00032 SuperClusterShapeAlgo(const EcalRecHitCollection* hits, 00033 const CaloSubdetectorGeometry* geometry); 00034 00035 void Calculate_Covariances(const reco::SuperCluster &passedCluster); 00036 00037 double etaWidth() { return etaWidth_; } 00038 double phiWidth() { return phiWidth_; } 00039 00040 private: 00041 00042 const EcalRecHitCollection* recHits_; 00043 const CaloSubdetectorGeometry* geometry_; 00044 00045 double etaWidth_, phiWidth_; 00046 00047 }; 00048 00049 #endif