CMS 3D CMS Logo

PreshowerClusterAlgo.h

Go to the documentation of this file.
00001 #ifndef RecoEcal_EgammaClusterAlgos_PreshowerClusterAlgo_h
00002 #define RecoEcal_EgammaClusterAlgos_PreshowerClusterAlgo_h
00003 //
00004 // $Id: PreshowerClusterAlgo.h,v 1.12 2007/02/14 14:51:27 futyand Exp $
00005 //
00006 
00007 //#include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
00008 #include "DataFormats/EgammaReco/interface/PreshowerCluster.h"
00009 #include "DataFormats/EcalRecHit/interface/EcalRecHit.h"
00010 #include "DataFormats/Math/interface/Point3D.h"
00011 #include "DataFormats/EcalDetId/interface/ESDetId.h"
00012 #include "DataFormats/DetId/interface/DetId.h"
00013 #include "RecoCaloTools/Navigation/interface/EcalPreshowerNavigator.h"
00014 
00015 // C/C++ headers
00016 #include <string>
00017 #include <vector>
00018 #include <set>
00019 
00020 class CaloSubdetectorGeometry;
00021 class CaloSubdetectorTopology;
00022 
00023 
00024 class PreshowerClusterAlgo {
00025 
00026 
00027  public:
00028 
00029    enum DebugLevel { pDEBUG = 0, pINFO = 1, pERROR = 2 }; 
00030 
00031    typedef math::XYZPoint Point;
00032 
00033    typedef std::map<DetId, EcalRecHit> RecHitsMap;
00034    typedef std::set<DetId> HitsID;
00035 
00036    PreshowerClusterAlgo() : 
00037    preshStripEnergyCut_(0.), preshClusterEnergyCut_(0.), preshSeededNstr_(15), debugLevel_(pINFO)
00038    {}
00039 
00040    PreshowerClusterAlgo(double stripEnergyCut, double clusterEnergyCut, int nStripCut, DebugLevel debugLevel = pINFO) :
00041    preshStripEnergyCut_(stripEnergyCut), preshClusterEnergyCut_(clusterEnergyCut), preshSeededNstr_(nStripCut), debugLevel_(debugLevel)
00042    {}
00043 
00044    ~PreshowerClusterAlgo() {};
00045 
00046    reco::PreshowerCluster makeOneCluster(ESDetId strip,
00047                                          HitsID *used_strips,
00048                                          RecHitsMap *rechits_map,
00049                                          const CaloSubdetectorGeometry*& geometry_p,
00050                                          CaloSubdetectorTopology*& topology_p);
00051 
00052    bool goodStrip(RecHitsMap::iterator candidate_it);
00053 
00054    void findRoad(ESDetId strip, EcalPreshowerNavigator theESNav, int plane);
00055 
00056  private:
00057   
00058    double preshStripEnergyCut_;
00059    double preshClusterEnergyCut_;
00060    int preshSeededNstr_;
00061    int debugLevel_;
00062 
00063    std::vector<ESDetId> road_2d;
00064 
00065    // The map of hits
00066    RecHitsMap *rechits_map;
00067 
00068    // The set of used DetID's
00069    HitsID *used_s;
00070 
00071 };
00072 #endif
00073 

Generated on Tue Jun 9 17:43:11 2009 for CMSSW by  doxygen 1.5.4