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