Go to the documentation of this file.00001 #ifndef RecoEcal_EgammaCoreTools_Mustache_h
00002 #define RecoEcal_EgammaCoreTools_Mustache_h
00003
00004 #include <vector>
00005 #include "DataFormats/CaloRecHit/interface/CaloCluster.h"
00006 #include "DataFormats/CaloRecHit/interface/CaloClusterFwd.h"
00007 #include "DataFormats/EgammaReco/interface/SuperCluster.h"
00008
00009
00010
00011 namespace reco {
00012 namespace MustacheKernel {
00013 bool inMustache(const float maxEta, const float maxPhi,
00014 const float ClustE, const float ClusEta,
00015 const float ClusPhi);
00016 bool inDynamicDPhiWindow(const bool isEE, const float seedPhi,
00017 const float ClustE, const float ClusEta,
00018 const float clusPhi);
00019
00020 }
00021
00022 class Mustache {
00023
00024 public:
00025 void MustacheID(const CaloClusterPtrVector& clusters,
00026 int & nclusters, float & EoutsideMustache);
00027 void MustacheID(const std::vector<const CaloCluster*>&,
00028 int & nclusers,
00029 float & EoutsideMustache);
00030 void MustacheID(const reco::SuperCluster& sc,
00031 int & nclusters,
00032 float & EoutsideMustache);
00033
00034
00035 void MustacheClust(const std::vector<CaloCluster>& clusters,
00036 std::vector<unsigned int>& insideMust,
00037 std::vector<unsigned int>& outsideMust);
00038
00039 void FillMustacheVar(const std::vector<CaloCluster>& clusters);
00040
00041 float MustacheE(){return Energy_In_Mustache_;}
00042 float MustacheEOut(){return Energy_Outside_Mustache_;}
00043 float MustacheEtOut(){return Et_Outside_Mustache_;}
00044 float LowestMustClust(){return LowestClusterEInMustache_;}
00045 int InsideMust(){return included_;}
00046 int OutsideMust(){return excluded_;}
00047 private:
00048 template<class RandomAccessPtrIterator>
00049 void MustacheID(const RandomAccessPtrIterator&,
00050 const RandomAccessPtrIterator&,
00051 int& nclusters,
00052 float& EoutsideMustache);
00053
00054 float Energy_In_Mustache_;
00055 float Energy_Outside_Mustache_;
00056 float Et_Outside_Mustache_;
00057 float LowestClusterEInMustache_;
00058 int excluded_;
00059 int included_;
00060 };
00061
00062
00063 }
00064
00065 #endif