Go to the documentation of this file.00001 #ifndef RECOLOCALCALO_HFCLUSTERPRODUCER_HFCLUSTERALGO_H
00002 #define RECOLOCALCALO_HFCLUSTERPRODUCER_HFCLUSTERALGO_H 1
00003
00004 #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h"
00005 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
00006 #include "DataFormats/EgammaReco/interface/HFEMClusterShape.h"
00007 #include "DataFormats/EgammaReco/interface/BasicCluster.h"
00008 #include "DataFormats/EgammaReco/interface/SuperCluster.h"
00009 #include "DataFormats/EgammaReco/interface/HFEMClusterShapeAssociation.h"
00010 #include "DataFormats/EgammaReco/interface/HFEMClusterShape.h"
00011 #include "DataFormats/EgammaReco/interface/BasicClusterFwd.h"
00012 #include "DataFormats/EgammaReco/interface/SuperClusterFwd.h"
00013 #include <map>
00014 #include <list>
00015
00020
00021
00022 class HFClusterAlgo {
00023 public:
00024 HFClusterAlgo();
00025
00026 void setup(double minTowerEnergy, double seedThreshold,double maximumSL,double m_maximumRenergy,bool usePMTflag,bool usePulseflag, bool forcePulseFlagMC, int correctionSet);
00027
00028 void isMC(bool isMC) { m_isMC=isMC; }
00029
00031 void clusterize(const HFRecHitCollection& hf,
00032 const CaloGeometry& geom,
00033 reco::HFEMClusterShapeCollection& clusters,
00034 reco::SuperClusterCollection& SuperClusters);
00035
00036
00037 void resetForRun();
00038
00039 private:
00040 friend class CompareHFCompleteHitET;
00041 friend class CompareHFCore;
00042
00043 double m_minTowerEnergy, m_seedThreshold,m_maximumSL,m_maximumRenergy;
00044 bool m_usePMTFlag;
00045 bool m_usePulseFlag,m_forcePulseFlagMC;
00046 bool m_isMC;
00047 int m_correctionSet;
00048 std::vector<double> m_cutByEta;
00049 std::vector<double> m_correctionByEta;
00050 std::vector<double> m_seedmnEta;
00051 std::vector<double> m_seedMXeta;
00052 std::vector<double> m_seedmnPhi;
00053 std::vector<double> m_seedMXphi;
00054 struct HFCompleteHit {
00055 HcalDetId id;
00056 double energy, et;
00057 };
00058 bool isPMTHit(const HFRecHit& hfr);
00059 bool makeCluster(const HcalDetId& seedid,
00060 const HFRecHitCollection& hf,
00061 const CaloGeometry& geom,
00062 reco::HFEMClusterShape& clusShp,
00063 reco::SuperCluster& SClus);
00064 };
00065
00066 #endif