File indexing completed on 2024-04-06 12:24:51
0001 #ifndef HFRECORECALCANDIDATEALGO_H
0002 #define HFRECORECALCANDIDATEALGO_H 1
0003 #include "HFValueStruct.h"
0004
0005 #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h"
0006 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
0007 #include "DataFormats/EgammaReco/interface/HFEMClusterShape.h"
0008 #include "DataFormats/EgammaReco/interface/SuperCluster.h"
0009 #include "DataFormats/EgammaReco/interface/HFEMClusterShapeAssociation.h"
0010 #include "DataFormats/EgammaReco/interface/HFEMClusterShape.h"
0011 #include "DataFormats/EgammaReco/interface/SuperClusterFwd.h"
0012 #include "DataFormats/RecoCandidate/interface/RecoEcalCandidateFwd.h"
0013 #include "DataFormats/Common/interface/Handle.h"
0014 #include <map>
0015 #include <list>
0016
0017
0018
0019
0020
0021
0022
0023 class HFRecoEcalCandidateAlgo {
0024 public:
0025 HFRecoEcalCandidateAlgo(bool correct,
0026 double e9e25Cut,
0027 double intercept2DCut,
0028 double intercept2DSlope,
0029 const std::vector<double>& e1e9Cut,
0030 const std::vector<double>& eCOREe9Cut,
0031 const std::vector<double>& eSeLCut,
0032 const reco::HFValueStruct hfvv);
0033
0034
0035 void produce(const edm::Handle<reco::SuperClusterCollection>& SuperClusters,
0036 const reco::HFEMClusterShapeAssociationCollection& AssocShapes,
0037 reco::RecoEcalCandidateCollection& RecoECand,
0038 int nvtx) const;
0039
0040 private:
0041 reco::RecoEcalCandidate correctEPosition(const reco::SuperCluster& original,
0042 const reco::HFEMClusterShape& shape,
0043 int nvtx) const;
0044
0045 const bool m_correct;
0046 const double m_e9e25Cut;
0047 const double m_intercept2DCut;
0048 const double m_intercept2DSlope;
0049 const double m_e1e9Cuthi;
0050 const double m_eCOREe9Cuthi;
0051 const double m_eSeLCuthi;
0052 const double m_e1e9Cutlo;
0053 const double m_eCOREe9Cutlo;
0054 const double m_eSeLCutlo;
0055 const int m_era;
0056 const reco::HFValueStruct m_hfvv;
0057 };
0058
0059 #endif