File indexing completed on 2024-09-07 04:37:26
0001 #ifndef RecoEcal_EgammaClusterAlgos_PreshowerPhiClusterAlgo_h
0002 #define RecoEcal_EgammaClusterAlgos_PreshowerPhiClusterAlgo_h
0003
0004 #include "DataFormats/EgammaReco/interface/PreshowerCluster.h"
0005 #include "DataFormats/EcalRecHit/interface/EcalRecHit.h"
0006 #include "DataFormats/Math/interface/Point3D.h"
0007 #include "DataFormats/EcalDetId/interface/ESDetId.h"
0008 #include "DataFormats/DetId/interface/DetId.h"
0009 #include "RecoCaloTools/Navigation/interface/EcalPreshowerNavigator.h"
0010 #include <string>
0011 #include <vector>
0012 #include <set>
0013
0014 class CaloSubdetectorGeometry;
0015 class CaloSubdetectorTopology;
0016
0017 class PreshowerPhiClusterAlgo {
0018 public:
0019 typedef math::XYZPoint Point;
0020
0021 typedef std::map<DetId, EcalRecHit> RecHitsMap;
0022 typedef std::set<DetId> HitsID;
0023
0024 PreshowerPhiClusterAlgo() : esStripEnergyCut_(0.) {}
0025
0026 PreshowerPhiClusterAlgo(float stripEnergyCut) : esStripEnergyCut_(stripEnergyCut) {}
0027
0028 ~PreshowerPhiClusterAlgo() {}
0029
0030 reco::PreshowerCluster makeOneCluster(ESDetId strip,
0031 HitsID *used_strips,
0032 RecHitsMap *rechits_map,
0033 const CaloSubdetectorGeometry *geometry_p,
0034 double deltaEta,
0035 double minDeltaPhi,
0036 double maxDeltaPhi);
0037
0038 bool goodStrip(RecHitsMap::iterator candidate_it);
0039
0040 private:
0041 float esStripEnergyCut_;
0042
0043 std::vector<ESDetId> road_2d;
0044
0045
0046 RecHitsMap *rechits_map;
0047
0048
0049 HitsID *used_s;
0050 };
0051 #endif