CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/src/DataFormats/METReco/interface/EcalHaloData.h

Go to the documentation of this file.
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