Go to the documentation of this file.00001 #ifndef HFRECORECALCANDIDATEALGO_H
00002 #define HFRECORECALCANDIDATEALGO_H 1
00003 #include "HFValueStruct.h"
00004
00005 #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h"
00006 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
00007 #include "DataFormats/EgammaReco/interface/HFEMClusterShape.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/SuperClusterFwd.h"
00012 #include "DataFormats/RecoCandidate/interface/RecoEcalCandidateFwd.h"
00013 #include "DataFormats/Common/interface/Handle.h"
00014 #include <map>
00015 #include <list>
00016
00021
00022
00023 class HFRecoEcalCandidateAlgo {
00024 public:
00025 HFRecoEcalCandidateAlgo(bool correct,
00026 double e9e25Cut,
00027 double intercept2DCut,
00028 double intercept2DSlope,
00029 const std::vector<double>& e1e9Cut,
00030 const std::vector<double>& eCOREe9Cut,
00031 const std::vector<double>& eSeLCut,
00032 const reco::HFValueStruct hfvv);
00033
00035 void produce(const edm::Handle<reco::SuperClusterCollection>& SuperClusters,
00036 const reco::HFEMClusterShapeAssociationCollection& AssocShapes,
00037 reco::RecoEcalCandidateCollection& RecoECand,
00038 int nvtx);
00039
00040
00041 private:
00042 reco::RecoEcalCandidate correctEPosition(const reco::SuperCluster& original, const reco::HFEMClusterShape& shape, int nvtx);
00043 bool m_correct;
00044 double m_e9e25Cut;
00045 double m_intercept2DCut;
00046 double m_intercept2DSlope;
00047 double m_e1e9Cuthi;
00048 double m_eCOREe9Cuthi;
00049 double m_eSeLCuthi;
00050 double m_e1e9Cutlo;
00051 double m_eCOREe9Cutlo;
00052 double m_eSeLCutlo;
00053 int m_era;
00054 bool m_correctForPileup;
00055 reco::HFValueStruct m_hfvv;
00056
00057 };
00058
00059 #endif