CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/RecoEgamma/EgammaHFProducers/interface/HFClusterAlgo.h

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 //$Id:HFClusterAlgo.h,v 1.2 2007/09/19 09:52 K. Klapoetke Minnesota
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 private:
00038   friend class CompareHFCompleteHitET;
00039   friend class CompareHFCore;
00040  
00041   double m_minTowerEnergy, m_seedThreshold,m_maximumSL,m_maximumRenergy;
00042   bool m_usePMTFlag;
00043   bool m_usePulseFlag,m_forcePulseFlagMC;
00044   bool m_isMC;
00045   int m_correctionSet;
00046   std::vector<double> m_cutByEta;
00047   std::vector<double> m_correctionByEta;
00048  
00049   struct HFCompleteHit {
00050     HcalDetId id;
00051     double energy, et;
00052   };
00053  bool isPMTHit(const HFRecHit& hfr);
00054   bool makeCluster(const HcalDetId& seedid,
00055                    const HFRecHitCollection& hf, 
00056                    const CaloGeometry& geom,
00057                    reco::HFEMClusterShape& clusShp,
00058                    reco::SuperCluster& SClus);
00059 };
00060 
00061 #endif