Go to the documentation of this file.00001 #ifndef RecoParticleFlow_PFClusterTools_PFPhotonClusters_h
00002 #define RecoParticleFlow_PFClusterTools_PFPhotonClusters_h
00003 #include"DataFormats/ParticleFlowReco/interface/PFCluster.h"
00004 #include"DataFormats/ParticleFlowReco/interface/PFClusterFwd.h"
00005
00006
00007
00008
00009
00010
00011
00012 using namespace reco;
00013 class PFPhotonClusters{
00014 public:
00015 PFPhotonClusters(PFClusterRef PFClusterRef);
00016 void SetSeed();
00017 void PFCrystalCoor();
00018 void FillClusterShape();
00019 void FillClusterWidth();
00020
00021 std::pair<double, double> GetCrysCoor(){
00022 std::pair<double, double> crys;
00023 if(isEB_){
00024 crys.first=CrysEta_;
00025 crys.second=CrysPhi_;
00026 }
00027 else{
00028 crys.first=CrysX_;
00029 crys.second=CrysY_;
00030 }
00031 return crys;
00032 }
00033 std::pair<double, double> GetCrysIndex(){
00034 std::pair<int, int> crysI;
00035 if(isEB_){
00036 crysI.first=CrysIEta_;
00037 crysI.second=CrysIPhi_;
00038 }
00039 else{
00040 crysI.first=CrysIX_;
00041 crysI.second=CrysIY_;
00042 }
00043 return crysI;
00044 }
00045 int EtaCrack(){return CrysIEtaCrack_;}
00046 double E5x5Element(int i, int j){
00047
00048 double E=0;
00049 if(abs(i)>2 ||abs(j)>2)return E;
00050 int ind1=i+2;
00051 int ind2=j+2;
00052 E=e5x5_[ind1][ind2];
00053
00054 return E;
00055 }
00056 double PhiWidth(){return sigphiphi_;}
00057 double EtaWidth(){return sigetaeta_;}
00058 double EtaPhiWidth(){return sigetaphi_;}
00059 private:
00060 PFClusterRef PFClusterRef_;
00061
00062 DetId idseed_;
00063 math::XYZVector seedPosition_, seedAxis_;
00064 bool isEB_;
00065
00066 float CrysX_, CrysY_, CrysEta_, CrysPhi_;
00067 int CrysIEta_, CrysIPhi_, CrysIEtaCrack_, CrysIX_, CrysIY_;
00068
00069 double e5x5_[5][5];
00070 double sigphiphi_, sigetaeta_, sigetaphi_;
00071
00072 };
00073 #endif