File indexing completed on 2024-04-06 12:04:44
0001 #ifndef DATAFORMATS_METRECO_ECALHALODATA_H
0002 #define DATAFORMATS_METRECO_ECALHALODATA_H
0003
0004
0005
0006
0007
0008
0009 #include "DataFormats/METReco/interface/PhiWedge.h"
0010 #include <cmath>
0011 #include "DataFormats/Common/interface/RefVector.h"
0012 #include "DataFormats/Common/interface/Ref.h"
0013 #include "DataFormats/Common/interface/RefProd.h"
0014 #include "DataFormats/EgammaReco/interface/SuperCluster.h"
0015 #include "DataFormats/EgammaReco/interface/SuperClusterFwd.h"
0016 #include "DataFormats/EgammaReco/interface/BasicCluster.h"
0017 #include "DataFormats/Common/interface/ValueMap.h"
0018 #include "DataFormats/METReco/interface/HaloClusterCandidateECAL.h"
0019
0020 namespace reco {
0021 class EcalHaloData {
0022 public:
0023
0024 EcalHaloData();
0025
0026 ~EcalHaloData() {}
0027
0028
0029
0030 int NumberOfHaloSuperClusters(float roundness = 100., float angle = 4.0) const;
0031
0032
0033 const std::vector<PhiWedge>& GetPhiWedges() const { return PhiWedgeCollection; }
0034 std::vector<PhiWedge>& GetPhiWedges() { return PhiWedgeCollection; }
0035
0036
0037 edm::RefVector<reco::SuperClusterCollection>& GetSuperClusters() { return TheSuperClusterRefs; }
0038 const edm::RefVector<reco::SuperClusterCollection>& GetSuperClusters() const { return TheSuperClusterRefs; }
0039
0040
0041 edm::ValueMap<float>& GetShowerShapesRoundness() { return ShowerShapes_Roundness; }
0042 const edm::ValueMap<float>& GetShowerShapesRoundness() const { return ShowerShapes_Roundness; }
0043
0044 edm::ValueMap<float>& GetShowerShapesAngle() { return ShowerShapes_Angle; }
0045 const edm::ValueMap<float>& GetShowerShapesAngle() const { return ShowerShapes_Angle; }
0046
0047 const std::vector<HaloClusterCandidateECAL>& getHaloClusterCandidatesEB() const { return thehaloclustercands_eb; }
0048 std::vector<HaloClusterCandidateECAL>& getHaloClusterCandidatesEB() { return thehaloclustercands_eb; }
0049 const std::vector<HaloClusterCandidateECAL>& getHaloClusterCandidatesEE() const { return thehaloclustercands_ee; }
0050 std::vector<HaloClusterCandidateECAL>& getHaloClusterCandidatesEE() { return thehaloclustercands_ee; }
0051
0052 void setHaloClusterCandidatesEB(const std::vector<HaloClusterCandidateECAL>& x) { thehaloclustercands_eb = x; }
0053 void setHaloClusterCandidatesEE(const std::vector<HaloClusterCandidateECAL>& x) { thehaloclustercands_ee = x; }
0054
0055 private:
0056 std::vector<PhiWedge> PhiWedgeCollection;
0057 edm::RefVector<reco::SuperClusterCollection> TheSuperClusterRefs;
0058
0059 edm::ValueMap<float> ShowerShapes_Roundness;
0060 edm::ValueMap<float> ShowerShapes_Angle;
0061
0062 std::vector<HaloClusterCandidateECAL> thehaloclustercands_eb;
0063 std::vector<HaloClusterCandidateECAL> thehaloclustercands_ee;
0064 };
0065 }
0066
0067 #endif