CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
EG8XObjectUpdateModifier Class Reference
Inheritance diagram for EG8XObjectUpdateModifier:
ModifyObjectValueBase

Public Member Functions

 EG8XObjectUpdateModifier (const edm::ParameterSet &conf, edm::ConsumesCollector &cc)
 
void modifyObject (pat::Electron &ele) const final
 
void modifyObject (pat::Photon &pho) const final
 
void modifyObject (reco::GsfElectron &ele) const final
 
void modifyObject (reco::Photon &pho) const final
 
void setEvent (const edm::Event &) final
 
void setEventContent (const edm::EventSetup &) final
 
 ~EG8XObjectUpdateModifier () override
 
- Public Member Functions inherited from ModifyObjectValueBase
virtual void modifyObject (pat::Jet &) const
 
virtual void modifyObject (pat::Muon &) const
 
virtual void modifyObject (pat::Tau &) const
 
virtual void modifyObject (reco::BaseTau &) const
 
virtual void modifyObject (reco::Jet &) const
 
virtual void modifyObject (reco::Muon &) const
 
 ModifyObjectValueBase (const edm::ParameterSet &conf)
 
const std::string & name () const
 
virtual ~ModifyObjectValueBase ()
 

Private Member Functions

std::pair< int, bool > getSaturationInfo (const reco::SuperCluster &superClus) const
 

Private Attributes

CaloTopology const * caloTopo_ = nullptr
 
edm::ESGetToken< CaloTopology, CaloTopologyRecordcaloTopoToken_
 
EcalRecHitCollection const * ecalRecHitsEB_ = nullptr
 
edm::EDGetTokenT< EcalRecHitCollectionecalRecHitsEBToken_
 
EcalRecHitCollection const * ecalRecHitsEE_ = nullptr
 
edm::EDGetTokenT< EcalRecHitCollectionecalRecHitsEEToken_
 

Detailed Description

Definition at line 20 of file EG8XObjectUpdateModifier.cc.

Constructor & Destructor Documentation

◆ EG8XObjectUpdateModifier()

EG8XObjectUpdateModifier::EG8XObjectUpdateModifier ( const edm::ParameterSet conf,
edm::ConsumesCollector cc 
)

Definition at line 46 of file EG8XObjectUpdateModifier.cc.

47  : ModifyObjectValueBase(conf),
48  caloTopoToken_{cc.esConsumes()},
49  ecalRecHitsEBToken_(cc.consumes(conf.getParameter<edm::InputTag>("ecalRecHitsEB"))),
50  ecalRecHitsEEToken_(cc.consumes(conf.getParameter<edm::InputTag>("ecalRecHitsEE"))) {}

◆ ~EG8XObjectUpdateModifier()

EG8XObjectUpdateModifier::~EG8XObjectUpdateModifier ( )
inlineoverride

Definition at line 23 of file EG8XObjectUpdateModifier.cc.

23 {}

Member Function Documentation

◆ getSaturationInfo()

std::pair< int, bool > EG8XObjectUpdateModifier::getSaturationInfo ( const reco::SuperCluster superClus) const
private

Definition at line 94 of file EG8XObjectUpdateModifier.cc.

94  {
95  bool isEB = superClus.seed()->seed().subdetId() == EcalBarrel;
96  const auto& ecalRecHits = isEB ? *ecalRecHitsEB_ : *ecalRecHitsEE_;
97 
98  int nrSatCrys = 0;
99  bool seedSaturated = false;
100  const auto& hitsAndFractions = superClus.seed()->hitsAndFractions();
101  for (const auto& hitFractionPair : hitsAndFractions) {
102  auto ecalRecHitIt = ecalRecHits.find(hitFractionPair.first);
103  if (ecalRecHitIt != ecalRecHits.end() && ecalRecHitIt->checkFlag(EcalRecHit::Flags::kSaturated)) {
104  nrSatCrys++;
105  if (hitFractionPair.first == superClus.seed()->seed())
106  seedSaturated = true;
107  }
108  }
109  return {nrSatCrys, seedSaturated};
110 }

References EcalBarrel, ecalRecHitsEB_, ecalRecHitsEE_, and reco::SuperCluster::seed().

Referenced by modifyObject().

◆ modifyObject() [1/4]

void EG8XObjectUpdateModifier::modifyObject ( pat::Electron ele) const
inlinefinalvirtual

Reimplemented from ModifyObjectValueBase.

Definition at line 31 of file EG8XObjectUpdateModifier.cc.

31 { return modifyObject(static_cast<reco::GsfElectron&>(ele)); }

References modifyObject().

Referenced by modifyObject().

◆ modifyObject() [2/4]

void EG8XObjectUpdateModifier::modifyObject ( pat::Photon pho) const
inlinefinalvirtual

Reimplemented from ModifyObjectValueBase.

Definition at line 32 of file EG8XObjectUpdateModifier.cc.

32 { return modifyObject(static_cast<reco::Photon&>(pho)); }

References modifyObject().

Referenced by modifyObject().

◆ modifyObject() [3/4]

void EG8XObjectUpdateModifier::modifyObject ( reco::GsfElectron ele) const
finalvirtual

Reimplemented from ModifyObjectValueBase.

Definition at line 61 of file EG8XObjectUpdateModifier.cc.

61  {
62  const reco::CaloCluster& seedClus = *(ele.superCluster()->seed());
63  const EcalRecHitCollection* ecalRecHits = ele.isEB() ? ecalRecHitsEB_ : ecalRecHitsEE_;
64 
65  auto full5x5ShowerShapes = ele.full5x5_showerShape();
66  full5x5ShowerShapes.e2x5Left = noZS::EcalClusterTools::e2x5Left(seedClus, ecalRecHits, caloTopo_);
67  full5x5ShowerShapes.e2x5Right = noZS::EcalClusterTools::e2x5Right(seedClus, ecalRecHits, caloTopo_);
68  full5x5ShowerShapes.e2x5Top = noZS::EcalClusterTools::e2x5Top(seedClus, ecalRecHits, caloTopo_);
69  full5x5ShowerShapes.e2x5Bottom = noZS::EcalClusterTools::e2x5Bottom(seedClus, ecalRecHits, caloTopo_);
70  ele.full5x5_setShowerShape(full5x5ShowerShapes);
71 
72  auto showerShapes = ele.showerShape();
73  showerShapes.e2x5Left = EcalClusterTools::e2x5Left(seedClus, ecalRecHits, caloTopo_);
74  showerShapes.e2x5Right = EcalClusterTools::e2x5Right(seedClus, ecalRecHits, caloTopo_);
75  showerShapes.e2x5Top = EcalClusterTools::e2x5Top(seedClus, ecalRecHits, caloTopo_);
76  showerShapes.e2x5Bottom = EcalClusterTools::e2x5Bottom(seedClus, ecalRecHits, caloTopo_);
77  ele.setShowerShape(showerShapes);
78 
80  auto satInfo = getSaturationInfo(*ele.superCluster());
81  eleSatInfo.nSaturatedXtals = satInfo.first;
82  eleSatInfo.isSeedSaturated = satInfo.second;
83  ele.setSaturationInfo(eleSatInfo);
84 }

References caloTopo_, EcalClusterToolsT< noZS >::e2x5Bottom(), EcalClusterToolsT< noZS >::e2x5Left(), reco::GsfElectron::ShowerShape::e2x5Left, EcalClusterToolsT< noZS >::e2x5Right(), EcalClusterToolsT< noZS >::e2x5Top(), ecalRecHitsEB_, ecalRecHitsEE_, reco::GsfElectron::full5x5_setShowerShape(), reco::GsfElectron::full5x5_showerShape(), getSaturationInfo(), reco::GsfElectron::isEB(), reco::GsfElectron::SaturationInfo::isSeedSaturated, reco::GsfElectron::SaturationInfo::nSaturatedXtals, reco::GsfElectron::setSaturationInfo(), reco::GsfElectron::setShowerShape(), reco::GsfElectron::showerShape(), and reco::GsfElectron::superCluster().

◆ modifyObject() [4/4]

void EG8XObjectUpdateModifier::modifyObject ( reco::Photon pho) const
finalvirtual

Reimplemented from ModifyObjectValueBase.

Definition at line 86 of file EG8XObjectUpdateModifier.cc.

86  {
88  auto satInfo = getSaturationInfo(*pho.superCluster());
89  phoSatInfo.nSaturatedXtals = satInfo.first;
90  phoSatInfo.isSeedSaturated = satInfo.second;
91  pho.setSaturationInfo(phoSatInfo);
92 }

References getSaturationInfo(), reco::Photon::SaturationInfo::isSeedSaturated, reco::Photon::SaturationInfo::nSaturatedXtals, reco::Photon::setSaturationInfo(), and reco::Photon::superCluster().

◆ setEvent()

void EG8XObjectUpdateModifier::setEvent ( const edm::Event iEvent)
finalvirtual

◆ setEventContent()

void EG8XObjectUpdateModifier::setEventContent ( const edm::EventSetup iSetup)
finalvirtual

Reimplemented from ModifyObjectValueBase.

Definition at line 57 of file EG8XObjectUpdateModifier.cc.

57  {
58  caloTopo_ = &iSetup.getData(caloTopoToken_);
59 }

References caloTopo_, caloTopoToken_, and edm::EventSetup::getData().

Member Data Documentation

◆ caloTopo_

CaloTopology const* EG8XObjectUpdateModifier::caloTopo_ = nullptr
private

Definition at line 37 of file EG8XObjectUpdateModifier.cc.

Referenced by modifyObject(), and setEventContent().

◆ caloTopoToken_

edm::ESGetToken<CaloTopology, CaloTopologyRecord> EG8XObjectUpdateModifier::caloTopoToken_
private

Definition at line 41 of file EG8XObjectUpdateModifier.cc.

Referenced by setEventContent().

◆ ecalRecHitsEB_

EcalRecHitCollection const* EG8XObjectUpdateModifier::ecalRecHitsEB_ = nullptr
private

Definition at line 38 of file EG8XObjectUpdateModifier.cc.

Referenced by getSaturationInfo(), modifyObject(), and setEvent().

◆ ecalRecHitsEBToken_

edm::EDGetTokenT<EcalRecHitCollection> EG8XObjectUpdateModifier::ecalRecHitsEBToken_
private

Definition at line 42 of file EG8XObjectUpdateModifier.cc.

Referenced by setEvent().

◆ ecalRecHitsEE_

EcalRecHitCollection const* EG8XObjectUpdateModifier::ecalRecHitsEE_ = nullptr
private

Definition at line 39 of file EG8XObjectUpdateModifier.cc.

Referenced by getSaturationInfo(), modifyObject(), and setEvent().

◆ ecalRecHitsEEToken_

edm::EDGetTokenT<EcalRecHitCollection> EG8XObjectUpdateModifier::ecalRecHitsEEToken_
private

Definition at line 43 of file EG8XObjectUpdateModifier.cc.

Referenced by setEvent().

reco::GsfElectron::isEB
bool isEB() const
Definition: GsfElectron.h:336
EG8XObjectUpdateModifier::getSaturationInfo
std::pair< int, bool > getSaturationInfo(const reco::SuperCluster &superClus) const
Definition: EG8XObjectUpdateModifier.cc:94
reco::Photon::superCluster
reco::SuperClusterRef superCluster() const override
Ref to SuperCluster.
reco::GsfElectron::setSaturationInfo
void setSaturationInfo(const SaturationInfo &s)
Definition: GsfElectron.h:530
reco::Photon::SaturationInfo::nSaturatedXtals
int nSaturatedXtals
Definition: Photon.h:300
EcalClusterToolsT::e2x5Bottom
static float e2x5Bottom(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloTopology *topology)
Definition: EcalClusterTools.h:598
reco::Photon::SaturationInfo
Definition: Photon.h:299
edm::SortedCollection< EcalRecHit >
reco::GsfElectron::full5x5_setShowerShape
void full5x5_setShowerShape(const ShowerShape &s)
Definition: GsfElectron.h:500
reco::GsfElectron::SaturationInfo::nSaturatedXtals
int nSaturatedXtals
Definition: GsfElectron.h:521
EG8XObjectUpdateModifier::ecalRecHitsEE_
EcalRecHitCollection const * ecalRecHitsEE_
Definition: EG8XObjectUpdateModifier.cc:39
EG8XObjectUpdateModifier::ecalRecHitsEBToken_
edm::EDGetTokenT< EcalRecHitCollection > ecalRecHitsEBToken_
Definition: EG8XObjectUpdateModifier.cc:42
reco::GsfElectron::showerShape
const ShowerShape & showerShape() const
Definition: GsfElectron.h:475
ModifyObjectValueBase::ModifyObjectValueBase
ModifyObjectValueBase(const edm::ParameterSet &conf)
Definition: ModifyObjectValueBase.h:20
EcalBarrel
Definition: EcalSubdetector.h:10
reco::GsfElectron::setShowerShape
void setShowerShape(const ShowerShape &s)
Definition: GsfElectron.h:499
reco::GsfElectron::full5x5_showerShape
const ShowerShape & full5x5_showerShape() const
Definition: GsfElectron.h:496
EcalClusterToolsT::e2x5Top
static float e2x5Top(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloTopology *topology)
Definition: EcalClusterTools.h:590
reco::CaloCluster
Definition: CaloCluster.h:31
EG8XObjectUpdateModifier::caloTopoToken_
edm::ESGetToken< CaloTopology, CaloTopologyRecord > caloTopoToken_
Definition: EG8XObjectUpdateModifier.cc:41
reco::SuperCluster::seed
const CaloClusterPtr & seed() const
seed BasicCluster
Definition: SuperCluster.h:77
EG8XObjectUpdateModifier::modifyObject
void modifyObject(reco::GsfElectron &ele) const final
Definition: EG8XObjectUpdateModifier.cc:61
reco::GsfElectron::ShowerShape::e2x5Left
float e2x5Left
Definition: GsfElectron.h:393
iEvent
int iEvent
Definition: GenABIO.cc:224
reco::GsfElectron::SaturationInfo::isSeedSaturated
bool isSeedSaturated
Definition: GsfElectron.h:522
cc
EcalClusterToolsT::e2x5Right
static float e2x5Right(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloTopology *topology)
Definition: EcalClusterTools.h:574
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:127
EcalClusterToolsT::e2x5Left
static float e2x5Left(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloTopology *topology)
Definition: EcalClusterTools.h:582
reco::Photon::SaturationInfo::isSeedSaturated
bool isSeedSaturated
Definition: Photon.h:301
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
reco::GsfElectron::superCluster
SuperClusterRef superCluster() const override
reference to a SuperCluster
Definition: GsfElectron.h:163
reco::Photon::setSaturationInfo
void setSaturationInfo(const SaturationInfo &s)
Definition: Photon.h:309
EG8XObjectUpdateModifier::ecalRecHitsEEToken_
edm::EDGetTokenT< EcalRecHitCollection > ecalRecHitsEEToken_
Definition: EG8XObjectUpdateModifier.cc:43
EG8XObjectUpdateModifier::caloTopo_
CaloTopology const * caloTopo_
Definition: EG8XObjectUpdateModifier.cc:37
reco::GsfElectron::SaturationInfo
Definition: GsfElectron.h:520
edm::InputTag
Definition: InputTag.h:15
EG8XObjectUpdateModifier::ecalRecHitsEB_
EcalRecHitCollection const * ecalRecHitsEB_
Definition: EG8XObjectUpdateModifier.cc:38