Back to home page

Project CMSSW displayed by LXR

 
 

    


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 //#include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
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 // C/C++ headers
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   // The map of hits
0054   RecHitsMap *rechits_map;
0055 
0056   // The set of used DetID's
0057   HitsID *used_s;
0058 };
0059 #endif