CMS 3D CMS Logo

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

Classes

class  TokenHandlePair
 

Public Member Functions

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

Static Private Member Functions

template<typename ObjType >
static edm::Ptr< ObjType > getPtrForValueMap (const ObjType &obj, const edm::Handle< edm::View< ObjType > > &objsVMIsKeyedTo)
 

Private Attributes

bool allowGsfTrkMatchForConvs_
 
TokenHandlePair< reco::BeamSpotbeamspot_
 
TokenHandlePair< reco::ConversionCollectionconversions_
 
TokenHandlePair< EcalRecHitCollectionecalRecHitsEB_
 
TokenHandlePair< EcalRecHitCollectionecalRecHitsEE_
 
TokenHandlePair< edm::View< reco::GsfElectron > > eleCollVMsAreKeyedTo_
 
TokenHandlePair< edm::ValueMap< float > > eleTrkIso04_
 
TokenHandlePair< edm::ValueMap< float > > eleTrkIso_
 
TokenHandlePair< edm::ValueMap< float > > phoChargedHadIso_
 
TokenHandlePair< edm::ValueMap< float > > phoChargedHadPFPVIso_
 
TokenHandlePair< edm::ValueMap< float > > phoChargedHadWorstVtxConeVetoIso_
 
TokenHandlePair< edm::ValueMap< float > > phoChargedHadWorstVtxIso_
 
TokenHandlePair< edm::View< reco::Photon > > phoCollVMsAreKeyedTo_
 
TokenHandlePair< edm::ValueMap< float > > phoNeutralHadIso_
 
TokenHandlePair< edm::ValueMap< float > > phoPhotonIso_
 
bool updateChargedHadPFPVIso_
 

Detailed Description

Definition at line 23 of file EG9X105XObjectUpdateModifier.cc.

Constructor & Destructor Documentation

◆ EG9X105XObjectUpdateModifier()

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

Definition at line 85 of file EG9X105XObjectUpdateModifier.cc.

86  : ModifyObjectValueBase(conf),
87  eleCollVMsAreKeyedTo_(conf, "eleCollVMsAreKeyedTo", cc),
88  phoCollVMsAreKeyedTo_(conf, "phoCollVMsAreKeyedTo", cc),
89  conversions_(conf, "conversions", cc),
90  beamspot_(conf, "beamspot", cc),
91  ecalRecHitsEB_(conf, "ecalRecHitsEB", cc),
92  ecalRecHitsEE_(conf, "ecalRecHitsEE", cc),
93  eleTrkIso_(conf, "eleTrkIso", cc),
94  eleTrkIso04_(conf, "eleTrkIso04", cc),
95  phoPhotonIso_(conf, "phoPhotonIso", cc),
96  phoNeutralHadIso_(conf, "phoNeutralHadIso", cc),
97  phoChargedHadIso_(conf, "phoChargedHadIso", cc),
98  phoChargedHadWorstVtxIso_(conf, "phoChargedHadWorstVtxIso", cc),
99  phoChargedHadWorstVtxConeVetoIso_(conf, "phoChargedHadWorstVtxConeVetoIso", cc),
100  phoChargedHadPFPVIso_(conf, "phoChargedHadPFPVIso", cc),
101  allowGsfTrkMatchForConvs_(conf.getParameter<bool>("allowGsfTrackForConvs")),
102  updateChargedHadPFPVIso_(conf.getParameter<bool>("updateChargedHadPFPVIso")) {}
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
TokenHandlePair< edm::ValueMap< float > > eleTrkIso04_
TokenHandlePair< edm::ValueMap< float > > phoPhotonIso_
TokenHandlePair< edm::ValueMap< float > > phoChargedHadWorstVtxIso_
TokenHandlePair< edm::View< reco::Photon > > phoCollVMsAreKeyedTo_
uint32_t cc[maxCellsPerHit]
Definition: gpuFishbone.h:49
TokenHandlePair< reco::BeamSpot > beamspot_
TokenHandlePair< EcalRecHitCollection > ecalRecHitsEE_
TokenHandlePair< EcalRecHitCollection > ecalRecHitsEB_
TokenHandlePair< edm::ValueMap< float > > phoChargedHadWorstVtxConeVetoIso_
TokenHandlePair< edm::ValueMap< float > > eleTrkIso_
ModifyObjectValueBase(const edm::ParameterSet &conf)
TokenHandlePair< reco::ConversionCollection > conversions_
TokenHandlePair< edm::ValueMap< float > > phoChargedHadPFPVIso_
TokenHandlePair< edm::View< reco::GsfElectron > > eleCollVMsAreKeyedTo_
TokenHandlePair< edm::ValueMap< float > > phoNeutralHadIso_
TokenHandlePair< edm::ValueMap< float > > phoChargedHadIso_

◆ ~EG9X105XObjectUpdateModifier()

EG9X105XObjectUpdateModifier::~EG9X105XObjectUpdateModifier ( )
inlineoverride

Definition at line 39 of file EG9X105XObjectUpdateModifier.cc.

39 {}

Member Function Documentation

◆ getPtrForValueMap()

template<typename ObjType >
edm::Ptr< ObjType > EG9X105XObjectUpdateModifier::getPtrForValueMap ( const ObjType &  obj,
const edm::Handle< edm::View< ObjType > > &  objsVMIsKeyedTo 
)
staticprivate

Definition at line 188 of file EG9X105XObjectUpdateModifier.cc.

References getGTfromDQMFile::obj.

Referenced by modifyObject().

189  {
190  for (auto& objVMPtr : objsVMIsKeyedTo->ptrs()) {
191  if (obj.superCluster()->seed()->seed() == objVMPtr->superCluster()->seed()->seed())
192  return objVMPtr;
193  }
194  return edm::Ptr<ObjType>(objsVMIsKeyedTo.id()); //return null ptr if not found
195 }
ProductID id() const
Definition: HandleBase.cc:29

◆ modifyObject() [1/4]

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

Reimplemented from ModifyObjectValueBase.

Definition at line 122 of file EG9X105XObjectUpdateModifier.cc.

References allowGsfTrkMatchForConvs_, beamspot_, reco::GsfElectron::conversionRejectionVariables(), conversions_, reco::GsfElectron::core(), reco::GsfElectron::dr03IsolationVariables(), reco::GsfElectron::dr04IsolationVariables(), MillePedeFileConverter_cfg::e, eleCollVMsAreKeyedTo_, eleTrkIso04_, eleTrkIso_, reco::LeafCandidate::et(), reco::LeafCandidate::eta(), Exception, getPtrForValueMap(), ConversionTools::getVtxFitProb(), EG9X105XObjectUpdateModifier::TokenHandlePair< T >::handle(), edm::Ptr< T >::isNull(), ConversionTools::matchedConversion(), reco::BeamSpot::position(), reco::GsfElectron::setConversionRejectionVariables(), reco::GsfElectron::setDr03Isolation(), reco::GsfElectron::setDr04Isolation(), reco::GsfElectron::superCluster(), reco::GsfElectron::IsolationVariables::tkSumPtHEEP, and reco::GsfElectron::ConversionRejection::vtxFitProb.

122  {
124  if (ptrForVM.isNull()) {
125  throw cms::Exception("LogicError")
126  << " in EG9X105ObjectUpdateModifier, line " << __LINE__ << " electron " << ele.et() << " " << ele.eta() << " "
127  << ele.superCluster()->seed()->seed().rawId()
128  << " failed to match to the electrons the key map was keyed to, check the map collection is correct";
129  }
134  } else {
135  //its rather important to use the core function here to get the org trk ref
137  ele.core()->ctfTrack(), *conversions_.handle(), beamspot_.handle()->position(), 2.0, 1e-6, 0));
138  }
139  ele.setConversionRejectionVariables(convRejVars);
140 
142  isolVars03.tkSumPtHEEP = (*eleTrkIso_.handle())[ptrForVM];
143  ele.setDr03Isolation(isolVars03);
145  isolVars04.tkSumPtHEEP = (*eleTrkIso04_.handle())[ptrForVM];
146  ele.setDr04Isolation(isolVars04);
147 }
void setDr04Isolation(const IsolationVariables &dr04)
Definition: GsfElectron.h:606
TokenHandlePair< edm::ValueMap< float > > eleTrkIso04_
const Point & position() const
position
Definition: BeamSpot.h:59
TokenHandlePair< reco::BeamSpot > beamspot_
const ConversionRejection & conversionRejectionVariables() const
Definition: GsfElectron.h:649
static reco::Conversion const * matchedConversion(const reco::GsfElectron &ele, const reco::ConversionCollection &convCol, const math::XYZPoint &beamspot, bool allowCkfMatch=true, float lxyMin=2.0, float probMin=1e-6, unsigned int nHitsBeforeVtxMax=0)
void setConversionRejectionVariables(const ConversionRejection &convRej)
Definition: GsfElectron.h:650
void setDr03Isolation(const IsolationVariables &dr03)
Definition: GsfElectron.h:605
static edm::Ptr< ObjType > getPtrForValueMap(const ObjType &obj, const edm::Handle< edm::View< ObjType > > &objsVMIsKeyedTo)
TokenHandlePair< edm::ValueMap< float > > eleTrkIso_
bool isNull() const
Checks for null.
Definition: Ptr.h:142
static float getVtxFitProb(const reco::Conversion *conv)
virtual GsfElectronCoreRef core() const
Definition: GsfElectron.cc:8
TokenHandlePair< reco::ConversionCollection > conversions_
const IsolationVariables & dr03IsolationVariables() const
Definition: GsfElectron.h:594
double et() const final
transverse energy
const IsolationVariables & dr04IsolationVariables() const
Definition: GsfElectron.h:602
TokenHandlePair< edm::View< reco::GsfElectron > > eleCollVMsAreKeyedTo_
SuperClusterRef superCluster() const override
reference to a SuperCluster
Definition: GsfElectron.h:155
double eta() const final
momentum pseudorapidity

◆ modifyObject() [2/4]

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

Reimplemented from ModifyObjectValueBase.

Definition at line 149 of file EG9X105XObjectUpdateModifier.cc.

References Cluster2ndMoments::alpha, reco::Photon::PflowIsolationVariables::chargedHadronIso, reco::Photon::PflowIsolationVariables::chargedHadronPFPVIso, reco::Photon::PflowIsolationVariables::chargedHadronWorstVtxGeomVetoIso, reco::Photon::PflowIsolationVariables::chargedHadronWorstVtxIso, EcalClusterToolsT< noZS >::cluster2ndMoments(), EcalBarrel, ecalRecHitsEB_, ecalRecHitsEE_, reco::LeafCandidate::et(), reco::LeafCandidate::eta(), Exception, reco::Photon::full5x5_setShowerShapeVariables(), reco::Photon::full5x5_showerShapeVariables(), reco::Photon::getPflowIsolationVariables(), getPtrForValueMap(), EG9X105XObjectUpdateModifier::TokenHandlePair< T >::handle(), edm::Ptr< T >::isNull(), reco::Photon::PflowIsolationVariables::neutralHadronIso, phoChargedHadIso_, phoChargedHadPFPVIso_, phoChargedHadWorstVtxConeVetoIso_, phoChargedHadWorstVtxIso_, phoCollVMsAreKeyedTo_, phoNeutralHadIso_, phoPhotonIso_, reco::Photon::PflowIsolationVariables::photonIso, FastTrackerRecHitMaskProducer_cfi::recHits, reco::Photon::setPflowIsolationVariables(), reco::Photon::setShowerShapeVariables(), reco::Photon::showerShapeVariables(), Cluster2ndMoments::sMaj, reco::Photon::ShowerShape::smAlpha, Cluster2ndMoments::sMin, reco::Photon::ShowerShape::smMajor, reco::Photon::ShowerShape::smMinor, reco::Photon::superCluster(), and updateChargedHadPFPVIso_.

149  {
151  if (ptrForVM.isNull()) {
152  throw cms::Exception("LogicError")
153  << " in EG9X105ObjectUpdateModifier, line " << __LINE__ << " photon " << pho.et() << " " << pho.eta() << " "
154  << pho.superCluster()->seed()->seed().rawId()
155  << " failed to match to the photons the key map was keyed to, check the map collection is correct";
156  }
157 
159  pfIso.photonIso = (*phoPhotonIso_.handle())[ptrForVM];
160  pfIso.neutralHadronIso = (*phoNeutralHadIso_.handle())[ptrForVM];
161  pfIso.chargedHadronIso = (*phoChargedHadIso_.handle())[ptrForVM];
165  pfIso.chargedHadronPFPVIso = (*phoChargedHadPFPVIso_.handle())[ptrForVM];
166  }
167  pho.setPflowIsolationVariables(pfIso);
168 
171 
172  const reco::CaloClusterPtr seedClus = pho.superCluster()->seed();
173  const bool isEB = seedClus->seed().subdetId() == EcalBarrel;
174  const auto& recHits = isEB ? *ecalRecHitsEB_.handle() : *ecalRecHitsEE_.handle();
175  Cluster2ndMoments clus2ndMomFrac = EcalClusterTools::cluster2ndMoments(*seedClus, recHits);
177  fracSS.smMajor = clus2ndMomFrac.sMaj;
178  fracSS.smMinor = clus2ndMomFrac.sMin;
179  fracSS.smAlpha = clus2ndMomFrac.alpha;
180  fullSS.smMajor = clus2ndMomFull.sMaj;
181  fullSS.smMinor = clus2ndMomFull.sMin;
182  fullSS.smAlpha = clus2ndMomFull.alpha;
183  pho.setShowerShapeVariables(fracSS);
185 }
void setPflowIsolationVariables(const PflowIsolationVariables &pfisol)
Set Particle Flow Isolation variables.
Definition: Photon.h:560
TokenHandlePair< edm::ValueMap< float > > phoPhotonIso_
TokenHandlePair< edm::ValueMap< float > > phoChargedHadWorstVtxIso_
const ShowerShape & full5x5_showerShapeVariables() const
Definition: Photon.h:213
const ShowerShape & showerShapeVariables() const
Definition: Photon.h:212
TokenHandlePair< edm::View< reco::Photon > > phoCollVMsAreKeyedTo_
TokenHandlePair< EcalRecHitCollection > ecalRecHitsEE_
TokenHandlePair< EcalRecHitCollection > ecalRecHitsEB_
TokenHandlePair< edm::ValueMap< float > > phoChargedHadWorstVtxConeVetoIso_
static edm::Ptr< ObjType > getPtrForValueMap(const ObjType &obj, const edm::Handle< edm::View< ObjType > > &objsVMIsKeyedTo)
bool isNull() const
Checks for null.
Definition: Ptr.h:142
reco::SuperClusterRef superCluster() const override
Ref to SuperCluster.
void setShowerShapeVariables(const ShowerShape &a)
Definition: Photon.h:215
static Cluster2ndMoments cluster2ndMoments(const reco::BasicCluster &basicCluster, const EcalRecHitCollection &recHits, double phiCorrectionFactor=0.8, double w0=4.7, bool useLogWeights=true)
void full5x5_setShowerShapeVariables(const ShowerShape &a)
Definition: Photon.h:216
double et() const final
transverse energy
TokenHandlePair< edm::ValueMap< float > > phoChargedHadPFPVIso_
const PflowIsolationVariables & getPflowIsolationVariables() const
Get Particle Flow Isolation variables block.
Definition: Photon.h:557
TokenHandlePair< edm::ValueMap< float > > phoNeutralHadIso_
TokenHandlePair< edm::ValueMap< float > > phoChargedHadIso_
double eta() const final
momentum pseudorapidity

◆ modifyObject() [3/4]

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

Reimplemented from ModifyObjectValueBase.

Definition at line 46 of file EG9X105XObjectUpdateModifier.cc.

References modifyObject().

Referenced by modifyObject().

46 { return modifyObject(static_cast<reco::GsfElectron&>(ele)); }
void modifyObject(reco::GsfElectron &ele) const final

◆ modifyObject() [4/4]

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

Reimplemented from ModifyObjectValueBase.

Definition at line 47 of file EG9X105XObjectUpdateModifier.cc.

References modifyObject().

Referenced by modifyObject().

47 { return modifyObject(static_cast<reco::Photon&>(pho)); }
void modifyObject(reco::GsfElectron &ele) const final

◆ setEvent()

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

Reimplemented from ModifyObjectValueBase.

Definition at line 104 of file EG9X105XObjectUpdateModifier.cc.

References beamspot_, conversions_, ecalRecHitsEB_, ecalRecHitsEE_, eleCollVMsAreKeyedTo_, eleTrkIso04_, eleTrkIso_, iEvent, phoChargedHadIso_, phoChargedHadPFPVIso_, phoChargedHadWorstVtxConeVetoIso_, phoChargedHadWorstVtxIso_, phoCollVMsAreKeyedTo_, phoNeutralHadIso_, phoPhotonIso_, EG9X105XObjectUpdateModifier::TokenHandlePair< T >::setHandle(), and updateChargedHadPFPVIso_.

104  {
109  ecalRecHitsEB_.setHandle(iEvent);
110  ecalRecHitsEE_.setHandle(iEvent);
120 }
TokenHandlePair< edm::ValueMap< float > > eleTrkIso04_
TokenHandlePair< edm::ValueMap< float > > phoPhotonIso_
TokenHandlePair< edm::ValueMap< float > > phoChargedHadWorstVtxIso_
TokenHandlePair< edm::View< reco::Photon > > phoCollVMsAreKeyedTo_
TokenHandlePair< reco::BeamSpot > beamspot_
TokenHandlePair< EcalRecHitCollection > ecalRecHitsEE_
TokenHandlePair< EcalRecHitCollection > ecalRecHitsEB_
TokenHandlePair< edm::ValueMap< float > > phoChargedHadWorstVtxConeVetoIso_
TokenHandlePair< edm::ValueMap< float > > eleTrkIso_
int iEvent
Definition: GenABIO.cc:224
TokenHandlePair< reco::ConversionCollection > conversions_
TokenHandlePair< edm::ValueMap< float > > phoChargedHadPFPVIso_
TokenHandlePair< edm::View< reco::GsfElectron > > eleCollVMsAreKeyedTo_
TokenHandlePair< edm::ValueMap< float > > phoNeutralHadIso_
TokenHandlePair< edm::ValueMap< float > > phoChargedHadIso_

Member Data Documentation

◆ allowGsfTrkMatchForConvs_

bool EG9X105XObjectUpdateModifier::allowGsfTrkMatchForConvs_
private

Definition at line 76 of file EG9X105XObjectUpdateModifier.cc.

Referenced by modifyObject().

◆ beamspot_

TokenHandlePair<reco::BeamSpot> EG9X105XObjectUpdateModifier::beamspot_
private

Definition at line 58 of file EG9X105XObjectUpdateModifier.cc.

Referenced by modifyObject(), and setEvent().

◆ conversions_

TokenHandlePair<reco::ConversionCollection> EG9X105XObjectUpdateModifier::conversions_
private

Definition at line 57 of file EG9X105XObjectUpdateModifier.cc.

Referenced by modifyObject(), and setEvent().

◆ ecalRecHitsEB_

TokenHandlePair<EcalRecHitCollection> EG9X105XObjectUpdateModifier::ecalRecHitsEB_
private

Definition at line 59 of file EG9X105XObjectUpdateModifier.cc.

Referenced by modifyObject(), and setEvent().

◆ ecalRecHitsEE_

TokenHandlePair<EcalRecHitCollection> EG9X105XObjectUpdateModifier::ecalRecHitsEE_
private

Definition at line 60 of file EG9X105XObjectUpdateModifier.cc.

Referenced by modifyObject(), and setEvent().

◆ eleCollVMsAreKeyedTo_

TokenHandlePair<edm::View<reco::GsfElectron> > EG9X105XObjectUpdateModifier::eleCollVMsAreKeyedTo_
private

Definition at line 54 of file EG9X105XObjectUpdateModifier.cc.

Referenced by modifyObject(), and setEvent().

◆ eleTrkIso04_

TokenHandlePair<edm::ValueMap<float> > EG9X105XObjectUpdateModifier::eleTrkIso04_
private

Definition at line 63 of file EG9X105XObjectUpdateModifier.cc.

Referenced by modifyObject(), and setEvent().

◆ eleTrkIso_

TokenHandlePair<edm::ValueMap<float> > EG9X105XObjectUpdateModifier::eleTrkIso_
private

Definition at line 62 of file EG9X105XObjectUpdateModifier.cc.

Referenced by modifyObject(), and setEvent().

◆ phoChargedHadIso_

TokenHandlePair<edm::ValueMap<float> > EG9X105XObjectUpdateModifier::phoChargedHadIso_
private

Definition at line 66 of file EG9X105XObjectUpdateModifier.cc.

Referenced by modifyObject(), and setEvent().

◆ phoChargedHadPFPVIso_

TokenHandlePair<edm::ValueMap<float> > EG9X105XObjectUpdateModifier::phoChargedHadPFPVIso_
private

Definition at line 69 of file EG9X105XObjectUpdateModifier.cc.

Referenced by modifyObject(), and setEvent().

◆ phoChargedHadWorstVtxConeVetoIso_

TokenHandlePair<edm::ValueMap<float> > EG9X105XObjectUpdateModifier::phoChargedHadWorstVtxConeVetoIso_
private

Definition at line 68 of file EG9X105XObjectUpdateModifier.cc.

Referenced by modifyObject(), and setEvent().

◆ phoChargedHadWorstVtxIso_

TokenHandlePair<edm::ValueMap<float> > EG9X105XObjectUpdateModifier::phoChargedHadWorstVtxIso_
private

Definition at line 67 of file EG9X105XObjectUpdateModifier.cc.

Referenced by modifyObject(), and setEvent().

◆ phoCollVMsAreKeyedTo_

TokenHandlePair<edm::View<reco::Photon> > EG9X105XObjectUpdateModifier::phoCollVMsAreKeyedTo_
private

Definition at line 55 of file EG9X105XObjectUpdateModifier.cc.

Referenced by modifyObject(), and setEvent().

◆ phoNeutralHadIso_

TokenHandlePair<edm::ValueMap<float> > EG9X105XObjectUpdateModifier::phoNeutralHadIso_
private

Definition at line 65 of file EG9X105XObjectUpdateModifier.cc.

Referenced by modifyObject(), and setEvent().

◆ phoPhotonIso_

TokenHandlePair<edm::ValueMap<float> > EG9X105XObjectUpdateModifier::phoPhotonIso_
private

Definition at line 64 of file EG9X105XObjectUpdateModifier.cc.

Referenced by modifyObject(), and setEvent().

◆ updateChargedHadPFPVIso_

bool EG9X105XObjectUpdateModifier::updateChargedHadPFPVIso_
private

Definition at line 82 of file EG9X105XObjectUpdateModifier.cc.

Referenced by modifyObject(), and setEvent().