CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ggPFClusters.h
Go to the documentation of this file.
1 #ifndef ggPFClusters_h
2 #define ggPFClusters_h
5 
10 
14 
17 #include <memory>
18 using namespace edm;
19 using namespace std;
20 using namespace reco;
21 
22 class ggPFClusters {
23 
24  public:
25 
26  explicit ggPFClusters(
27  // reco::Photon PFPhoton,
28  edm::Handle<EcalRecHitCollection>& EBReducedRecHits,
29  edm::Handle<EcalRecHitCollection>& EEReducedRecHits,
30  const CaloSubdetectorGeometry* geomBar,
31  const CaloSubdetectorGeometry* geomEnd
32  );
33  virtual ~ggPFClusters();
34  //return PFClusters
35  virtual vector<reco::CaloCluster>getPFClusters(reco::SuperCluster);
36  //compute Energy
37  virtual float SumPFRecHits(std::vector< std::pair<DetId, float> >& bcCells, bool isEB);
38  // return the PFCluster Energy from Rec Hits that match SC Footprint
39  float getPFSuperclusterOverlap( reco::CaloCluster PFClust, reco::SuperCluster sc);
40  virtual float getPFSuperclusterOverlap( reco::CaloCluster PFClust, reco::Photon phot);
41  // compute the PFCluster Energy from Rec Hits that match SC Footprint
42  virtual float PFRecHitsSCOverlap(
43  std::vector< std::pair<DetId, float> >& bcCells1,
44  std::vector< std::pair<DetId, float> >& bcCells2,
45  bool isEB);
46 
47  //Local Coordinates for a PFCluster:
48  virtual void localCoordsEB( reco::CaloCluster clus, float &etacry, float &phicry, int &ieta, int &iphi, float &thetatilt, float &phitilt);
49  virtual void localCoordsEE(reco::CaloCluster clus, float &xcry, float &ycry, int &ix, int &iy, float &thetatilt, float &phitilt);
50 
51  //Cluster Shapes.
52  virtual float get5x5Element(int i, int j,std::vector< std::pair<DetId, float> >& bcCells, bool isEB );
53  virtual void Fill5x5Map(std::vector< std::pair<DetId, float> >& bcCells, bool isEB);
54  virtual DetId FindSeed(std::vector< std::pair<DetId, float> >& bcCells, bool isEB);
55  virtual std::pair<float, float>ClusterWidth(vector<reco::CaloCluster>& PFClust);
56  double LocalEnergyCorrection(const GBRForest *ReaderLCEB, const GBRForest *ReaderLCEE, reco::CaloCluster PFClust, float beamspotZ);
57 
58  void BasicClusterPFCandLink(
60  std::vector<reco::PFCandidatePtr>&insideBox,
61  std::vector<DetId>& MatchedRH
62 
63  );
64 
65  // virtual std::pair<float, float>ClusterShape(reco::CaloCluster PFClust);
66  private:
71  float e5x5_[5][5];
72 };
73 #endif
int i
Definition: DBlmapReader.cc:9
const CaloSubdetectorGeometry * geomBar_
Definition: ggPFClusters.h:69
Handle< EcalRecHitCollection > EBReducedRecHits_
Definition: ggPFClusters.h:67
int j
Definition: DBlmapReader.cc:9
Definition: DetId.h:20
const CaloSubdetectorGeometry * geomEnd_
Definition: ggPFClusters.h:70
Handle< EcalRecHitCollection > EEReducedRecHits_
Definition: ggPFClusters.h:68