![]() |
![]() |
00001 #ifndef RecoEcal_EgammaClusterAlgos_PreshowerPhiClusterAlgo_h 00002 #define RecoEcal_EgammaClusterAlgos_PreshowerPhiClusterAlgo_h 00003 00004 #include "DataFormats/EgammaReco/interface/PreshowerCluster.h" 00005 #include "DataFormats/EcalRecHit/interface/EcalRecHit.h" 00006 #include "DataFormats/Math/interface/Point3D.h" 00007 #include "DataFormats/EcalDetId/interface/ESDetId.h" 00008 #include "DataFormats/DetId/interface/DetId.h" 00009 #include "RecoCaloTools/Navigation/interface/EcalPreshowerNavigator.h" 00010 #include <string> 00011 #include <vector> 00012 #include <set> 00013 00014 class CaloSubdetectorGeometry; 00015 class CaloSubdetectorTopology; 00016 00017 class PreshowerPhiClusterAlgo { 00018 00019 public: 00020 00021 typedef math::XYZPoint Point; 00022 00023 typedef std::map<DetId, EcalRecHit> RecHitsMap; 00024 typedef std::set<DetId> HitsID; 00025 00026 PreshowerPhiClusterAlgo() : 00027 esStripEnergyCut_(0.) 00028 {} 00029 00030 PreshowerPhiClusterAlgo(float stripEnergyCut) : 00031 esStripEnergyCut_(stripEnergyCut) 00032 {} 00033 00034 ~PreshowerPhiClusterAlgo() {}; 00035 00036 reco::PreshowerCluster makeOneCluster(ESDetId strip, 00037 HitsID *used_strips, 00038 RecHitsMap *rechits_map, 00039 const CaloSubdetectorGeometry*& geometry_p, 00040 CaloSubdetectorTopology*& topology_p, 00041 double deltaEta, double minDeltaPhi, double maxDeltaPhi); 00042 00043 bool goodStrip(RecHitsMap::iterator candidate_it); 00044 00045 private: 00046 00047 float esStripEnergyCut_; 00048 00049 std::vector<ESDetId> road_2d; 00050 00051 // The map of hits 00052 RecHitsMap *rechits_map; 00053 00054 // The set of used DetID's 00055 HitsID *used_s; 00056 00057 }; 00058 #endif 00059