File indexing completed on 2024-04-06 12:24:51
0001 #ifndef RECOLOCALCALO_HFCLUSTERPRODUCER_HFCLUSTERALGO_H
0002 #define RECOLOCALCALO_HFCLUSTERPRODUCER_HFCLUSTERALGO_H 1
0003
0004 #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h"
0005 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
0006 #include "DataFormats/EgammaReco/interface/HFEMClusterShape.h"
0007 #include "DataFormats/EgammaReco/interface/SuperCluster.h"
0008 #include "DataFormats/EgammaReco/interface/HFEMClusterShapeAssociation.h"
0009 #include "DataFormats/EgammaReco/interface/HFEMClusterShape.h"
0010 #include "DataFormats/EgammaReco/interface/SuperClusterFwd.h"
0011
0012
0013
0014
0015
0016
0017
0018 class HFClusterAlgo {
0019 public:
0020 HFClusterAlgo();
0021
0022 void setup(double minTowerEnergy,
0023 double seedThreshold,
0024 double maximumSL,
0025 double m_maximumRenergy,
0026 bool usePMTflag,
0027 bool usePulseflag,
0028 bool forcePulseFlagMC,
0029 int correctionSet);
0030
0031 void isMC(bool isMC) { m_isMC = isMC; }
0032
0033
0034 void clusterize(const HFRecHitCollection& hf,
0035 const CaloGeometry& geom,
0036 reco::HFEMClusterShapeCollection& clusters,
0037 reco::SuperClusterCollection& SuperClusters);
0038
0039 void resetForRun();
0040
0041 private:
0042 friend class CompareHFCompleteHitET;
0043 friend class CompareHFCore;
0044
0045 double m_minTowerEnergy, m_seedThreshold, m_maximumSL, m_maximumRenergy;
0046 bool m_usePMTFlag;
0047 bool m_usePulseFlag, m_forcePulseFlagMC;
0048 bool m_isMC;
0049 int m_correctionSet;
0050 std::vector<double> m_cutByEta;
0051 std::vector<double> m_correctionByEta;
0052 std::vector<double> m_seedmnEta;
0053 std::vector<double> m_seedMXeta;
0054 std::vector<double> m_seedmnPhi;
0055 std::vector<double> m_seedMXphi;
0056 struct HFCompleteHit {
0057 HcalDetId id;
0058 double energy, et;
0059 };
0060 bool isPMTHit(const HFRecHit& hfr);
0061 bool makeCluster(const HcalDetId& seedid,
0062 const HFRecHitCollection& hf,
0063 const CaloGeometry* geom,
0064 reco::HFEMClusterShape& clusShp,
0065 reco::SuperCluster& SClus);
0066 };
0067
0068 #endif