00001 #ifndef DATAFORMATS_METRECO_ECALHALODATA_H 00002 #define DATAFORMATS_METRECO_ECALHALODATA_H 00003 /* 00004 [class]: EcalHaloData 00005 [authors]: R. Remington, The University of Florida 00006 [description]: Container class to store beam halo data specific to the Ecal subdetector 00007 [date]: October 15, 2009 00008 */ 00009 #include "DataFormats/METReco/interface/PhiWedge.h" 00010 #include <cmath> 00011 #include "DataFormats/Common/interface/RefVector.h" 00012 #include "DataFormats/Common/interface/Ref.h" 00013 #include "DataFormats/Common/interface/RefProd.h" 00014 #include "DataFormats/EgammaReco/interface/SuperCluster.h" 00015 #include "DataFormats/EgammaReco/interface/SuperClusterFwd.h" 00016 #include "DataFormats/EgammaReco/interface/BasicCluster.h" 00017 #include "DataFormats/Common/interface/ValueMap.h" 00018 00019 namespace reco { 00020 class EcalHaloData { 00021 public: 00022 //Constructor 00023 EcalHaloData(); 00024 //Destructor 00025 ~EcalHaloData(){} 00026 00027 // Number of Halo-like superclusters as a function of the roundness and angular cuts 00028 //int NumberOfHaloSuperClusters(int iRoundness=2, int iAngle=2) const; 00029 int NumberOfHaloSuperClusters(float roundness=100., float angle=4.0) const; 00030 00031 // Return collection of 5-degree Phi Wedges built from Ecal RecHits 00032 const std::vector<PhiWedge>& GetPhiWedges() const {return PhiWedgeCollection;} 00033 std::vector<PhiWedge>& GetPhiWedges(){return PhiWedgeCollection;} 00034 00035 // Get Reference to the SuperClusters 00036 edm::RefVector<reco::SuperClusterCollection>& GetSuperClusters(){return TheSuperClusterRefs;} 00037 const edm::RefVector<reco::SuperClusterCollection>& GetSuperClusters() const {return TheSuperClusterRefs;} 00038 00039 00040 // Store Shower Shape variables for SuperClusters 00041 edm::ValueMap<float>& GetShowerShapesRoundness(){ return ShowerShapes_Roundness;} 00042 const edm::ValueMap<float>& GetShowerShapesRoundness()const { return ShowerShapes_Roundness;} 00043 00044 edm::ValueMap<float>& GetShowerShapesAngle() { return ShowerShapes_Angle;} 00045 const edm::ValueMap<float>& GetShowerShapesAngle() const { return ShowerShapes_Angle;} 00046 private: 00047 std::vector<PhiWedge> PhiWedgeCollection; 00048 edm::RefVector<reco::SuperClusterCollection> TheSuperClusterRefs; 00049 00050 edm::ValueMap<float> ShowerShapes_Roundness; 00051 edm::ValueMap<float> ShowerShapes_Angle; 00052 00053 }; 00054 } 00055 00056 #endif