Go to the documentation of this file. 1 #ifndef RecoEgamma_EgammaTools_HGCalShowerShapeHelper_h
2 #define RecoEgamma_EgammaTools_HGCalShowerShapeHelper_h
15 #include <CLHEP/Vector/LorentzVector.h>
16 #include <Math/Point3D.h>
17 #include <Math/Point3Dfwd.h>
91 std::shared_ptr<
const std::unordered_map<uint32_t, const reco::PFRecHit *> > pfRecHitPtrMap,
92 const std::vector<std::pair<DetId, float> > &hitsAndFracs,
93 const double rawEnergy,
94 const double minHitE = 0,
95 const double minHitET = 0,
97 const int maxLayer = -1,
103 double getRvar(
double cylinderR,
bool useFractions =
true,
bool useCellSize =
true)
const;
115 std::shared_ptr<const std::unordered_map<uint32_t, const reco::PFRecHit *> >
pfRecHitPtrMap_;
143 template <edm::Transition tr = edm::Transition::Event>
173 std::shared_ptr<std::unordered_map<uint32_t, const reco::PFRecHit *> >
pfRecHitPtrMap_;
HGCalShowerShapeHelper::ShowerShapeCalc createCalc(const reco::SuperCluster &sc, double minHitE=0, double minHitET=0, int minLayer=1, int maxLayer=-1, DetId::Detector subDet=DetId::HGCalEE) const
std::vector< std::pair< DetId, float > > hitsAndFracs_
std::shared_ptr< const hgcal::RecHitTools > recHitTools_
std::shared_ptr< hgcal::RecHitTools > recHitTools_
double getRvar(double cylinderR, bool useFractions=true, bool useCellSize=true) const
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeometryToken_
HGCalShowerShapeHelper & operator=(const HGCalShowerShapeHelper &rhs)=delete
void setTokens(edm::ConsumesCollector consumesCollector)
std::vector< double > hitEnergies_
void setPFRecHitPtrMap(const std::vector< reco::PFRecHit > &recHits)
void setFilteredHitsAndFractions(const std::vector< std::pair< DetId, float > > &hitsAndFracs)
std::shared_ptr< const std::unordered_map< uint32_t, const reco::PFRecHit * > > pfRecHitPtrMap_
~HGCalShowerShapeHelper()=default
std::vector< double > getEnergyHighestHits(unsigned int nrHits, bool useFractions=true) const
std::shared_ptr< std::unordered_map< uint32_t, const reco::PFRecHit * > > pfRecHitPtrMap_
std::vector< ROOT::Math::XYZVector > layerCentroids_
HGCalShowerShapeHelper::ShowerShapeCalc createCalc(const std::vector< std::pair< DetId, float > > &hitsAndFracs, double rawEnergy, double minHitE=0, double minHitET=0, int minLayer=1, int maxLayer=-1, DetId::Detector subDet=DetId::HGCalEE) const
const std::vector< std::pair< DetId, float > > & hitsAndFractions() const
ROOT::Math::XYZVector centroid_
ShowerShapeCalc(std::shared_ptr< const hgcal::RecHitTools > recHitTools, std::shared_ptr< const std::unordered_map< uint32_t, const reco::PFRecHit * > > pfRecHitPtrMap, const std::vector< std::pair< DetId, float > > &hitsAndFracs, const double rawEnergy, const double minHitE=0, const double minHitET=0, const int minLayer=1, const int maxLayer=-1, DetId::Detector subDet=DetId::HGCalEE)
double rawEnergy() const
raw uncorrected energy (sum of energies of component BasicClusters)
static const double kHDWaferCellSize_
Transform3DPJ::Vector XYZVector
double getCellSize(DetId detId) const
std::vector< double > layerEnergies_
void initPerEvent(const std::vector< reco::PFRecHit > &recHits)
static const double kLDWaferCellSize_
ShowerWidths getPCAWidths(double cylinderR, bool useFractions=false) const
std::vector< double > hitEnergiesWithFracs_
void initPerSetup(const edm::EventSetup &iSetup)