CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/src/RecoEgamma/EgammaHFProducers/plugins/HFRecoEcalCandidateAlgo.h

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 //$Id:HFRecoEcalCandidateAlgo.h,v 1.1 2007/09/26 09:52 K. Klapoetke Minnesota
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